From 117c8bcc95dd581c8a8c45cc9dbd6e087af8a3ad Mon Sep 17 00:00:00 2001
From: Sagar Parsawar <sagar.parsawar@eurecom.fr>
Date: Thu, 4 Aug 2022 14:37:05 +0200
Subject: [PATCH]  Merge remote-tracking branch 'origin/develop' into nr_prs

---
 ci-scripts/Jenkinsfile-GitLab-Container       |    20 +
 ci-scripts/Jenkinsfile-push-registry          |     2 +-
 ci-scripts/Jenkinsfile-tmp-multi-enb          |   187 +-
 ci-scripts/Jenkinsfile-trig-nsa               |    30 +-
 ci-scripts/checkCodingFormattingRules.sh      |     4 +-
 ci-scripts/ci_ueinfra.yaml                    |     6 +-
 ci-scripts/cls_containerize.py                |   123 +-
 ci-scripts/cls_physim.py                      |     4 +-
 ci-scripts/cls_static_code_analysis.py        |   203 +
 ci-scripts/conf_files/benetel-5g.conf         |     2 -
 ...sci_gnb.band78.sa.fr1.106PRB.usrpn310.conf |     1 -
 .../episci_rcc.band78.tm1.106PRB.nfapi.conf   |     1 -
 ...oxy_gnb.band78.sa.fr1.106PRB.usrpn310.conf |     1 -
 .../proxy_rcc.band78.tm1.106PRB.nfapi.conf    |     1 -
 ci-scripts/conf_files/gNB_SA_CU.conf          |     1 -
 ci-scripts/conf_files/gNB_SA_DU.conf          |     1 -
 .../gNB_SA_n78_106PRB.2x2_usrpn310.conf       |     3 +-
 .../gNB_SA_n78_133PRB.2x2_usrpn310.conf       |     3 +-
 .../gnb.band261.tm1.32PRB.usrpn300.conf       |     1 -
 .../gnb.band66.tm1.106PRB.usrpn300.conf       |     1 -
 .../gnb.band78.nsa_2x2.106PRB.usrpn310.conf   |     3 +-
 ...and78.sa.fr1.106PRB.2x2.usrpn310.asue.conf |     1 -
 ...gnb.band78.sa.fr1.106PRB.2x2.usrpn310.conf |     3 +-
 ...nd78.sa.fr1.106PRB.ddsuu.2x2.usrpn310.conf |     1 -
 .../gnb.band78.sa.fr1.106PRB.usrpn310.conf    |     1 -
 ...gnb.band78.sa.fr1.162PRB.2x2.usrpn310.conf |     3 +-
 .../gnb.band78.tm1.106PRB.usrpn300.conf       |     3 +-
 .../gnb.band78.tm1.fr1.106PRB.usrpb210.conf   |     1 -
 .../gnb.band78.tm1.fr1.106PRB.usrpn310.conf   |     1 -
 .../gnb.sa.band66.fr1.106PRB.usrpn300.conf    |     1 -
 .../gnb.sa.band78.fr1.106PRB.usrpb210.conf    |   344 +
 .../gnb.sa.band78.fr1.24PRB.usrpb210.conf     |     3 -
 ci-scripts/datalog_rt_stats.2x2.yaml          |     4 +-
 ci-scripts/datalog_rt_stats.default.yaml      |     7 +-
 .../docker/Dockerfile.formatting.bionic       |    31 +
 ci-scripts/epc.py                             |    21 +-
 ci-scripts/main.py                            |    15 +-
 ci-scripts/ran.py                             |    24 +-
 ci-scripts/ran_dashboard/Hdashboard.py        |     6 +-
 ci-scripts/sshconnection.py                   |    17 +-
 ci-scripts/stats_monitor_conf.yaml            |     4 +-
 ci-scripts/xml_class_list.yml                 |     2 +
 .../xml_files/container_5g_l2sim_proxy.xml    |    42 +
 .../xml_files/container_nsa_b200_quectel.xml  |     5 +-
 .../xml_files/container_sa_b200_quectel.xml   |   168 +
 .../xml_files/container_sa_b200_terminate.xml |    42 +
 ci-scripts/xml_files/formatting_check.xml     |    37 +
 ci-scripts/xml_files/fr1_5gc_closure.xml      |    37 +
 ci-scripts/xml_files/fr1_5gc_start.xml        |    38 +
 ci-scripts/xml_files/fr1_gnb_build.xml        |     2 +-
 ci-scripts/xml_files/fr1_multi_node_build.xml |     2 +-
 ci-scripts/xml_files/fr1_nsa_2x2_quectel.xml  |     1 +
 .../fr1_nsa_2x2_quectel_attach_detach.xml     |     1 +
 ci-scripts/xml_files/fr1_nsa_quectel.xml      |    38 +-
 ci-scripts/xml_files/fr1_sa_quectel.xml       |     1 +
 .../xml_files/fr1_sa_quectel_162prb.xml       |     1 +
 .../xml_files/fr1_sa_quectel_stages.xml       |     1 +
 ci-scripts/xml_files/gnb_phytest_usrp_run.xml |     4 +-
 ci-scripts/xml_files/gnb_usrp_build.xml       |     2 +-
 ci-scripts/xml_files/ldpc_gpu_test.xml        |     2 +-
 ci-scripts/xml_files/lte_2x2_tm1_quectel.xml  |     5 +-
 ci-scripts/xml_files/lte_2x2_tm2_quectel.xml  |     5 +-
 .../yaml_files/sa_b200_gnb/docker-compose.yml |    44 +
 cmake_targets/CMakeLists.txt                  |    78 +-
 cmake_targets/autotests/test_case_list.xml    |    77 +-
 cmake_targets/build_oai                       |    27 +-
 cmake_targets/tools/build_helper              |    24 +-
 common/utils/nr/nr_common.c                   |    67 +-
 common/utils/nr/nr_common.h                   |     8 +-
 common/utils/ocp_itti/intertask_interface.cpp |     1 +
 common/utils/threadPool/thread-pool.h         |     2 +-
 common/utils/time_meas.c                      |    65 +-
 common/utils/time_meas.h                      |    11 +-
 doc/BUILD.md                                  |     1 +
 doc/FEATURE_SET.md                            |    16 +-
 doc/NR_SA_CN5G_gNB_B210_COTS_UE_Tutorial.md   |   227 +
 doc/NR_SA_CN5G_gNB_N300_COTS_UE_Tutorial.md   |   244 +
 doc/RUNMODEM.md                               |    17 +
 doc/RUN_NR_multiple_BWPs.md                   |    51 +
 doc/TESTBenches.md                            |   206 +-
 doc/TESTING_5GSA_setup.md                     |    38 +-
 doc/UL_MIMO.txt                               |    31 +
 doc/images/mimo_antenna_ports.png             |   Bin 0 -> 18753 bytes
 .../4g-faraday-bench.pdf                      |   Bin 0 -> 53079 bytes
 .../4g-faraday-bench.png                      |   Bin 0 -> 92377 bytes
 .../4g-faraday-bench.tex                      |    59 +
 .../5g-nsa-faraday-bench.pdf                  |   Bin 0 -> 337509 bytes
 .../5g-nsa-faraday-bench.png                  |   Bin 0 -> 89413 bytes
 .../5g-nsa-faraday-bench.tex                  |    55 +
 .../5g-ota-bench.pdf                          |   Bin 0 -> 232400 bytes
 .../5g-ota-bench.png                          |   Bin 0 -> 96734 bytes
 .../5g-ota-bench.tex                          |    68 +
 doc/testbenches_doc_resources/antenna.pdf     |   Bin 0 -> 4886 bytes
 doc/testbenches_doc_resources/b200-mini.png   |   Bin 0 -> 238906 bytes
 doc/testbenches_doc_resources/b210.jpg        |   Bin 0 -> 32877 bytes
 doc/testbenches_doc_resources/indoor_live.jpg |   Bin 254133 -> 0 bytes
 doc/testbenches_doc_resources/legacy1.jpg     |   Bin 107882 -> 0 bytes
 doc/testbenches_doc_resources/legacy2.jpg     |   Bin 122055 -> 0 bytes
 doc/testbenches_doc_resources/n310.png        |   Bin 0 -> 120716 bytes
 doc/testbenches_doc_resources/next_ci.jpg     |   Bin 157592 -> 0 bytes
 doc/testbenches_doc_resources/next_dev.jpg    |   Bin 185772 -> 0 bytes
 .../outdoor_live.jpg                          |   Bin 167702 -> 0 bytes
 doc/testbenches_doc_resources/phone.pdf       |   Bin 0 -> 4358 bytes
 doc/testbenches_doc_resources/quectel.png     |   Bin 0 -> 88455 bytes
 doc/testbenches_doc_resources/server.pdf      |   Bin 0 -> 4366 bytes
 doc/testbenches_doc_resources/x310.jpg        |   Bin 0 -> 11188 bytes
 doc/testing_gnb_w_cots_ue_resources/gnb.conf  |     2 -
 .../docker-compose-basic-nrf.yaml             |   360 +
 doc/tutorial_resources/oai_db.sql             |   328 +
 docker/Dockerfile.build.rhel8.2               |     2 +-
 docker/Dockerfile.build.ubuntu18              |     2 +-
 docker/Dockerfile.phySim.rhel8.2              |     2 +-
 docker/scripts/generateTemplate.py            |     1 +
 docker/scripts/gnb_entrypoint.sh              |     1 +
 docker/scripts/gnb_parameters.yaml            |    30 +
 executables/main-ocp.c                        |     2 +-
 executables/nr-gnb.c                          |    49 +-
 executables/nr-ru.c                           |    24 +-
 executables/nr-softmodem-common.h             |     1 +
 executables/nr-softmodem.c                    |     2 +-
 executables/nr-softmodem.h                    |     5 +-
 executables/nr-ue.c                           |    44 +-
 executables/nr-uesoftmodem.c                  |    10 +-
 executables/nr-uesoftmodem.h                  |    14 +-
 executables/softmodem-common.c                |     3 +
 executables/softmodem-common.h                |    23 +-
 ...384_rate_1-3_block_length_8448_maxit_5.txt |    64 +
 nfapi/oai_integration/nfapi_vnf.c             |     4 +-
 .../nfapi/public_inc/fapi_nr_ue_constants.h   |     4 +-
 .../nfapi/public_inc/fapi_nr_ue_interface.h   |    48 +-
 .../nfapi/public_inc/nfapi_nr_interface_scf.h |    96 +-
 nfapi/open-nFAPI/nfapi/src/nfapi_p7.c         |     4 -
 .../CODING/3gpplte_turbo_decoder_sse_8bit.c   |     6 +-
 openair1/PHY/CODING/coding_defs.h             |    23 +-
 openair1/PHY/CODING/crc_byte.c                |     4 +-
 .../CODING/nrLDPC_decoder/doc/nrLDPC/logo.png |   Bin 3723 -> 0 bytes
 .../nrLDPC_decoder/doc/nrLDPC/nrLDPC.pdf      |   Bin 281923 -> 0 bytes
 .../nrLDPC_decoder/doc/nrLDPC/nrLDPC.tex      |   960 -
 .../nrLDPC_decoder/doc/nrLDPC/references.bib  |   105 -
 .../CODING/nrLDPC_decoder/doc/nrLDPC_doxyCfg  |  2427 -
 .../PHY/CODING/nrLDPC_decoder/nrLDPC_bnProc.h |     2 +-
 .../PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h |    81 +-
 .../nrLDPC_decoder/nrLDPC_cnProc_avx512.h     |   865 +
 .../CODING/nrLDPC_decoder/nrLDPC_decoder.c    |   599 +-
 .../CODING/nrLDPC_decoder/nrLDPC_init_mem.h   |    83 +
 .../PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h  |    46 +-
 .../nrLDPC_tools/CMakeLists.txt               |    19 +
 .../generator_bnProc/CMakeLists.txt           |    36 +
 .../generator_bnProc/bnProcPc_gen_BG1_avx2.c  |  1789 +
 .../generator_bnProc/bnProcPc_gen_BG2_avx2.c  |  1789 +
 .../generator_bnProc/bnProc_gen_BG1_avx2.c    |  1112 +
 .../generator_bnProc/bnProc_gen_BG2_avx2.c    |  1108 +
 .../nrLDPC_tools/generator_bnProc/main.c      |    55 +
 .../generator_bnProc_avx512/CMakeLists.txt    |    36 +
 .../bnProcPc_gen_BG1_avx512.c                 |  1790 +
 .../bnProcPc_gen_BG2_avx512.c                 |  1793 +
 .../bnProc_gen_BG1_avx512.c                   |  1112 +
 .../bnProc_gen_BG2_avx512.c                   |  1108 +
 .../generator_bnProc_avx512/main.c            |    56 +
 .../generator_cnProc/CMakeLists.txt           |    25 +
 .../generator_cnProc/cnProc_gen_BG1_avx2.c    |   693 +
 .../generator_cnProc/cnProc_gen_BG2_avx2.c    |   436 +
 .../nrLDPC_tools/generator_cnProc/main.c      |    50 +
 .../generator_cnProc_avx512/CMakeLists.txt    |    25 +
 .../cnProc_gen_BG1_avx512.c                   |   597 +
 .../cnProc_gen_BG2_avx512.c                   |   414 +
 .../generator_cnProc_avx512/main.c            |    50 +
 .../nrLDPC_tools/run_ldpc_generators.sh       |    11 +
 .../PHY/CODING/nrLDPC_decoder/nrLDPC_types.h  |     6 +-
 .../nrLDPC_decoder/nrLDPCdecoder_defs.h       |    10 +
 openair1/PHY/CODING/nr_rate_matching.c        |    16 +-
 openair1/PHY/INIT/nr_init.c                   |   146 +-
 openair1/PHY/INIT/nr_init_ru.c                |    16 +-
 openair1/PHY/INIT/nr_init_ue.c                |   100 +-
 .../lte_ul_channel_estimation.c               |    34 +-
 openair1/PHY/LTE_TRANSPORT/dci_tools.c        |     4 +-
 openair1/PHY/LTE_TRANSPORT/dci_tools_common.c |   146 +-
 openair1/PHY/LTE_TRANSPORT/defs_NB_IoT.h      |     2 +-
 openair1/PHY/LTE_TRANSPORT/dlsch_coding.c     |     2 +-
 openair1/PHY/LTE_UE_TRANSPORT/dci_tools_ue.c  |    21 +-
 .../PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c |     2 +-
 .../linear_preprocessing_rec.c                |     2 +-
 .../PHY/LTE_UE_TRANSPORT/transport_proto_ue.h |     8 -
 openair1/PHY/LTE_UE_TRANSPORT/transport_ue.h  |     2 +-
 openair1/PHY/LTE_UE_TRANSPORT/ulsch_coding.c  |    47 +-
 openair1/PHY/MODULATION/nr_modulation.c       |    36 +-
 openair1/PHY/MODULATION/ofdm_mod.c            |    44 +-
 openair1/PHY/MODULATION/slot_fep_nr.c         |    97 +-
 .../PHY/NR_ESTIMATION/nr_measurements_gNB.c   |    51 +-
 .../NR_ESTIMATION/nr_ul_channel_estimation.c  |   435 +-
 openair1/PHY/NR_ESTIMATION/nr_ul_estimation.h |    30 +-
 openair1/PHY/NR_REFSIG/dmrs_nr.c              |   146 +-
 openair1/PHY/NR_REFSIG/dmrs_nr.h              |     7 +-
 openair1/PHY/NR_REFSIG/nr_dmrs_rx.c           |    11 +-
 openair1/PHY/NR_REFSIG/nr_gold.c              |    27 -
 openair1/PHY/NR_REFSIG/nr_refsig.h            |     4 +-
 openair1/PHY/NR_REFSIG/pss_nr.h               |     2 -
 openair1/PHY/NR_REFSIG/ptrs_nr.c              |     9 +-
 openair1/PHY/NR_REFSIG/ptrs_nr.h              |     1 -
 openair1/PHY/NR_REFSIG/refsig_defs_ue.h       |     1 +
 openair1/PHY/NR_REFSIG/ss_pbch_nr.h           |     2 -
 .../dlsch_pdu_rel15.time_alloc_list_flag      |     0
 .../dlsch_pdu_rel15.time_allocation_type      |     0
 openair1/PHY/NR_TRANSPORT/nr_csi_rs.c         |   230 +-
 openair1/PHY/NR_TRANSPORT/nr_dci.c            |    41 +-
 openair1/PHY/NR_TRANSPORT/nr_dci.h            |     2 +-
 openair1/PHY/NR_TRANSPORT/nr_dci_tools.c      |   151 +-
 openair1/PHY/NR_TRANSPORT/nr_dlsch.c          |    16 +-
 openair1/PHY/NR_TRANSPORT/nr_dlsch.h          |     5 -
 openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c   |    30 +-
 openair1/PHY/NR_TRANSPORT/nr_pbch.c           |     6 +-
 openair1/PHY/NR_TRANSPORT/nr_prach.c          |   506 +-
 openair1/PHY/NR_TRANSPORT/nr_scrambling.c     |     1 +
 .../NR_TRANSPORT/nr_transport_common_proto.h  |     8 -
 .../PHY/NR_TRANSPORT/nr_transport_proto.h     |    50 +-
 openair1/PHY/NR_TRANSPORT/nr_ulsch.c          |    45 +-
 openair1/PHY/NR_TRANSPORT/nr_ulsch.h          |     6 +
 openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c |    68 +-
 .../PHY/NR_TRANSPORT/nr_ulsch_demodulation.c  |  1331 +-
 .../NR_TRANSPORT/nr_ulsch_llr_computation.c   |    42 +-
 openair1/PHY/NR_TRANSPORT/pucch_rx.c          |    34 +-
 openair1/PHY/NR_TRANSPORT/srs_rx.c            |    15 +-
 openair1/PHY/NR_UE_ESTIMATION/filt16a_32.c    |    21 +-
 openair1/PHY/NR_UE_ESTIMATION/filt16a_32.h    |     6 +
 .../nr_dl_channel_estimation.c                |   103 +-
 openair1/PHY/NR_UE_TRANSPORT/csi_rx.c         |   969 +
 openair1/PHY/NR_UE_TRANSPORT/dci_nr.c         |    10 +-
 .../PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c   |    36 +-
 .../NR_UE_TRANSPORT/nr_dlsch_demodulation.c   |   173 +-
 .../nr_dlsch_llr_computation.c                |    11 +-
 .../PHY/NR_UE_TRANSPORT/nr_initial_sync.c     |     2 +
 openair1/PHY/NR_UE_TRANSPORT/nr_prach.c       |  1042 +-
 .../NR_UE_TRANSPORT/nr_transport_proto_ue.h   |    39 +-
 .../PHY/NR_UE_TRANSPORT/nr_transport_ue.h     |    19 +-
 .../PHY/NR_UE_TRANSPORT/nr_ue_rf_helpers.c    |     7 +-
 .../PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c     |    80 +-
 openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c    |   235 +-
 openair1/PHY/NR_UE_TRANSPORT/pss_nr.c         |   130 -
 openair1/PHY/TOOLS/calibration_scope.c        |     4 +-
 openair1/PHY/TOOLS/cmult_sv.c                 |   247 +-
 openair1/PHY/TOOLS/lte_ue_scope.c             |     6 +-
 openair1/PHY/TOOLS/nr_phy_scope.c             |     4 +-
 openair1/PHY/TOOLS/tools_defs.h               |   141 +-
 openair1/PHY/defs_common.h                    |     8 +-
 openair1/PHY/defs_gNB.h                       |    52 +-
 openair1/PHY/defs_nr_UE.h                     |    30 +-
 openair1/PHY/defs_nr_common.h                 |    35 +-
 openair1/SCHED/ru_procedures.c                |    14 +-
 openair1/SCHED/sched_common_extern.h          |     2 +
 openair1/SCHED_NR/fapi_nr_l1.c                |     1 -
 openair1/SCHED_NR/nr_ru_procedures.c          |     3 +-
 openair1/SCHED_NR/phy_procedures_nr_gNB.c     |   184 +-
 openair1/SCHED_NR_UE/defs.h                   |     6 +-
 openair1/SCHED_NR_UE/fapi_nr_ue_l1.c          |    23 +-
 openair1/SCHED_NR_UE/harq_nr.c                |    13 +-
 openair1/SCHED_NR_UE/phy_procedures_nr_ue.c   |   120 +-
 .../SCHED_NR_UE/phy_sch_processing_time.h     |    34 +-
 openair1/SCHED_UE/phy_procedures_lte_ue.c     |     2 +-
 openair1/SIMULATION/LTE_PHY/dlsim.c           |    16 +-
 openair1/SIMULATION/LTE_PHY/mbmssim.c         |    18 +-
 openair1/SIMULATION/LTE_PHY/ulsim.c           |    14 +-
 openair1/SIMULATION/NR_PHY/dlschsim.c         |    45 +-
 openair1/SIMULATION/NR_PHY/dlsim.c            |   296 +-
 .../SIMULATION/NR_PHY/nr_dummy_functions.c    |     4 +-
 openair1/SIMULATION/NR_PHY/pbchsim.c          |    27 +-
 openair1/SIMULATION/NR_PHY/prachsim.c         |    39 +-
 openair1/SIMULATION/NR_PHY/pucchsim.c         |     5 +-
 openair1/SIMULATION/NR_PHY/ulschsim.c         |    55 +-
 openair1/SIMULATION/NR_PHY/ulsim.c            |   612 +-
 .../NR_UE_PHY/unit_tests/build/CMakeCache.txt |   313 +
 .../CMakeFiles/2.8.12.2/CMakeCCompiler.cmake  |    56 +
 .../2.8.12.2/CMakeCXXCompiler.cmake           |    57 +
 .../2.8.12.2/CMakeDetermineCompilerABI_C.bin  |   Bin 0 -> 8392 bytes
 .../CMakeDetermineCompilerABI_CXX.bin         |   Bin 0 -> 8408 bytes
 .../CMakeFiles/2.8.12.2/CMakeSystem.cmake     |    15 +
 .../2.8.12.2/CompilerIdC/CMakeCCompilerId.c   |   389 +
 .../CMakeFiles/2.8.12.2/CompilerIdC/a.out     |   Bin 0 -> 8488 bytes
 .../CompilerIdCXX/CMakeCXXCompilerId.cpp      |   377 +
 .../CMakeFiles/2.8.12.2/CompilerIdCXX/a.out   |   Bin 0 -> 8496 bytes
 .../build/CMakeFiles/CMakeOutput.log          |   247 +
 .../build/CMakeFiles/cmake.check_cache        |     1 +
 .../build/testlogs/frame_config_test.txt      |     0
 .../unit_tests/build/testlogs/harq_test.txt   |     0
 .../unit_tests/build/testlogs/pbch_test.txt   |     0
 .../unit_tests/build/testlogs/pss_test.txt    |     0
 .../build/testlogs/pucch_uci_test.txt         |     0
 .../unit_tests/build/testlogs/srs_test.txt    |     0
 .../unit_tests/build/testlogs/sss_test.txt    |     0
 .../NR_UE_PHY/unit_tests/src/pucch_uci_test.c |    96 +-
 openair1/SIMULATION/TOOLS/rangen_double.c     |     2 +-
 openair2/COMMON/commonDef.h                   |    21 -
 openair2/COMMON/f1ap_messages_def.h           |     2 +
 openair2/COMMON/f1ap_messages_types.h         |    72 +-
 openair2/COMMON/gtpv1_u_messages_def.h        |     3 +-
 openair2/COMMON/gtpv1_u_messages_types.h      |     9 +
 openair2/COMMON/mac_messages_types.h          |     2 +-
 openair2/COMMON/mac_rlc_primitives.h          |     2 +-
 openair2/COMMON/platform_types.h              |    61 +-
 openair2/COMMON/rrc_messages_types.h          |     3 +-
 openair2/ENB_APP/enb_config.c                 |    38 +-
 openair2/ENB_APP/enb_config_eMTC.c            |   122 +-
 openair2/ENB_APP/enb_paramdef_emtc.h          |     4 +-
 openair2/ENB_APP/flexran_agent_ran_api.c      |     8 +-
 openair2/F1AP/dummy_enb.c                     |    26 +-
 openair2/F1AP/f1ap_common.h                   |     7 -
 openair2/F1AP/f1ap_cu_task.c                  |     6 +
 openair2/F1AP/f1ap_cu_ue_context_management.c |  1356 +-
 openair2/F1AP/f1ap_cu_ue_context_management.h |     3 +-
 openair2/F1AP/f1ap_decoder.c                  |     8 +
 openair2/F1AP/f1ap_default_values.h           |     2 +-
 openair2/F1AP/f1ap_du_interface_management.c  |    15 +-
 openair2/F1AP/f1ap_du_rrc_message_transfer.c  |    25 +-
 openair2/F1AP/f1ap_du_task.c                  |     9 +-
 openair2/F1AP/f1ap_du_ue_context_management.c |   909 +-
 openair2/F1AP/f1ap_du_ue_context_management.h |     2 +-
 openair2/F1AP/f1ap_encoder.c                  |     2 +-
 openair2/F1AP/f1ap_handlers.c                 |     2 +-
 openair2/F1AP/f1ap_itti_messaging.c           |     2 +-
 openair2/GNB_APP/L1_nr_paramdef.h             |     5 +-
 openair2/GNB_APP/MACRLC_nr_paramdef.h         |    76 +-
 openair2/GNB_APP/RRC_nr_paramsvalues.h        |    61 +-
 openair2/GNB_APP/gnb_config.c                 |   426 +-
 openair2/GNB_APP/gnb_paramdef.h               |    33 +-
 openair2/LAYER2/MAC/config.c                  |    14 +-
 openair2/LAYER2/MAC/defs_NB_IoT.h             |    11 +-
 openair2/LAYER2/MAC/eNB_scheduler.c           |    44 +-
 openair2/LAYER2/MAC/eNB_scheduler_RA.c        |     2 +-
 openair2/LAYER2/MAC/eNB_scheduler_dlsch.c     |     2 +-
 openair2/LAYER2/MAC/eNB_scheduler_fairRR.c    |    24 +-
 .../LAYER2/MAC/eNB_scheduler_primitives.c     |    40 +-
 openair2/LAYER2/MAC/eNB_scheduler_ulsch.c     |    20 +-
 openair2/LAYER2/MAC/mac.h                     |    44 +-
 openair2/LAYER2/MAC/mac_extern.h              |     2 +-
 openair2/LAYER2/MAC/mac_proto.h               |    17 +-
 openair2/LAYER2/MAC/pre_processor.c           |     2 +-
 openair2/LAYER2/MAC/ue_procedures.c           |    28 +-
 .../NR_MAC_COMMON/nr_compute_tbs_common.c     |    60 +-
 openair2/LAYER2/NR_MAC_COMMON/nr_mac.h        |    34 +
 openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c |   658 +-
 openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h |    65 +-
 openair2/LAYER2/NR_MAC_COMMON/nr_mac_extern.h |     2 +-
 openair2/LAYER2/NR_MAC_UE/config_ue.c         |   119 +-
 openair2/LAYER2/NR_MAC_UE/mac_defs.h          |    20 +-
 openair2/LAYER2/NR_MAC_UE/mac_proto.h         |    51 +-
 openair2/LAYER2/NR_MAC_UE/nr_l1_helpers.h     |     1 +
 openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c  |    14 +-
 .../NR_MAC_UE/nr_ue_dci_configuration.c       |    92 +-
 openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c  |   386 +-
 openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c   |   342 +-
 openair2/LAYER2/NR_MAC_gNB/config.c           |   177 +-
 openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c    |   181 +-
 openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c |   489 +-
 .../LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c     |    82 +-
 .../LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c   |   525 +-
 .../LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c |   160 +-
 .../NR_MAC_gNB/gNB_scheduler_primitives.c     |  1158 +-
 .../LAYER2/NR_MAC_gNB/gNB_scheduler_srs.c     |    69 +-
 .../LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c     |   882 +-
 .../LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c   |   746 +-
 openair2/LAYER2/NR_MAC_gNB/mac_proto.h        |   116 +-
 openair2/LAYER2/NR_MAC_gNB/main.c             |   186 +-
 openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h       |   161 +-
 openair2/LAYER2/PDCP_v10.1.0/pdcp.c           |   208 +-
 openair2/LAYER2/PDCP_v10.1.0/pdcp.h           |   127 +-
 .../LAYER2/PDCP_v10.1.0/pdcp_primitives.c     |    33 +-
 .../LAYER2/PDCP_v10.1.0/pdcp_primitives.h     |    19 +-
 .../PDCP_v10.1.0/pdcp_sequence_manager.c      |    36 +-
 .../PDCP_v10.1.0/pdcp_sequence_manager.h      |    16 +-
 openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c      |     6 +-
 openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h      |     4 +-
 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c        |     2 +-
 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_entity.h |     8 +-
 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c   |    10 +-
 .../LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c  |    10 +-
 .../LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h  |     4 +-
 .../LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c    |     2 +-
 .../LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c  |    82 +-
 .../LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h  |    24 +-
 .../LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c     |    35 +-
 .../LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h     |     6 +-
 .../LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c     |    11 +-
 .../LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h     |     4 +-
 .../RLC/AM_v9.3.0/rlc_am_status_report.c      |    16 +-
 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c   |     2 +-
 .../AM_v9.3.0/rlc_am_timer_poll_retransmit.c  |     2 +-
 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c        |    12 +-
 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h        |    13 +-
 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_entity.h |     7 +-
 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c   |     7 +-
 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h   |    17 +-
 .../RLC/UM_v9.3.0/rlc_um_control_primitives.c |     2 +-
 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_entity.h |    11 +-
 openair2/LAYER2/RLC/rlc.c                     |    15 +-
 openair2/LAYER2/RLC/rlc.h                     |     2 +-
 openair2/LAYER2/RLC/rlc_mac.c                 |     4 +-
 openair2/LAYER2/RLC/rlc_rrc.c                 |    10 +-
 openair2/LAYER2/nr_pdcp/nr_pdcp_entity.c      |    20 +-
 .../LAYER2/nr_pdcp/nr_pdcp_integrity_nia1.c   |    66 +
 .../LAYER2/nr_pdcp/nr_pdcp_integrity_nia1.h   |    34 +
 openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c     |   154 +-
 openair2/LAYER2/nr_rlc/nr_rlc_entity.c        |    51 +-
 openair2/LAYER2/nr_rlc/nr_rlc_entity.h        |     2 +
 openair2/LAYER2/nr_rlc/nr_rlc_entity_am.c     |     6 +
 openair2/LAYER2/nr_rlc/nr_rlc_entity_am.h     |     1 +
 openair2/LAYER2/nr_rlc/nr_rlc_entity_tm.c     |     6 +
 openair2/LAYER2/nr_rlc/nr_rlc_entity_tm.h     |     1 +
 openair2/LAYER2/nr_rlc/nr_rlc_entity_um.c     |     6 +
 openair2/LAYER2/nr_rlc/nr_rlc_entity_um.h     |     1 +
 openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c       |    34 +-
 openair2/LAYER2/nr_rlc/nr_rlc_oai_api.h       |     6 +-
 openair2/LAYER2/nr_rlc/tests/test14.txt.gz    |   Bin 799 -> 787 bytes
 openair2/LAYER2/nr_rlc/tests/test15.txt.gz    |   Bin 554 -> 547 bytes
 openair2/LAYER2/nr_rlc/tests/test8.txt.gz     |   Bin 319 -> 319 bytes
 openair2/LAYER2/nr_rlc/tests/test9.txt.gz     |   Bin 316 -> 316 bytes
 openair2/LAYER2/rlc_v2/rlc_oai_api.c          |    12 +
 openair2/M2AP/m2ap_common.h                   |     5 -
 openair2/NETWORK_DRIVER/MESH/device.c         |     9 +-
 openair2/NETWORK_DRIVER/UE_IP/device.c        |     8 +-
 openair2/NR_PHY_INTERFACE/NR_IF_Module.c      |    41 +-
 openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c   |   265 +-
 openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.h   |    37 +-
 openair2/NR_UE_PHY_INTERFACE/NR_Packet_Drop.c |   183 +
 openair2/NR_UE_PHY_INTERFACE/NR_Packet_Drop.h |    68 +
 openair2/PHY_INTERFACE/phy_stub_UE.c          |     2 +-
 openair2/PHY_INTERFACE/phy_stub_UE.h          |     2 +-
 openair2/RRC/LITE/rrc_common.c                |     2 +-
 openair2/RRC/LTE/L2_interface.c               |     2 +-
 openair2/RRC/LTE/L2_interface_common.c        |     4 +-
 openair2/RRC/LTE/L2_interface_ue.c            |     2 +-
 openair2/RRC/LTE/MESSAGES/asn1_msg.c          |    18 +-
 openair2/RRC/LTE/defs_NB_IoT.h                |     4 +-
 openair2/RRC/LTE/rrc_UE.c                     |     9 +-
 openair2/RRC/LTE/rrc_defs.h                   |     8 +-
 openair2/RRC/LTE/rrc_eNB.c                    |   187 +-
 openair2/RRC/LTE/rrc_eNB_GTPV1U.c             |    48 +-
 openair2/RRC/LTE/rrc_eNB_GTPV1U.h             |    19 +-
 openair2/RRC/LTE/rrc_eNB_S1AP.c               |    52 +-
 openair2/RRC/LTE/rrc_proto.h                  |     4 +-
 openair2/RRC/NR/L2_nr_interface.c             |   234 +-
 openair2/RRC/NR/MESSAGES/asn1_msg.c           |   998 +-
 openair2/RRC/NR/MESSAGES/asn1_msg.h           |    20 +-
 openair2/RRC/NR/nr_rrc_config.c               |   595 +-
 openair2/RRC/NR/nr_rrc_config.h               |    25 +-
 openair2/RRC/NR/nr_rrc_defs.h                 |    20 +-
 openair2/RRC/NR/nr_rrc_proto.h                |    78 +-
 openair2/RRC/NR/rrc_gNB.c                     |   887 +-
 openair2/RRC/NR/rrc_gNB_NGAP.c                |    74 +-
 openair2/RRC/NR/rrc_gNB_nsa.c                 |    10 +-
 openair2/RRC/NR/rrc_gNB_reconfig.c            |  1350 +-
 openair2/RRC/NR_UE/L2_interface_ue.c          |     2 +-
 openair2/RRC/NR_UE/rrc_UE.c                   |    17 +-
 openair2/SDAP/nr_sdap/nr_sdap.c               |    52 +-
 openair2/SDAP/nr_sdap/nr_sdap.h               |    27 +-
 openair2/SDAP/nr_sdap/nr_sdap_entity.c        |    36 +-
 openair2/SDAP/nr_sdap/nr_sdap_entity.h        |    35 +-
 openair2/UTIL/OMG/defs.h                      |     6 -
 openair2/UTIL/OPT/opt.h                       |     5 +-
 openair2/UTIL/OPT/probe.c                     |     8 +
 openair2/X2AP/x2ap_common.h                   |     5 -
 openair3/M3AP/m3ap_common.h                   |     5 -
 openair3/NAS/COMMON/UTIL/nas_timer.c          |    20 +-
 openair3/NAS/COMMON/UTIL/socket.c             |     8 +-
 openair3/NAS/COMMON/UTIL/stty.c               |    14 +-
 openair3/NAS/NR_UE/nr_nas_msg_sim.h           |     1 -
 openair3/NAS/TEST/AS_SIMULATOR/as_simulator.c |    16 +-
 openair3/NAS/TEST/NETWORK/network_simulator.c |     8 +-
 openair3/NAS/TEST/USER/user_simulator.c       |     4 +-
 openair3/NAS/UE/API/USER/at_command.c         |    18 +-
 openair3/NAS/UE/API/USER/at_error.c           |     6 +-
 openair3/NAS/UE/API/USER/at_response.c        |     6 +-
 openair3/NAS/UE/EMM/Attach.c                  |    36 +-
 openair3/NAS/UE/EMM/Authentication.c          |    12 +-
 openair3/NAS/UE/EMM/Detach.c                  |     9 +-
 openair3/NAS/UE/EMM/EmmStatusHdl.c            |     3 +-
 openair3/NAS/UE/EMM/Identification.c          |     3 +-
 openair3/NAS/UE/EMM/IdleMode.c                |    28 +-
 openair3/NAS/UE/EMM/LowerLayer.c              |     8 +-
 openair3/NAS/UE/EMM/LowerLayer.h              |     2 +-
 openair3/NAS/UE/EMM/LowerLayer_defs.h         |     2 +-
 .../SAP/EmmDeregisteredAttemptingToAttach.c   |     2 +-
 .../EMM/SAP/EmmDeregisteredLimitedService.c   |     2 +-
 .../UE/EMM/SAP/EmmDeregisteredNormalService.c |     2 +-
 openair3/NAS/UE/EMM/SAP/EmmRegistered.c       |     2 +-
 .../NAS/UE/EMM/SAP/EmmRegisteredInitiated.c   |     2 +-
 openair3/NAS/UE/EMM/SAP/emm_as.c              |     6 +-
 openair3/NAS/UE/EMM/SAP/emm_asDef.h           |     4 +-
 openair3/NAS/UE/EMM/SAP/emm_esmDef.h          |     4 +-
 openair3/NAS/UE/EMM/SAP/emm_regDef.h          |     4 +-
 openair3/NAS/UE/EMM/SecurityModeControl.c     |     8 +-
 openair3/NAS/UE/EMM/emmData.h                 |     6 +-
 openair3/NAS/UE/EMM/emm_main.c                |    36 +-
 openair3/NAS/UE/EMM/emm_main.h                |     4 +-
 openair3/NAS/UE/EMM/emm_proc.h                |     6 +-
 .../ESM/DedicatedEpsBearerContextActivation.c |    18 +-
 .../ESM/DefaultEpsBearerContextActivation.c   |    22 +-
 .../NAS/UE/ESM/EpsBearerContextDeactivation.c |    20 +-
 openair3/NAS/UE/ESM/EsmStatusHdl.c            |     6 +-
 openair3/NAS/UE/ESM/PdnConnectivity.c         |    28 +-
 openair3/NAS/UE/ESM/PdnDisconnect.c           |    10 +-
 openair3/NAS/UE/ESM/SAP/esm_sap.c             |    40 +-
 openair3/NAS/UE/ESM/SAP/esm_sapDef.h          |     6 +-
 openair3/NAS/UE/ESM/SAP/esm_send.c            |     2 +-
 openair3/NAS/UE/ESM/SAP/esm_send.h            |     4 +-
 openair3/NAS/UE/ESM/esmData.h                 |     9 +-
 openair3/NAS/UE/ESM/esm_ebr.c                 |    17 +-
 openair3/NAS/UE/ESM/esm_ebr.h                 |     8 +-
 openair3/NAS/UE/ESM/esm_ebr_context.c         |    26 +-
 openair3/NAS/UE/ESM/esm_ebr_context.h         |     2 +-
 openair3/NAS/UE/ESM/esm_main.c                |    28 +-
 openair3/NAS/UE/ESM/esm_main.h                |     7 +-
 openair3/NAS/UE/ESM/esm_proc.h                |    37 +-
 openair3/NAS/UE/ESM/esm_pt.c                  |     8 +-
 openair3/NAS/UE/ESM/esm_pt.h                  |     4 +-
 openair3/NAS/UE/UEprocess.c                   |     4 +-
 openair3/NAS/UE/nas_proc.c                    |    80 +-
 openair3/NAS/UE/nas_proc.h                    |     8 +-
 openair3/NAS/UE/nas_proc_defs.h               |     4 +-
 openair3/NAS/UE/nas_ue_task.c                 |     6 +-
 openair3/NAS/UE/nas_user.c                    |    22 +-
 openair3/NAS/UE/nas_user.h                    |     2 +-
 openair3/NGAP/ngap_common.h                   |     7 -
 openair3/S1AP/s1ap_common.h                   |     7 -
 openair3/S1AP/s1ap_eNB_trace.c                |     2 +-
 openair3/SCTP/sctp_eNB_task.c                 |     6 +-
 openair3/UTILS/conversions.h                  |    18 +-
 openair3/ocp-gtpu/gtp_itf.cpp                 |   400 +-
 openair3/ocp-gtpu/gtp_itf.h                   |    65 +-
 rxsigF0.m                                     | 57345 +++++++++++++++
 targets/ARCH/COMMON/common_lib.h              |     5 +-
 targets/ARCH/IRIS/USERSPACE/LIB/iris_lib.cpp  |     2 +-
 targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp  |    51 +-
 targets/ARCH/iqplayer/iqplayer_lib.c          |     2 +-
 targets/ARCH/rfsimulator/README.md            |    18 +-
 targets/ARCH/rfsimulator/simulator.c          |    21 +-
 targets/ARCH/rfsimulator/stored_node.c        |     2 +-
 .../GENERIC-LTE-EPC/CONF/benetel-5g.conf      |     1 -
 .../CONF/gnb.band257.tm1.32PRB.usrpn300.conf  |     1 -
 .../CONF/gnb.band257.tm1.32PRB.usrpx300.conf  |     1 -
 .../CONF/gnb.band257.tm1.66PRB.usrpn300.conf  |     2 -
 .../CONF/gnb.band261.tm1.32PRB.usrpn300.conf  |     1 -
 .../CONF/gnb.band66.tm1.106PRB.usrpn300.conf  |     1 -
 .../CONF/gnb.band66.tm1.106PRB.usrpx300.conf  |     2 -
 .../CONF/gnb.band66.tm1.25PRB.usrpn300.conf   |   263 +
 .../gnb.band78.106PRB.30kHz,usrpb2x0.conf     |     1 -
 .../CONF/gnb.band78.106PRB.slave.conf         |     1 -
 .../CONF/gnb.band78.slave.conf                |     2 -
 .../gnb.band78.tm1.106PRB.PTRS.usrpx300.conf  |     2 -
 .../CONF/gnb.band78.tm1.106PRB.usrpb210.conf  |     2 -
 .../CONF/gnb.band78.tm1.106PRB.usrpn300.conf  |    13 +-
 .../CONF/gnb.band78.tm1.106PRB.usrpx300.conf  |     2 -
 .../CONF/gnb.band78.tm1.217PRB.usrpn300.conf  |     2 -
 .../CONF/gnb.band78.tm1.217PRB.usrpx300.conf  |     1 -
 .../CONF/gnb.band78.tm1.24PRB.usrpb210.conf   |     1 -
 .../CONF/gnb.band78.tm1.24PRB.usrpn300.conf   |     1 -
 .../CONF/gnb.band78.tm1.24PRB.usrpx300.conf   |     1 -
 .../CONF/gnb.band78.tm1.273PRB.usrpn300.conf  |     1 -
 .../CONF/rcc.band78.tm1.106PRB.nfapi.conf     |     1 -
 .../GENERIC-LTE-EPC/CONF/testing_gnb.conf     |     2 -
 .../CONF/testing_gnb_24PRB.conf               |     2 -
 .../CONF/testing_gnb_n310.conf                |     2 -
 .../CONF/testing_gnb_nsa_n310.conf            |     1 -
 .../PROJECTS/GENERIC-NR-5GC/CONF/cu_gnb.conf  |     1 -
 .../PROJECTS/GENERIC-NR-5GC/CONF/du_gnb.conf  |     1 -
 ...b.band78.tm1.106PRB.usrpn300.gtp-itti.conf |     1 -
 .../gnb.sa.band41.fr1.106PRB.usrpb210.conf    |    63 +-
 .../gnb.sa.band66.fr1.106PRB.usrpn300.conf    |     3 -
 ...gnb.sa.band78.fr1.106PRB.2x2.usrpn300.conf |    63 +-
 ....sa.band78.fr1.106PRB.usrpb210.4layer.conf |   297 +
 .../gnb.sa.band78.fr1.106PRB.usrpb210.conf    |    64 +-
 ...b.sa.band78.fr1.106PRB.usrpb210.sabox.conf |     1 -
 ...gnb.sa.band78.fr1.162PRB.2x2.usrpn300.conf |    49 +-
 ...gnb.sa.band78.fr1.217PRB.2x2.usrpn300.conf |   320 +
 .../gnb.sa.band78.fr1.24PRB.usrpb210.conf     |     3 -
 ...gnb.sa.band78.fr1.273PRB.2x2.usrpn300.conf |   320 +
 .../GENERIC-NR-5GC/CONF/ue_nr_prs.conf        |    14 +-
 targets/RT/USER/lte-enb.c                     |     6 +-
 targets/RT/USER/lte-ru.c                      |    15 +-
 targets/RT/USER/lte-softmodem.h               |    17 +-
 targets/RT/USER/lte-uesoftmodem.c             |     7 +-
 targets/TEST/PDCP/test_pdcp.c                 |    66 +-
 targets/TEST/PDCP/test_pdcp.h                 |    14 +-
 targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c    |    12 +-
 txsig0.m                                      | 61441 ++++++++++++++++
 583 files changed, 156367 insertions(+), 16297 deletions(-)
 create mode 100644 ci-scripts/conf_files/gnb.sa.band78.fr1.106PRB.usrpb210.conf
 create mode 100644 ci-scripts/docker/Dockerfile.formatting.bionic
 create mode 100644 ci-scripts/xml_files/container_5g_l2sim_proxy.xml
 create mode 100644 ci-scripts/xml_files/container_sa_b200_quectel.xml
 create mode 100644 ci-scripts/xml_files/container_sa_b200_terminate.xml
 create mode 100644 ci-scripts/xml_files/formatting_check.xml
 create mode 100644 ci-scripts/xml_files/fr1_5gc_closure.xml
 create mode 100644 ci-scripts/xml_files/fr1_5gc_start.xml
 create mode 100644 ci-scripts/yaml_files/sa_b200_gnb/docker-compose.yml
 create mode 100644 doc/NR_SA_CN5G_gNB_B210_COTS_UE_Tutorial.md
 create mode 100644 doc/NR_SA_CN5G_gNB_N300_COTS_UE_Tutorial.md
 create mode 100644 doc/RUN_NR_multiple_BWPs.md
 create mode 100644 doc/UL_MIMO.txt
 create mode 100644 doc/images/mimo_antenna_ports.png
 create mode 100644 doc/testbenches_doc_resources/4g-faraday-bench.pdf
 create mode 100644 doc/testbenches_doc_resources/4g-faraday-bench.png
 create mode 100644 doc/testbenches_doc_resources/4g-faraday-bench.tex
 create mode 100644 doc/testbenches_doc_resources/5g-nsa-faraday-bench.pdf
 create mode 100644 doc/testbenches_doc_resources/5g-nsa-faraday-bench.png
 create mode 100644 doc/testbenches_doc_resources/5g-nsa-faraday-bench.tex
 create mode 100644 doc/testbenches_doc_resources/5g-ota-bench.pdf
 create mode 100644 doc/testbenches_doc_resources/5g-ota-bench.png
 create mode 100644 doc/testbenches_doc_resources/5g-ota-bench.tex
 create mode 100644 doc/testbenches_doc_resources/antenna.pdf
 create mode 100644 doc/testbenches_doc_resources/b200-mini.png
 create mode 100644 doc/testbenches_doc_resources/b210.jpg
 delete mode 100755 doc/testbenches_doc_resources/indoor_live.jpg
 delete mode 100755 doc/testbenches_doc_resources/legacy1.jpg
 delete mode 100755 doc/testbenches_doc_resources/legacy2.jpg
 create mode 100644 doc/testbenches_doc_resources/n310.png
 delete mode 100755 doc/testbenches_doc_resources/next_ci.jpg
 delete mode 100755 doc/testbenches_doc_resources/next_dev.jpg
 delete mode 100755 doc/testbenches_doc_resources/outdoor_live.jpg
 create mode 100644 doc/testbenches_doc_resources/phone.pdf
 create mode 100644 doc/testbenches_doc_resources/quectel.png
 create mode 100644 doc/testbenches_doc_resources/server.pdf
 create mode 100644 doc/testbenches_doc_resources/x310.jpg
 create mode 100644 doc/tutorial_resources/docker-compose-basic-nrf.yaml
 create mode 100644 doc/tutorial_resources/oai_db.sql
 create mode 100644 ldpctest_BG_1_Zc_384_rate_1-3_block_length_8448_maxit_5.txt
 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC/logo.png
 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC/nrLDPC.pdf
 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC/nrLDPC.tex
 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC/references.bib
 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC_doxyCfg
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc_avx512.h
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_init_mem.h
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/CMakeLists.txt
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/CMakeLists.txt
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG1_avx2.c
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG2_avx2.c
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/main.c
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/CMakeLists.txt
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProcPc_gen_BG1_avx512.c
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProcPc_gen_BG2_avx512.c
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProc_gen_BG1_avx512.c
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProc_gen_BG2_avx512.c
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/main.c
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/CMakeLists.txt
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/main.c
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/CMakeLists.txt
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.c
 create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/main.c
 create mode 100755 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/run_ldpc_generators.sh
 create mode 100644 openair1/PHY/NR_TRANSPORT/dlsch_pdu_rel15.time_alloc_list_flag
 create mode 100644 openair1/PHY/NR_TRANSPORT/dlsch_pdu_rel15.time_allocation_type
 create mode 100644 openair1/PHY/NR_UE_TRANSPORT/csi_rx.c
 create mode 100644 openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeCache.txt
 create mode 100644 openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CMakeCCompiler.cmake
 create mode 100644 openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CMakeCXXCompiler.cmake
 create mode 100755 openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_C.bin
 create mode 100755 openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_CXX.bin
 create mode 100644 openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CMakeSystem.cmake
 create mode 100644 openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CompilerIdC/CMakeCCompilerId.c
 create mode 100755 openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CompilerIdC/a.out
 create mode 100644 openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CompilerIdCXX/CMakeCXXCompilerId.cpp
 create mode 100755 openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CompilerIdCXX/a.out
 create mode 100644 openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeOutput.log
 create mode 100644 openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/cmake.check_cache
 create mode 100644 openair1/SIMULATION/NR_UE_PHY/unit_tests/build/testlogs/frame_config_test.txt
 create mode 100644 openair1/SIMULATION/NR_UE_PHY/unit_tests/build/testlogs/harq_test.txt
 create mode 100644 openair1/SIMULATION/NR_UE_PHY/unit_tests/build/testlogs/pbch_test.txt
 create mode 100644 openair1/SIMULATION/NR_UE_PHY/unit_tests/build/testlogs/pss_test.txt
 create mode 100644 openair1/SIMULATION/NR_UE_PHY/unit_tests/build/testlogs/pucch_uci_test.txt
 create mode 100644 openair1/SIMULATION/NR_UE_PHY/unit_tests/build/testlogs/srs_test.txt
 create mode 100644 openair1/SIMULATION/NR_UE_PHY/unit_tests/build/testlogs/sss_test.txt
 mode change 100755 => 100644 openair2/LAYER2/NR_MAC_UE/nr_l1_helpers.h
 create mode 100644 openair2/LAYER2/nr_pdcp/nr_pdcp_integrity_nia1.c
 create mode 100644 openair2/LAYER2/nr_pdcp/nr_pdcp_integrity_nia1.h
 create mode 100644 openair2/NR_UE_PHY_INTERFACE/NR_Packet_Drop.c
 create mode 100644 openair2/NR_UE_PHY_INTERFACE/NR_Packet_Drop.h
 create mode 100644 rxsigF0.m
 create mode 100644 targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band66.tm1.25PRB.usrpn300.conf
 create mode 100644 targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.4layer.conf
 create mode 100644 targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.217PRB.2x2.usrpn300.conf
 create mode 100644 targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.273PRB.2x2.usrpn300.conf
 create mode 100644 txsig0.m

diff --git a/ci-scripts/Jenkinsfile-GitLab-Container b/ci-scripts/Jenkinsfile-GitLab-Container
index c22e6fabec7..b37c9d4f4b3 100644
--- a/ci-scripts/Jenkinsfile-GitLab-Container
+++ b/ci-scripts/Jenkinsfile-GitLab-Container
@@ -278,6 +278,26 @@ pipeline {
             }
           }
         }
+        stage ("SA B200 Sanity Check") {
+          when { expression {doMandatoryTests} }
+          steps {
+            script {
+              triggerSlaveJob ('RAN-SA-B200-Module-SABOX-Container', 'Test-SA-B200')
+            }
+          }
+          post {
+            always {
+              script {
+                finalizeSlaveJob('RAN-SA-B200-Module-SABOX-Container')
+              }
+            }
+            failure {
+              script {
+                currentBuild.result = 'FAILURE'
+              }
+            }
+          }
+        }
         stage ("Test OAI NR UE - OAI gNB - TDD - Band 78 - N300") {
           when { expression {doMandatoryTests} }
           steps {
diff --git a/ci-scripts/Jenkinsfile-push-registry b/ci-scripts/Jenkinsfile-push-registry
index bc1a80ba614..feb1807c912 100644
--- a/ci-scripts/Jenkinsfile-push-registry
+++ b/ci-scripts/Jenkinsfile-push-registry
@@ -66,7 +66,7 @@ pipeline {
           withCredentials([
             [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.DH_Credentials}", usernameVariable: 'DH_Username', passwordVariable: 'DH_Password']
           ]) {
-            def listOfImages = ["oai-enb", "oai-gnb", "oai-lte-ue", "oai-nr-ue"]
+            def listOfImages = ["oai-enb", "oai-gnb", "oai-lte-ue", "oai-nr-ue", "proxy"]
             sh "docker login -u ${DH_Username} -p ${DH_Password} > /dev/null 2>&1"
             listOfImages.eachWithIndex { item, iindex ->
               sh "docker image tag ${item}:develop ${DH_Account}/${item}:develop"
diff --git a/ci-scripts/Jenkinsfile-tmp-multi-enb b/ci-scripts/Jenkinsfile-tmp-multi-enb
index c3b825ec062..fb523169201 100644
--- a/ci-scripts/Jenkinsfile-tmp-multi-enb
+++ b/ci-scripts/Jenkinsfile-tmp-multi-enb
@@ -36,6 +36,9 @@ def testStageName = params.pipelineTestStageName
 // Name of the phone resource
 def ciSmartPhoneResource = params.smartphonesResource
 
+// Name of the phone resource
+def ciEpcResource = params.epcResource
+
 // Global Parameters. Normally they should be populated when the master job
 // triggers the slave job with parameters
 def eNB_Repository
@@ -51,7 +54,7 @@ pipeline {
     options {
         disableConcurrentBuilds()
         ansiColor('xterm')
-        lock (ciSmartPhoneResource)
+        lock(extra: [[resource: ciEpcResource]], resource: ciSmartPhoneResource)
     }
     stages {
         stage ("Verify Parameters") {
@@ -216,6 +219,76 @@ pipeline {
                 }
             }
         }
+        stage ("Terminate") {
+            parallel {
+                stage('Terminate UE') {
+                    // Bypassing this stage if there are no abd server defined
+                    when {
+                      expression { params.ADB_IPAddress != "none" }
+                    }
+                    steps {
+                        echo '\u2705 \u001B[32mTerminate UE\u001B[0m'
+                        withCredentials([
+                            [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.ADB_Credentials}", usernameVariable: 'ADB_Username', passwordVariable: 'ADB_Password']
+                        ]) {
+                            sh "python3 ci-scripts/main.py --mode=TerminateUE --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password}"
+                        }
+                    }
+                }
+                stage('Terminate eNB') {
+                    steps {
+                        echo '\u2705 \u001B[32mTerminate eNB\u001B[0m'
+                        withCredentials([
+                            [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password']
+                        ]) {
+                            sh "python3 ci-scripts/main.py --mode=TerminateeNB --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password}"
+                        }
+                    }
+                }
+                stage('Terminate SPGW') {
+                    // Bypassing this stage if EPC server is not defined
+                    when {
+                      expression { params.EPC_IPAddress != "none" }
+                    }
+                    steps {
+                        echo '\u2705 \u001B[32mTerminate SPGW\u001B[0m'
+                        withCredentials([
+                            [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password']
+                        ]) {
+                            sh "python3 ci-scripts/main.py --mode=TerminateSPGW --EPCIPAddress=${params.EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCType=${params.EPC_Type} --EPCSourceCodePath=${params.EPC_SourceCodePath}"
+                        }
+                    }
+                }
+                stage('Terminate MME') {
+                    // Bypassing this stage if EPC server is not defined
+                    when {
+                      expression { params.EPC_IPAddress != "none" }
+                    }
+                    steps {
+                        echo '\u2705 \u001B[32mTerminate MME\u001B[0m'
+                        withCredentials([
+                            [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password']
+                        ]) {
+                            sh "python3 ci-scripts/main.py --mode=TerminateMME --EPCIPAddress=${params.EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCType=${params.EPC_Type} --EPCSourceCodePath=${params.EPC_SourceCodePath}"
+                        }
+                    }
+                }
+                stage('Terminate HSS') {
+                    // Bypassing this stage if EPC server is not defined
+                    when {
+                      expression { params.EPC_IPAddress != "none" }
+                    }
+                    steps {
+                        echo '\u2705 \u001B[32mTerminate HSS\u001B[0m'
+                        withCredentials([
+                            [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password']
+                        ]) {
+                            sh "python3 ci-scripts/main.py --mode=TerminateHSS --EPCIPAddress=${params.EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCType=${params.EPC_Type} --EPCSourceCodePath=${params.EPC_SourceCodePath}"
+                        }
+                    }
+                }
+            }
+        }
         stage('Log Collection') {
             parallel {
                 stage('Log Collection (eNB - Build)') {
@@ -242,7 +315,7 @@ pipeline {
                              [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password']
                         ]) {
                             echo '\u2705 \u001B[32mLog Collection (eNB - Run)\u001B[0m'
-                            sh "python3 ci-scripts/main.py --mode=LogCollecteNB --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath}"
+                            sh "python3 ci-scripts/main.py --mode=LogCollecteNB --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath} --BuildId=${env.BUILD_ID}"
 
                             echo '\u2705 \u001B[32mLog Transfer (eNB - Run)\u001B[0m'
                             sh "sshpass -p \'${eNB_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${eNB_Username}@${params.eNB_IPAddress}:${eNB_SourceCodePath}/cmake_targets/enb.log.zip ./enb.log.${env.BUILD_ID}.zip || true"
@@ -259,6 +332,116 @@ pipeline {
                         }
                     }
                 }
+                stage('Log Collection (SPGW)') {
+                    // Bypassing this stage if EPC server is not defined
+                    when {
+                      expression { params.EPC_IPAddress != "none" }
+                    }
+                    steps {
+                        withCredentials([
+                             [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password']
+                        ]) {
+                            echo '\u2705 \u001B[32mLog Collection (SPGW)\u001B[0m'
+                            sh "python3 ci-scripts/main.py --mode=LogCollectSPGW --EPCIPAddress=${params.EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --EPCType=${params.EPC_Type}"
+
+                            echo '\u2705 \u001B[32mLog Transfer (SPGW)\u001B[0m'
+                            sh "sshpass -p \'${EPC_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${EPC_Username}@${params.EPC_IPAddress}:${EPC_SourceCodePath}/scripts/spgw.log.zip ./spgw.log.${env.BUILD_ID}.zip || true"
+                        }
+                        script {
+                            if(fileExists("spgw.log.${env.BUILD_ID}.zip")) {
+                                archiveArtifacts "spgw.log.${env.BUILD_ID}.zip"
+                            }
+                        }
+                    }
+                }
+                stage('Log Collection (MME)') {
+                    // Bypassing this stage if EPC server is not defined
+                    when {
+                      expression { params.EPC_IPAddress != "none" }
+                    }
+                    steps {
+                        withCredentials([
+                             [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password']
+                        ]) {
+                            echo '\u2705 \u001B[32mLog Collection (MME)\u001B[0m'
+                            sh "python3 ci-scripts/main.py --mode=LogCollectMME --EPCIPAddress=${params.EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --EPCType=${params.EPC_Type}"
+
+                            echo '\u2705 \u001B[32mLog Transfer (MME)\u001B[0m'
+                            sh "sshpass -p \'${EPC_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${EPC_Username}@${params.EPC_IPAddress}:${EPC_SourceCodePath}/scripts/mme.log.zip ./mme.log.${env.BUILD_ID}.zip || true"
+                        }
+                        script {
+                            if(fileExists("mme.log.${env.BUILD_ID}.zip")) {
+                                archiveArtifacts "mme.log.${env.BUILD_ID}.zip"
+                            }
+                        }
+                    }
+                }
+                stage('Log Collection (HSS)') {
+                    // Bypassing this stage if EPC server is not defined
+                    when {
+                      expression { params.EPC_IPAddress != "none" }
+                    }
+                    steps {
+                        withCredentials([
+                             [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password']
+                        ]) {
+                            echo '\u2705 \u001B[32mLog Collection (HSS)\u001B[0m'
+                            sh "python3 ci-scripts/main.py --mode=LogCollectHSS --EPCIPAddress=${params.EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --EPCType=${params.EPC_Type}"
+
+                            echo '\u2705 \u001B[32mLog Transfer (HSS)\u001B[0m'
+                            sh "sshpass -p \'${EPC_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${EPC_Username}@${params.EPC_IPAddress}:${EPC_SourceCodePath}/scripts/hss.log.zip ./hss.log.${env.BUILD_ID}.zip || true"
+                        }
+                        script {
+                            if(fileExists("hss.log.${env.BUILD_ID}.zip")) {
+                                archiveArtifacts "hss.log.${env.BUILD_ID}.zip"
+                            }
+                        }
+                    }
+                }
+                stage('Log Collection (Ping)') {
+                    // Bypassing this stage if EPC server is not defined
+                    when {
+                      expression { params.EPC_IPAddress != "none" }
+                    }
+                    steps {
+                        withCredentials([
+                             [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password']
+                        ]) {
+                            echo '\u2705 \u001B[32mLog Collection (Ping)\u001B[0m'
+                            sh "python3 ci-scripts/main.py --mode=LogCollectPing --EPCIPAddress=${params.EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --EPCType=${params.EPC_Type}"
+
+                            echo '\u2705 \u001B[32mLog Transfer (Ping)\u001B[0m'
+                            sh "sshpass -p \'${EPC_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${EPC_Username}@${params.EPC_IPAddress}:${EPC_SourceCodePath}/scripts/ping.log.zip ./ping.log.${env.BUILD_ID}.zip || true"
+                        }
+                        script {
+                            if(fileExists("ping.log.${env.BUILD_ID}.zip")) {
+                                archiveArtifacts "ping.log.${env.BUILD_ID}.zip"
+                            }
+                        }
+                    }
+                }
+                stage('Log Collection (Iperf)') {
+                    // Bypassing this stage if EPC server is not defined
+                    when {
+                      expression { params.EPC_IPAddress != "none" }
+                    }
+                    steps {
+                        withCredentials([
+                             [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password']
+                        ]) {
+                            echo '\u2705 \u001B[32mLog Collection (Iperf)\u001B[0m'
+                            sh "python3 ci-scripts/main.py --mode=LogCollectIperf --EPCIPAddress=${params.EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --EPCType=${params.EPC_Type}"
+
+                            echo '\u2705 \u001B[32mLog Transfer (Iperf)\u001B[0m'
+                            sh "sshpass -p \'${EPC_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${EPC_Username}@${params.EPC_IPAddress}:${EPC_SourceCodePath}/scripts/iperf.log.zip ./iperf.log.${env.BUILD_ID}.zip || true"
+                        }
+                        script {
+                            if(fileExists("iperf.log.${env.BUILD_ID}.zip")) {
+                                archiveArtifacts "iperf.log.${env.BUILD_ID}.zip"
+                            }
+                        }
+                    }
+                }
             }
         }
     }
diff --git a/ci-scripts/Jenkinsfile-trig-nsa b/ci-scripts/Jenkinsfile-trig-nsa
index 772b34231ab..8e81b75e58e 100644
--- a/ci-scripts/Jenkinsfile-trig-nsa
+++ b/ci-scripts/Jenkinsfile-trig-nsa
@@ -20,6 +20,9 @@
  *      contact@openairinterface.org
  */
 
+// necessary for reading JSON
+import groovy.json.JsonSlurper
+
 // Template Jenkins Declarative Pipeline script to run Test w/ RF HW
 
 // Location of the python executor node shall be in the same subnet as the others servers
@@ -37,12 +40,12 @@ pipeline {
     stages {
         stage ("Launcher") {
             steps {
-                script {     
-                    //retrieve MR that are opened nd with tag NSA             
-                    MR_LIST= sh returnStdout: true, script: 'curl --silent "https://gitlab.eurecom.fr/api/v4/projects/oai%2Fopenairinterface5g/merge_requests?state=opened&per_page=100&labels=NSA" | jq ".[].iid" || true '
-                    echo "List of selected MR:\n${MR_LIST}" 
-                    def MR_ARRAY = MR_LIST.split('\n') 
-                    //for every selected MR, retrieve the branch name and the latest commit              
+                script {
+                    // retrieve MR that are opened nd with tag NSA
+                    MR_LIST = sh returnStdout: true, script: 'curl --silent "https://gitlab.eurecom.fr/api/v4/projects/oai%2Fopenairinterface5g/merge_requests?state=opened&per_page=100&labels=NSA" | jq -cj "[.[].iid]"'
+                    echo "List of selected MRs: ${MR_LIST.trim()}"
+                    def MR_ARRAY = new JsonSlurper().parseText(MR_LIST.trim())
+                    // for every selected MR, retrieve the branch name and the latest commit
                     for (MR in MR_ARRAY) {
                         SRC_BRANCH=sh returnStdout: true, script: """curl --silent "https://gitlab.eurecom.fr/api/v4/projects/oai%2Fopenairinterface5g/merge_requests/${MR}" | jq ".source_branch" || true """
                         SRC_BRANCH=SRC_BRANCH.trim()
@@ -113,6 +116,21 @@ pipeline {
                         GitPostArgs += jobName + ' ' + build_url + ' ' + build_id + ' ' + jobResult + ' '
                         echo GitPostArgs
 
+                        //calling SA-AmariS
+                        jobName = "RAN-SA-AmariS-CN5G"
+                        jobStatus =  build job: jobName, wait : true, propagate : false, parameters: [
+                            string(name: 'eNB_MR', value: String.valueOf(MR)),
+                            string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)),
+                            string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)),
+                            string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)),
+                            booleanParam(name: 'eNB_mergeRequest', value: Boolean.valueOf(ALLOW_MERGE))
+                        ]
+                        jobResult = jobStatus.getResult()
+                        build_url = jobStatus.getAbsoluteUrl()
+                        build_id = jobStatus.getNumber().toString()
+                        GitPostArgs += jobName + ' ' + build_url + ' ' + build_id + ' ' + jobResult + ' '
+                        echo GitPostArgs
+
                         //calling OAIUE N310-X300
                         jobName = "RAN-SA-OAIUE-N310-X300-CN5G"
                         jobStatus =  build job: jobName, wait : true, propagate : false, parameters: [
diff --git a/ci-scripts/checkCodingFormattingRules.sh b/ci-scripts/checkCodingFormattingRules.sh
index a805f765dfb..c29941cade3 100755
--- a/ci-scripts/checkCodingFormattingRules.sh
+++ b/ci-scripts/checkCodingFormattingRules.sh
@@ -59,7 +59,7 @@ if [ $# -eq 0 ]
 then
     echo " ---- Checking the whole repository ----"
     echo ""
-    NB_FILES_TO_FORMAT=`astyle --dry-run --options=ci-scripts/astyle-options.txt --recursive *.c *.h | grep -c Formatted || true`
+    NB_FILES_TO_FORMAT=`astyle --dry-run --options=ci-scripts/astyle-options.txt --recursive --exclude=ci-scripts --exclude=cmake_targets *.c *.h | grep -c Formatted || true`
     echo "Nb Files that do NOT follow OAI rules: $NB_FILES_TO_FORMAT"
     echo $NB_FILES_TO_FORMAT > ./oai_rules_result.txt
 
@@ -136,7 +136,7 @@ fi
 # Merge request scenario
 
 MERGE_COMMMIT=`git log -n1 --pretty=format:%H`
-TARGET_INIT_COMMIT=`cat .git/refs/remotes/origin/$TARGET_BRANCH`
+TARGET_INIT_COMMIT=`git log -n1 --pretty=format:%H origin/$TARGET_BRANCH`
 
 echo " ---- Checking the modified files by the merge request ----"
 echo ""
diff --git a/ci-scripts/ci_ueinfra.yaml b/ci-scripts/ci_ueinfra.yaml
index b888f6bb59f..76ebaf0f975 100644
--- a/ci-scripts/ci_ueinfra.yaml
+++ b/ci-scripts/ci_ueinfra.yaml
@@ -50,12 +50,12 @@ amarisoft_ue_1:
   WakeupScript : none
   DetachScript : none
   #end 
-  Cmd : /root/NV17-12-21/ue/lteue 
+  Cmd : /root/NV18-06-2022/ue/lteue
   Config : /root/NV17-12-21/ue/config/oaicicd-ue-Ping-SATest.cfg 
   Duration : 60
   Ping : /tmp/test_ue1.log
   UELog : /tmp/ue1.log
-  HostIPAddress : 192.168.18.89
+  HostIPAddress : 172.21.16.144
   HostUsername : root
   HostPassword : toor 
   HostSourceCodePath : /tmp
@@ -71,7 +71,7 @@ amarisoft_ue_2:
   WakeupScript : none
   DetachScript : none
   #end 
-  Cmd : /root/NV17-12-21/ue/lteue 
+  Cmd : /root/NV18-06-2022/ue/lteue
   Config : /root/NV17-12-21/ue/config/xxxxxxx.cfg #to be updated for an other scenario 
   Duration : 60
   Ping :
diff --git a/ci-scripts/cls_containerize.py b/ci-scripts/cls_containerize.py
index 259db7bffe6..8f992689e20 100644
--- a/ci-scripts/cls_containerize.py
+++ b/ci-scripts/cls_containerize.py
@@ -74,6 +74,7 @@ class Containerize():
 		self.eNB2SourceCodePath = ''
 		self.forcedWorkspaceCleanup = False
 		self.imageKind = ''
+		self.proxyCommit = None
 		self.eNB_instance = 0
 		self.eNB_serverId = ['', '', '']
 		self.yamlPath = ['', '', '']
@@ -421,6 +422,124 @@ class Containerize():
 			HTML.CreateHtmlTabFooter(False)
 			sys.exit(1)
 
+	def BuildProxy(self, HTML):
+		if self.ranRepository == '' or self.ranBranch == '' or self.ranCommitID == '':
+			HELP.GenericHelp(CONST.Version)
+			sys.exit('Insufficient Parameter')
+		if self.eNB_serverId[self.eNB_instance] == '0':
+			lIpAddr = self.eNBIPAddress
+			lUserName = self.eNBUserName
+			lPassWord = self.eNBPassword
+			lSourcePath = self.eNBSourceCodePath
+		elif self.eNB_serverId[self.eNB_instance] == '1':
+			lIpAddr = self.eNB1IPAddress
+			lUserName = self.eNB1UserName
+			lPassWord = self.eNB1Password
+			lSourcePath = self.eNB1SourceCodePath
+		elif self.eNB_serverId[self.eNB_instance] == '2':
+			lIpAddr = self.eNB2IPAddress
+			lUserName = self.eNB2UserName
+			lPassWord = self.eNB2Password
+			lSourcePath = self.eNB2SourceCodePath
+		if lIpAddr == '' or lUserName == '' or lPassWord == '' or lSourcePath == '':
+			HELP.GenericHelp(CONST.Version)
+			sys.exit('Insufficient Parameter')
+		if self.proxyCommit is None:
+			HELP.GenericHelp(CONST.Version)
+			sys.exit('Insufficient Parameter (need proxyCommit for proxy build)')
+		logging.debug('Building on server: ' + lIpAddr)
+		mySSH = SSH.SSHConnection()
+		mySSH.open(lIpAddr, lUserName, lPassWord)
+
+		# Check that we are on Ubuntu
+		mySSH.command('hostnamectl', '\$', 5)
+		result = re.search('Ubuntu',  mySSH.getBefore())
+		self.host = result.group(0)
+		if self.host != 'Ubuntu':
+			logging.error('\u001B[1m Can build proxy only on Ubuntu server\u001B[0m')
+			mySSH.close()
+			sys.exit(1)
+
+		self.cli = 'docker'
+		self.cliBuildOptions = '--no-cache'
+
+		# Workaround for some servers, we need to erase completely the workspace
+		if self.forcedWorkspaceCleanup:
+			mySSH.command('echo ' + lPassWord + ' | sudo -S rm -Rf ' + lSourcePath, '\$', 15)
+
+		oldRanCommidID = self.ranCommitID
+		oldRanRepository = self.ranRepository
+		oldRanAllowMerge = self.ranAllowMerge
+		self.ranCommitID = self.proxyCommit
+		self.ranRepository = 'https://github.com/EpiSci/oai-lte-5g-multi-ue-proxy.git'
+		self.ranAllowMerge = False
+		self._createWorkspace(mySSH, lPassWord, lSourcePath)
+		# to prevent accidentally overwriting data that might be used later
+		self.ranCommitID = oldRanCommidID
+		self.ranRepository = oldRanRepository
+		self.ranAllowMerge = oldRanAllowMerge
+
+		# Let's remove any previous run artifacts if still there
+		mySSH.command(self.cli + ' image prune --force', '\$', 30)
+		# Remove any previous proxy image
+		mySSH.command(self.cli + ' image rm oai-lte-multi-ue-proxy:latest || true', '\$', 30)
+
+		tag = self.proxyCommit
+		logging.debug('building L2sim proxy image for tag ' + tag)
+		# check if the corresponding proxy image with tag exists. If not, build it
+		mySSH.command(self.cli + ' image inspect --format=\'Size = {{.Size}} bytes\' proxy:' + tag, '\$', 5)
+		buildProxy = mySSH.getBefore().count('o such image') != 0
+		if buildProxy:
+			mySSH.command(self.cli + ' build ' + self.cliBuildOptions + ' --target oai-lte-multi-ue-proxy --tag proxy:' + tag + ' --file docker/Dockerfile.ubuntu18.04 . > cmake_targets/log/proxy-build.log 2>&1', '\$', 180)
+			# Note: at this point, OAI images are flattened, but we cannot do this
+			# here, as the flatten script is not in the proxy repo
+			mySSH.command(self.cli + ' image inspect --format=\'Size = {{.Size}} bytes\' proxy:' + tag, '\$', 5)
+			if mySSH.getBefore().count('o such image') != 0:
+				logging.error('\u001B[1m Build of L2sim proxy failed\u001B[0m')
+				mySSH.close()
+				HTML.CreateHtmlTestRow('commit ' + tag, 'KO', CONST.ALL_PROCESSES_OK)
+				HTML.CreateHtmlTabFooter(False)
+				sys.exit(1)
+		else:
+			logging.debug('L2sim proxy image for tag ' + tag + ' already exists, skipping build')
+
+		# retag the build images to that we pick it up later
+		mySSH.command('docker image tag proxy:' + tag + ' oai-lte-multi-ue-proxy:latest', '\$', 5)
+
+		# no merge: is a push to develop, tag the image so we can push it to the registry
+		if not self.ranAllowMerge:
+			mySSH.command('docker image tag proxy:' + tag + ' proxy:develop', '\$', 5)
+
+		# we assume that the host on which this is built will also run the proxy. The proxy
+		# currently requires the following command, and the docker-compose up mechanism of
+		# the CI does not allow to run arbitrary commands. Note that the following actually
+		# belongs to the deployment, not the build of the proxy...
+		logging.warning('the following command belongs to deployment, but no mechanism exists to exec it there!')
+		mySSH.command('sudo ifconfig lo: 127.0.0.2 netmask 255.0.0.0 up', '\$', 5)
+
+		# Analyzing the logs
+		if buildProxy:
+			self.testCase_id = HTML.testCase_id
+			mySSH.command('cd ' + lSourcePath + '/cmake_targets', '\$', 5)
+			mySSH.command('mkdir -p proxy_build_log_' + self.testCase_id, '\$', 5)
+			mySSH.command('mv log/* ' + 'proxy_build_log_' + self.testCase_id, '\$', 5)
+			if (os.path.isfile('./proxy_build_log_' + self.testCase_id + '.zip')):
+				os.remove('./proxy_build_log_' + self.testCase_id + '.zip')
+			if (os.path.isdir('./proxy_build_log_' + self.testCase_id)):
+				shutil.rmtree('./proxy_build_log_' + self.testCase_id)
+			mySSH.command('zip -r -qq proxy_build_log_' + self.testCase_id + '.zip proxy_build_log_' + self.testCase_id, '\$', 5)
+			mySSH.copyin(lIpAddr, lUserName, lPassWord, lSourcePath + '/cmake_targets/build_log_' + self.testCase_id + '.zip', '.')
+			# don't delete such that we might recover the zips
+			#mySSH.command('rm -f build_log_' + self.testCase_id + '.zip','\$', 5)
+
+		# Cleaning any created tmp volume
+		mySSH.command(self.cli + ' volume prune --force || true','\$', 15)
+		mySSH.close()
+
+		logging.info('\u001B[1m Building L2sim Proxy Image Pass\u001B[0m')
+		HTML.CreateHtmlTestRow('commit ' + tag, 'OK', CONST.ALL_PROCESSES_OK)
+		HTML.CreateHtmlNextTabHeaderTestRow(self.collectInfo, self.allImagesSize)
+
 	def Copy_Image_to_Test_Server(self, HTML):
 		imageTag = 'develop'
 		if (self.ranAllowMerge):
@@ -567,8 +686,10 @@ class Containerize():
 		if status:
 			HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
 		else:
+			self.exitStatus = 1
 			HTML.CreateHtmlTestRow('N/A', 'KO', CONST.ALL_PROCESSES_OK)
 
+
 	def UndeployObject(self, HTML, RAN):
 		if self.eNB_serverId[self.eNB_instance] == '0':
 			lIpAddr = self.eNBIPAddress
@@ -588,7 +709,7 @@ class Containerize():
 		if lIpAddr == '' or lUserName == '' or lPassWord == '' or lSourcePath == '':
 			HELP.GenericHelp(CONST.Version)
 			sys.exit('Insufficient Parameter')
-		logging.debug('\u001B[1m Deploying OAI Object on server: ' + lIpAddr + '\u001B[0m')
+		logging.debug('\u001B[1m Undeploying OAI Object from server: ' + lIpAddr + '\u001B[0m')
 		mySSH = SSH.SSHConnection()
 		mySSH.open(lIpAddr, lUserName, lPassWord)
 		mySSH.command('cd ' + lSourcePath + '/' + self.yamlPath[self.eNB_instance], '\$', 5)
diff --git a/ci-scripts/cls_physim.py b/ci-scripts/cls_physim.py
index ecd8f63af12..0342333c060 100644
--- a/ci-scripts/cls_physim.py
+++ b/ci-scripts/cls_physim.py
@@ -168,7 +168,7 @@ class PhySim:
 
 		mySSH.close()
 		#check build status and update HTML object
-		lHTML = html.HTMLManagement()
+		lHTML = cls_oai_html.HTMLManagement()
 		lHTML=self.__CheckBuild_PhySim(htmlObj,constObj)
 		return lHTML
 
@@ -186,6 +186,6 @@ class PhySim:
 		mySSH.command(self.__workSpacePath+'ran_build/build/ldpctest ' + self.runargs + ' >> '+self.__runLogFile, '\$', 30)
 		mySSH.close()
 		#return updated HTML to main
-		lHTML = html.HTMLManagement()
+		lHTML = cls_oai_html.HTMLManagement()
 		lHTML=self.__CheckResults_PhySim(htmlObj,constObj,testcase_id)
 		return lHTML
diff --git a/ci-scripts/cls_static_code_analysis.py b/ci-scripts/cls_static_code_analysis.py
index d6796ad414e..5b45b48ba67 100644
--- a/ci-scripts/cls_static_code_analysis.py
+++ b/ci-scripts/cls_static_code_analysis.py
@@ -37,6 +37,7 @@ import logging
 import os
 from pathlib import Path
 import time
+from multiprocessing import Process, Lock, SimpleQueue
 
 #-----------------------------------------------------------
 # OAI Testing modules
@@ -237,3 +238,205 @@ class StaticCodeAnalysis():
 
 		return 0
 
+	def LicenceAndFormattingCheck(self, HTML):
+		if self.ranRepository == '' or self.ranBranch == '' or self.ranCommitID == '':
+			HELP.GenericHelp(CONST.Version)
+			sys.exit('Insufficient Parameter')
+		lIpAddr = self.eNBIPAddress
+		lUserName = self.eNBUserName
+		lPassWord = self.eNBPassword
+		lSourcePath = self.eNBSourceCodePath
+
+		if lIpAddr == '' or lUserName == '' or lPassWord == '' or lSourcePath == '':
+			HELP.GenericHelp(CONST.Version)
+			sys.exit('Insufficient Parameter')
+		logging.debug('Building on server: ' + lIpAddr)
+		mySSH = SSH.SSHConnection()
+		mySSH.open(lIpAddr, lUserName, lPassWord)
+
+		self.testCase_id = HTML.testCase_id
+
+		# on RedHat/CentOS .git extension is mandatory
+		result = re.search('([a-zA-Z0-9\:\-\.\/])+\.git', self.ranRepository)
+		if result is not None:
+			full_ran_repo_name = self.ranRepository.replace('git/', 'git')
+		else:
+			full_ran_repo_name = self.ranRepository + '.git'
+		mySSH.command('mkdir -p ' + lSourcePath, '\$', 5)
+		mySSH.command('cd ' + lSourcePath, '\$', 5)
+		mySSH.command('if [ ! -e .git ]; then stdbuf -o0 git clone ' + full_ran_repo_name + ' .; else stdbuf -o0 git fetch --prune; fi', '\$', 600)
+		# Raphael: here add a check if git clone or git fetch went smoothly
+		mySSH.command('git config user.email "jenkins@openairinterface.org"', '\$', 5)
+		mySSH.command('git config user.name "OAI Jenkins"', '\$', 5)
+
+		mySSH.command('echo ' + lPassWord + ' | sudo -S git clean -x -d -ff', '\$', 30)
+		mySSH.command('mkdir -p cmake_targets/log', '\$', 5)
+		# if the commit ID is provided use it to point to it
+		if self.ranCommitID != '':
+			mySSH.command('git checkout -f ' + self.ranCommitID, '\$', 30)
+		# if the branch is not develop, then it is a merge request and we need to do
+		# the potential merge. Note that merge conflicts should already been checked earlier
+		argToPass = ''
+		if (self.ranAllowMerge):
+			argToPass = '--build-arg MERGE_REQUEST=true --build-arg SRC_BRANCH=' + self.ranBranch
+			if self.ranTargetBranch == '':
+				if (self.ranBranch != 'develop') and (self.ranBranch != 'origin/develop'):
+					mySSH.command('git merge --ff origin/develop -m "Temporary merge for CI"', '\$', 5)
+					argToPass += ' --build-arg TARGET_BRANCH=develop '
+			else:
+				logging.debug('Merging with the target branch: ' + self.ranTargetBranch)
+				mySSH.command('git merge --ff origin/' + self.ranTargetBranch + ' -m "Temporary merge for CI"', '\$', 5)
+				argToPass += ' --build-arg TARGET_BRANCH=' + self.ranTargetBranch + ' '
+
+		mySSH.command('docker image rm oai-formatting-check:latest || true', '\$', 60)
+		mySSH.command('docker build --target oai-formatting-check --tag oai-formatting-check:latest ' + argToPass + '--file ci-scripts/docker/Dockerfile.formatting.bionic . > cmake_targets/log/oai-formatting-check.txt 2>&1', '\$', 600)
+
+		mySSH.command('docker image rm oai-formatting-check:latest || true', '\$', 60)
+		mySSH.command('docker image prune --force', '\$', 60)
+		mySSH.command('docker volume prune --force', '\$', 60)
+
+		# Analyzing the logs
+		mySSH.command('cd ' + lSourcePath + '/cmake_targets', '\$', 5)
+		mySSH.command('mkdir -p build_log_' + self.testCase_id, '\$', 5)
+		mySSH.command('mv log/* ' + 'build_log_' + self.testCase_id, '\$', 5)
+		mySSH.close()
+
+		mySSH.copyin(lIpAddr, lUserName, lPassWord, lSourcePath + '/cmake_targets/build_log_' + self.testCase_id + '/*', '.')
+
+		finalStatus = 0
+		if (os.path.isfile('./oai-formatting-check.txt')):
+			analyzed = False
+			nbFilesNotFormatted = 0
+			listFiles = False
+			listFilesNotFormatted = []
+			circularHeaderDependency = False
+			circularHeaderDependencyFiles = []
+			gnuGplLicence = False
+			gnuGplLicenceFiles = []
+			suspectLicence = False
+			suspectLicenceFiles = []
+			with open('./oai-formatting-check.txt', 'r') as logfile:
+				for line in logfile:
+					ret = re.search('./ci-scripts/checkCodingFormattingRules.sh', str(line))
+					if ret is not None:
+						analyzed = True
+					if analyzed:
+						ret = re.search('Nb Files that do NOT follow OAI rules: (?P<nb_errors>[0-9\.]+)', str(line))
+						if ret is not None:
+							nbFilesNotFormatted = int(ret.group('nb_errors'))
+
+						if re.search('=== Files not properly formatted ===', str(line)) is not None:
+							listFiles = True
+						if listFiles:
+							if re.search('Removing intermediate container', str(line)) is not None:
+								listFiles = False
+							elif re.search('Running in|Files not properly formatted', str(line)) is not None:
+								pass
+							else:
+								listFilesNotFormatted.append(str(line).strip())
+
+						if re.search('=== Files with incorrect define protection ===', str(line)) is not None:
+							circularHeaderDependency = True
+						if circularHeaderDependency:
+							if re.search('Removing intermediate container', str(line)) is not None:
+								circularHeaderDependency = False
+							elif re.search('Running in|Files with incorrect define protection', str(line)) is not None:
+								pass
+							else:
+								circularHeaderDependencyFiles.append(str(line).strip())
+
+						if re.search('=== Files with a GNU GPL licence Banner ===', str(line)) is not None:
+							gnuGplLicence = True
+						if gnuGplLicence:
+							if re.search('Removing intermediate container', str(line)) is not None:
+								gnuGplLicence = False
+							elif re.search('Running in|Files with a GNU GPL licence Banner', str(line)) is not None:
+								pass
+							else:
+								gnuGplLicenceFiles.append(str(line).strip())
+
+						if re.search('=== Files with a suspect Banner ===', str(line)) is not None:
+							suspectLicence = True
+						if suspectLicence:
+							if re.search('Removing intermediate container', str(line)) is not None:
+								suspectLicence = False
+							elif re.search('Running in|Files with a suspect Banner', str(line)) is not None:
+								pass
+							else:
+								suspectLicenceFiles.append(str(line).strip())
+
+				logfile.close()
+			if analyzed:
+				logging.debug('files not formatted properly: ' + str(nbFilesNotFormatted))
+				if nbFilesNotFormatted == 0:
+					HTML.CreateHtmlTestRow('File(s) Format', 'OK', CONST.ALL_PROCESSES_OK)
+				else:
+					html_queue = SimpleQueue()
+					html_cell = '<pre style="background-color:white">\n'
+					html_cell += 'Number of files not following OAI Rules: ' + str(nbFilesNotFormatted) + '\n'
+					for nFile in listFilesNotFormatted:
+						html_cell += str(nFile).strip() + '\n'
+					html_cell += '</pre>'
+					html_queue.put(html_cell)
+					HTML.CreateHtmlTestRowQueue('File(s) Format', 'KO', 1, html_queue)
+					del(html_cell)
+					del(html_queue)
+
+				logging.debug('header files not respecting the circular dependency protection: ' + str(len(circularHeaderDependencyFiles)))
+				if len(circularHeaderDependencyFiles) == 0:
+					HTML.CreateHtmlTestRow('Header Circular Dependency', 'OK', CONST.ALL_PROCESSES_OK)
+				else:
+					html_queue = SimpleQueue()
+					html_cell = '<pre style="background-color:white">\n'
+					html_cell += 'Number of files not respecting: ' + str(len(circularHeaderDependencyFiles)) + '\n'
+					for nFile in circularHeaderDependencyFiles:
+						html_cell += str(nFile).strip() + '\n'
+					html_cell += '</pre>'
+					html_queue.put(html_cell)
+					HTML.CreateHtmlTestRowQueue('Header Circular Dependency', 'KO', 1, html_queue)
+					del(html_cell)
+					del(html_queue)
+					finalStatus = -1
+
+				logging.debug('files with a GNU GPL license: ' + str(len(gnuGplLicenceFiles)))
+				if len(gnuGplLicenceFiles) == 0:
+					HTML.CreateHtmlTestRow('Files w/ GNU GPL License', 'OK', CONST.ALL_PROCESSES_OK)
+				else:
+					html_queue = SimpleQueue()
+					html_cell = '<pre style="background-color:white">\n'
+					html_cell += 'Number of files not respecting: ' + str(len(gnuGplLicenceFiles)) + '\n'
+					for nFile in gnuGplLicenceFiles:
+						html_cell += str(nFile).strip() + '\n'
+					html_cell += '</pre>'
+					html_queue.put(html_cell)
+					HTML.CreateHtmlTestRowQueue('Files w/ GNU GPL License', 'KO', 1, html_queue)
+					del(html_cell)
+					del(html_queue)
+					finalStatus = -1
+
+				logging.debug('files with a suspect license: ' + str(len(suspectLicenceFiles)))
+				if len(suspectLicenceFiles) == 0:
+					HTML.CreateHtmlTestRow('Files with suspect license', 'OK', CONST.ALL_PROCESSES_OK)
+				else:
+					html_queue = SimpleQueue()
+					html_cell = '<pre style="background-color:white">\n'
+					html_cell += 'Number of files not respecting: ' + str(len(suspectLicenceFiles)) + '\n'
+					for nFile in suspectLicenceFiles:
+						html_cell += str(nFile).strip() + '\n'
+					html_cell += '</pre>'
+					html_queue.put(html_cell)
+					HTML.CreateHtmlTestRowQueue('Files with suspect license', 'KO', 1, html_queue)
+					del(html_cell)
+					del(html_queue)
+					finalStatus = -1
+
+			else:
+				finalStatus = -1
+				HTML.htmleNBFailureMsg = 'Could not fully analyze oai-formatting-check.txt file'
+				HTML.CreateHtmlTestRow('N/A', 'KO', CONST.ENB_PROCESS_NOLOGFILE_TO_ANALYZE)
+		else:
+			finalStatus = -1
+			HTML.htmleNBFailureMsg = 'Could not access oai-formatting-check.txt file'
+			HTML.CreateHtmlTestRow('N/A', 'KO', CONST.ENB_PROCESS_NOLOGFILE_TO_ANALYZE)
+
+		return finalStatus
diff --git a/ci-scripts/conf_files/benetel-5g.conf b/ci-scripts/conf_files/benetel-5g.conf
index 8f3b03fddc5..3b872e56e96 100644
--- a/ci-scripts/conf_files/benetel-5g.conf
+++ b/ci-scripts/conf_files/benetel-5g.conf
@@ -21,8 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 31; //0;
-
     servingCellConfigCommon = (
     {
  #spCellConfigCommon
diff --git a/ci-scripts/conf_files/episci/episci_gnb.band78.sa.fr1.106PRB.usrpn310.conf b/ci-scripts/conf_files/episci/episci_gnb.band78.sa.fr1.106PRB.usrpn310.conf
index 51ffb1d5cd2..a648db0efec 100644
--- a/ci-scripts/conf_files/episci/episci_gnb.band78.sa.fr1.106PRB.usrpn310.conf
+++ b/ci-scripts/conf_files/episci/episci_gnb.band78.sa.fr1.106PRB.usrpn310.conf
@@ -32,7 +32,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
     min_rxtxtime = 6;
      pdcch_ConfigSIB1 = (
       {
diff --git a/ci-scripts/conf_files/episci/episci_rcc.band78.tm1.106PRB.nfapi.conf b/ci-scripts/conf_files/episci/episci_rcc.band78.tm1.106PRB.nfapi.conf
index eac0b746336..0db6ac9036b 100644
--- a/ci-scripts/conf_files/episci/episci_rcc.band78.tm1.106PRB.nfapi.conf
+++ b/ci-scripts/conf_files/episci/episci_rcc.band78.tm1.106PRB.nfapi.conf
@@ -21,7 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 31; //0;
     min_rxtxtime = 6;
 
      pdcch_ConfigSIB1 = (
diff --git a/ci-scripts/conf_files/episci/proxy_gnb.band78.sa.fr1.106PRB.usrpn310.conf b/ci-scripts/conf_files/episci/proxy_gnb.band78.sa.fr1.106PRB.usrpn310.conf
index f80ce3751a9..84cb18d435f 100644
--- a/ci-scripts/conf_files/episci/proxy_gnb.band78.sa.fr1.106PRB.usrpn310.conf
+++ b/ci-scripts/conf_files/episci/proxy_gnb.band78.sa.fr1.106PRB.usrpn310.conf
@@ -32,7 +32,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
     min_rxtxtime = 6;
 
      pdcch_ConfigSIB1 = (
diff --git a/ci-scripts/conf_files/episci/proxy_rcc.band78.tm1.106PRB.nfapi.conf b/ci-scripts/conf_files/episci/proxy_rcc.band78.tm1.106PRB.nfapi.conf
index f61039ff173..270ad758457 100644
--- a/ci-scripts/conf_files/episci/proxy_rcc.band78.tm1.106PRB.nfapi.conf
+++ b/ci-scripts/conf_files/episci/proxy_rcc.band78.tm1.106PRB.nfapi.conf
@@ -21,7 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
     min_rxtxtime = 6;
 	
     servingCellConfigCommon = (
diff --git a/ci-scripts/conf_files/gNB_SA_CU.conf b/ci-scripts/conf_files/gNB_SA_CU.conf
index 9d64ae1976f..f6d3e8575a7 100644
--- a/ci-scripts/conf_files/gNB_SA_CU.conf
+++ b/ci-scripts/conf_files/gNB_SA_CU.conf
@@ -44,7 +44,6 @@ gNBs =
     local_s_portd   = 2152;
     remote_s_portc  = 500;
     remote_s_portd  = 2152;
-    ssb_SubcarrierOffset                                      = 0;
     min_rxtxtime                                              = 6;
 
      pdcch_ConfigSIB1 = (
diff --git a/ci-scripts/conf_files/gNB_SA_DU.conf b/ci-scripts/conf_files/gNB_SA_DU.conf
index f95bdf91aee..4309c13dd39 100644
--- a/ci-scripts/conf_files/gNB_SA_DU.conf
+++ b/ci-scripts/conf_files/gNB_SA_DU.conf
@@ -36,7 +36,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
     min_rxtxtime                                              = 6;
 
     pdcch_ConfigSIB1 = (
diff --git a/ci-scripts/conf_files/gNB_SA_n78_106PRB.2x2_usrpn310.conf b/ci-scripts/conf_files/gNB_SA_n78_106PRB.2x2_usrpn310.conf
index d6edc092865..49383072ed1 100644
--- a/ci-scripts/conf_files/gNB_SA_n78_106PRB.2x2_usrpn310.conf
+++ b/ci-scripts/conf_files/gNB_SA_n78_106PRB.2x2_usrpn310.conf
@@ -37,8 +37,7 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
-    pdsch_AntennaPorts_N1                                     = 2;
+    pdsch_AntennaPorts_XP                                     = 2;
     pusch_AntennaPorts                                        = 2;
 
     pdcch_ConfigSIB1 = (
diff --git a/ci-scripts/conf_files/gNB_SA_n78_133PRB.2x2_usrpn310.conf b/ci-scripts/conf_files/gNB_SA_n78_133PRB.2x2_usrpn310.conf
index 7f4b11c35d8..610485fc924 100644
--- a/ci-scripts/conf_files/gNB_SA_n78_133PRB.2x2_usrpn310.conf
+++ b/ci-scripts/conf_files/gNB_SA_n78_133PRB.2x2_usrpn310.conf
@@ -38,8 +38,7 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
-    pdsch_AntennaPorts_N1                                     = 2;
+    pdsch_AntennaPorts_XP                                     = 2;
     pusch_AntennaPorts                                        = 2;
 
     pdcch_ConfigSIB1 = (
diff --git a/ci-scripts/conf_files/gnb.band261.tm1.32PRB.usrpn300.conf b/ci-scripts/conf_files/gnb.band261.tm1.32PRB.usrpn300.conf
index dcb3dd89b76..24ec8f17f8d 100644
--- a/ci-scripts/conf_files/gnb.band261.tm1.32PRB.usrpn300.conf
+++ b/ci-scripts/conf_files/gnb.band261.tm1.32PRB.usrpn300.conf
@@ -21,7 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
     min_rxtxtime                                              = 6;
 	
     servingCellConfigCommon = (
diff --git a/ci-scripts/conf_files/gnb.band66.tm1.106PRB.usrpn300.conf b/ci-scripts/conf_files/gnb.band66.tm1.106PRB.usrpn300.conf
index 1019ec75ade..b3c7d7d1da5 100644
--- a/ci-scripts/conf_files/gnb.band66.tm1.106PRB.usrpn300.conf
+++ b/ci-scripts/conf_files/gnb.band66.tm1.106PRB.usrpn300.conf
@@ -21,7 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
     min_rxtxtime                                              = 6;
 
     servingCellConfigCommon = (
diff --git a/ci-scripts/conf_files/gnb.band78.nsa_2x2.106PRB.usrpn310.conf b/ci-scripts/conf_files/gnb.band78.nsa_2x2.106PRB.usrpn310.conf
index fa7c1905385..c668601c063 100644
--- a/ci-scripts/conf_files/gnb.band78.nsa_2x2.106PRB.usrpn310.conf
+++ b/ci-scripts/conf_files/gnb.band78.nsa_2x2.106PRB.usrpn310.conf
@@ -19,8 +19,7 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 31; //0;
-    pdsch_AntennaPorts_N1                                     = 2;
+    pdsch_AntennaPorts_XP                                     = 2;
     pusch_AntennaPorts                                        = 2;
     ul_prbblacklist                                           = "51,52,53,54"
 
diff --git a/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.2x2.usrpn310.asue.conf b/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.2x2.usrpn310.asue.conf
index 5e6b3fb217b..92c3a7a2e98 100644
--- a/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.2x2.usrpn310.asue.conf
+++ b/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.2x2.usrpn310.asue.conf
@@ -41,7 +41,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
     pusch_AntennaPorts                                        = 2;
     ul_prbblacklist                                           = "51,52,53,54"
     do_SRS                                                    = 1;
diff --git a/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.2x2.usrpn310.conf b/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.2x2.usrpn310.conf
index 8489008300d..672713d5042 100644
--- a/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.2x2.usrpn310.conf
+++ b/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.2x2.usrpn310.conf
@@ -37,8 +37,7 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
-    pdsch_AntennaPorts_N1                                     = 2;
+    pdsch_AntennaPorts_XP                                     = 2;
     pusch_AntennaPorts                                        = 2;
     ul_prbblacklist                                           = "51,52,53,54"
     do_SRS                                                    = 1;
diff --git a/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.ddsuu.2x2.usrpn310.conf b/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.ddsuu.2x2.usrpn310.conf
index 18ca7b5d1e8..5bd8b26e054 100644
--- a/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.ddsuu.2x2.usrpn310.conf
+++ b/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.ddsuu.2x2.usrpn310.conf
@@ -37,7 +37,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
     pusch_AntennaPorts                                        = 2;
     ul_prbblacklist                                           = "51,52,53,54"
     do_SRS                                                    = 1;
diff --git a/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.usrpn310.conf b/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.usrpn310.conf
index 9e1f499f034..e1264bd069e 100644
--- a/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.usrpn310.conf
+++ b/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.usrpn310.conf
@@ -37,7 +37,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
     #pusch_TargetSNRx10                                        = 200;
     #pucch_TargetSNRx10                                        = 200;
     ul_prbblacklist                                           = "51,52,53,54"
diff --git a/ci-scripts/conf_files/gnb.band78.sa.fr1.162PRB.2x2.usrpn310.conf b/ci-scripts/conf_files/gnb.band78.sa.fr1.162PRB.2x2.usrpn310.conf
index ce63578dd37..f92242138c7 100644
--- a/ci-scripts/conf_files/gnb.band78.sa.fr1.162PRB.2x2.usrpn310.conf
+++ b/ci-scripts/conf_files/gnb.band78.sa.fr1.162PRB.2x2.usrpn310.conf
@@ -37,8 +37,7 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
-    pdsch_AntennaPorts_N1                                     = 2;
+    pdsch_AntennaPorts_XP                                     = 2;
     pusch_AntennaPorts                                        = 2;
     #pusch_TargetSNRx10                                        = 200;
     #pucch_TargetSNRx10                                        = 200;
diff --git a/ci-scripts/conf_files/gnb.band78.tm1.106PRB.usrpn300.conf b/ci-scripts/conf_files/gnb.band78.tm1.106PRB.usrpn300.conf
index 0c750803985..9334f2cf591 100644
--- a/ci-scripts/conf_files/gnb.band78.tm1.106PRB.usrpn300.conf
+++ b/ci-scripts/conf_files/gnb.band78.tm1.106PRB.usrpn300.conf
@@ -21,7 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset = 0;
     min_rxtxtime = 6;
 
     servingCellConfigCommon = (
@@ -219,7 +218,7 @@ RUs = (
          ## beamforming 4x4 matrix:
          #bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000, 0x00000000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff];
 
-         sdr_addrs = "addr=192.168.10.2,second_addr=192.168.20.2,mgmt_addr=192.168.18.85";
+         sdr_addrs = "addr=192.168.10.2,second_addr=192.168.20.2";
     }
 );  
 
diff --git a/ci-scripts/conf_files/gnb.band78.tm1.fr1.106PRB.usrpb210.conf b/ci-scripts/conf_files/gnb.band78.tm1.fr1.106PRB.usrpb210.conf
index f3515d38824..cd3ab6278e0 100644
--- a/ci-scripts/conf_files/gnb.band78.tm1.fr1.106PRB.usrpb210.conf
+++ b/ci-scripts/conf_files/gnb.band78.tm1.fr1.106PRB.usrpb210.conf
@@ -19,7 +19,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 31; //0;
  
     servingCellConfigCommon = (
     {
diff --git a/ci-scripts/conf_files/gnb.band78.tm1.fr1.106PRB.usrpn310.conf b/ci-scripts/conf_files/gnb.band78.tm1.fr1.106PRB.usrpn310.conf
index 8f480d37571..371753eccc3 100644
--- a/ci-scripts/conf_files/gnb.band78.tm1.fr1.106PRB.usrpn310.conf
+++ b/ci-scripts/conf_files/gnb.band78.tm1.fr1.106PRB.usrpn310.conf
@@ -20,7 +20,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 31; //0;
     min_rxtxtime = 6;
  
     servingCellConfigCommon = (
diff --git a/ci-scripts/conf_files/gnb.sa.band66.fr1.106PRB.usrpn300.conf b/ci-scripts/conf_files/gnb.sa.band66.fr1.106PRB.usrpn300.conf
index b78ca916f3c..197e1d211cd 100644
--- a/ci-scripts/conf_files/gnb.sa.band66.fr1.106PRB.usrpn300.conf
+++ b/ci-scripts/conf_files/gnb.sa.band66.fr1.106PRB.usrpn300.conf
@@ -32,7 +32,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
     min_rxtxtime                                              = 6;
 
      pdcch_ConfigSIB1 = (
diff --git a/ci-scripts/conf_files/gnb.sa.band78.fr1.106PRB.usrpb210.conf b/ci-scripts/conf_files/gnb.sa.band78.fr1.106PRB.usrpb210.conf
new file mode 100644
index 00000000000..2a6053ab461
--- /dev/null
+++ b/ci-scripts/conf_files/gnb.sa.band78.fr1.106PRB.usrpb210.conf
@@ -0,0 +1,344 @@
+Active_gNBs = ( "gNB-OAI");
+# Asn1_verbosity, choice in: none, info, annoying
+Asn1_verbosity = "none";
+
+gNBs =
+(
+ {
+    ////////// Identification parameters:
+    gNB_ID    =  0xe00;
+    gNB_name  =  "gNB-OAI";
+
+    // Tracking area code, 0x0000 and 0xfffe are reserved values
+    tracking_area_code  =  1;
+    plmn_list = ({
+                  mcc = 222;
+                  mnc = 01;
+                  mnc_length = 2;
+                  snssaiList = (
+                    {
+                      sst = 1;
+                      #sd  = 0x1; // 0 false, else true
+                    }
+                  );
+
+                  });
+
+    nr_cellid = 12345678L;
+
+    ////////// Physical parameters:
+
+    min_rxtxtime                                              = 2;
+    do_CSIRS                                                  = 1;
+    do_SRS                                                    = 1;
+
+     pdcch_ConfigSIB1 = (
+      {
+        controlResourceSetZero = 12;
+        searchSpaceZero = 0;
+      }
+      );
+
+    servingCellConfigCommon = (
+    {
+ #spCellConfigCommon
+
+      physCellId                                                    = 0;
+
+#  downlinkConfigCommon
+    #frequencyInfoDL
+      # this is 3600 MHz + 43 PRBs@30kHz SCS (same as initial BWP)
+      absoluteFrequencySSB                                             = 641280;
+      dl_frequencyBand                                                 = 78;
+      # this is 3600 MHz
+      dl_absoluteFrequencyPointA                                       = 640008;
+      #scs-SpecificCarrierList
+        dl_offstToCarrier                                              = 0;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        dl_subcarrierSpacing                                           = 1;
+        dl_carrierBandwidth                                            = 106;
+     #initialDownlinkBWP
+      #genericParameters
+        # this is RBstart=27,L=48 (275*(L-1))+RBstart
+        initialDLBWPlocationAndBandwidth                               = 28875; # 6366 12925 12956 28875 12952
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        initialDLBWPsubcarrierSpacing                                   = 1;
+      #pdcch-ConfigCommon
+        initialDLBWPcontrolResourceSetZero                              = 12;
+        initialDLBWPsearchSpaceZero                                     = 0;
+
+  #uplinkConfigCommon
+     #frequencyInfoUL
+      ul_frequencyBand                                              = 78;
+      #scs-SpecificCarrierList
+      ul_offstToCarrier                                             = 0;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      ul_subcarrierSpacing                                          = 1;
+      ul_carrierBandwidth                                           = 106;
+      pMax                                                          = 20;
+     #initialUplinkBWP
+      #genericParameters
+        initialULBWPlocationAndBandwidth                            = 28875;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        initialULBWPsubcarrierSpacing                               = 1;
+      #rach-ConfigCommon
+        #rach-ConfigGeneric
+          prach_ConfigurationIndex                                  = 98;
+#prach_msg1_FDM
+#0 = one, 1=two, 2=four, 3=eight
+          prach_msg1_FDM                                            = 0;
+          prach_msg1_FrequencyStart                                 = 0;
+          zeroCorrelationZoneConfig                                 = 13;
+          preambleReceivedTargetPower                               = -96;
+#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
+          preambleTransMax                                          = 6;
+#powerRampingStep
+# 0=dB0,1=dB2,2=dB4,3=dB6
+        powerRampingStep                                            = 1;
+#ra_ReponseWindow
+#1,2,4,8,10,20,40,80
+        ra_ResponseWindow                                           = 4;
+#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
+#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
+        ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR                = 4;
+#oneHalf (0..15) 4,8,12,16,...60,64
+        ssb_perRACH_OccasionAndCB_PreamblesPerSSB                   = 14;
+#ra_ContentionResolutionTimer
+#(0..7) 8,16,24,32,40,48,56,64
+        ra_ContentionResolutionTimer                                = 7;
+        rsrp_ThresholdSSB                                           = 19;
+#prach-RootSequenceIndex_PR
+#1 = 839, 2 = 139
+        prach_RootSequenceIndex_PR                                  = 2;
+        prach_RootSequenceIndex                                     = 1;
+        # SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
+        #
+        msg1_SubcarrierSpacing                                      = 1,
+# restrictedSetConfig
+# 0=unrestricted, 1=restricted type A, 2=restricted type B
+        restrictedSetConfig                                         = 0,
+
+        msg3_DeltaPreamble                                          = 1;
+        p0_NominalWithGrant                                         =-90;
+
+# pucch-ConfigCommon setup :
+# pucchGroupHopping
+# 0 = neither, 1= group hopping, 2=sequence hopping
+        pucchGroupHopping                                           = 0;
+        hoppingId                                                   = 40;
+        p0_nominal                                                  = -90;
+# ssb_PositionsInBurs_BitmapPR
+# 1=short, 2=medium, 3=long
+      ssb_PositionsInBurst_PR                                       = 2;
+      ssb_PositionsInBurst_Bitmap                                   = 1;
+
+# ssb_periodicityServingCell
+# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
+      ssb_periodicityServingCell                                    = 2;
+
+# dmrs_TypeA_position
+# 0 = pos2, 1 = pos3
+      dmrs_TypeA_Position                                           = 0;
+
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      subcarrierSpacing                                             = 1;
+
+
+  #tdd-UL-DL-ConfigurationCommon
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      referenceSubcarrierSpacing                                    = 1;
+      # pattern1
+      # dl_UL_TransmissionPeriodicity
+      # 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
+      dl_UL_TransmissionPeriodicity                                 = 6;
+      nrofDownlinkSlots                                             = 7;
+      nrofDownlinkSymbols                                           = 6;
+      nrofUplinkSlots                                               = 2;
+      nrofUplinkSymbols                                             = 4;
+
+      ssPBCH_BlockPower                                             = -25;
+  }
+
+  );
+
+# Dedicated Serving Cell Configuration
+servingCellConfigDedicated = ({
+  # BWP-Downlink
+    # BWP 1 Configuration
+      dl_bwp-Id_1 = 1;
+      dl_bwp1_locationAndBandwidth = 28875; // RBstart=0, L=106 (40 MHz BW)
+      # subcarrierSpacing
+      # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      dl_bwp1_subcarrierSpacing = 1;
+
+    # BWP 2 Configuration
+      dl_bwp-Id_2 = 2;
+      dl_bwp2_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW)
+      # subcarrierSpacing
+      # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      dl_bwp2_subcarrierSpacing = 1;
+
+    # BWP 3 Configuration
+      dl_bwp-Id_3 = 3;
+      dl_bwp3_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW)
+      # subcarrierSpacing
+      # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      dl_bwp3_subcarrierSpacing = 1;
+
+    firstActiveDownlinkBWP-Id = 1;  #BWP-Id
+    defaultDownlinkBWP-Id     = 1;  #BWP-Id
+
+    # bwp-InactivityTimer                 ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30,
+    #                                                ms40,ms50, ms60, ms80,ms100, ms200,ms300, ms500,
+    #                                                ms750, ms1280, ms1920, ms2560, spare10, spare9, spare8,
+    #                                                spare7, spare6, spare5, spare4, spare3, spare2, spare1 }
+
+  # UplinkConfig
+    # BWP-Uplink
+      # BWP 1 Configuration
+        ul_bwp-Id_1 = 1;
+        ul_bwp1_locationAndBandwidth = 28875; // RBstart=0, L=106 (40 MHz BW)
+        # subcarrierSpacing
+        # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        ul_bwp1_subcarrierSpacing = 1;
+
+      # BWP 2 Configuration
+        ul_bwp-Id_2 = 2;
+        ul_bwp2_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW)
+        # subcarrierSpacing
+        # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        ul_bwp2_subcarrierSpacing = 1;
+
+      # BWP 3 Configuration
+        ul_bwp-Id_3 = 3;
+        ul_bwp3_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW)
+        # subcarrierSpacing
+        # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        ul_bwp3_subcarrierSpacing = 1;
+
+      firstActiveUplinkBWP-Id = 1;  #BWP-Id
+  }
+);
+
+    # ------- SCTP definitions
+    SCTP :
+    {
+        # Number of streams to use in input/output
+        SCTP_INSTREAMS  = 2;
+        SCTP_OUTSTREAMS = 2;
+    };
+
+
+    ////////// AMF parameters:
+    amf_ip_address      = ( { ipv4       = "172.21.16.136";
+                              ipv6       = "192:168:30::17";
+                              active     = "yes";
+                              preference = "ipv4";
+                            }
+                          );
+
+
+    NETWORK_INTERFACES :
+    {
+        GNB_INTERFACE_NAME_FOR_NG_AMF            = "demo-oai";
+        GNB_IPV4_ADDRESS_FOR_NG_AMF              = "172.21.16.137/24";
+        GNB_INTERFACE_NAME_FOR_NGU               = "demo-oai";
+        GNB_IPV4_ADDRESS_FOR_NGU                 = "172.21.16.137/24";
+        GNB_PORT_FOR_S1U                         = 2152; # Spec 2152
+    };
+
+  }
+);
+
+MACRLCs = (
+{
+  num_cc                      = 1;
+  tr_s_preference             = "local_L1";
+  tr_n_preference             = "local_RRC";
+  pusch_TargetSNRx10          = 200;
+  pucch_TargetSNRx10          = 200;
+  ulsch_max_frame_inactivity  = 0;
+}
+);
+
+L1s = (
+{
+  num_cc = 1;
+  tr_n_preference       = "local_mac";
+  prach_dtx_threshold   = 120;
+  pucch0_dtx_threshold  = 100;
+  ofdm_offset_divisor   = 8; #set this to UINT_MAX for offset 0
+}
+);
+
+RUs = (
+{
+  local_rf       = "yes"
+  nb_tx          = 1
+  nb_rx          = 1
+  att_tx         = 10;
+  att_rx         = 10;
+  bands          = [78];
+  max_pdschReferenceSignalPower = -27;
+  max_rxgain                    = 114;
+  eNB_instances  = [0];
+  #beamforming 1x4 matrix:
+  bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000];
+  clock_src = "internal";
+}
+);
+
+THREAD_STRUCT = (
+{
+  #three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
+  parallel_config    = "PARALLEL_SINGLE_THREAD";
+  #two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
+  worker_config      = "WORKER_ENABLE";
+}
+);
+
+rfsimulator :
+{
+  serveraddr = "server";
+  serverport = "4043";
+  options = (); #("saviq"); or/and "chanmod"
+  modelname = "AWGN";
+  IQfile = "/tmp/rfsimulator.iqs";
+};
+
+security = {
+  # preferred ciphering algorithms
+  # the first one of the list that an UE supports in chosen
+  # valid values: nea0, nea1, nea2, nea3
+  ciphering_algorithms = ( "nea0" );
+
+  # preferred integrity algorithms
+  # the first one of the list that an UE supports in chosen
+  # valid values: nia0, nia1, nia2, nia3
+  integrity_algorithms = ( "nia2", "nia0" );
+
+  # setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
+  # what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
+  drb_ciphering = "yes";
+  drb_integrity = "no";
+};
+
+log_config :
+{
+  global_log_level                      ="info";
+  hw_log_level                          ="info";
+  phy_log_level                         ="info";
+  mac_log_level                         ="info";
+  rlc_log_level                         ="info";
+  pdcp_log_level                        ="info";
+  rrc_log_level                         ="info";
+  ngap_log_level                        ="debug";
+  f1ap_log_level                        ="debug";
+};
+
diff --git a/ci-scripts/conf_files/gnb.sa.band78.fr1.24PRB.usrpb210.conf b/ci-scripts/conf_files/gnb.sa.band78.fr1.24PRB.usrpb210.conf
index bd3076a014c..ad1471339a2 100644
--- a/ci-scripts/conf_files/gnb.sa.band78.fr1.24PRB.usrpb210.conf
+++ b/ci-scripts/conf_files/gnb.sa.band78.fr1.24PRB.usrpb210.conf
@@ -32,9 +32,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
-    pdsch_AntennaPorts                                        = 1;
-    pusch_AntennaPorts                                        = 1;
     sib1_tda                                                  = 15;
     min_rxtxtime = 6;
 
diff --git a/ci-scripts/datalog_rt_stats.2x2.yaml b/ci-scripts/datalog_rt_stats.2x2.yaml
index a93ef6aa8c8..eccde746cc7 100644
--- a/ci-scripts/datalog_rt_stats.2x2.yaml
+++ b/ci-scripts/datalog_rt_stats.2x2.yaml
@@ -16,7 +16,7 @@ Ref :
   L1 Rx processing : 175.0
   PUSCH inner-receiver : 100.0
   PUSCH decoding : 180.0 
-  DL & UL scheduling timing stats : 37.0
+  DL & UL scheduling timing : 37.0
   UL Indication : 38.0
 Threshold :
   feprx : 1.25
@@ -28,5 +28,5 @@ Threshold :
   L1 Rx processing : 1.25
   PUSCH inner-receiver : 1.25
   PUSCH decoding : 1.25
-  DL & UL scheduling timing stats : 1.25
+  DL & UL scheduling timing : 1.25
   UL Indication : 1.25
diff --git a/ci-scripts/datalog_rt_stats.default.yaml b/ci-scripts/datalog_rt_stats.default.yaml
index 02a90c86f4e..97591a766dc 100644
--- a/ci-scripts/datalog_rt_stats.default.yaml
+++ b/ci-scripts/datalog_rt_stats.default.yaml
@@ -15,8 +15,9 @@ Ref :
   DLSCH encoding : 230.0
   L1 Rx processing : 175.0
   PUSCH inner-receiver : 100.0
-  PUSCH decoding : 180.0 
-  DL & UL scheduling timing stats : 37.0
+  #PUSCH decoding : 180.0
+  PUSCH decoding : 240.0
+  DL & UL scheduling timing : 37.0
   UL Indication : 38.0
 Threshold :
   feprx : 1.25
@@ -28,5 +29,5 @@ Threshold :
   L1 Rx processing : 1.25
   PUSCH inner-receiver : 1.25
   PUSCH decoding : 1.25
-  DL & UL scheduling timing stats : 1.25
+  DL & UL scheduling timing : 1.25
   UL Indication : 1.25
diff --git a/ci-scripts/docker/Dockerfile.formatting.bionic b/ci-scripts/docker/Dockerfile.formatting.bionic
new file mode 100644
index 00000000000..01417a3bdb3
--- /dev/null
+++ b/ci-scripts/docker/Dockerfile.formatting.bionic
@@ -0,0 +1,31 @@
+FROM ubuntu:bionic AS oai-formatting-check
+
+ARG MERGE_REQUEST
+ARG SRC_BRANCH
+ARG TARGET_BRANCH
+ENV DEBIAN_FRONTEND=noninteractive
+
+RUN apt-get update && \
+    DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
+    DEBIAN_FRONTEND=noninteractive apt-get install --yes \
+       astyle \
+       gawk \
+       git
+
+WORKDIR /oai-ran
+COPY . .
+
+RUN /bin/bash -c "if [[ -v MERGE_REQUEST ]]; then echo 'Source Branch = $SRC_BRANCH'; echo 'Target Branch = $TARGET_BRANCH'; else echo 'Push to develop'; fi"
+RUN /bin/bash -c "if [[ -v MERGE_REQUEST ]]; then ./ci-scripts/checkCodingFormattingRules.sh --src-branch $SRC_BRANCH --target-branch $TARGET_BRANCH; else ./ci-scripts/checkCodingFormattingRules.sh; fi"
+
+RUN echo "=== Files not properly formatted ===" && \
+    /bin/bash -c "if [[ -f oai_rules_result_list.txt ]]; then cat oai_rules_result_list.txt; fi"
+
+RUN echo "=== Files with incorrect define protection ===" && \
+   /bin/bash -c "if [[ -f header-files-w-incorrect-define.txt ]]; then cat header-files-w-incorrect-define.txt; fi"
+
+RUN echo "=== Files with a GNU GPL licence Banner ===" && \
+   /bin/bash -c "if [[ -f files-w-gnu-gpl-license-banner.txt ]]; then cat files-w-gnu-gpl-license-banner.txt; fi"
+
+RUN echo "=== Files with a suspect Banner ===" && \
+  /bin/bash -c "if [[ -f files-w-suspect-banner.txt ]]; then cat files-w-suspect-banner.txt; fi"
diff --git a/ci-scripts/epc.py b/ci-scripts/epc.py
index 0fc37d4ead7..9113d29ac9b 100644
--- a/ci-scripts/epc.py
+++ b/ci-scripts/epc.py
@@ -255,16 +255,19 @@ class EPCManagement():
 			mySSH.command('mkdir -p ' + self.SourceCodePath + '/scripts', '\$', 5)
 			mySSH.command('cd /opt/oai-cn5g-fed-v1.3/docker-compose', '\$', 5)
 			mySSH.command('python3 ./core-network.py '+self.cfgDeploy, '\$', 60)
-			time.sleep(2)
-			mySSH.command('docker-compose -p 5gcn ps -a', '\$', 60)
+			if re.search('start-mini-as-ue', self.cfgDeploy):
+				dFile = 'docker-compose-mini-nrf-asue.yaml'
+			else:
+				dFile = 'docker-compose-mini-nrf.yaml'
+			mySSH.command('docker-compose -p 5gcn -f ' + dFile + ' ps -a', '\$', 60)
 			if mySSH.getBefore().count('Up (healthy)') != 6:
 				logging.error('Not all container healthy')
 			else:
-				logging.debug('OK')
-			mySSH.command('docker-compose config | grep --colour=never image', '\$', 10)
+				logging.debug('OK --> all containers are healthy')
+			mySSH.command('docker-compose -p 5gcn -f ' + dFile + ' config | grep --colour=never image', '\$', 10)
 			listOfImages = mySSH.getBefore()
 			for imageLine in listOfImages.split('\\r\\n'):
-				res1 = re.search('image: (?P<name>[a-zA-Z0-9\-]+):(?P<tag>[a-zA-Z0-9\-]+)', str(imageLine))
+				res1 = re.search('image: (?P<name>[a-zA-Z0-9\-/]+):(?P<tag>[a-zA-Z0-9\-]+)', str(imageLine))
 				res2 = re.search('mysql', str(imageLine))
 				if res1 is not None and res2 is None:
 					html_cell += res1.group('name') + ':' + res1.group('tag') + ' '
@@ -308,6 +311,8 @@ class EPCManagement():
 				tmp = str(response[0],'utf-8')
 				self.MmeIPAddress = tmp.rstrip()
 				logging.debug('AMF IP Address ' + self.MmeIPAddress)
+			else:
+				logging.error('no container with name oai-amf found, could not retrieve AMF IP address')
 			mySSH.close()
 
 	def CheckHSSProcess(self, status_queue):
@@ -536,7 +541,7 @@ class EPCManagement():
 			mySSH.command('python3 ./core-network.py '+self.cfgUnDeploy, '\$', 60)
 			mySSH.command('docker volume prune --force || true', '\$', 60)
 			time.sleep(2)
-			mySSH.command('tshark -r /tmp/oai-cn5g.pcap | egrep --colour=never "Tracking area update" ','\$', 30)
+			mySSH.command('tshark -r /tmp/oai-cn5g-v1.3.pcap | egrep --colour=never "Tracking area update" ','\$', 30)
 			result = re.search('Tracking area update request', mySSH.getBefore())
 			if result is not None:
 				message = 'UE requested ' + str(mySSH.getBefore().count('Tracking area update request')) + 'Tracking area update request(s)'
@@ -830,8 +835,8 @@ class EPCManagement():
 				mySSH.command('zip mme.log.zip mme_check_run.*', '\$', 60)
 		elif re.match('OAICN5G', self.Type, re.IGNORECASE):
 			mySSH.command('cd ' + self.SourceCodePath + '/logs','\$', 5)
-			mySSH.command('cp -f /tmp/oai-cn5g.pcap .','\$', 30)
-			mySSH.command('zip mme.log.zip oai-amf.log oai-nrf.log oai-cn5g.pcap','\$', 30)
+			mySSH.command('cp -f /tmp/oai-cn5g-v1.3.pcap .','\$', 30)
+			mySSH.command('zip mme.log.zip oai-amf.log oai-nrf.log oai-cn5g*.pcap','\$', 30)
 			mySSH.command('mv mme.log.zip ' + self.SourceCodePath + '/scripts','\$', 30)
 		elif re.match('OAI', self.Type, re.IGNORECASE) or re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
 			mySSH.command('zip mme.log.zip mme*.log', '\$', 60)
diff --git a/ci-scripts/main.py b/ci-scripts/main.py
index 03947bdfc96..baed6a60119 100644
--- a/ci-scripts/main.py
+++ b/ci-scripts/main.py
@@ -102,7 +102,7 @@ def AssignParams(params_dict):
 
 
 def GetParametersFromXML(action):
-	if action == 'Build_eNB' or action == 'Build_Image':
+	if action == 'Build_eNB' or action == 'Build_Image' or action == 'Build_Proxy':
 		RAN.Build_eNB_args=test.findtext('Build_eNB_args')
 		CONTAINERS.imageKind=test.findtext('kind')
 		forced_workspace_cleanup = test.findtext('forced_workspace_cleanup')
@@ -138,6 +138,9 @@ def GetParametersFromXML(action):
 				RAN.backgroundBuild=True
 			else:
 				RAN.backgroundBuild=False
+		proxy_commit = test.findtext('proxy_commit')
+		if proxy_commit is not None:
+			CONTAINERS.proxyCommit = proxy_commit
 
 	elif action == 'WaitEndBuild_eNB':
 		RAN.Build_eNB_args=test.findtext('Build_eNB_args')
@@ -799,7 +802,7 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
 	HTML.startTime=int(round(time.time() * 1000))
 	while CiTestObj.FailReportCnt < CiTestObj.repeatCounts[0] and RAN.prematureExit:
 		RAN.prematureExit=False
-		# At every iteratin of the retry loop, a separator will be added
+		# At every iteration of the retry loop, a separator will be added
 		# pass CiTestObj.FailReportCnt as parameter of HTML.CreateHtmlRetrySeparator
 		HTML.CreateHtmlRetrySeparator(CiTestObj.FailReportCnt)
 		for test_case_id in todo_tests:
@@ -915,14 +918,22 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
 					HTML=ldpc.Run_PhySim(HTML,CONST,id)
 				elif action == 'Build_Image':
 					CONTAINERS.BuildImage(HTML)
+				elif action == 'Build_Proxy':
+					CONTAINERS.BuildProxy(HTML)
 				elif action == 'Copy_Image_to_Test':
 					CONTAINERS.Copy_Image_to_Test_Server(HTML)
 				elif action == 'Deploy_Object':
 					CONTAINERS.DeployObject(HTML, EPC)
+					if CONTAINERS.exitStatus==1:
+						RAN.prematureExit = True
 				elif action == 'Undeploy_Object':
 					CONTAINERS.UndeployObject(HTML, RAN)
 				elif action == 'Cppcheck_Analysis':
 					SCA.CppCheckAnalysis(HTML)
+				elif action == 'LicenceAndFormattingCheck':
+					ret = SCA.LicenceAndFormattingCheck(HTML)
+					if ret != 0:
+						RAN.prematureExit = True
 				elif action == 'Deploy_Run_PhySim':
 					PHYSIM.Deploy_PhySim(HTML, RAN)
 				elif action == 'DeployGenObject':
diff --git a/ci-scripts/ran.py b/ci-scripts/ran.py
index 97c5b9696ee..680763d247d 100644
--- a/ci-scripts/ran.py
+++ b/ci-scripts/ran.py
@@ -383,17 +383,19 @@ class RANManagement():
 
 
 		# If tracer options is on, running tshark on EPC side and capture traffic b/ EPC and eNB
-		localEpcIpAddr = EPC.IPAddress
-		localEpcUserName = EPC.UserName
-		localEpcPassword = EPC.Password
-		mySSH.open(localEpcIpAddr, localEpcUserName, localEpcPassword)
-		eth_interface = 'any'
-		fltr = 'sctp'
-		logging.debug('\u001B[1m Launching tshark on interface ' + eth_interface + ' with filter "' + fltr + '"\u001B[0m')
-		self.epcPcapFile = 'enb_' + self.testCase_id + '_s1log.pcap'
-		mySSH.command('echo ' + localEpcPassword + ' | sudo -S rm -f /tmp/' + self.epcPcapFile , '\$', 5)
-		mySSH.command('echo $USER; nohup sudo tshark -f "host ' + lIpAddr +'" -i ' + eth_interface + ' -f "' + fltr + '" -w /tmp/' + self.epcPcapFile + ' > /tmp/tshark.log 2>&1 &', localEpcUserName, 5)
-		mySSH.close()
+		if EPC.IPAddress != "none":
+			localEpcIpAddr = EPC.IPAddress
+			localEpcUserName = EPC.UserName
+			localEpcPassword = EPC.Password
+			mySSH.open(localEpcIpAddr, localEpcUserName, localEpcPassword)
+			eth_interface = 'any'
+			fltr = 'sctp'
+			logging.debug('\u001B[1m Launching tshark on interface ' + eth_interface + ' with filter "' + fltr + '"\u001B[0m')
+			self.epcPcapFile = 'enb_' + self.testCase_id + '_s1log.pcap'
+			mySSH.command('echo ' + localEpcPassword + ' | sudo -S rm -f /tmp/' + self.epcPcapFile , '\$', 5)
+			mySSH.command('echo $USER; nohup sudo tshark -f "host ' + lIpAddr +'" -i ' + eth_interface + ' -f "' + fltr + '" -w /tmp/' + self.epcPcapFile + ' > /tmp/tshark.log 2>&1 &', localEpcUserName, 5)
+			mySSH.close()
+
 		mySSH.open(lIpAddr, lUserName, lPassWord)
 		mySSH.command('cd ' + lSourcePath, '\$', 5)
 		# Initialize_eNB_args usually start with -O and followed by the location in repository
diff --git a/ci-scripts/ran_dashboard/Hdashboard.py b/ci-scripts/ran_dashboard/Hdashboard.py
index 1b65c7af4f0..bfa07557bde 100644
--- a/ci-scripts/ran_dashboard/Hdashboard.py
+++ b/ci-scripts/ran_dashboard/Hdashboard.py
@@ -528,15 +528,15 @@ class Dashboard:
             editable_mr = project.mergerequests.get(int(mr))
             mr_notes = editable_mr.notes.list(all=True)
 
-            body = '<a href="https://oaitestdashboard.s3.eu-west-1.amazonaws.com/MR'+mr+'/index.html">Consolidated Test Results</a><br>'+\
-                'Tested CommitID: ' + commit + '<br>'
+            body =  '[Consolidated Test Results](https://oaitestdashboard.s3.eu-west-1.amazonaws.com/MR'+mr+'/index.html)\\\n'
+            body += 'Tested CommitID: ' + commit
 
             for i in range(0,n_tests):
                 jobname = args[4*i]
                 buildurl = args[4*i+1]
                 buildid = args[4*i+2]
                 status = args[4*i+3]
-                body += jobname+', status is <b>'+status+'</b>, (<a href="'+buildurl+'">'+buildid+'</a>)<br>'
+                body += '\\\n' + jobname + ': **'+status+'** ([' + buildid + '](' + buildurl + '))'
 
             #create new note
             mr_note = editable_mr.notes.create({
diff --git a/ci-scripts/sshconnection.py b/ci-scripts/sshconnection.py
index dca3daa817c..035da71426a 100644
--- a/ci-scripts/sshconnection.py
+++ b/ci-scripts/sshconnection.py
@@ -60,7 +60,7 @@ class SSHConnection():
 		count = 0
 		connect_status = False
 		while count < 4:
-			self.ssh = pexpect.spawn('ssh -o PubkeyAuthentication=no {}@{}'.format(username,ipaddress))
+			self.ssh = pexpect.spawn('ssh -o PubkeyAuthentication=yes {}@{}'.format(username,ipaddress))
 			# Longer timeout at connection due to asterix slowness
 			self.ssh.timeout = 25
 			self.sshresponse = self.ssh.expect(['Are you sure you want to continue connecting (yes/no)?', 'password:', 'Last login', pexpect.EOF, pexpect.TIMEOUT])
@@ -84,14 +84,11 @@ class SSHConnection():
 				else:
 					logging.debug('self.sshresponse = ' + str(self.sshresponse))
 			elif self.sshresponse == 2:
-				# Checking if we are really on the remote client defined by its IP address
-				self.command('stdbuf -o0 ifconfig | egrep --color=never "inet addr:|inet "', prompt, 5)
-				result = re.search(str(ipaddress), str(self.ssh.before))
-				if result is None:
-					self.close()
-				else:
-					count = 10
-					connect_status = True
+				# We directly ended up on the remote server because of pubkey auth
+				count = 10
+				connect_status = True
+				# this expect() seems to be necessary to advance the read buffer until the prompt, or getBefore() will not return the last command
+				self.sshresponse = self.ssh.expect([prompt])
 			else:
 				# debug output
 				logging.debug(str(self.ssh.before))
@@ -272,4 +269,4 @@ class SSHConnection():
 			sys.exit('SCP failed')
 
 	def getBefore(self):
-		return str(self.ssh.before)
+		return self.ssh.before.decode('utf-8')
diff --git a/ci-scripts/stats_monitor_conf.yaml b/ci-scripts/stats_monitor_conf.yaml
index 9a2ececd183..4e1f87ed176 100644
--- a/ci-scripts/stats_monitor_conf.yaml
+++ b/ci-scripts/stats_monitor_conf.yaml
@@ -25,7 +25,7 @@ gnb :
     L1 Rx processing:
     PUSCH inner-receiver:
     PUSCH decoding:
-    DL & UL scheduling timing stats:
+    DL & UL scheduling timing:
     UL Indication:
   graph : 
     page1:
@@ -45,5 +45,5 @@ gnb :
     page4:
       rt.PUSCH inner-receiver:
       rt.PUSCH decoding:
-      rt.DL & UL scheduling timing stats:
+      rt.DL & UL scheduling timing:
       rt.UL Indication:
diff --git a/ci-scripts/xml_class_list.yml b/ci-scripts/xml_class_list.yml
index d6f75191a8d..2c5f04b11fa 100755
--- a/ci-scripts/xml_class_list.yml
+++ b/ci-scripts/xml_class_list.yml
@@ -1,3 +1,4 @@
+  - Build_Proxy
   - Build_PhySim
   - Run_PhySim
   - Build_eNB
@@ -47,3 +48,4 @@
   - PingFromContainer
   - IperfFromContainer
   - StatsFromGenObject
+  - LicenceAndFormattingCheck
diff --git a/ci-scripts/xml_files/container_5g_l2sim_proxy.xml b/ci-scripts/xml_files/container_5g_l2sim_proxy.xml
new file mode 100644
index 00000000000..af1715d7936
--- /dev/null
+++ b/ci-scripts/xml_files/container_5g_l2sim_proxy.xml
@@ -0,0 +1,42 @@
+<!--
+
+ Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The OpenAirInterface Software Alliance licenses this file to You under
+ the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.openairinterface.org/?page_id=698
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ For more information about the OpenAirInterface (OAI) Software Alliance:
+      contact@openairinterface.org
+
+-->
+<testCaseList>
+        <htmlTabRef>l2sim-5gnr-proxy-build</htmlTabRef>
+        <htmlTabName>Build L2sim proxy image</htmlTabName>
+        <htmlTabIcon>wrench</htmlTabIcon>
+        <repeatCount>1</repeatCount>
+        <TestCaseRequestedList>
+ 000001
+        </TestCaseRequestedList>
+        <TestCaseExclusionList></TestCaseExclusionList>
+
+        <testCase id="000001">
+                <class>Build_Proxy</class>
+                <desc>Build L2sim Proxy Image</desc>
+                <eNB_instance>1</eNB_instance>
+                <eNB_serverId>1</eNB_serverId>
+                <forced_workspace_cleanup>True</forced_workspace_cleanup>
+                <proxy_commit>56cfdc0</proxy_commit>
+        </testCase>
+
+</testCaseList>
diff --git a/ci-scripts/xml_files/container_nsa_b200_quectel.xml b/ci-scripts/xml_files/container_nsa_b200_quectel.xml
index 47a939f63c5..51e6668cf00 100644
--- a/ci-scripts/xml_files/container_nsa_b200_quectel.xml
+++ b/ci-scripts/xml_files/container_nsa_b200_quectel.xml
@@ -53,7 +53,6 @@
 		<class>Initialize_UE</class>
 		<desc>Initialize Quectel</desc>
 		<id>idefix</id>
-		<UE_Trace>yes</UE_Trace>
 	</testCase>
 
 
@@ -142,8 +141,8 @@
 		<iperf_args>-u -b 125M -t 60 -i 1 -fm</iperf_args>
 		<direction>DL</direction>
 		<id>idefix</id>
-		<iperf_packetloss_threshold>1</iperf_packetloss_threshold>
-		<iperf_bitrate_threshold>95</iperf_bitrate_threshold>
+		<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
+		<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
 		<iperf_profile>single-ue</iperf_profile>
 	</testCase>
 
diff --git a/ci-scripts/xml_files/container_sa_b200_quectel.xml b/ci-scripts/xml_files/container_sa_b200_quectel.xml
new file mode 100644
index 00000000000..7f0475629de
--- /dev/null
+++ b/ci-scripts/xml_files/container_sa_b200_quectel.xml
@@ -0,0 +1,168 @@
+<!--
+
+ Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The OpenAirInterface Software Alliance licenses this file to You under
+ the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.openairinterface.org/?page_id=698
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ For more information about the OpenAirInterface (OAI) Software Alliance:
+      contact@openairinterface.org
+
+-->
+<testCaseList>
+  <htmlTabRef>TEST-SA-FR1-B200</htmlTabRef>
+  <htmlTabName>SA SanityCheck with QUECTEL</htmlTabName>
+  <htmlTabIcon>tasks</htmlTabIcon>
+  <repeatCount>1</repeatCount>
+  <TestCaseRequestedList>
+    010002
+    030000
+    030101
+    000001
+    010000
+    000001
+    050000
+    050001
+    010002
+    000001
+    030201
+  </TestCaseRequestedList>
+    <!--
+ 070001
+ 070000
+ 070002
+ 050002
+ 050003
+    -->
+  <TestCaseExclusionList></TestCaseExclusionList>
+
+  <testCase id="010000">
+    <class>Initialize_UE</class>
+    <desc>Initialize Quectel</desc>
+    <id>idefix</id>
+  </testCase>
+
+
+  <testCase id="010002">
+    <class>Terminate_UE</class>
+    <desc>Terminate Quectel</desc>
+    <id>idefix</id>
+  </testCase>
+
+  <testCase id="030000">
+    <class>Copy_Image_to_Test</class>
+    <desc>Copy gNB image to test server</desc>
+    <image_name>oai-gnb</image_name>
+    <registry_svr_id>1</registry_svr_id>
+    <test_svr_id>0</test_svr_id>
+  </testCase>
+
+  <testCase id="030101">
+    <class>Deploy_Object</class>
+    <desc>Deploy gNB (TDD/Band78/40MHz/B200) in a container</desc>
+    <yaml_path>ci-scripts/yaml_files/sa_b200_gnb</yaml_path>
+    <eNB_instance>0</eNB_instance>
+    <eNB_serverId>0</eNB_serverId>
+  </testCase>
+
+  <testCase id="000001">
+    <class>IdleSleep</class>
+    <desc>Sleep</desc>
+    <idle_sleep_time_in_sec>5</idle_sleep_time_in_sec>
+  </testCase>
+
+  <testCase id="000002">
+    <class>IdleSleep</class>
+    <desc>Sleep</desc>
+    <idle_sleep_time_in_sec>20</idle_sleep_time_in_sec>
+  </testCase>
+
+
+  <testCase id="050000">
+    <class>Ping</class>
+    <desc>Ping: 20pings in 20sec</desc>
+    <id>idefix</id>
+    <ping_args>-c 20</ping_args>
+    <ping_packetloss_threshold>1</ping_packetloss_threshold>
+    <ping_rttavg_threshold>15</ping_rttavg_threshold>
+  </testCase>
+
+  <testCase id="050001">
+    <class>Ping</class>
+    <desc>Ping: 100pings in 20sec</desc>
+    <id>idefix</id>
+    <ping_args>-c 100 -i 0.2</ping_args>
+    <ping_packetloss_threshold>1</ping_packetloss_threshold>
+    <ping_rttavg_threshold>15</ping_rttavg_threshold>
+  </testCase>
+
+  <testCase id="050002">
+    <class>Ping</class>
+    <desc>Ping: 20pings in 20sec</desc>
+    <id>idefix</id>
+    <ping_args>-c 20</ping_args>
+    <ping_packetloss_threshold>1</ping_packetloss_threshold>
+    <ping_rttavg_threshold>15</ping_rttavg_threshold>
+  </testCase>
+
+  <testCase id="050003">
+    <class>Ping</class>
+    <desc>Ping: 100pings in 20sec</desc>
+    <id>idefix</id>
+    <ping_args>-c 100 -i 0.2</ping_args>
+    <ping_packetloss_threshold>1</ping_packetloss_threshold>
+    <ping_rttavg_threshold>15</ping_rttavg_threshold>
+  </testCase>
+
+  <testCase id="070000">
+    <class>Iperf</class>
+    <desc>iperf (DL/125Mbps/UDP)(60 sec)(single-ue profile)</desc>
+    <iperf_args>-u -b 125M -t 60 -i 1 -fm</iperf_args>
+    <direction>DL</direction>
+    <id>idefix</id>
+    <iperf_packetloss_threshold>25</iperf_packetloss_threshold>
+    <iperf_bitrate_threshold>80</iperf_bitrate_threshold>
+    <iperf_profile>single-ue</iperf_profile>
+  </testCase>
+
+  <testCase id="070001">
+    <class>Iperf</class>
+    <desc>iperf (UL/8Mbps/UDP)(60 sec)(single-ue profile)</desc>
+    <iperf_args>-u -b 8M -t 60 -i 1 -fm</iperf_args>
+    <direction>UL</direction>
+    <id>idefix</id>
+    <iperf_packetloss_threshold>1</iperf_packetloss_threshold>
+    <iperf_bitrate_threshold>95</iperf_bitrate_threshold>
+    <iperf_profile>single-ue</iperf_profile>
+  </testCase>
+
+  <testCase id="070002">
+    <class>Iperf</class>
+    <desc>iperf (BIDIR TCP)(10 sec)(single-ue profile)</desc>
+    <iperf_args>-t 10 --bidir</iperf_args>
+    <direction>BIDIR</direction>
+    <id>idefix</id>
+    <iperf_profile>single-ue</iperf_profile>
+  </testCase>
+
+  <testCase id="030201">
+    <class>Undeploy_Object</class>
+    <desc>Undeploy gNB</desc>
+    <yaml_path>ci-scripts/yaml_files/sa_b200_gnb</yaml_path>
+    <eNB_instance>0</eNB_instance>
+    <eNB_serverId>0</eNB_serverId>
+  </testCase>
+
+</testCaseList>
+
diff --git a/ci-scripts/xml_files/container_sa_b200_terminate.xml b/ci-scripts/xml_files/container_sa_b200_terminate.xml
new file mode 100644
index 00000000000..5a2b6bd4543
--- /dev/null
+++ b/ci-scripts/xml_files/container_sa_b200_terminate.xml
@@ -0,0 +1,42 @@
+<!--
+
+ Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The OpenAirInterface Software Alliance licenses this file to You under
+ the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.openairinterface.org/?page_id=698
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ For more information about the OpenAirInterface (OAI) Software Alliance:
+      contact@openairinterface.org
+
+-->
+<testCaseList>
+  <htmlTabRef>TEST-SA-FR1-B200-terminate</htmlTabRef>
+  <htmlTabName>SA tear-down in case of problem</htmlTabName>
+  <htmlTabIcon>tasks</htmlTabIcon>
+  <repeatCount>1</repeatCount>
+  <TestCaseRequestedList>
+  030201
+  </TestCaseRequestedList>
+  <TestCaseExclusionList></TestCaseExclusionList>
+
+  <testCase id="030201">
+    <class>Undeploy_Object</class>
+    <desc>Undeploy gNB</desc>
+    <yaml_path>ci-scripts/yaml_files/sa_b200_gnb</yaml_path>
+    <eNB_instance>1</eNB_instance>
+    <eNB_serverId>1</eNB_serverId>
+    <image_tag>sa-test</image_tag>
+  </testCase>
+
+</testCaseList>
diff --git a/ci-scripts/xml_files/formatting_check.xml b/ci-scripts/xml_files/formatting_check.xml
new file mode 100644
index 00000000000..bdf47af65d2
--- /dev/null
+++ b/ci-scripts/xml_files/formatting_check.xml
@@ -0,0 +1,37 @@
+<!--
+
+ Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The OpenAirInterface Software Alliance licenses this file to You under
+ the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.openairinterface.org/?page_id=698
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ For more information about the OpenAirInterface (OAI) Software Alliance:
+      contact@openairinterface.org
+
+-->
+<testCaseList>
+	<htmlTabRef>formatting-tab</htmlTabRef>
+	<htmlTabName>License and Formatting Checks</htmlTabName>
+	<htmlTabIcon>wrench</htmlTabIcon>
+	<TestCaseRequestedList>
+ 000002
+	</TestCaseRequestedList>
+	<TestCaseExclusionList></TestCaseExclusionList>
+
+	<testCase id="000002">
+		<class>LicenceAndFormattingCheck</class>
+		<desc>License and Formatting Checks</desc>
+	</testCase>
+
+</testCaseList>
diff --git a/ci-scripts/xml_files/fr1_5gc_closure.xml b/ci-scripts/xml_files/fr1_5gc_closure.xml
new file mode 100644
index 00000000000..e5e57fa694b
--- /dev/null
+++ b/ci-scripts/xml_files/fr1_5gc_closure.xml
@@ -0,0 +1,37 @@
+<!--
+
+ Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The OpenAirInterface Software Alliance licenses this file to You under
+ the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.openairinterface.org/?page_id=698
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ For more information about the OpenAirInterface (OAI) Software Alliance:
+      contact@openairinterface.org
+
+-->
+<testCaseList>
+	<htmlTabRef>5gc-closure</htmlTabRef>
+	<htmlTabName>5GC-Closure</htmlTabName>
+	<htmlTabIcon>log-out</htmlTabIcon>
+	<TestCaseRequestedList>
+060000
+	</TestCaseRequestedList>
+	<TestCaseExclusionList></TestCaseExclusionList>
+
+	<testCase id="060000">
+		<class>Terminate_5GCN</class>
+		<desc>Terminate 5GC</desc>
+	</testCase>
+
+</testCaseList>
diff --git a/ci-scripts/xml_files/fr1_5gc_start.xml b/ci-scripts/xml_files/fr1_5gc_start.xml
new file mode 100644
index 00000000000..8758b761cd1
--- /dev/null
+++ b/ci-scripts/xml_files/fr1_5gc_start.xml
@@ -0,0 +1,38 @@
+<!--
+
+ Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The OpenAirInterface Software Alliance licenses this file to You under
+ the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.openairinterface.org/?page_id=698
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ For more information about the OpenAirInterface (OAI) Software Alliance:
+      contact@openairinterface.org
+
+-->
+<testCaseList>
+	<htmlTabRef>5gc-start-tab</htmlTabRef>
+	<htmlTabName>5GC-Start</htmlTabName>
+	<htmlTabIcon>log-in</htmlTabIcon>
+	<TestCaseRequestedList>
+ 000100
+	</TestCaseRequestedList>
+	<TestCaseExclusionList>
+	</TestCaseExclusionList>
+
+	<testCase id="000100">
+		<class>Initialize_5GCN</class>
+		<desc>Initialize 5GC</desc>
+	</testCase>
+
+</testCaseList>
diff --git a/ci-scripts/xml_files/fr1_gnb_build.xml b/ci-scripts/xml_files/fr1_gnb_build.xml
index 13d85fccc4e..1ddc5b56821 100644
--- a/ci-scripts/xml_files/fr1_gnb_build.xml
+++ b/ci-scripts/xml_files/fr1_gnb_build.xml
@@ -32,7 +32,7 @@
 	<testCase id="000001">
 		<class>Build_eNB</class>
 		<desc>Build gNB</desc>
-		<Build_eNB_args>-w USRP -c --gNB --ninja</Build_eNB_args>
+		<Build_eNB_args>-w USRP -c --gNB --ninja --noavx512</Build_eNB_args>
 		<eNB_instance>0</eNB_instance>
 		<eNB_serverId>0</eNB_serverId>
 		<forced_workspace_cleanup>True</forced_workspace_cleanup>
diff --git a/ci-scripts/xml_files/fr1_multi_node_build.xml b/ci-scripts/xml_files/fr1_multi_node_build.xml
index 60bc734e65d..2dbdfb2f9d3 100644
--- a/ci-scripts/xml_files/fr1_multi_node_build.xml
+++ b/ci-scripts/xml_files/fr1_multi_node_build.xml
@@ -50,7 +50,7 @@
 	<testCase id="000002">
 		<class>Build_eNB</class>
 		<desc>Build gNB</desc>
-		<Build_eNB_args>-w USRP -c --gNB --ninja</Build_eNB_args>
+		<Build_eNB_args>-w USRP -c --gNB --ninja --noavx512</Build_eNB_args>
 		<eNB_instance>1</eNB_instance>
 		<eNB_serverId>1</eNB_serverId>
 		<backgroundBuild>True</backgroundBuild>
diff --git a/ci-scripts/xml_files/fr1_nsa_2x2_quectel.xml b/ci-scripts/xml_files/fr1_nsa_2x2_quectel.xml
index 2ef2b7d7ce7..459a16c3237 100644
--- a/ci-scripts/xml_files/fr1_nsa_2x2_quectel.xml
+++ b/ci-scripts/xml_files/fr1_nsa_2x2_quectel.xml
@@ -26,6 +26,7 @@
 	<htmlTabIcon>tasks</htmlTabIcon>
 	<repeatCount>1</repeatCount>
 	<TestCaseRequestedList>
+ 010002
  030000
  040000
  000002
diff --git a/ci-scripts/xml_files/fr1_nsa_2x2_quectel_attach_detach.xml b/ci-scripts/xml_files/fr1_nsa_2x2_quectel_attach_detach.xml
index 335fe873a16..c8e0659330d 100644
--- a/ci-scripts/xml_files/fr1_nsa_2x2_quectel_attach_detach.xml
+++ b/ci-scripts/xml_files/fr1_nsa_2x2_quectel_attach_detach.xml
@@ -26,6 +26,7 @@
 	<htmlTabIcon>tasks</htmlTabIcon>
 	<repeatCount>1</repeatCount>
 	<TestCaseRequestedList>
+ 010002
  031000
  041000
  000002
diff --git a/ci-scripts/xml_files/fr1_nsa_quectel.xml b/ci-scripts/xml_files/fr1_nsa_quectel.xml
index 0f8c90abdf1..c72c61c0a28 100644
--- a/ci-scripts/xml_files/fr1_nsa_quectel.xml
+++ b/ci-scripts/xml_files/fr1_nsa_quectel.xml
@@ -26,6 +26,7 @@
 	<htmlTabIcon>tasks</htmlTabIcon>
 	<repeatCount>1</repeatCount>
 	<TestCaseRequestedList>
+ 010002
  030000
  040000
  000002
@@ -34,8 +35,8 @@
  050000
  050001
  000001
- 070003
- 070002
+ 070000
+ 070001
  000001
  050000
  050001
@@ -52,14 +53,12 @@
 		<UE_Trace>yes</UE_Trace>
 	</testCase>
 
-
 	<testCase id="010002">
 		<class>Terminate_UE</class>
 		<desc>Terminate Quectel</desc>
 		<id>idefix</id>
 	</testCase>
 
-
 	<testCase id="030000">
 		<class>Initialize_eNB</class>
 		<desc>Initialize eNB</desc>
@@ -70,7 +69,6 @@
 		<eNB_Trace>yes</eNB_Trace>
 	</testCase>
 
-
 	<testCase id="040000">
 		<class>Initialize_eNB</class>
 		<desc>Initialize gNB</desc>
@@ -92,7 +90,6 @@
 		<idle_sleep_time_in_sec>20</idle_sleep_time_in_sec>
 	</testCase>
 
-
 	<testCase id="050000">
 		<class>Ping</class>
 		<desc>Ping: 20pings in 20sec</desc>
@@ -112,39 +109,17 @@
 	</testCase>
 
 	<testCase id="070000">
-		<class>Iperf</class>
-		<desc>iperf (DL/30Mbps/UDP)(30 sec)(single-ue profile)</desc>
-		<iperf_args>-u -b 30M -t 30</iperf_args>
-		<direction>DL</direction>
-		<id>idefix</id>
-		<iperf_packetloss_threshold>1</iperf_packetloss_threshold>
-		<iperf_bitrate_threshold>95</iperf_bitrate_threshold>
-		<iperf_profile>single-ue</iperf_profile>
-	</testCase>
-
-	<testCase id="070001">
-		<class>Iperf</class>
-		<desc>iperf (DL/90Mbps/UDP)(30 sec)(single-ue profile)</desc>
-		<iperf_args>-u -b 90M -t 30</iperf_args>
-		<direction>DL</direction>
-		<id>idefix</id>
-		<iperf_packetloss_threshold>1</iperf_packetloss_threshold>
-		<iperf_bitrate_threshold>95</iperf_bitrate_threshold>
-		<iperf_profile>single-ue</iperf_profile>
-	</testCase>
-
-	<testCase id="070002">
 		<class>Iperf</class>
 		<desc>iperf (DL/125Mbps/UDP)(60 sec)(single-ue profile)</desc>
 		<iperf_args>-u -b 125M -t 60</iperf_args>
 		<direction>DL</direction>
 		<id>idefix</id>
-		<iperf_packetloss_threshold>1</iperf_packetloss_threshold>
-		<iperf_bitrate_threshold>95</iperf_bitrate_threshold>
+		<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
+		<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
 		<iperf_profile>single-ue</iperf_profile>
 	</testCase>
 
-	<testCase id="070003">
+	<testCase id="070001">
 		<class>Iperf</class>
 		<desc>iperf (UL/8Mbps/UDP)(60 sec)(single-ue profile)</desc>
 		<iperf_args>-u -b 8M -t 60</iperf_args>
@@ -155,7 +130,6 @@
 		<iperf_profile>single-ue</iperf_profile>
 	</testCase>
 
-
 	<testCase id="080000">
 		<class>Terminate_eNB</class>
 		<desc>Terminate eNB</desc>
diff --git a/ci-scripts/xml_files/fr1_sa_quectel.xml b/ci-scripts/xml_files/fr1_sa_quectel.xml
index 2b215479c24..fd983d8835b 100644
--- a/ci-scripts/xml_files/fr1_sa_quectel.xml
+++ b/ci-scripts/xml_files/fr1_sa_quectel.xml
@@ -26,6 +26,7 @@
 	<htmlTabIcon>tasks</htmlTabIcon>
 	<repeatCount>1</repeatCount>
 	<TestCaseRequestedList>
+ 010002
  040000
  000002
  010000
diff --git a/ci-scripts/xml_files/fr1_sa_quectel_162prb.xml b/ci-scripts/xml_files/fr1_sa_quectel_162prb.xml
index 23eaccfcfd2..f426bd60354 100644
--- a/ci-scripts/xml_files/fr1_sa_quectel_162prb.xml
+++ b/ci-scripts/xml_files/fr1_sa_quectel_162prb.xml
@@ -26,6 +26,7 @@
 	<htmlTabIcon>tasks</htmlTabIcon>
 	<repeatCount>1</repeatCount>
 	<TestCaseRequestedList>
+ 010002
  042000
  000002
  010000
diff --git a/ci-scripts/xml_files/fr1_sa_quectel_stages.xml b/ci-scripts/xml_files/fr1_sa_quectel_stages.xml
index 603f3f919b4..48a9b60e7db 100644
--- a/ci-scripts/xml_files/fr1_sa_quectel_stages.xml
+++ b/ci-scripts/xml_files/fr1_sa_quectel_stages.xml
@@ -26,6 +26,7 @@
 	<htmlTabIcon>tasks</htmlTabIcon>
 	<repeatCount>1</repeatCount>
 	<TestCaseRequestedList>
+ 011002
  041000
  000002
  011000
diff --git a/ci-scripts/xml_files/gnb_phytest_usrp_run.xml b/ci-scripts/xml_files/gnb_phytest_usrp_run.xml
index 5705533ab48..e7eb651d507 100644
--- a/ci-scripts/xml_files/gnb_phytest_usrp_run.xml
+++ b/ci-scripts/xml_files/gnb_phytest_usrp_run.xml
@@ -24,7 +24,7 @@
 	<htmlTabRef>gNB-PHY-Test</htmlTabRef>
 	<htmlTabName>Run-gNB-PHY-Test</htmlTabName>
 	<htmlTabIcon>tasks</htmlTabIcon>
-	<repeatCount>3</repeatCount>
+	<repeatCount>1</repeatCount>
 	<TestCaseRequestedList>
 090101 000001 090109
 	</TestCaseRequestedList>
@@ -33,7 +33,7 @@
 	<testCase id="090101">
 		<class>Initialize_eNB</class>
 		<desc>Initialize gNB USRP</desc>
-		<Initialize_eNB_args>-O ci-scripts/conf_files/gnb.band78.tm1.106PRB.usrpn300.conf --phy-test -q -U 787200 -T 106 -t 28 -D 130175 -m 28 -M 106 --log_config.global_log_options level,nocolor,time</Initialize_eNB_args>
+		<Initialize_eNB_args>-O ci-scripts/conf_files/gnb.band78.tm1.106PRB.usrpn300.conf --phy-test -q -U 787200 -T 106 -t 28 -D 130175 -m 28 -M 106 --usrp-tx-thread-config 1 --log_config.global_log_options level,nocolor,time</Initialize_eNB_args>
 		<air_interface>NR</air_interface>
 		<USRP_IPAddress>192.168.20.2</USRP_IPAddress>
 	</testCase>
diff --git a/ci-scripts/xml_files/gnb_usrp_build.xml b/ci-scripts/xml_files/gnb_usrp_build.xml
index 97f85c6a339..81c7d4e24ec 100644
--- a/ci-scripts/xml_files/gnb_usrp_build.xml
+++ b/ci-scripts/xml_files/gnb_usrp_build.xml
@@ -34,7 +34,7 @@
 		<mode>TesteNB</mode>	
 		<class>Build_eNB</class>
 		<desc>Build gNB (USRP)</desc>
-		<Build_eNB_args>--gNB -w USRP --ninja --cmake-opt -DBoost_INCLUDE_DIR=/usr/include/boost169</Build_eNB_args>
+		<Build_eNB_args>--gNB -w USRP --ninja --cmake-opt -DBoost_INCLUDE_DIR=/usr/include/boost169 --noavx512</Build_eNB_args>
 		<forced_workspace_cleanup>True</forced_workspace_cleanup>
 	</testCase>
 
diff --git a/ci-scripts/xml_files/ldpc_gpu_test.xml b/ci-scripts/xml_files/ldpc_gpu_test.xml
index a0191fbd768..c17bc082d5b 100644
--- a/ci-scripts/xml_files/ldpc_gpu_test.xml
+++ b/ci-scripts/xml_files/ldpc_gpu_test.xml
@@ -32,7 +32,7 @@
 	<testCase id="000001">
 		<class>Build_PhySim</class>
 		<desc>Build for physical simulator</desc>
-		<physim_build_args>--phy_simulators --ninja</physim_build_args>
+		<physim_build_args>--phy_simulators --ninja --noavx512</physim_build_args>
 		<forced_workspace_cleanup>FALSE</forced_workspace_cleanup>
 	</testCase>
 
diff --git a/ci-scripts/xml_files/lte_2x2_tm1_quectel.xml b/ci-scripts/xml_files/lte_2x2_tm1_quectel.xml
index 6aa53200c85..b6388eede25 100644
--- a/ci-scripts/xml_files/lte_2x2_tm1_quectel.xml
+++ b/ci-scripts/xml_files/lte_2x2_tm1_quectel.xml
@@ -26,6 +26,7 @@
 	<htmlTabIcon>tasks</htmlTabIcon>
 	<repeatCount>1</repeatCount>
 	<TestCaseRequestedList>
+ 010002
  030000
  000002
  010000
@@ -88,7 +89,7 @@
 		<id>nrmodule2_quectel</id>
 		<ping_args>-c 20</ping_args>
 		<ping_packetloss_threshold>1</ping_packetloss_threshold>
-		<ping_rttavg_threshold>40</ping_rttavg_threshold>
+		<ping_rttavg_threshold>60</ping_rttavg_threshold>
 	</testCase>
 	<testCase id="050001">
 		<class>Ping</class>
@@ -96,7 +97,7 @@
 		<id>nrmodule2_quectel</id>
 		<ping_args>-c 100 -s 1024 -i 0,2</ping_args>
 		<ping_packetloss_threshold>1</ping_packetloss_threshold>
-		<ping_rttavg_threshold>40</ping_rttavg_threshold>
+		<ping_rttavg_threshold>60</ping_rttavg_threshold>
 	</testCase>
 
 
diff --git a/ci-scripts/xml_files/lte_2x2_tm2_quectel.xml b/ci-scripts/xml_files/lte_2x2_tm2_quectel.xml
index 84aa87aa235..99c8f75e06f 100644
--- a/ci-scripts/xml_files/lte_2x2_tm2_quectel.xml
+++ b/ci-scripts/xml_files/lte_2x2_tm2_quectel.xml
@@ -26,6 +26,7 @@
 	<htmlTabIcon>tasks</htmlTabIcon>
 	<repeatCount>1</repeatCount>
 	<TestCaseRequestedList>
+ 010002
  030001
  000002
  010000
@@ -88,7 +89,7 @@
 		<id>nrmodule2_quectel</id>
 		<ping_args>-c 20</ping_args>
 		<ping_packetloss_threshold>1</ping_packetloss_threshold>
-		<ping_rttavg_threshold>40</ping_rttavg_threshold>
+		<ping_rttavg_threshold>60</ping_rttavg_threshold>
 	</testCase>
 	<testCase id="050003">
 		<class>Ping</class>
@@ -96,7 +97,7 @@
 		<id>nrmodule2_quectel</id>
 		<ping_args>-c 100 -s 1024 -i 0,2</ping_args>
 		<ping_packetloss_threshold>1</ping_packetloss_threshold>
-		<ping_rttavg_threshold>40</ping_rttavg_threshold>
+		<ping_rttavg_threshold>60</ping_rttavg_threshold>
 	</testCase>
 
 
diff --git a/ci-scripts/yaml_files/sa_b200_gnb/docker-compose.yml b/ci-scripts/yaml_files/sa_b200_gnb/docker-compose.yml
new file mode 100644
index 00000000000..9ea52c12477
--- /dev/null
+++ b/ci-scripts/yaml_files/sa_b200_gnb/docker-compose.yml
@@ -0,0 +1,44 @@
+version: '3.8'
+
+services:
+    gnb_mono_tdd:
+        image: oai-gnb:latest
+        privileged: true
+        container_name: sa-b200-gnb
+        environment:
+            USE_SA_TDD_MONO_B2XX: 'yes'
+            USE_B2XX: 'yes'
+            GNB_NAME: gNB-in-docker
+            MCC: '222'
+            MNC: '01'
+            MNC_LENGTH: 2
+            TAC: 1
+            NSSAI_SST: 1
+            NSSAI_SD0: 1
+            AMF_IP_ADDRESS: 172.21.16.136
+            GNB_NGA_IF_NAME: eth0
+            GNB_NGA_IP_ADDRESS: 192.168.68.194
+            GNB_NGU_IF_NAME: eth0
+            GNB_NGU_IP_ADDRESS: 192.168.68.194
+            USE_ADDITIONAL_OPTIONS: --sa -E -q --RUs.[0].sdr_addrs serial=30C51D4 --continuous-tx --log_config.global_log_options level,nocolor,time,line_num,function
+        volumes:
+            - /dev:/dev
+        networks:
+            public_net:
+                ipv4_address: 192.168.68.194
+        #entrypoint: /bin/bash -c "sleep infinity"
+        healthcheck:
+            # pgrep does NOT work
+            test: /bin/bash -c "ps aux | grep -v grep | grep -c softmodem"
+            interval: 10s
+            timeout: 5s
+            retries: 5
+
+networks:
+    public_net:
+        name: sa-b200-gnb-net
+        ipam:
+            config:
+                - subnet: 192.168.68.192/26
+        driver_opts:
+            com.docker.network.bridge.name: "sa-gnb-net"
diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt
index 99d94b6a672..2145376fcf5 100644
--- a/cmake_targets/CMakeLists.txt
+++ b/cmake_targets/CMakeLists.txt
@@ -203,17 +203,23 @@ if (CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l")
 else (CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l")
   if(EXISTS  "/proc/cpuinfo")
     file(STRINGS "/proc/cpuinfo" CPUINFO REGEX flags LIMIT_COUNT 1)
-    if (CPUINFO MATCHES "avx2")
-      set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mavx2")
+    message("NOAVX512 is ${NOAVX512}")
+    if (CPUINFO MATCHES "avx512bw" AND "${NOAVX512}" STREQUAL "False")
+      set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mavx512bw -march=skylake-avx512 -mtune=skylake-avx512 " )
       set(COMPILATION_AVX2 "True")
     else()
-      set(COMPILATION_AVX2 "False")
-    endif()
-    if (CPUINFO MATCHES "sse4_1")
-      set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -msse4.1 -mpclmul")
-    endif()
-    if (CPUINFO MATCHES "ssse3")
-      set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mssse3")
+      if (CPUINFO MATCHES "avx2")
+        set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mavx2")
+        set(COMPILATION_AVX2 "True")
+      else()
+        set(COMPILATION_AVX2 "False")
+      endif()
+      if (CPUINFO MATCHES "sse4_1")
+        set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -msse4.1 -mpclmul")
+      endif()
+      if (CPUINFO MATCHES "ssse3")
+        set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mssse3")
+      endif()
     endif()
   else()
     Message("/proc/cpuinfo does not exit. We will use manual CPU flags")
@@ -224,11 +230,11 @@ set(C_FLAGS_PROCESSOR " ${C_FLAGS_PROCESSOR} ${CFLAGS_PROCESSOR_USER}")
 
 Message("C_FLAGS_PROCESSOR is ${C_FLAGS_PROCESSOR}")
 
-if (CMAKE_SYSTEM_PROCESSOR MATCHES "x86")
-  if ( (NOT( C_FLAGS_PROCESSOR MATCHES "ssse3")) OR (NOT( C_FLAGS_PROCESSOR MATCHES "msse4.1")) )
-    Message(FATAL_ERROR "For x86 Architecture, you must have following flags: -mssse3 -msse4.1. The current detected flags are: ${C_FLAGS_PROCESSOR}. You can pass the flags manually in build script, for example: ./build_oai --cflags_processor \"-mssse3 -msse4.1 -mavx2\" ")
-  endif()
-endif()
+#if (CMAKE_SYSTEM_PROCESSOR MATCHES "x86")
+#  if ( (NOT( C_FLAGS_PROCESSOR MATCHES "ssse3")) OR (NOT( C_FLAGS_PROCESSOR MATCHES "msse4.1")) )
+#    Message(FATAL_ERROR "For x86 Architecture, you must have following flags: -mssse3 -msse4.1. The current detected flags are: ${C_FLAGS_PROCESSOR}. You can pass the flags manually in build script, for example: ./build_oai --cflags_processor \"-mssse3 -msse4.1 -mavx2\" ")
+#  endif()
+#endif()
 
 #
 # add autotools definitions that were maybe used!
@@ -247,6 +253,28 @@ add_boolean_option(SANITIZE_ADDRESS False "enable the address sanitizer (ASan)")
 if (SANITIZE_ADDRESS)
   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fno-omit-frame-pointer -fno-common")
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer -fno-common")
+  # There seems to be some incompatibility with pthread_create and the RT scheduler, which
+  # results in pthread_create hanging.
+  #
+  # When we switch from Ubuntu 16.04 to 18.04, we found that running with the address sanitizer,
+  # the pthread_create function calls were not working. The inital thought was that we were
+  # trying to create a thread that was not-blocking and would eventually crash the machine during
+  # the run. After more debugging, we found that we would never even start the thread. We narrowed
+  # down the first two instances of pthread_create in the gNB and NR UE to be sctp_eNB_task and
+  # one_thread, respectively. We found that adding sleeps, and various other pauses to the threads
+  # had not effect. From there, we found that if we add an abort(); prior to the thread loop, we
+  # do not execute that. This indicated to us that the problem is not likely to be a non-blocking
+  # thread, but perhaps and issue with pthread_create itself. From there we begain to research the
+  # issue on the web. See: https://github.com/google/sanitizers/issues/1125
+  #
+  # Google searching indicates this appears to be a problem since at least 2018. This could be something
+  # wrong in the pthread library, or something subtly wrong in this CMakeLists.txt. Use Ubuntu 20.04 instead.
+endif ()
+
+add_boolean_option(SANITIZE_UNDEFINED False "enable the undefined behavior sanitizer (UBSan)")
+if (SANITIZE_UNDEFINED)
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=undefined -fno-sanitize-recover=all")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined -fno-sanitize-recover=all")
 endif ()
 
 add_definitions("-DASN_DISABLE_OER_SUPPORT")
@@ -1410,8 +1438,11 @@ set(PHY_NR_CODINGIF
 )
 
 add_library(ldpc_orig MODULE ${PHY_LDPC_ORIG_SRC} )
+target_link_libraries(ldpc_orig PRIVATE ldpc_gen_HEADERS)
 add_library(ldpc_optim MODULE ${PHY_LDPC_OPTIM_SRC} )
+target_link_libraries(ldpc_optim PRIVATE ldpc_gen_HEADERS)
 add_library(ldpc_optim8seg MODULE ${PHY_LDPC_OPTIM8SEG_SRC} )
+target_link_libraries(ldpc_optim8seg PRIVATE ldpc_gen_HEADERS)
 add_library(ldpc_cl MODULE ${PHY_LDPC_CL_SRC} )
 target_link_libraries(ldpc_cl OpenCL)
 add_dependencies(ldpc_cl nrLDPC_decoder_kernels_CL)
@@ -1423,6 +1454,7 @@ if (CUDA_FOUND)
 endif (CUDA_FOUND)
 
 add_library(ldpc MODULE ${PHY_LDPC_OPTIM8SEGMULTI_SRC} )
+target_link_libraries(ldpc PRIVATE ldpc_gen_HEADERS)
 
 
 add_library(coding MODULE ${PHY_TURBOSRC} )
@@ -1568,9 +1600,10 @@ set(PHY_SRC_UE
 
   set(PHY_NR_SRC_COMMON
   ${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_prach_common.c
-  ${OPENAIR1_DIR}/PHY/NR_UE_TRANSPORT/srs_modulation_nr.c
+  ${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_csi_rs.c
   ${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_scrambling.c
   ${OPENAIR1_DIR}/PHY/NR_REFSIG/scrambling_luts.c
+  ${OPENAIR1_DIR}/PHY/NR_UE_TRANSPORT/srs_modulation_nr.c
   )
 
   set(PHY_NR_SRC
@@ -1595,7 +1628,6 @@ set(PHY_SRC_UE
   ${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
   ${OPENAIR1_DIR}/PHY/NR_REFSIG/ul_ref_seq_nr.c
   ${OPENAIR1_DIR}/PHY/NR_REFSIG/nr_dmrs_rx.c
-  ${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_csi_rs.c
   ${OPENAIR1_DIR}/PHY/NR_REFSIG/nr_gold.c
   ${OPENAIR1_DIR}/PHY/NR_REFSIG/nr_gen_mod_table.c
   ${OPENAIR1_DIR}/PHY/NR_REFSIG/dmrs_nr.c
@@ -1643,6 +1675,7 @@ set(PHY_SRC_UE
   ${OPENAIR1_DIR}/PHY/NR_UE_TRANSPORT/dci_nr.c
   ${OPENAIR1_DIR}/PHY/NR_UE_TRANSPORT/dci_tools_nr.c
   ${OPENAIR1_DIR}/PHY/NR_UE_TRANSPORT/pucch_nr.c
+  ${OPENAIR1_DIR}/PHY/NR_UE_TRANSPORT/csi_rx.c
   ${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_uci_tools_common.c
   ${OPENAIR1_DIR}/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
   ${OPENAIR1_DIR}/PHY/NR_REFSIG/ul_ref_seq_nr.c
@@ -1804,7 +1837,15 @@ set(NR_PDCP_SRC
   ${OPENAIR2_DIR}/LAYER2/nr_pdcp/nr_pdcp_timer_thread.c
   ${OPENAIR2_DIR}/LAYER2/nr_pdcp/nr_pdcp_security_nea2.c
   ${OPENAIR2_DIR}/LAYER2/nr_pdcp/nr_pdcp_integrity_nia2.c
+  ${OPENAIR2_DIR}/LAYER2/nr_pdcp/nr_pdcp_integrity_nia1.c
   ${OPENAIR2_DIR}/LAYER2/nr_pdcp/asn1_utils.c
+  #hack: include these files to compile the nr phy simulators
+  #these files should not be here, will be removed at some point when the
+  #computation is done directly inside nr_pdcp_integrity_nia1.c instead
+  #of reusing code of osa_stream_eia.c
+  ${OPENAIR2_DIR}/UTIL/OSA/osa_stream_eia.c
+  ${OPENAIR2_DIR}/UTIL/OSA/osa_snow3g.c
+  ${OPENAIR2_DIR}/UTIL/OSA/osa_rijndael.c
   )
 
 set(NR_SDAP_SRC
@@ -1952,6 +1993,7 @@ set (MAC_SRC_UE
 
 set (MAC_NR_SRC_UE
   ${NR_UE_PHY_INTERFACE_DIR}/NR_IF_Module.c
+  ${NR_UE_PHY_INTERFACE_DIR}/NR_Packet_Drop.c
   ${NR_UE_MAC_DIR}/config_ue.c
   ${NR_UE_MAC_DIR}/mac_vars.c
   ${NR_UE_MAC_DIR}/main_ue_nr.c
@@ -2869,6 +2911,7 @@ target_link_libraries(ldpctest
 add_executable(nr_dlschsim
   ${OPENAIR1_DIR}/SIMULATION/NR_PHY/dlschsim.c
   ${OPENAIR_DIR}/common/utils/nr/nr_common.c
+  ${OPENAIR_DIR}/executables/softmodem-common.c
   ${T_SOURCE}
   ${SHLIB_LOADER_SOURCES}
   )
@@ -2892,6 +2935,7 @@ target_link_libraries(nr_pbchsim
 add_executable(nr_pucchsim
   ${OPENAIR1_DIR}/SIMULATION/NR_PHY/pucchsim.c
   ${OPENAIR_DIR}/common/utils/nr/nr_common.c
+  ${OPENAIR_DIR}/executables/softmodem-common.c
   ${T_SOURCE}
   ${SHLIB_LOADER_SOURCES}
   )
@@ -2936,6 +2980,7 @@ target_link_libraries(nr_prachsim
 add_executable(nr_ulschsim
   ${OPENAIR1_DIR}/SIMULATION/NR_PHY/ulschsim.c
   ${OPENAIR_DIR}/common/utils/nr/nr_common.c
+  ${OPENAIR_DIR}/executables/softmodem-common.c
   ${PHY_INTERFACE_DIR}/queue_t.c
   ${T_SOURCE}
   ${SHLIB_LOADER_SOURCES}
@@ -3177,3 +3222,4 @@ ADD_CUSTOM_TARGET(oarf
 )
 
 include (${OPENAIR_DIR}/common/utils/telnetsrv/telnetsrv_CMakeLists.txt)
+include(${OPENAIR1_DIR}/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/CMakeLists.txt)
diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml
index b55228bdc92..88654ac9b54 100755
--- a/cmake_targets/autotests/test_case_list.xml
+++ b/cmake_targets/autotests/test_case_list.xml
@@ -1062,7 +1062,8 @@
                                    (Test3: PBCH-only, 217 PRB),
                                    (Test4: PBCH and synchronization, 217 RPB),
                                    (Test5: PBCH-only, 273 PRB),
-                                   (Test6: PBCH and synchronization, 273 PRB)</desc>
+                                   (Test6: PBCH and synchronization, 273 PRB),
+                                   (Test7: PBCH and synchronization, 106PBR, SSB SC OFFSET 6)</desc>
       <pre_compile_prog></pre_compile_prog>
       <compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</compile_prog>
       <compile_prog_args> --phy_simulators  -c </compile_prog_args>
@@ -1074,8 +1075,9 @@
                       -s-11 -S-8 -n10 -R217
                       -s-11 -S-8 -n10 -o8000 -I -R217
                       -s-11 -S-8 -n10 -R273
-                      -s-11 -S-8 -n10 -o8000 -I -R273</main_exec_args>
-      <tags>nr_pbchsim.test1 nr_pbchsim.test2 nr_pbchsim.test3 nr_pbchsim.test4 nr_pbchsim.test5 nr_pbchsim.test6</tags>
+                      -s-11 -S-8 -n10 -o8000 -I -R273
+                      -s-11 -S-8 -n10 -R106 -O6</main_exec_args>
+      <tags>nr_pbchsim.test1 nr_pbchsim.test2 nr_pbchsim.test3 nr_pbchsim.test4 nr_pbchsim.test5 nr_pbchsim.test6 nr_pbchsim.test7</tags>
       <search_expr_true>PBCH test OK</search_expr_true>
       <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
       <nruns>3</nruns>
@@ -1104,7 +1106,9 @@
                                  (Test19: Mapping type A, 3 DMRS Symbols),
                                  (Test20: Mapping type B, 4 DMRS Symbols),
                                  (Test21: 4x4 MIMO, 1 Layer),
-                                 (Test22: 4x4 MIMO, 2 Layers)</desc>
+                                 (Test22: 4x4 MIMO, 2 Layers),
+                                 (Test23: 25 PRBs, 15 kHz SCS)
+                                 (Test24: MCS 0, low SNR performance)</desc>
       <pre_compile_prog></pre_compile_prog>
       <compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</compile_prog>
       <compile_prog_args> --phy_simulators  -c </compile_prog_args>
@@ -1132,8 +1136,10 @@
                   -n100 -s2 -U 2 0 2
                   -n100 -s2 -U 2 1 3
                   -n10 -s20 -U 3 0 0 2 -gR -x1 -y4 -z4
-                  -n10 -s20 -U 3 0 0 2 -gR -x2 -y4 -z4</main_exec_args>
-      <tags>nr_dlsim.test1 nr_dlsim.test2 nr_dlsim.test3 nr_dlsim.test4 nr_dlsim.test5 nr_dlsim.test6 nr_dlsim.test7 nr_dlsim.test8 nr_dlsim.test9 nr_dlsim.test10 nr_dlsim.test11 nr_dlsim.test12 nr_dlsim.test13 nr_dlsim.test14 nr_dlsim.test15 nr_dlsim.test16 nr_dlsim.test17 nr_dlsim.test18 nr_dlsim.test19 nr_dlsim.test20 nr_dlsim.test21 nr_dlsim.test22</tags>
+                  -n10 -s20 -U 3 0 0 2 -gR -x2 -y4 -z4
+                  -n100 -m0 -e0 -R25 -b25 -i 2 1 0
+                  -n100 -e0 -t95 -S-1.0 -i 2 1 0</main_exec_args>
+      <tags>nr_dlsim.test1 nr_dlsim.test2 nr_dlsim.test3 nr_dlsim.test4 nr_dlsim.test5 nr_dlsim.test6 nr_dlsim.test7 nr_dlsim.test8 nr_dlsim.test9 nr_dlsim.test10 nr_dlsim.test11 nr_dlsim.test12 nr_dlsim.test13 nr_dlsim.test14 nr_dlsim.test15 nr_dlsim.test16 nr_dlsim.test17 nr_dlsim.test18 nr_dlsim.test19 nr_dlsim.test20 nr_dlsim.test21 nr_dlsim.test22 nr_dlsim.test23 nr_dlsim.test24</tags>
       <search_expr_true>PDSCH test OK</search_expr_true>
       <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
       <nruns>3</nruns>
@@ -1184,9 +1190,10 @@
     
     <testCase id="015108">
       <class>execution</class>
-      <desc>nr_ulschsim Test cases. (Test1: 106 PRB),
-                                    (Test2: 217 PRB),
-                                    (Test3: 273 PRB)</desc>
+      <desc>nr_ulschsim Test cases. (Test1: 106 PRBs),
+                                    (Test2: 217 PRBs),
+                                    (Test3: 273 PRBs)
+                                    (Test4: 106 PRBs 4-layer MIMO)</desc>
       <pre_compile_prog></pre_compile_prog>
       <compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</compile_prog>
       <compile_prog_args> --phy_simulators  -c </compile_prog_args>
@@ -1195,8 +1202,9 @@
       <main_exec> $OPENAIR_DIR/targets/bin/nr_ulschsim.Rel15</main_exec>
       <main_exec_args>-R 106 -m9 -s13 -n100
                       -R 217 -m15 -s15 -n100
-                      -R 273 -m19 -s20 -n100</main_exec_args>
-      <tags>nr_ulschsim.test1 nr_ulschsim.test2 nr_ulschsim.test3</tags>
+                      -R 273 -m19 -s20 -n100
+                      -R 106 -m9 -s13 -n100 -y4 -z4 -W4</main_exec_args>
+      <tags>nr_ulschsim.test1 nr_ulschsim.test2 nr_ulschsim.test3 nr_ulschsim.test4</tags>
       <search_expr_true>PUSCH test OK</search_expr_true>
       <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
       <nruns>3</nruns>
@@ -1304,7 +1312,14 @@
                                  (Test12: SC-FDMA, 216 PRBs),
                                  (Test13: SC-FDMA, 273 PRBs),
                                  (Test14: SC-FDMA, 3 DMRS),
-                                 (Test15: MCS 16 50 PRBs 2 RX_Antenna)</desc>
+                                 (Test15: MCS 19 50 PRBs 2 RX_Antenna),
+                                 (Test16: MCS 9 106 PRBs MIMO 2 layers),
+                                 (Test17: MCS 9 106 PRBs MIMO 4 layers),
+                                 (Test18: 25 PRBs, 15 kHz SCS),
+                                 (Test19: 3GPP G-FR1-A4-13 2 RX Antennas Requirements Test),
+                                 (Test20: 3GPP G-FR1-A4-13 4 RX Antennas Requirements Test),
+                                 (Test21: 3GPP G-FR1-A4-13 8 RX Antennas Requirements Test),
+                                 (Test22: MCS 0, low SNR performance)</desc>
       <pre_compile_prog></pre_compile_prog>
       <compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</compile_prog>
       <compile_prog_args> --phy_simulators  -c </compile_prog_args>
@@ -1316,18 +1331,24 @@
                       -n100 -m28 -s20
                       -n100 -m9 -R217 -r217 -s5
                       -n100 -m9 -R273 -r273 -s5
-                      -n100 -s5 -U 2 0 1
-                      -n100 -s5 -T 2 1 2 -U 2 0 2
-                      -n100 -s5 -T 2 2 2 -U 2 1 2
-                      -n100 -s5 -a4 -b8 -T 2 1 2 -U 2 1 3
+                      -n100 -s5 -U 4 0 1 1 1
+                      -n100 -s5 -T 2 1 2 -U 4 0 2 1 1
+                      -n100 -s5 -T 2 2 2 -U 4 1 2 1 1
+                      -n100 -s5 -a4 -b8 -T 2 1 2 -U 4 1 3 1 1
                       -n100 -s5 -Z
                       -n100 -s5 -Z -r75
                       -n50 -s5 -Z -r216 -R217
                       -n50 -s5 -Z -r270 -R273
-                      -n100 -s5 -Z -U 2 0 2
-                      -n100 -m16 -s10 -z2</main_exec_args>
-
-      <tags>nr_ulsim.test1 nr_ulsim.test2 nr_ulsim.test3 nr_ulsim.test4 nr_ulsim.test5 nr_ulsim.test6 nr_ulsim.test7 nr_ulsim.test8 nr_ulsim.test9 nr_ulsim.test10 nr_ulsim.test11 nr_ulsim.test12 nr_ulsim.test13 nr_ulsim.test14 nr_ulsim.test15</tags>
+                      -n100 -s5 -Z -U 4 0 2 1 2
+                      -n100 -m19 -s10 -S15 -z2
+                      -n100 -m9 -r106 -s10 -W2 -y2 -z2
+                      -n100 -m9 -r106 -s20 -W4 -y4 -z4
+                      -n100 -u0 -m0 -R25 -r25 -i 2 1 0
+                      -m16 -r106 -s8.8 -S9.4 -z2 -n200 -U 4 1 1 1 2 -gI -b14 -t70 -I15 -i 2 1 0
+                      -m16 -r106 -s5.4 -S6 -z4 -n200 -U 4 1 1 1 2 -gI -b14 -t70 -I15 -i 2 1 0
+                      -m16 -r106 -s3.4 -S3.8 -z8 -n200 -U 4 1 1 1 2 -gI -b14 -t70 -I15 -i 2 1 0
+                      -n100 -m0 -S -0.6 -i 2 1 0</main_exec_args>
+      <tags>nr_ulsim.test1 nr_ulsim.test2 nr_ulsim.test3 nr_ulsim.test4 nr_ulsim.test5 nr_ulsim.test6 nr_ulsim.test7 nr_ulsim.test8 nr_ulsim.test9 nr_ulsim.test10 nr_ulsim.test11 nr_ulsim.test12 nr_ulsim.test13 nr_ulsim.test14 nr_ulsim.test15 nr_ulsim.test16 nr_ulsim.test17 nr_ulsim.test18 nr_ulsim.test19 nr_ulsim.test20 nr_ulsim.test21 nr_ulsim.test22</tags>
       <search_expr_true>PUSCH test OK</search_expr_true>
       <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
       <nruns>3</nruns>
@@ -1338,10 +1359,11 @@
       <desc>nr_prachsim Test cases. (Test1: 30kHz SCS, 106 PRBs, Prach format A2),
                                     (Test2: 30kHz SCS, 217 PRBs, Prach format A2),
                                     (Test3: 30kHz SCS, 273 PRBs, Prach format A2),
-				    (Test4: 30kHz SCS, 106 PRBs, Prach format 0),
+                                    (Test4: 30kHz SCS, 106 PRBs, Prach format 0),
                                     (Test5: 120kHz SCS, 32 PRBs, Prach format A2),
                                     (Test6: 120kHz SCS, 66 PRBs, Prach format A2),
-                                    (Test7: 120kHz SCS, 66 PRBs, High Speed Enabled)</desc>
+                                    (Test7: 120kHz SCS, 66 PRBs, High Speed Enabled),
+                                    (Test8: 15kHz SCS, 25 PRBs)</desc>
       <pre_compile_prog></pre_compile_prog>
       <compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</compile_prog>
       <compile_prog_args> --phy_simulators -c </compile_prog_args>
@@ -1351,11 +1373,12 @@
       <main_exec_args>-a -s -30 -n 100 -p 63 -R 106
                       -a -s -30 -n 100 -p 63 -R 217
                       -a -s -30 -n 100 -p 63 -R 273
-		      -a -s -30 -n 100 -p 63 -R 106 -c 4
-		      -a -s -30 -n 100 -p 32 -R 32 -m 3 -c52 
-		      -a -s -30 -n 100 -p 32 -R 66 -m 3 -c52
-          -a -s -30 -n 100 -R 66 -m 3 -c52 -H</main_exec_args>
-      <tags>nr_prachsim.test1 nr_prachsim.test2 nr_prachsim.test3 nr_prachsim.test4 nr_prachsim.test5 nr_prachsim.test6 nr_prachsim.test7</tags>
+                      -a -s -30 -n 100 -p 63 -R 106 -c 4
+                      -a -s -30 -n 100 -p 32 -R 32 -m 3 -c52
+                      -a -s -30 -n 100 -p 32 -R 66 -m 3 -c52
+                      -a -s -30 -n 100 -R 66 -m 3 -c52 -H
+                      -a -s -30 -n 100 -p 99 -R 25 -m 0</main_exec_args>
+      <tags>nr_prachsim.test1 nr_prachsim.test2 nr_prachsim.test3 nr_prachsim.test4 nr_prachsim.test5 nr_prachsim.test6 nr_prachsim.test7 nr_prachsim.test8</tags>
       <search_expr_true>PRACH test OK</search_expr_true>
       <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
       <nruns>3</nruns>
diff --git a/cmake_targets/build_oai b/cmake_targets/build_oai
index 5cafb95cba6..16a0d559dd7 100755
--- a/cmake_targets/build_oai
+++ b/cmake_targets/build_oai
@@ -55,6 +55,7 @@ BUILD_COVERITY_SCAN=0
 DISABLE_HARDWARE_DEPENDENCY="False"
 CMAKE_BUILD_TYPE="RelWithDebInfo"
 CMAKE_CMD="$CMAKE"
+NOAVX512="False"
 BUILD_ECLIPSE=0
 NR="False"
 OPTIONAL_LIBRARIES="telnetsrv enbscope uescope nrscope"
@@ -164,12 +165,18 @@ Options:
    Build optional shared library, <libraries> can be one or several of $OPTIONAL_LIBRARIES or \"all\"
 --usrp-recplay
    Build for I/Q record-playback modes
+--noavx512
+   Build without AVX512 if it is present on CPU
 -k | --skip-shared-libraries
    Skip build for shared libraries to reduce compilation time when building frequently for debugging purposes
 --ninja
   Tell cmake to use the Ninja build system. Without, will generate make files
+--sanitize
+  Shortcut for usage of --sanitize-address --sanitize-undefined
 --sanitize-address | -fsanitize=address
-   Enable the address sanitizer on all targets
+  Enable the address sanitizer on all targets
+--sanitize-undefined | -fsanitize=undefined
+  Enable the undefined behavior sanitizer on all targets
 --ittiSIM
   Makes the itti simulator
 -h | --help
@@ -436,6 +443,10 @@ function main() {
               fi
             fi
             shift 2;;		
+        --noavx512)
+            NOAVX512="True"
+            echo_info "Disabling AVX512"
+            shift 1;;
         -k | --skip-shared-libraries)
             SKIP_SHARED_LIB_FLAG="True"
             echo_info "Skipping build of shared libraries, rfsimulator and transport protocol libraries"
@@ -444,9 +455,16 @@ function main() {
             CMAKE_CMD="$CMAKE_CMD -GNinja"
             MAKE_CMD=ninja
             shift;;
+        --sanitize)
+            CMAKE_CMD="$CMAKE_CMD -DSANITIZE_ADDRESS=True -DSANITIZE_UNDEFINED=True"
+            shift;;
         --sanitize-address | -fsanitize=address)
+            grep -sq "Ubuntu 18.04" /etc/os-release && echo_error "Bug in OS with this option, see CMakeLists.txt"
             CMAKE_CMD="$CMAKE_CMD -DSANITIZE_ADDRESS=True"
             shift;;
+        --sanitize-undefined | -fundefined=address)
+            CMAKE_CMD="$CMAKE_CMD -DSANITIZE_UNDEFINED=True"
+            shift;;
         --ittiSIM)
             ittiSIM=1
             CMAKE_CMD="$CMAKE_CMD -DITTI_SIM=True"
@@ -624,6 +642,7 @@ function main() {
   cd  $DIR/$BUILD_DIR/build
   if [[ ${#CMAKE_C_FLAGS[@]} > 0 ]]; then CMAKE_CMD="$CMAKE_CMD -DCMAKE_C_FLAGS=\"${CMAKE_C_FLAGS[*]}\""; fi
   if [[ ${#CMAKE_CXX_FLAGS[@]} > 0 ]]; then CMAKE_CMD="$CMAKE_CMD -DCMAKE_CXX_FLAGS=\"${CMAKE_CXX_FLAGS[*]}\""; fi
+  CMAKE_CMD="$CMAKE_CMD -DNOAVX512=\"${NOAVX512[*]}\""
   echo_info "running $CMAKE_CMD"
   eval $CMAKE_CMD ../..
   
@@ -713,11 +732,11 @@ function main() {
 	# simlist="ldpctest"
     for f in $simlist ; do
       compilations \
-        ran_build $f \
+        $BUILD_DIR $f \
 	    $f $dbin/$f.$REL
     done
     compilations \
-      ran_build coding \
+      $BUILD_DIR coding \
       libcoding.so $dbin/libcoding.so
   fi
 
@@ -729,7 +748,7 @@ function main() {
     simlist="secu_knas_encrypt_eia1 secu_kenb aes128_ctr_encrypt aes128_ctr_decrypt secu_knas_encrypt_eea2 secu_knas secu_knas_encrypt_eea1 kdf aes128_cmac_encrypt secu_knas_encrypt_eia2"
     for f in $simlist ; do
       compilations \
-	    ran_build test_$f \
+	    $BUILD_DIR test_$f \
 	    test_$f $dbin/test_$f.$REL
     done
   fi
diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper
index 554f3ccfe52..d35f90fcce2 100755
--- a/cmake_targets/tools/build_helper
+++ b/cmake_targets/tools/build_helper
@@ -109,6 +109,7 @@ check_supported_distribution() {
         "ubuntu18.04") return 0 ;;
         "ubuntu16.04") return 0 ;;
         "fedora35")    return 0 ;;
+        "fedora36")    return 0 ;;
         "rhel7")       return 0 ;;
         "rhel7.6")     return 0 ;;
         "rhel7.7")     return 0 ;;
@@ -196,8 +197,8 @@ check_warnings() {
 #argument:
 #    $1: log file
 check_errors() {
-  #we look for 'warning:' in the compilation log file
-  error_count=`grep "error:" "$1" | wc -l`
+  #we look for 'error:' in the compilation log file
+  error_count=`grep -c "error:" "$1"`
   if [ $error_count -gt 0 ]; then
     echo_error "ERROR: $error_count error. See $1"
   fi
@@ -381,7 +382,7 @@ check_install_usrp_uhd_driver(){
         $SUDO apt-get remove libuhd3.14.1 -y || true
         $SUDO apt-get remove libuhd3.15.0 -y || true
         local distribution=$(get_distribution_release)
-        if [[ "$distribution" == "ubuntu18.04" ]]; then
+        if [[ "$distribution" == "ubuntu18.04" || "$distribution" == "ubuntu20.04" || "$distribution" == "ubuntu22.04" ]]; then
             $SUDO apt-get remove libuhd4.0.0 -y || true
             $SUDO apt-get remove libuhd4.1.0 -y || true
         fi
@@ -410,13 +411,15 @@ check_install_usrp_uhd_driver(){
             x=$((x + 1))
         done
         $SUDO apt-get update
-        $SUDO apt-get -y install  python python-tk libboost-all-dev libusb-1.0-0-dev
-        if [[ "$distribution" == "ubuntu16.04" ]]; then
+        $SUDO apt-get -y install python-tk libboost-all-dev libusb-1.0-0-dev
+        case "$(get_distribution_release)" in
+          "ubuntu16.04")
             $SUDO apt-get -y install libuhd-dev libuhd3.15.0 uhd-host
-        fi
-        if [[ "$distribution" == "ubuntu18.04" ]]; then
-            $SUDO apt-get -y install libuhd-dev libuhd4.1.0 uhd-host
-        fi
+            ;;
+          "ubuntu18.04" | "ubuntu20.04" | "ubuntu22.04")
+            $SUDO apt-get -y install libuhd-dev libuhd4.2.0 uhd-host
+            ;;
+        esac
     elif [[ "$OS_BASEDISTRO" == "fedora" ]]; then
         if [ $IS_CONTAINER -eq 0 ]
         then
@@ -621,7 +624,6 @@ check_install_additional_tools (){
         android-tools-adb \
 	wvdial \
         sshpass \
-        nscd \
         bc \
         ntp"
   elif [[ "$OS_DISTRO" == "rhel" ]] || [[ "$OS_DISTRO" == "centos" ]]; then
@@ -646,7 +648,6 @@ check_install_additional_tools (){
       wvdial \
       numpy \
       sshpass \
-      nscd \
       python2-paramiko \
       python-pyroute2 \
       python-netifaces \
@@ -674,7 +675,6 @@ check_install_additional_tools (){
       wvdial \
       python-numpy \
       sshpass \
-      nscd \
       python-paramiko \
       python-pyroute2 \
       python-netifaces \
diff --git a/common/utils/nr/nr_common.c b/common/utils/nr/nr_common.c
index 0aeeaf3afdd..6add03c324d 100644
--- a/common/utils/nr/nr_common.c
+++ b/common/utils/nr/nr_common.c
@@ -191,65 +191,17 @@ int PRBalloc_to_locationandbandwidth(int NPRB,int RBstart) {
   return(PRBalloc_to_locationandbandwidth0(NPRB,RBstart,275));
 }
 
-/// Target code rate tables indexed by Imcs
-/* TS 38.214 table 5.1.3.1-1 - MCS index table 1 for PDSCH */
-uint16_t nr_target_code_rate_table1[29] = {120, 157, 193, 251, 308, 379, 449, 526, 602, 679, 340, 378, 434, 490, 553, \
-                                            616, 658, 438, 466, 517, 567, 616, 666, 719, 772, 822, 873, 910, 948};
-
-/* TS 38.214 table 5.1.3.1-2 - MCS index table 2 for PDSCH */
-// Imcs values 20 and 26 have been multiplied by 2 to avoid the floating point
-uint16_t nr_target_code_rate_table2[28] = {120, 193, 308, 449, 602, 378, 434, 490, 553, 616, 658, 466, 517, 567, \
-                                            616, 666, 719, 772, 822, 873, 1365, 711, 754, 797, 841, 885, 1833, 948};
-
-/* TS 38.214 table 5.1.3.1-3 - MCS index table 3 for PDSCH */
-uint16_t nr_target_code_rate_table3[29] = {30, 40, 50, 64, 78, 99, 120, 157, 193, 251, 308, 379, 449, 526, 602, 340, \
-                                            378, 434, 490, 553, 616, 438, 466, 517, 567, 616, 666, 719, 772};
-
-uint16_t nr_tbs_table[93] = {24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 208, 224, 240, 256, 272, 288, 304, 320, \
-                              336, 352, 368, 384, 408, 432, 456, 480, 504, 528, 552, 576, 608, 640, 672, 704, 736, 768, 808, 848, 888, 928, 984, 1032, 1064, 1128, 1160, 1192, 1224, 1256, \
-                              1288, 1320, 1352, 1416, 1480, 1544, 1608, 1672, 1736, 1800, 1864, 1928, 2024, 2088, 2152, 2216, 2280, 2408, 2472, 2536, 2600, 2664, 2728, 2792, 2856, 2976, \
-                              3104, 3240, 3368, 3496, 3624, 3752, 3824};
-
-uint8_t nr_get_Qm(uint8_t Imcs, uint8_t table_idx) {
-  switch(table_idx) {
-    case 1:
-      return (((Imcs<10)||(Imcs==29))?2:((Imcs<17)||(Imcs==30))?4:((Imcs<29)||(Imcs==31))?6:-1);
-    break;
-
-    case 2:
-      return (((Imcs<5)||(Imcs==28))?2:((Imcs<11)||(Imcs==29))?4:((Imcs<20)||(Imcs==30))?6:((Imcs<28)||(Imcs==31))?8:-1);
-    break;
-
-    case 3:
-      return (((Imcs<15)||(Imcs==29))?2:((Imcs<21)||(Imcs==30))?4:((Imcs<29)||(Imcs==31))?6:-1);
-    break;
-
-    default:
-      AssertFatal(0, "Invalid MCS table index %d (expected in range [1,3])\n", table_idx);
-      return(0);
-      break;
-  }
-}
+int cce_to_reg_interleaving(const int R, int k, int n_shift, const int C, int L, const int N_regs) {
 
-uint32_t nr_get_code_rate(uint8_t Imcs, uint8_t table_idx) {
-  switch(table_idx) {
-    case 1:
-      return (nr_target_code_rate_table1[Imcs]);
-    break;
-
-    case 2:
-      return (nr_target_code_rate_table2[Imcs]);
-    break;
-
-    case 3:
-      return (nr_target_code_rate_table3[Imcs]);
-    break;
-
-    default:
-      AssertFatal(0, "Invalid MCS table index %d (expected in range [1,3])\n", table_idx);
-      return(0);
-      break;
+  int f;  // interleaving function
+  if(R==0)
+    f = k;
+  else {
+    int c = k/R;
+     int r = k%R;
+     f = (r*C + c + n_shift)%(N_regs/L);
   }
+  return f;
 }
 
 void get_coreset_rballoc(uint8_t *FreqDomainResource,int *n_rb,int *rb_offset) {
@@ -503,7 +455,6 @@ int get_nr_table_idx(int nr_bandP, uint8_t scs_index) {
   return i;
 }
 
-
 int get_subband_size(int NPRB,int size) {
   // implements table  5.2.1.4-2 from 36.214
   //
diff --git a/common/utils/nr/nr_common.h b/common/utils/nr/nr_common.h
index a09532a5652..5f7f670ce92 100644
--- a/common/utils/nr/nr_common.h
+++ b/common/utils/nr/nr_common.h
@@ -57,7 +57,7 @@ static inline int get_num_dmrs(uint16_t dmrs_mask ) {
   return(num_dmrs);
 }
 
-
+int cce_to_reg_interleaving(const int R, int k, int n_shift, const int C, int L, const int N_regs);
 int get_SLIV(uint8_t S, uint8_t L);
 void get_coreset_rballoc(uint8_t *FreqDomainResource,int *n_rb,int *rb_offset);
 uint16_t config_bandwidth(int mu, int nb_rb, int nr_band);
@@ -69,12 +69,6 @@ int NRRIV2BW(int locationAndBandwidth,int N_RB);
 int NRRIV2PRBOFFSET(int locationAndBandwidth,int N_RB);
 int PRBalloc_to_locationandbandwidth0(int NPRB,int RBstart,int BWPsize);
 int PRBalloc_to_locationandbandwidth(int NPRB,int RBstart);
-extern uint16_t nr_target_code_rate_table1[29];
-extern uint16_t nr_target_code_rate_table2[28];
-extern uint16_t nr_target_code_rate_table3[29];
-extern uint16_t nr_tbs_table[93];
-uint8_t nr_get_Qm(uint8_t Imcs, uint8_t table_idx);
-uint32_t nr_get_code_rate(uint8_t Imcs, uint8_t table_idx);
 int get_subband_size(int NPRB,int size);
 void SLIV2SL(int SLIV,int *S,int *L);
 int get_dmrs_port(int nl, uint16_t dmrs_ports);
diff --git a/common/utils/ocp_itti/intertask_interface.cpp b/common/utils/ocp_itti/intertask_interface.cpp
index 44fae9f7888..43001ec95b2 100644
--- a/common/utils/ocp_itti/intertask_interface.cpp
+++ b/common/utils/ocp_itti/intertask_interface.cpp
@@ -450,6 +450,7 @@ extern "C" {
   void itti_wait_tasks_end(void) {
     shutting_down = false;
     signal(SIGTERM, catch_sigterm);
+    //signal(SIGINT, catch_sigterm);
     while (! shutting_down)
     {
       sleep(24 * 3600);
diff --git a/common/utils/threadPool/thread-pool.h b/common/utils/threadPool/thread-pool.h
index d06f2195ee7..e448117385a 100644
--- a/common/utils/threadPool/thread-pool.h
+++ b/common/utils/threadPool/thread-pool.h
@@ -80,7 +80,7 @@ static inline notifiedFIFO_elt_t *newNotifiedFIFO_elt(int size,
     notifiedFIFO_t *reponseFifo,
     void (*processingFunc)(void *)) {
   notifiedFIFO_elt_t *ret;
-  AssertFatal( NULL != (ret=(notifiedFIFO_elt_t *) malloc(sizeof(notifiedFIFO_elt_t)+size+32)), "");
+  AssertFatal( NULL != (ret=(notifiedFIFO_elt_t *) calloc(1, sizeof(notifiedFIFO_elt_t)+size+32)), "");
   ret->next=NULL;
   ret->key=key;
   ret->reponseFifo=reponseFifo;
diff --git a/common/utils/time_meas.c b/common/utils/time_meas.c
index df2bfd64de3..9d1215b5e5b 100644
--- a/common/utils/time_meas.c
+++ b/common/utils/time_meas.c
@@ -111,13 +111,15 @@ void print_meas(time_stats_t *ts,
   }
 }
 
-int print_meas_log(time_stats_t *ts,
-                const char *name,
-                time_stats_t *total_exec_time,
-                time_stats_t *sf_exec_time,
-                char *output)
+size_t print_meas_log(time_stats_t *ts,
+                      const char *name,
+                      time_stats_t *total_exec_time,
+                      time_stats_t *sf_exec_time,
+                      char *output,
+                      size_t outputlen)
 {
-  int stroff = 0;
+  const char *begin = output;
+  const char *end = output + outputlen;
   static int first_time = 0;
   static double cpu_freq_GHz = 0.0;
 
@@ -128,30 +130,49 @@ int print_meas_log(time_stats_t *ts,
     first_time=1;
 
     if ((total_exec_time == NULL) || (sf_exec_time== NULL))
-      stroff += sprintf(output, "%25s  %25s  %25s  %25s %25s %6f\n","Name","Total","Per Trials",   "Num Trials","CPU_F_GHz", cpu_freq_GHz);
+      output += snprintf(output,
+                         end - output,
+                         "%25s  %25s  %25s  %25s %25s %6f\n",
+                         "Name",
+                         "Total",
+                         "Per Trials",
+                         "Num Trials",
+                         "CPU_F_GHz",
+                         cpu_freq_GHz);
     else
-      stroff += sprintf(output+stroff, "%25s  %25s  %25s  %20s %15s %6f\n","Name","Total","Average/Frame","Trials",    "CPU_F_GHz", cpu_freq_GHz);
+      output += snprintf(output,
+                         end - output,
+                         "%25s  %25s  %25s  %20s %15s %6f\n",
+                         "Name",
+                         "Total",
+                         "Average/Frame",
+                         "Trials",
+                         "CPU_F_GHz",
+                         cpu_freq_GHz);
   }
 
   if (ts->trials>0) {
-    //printf("%20s: total: %10.3f ms, average: %10.3f us (%10d trials)\n", name, ts->diff/cpu_freq_GHz/1000000.0, ts->diff/ts->trials/cpu_freq_GHz/1000.0, ts->trials);
     if ((total_exec_time == NULL) || (sf_exec_time== NULL)) {
-      stroff += sprintf(output+stroff, "%25s:  %15.3f us; %15d; %15.3f us;\n",
-              name,
-              (ts->diff/ts->trials/cpu_freq_GHz/1000.0),
-              ts->trials,
-              ts->max/cpu_freq_GHz/1000.0);
+      output += snprintf(output,
+                         end - output,
+                         "%25s:  %15.3f us; %15d; %15.3f us;\n",
+                         name,
+                         ts->diff / ts->trials / cpu_freq_GHz / 1000.0,
+                         ts->trials,
+                         ts->max / cpu_freq_GHz / 1000.0);
     } else {
-      stroff += sprintf(output+stroff, "%25s:  %15.3f ms (%5.2f%%); %15.3f us (%5.2f%%); %15d;\n",
-              name,
-              (ts->diff/cpu_freq_GHz/1000000.0),
-              ((ts->diff/cpu_freq_GHz/1000000.0)/(total_exec_time->diff/cpu_freq_GHz/1000000.0))*100,  // percentage
-              (ts->diff/ts->trials/cpu_freq_GHz/1000.0),
-              ((ts->diff/ts->trials/cpu_freq_GHz/1000.0)/(sf_exec_time->diff/sf_exec_time->trials/cpu_freq_GHz/1000.0))*100,  // percentage
-              ts->trials);
+      output += snprintf(output,
+                         end - output,
+                         "%25s:  %15.3f ms (%5.2f%%); %15.3f us (%5.2f%%); %15d;\n",
+                         name,
+                         ts->diff / cpu_freq_GHz / 1000000.0,
+                         ((ts->diff / cpu_freq_GHz / 1000000.0) / (total_exec_time->diff / cpu_freq_GHz / 1000000.0))*100,  // percentage
+                         ts->diff / ts->trials / cpu_freq_GHz / 1000.0,
+                         ((ts->diff / ts->trials / cpu_freq_GHz / 1000.0) / (sf_exec_time->diff / sf_exec_time->trials / cpu_freq_GHz / 1000.0)) * 100,  // percentage
+                         ts->trials);
     }
   }
-  return stroff;
+  return output - begin;
 }
 
 double get_time_meas_us(time_stats_t *ts)
diff --git a/common/utils/time_meas.h b/common/utils/time_meas.h
index 382dd7455a0..eb81d09434c 100644
--- a/common/utils/time_meas.h
+++ b/common/utils/time_meas.h
@@ -62,7 +62,7 @@ typedef struct time_stats {
   oai_cputime_t in;          /*!< \brief time at measure starting point */
   oai_cputime_t diff;        /*!< \brief average difference between time at starting point and time at endpoint*/
   oai_cputime_t p_time;      /*!< \brief absolute process duration */
-  oai_cputime_t diff_square; /*!< \brief process duration square */
+  double diff_square;        /*!< \brief process duration square */
   oai_cputime_t max;         /*!< \brief maximum difference between time at starting point and time at endpoint*/
   int trials;                /*!< \brief number of start point - end point iterations */
   int meas_flag;             /*!< \brief 1: stop_meas not called (consecutive calls of start_meas) */
@@ -83,7 +83,12 @@ static inline void stop_meas(time_stats_t *ts) __attribute__((always_inline));
 
 void print_meas_now(time_stats_t *ts, const char *name, FILE *file_name);
 void print_meas(time_stats_t *ts, const char *name, time_stats_t *total_exec_time, time_stats_t *sf_exec_time);
-int print_meas_log(time_stats_t *ts, const char *name, time_stats_t *total_exec_time, time_stats_t *sf_exec_time, char *output);
+size_t print_meas_log(time_stats_t *ts,
+                      const char *name,
+                      time_stats_t *total_exec_time,
+                      time_stats_t *sf_exec_time,
+                      char *output,
+                      size_t outputlen);
 double get_time_meas_us(time_stats_t *ts);
 double get_cpu_freq_GHz(void);
 
@@ -151,7 +156,7 @@ static inline void stop_meas(time_stats_t *ts) {
     ts->diff += (out-ts->in);
     /// process duration is the difference between two clock points
     ts->p_time = (out-ts->in);
-    ts->diff_square += (out-ts->in)*(out-ts->in);
+    ts->diff_square += ((double)out-ts->in)*((double)out-ts->in);
 
     if ((out-ts->in) > ts->max)
       ts->max = out-ts->in;
diff --git a/doc/BUILD.md b/doc/BUILD.md
index a52ce98cb53..70d69f5afde 100644
--- a/doc/BUILD.md
+++ b/doc/BUILD.md
@@ -193,6 +193,7 @@ Using the help option of the build script you can get the list of available opti
 | --UE                                                        | maintained and tested in CI                 | build `lte-uesoftmodem` the LTE UE                           |
 | --gNB                                                       | maintained and tested in CI                 | build `nr-softmodem` the 5G gNodeB                           |
 | --nrUE                                                      | maintained and tested in CI                 | build `nr-uesoftmodem` the 5G UE                             |
+| --arch-native                                               | maintained                                  | build with native architecture optimization                  |
 | --usrp-recplay                                              | deprecated                                  | use the USRP configuration parameters to use the record player. |
 | --build-lib                                                 | maintained                                  | build  optional shared library(ies), which can then be loaded at run time via command line option. Use the --help option to get the list of supported optional libraries. `all` can be used to build all available optional libraries. |
 | --UE-conf-nvram                                             | maintained                                  | Specifies the path to the input file used by the conf2uedata utility. defaults to [openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf](../openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf) |
diff --git a/doc/FEATURE_SET.md b/doc/FEATURE_SET.md
index a289c6d17eb..5db6e44d8d2 100644
--- a/doc/FEATURE_SET.md
+++ b/doc/FEATURE_SET.md
@@ -332,6 +332,9 @@ The following features are valid for the gNB and the 5G-NR UE.
   - evalution of RSRP report
   - evaluation of CQI report
 - MAC scheduling of SR reception
+- Bandwidth part (BWP) operation
+  - Handle multiple dedicated BWPs
+  - BWP switching through RRCReconfiguration method
 
 **gNB RLC**
 - Send/Receive operations according to 38.322 Rel.16
@@ -437,6 +440,10 @@ The following features are valid for the gNB and the 5G-NR UE.
    - PTRS support
    - Support for 1, 2 and 4 RX antennas
    - Support for up to 2 layers (currently limited to DMRS configuration type 2)
+* Measurements based on NR-CSIRS
+    - RI, PMI and CQI computation
+    - Support for 1 and 2 RX antennas
+    - Support for up to 2 layers
 *  NR-PUSCH (including Segmentation, LDPC encoding, rate matching, scrambling, modulation, RB mapping, etc).
    - PUSCH mapping type A and B
    - DMRS configuration type 1 and 2
@@ -485,14 +492,19 @@ The following features are valid for the gNB and the 5G-NR UE.
 * UCI processing
    - ACK/NACK processing
    - Triggering periodic SR
-   - CSI measurement reporting (SSB RSRP only)
-* DLSH scheduler
+   - CSI measurement reporting
+* DLSCH scheduler
    - Configuration of fapi PDU according to DCI
    - HARQ procedures
 * ULSCH scheduler
    - Configuration of fapi PDU according to DCI
+* NR-CSIRS scheduler
+  - Scheduling of NR-CSIRS reception
+  - Fill UCI for CSI measurement reporting
 * Scheduler procedures for SRS transmission
    - Periodic SRS transmission
+* Bandwidth part (BWP) operation
+   - Operation in configured dedicated BWP through RRCSetup or RRCReconfiguration
 
 
 **UE RLC**
diff --git a/doc/NR_SA_CN5G_gNB_B210_COTS_UE_Tutorial.md b/doc/NR_SA_CN5G_gNB_B210_COTS_UE_Tutorial.md
new file mode 100644
index 00000000000..fc0700c6994
--- /dev/null
+++ b/doc/NR_SA_CN5G_gNB_B210_COTS_UE_Tutorial.md
@@ -0,0 +1,227 @@
+<table style="border-collapse: collapse; border: none;">
+  <tr style="border-collapse: collapse; border: none;">
+    <td style="border-collapse: collapse; border: none;">
+      <a href="http://www.openairinterface.org/">
+         <img src="./images/oai_final_logo.png" alt="" border=3 height=50 width=150>
+         </img>
+      </a>
+    </td>
+    <td style="border-collapse: collapse; border: none; vertical-align: center;">
+      <b><font size = "5">OAI 5G SA tutorial</font></b>
+    </td>
+  </tr>
+</table>
+
+**TABLE OF CONTENTS**
+
+1. [Scenario](#1-scenario)
+2. [OAI CN5G](#2-oai-cn5g)
+    1. [OAI CN5G pre-requisites](#21-oai-cn5g-pre-requisites)
+    2. [OAI CN5G Setup](#22-oai-cn5g-setup)
+    3. [OAI CN5G Configuration files](#23-oai-cn5g-configuration-files)
+    4. [SIM Card](#24-sim-card)
+3. [OAI gNB](#3-oai-gnb)
+    1. [OAI gNB pre-requisites](#31-oai-gnb-pre-requisites)
+    2. [Build OAI gNB](#32-build-oai-gnb)
+4. [Run OAI CN5G and OAI gNB with USRP B210](#4-run-oai-cn5g-and-oai-gnb-with-usrp-b210)
+    1. [Run OAI CN5G](#41-run-oai-cn5g)
+    2. [Run OAI gNB](#42-run-oai-gnb)
+5. [Testing with QUECTEL RM500Q](#5-testing-with-quectel-rm500q)
+    1. [Setup QUECTEL](#51-setup-quectel)
+    2. [Ping test](#52-ping-test)
+    3. [Downlink iPerf test](#53-downlink-iperf-test)
+
+
+# 1. Scenario
+In this tutorial we describe how to configure and run a 5G end-to-end setup with OAI CN5G, OAI gNB and COTS UE.
+
+Minimum hardware requirements:
+- Laptop/Desktop/Server for OAI CN5G and OAI gNB
+    - Operating System: [Ubuntu 20.04.4 LTS](https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-desktop-amd64.iso)
+    - CPU: 8 cores x86_64 @ 3.5 GHz
+    - RAM: 32 GB
+- Laptop for UE
+    - Operating System: Microsoft Windows 10 x64
+    - CPU: 4 cores x86_64
+    - RAM: 8 GB
+    - Windows driver for Quectel MUST be equal or higher than version **2.2.4**
+- [USRP B210](https://www.ettus.com/all-products/ub210-kit/)
+- Quectel RM500Q
+    - Module, M.2 to USB adapter, antennas and SIM card
+    - Firmware version of Quectel MUST be equal or higher than **RM500QGLABR11A06M4G**
+
+
+# 2. OAI CN5G
+
+## 2.1 OAI CN5G pre-requisites
+
+```bash
+sudo apt install -y git net-tools putty
+
+sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
+curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
+sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu  $(lsb_release -cs)  stable"
+sudo apt update
+sudo apt install -y docker docker-ce
+
+# Add your username to the docker group, otherwise you will have to run in sudo mode.
+sudo usermod -a -G docker $(whoami)
+reboot
+
+# https://docs.docker.com/compose/install/
+sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
+sudo chmod +x /usr/local/bin/docker-compose
+```
+
+## 2.2 OAI CN5G Setup
+
+```bash
+# Git oai-cn5g-fed repository
+git clone https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-fed.git ~/oai-cn5g-fed
+
+# Pull docker images
+docker pull oaisoftwarealliance/oai-amf:develop
+docker pull oaisoftwarealliance/oai-nrf:develop
+docker pull oaisoftwarealliance/oai-smf:develop
+docker pull oaisoftwarealliance/oai-udr:develop
+docker pull oaisoftwarealliance/oai-udm:develop
+docker pull oaisoftwarealliance/oai-ausf:develop
+docker pull oaisoftwarealliance/oai-spgwu-tiny:develop
+docker pull oaisoftwarealliance/trf-gen-cn5g:latest
+
+# Tag docker images
+docker image tag oaisoftwarealliance/oai-amf:develop oai-amf:develop
+docker image tag oaisoftwarealliance/oai-nrf:develop oai-nrf:develop
+docker image tag oaisoftwarealliance/oai-smf:develop oai-smf:develop
+docker image tag oaisoftwarealliance/oai-udr:develop oai-udr:develop
+docker image tag oaisoftwarealliance/oai-udm:develop oai-udm:develop
+docker image tag oaisoftwarealliance/oai-ausf:develop oai-ausf:develop
+docker image tag oaisoftwarealliance/oai-spgwu-tiny:develop oai-spgwu-tiny:develop
+docker image tag oaisoftwarealliance/trf-gen-cn5g:latest trf-gen-cn5g:latest
+```
+
+## 2.3 OAI CN5G Configuration files
+Download and copy configuration files:
+- Copy [docker-compose-basic-nrf.yaml](tutorial_resources/docker-compose-basic-nrf.yaml) to `~/oai-cn5g-fed/docker-compose`
+- Copy [oai_db.sql](tutorial_resources/oai_db.sql) to `~/oai-cn5g-fed/docker-compose/database`
+
+Change permissions on oai_db.sql to prevent mysql permission denied error:
+```bash
+chmod 644 ~/oai-cn5g-fed/docker-compose/database/oai_db.sql
+```
+
+## 2.4 SIM Card
+Program SIM Card with [Open Cells Project](https://open-cells.com/) application [uicc-v2.6](https://open-cells.com/d5138782a8739209ec5760865b1e53b0/uicc-v2.6.tgz).
+
+```bash
+sudo ./program_uicc --adm 12345678 --imsi 208990000000001 --isdn 00000001 --acc 0001 --key fec86ba6eb707ed08905757b1bb44b8f --opc C42449363BBAD02B66D16BC975D77CC1 -spn "OpenAirInterface" --authenticate
+```
+
+
+# 3. OAI gNB
+
+## 3.1 OAI gNB pre-requisites
+
+### Build UHD from source
+```bash
+sudo apt install -y libboost-all-dev libusb-1.0-0-dev doxygen python3-docutils python3-mako python3-numpy python3-requests python3-ruamel.yaml python3-setuptools cmake build-essential
+
+git clone https://github.com/EttusResearch/uhd.git ~/uhd
+cd ~/uhd
+git checkout v4.0.0.0
+cd host
+mkdir build
+cd build
+cmake ../
+make -j 4
+make test # This step is optional
+sudo make install
+sudo ldconfig
+sudo uhd_images_downloader
+```
+
+## 3.2 Build OAI gNB
+
+```bash
+# Get openairinterface5g source code
+git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git ~/openairinterface5g
+cd ~/openairinterface5g
+git checkout develop
+
+# Install dependencies in Ubuntu 20.04
+cd ~/openairinterface5g
+source oaienv
+cd cmake_targets
+./build_oai -I
+
+# Build OAI gNB
+cd ~/openairinterface5g
+source oaienv
+cd cmake_targets
+./build_oai -w USRP --nrUE --gNB --build-lib all -c
+```
+
+
+# 4. Run OAI CN5G and OAI gNB with USRP B210
+
+## 4.1 Run OAI CN5G
+
+```bash
+cd ~/oai-cn5g-fed/docker-compose
+python3 core-network.py --type start-basic --scenario 1
+```
+
+## 4.2 Run OAI gNB
+
+```bash
+cd ~/openairinterface5g
+source oaienv
+cd cmake_targets/ran_build/build
+sudo ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf --sa -E --continuous-tx
+```
+
+Make sure that during USRP initialization, it shows that USB 3 is used.
+
+# 5. Testing with Quectel RM500Q
+
+## 5.1 Setup Quectel
+With [PuTTY](https://the.earth.li/~sgtatham/putty/latest/w64/putty.exe), send the following AT commands to the module using a serial interface (ex: COM2) at 115200 bps:
+```bash
+# MUST be sent at least once everytime there is a firmware upgrade!
+AT+QMBNCFG="Select","ROW_Commercial"
+AT+QMBNCFG="AutoSel",0
+AT+CFUN=1,1
+AT+CGDCONT=1
+AT+CGDCONT=2
+AT+CGDCONT=3
+AT+CGDCONT=1,"IP","oai"
+
+# (Optional, debug only, AT commands) Activate PDP context, retrieve IP address and test with ping
+AT+CGACT=1,1
+AT+CGPADDR=1
+AT+QPING=1,"openairinterface.org"
+```
+
+## 5.2 Ping test
+- UE host
+```bash
+ping 192.168.70.135 -n 1000 -S 12.1.1.2
+```
+- CN5G host
+```bash
+docker exec -it oai-ext-dn ping 12.1.1.2
+```
+
+## 5.3 Downlink iPerf test
+- UE host
+    - Download iPerf for Microsoft Windows from [here](https://iperf.fr/download/windows/iperf-2.0.9-win64.zip).
+    - Extract to Desktop and run with Command Prompt:
+```bash
+cd C:\Users\User\Desktop\iPerf\iperf-2.0.9-win64\iperf-2.0.9-win64
+iperf -s -u -i 1 -B 12.1.1.2
+```
+
+- CN5G host
+```bash
+docker exec -it oai-ext-dn iperf -u -t 86400 -i 1 -fk -B 192.168.70.135 -b 125M -c 12.1.1.2
+```
diff --git a/doc/NR_SA_CN5G_gNB_N300_COTS_UE_Tutorial.md b/doc/NR_SA_CN5G_gNB_N300_COTS_UE_Tutorial.md
new file mode 100644
index 00000000000..d68057fd084
--- /dev/null
+++ b/doc/NR_SA_CN5G_gNB_N300_COTS_UE_Tutorial.md
@@ -0,0 +1,244 @@
+<table style="border-collapse: collapse; border: none;">
+  <tr style="border-collapse: collapse; border: none;">
+    <td style="border-collapse: collapse; border: none;">
+      <a href="http://www.openairinterface.org/">
+         <img src="./images/oai_final_logo.png" alt="" border=3 height=50 width=150>
+         </img>
+      </a>
+    </td>
+    <td style="border-collapse: collapse; border: none; vertical-align: center;">
+      <b><font size = "5">OAI 5G SA tutorial</font></b>
+    </td>
+  </tr>
+</table>
+
+**TABLE OF CONTENTS**
+
+1. [Scenario](#1-scenario)
+2. [OAI CN5G](#2-oai-cn5g)
+    1. [OAI CN5G pre-requisites](#21-oai-cn5g-pre-requisites)
+    2. [OAI CN5G Setup](#22-oai-cn5g-setup)
+    3. [OAI CN5G Configuration files](#23-oai-cn5g-configuration-files)
+    4. [SIM Card](#24-sim-card)
+3. [OAI gNB](#3-oai-gnb)
+    1. [OAI gNB pre-requisites](#31-oai-gnb-pre-requisites)
+    2. [Build OAI gNB](#32-build-oai-gnb)
+    3. [N300 Ethernet Tuning](#33-n300-ethernet-tuning)
+4. [Run OAI CN5G and OAI gNB with USRP N300](#4-run-oai-cn5g-and-oai-gnb-with-usrp-n300)
+    1. [Run OAI CN5G](#41-run-oai-cn5g)
+    2. [Run OAI gNB](#42-run-oai-gnb)
+5. [Testing with QUECTEL RM500Q](#5-testing-with-quectel-rm500q)
+    1. [Setup QUECTEL](#51-setup-quectel)
+    2. [Ping test](#52-ping-test)
+    3. [Downlink iPerf test](#53-downlink-iperf-test)
+
+
+#  1. Scenario
+In this tutorial we describe how to configure and run a 5G end-to-end setup with OAI CN5G, OAI gNB and COTS UE.
+
+Minimum hardware requirements:
+- Laptop/Desktop/Server for OAI CN5G and OAI gNB
+    - Operating System: [Ubuntu 20.04.4 LTS](https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-desktop-amd64.iso)
+    - CPU: 8 cores x86_64 @ 3.5 GHz
+    - RAM: 32 GB
+- Laptop for UE
+    - Operating System: Microsoft Windows 10 x64
+    - CPU: 4 cores x86_64
+    - RAM: 8 GB
+    - Windows driver for Quectel MUST be equal or higher than version **2.2.4**
+- [USRP N300](https://www.ettus.com/all-products/USRP-N300/): Please identify the network interface(s) on which the N300 is connected.
+- Quectel RM500Q
+    - Module, M.2 to USB adapter, antennas and SIM card
+    - Firmware version of Quectel MUST be equal or higher than **RM500QGLABR11A06M4G**
+
+
+# 2. OAI CN5G
+
+## 2.1 OAI CN5G pre-requisites
+
+```bash
+sudo apt install -y git net-tools putty
+
+sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
+curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
+sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu  $(lsb_release -cs)  stable"
+sudo apt update
+sudo apt install -y docker docker-ce
+
+# Add your username to the docker group, otherwise you will have to run in sudo mode.
+sudo usermod -a -G docker $(whoami)
+reboot
+
+# https://docs.docker.com/compose/install/
+sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
+sudo chmod +x /usr/local/bin/docker-compose
+```
+
+## 2.2 OAI CN5G Setup
+
+```bash
+# Git oai-cn5g-fed repository
+git clone https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-fed.git ~/oai-cn5g-fed
+
+# Pull docker images
+docker pull oaisoftwarealliance/oai-amf:develop
+docker pull oaisoftwarealliance/oai-nrf:develop
+docker pull oaisoftwarealliance/oai-smf:develop
+docker pull oaisoftwarealliance/oai-udr:develop
+docker pull oaisoftwarealliance/oai-udm:develop
+docker pull oaisoftwarealliance/oai-ausf:develop
+docker pull oaisoftwarealliance/oai-spgwu-tiny:develop
+docker pull oaisoftwarealliance/trf-gen-cn5g:latest
+
+# Tag docker images
+docker image tag oaisoftwarealliance/oai-amf:develop oai-amf:develop
+docker image tag oaisoftwarealliance/oai-nrf:develop oai-nrf:develop
+docker image tag oaisoftwarealliance/oai-smf:develop oai-smf:develop
+docker image tag oaisoftwarealliance/oai-udr:develop oai-udr:develop
+docker image tag oaisoftwarealliance/oai-udm:develop oai-udm:develop
+docker image tag oaisoftwarealliance/oai-ausf:develop oai-ausf:develop
+docker image tag oaisoftwarealliance/oai-spgwu-tiny:develop oai-spgwu-tiny:develop
+docker image tag oaisoftwarealliance/trf-gen-cn5g:latest trf-gen-cn5g:latest
+```
+
+## 2.3 OAI CN5G Configuration files
+Download and copy configuration files:
+- Copy [docker-compose-basic-nrf.yaml](tutorial_resources/docker-compose-basic-nrf.yaml) to `~/oai-cn5g-fed/docker-compose`
+- Copy [oai_db.sql](tutorial_resources/oai_db.sql) to `~/oai-cn5g-fed/docker-compose/database`
+
+Change permissions on oai_db.sql to prevent mysql permission denied error:
+```bash
+chmod 644 ~/oai-cn5g-fed/docker-compose/database/oai_db.sql
+```
+
+## 2.4  SIM Card
+Program SIM Card with [Open Cells Project](https://open-cells.com/) application [uicc-v2.6](https://open-cells.com/d5138782a8739209ec5760865b1e53b0/uicc-v2.6.tgz).
+
+```bash
+sudo ./program_uicc --adm 12345678 --imsi 208990000000001 --isdn 00000001 --acc 0001 --key fec86ba6eb707ed08905757b1bb44b8f --opc C42449363BBAD02B66D16BC975D77CC1 -spn "OpenAirInterface" --authenticate
+```
+
+
+# 3. OAI gNB
+
+## 3.1 OAI gNB pre-requisites
+
+### Build UHD from source
+```bash
+sudo apt install -y libboost-all-dev libusb-1.0-0-dev doxygen python3-docutils python3-mako python3-numpy python3-requests python3-ruamel.yaml python3-setuptools cmake build-essential
+
+git clone https://github.com/EttusResearch/uhd.git ~/uhd
+cd ~/uhd
+git checkout v4.0.0.0
+cd host
+mkdir build
+cd build
+cmake ../
+make -j 4
+make test # This step is optional
+sudo make install
+sudo ldconfig
+sudo uhd_images_downloader
+```
+
+## 3.2 Build OAI gNB
+
+```bash
+# Get openairinterface5g source code
+git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git ~/openairinterface5g
+cd ~/openairinterface5g
+git checkout develop
+
+# Install dependencies in Ubuntu 20.04
+cd ~/openairinterface5g
+source oaienv
+cd cmake_targets
+./build_oai -I
+
+# Build OAI gNB
+cd ~/openairinterface5g
+source oaienv
+cd cmake_targets
+./build_oai -w USRP --nrUE --gNB --build-lib all -c
+```
+
+## 3.3 N300 Ethernet Tuning
+
+Please also refer to the official [USRP Host Performance Tuning Tips and Tricks](https://kb.ettus.com/USRP_Host_Performance_Tuning_Tips_and_Tricks) tuning guide.
+
+The following steps are recommended. Please change the network interface(s) as required. Also, you should have 10Gbps interface(s): if you use two cables, you should have the XG interface. Refer to the [N300 Getting Started Guide](https://kb.ettus.com/USRP_N300/N310/N320/N321_Getting_Started_Guide) for more information.
+
+* Use an MTU of 9000: how to change this depends on the network management tool. In the case of Network Manager, this can be done from the GUI.
+* Increase the kernel socket buffer (also done by the USRP driver in OAI):
+  ```
+  sysctl -w net.core.rmem_max=8388608
+  sysctl -w net.core.wmem_max=8388608
+  sysctl -w net.core.rmem_default=65536
+  sysctl -w net.core.wmem_default=65536
+  ```
+* Increase Ethernet Ring Buffers: `sudo ethtool -G <ifname> rx 4096 tx 4096`
+* Disable hyper-threading in the BIOS
+* Disable KPTI Protections for Spectre/Meltdown for more performance. **This is a security risk.** Add `mitigations=off nosmt` in your grub config and update grub.
+
+# 4. Run OAI CN5G and OAI gNB with USRP N300
+
+## 4.1 Run OAI CN5G
+
+```bash
+cd ~/oai-cn5g-fed/docker-compose
+python3 core-network.py --type start-basic --scenario 1
+```
+
+## 4.2 Run OAI gNB
+
+```bash
+cd ~/openairinterface5g
+source oaienv
+cd cmake_targets/ran_build/build
+sudo ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.162PRB.2x2.usrpn300.conf --sa --usrp-tx-thread-config 1
+```
+
+
+# 5. Testing with Quectel RM500Q
+
+## 5.1 Setup Quectel
+With [PuTTY](https://the.earth.li/~sgtatham/putty/latest/w64/putty.exe), send the following AT commands to the module using a serial interface (ex: COM2) at 115200 bps:
+```bash
+# MUST be sent at least once everytime there is a firmware upgrade!
+AT+QMBNCFG="Select","ROW_Commercial"
+AT+QMBNCFG="AutoSel",0
+AT+CFUN=1,1
+AT+CGDCONT=1
+AT+CGDCONT=2
+AT+CGDCONT=3
+AT+CGDCONT=1,"IP","oai"
+
+# (Optional, debug only, AT commands) Activate PDP context, retrieve IP address and test with ping
+AT+CGACT=1,1
+AT+CGPADDR=1
+AT+QPING=1,"openairinterface.org"
+```
+
+## 5.2 Ping test
+- UE host
+```bash
+ping 192.168.70.135 -n 1000 -S 12.1.1.2
+```
+- CN5G host
+```bash
+docker exec -it oai-ext-dn ping 12.1.1.2
+```
+
+## 5.3 Downlink iPerf test
+- UE host
+    - Download iPerf for Microsoft Windows from [here](https://iperf.fr/download/windows/iperf-2.0.9-win64.zip).
+    - Extract to Desktop and run with Command Prompt:
+```bash
+cd C:\Users\User\Desktop\iPerf\iperf-2.0.9-win64\iperf-2.0.9-win64
+iperf -s -u -i 1 -B 12.1.1.2
+```
+
+- CN5G host
+```bash
+docker exec -it oai-ext-dn iperf -u -t 86400 -i 1 -fk -B 192.168.70.135 -b 200M -c 12.1.1.2
+```
diff --git a/doc/RUNMODEM.md b/doc/RUNMODEM.md
index 119027f1695..2dc4fd2ff5f 100644
--- a/doc/RUNMODEM.md
+++ b/doc/RUNMODEM.md
@@ -207,7 +207,24 @@ UE on machine 2:
 
 `sudo ./nr-uesoftmodem --if_freq 2169080000 --if_freq_off -400000000`
 
+# MIMO configuration
 
+<table style="border-collapse: collapse; border: none;">
+  <tr style="border-collapse: collapse; border: none;">
+    <td style="border-collapse: collapse; border: none;">
+         <img src="./images/mimo_antenna_ports.png" alt="" border=3 height=100 width=300>
+         </img>
+    </td>
+  </tr>
+</table>
+
+This image shows an example of gNB 5G MIMO logical antenna port configuration. It has to be noted that logical antenna ports might not directly correspond to physical antenna ports and each logical antenna port might consist of a sub-array of antennas.
+
+The basic element is a dual-polarized antenna, therefore the minimal DL MIMO setup with two logical antenna ports would consist of two cross-polarized antenna elements. In a single panel configuration, as the one in the picture, this element can be repeated vertiacally and/or horizontally to form an equi-spaced 1D or 2D array. The values N1 and N2 represent the number of antenna ports in the two dimensions and the supported configurations are specified in Section 5.2.2.2.1 of TS 38.214.
+
+The DL logical antenna port configuration can be selected through configuration file. `pdsch_AntennaPorts_N1` can be used to set N1 parameter, `pdsch_AntennaPorts_N2` to set N2 and `pdsch_AntennaPorts_XP` to set the cross-polarization configuration (1 for single pol, 2 for cross-pol). To be noted that if XP is 1 but N1 and/or N2 are larger than 1, this would result in a non-standard configuration and the PMI selected would be the identity matrix regardless of CSI report. The default value for each of these parameters is 1.
+
+# Additional links
 
 [Selecting an alternative ldpc implementation at run time](../openair1/PHY/CODING/DOC/LDPCImplementation.md)
 
diff --git a/doc/RUN_NR_multiple_BWPs.md b/doc/RUN_NR_multiple_BWPs.md
new file mode 100644
index 00000000000..2c2c2fcf25b
--- /dev/null
+++ b/doc/RUN_NR_multiple_BWPs.md
@@ -0,0 +1,51 @@
+# Procedure to add dedicated Bandwidth part (BWP)
+
+## Contributed by 5G Testbed IISc 
+
+### Developers: Abhijith A, Shruthi S
+
+# Terminology #
+
+## Bandwidth part (BWP) ##
+Bandwidth Part (BWP) is a set of contiguous Resource Blocks in the resource grid. 
+
+Parameters of a BWP are communicated to UE using RRC parameters: BWP-Downlink and BWP-Uplink. 
+
+A UE can be configured with a set of 4 BWPs in uplink (UL) and downlink (DL) direction (3GPP TS 38.331 Annex B.2 Description of BWP configuration options). But only 1 BWP can be active in UL and DL direction at a given time.
+
+# Procedure to run multiple dedicated BWPs #
+
+A maximum of 4 dedicated BWPs can be configured for a UE.
+
+To configure multiple BWPs, add the following parameters to the gNB configuration file under "servingCellConfigDedicated": 
+
+## Setup of the Configuration files ##
+```
+    firstActiveDownlinkBWP-Id = 1;  #BWP-Id
+    defaultDownlinkBWP-Id     = 1;  #BWP-Id
+    firstActiveUplinkBWP-Id   = 1;  #BWP-Id
+```
+
+Each dedicated BWP must have:
+```
+    # BWP 1 Configuration
+    dl_bwp-Id_1 = 1;
+    dl_bwp1_locationAndBandwidth = 28875; // RBstart=0, L=106 (40 MHz BW)
+    # subcarrierSpacing
+    # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+    dl_bwp1_subcarrierSpacing = 1;
+```   
+
+ Find these parameters in this configuration file: "targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf"
+     
+# Testing gNB and UE in RF simulator
+
+## gNB command:
+```
+    sudo ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf --gNBs.[0].min_rxtxtime 6 --rfsim --sa
+```
+
+## UE command:
+```
+    sudo RFSIMULATOR=127.0.0.1 ./nr-uesoftmodem -r 106 --numerology 1 --band 78 -C 3619200000 --nokrnmod --rfsim --sa --uicc0.imsi 208990000000001
+```
\ No newline at end of file
diff --git a/doc/TESTBenches.md b/doc/TESTBenches.md
index 7365bc0f4c7..c6a01f278d4 100644
--- a/doc/TESTBenches.md
+++ b/doc/TESTBenches.md
@@ -1,45 +1,167 @@
 ## Table of Contents ##
 
-1.   [Legacy 1 Bench](#legacy-1-bench)
-2.   [Legacy 2 Bench](#legacy-2-bench)
-3.   [Next Bench for DEV](#next-bench-for-dev)
-4.   [Next Bench for CI](#next-bench-for-ci)
-5.   [Indoor Live Network Bench](#indoor-live-network-bench)
-6.   [Outdoor Live Network Bench](#outdoor-live-network-bench)
+1.   [Machines](#machines)
+2.   [Networked devices](#networked-devices)
+3.   [Testbenches](#testbenches)
+4.   [Pipelines](#pipelines)
+
+## Machines
 
-
-## Legacy 1 Bench
-
-**Purpose** : FDD Band 7 and Band 13, LTE-M  
-**Note** : Legacy1 and Legacy2 are duplicated so that they can run in parallel, thus avoiding a CI bottleneck  
-**Note** : Faraday Cages 1 and 2 are physically the same cage  
-
-![image info](./testbenches_doc_resources/legacy1.jpg)
-
-## Legacy 2 Bench
-
-**Purpose** : TDD Band 40, TM2 2xTX 2xRX  
-**Note** : CN can run in a container, could also run on Massive 
-
-![image info](./testbenches_doc_resources/legacy2.jpg)
-
-## Next Bench for DEV
-
-**Note** : Benetel CI can also run on this bench at night 
-
-![image info](./testbenches_doc_resources/next_dev.jpg)
-
-
-## Next Bench for CI
-
-**Note** : The current test running on Caracal could run on this bench with a N300/N300 setup  
-
-![image info](./testbenches_doc_resources/next_ci.jpg)
-
-## Indoor Live Network Bench
-
-![image info](./testbenches_doc_resources/indoor_live.jpg)
-
-## Outdoor Live Network Bench
-
-![image info](./testbenches_doc_resources/outdoor_live.jpg)
+| Machine       | IP address      | Lockable Resource     | Function           | Connected devices                                     |
+| ------------- | --------------- | --------------------- | ------------------ | ----------------------------------------------------- |
+| asterix       | 172.21.16.127   | CI-Asterix-Usage      | gNB (n78)          | 173.21.19.14                                          |
+| obelix        | 172.21.16.128   | CI-Obelix-Usage       | eNB (n40, n78), nrUE | 172.21.19.13, X300 (192.168.60.2), B200mini (30C51EB) |
+| porcepix      | 172.21.16.136   | CI-NSA-MiniBench      | Executor, EPC, 5GC | --                                                    |
+| nrmodule2     | 172.21.16.139   | CI-NSA-MiniBench      | Quectel            | Quectel module                                        |
+| nepes         | 172.21.16.137   | CI-NSA-MiniBench      | gNB (n78)          | B200mini (30C51D4)                                    |
+| caracal       | 172.21.16.132   | CI-Caracal            | gNB/phytest        | N300 (192.168.10.2)                                   |
+| idefix        | 172.21.16.135   | CI-NSA-MiniBench      | Quectel            | Quectel module                                        |
+| amariue       | 172.21.16.144   | CI-Amarisoft-UE-Usage | nrUE               | Amarisoft UE simulator                                |
+| bellatrix     | 192.168.117.115 | CI-RAN-VM-Deployment  | Executor           | --                                                    |
+| nano          | 192.168.12.62   | CI-Bench-1-Phones     | EPC, adb           | 2x COTS (adb)                                         |
+| hutch         | 192.168.12.19   | CI-Bench-1-Phones     | eNB (B7)           | B200mini (30C5239)                                    |
+| starsky       | 192.168.12.18   | CI-Bench-1-Phones     | eNB (B40)          | b200mini (30A3E3C)                                    |
+| carabe        | 192.168.12.211  | CI-Bench-2-OAI-Phone  | UE (B7UE)          | B200mini (30AE8C9)                                    |
+
+Note: The available resources, and their current usage, is indicated here:
+- [Lockable resources of jenkins-oai](https://jenkins-oai.eurecom.fr/lockable-resources/):
+  "New" Jenkins, i.e., with RAN-Container-Parent
+- [Lockable resources of open5glab jenkins](https://open5glab.eurecom.fr:8083/jenkins/lockable-resources/):
+  "Old" Jenkins, i.e., with RAN-CI-Develop
+
+## Networked devices
+
+| Type          | IP address (mgmt) |
+| ------------- | ----------------- |
+| USRP N310     | 172.21.19.14      |
+| USRP N310     | 172.21.19.13      |
+
+## Testbenches
+
+### OTA Testbench
+
+**Purpose**: Over-the-air 4G/5G (NSA/SA) tests
+
+Note: obelix and porcepix are both used in the OTA testbench and the 5G
+NSA/Faraday Cage testbench!
+
+![5G OTA Testbench](testbenches_doc_resources/5g-ota-bench.png)
+
+[PDF version](testbenches_doc_resources/5g-ota-bench.pdf) | [LaTeX/TikZ version](testbenches_doc_resources/5g-ota-bench.tex) if you want to modify to reflect your setup
+
+### 5G NSA/Faraday Cage Testbench
+
+**Purpose**: Faraday cage 5G tests
+
+Note: obelix and porcepix are both used in the OTA testbench and the 5G
+NSA/Faraday Cage testbench!
+
+![5G NSA/Faraday Cage Testbench](testbenches_doc_resources/5g-nsa-faraday-bench.png)
+
+[PDF version](testbenches_doc_resources/5g-nsa-faraday-bench.pdf) | [LaTeX/TikZ version](testbenches_doc_resources/5g-nsa-faraday-bench.tex) if you want to modify to reflect your setup
+
+### 4G Testbench(es)
+
+**Purpose**: 4G/LTE testbenches
+
+
+![4G Faraday Cage Testbench](testbenches_doc_resources/4g-faraday-bench.png)
+
+[PDF version](testbenches_doc_resources/4g-faraday-bench.pdf) | [LaTeX/TikZ version](testbenches_doc_resources/4g-faraday-bench.tex) if you want to modify to reflect your setup
+
+## Pipelines
+
+### [RAN-Container-Parent](https://jenkins-oai.eurecom.fr/job/RAN-Container-Parent/)
+
+**Purpose**: automatically triggered tests on MR creation or push, from Gitlab
+Webhook
+
+- [RAN-cppcheck](https://jenkins-oai.eurecom.fr/job/RAN-cppcheck/1664/)
+  - obelix
+  - performs static code analysis, currently not actively enforced
+- [RAN-gNB-nrUE-MONO-TDD-Band78-N300](https://jenkins-oai.eurecom.fr/job/RAN-gNB-nrUE-MONO-TDD-Band78-N300/)
+  - caracal + N310
+  - pure performance test through phy-test scheduler, see command line for more
+    details
+- [RAN-L2-Sim-Test-5G](https://jenkins-oai.eurecom.fr/job/RAN-L2-Sim-Test-5G/)
+  - obelix (gNB, 1x UE, OAI 5GC)
+  - L2simulator: skips physical layer and uses proxy between gNB and UE,
+    currently only ping
+- [RAN-NSA-B200-Module-LTEBOX-Container](https://jenkins-oai.eurecom.fr/job/RAN-NSA-B200-Module-LTEBOX-Container/)
+  - obelix + B200, nepes + B200, idefix + Quectel, porcepix w/ ltebox
+  - basic NSA test
+- [RAN-SA-B200-Module-SABOX-Container](https://jenkins-oai.eurecom.fr/job/RAN-SA-B200-Module-SABOX-Container/)
+  - obelix + B200, nepes + B200, idefix + Quectel, porcepix w/ sabox
+  - basic SA test (40 MHz TDD)
+- [RAN-PhySim-Cluster](https://jenkins-oai.eurecom.fr/job/RAN-PhySim-Cluster/)
+  - asterix (`Asterix-OC-oaicicd-session` resource), tests in OpenShift Cluster
+  - unitary simulators (`nr_dlsim`, etc.)
+- [RAN-RF-Sim-Test-4G](https://jenkins-oai.eurecom.fr/job/RAN-RF-Sim-Test-4G/)
+  - obelix (eNB, 1x UE, OAI EPC)
+  - uses RFsimulator, for FDD 5, 10, 20MHz with core, 5MHz noS1
+- [RAN-RF-Sim-Test-5G](https://jenkins-oai.eurecom.fr/job/RAN-RF-Sim-Test-5G/)
+  - obelix (gNB, 2x UE, OAI 5GC)
+  - uses RFsimulator, TDD 40MHz, FDD 40MHz, F1 split
+- [RAN-RHEL8-Image-Builder](https://jenkins-oai.eurecom.fr/job/RAN-RHEL8-Image-Builder/)
+  - asterix: RHEL 8 image build using podman
+- [RAN-Ubuntu18-Image-Builder](https://jenkins-oai.eurecom.fr/job/RAN-Ubuntu18-Image-Builder/)
+  - obelix: Ubuntu 18 image build using docker
+
+### [RAN-CI-NSA-Trigger](https://jenkins-oai.eurecom.fr/view/RAN/job/RAN-CI-NSA-Trigger/)
+
+**Purpose**: longer-running over-the-air LTE, NSA, and SA tests, triggered
+through cron job at midnight
+
+- [RAN-LTE-2x2-Module-OAIEPC](https://jenkins-oai.eurecom.fr/job/RAN-LTE-2x2-Module-OAIEPC/)
+  - obelix + N310, nrmodule2 + Quectel, porcepix w/ Magma EPC
+  - LTE 2x2 test with TM1 and TM2
+- [RAN-NSA-B200-Module-LTEBOX](https://jenkins-oai.eurecom.fr/job/RAN-NSA-B200-Module-LTEBOX/)
+  - obelix + B200 (eNB), nepes + B200 (gNB), idefix + Quectel, porcepix w/ ltebox
+  - Note: like [RAN-NSA-B200-Module-LTEBOX-Container](https://jenkins-oai.eurecom.fr/job/RAN-NSA-B200-Module-LTEBOX-Container/) above, but compiled/run from source
+- [RAN-NSA-2x2-Module-OAIEPC](https://jenkins-oai.eurecom.fr/job/RAN-NSA-2x2-Module-OAIEPC/)
+  - obelix + N310 (eNB), asterix + N310 (gNB), nrmodule2 + Quectel, porcepix w/ Magma EPC
+  - LTE 2x2 and NR 2x2 (non-standalone)
+- [RAN-SA-Module-CN5G](https://jenkins-oai.eurecom.fr/view/RAN/job/RAN-SA-Module-CN5G/)
+  - asterix + N310 (gNB), nrmodule2 + Quectel, porcepix w/ OAI 5GC
+  - NR 2x2 (standalone)
+- [RAN-SA-OAIUE-N310-X300-CN5G](https://jenkins-oai.eurecom.fr/job/RAN-SA-OAIUE-N310-X300-CN5G/)
+  - asterix + N310 (gNB), obelix + N310 or X300 (5G UE), porcepix w/ OAI 5GC
+  - OTA test with OAIUE using both N310 and X300
+- [RAN-SA-AmariS-CN5G](https://jenkins-oai.eurecom.fr/view/RAN/job/RAN-SA-AmariS-CN5G/)
+  - asterix + N310, amariue (1x UE), porcepix w/ OAI 5GC
+  - Amarisoft UE simulator: expected to be increased to more UEs
+
+### [RAN-CI-develop](https://open5glab.eurecom.fr:8083/jenkins/job/RAN-CI-develop/)
+
+**Purpose**: automatically triggered tests, mostly 4G, to be phased out and
+integrated into RAN-Container-Parent
+
+runs tests:
+- bellatrix: runs 4G/5G simulators directly (eNB + 1x UE + (opt.) OAI EPC, gNB + 1x UE in "noS1")
+
+triggers pipelines:
+- [eNB-CI-F1-FDD-Band7-B210](https://open5glab.eurecom.fr:8083/jenkins/job/eNB-CI-F1-FDD-Band7-B210/)
+  - hutch + B210, nano w/ ltebox + 2x UE
+  - tests 4G FDD with F1 split, 5MHz, 10MHz, 20MHz. 5MHz stable, rest known to
+    be unstable
+- [eNB-CI-FDD-Band7-B210](https://open5glab.eurecom.fr:8083/jenkins/job/eNB-CI-FDD-Band7-B210/)
+  - hutch + B210, nano w/ ltebox + 2x UE
+  - tests T tracer, information through FlexRAN, RRC inactivity timers,
+    inactivity timers + FlexRAN, different bandwidths
+- [eNB-CI-IF4p5-FDD-Band7-B210](https://open5glab.eurecom.fr:8083/jenkins/job/eNB-CI-IF4p5-FDD-Band7-B210/)
+  - hutch + B210, nano w/ ltebox + 2x UE
+  - tests IF4.5 split over bandwidths 5, 10, 20 MHz in Band 7
+- [eNB-CI-IF4p5-TDD-Band40-B210](https://open5glab.eurecom.fr:8083/jenkins/job/eNB-CI-IF4p5-TDD-Band40-B210/)
+  - starsky + B210, nano w/ ltebox + 2x UE
+  - tests IF4.5 split over bandwidths 5, 10, 20 MHz in Band 40
+- [eNB-CI-TDD-Band40-B210](https://open5glab.eurecom.fr:8083/jenkins/job/eNB-CI-TDD-Band40-B210/)
+  - starsky + B210, nano w/ ltebox + 2x UE
+  - T tracer, TM1 over bandwidths 5, 10, 20 MHz in Band 40, default scheduler
+    for 20 MHz
+- [eNB-UE-CI-MONO-FDD-Band7-B200](https://open5glab.eurecom.fr:8083/jenkins/job/eNB-UE-CI-MONO-FDD-Band7-B200/)
+  - hutch + B210 (eNB), carabe + B210 (4G UE), nano w/ ltebox
+  - tests OAI 4G for 5 MHz/TM1 with both CN and in noS1 model, MBMS; known to
+    be unstable
+- [UE-CI-FDD-Band20-B200](https://open5glab.eurecom.fr:8083/jenkins/job/UE-CI-FDD-Band20-B200/)
+  - starsky + B210 (sniffer)
+  - Sniff MIB + SIB1 of Orange, SFR
diff --git a/doc/TESTING_5GSA_setup.md b/doc/TESTING_5GSA_setup.md
index 9b27549df43..357c62c8139 100644
--- a/doc/TESTING_5GSA_setup.md
+++ b/doc/TESTING_5GSA_setup.md
@@ -50,7 +50,7 @@ At the moment of writing this document interoperability with the following COTS
 ## 1.1  gNB build and configuration
 To get the code and build the gNB executable:
 
-### Ubuntu 18.04
+### Build gNB
 ```bash
     git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git
     git checkout develop
@@ -61,42 +61,6 @@ To get the code and build the gNB executable:
     ./build_oai --gNB -w USRP
 ```
 
-### Ubuntu 20.04
-```bash
-    # Build UHD from source
-    # https://files.ettus.com/manual/page_build_guide.html
-    sudo apt-get install libboost-all-dev libusb-1.0-0-dev doxygen python3-docutils python3-mako python3-numpy python3-requests python3-ruamel.yaml python3-setuptools cmake build-essential
-    
-    git clone https://github.com/EttusResearch/uhd.git
-    cd uhd/host
-    mkdir build
-    cd build
-    cmake ../
-    make -j 4
-    make test # This step is optional
-    sudo make install
-    sudo ldconfig
-    sudo uhd_images_downloader
-
-
-    git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git
-    git checkout develop
-    
-    # Install dependencies in Ubuntu 20.04
-    cd
-    cd openairinterface5g/
-    source oaienv
-    cd cmake_targets/
-    ./install_external_packages.ubuntu20
-    
-    # Build OAI gNB
-    cd
-    cd openairinterface5g/
-    source oaienv
-    cd cmake_targets/
-    ./build_oai --gNB -w USRP
-```
-
 A reference configuration file for the **monolithic** gNB is provided  [here](https://gitlab.eurecom.fr/oai/openairinterface5g/-/blob/develop/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf).     
 
 
diff --git a/doc/UL_MIMO.txt b/doc/UL_MIMO.txt
new file mode 100644
index 00000000000..c06bc78c4cb
--- /dev/null
+++ b/doc/UL_MIMO.txt
@@ -0,0 +1,31 @@
+# how to build phy sim
+cd cmake_targets/
+sudo ./build_oai --phy_simulators -c
+
+cd phy_simulators/build/
+# ULSCH sim  
+# bit level validation                   
+# PUSCH encoding and decoding for 4 layers   2 CMD without data
+sudo ./nr_ulschsim -R 106 -m9 -s13 -n100 -y4 -z4 -W4
+
+# UL sim
+# Uplink chain validation  
+# PUSCH on UE side and gNB side,whole chain for PUSCH
+# No channel model on data domain signal
+# No cross-path connection
+# PMI = 0  is only unitary prcoding matrix
+sudo ./nr_ulsim -n100 -m9 -r106 -s13 -W4 -y4 -z4   
+
+# How to build rfsim
+sudo ./build_oai -c --gNB --nrUE -w SIMU
+
+# How to run with rfsim
+# 4x4 RANK 4
+sudo ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.4layer.conf --rfsim --phy-test --l 2  --L 4
+sudo ./nr-uesoftmodem  --rfsim --phy-test --ue-nb-ant-rx 4 --ue-nb-ant-tx 4
+# 4x4 RANK 2
+sudo ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.4layer.conf --rfsim --phy-test --l 2  --L 2
+sudo ./nr-uesoftmodem  --rfsim --phy-test --ue-nb-ant-rx 4 --ue-nb-ant-tx 4
+
+
+
diff --git a/doc/images/mimo_antenna_ports.png b/doc/images/mimo_antenna_ports.png
new file mode 100644
index 0000000000000000000000000000000000000000..ef91f4becc80fe6c09b55f202f9d8054368bd88c
GIT binary patch
literal 18753
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
O(x@tFD54bZ`2An65hR5G

literal 0
HcmV?d00001

diff --git a/doc/testbenches_doc_resources/4g-faraday-bench.pdf b/doc/testbenches_doc_resources/4g-faraday-bench.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..f6f7b078e67c61044004c70a92c729b14079cafc
GIT binary patch
literal 53079
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
W2Nydq%B(;(4pt;GG7(u(r2hq`*f?DP

literal 0
HcmV?d00001

diff --git a/doc/testbenches_doc_resources/4g-faraday-bench.png b/doc/testbenches_doc_resources/4g-faraday-bench.png
new file mode 100644
index 0000000000000000000000000000000000000000..598715a19347b8f8e277d38a7132331555978c55
GIT binary patch
literal 92377
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

literal 0
HcmV?d00001

diff --git a/doc/testbenches_doc_resources/4g-faraday-bench.tex b/doc/testbenches_doc_resources/4g-faraday-bench.tex
new file mode 100644
index 00000000000..6071c89947d
--- /dev/null
+++ b/doc/testbenches_doc_resources/4g-faraday-bench.tex
@@ -0,0 +1,59 @@
+\documentclass{standalone}
+
+\usepackage{tikz}
+\usetikzlibrary{backgrounds, positioning, shapes.symbols}
+\usepackage{helvet}
+\renewcommand*{\rmdefault}{\sfdefault}
+
+\begin{document}
+\begin{tikzpicture}
+  [
+    font=\footnotesize,
+    faraday/.style={minimum size=3cm, draw, dashed},
+    duplexer/.style={draw,fill=white},
+  ]
+
+  \node[faraday, label={[anchor=south west]above left:Faraday cage}] (faraday) {};
+
+  \node[above left=0cm and 2.8cm of faraday, label=above:hutch] (hutch)
+    {\includegraphics[width=1.2cm]{server}};
+  \node[right=0.3cm of hutch, label=above:B210] (b210h)
+    {\includegraphics[width=1.2cm]{b210}} edge (hutch);
+  \node[below left=0.35cm of faraday.north east] (anto)
+    {\includegraphics[width=0.3cm]{antenna}};
+  \draw (b210h) -| node [pos=0.25, duplexer] {B7} (anto);
+
+  \node[below left=0cm and 2.8cm of faraday, label=above:starsky] (starsky)
+    {\includegraphics[width=1.2cm]{server}};
+  \node[right=0.3cm of starsky, label=above:B210] (b210s)
+    {\includegraphics[width=1.2cm]{b210}} edge (starsky);
+  \draw (hutch) -- (b210h);
+  \node[above left=0.35cm of faraday.south east] (antn)
+    {\includegraphics[width=0.3cm]{antenna}};
+  \draw (b210s) -| node [pos=0.35, duplexer] {B40} (antn);
+  \node[below right=-0.2cm and 0.8cm of b210s] (antn2)
+    {\includegraphics[width=0.3cm]{antenna}};
+  \draw (b210s) -| (antn2);
+
+  \node[left=5cm of faraday, label=above:nano] (nano)
+    {\includegraphics[width=1.2cm]{server}};
+  \draw (hutch) -- (nano);
+  \draw (starsky) -- (nano);
+  \node[above right=0.0cm and 0.35cm of faraday.west] (phone1)
+    {\includegraphics[height=0.5cm]{phone}};
+  \node[below right=0.0cm and 0.35cm of faraday.west] (phone2)
+    {\includegraphics[height=0.5cm]{phone}};
+  \draw (nano) -- node[above] {USB/adb} +(5cm,0) |- (phone1);
+  \draw (nano) -- +(5cm,0) |- (phone2);
+
+  \node[right=1.5cm of faraday, label=above:B210] (b210c)
+    {\includegraphics[width=1.2cm]{b210}};
+  \node[left=.5cm of faraday.east] (antc)
+    {\includegraphics[width=0.3cm]{antenna}};
+  \draw (b210c) -- node [pos=0.35, duplexer] {B7UE} (antc);
+  \node[right=0.7cm of b210c, label=above:carabe] (carabe)
+    {\includegraphics[width=1.2cm]{server}}
+    edge (b210c);
+
+\end{tikzpicture}
+\end{document}
diff --git a/doc/testbenches_doc_resources/5g-nsa-faraday-bench.pdf b/doc/testbenches_doc_resources/5g-nsa-faraday-bench.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..1b921e64370954673e45ed70ff1643462f4774ed
GIT binary patch
literal 337509
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%0DckUjGN>T(9h>r%%6**0t;NvZ~stayfbT
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
XyEDAqf#pRaRpAIYmz0zqUZ3kfh}5rV

literal 0
HcmV?d00001

diff --git a/doc/testbenches_doc_resources/5g-nsa-faraday-bench.png b/doc/testbenches_doc_resources/5g-nsa-faraday-bench.png
new file mode 100644
index 0000000000000000000000000000000000000000..006e6ab347d2dcd3283f5cdb59c65d1d1ba1ea8e
GIT binary patch
literal 89413
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%0DS|Mt-y_KMh{fxyblGTwTY0_n7N^Q@dBTUbr
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
WP>t*+X##&v*kZlis`wYi@&5uBoZ=Gz

literal 0
HcmV?d00001

diff --git a/doc/testbenches_doc_resources/5g-nsa-faraday-bench.tex b/doc/testbenches_doc_resources/5g-nsa-faraday-bench.tex
new file mode 100644
index 00000000000..a9f12fe3df2
--- /dev/null
+++ b/doc/testbenches_doc_resources/5g-nsa-faraday-bench.tex
@@ -0,0 +1,55 @@
+\documentclass{standalone}
+
+\usepackage{tikz}
+\usetikzlibrary{backgrounds, positioning, shapes.symbols}
+\usepackage{helvet}
+\renewcommand*{\rmdefault}{\sfdefault}
+
+\begin{document}
+\begin{tikzpicture}
+  [
+    font=\footnotesize,
+    faraday/.style={minimum size=3cm, draw, dashed},
+    duplexer/.style={draw,fill=white},
+  ]
+
+  \node[faraday, label={[anchor=south east]above right:Faraday cage}] (faraday) {};
+
+  \node[above left=0cm and 2.8cm of faraday, label=above:obelix] (obelix)
+    {\includegraphics[width=1.2cm]{server}};
+  \node[right=0.3cm of obelix, label=above:B200-mini] (b210o)
+    {\includegraphics[width=1.2cm]{b200-mini}} edge (obelix);
+  \node[below right=0.35cm of faraday.north west] (anto)
+    {\includegraphics[width=0.3cm]{antenna}};
+  \draw (b210o) -| node [pos=0.2, duplexer] {B7} (anto);
+
+  \node[below left=0cm and 2.8cm of faraday, label=above:nepes] (nepes)
+    {\includegraphics[width=1.2cm]{server}};
+  \node[right=0.3cm of nepes, label=above:B200-mini] (b210n)
+    {\includegraphics[width=1.2cm]{b200-mini}} edge (nepes);
+  \draw (obelix) -- (b210o);
+  \node[above right=0.35cm of faraday.south west] (antn)
+    {\includegraphics[width=0.3cm]{antenna}};
+  \draw (b210n) -| node [pos=0.2, duplexer] {n78} (antn);
+
+  \node[left=5cm of faraday, label=above:porcepix] (porcepix)
+    {\includegraphics[width=1.2cm]{server}};
+  \draw (obelix) -- (porcepix);
+  \draw (nepes) -- (porcepix);
+
+  \node[right=1.5cm of faraday, label=above:RM500Q-GL] (quectel)
+    {\includegraphics[height=1.2cm]{quectel}};
+  \node[above left=-0.1cm and 0.2cm of faraday.east] (aq2)
+    {\includegraphics[width=0.3cm]{antenna}} edge (quectel);
+  \node[above=-0.2cm of aq2] (aq1)
+    {\includegraphics[width=0.3cm]{antenna}} edge (quectel);
+  \node[below=-0.2cm of aq2] (aq3)
+    {\includegraphics[width=0.3cm]{antenna}} edge (quectel);
+  \node[below=-0.2cm of aq3]
+    {\includegraphics[width=0.3cm]{antenna}} edge (quectel);
+  \node[right=1cm of quectel, label=above:idefix] (idefix)
+    {\includegraphics[width=1.2cm]{server}}
+    edge (quectel);
+
+\end{tikzpicture}
+\end{document}
diff --git a/doc/testbenches_doc_resources/5g-ota-bench.pdf b/doc/testbenches_doc_resources/5g-ota-bench.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..121969030e64e03ac0e4fedc9ba4fc1c692de71c
GIT binary patch
literal 232400
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

literal 0
HcmV?d00001

diff --git a/doc/testbenches_doc_resources/5g-ota-bench.png b/doc/testbenches_doc_resources/5g-ota-bench.png
new file mode 100644
index 0000000000000000000000000000000000000000..86ae6b2b6413025f922887d4e0a17c934acf0297
GIT binary patch
literal 96734
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

literal 0
HcmV?d00001

diff --git a/doc/testbenches_doc_resources/5g-ota-bench.tex b/doc/testbenches_doc_resources/5g-ota-bench.tex
new file mode 100644
index 00000000000..c3a524fb0ae
--- /dev/null
+++ b/doc/testbenches_doc_resources/5g-ota-bench.tex
@@ -0,0 +1,68 @@
+\documentclass{standalone}
+
+\usepackage{tikz}
+\usetikzlibrary{backgrounds, positioning, shapes.symbols}
+\usepackage{helvet}
+\renewcommand*{\rmdefault}{\sfdefault}
+
+\begin{document}
+\begin{tikzpicture}
+  [
+    font=\footnotesize,
+    faraday/.style={minimum size=3cm, draw, dashed},
+    duplexer/.style={draw,fill=white},
+  ]
+
+  \node[label=above:porcepix] (porcepix)
+    {\includegraphics[width=1.2cm]{server}};
+
+  \node[above right=1cm and 2cm of porcepix, label=above:asterix] (asterix)
+    {\includegraphics[width=1.2cm]{server}}
+    edge (porcepix);
+  \node[right=0.3cm of asterix, label=above:N310] (n310a)
+    {\includegraphics[width=1.5cm]{n310}} edge (asterix);
+  \node[right=.2cm of n310a, duplexer] (b78o) {n78} edge (n310a);
+  \node[below right=-0.1cm and 0.35cm of b78o.east] (anto1)
+    {\includegraphics[width=0.3cm]{antenna}} edge (b78o);
+  \node[above right=-0.1cm and 0.35cm of b78o.east] (anto2)
+    {\includegraphics[width=0.3cm]{antenna}} edge (b78o);
+
+  \node[right=2cm of porcepix, label=above:obelix] (obelix)
+    {\includegraphics[width=1.2cm]{server}}
+    edge (porcepix);
+  \node[above right=-0.5cm and 0.3cm of obelix, label=above:N310] (n310o)
+    {\includegraphics[width=1.5cm]{n310}} edge (obelix);
+  \node[right=.2cm of n310o, duplexer] (b78o) {n40} edge (n310o);
+  \node[below right=-0.1cm and 0.35cm of b78o.east] (anto1)
+    {\includegraphics[width=0.3cm]{antenna}} edge (b78o);
+  \node[above right=-0.1cm and 0.35cm of b78o.east] (anto2)
+    {\includegraphics[width=0.3cm]{antenna}} edge (b78o);
+  \node[below right=-0.5cm and 0.3cm of obelix, label=above:X310] (x310o)
+    {\includegraphics[width=1.5cm]{x310}} edge (obelix);
+  \node[right=.2cm of x310o, duplexer] (b78o) {n78} edge (x310o);
+  \node[below right=-0.1cm and 0.35cm of b78o.east] (anto1)
+    {\includegraphics[width=0.3cm]{antenna}} edge (b78o);
+  \node[above right=-0.1cm and 0.35cm of b78o.east] (anto2)
+    {\includegraphics[width=0.3cm]{antenna}} edge (b78o);
+
+  \node[above right=-1.3cm and 5.0cm of n310a.east, label=above:RM500Q-GL] (quectel)
+    {\includegraphics[height=1.2cm]{quectel}};
+  \node[above left=-0.1cm and 0.8cm of quectel.west] (aq2)
+    {\includegraphics[width=0.3cm]{antenna}} edge (quectel);
+  \node[above=-0.2cm of aq2] (aq1)
+    {\includegraphics[width=0.3cm]{antenna}} edge (quectel);
+  \node[below=-0.2cm of aq2] (aq3)
+    {\includegraphics[width=0.3cm]{antenna}} edge (quectel);
+  \node[below=-0.2cm of aq3]
+    {\includegraphics[width=0.3cm]{antenna}} edge (quectel);
+  \node[right=1cm of quectel, label=above:nrmodule2] (nrmodule2)
+    {\includegraphics[width=1.2cm]{server}}
+    edge (quectel);
+
+  \node[above right=-0.3cm and 5.0cm of x310o.east, label=above:amariue] (amariue)
+    {\includegraphics[height=1.2cm]{server}};
+  \node[left=0.8cm of amariue.west] (aa1)
+    {\includegraphics[width=0.3cm]{antenna}} edge (amariue);
+
+\end{tikzpicture}
+\end{document}
diff --git a/doc/testbenches_doc_resources/antenna.pdf b/doc/testbenches_doc_resources/antenna.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..0d48aa8ab9e17defba56fb89e6c7f36c6f3ec548
GIT binary patch
literal 4886
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
S(m*YAP~e%1va*GvCFDN?3v0Ll

literal 0
HcmV?d00001

diff --git a/doc/testbenches_doc_resources/b200-mini.png b/doc/testbenches_doc_resources/b200-mini.png
new file mode 100644
index 0000000000000000000000000000000000000000..0355e45f1837b3ca5129566cb524af070ee06c5d
GIT binary patch
literal 238906
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

literal 0
HcmV?d00001

diff --git a/doc/testbenches_doc_resources/b210.jpg b/doc/testbenches_doc_resources/b210.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..23599b0b1f9cc6d25830ecb3bd12208351dac9da
GIT binary patch
literal 32877
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

literal 0
HcmV?d00001

diff --git a/doc/testbenches_doc_resources/indoor_live.jpg b/doc/testbenches_doc_resources/indoor_live.jpg
deleted file mode 100755
index ce8b9cda4817796abf6fb87da43befe6090469be..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 254133
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%0A)%h
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
Xw=kVf=>HmO>>rBppYw?K*W&*G6`{5$

diff --git a/doc/testbenches_doc_resources/legacy1.jpg b/doc/testbenches_doc_resources/legacy1.jpg
deleted file mode 100755
index c3579df3e4a56521eff8f23df1dbca9ba9fd3a59..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 107882
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
br=129W%;M6%0G78A1CR*{3Hecw*0>UmnX;J

diff --git a/doc/testbenches_doc_resources/legacy2.jpg b/doc/testbenches_doc_resources/legacy2.jpg
deleted file mode 100755
index f40d167a2db2626f4be2a47fb82528cc9df5abae..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 122055
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
Q=k@ozuRl0u|MlB{0A&rZtN;K2

diff --git a/doc/testbenches_doc_resources/n310.png b/doc/testbenches_doc_resources/n310.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d6ead5718497c72f4fd972f3da5fd9fe95744d1
GIT binary patch
literal 120716
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

literal 0
HcmV?d00001

diff --git a/doc/testbenches_doc_resources/next_ci.jpg b/doc/testbenches_doc_resources/next_ci.jpg
deleted file mode 100755
index 2d4111510c061b5d18ed1ae3097e3c6cc0040437..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 157592
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
CdZAGO

diff --git a/doc/testbenches_doc_resources/next_dev.jpg b/doc/testbenches_doc_resources/next_dev.jpg
deleted file mode 100755
index 72e9f63bf91cdb7fd47a44780126b7269bf0475f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 185772
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

diff --git a/doc/testbenches_doc_resources/outdoor_live.jpg b/doc/testbenches_doc_resources/outdoor_live.jpg
deleted file mode 100755
index eba44a3c00e7456c7d2d0cc12ea1e77db31ae10a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 167702
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
Z?<8&57vZk*DB1NW&uB?}^sQfC{~y*`r6m9W

diff --git a/doc/testbenches_doc_resources/phone.pdf b/doc/testbenches_doc_resources/phone.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..4451c7af1ac6af3251edb72fada64e08384d23a6
GIT binary patch
literal 4358
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
Jq^YeL{NJR<KC%D+

literal 0
HcmV?d00001

diff --git a/doc/testbenches_doc_resources/quectel.png b/doc/testbenches_doc_resources/quectel.png
new file mode 100644
index 0000000000000000000000000000000000000000..443e62dcb569996103380797afafbe382835298e
GIT binary patch
literal 88455
zcmV*bKvchpP)<h;3K|Lk000e1NJLTq008^|00D*w1^@s6UuEoc0004mX+uL$Nkc;*
zaB^>EX>4Tx04R}tkv&MmKpe$iQ)^W!4t5Z6$WWbH5EXIMDionYs1;guFuC*#nlvOS
zE{=k0!NHHks)LKOt`4q(Aou~|=;Wm6A|?K>DYS_3;J6>}?mh0_0YbgZG^=YI&~)2O
zCE{WxyDA1>5kNP35k*L5mN6$uNqCO0d-(Wz7vovp=l&f1YR+PSPb8jYhG`RT5KnK~
z2Iqa^Fe}O`@i}qSqze*1a$RxxjdP*N0?!Pa>C`-Nm{=@yu+qV-Xlle$#1U1~DPPFA
zta9Gstd*;*bx;1nP)=W2<~q$0B(R7jND!f*iW17O5u;Tn#X^eq;~xIure7kLLaq`R
zITlcX2D#}6|AXJ%TKUNdHz^bc0xyp9F$x5Cfkw@7zK<QJaRT_Cfh)c3uhfB=Ptt2`
zEph}5Yy%h9ZB5w&E_Z;TCqp*nrsSt7<nzG$8GTb07`z4g*4*A&`#607($rP*1~@nb
z#tM|Z?(y!P&ffk#)9UXBEfI2yGi};W00006VoOIv0001*01KWKU(o;n010qNS#tmY
z3ljhU3ljkVnw%H_000McNliru<^=`{0V`Q@&qM$KAOJ~3K~#9!?7eBMBw2PI_MID%
z>&v&V^{RTS?y8=incjxOAw`ZU?$F3IArPW>6B22UAxJP}SU+q7l%XGnA<(d4`-guR
zmLLf*ObkiOwn)(u35p_zv-WgP_ssO()z!7v+n0Qq84>p$|A@Psdm~>}^=wr`RHCcj
zi<g;kBW~P#*6)0W04M+k^-I~G58|=={k!q{POs<T>;Are5Z3Dhc}x%RLsj?qw{Lf`
zoOXP-F&}RF`@hle_1QgqC9nKJyP(hf@@Leu&pq|Yek*&<7z1Wj;P3pr%)qE9uYc?H
z_rCnkf9qcy+Qni{TReZ`zy442`Cj{@?M!`wfZQ1KaHHSPoo=|=Jv@HpfB#?pk2i`*
zVZ`$@4>$h3zaA(J|9Af0-x_>;b?{$p4%+`=PBd5VbN+4)QC!|1ef9VL^tE6At>66p
z_W%?Cs&wIe_P_kB`uN7&-+5-K|2MPm&2>C{eH*V)X?DMLefNL*pZ~Xi`de2oUq7Dm
z{2spULBl^Vn(M++{})z!t-m#BsW~T)hybMkV`?p}l$ZD*qEp_3|DHBhz1#CWy)yXA
z*FW;u)!zbs1HdtW698iwC+K%tn;%{3|NVX|LzV%C0T$zFU7sz>+}P=Rj4UHCC)Xmr
z$6Q~V^6xPKntFff_nP;9Z{x-9-F>`i^Jz@|**tHK=dMLrPw`&IyVLVC1~AMZ0KGh0
zcw%k-?|u4HAASG-ynOu?`|M8a#((&_M?cv-ApdZ7rZv}ZsW}FLL11Rg%n;VsbIi^W
z0FC7(h4u9urLNHJ8mzD9==Xs<2iDhetgK|vroz&a!unc{PKWCa3-UU;-|zecfCT^p
z09_&Y3;@%~vmfi_3Y`wHww7acB|}+Nn4PV!rPX5OIb(e-$NU1J(i$tv8P?WvwA&2B
z8tdyh=I0ea28#;{Yil{WJw}!rtgK{MTvTAzn47E5ndJs~Zm_<VV|6t{S!vA70PE}Z
zJ!Cm!Z7s*rl7cZB3k&vI+6-+ftgq!*Tu>lou&_|iQMbncRajZhu(VX)-s~)4V?9Tw
z3uL*$+G>5>Wu?*UG1k{}^m;&+v7b-F6=rAaYiV~FT37a3GLSNun^*ohFf>+{6_%GX
z5E;x4>hWd<1X3C+D_Q;gDvfTJ{r8k&tgY7fZdjw=ugB|lYhmD?-%_u=&@p-iz#M?S
zcz$?**75`UPu)XM>ic%w%9P58ywhEj71|w*`8lB1)7U>gz|6p4VIH`(vx~}%Fh2*h
zI~vB6SXcm-774d@_OQH6n4br#YK+OG@V<-v*-kcmTV4+l+FBccN-WIR=e)VSi%z%1
z{2Wl}F$@=&p9lIqjoZ6>SXu%W=7CW$#KG|)=I4NJPh(PyF_>j6%mbhaCgl*bvy6V<
z;Al8R$KGF2onSaQ#=-)yXvfQ11?J}fr~+kGU|}9uULtJoA7E~dF+T^4C&$>{-^cts
z(CZr%<pi^X`aQ!V91agLGccH$VT>jtbUGSyb3nUY;ADJ^g$2UG0&sJC2b$~oR9S&i
z7k)l(@9v}5x7S&oU~7L53-ds~uQ8sCFc=uj&jCym91f4rpJB|*7);7BTJ3tgnZCyH
z$uZ{aT-@H-MQNX3-YQX46D%$QiwlJ9y?wOW^}QQRP!y$qei;Gd@nj%2d}^gWFzfk2
zJXZG*`TV{ev*8e7128TMOeSM6mzYdOxUsbdtqZUzapmR?hNBZOmnf?Oqsau!CBP+a
z?d(HQ1?Cb*!y!hKA_`bAv$Bh&pJ;dmz%VmPtuY*p>^TcuzOjv>sIO)J@E8ZjLok=9
z^aPi$ZG-H1dk2Tu-an|{D<?P_o<LUxm`e;#hB!Dn0-F+5HNo!T5hg`_-G|3V*xs$b
z2UFnvYg?F1>hX_<Cpb7f26G9b3OBa*z^3rmvSq(lRTCTyM}CeDkB_mle+Z)sROJM_
z2S=FLdl*elaC>JTKna)<?_b-(@vy$9(RhU6(B3;r+}z$rRZZ-8N4T}K59ShD7uY*I
zMpaJ0ro{1Zh~0w&7(Icm3hW&mV{D&aQI2tQdk@Sdm`hy0z3ayt7h@csjKz3+;X21B
z7#HFBF@Q-?$!FJ2g3k}kdVUa(AE+ojyU-XBzzky;#%RFQi>oLmFs1+-U^JRQ>jE$(
z*i<lDgG~uAP*zp_cK}*fFs5zK&vL`J#bS|`j$&po*QP5>31-G<RF4hQMo|?|Is=;$
zMi&^4#(uoADp8g7CNidk*0uG)hEeGfRaJpa0b?|DRl(>2Fd53Kz<A=u15QR`e}6?;
zU|bk~f0LrL=L9NU`s=L6tLpcdp>>I>syDwjjB!z*s!G7*&{c_XG4bOKM`KiWys9dp
zHTm(1(v6p+s!EjN{wiI8O$la#))mUqjSq~=0##Mm@d}KK3E0&4Ta*=yw&&3mjJEd&
z)aTHpo!<(~xqp6COJrrATmB$snto8ya`zh)&`28)05)zTS70`PslbK+nDCy__Pu(c
zf!Qw}uo34Y8EaR`zh?S^ja|%af7kZd0Hgp@*4G1*j8~7(rm_yG1`OBVXH);(==yUU
z&dGi}EB^ewoBE%)KbWeXIq^NX@k~`m8jbe%0K@h^w751g9z)!p1|yp?p1pTBzwR7d
z0fzi>{nO5czdtu#1vUmO?j3ADZ^x_0aO3Id`PFmA)1KQykj*_DKS-ufywSbd*LJg4
zb|X~)liytR-?i1;cHw~Q?*QOrm=BeQbmw<bes>+rwZP%3UXTnwp4))+BG$E4!4;U5
z6$b7-6NG{NtUD*XXQS=?Ss^0suO8cO4nKwvBFy&Q?I!oTT8zggnKL8CqbcLX_XPV)
z>hn`A`24(3GM*3)tn3qZpKXo@ckle6vTf#}>3-+q2htphGv3-RY;8AMWwnl}H#%Fb
z17&}A3$(PG#`ts6hrR}5&&ggRflI$R>i4R6JR1<@=)Kx1slTu7d*Phy?!lka8L(A7
z9&3Bg^8TFQspq90Ux&?a$bQe*IE1x)>}GVrA)FI_KI=^y&nN7?vll+4e<t<)xz9M^
zL-su#J`1*5TY16c$3vFfpB(SQKfi~syPNb6%!@c|dNvxYtvL$=)+Jc8wHS4MY#7Wr
z*d>se!MY3<f;}gQ?-@QrR(rA*8^V-eo!P}m^%$lW0MU4Ed{cienBO{>=7zng%$kG7
z)y}MS@43yQ#29wtXj3Pu{k+s0wKlPxkhEsI5t>uOTLj_$OqfsB0P-p0k-aBze{kl$
ziCqXLD=_VN&TTOzSSx!@ZO>C%KyEyCLPU(=p5MdQpTi9wJyvI)y3OJ=oBzGE=3v&)
z@FXl7{*VSe6F^?;!fInTUTwOj8lJpGVS?61ZnY{4jq9{CTMNcmzu8!gheQJ!tDzGM
zh7A~Qe%x_xHLD%ZyAaY;Hg;3X@et;-q5a*xQ=;Kx6P}@kRiuO~5RX@*r8!t=IBmQ#
zxNA*k@8Rpau;J4*-S_(#B1j)x4`&Md1;pNbmOi2LYrVfMf_C&F?Lj9j{5e_rl^px(
zay+=rX8l`aLDM>6V5-D)h4<;>dk8)}TOT)mkAvXg%5EY#UhvbUiCvGUlkqsrCrr??
zQ9OZsP%;Q!cP@BA;hqWGSceqU;dzA^g^NQ>z4s6I{O<Sqec+Gt2Q07<X?XUFBKC*F
zqO<Rz<+UmrKD<2Vhtv+z|MiQ|9V-#Y3gaQt@TjkiE3naCo7Y;DYO&%4m=T&=1Rh!0
zdr(PG%V|pSJp+Kncu|m$Y@9<_8FJ1TBEEoAuElL&7N5&(w4Fs9!Uid!?DLc3$$;LJ
zXXf0Q=vwai`8^EG-R1a!GwHdJm>0gB^MAb$=-#8mZ<oJk;jH{2OnSE<wOEkG#Sb#?
z-~04h<ilH^+Fh3^ZOY479~bt$R-K~K+HMSp@laa=nrr|qOYW}{KDG1xskVYlWvvKn
zPU`|}6c{agti#3^_ZQ|<g?mRxbF#L6zKa<c)YoQHZBdGlRV{o>eXX^hZoj7}SQqyG
zSUxj%51MUuBRoHTXwv`r^5IDY?P}9rM&j)varsyuRnCHc=(e}hxYBQ@4|^rkqUJ0D
zQl&_Xi2#>7W+gOi72aoK-^)eH$_DskWE|RRygWqkz4&rg0t;VU33IzlQf~_2JVe{Q
zNiMah^QrS-MfmxY76S__rRCFgK`>TeC?CJ@etKlxKx8H2@uc7cx1vY#FjD{B+wc#B
z{~pI?SS%7w77Y7E#@vcGo!dxW!+-dNLSjMsRp`y+Jiaa=U>MfSW>b$X%+uhznh?~2
z49rm&kKw^F^;E_8=goWTn}bWR$%M~dM#6xtr4t1L-E~K)H><TdolhNvl5i=4xnGH6
zW7BL#r20}Uf%3o{>8AMmgB{P}M`&uw_Mt!jVUHgu;7w&1rLjgEGfD%LT4PdHC@Vr`
z7?VPymDiswN`pzsC@O<e1Cz22WNFSYnrJA+s5C<>pfq8r=)0^MX8U<#Fe&Q=s+lk;
zH6|rcX#-|pQdXFh49yCYq5=r0bPlZ<lTxE736%kgN~0(%lsZSDfuhhTE3WUiGWPx$
zl~Kuf29wgDDBJbDmlccww8=0jH1dp5njEF6ucfGf$^fMuuc`=T#VAURvZ~8*-FV{(
zP-&{K8$iYGJw{Qr?0B`iVmQON)R>fv%4Dbv)#H^}{T$qQI!95#eh>BYbK@02We7!C
zkEcx=rMCB1Wzl%<{w5`()GbuZ{`pmgML_qVKmTEmA0!J&{lee=wf{KFvj3H=Sl3!3
z*F&_p#6%NL3c_s1AkTp9V}*Xppx*&1)kVcQdNf2;F%Bm=<~kY~F-}YiX!VijLALE~
z?|t=O|D(_S27qk<x9!h;*t+VU{2RaW({tVSzeIV0E=^zzuzR8~+cD_mz)-gVr7)w$
zC@SD^tgzVE$cS)U)*E7>Q=vkJ2|Ad`3b3wlQYsiG%(OI^6i##-y}Uxs6%NNW?02qP
zqt3R63WK&muLYc#HVi2Y)EJckjwU$<9gP+-j>`;%CM<O;Xk-|pgML;3y243GC@WyL
z%K#}1bqBqyL<<#$MJ<eGI|fP-wvH5L+6MhLFy=N`<>=E0m9FP=re)C142G4$q*8vo
zk!ho&3bddx)(Yd2Fx$}pDV*pIx^}!#MVOTJ^UE?|XOyFt8T4BQ1=^@6#|(|2HRE8C
zqt`O%W(H%^f@$}WXZ7<l%;xKV@Tb3i`PJ875zlWIbzOY*&}jbwO3Qum=8>T+Ghir-
zw6KxvHvI9}+I7T0kpn|(dea0zE7*M_3i6Cc;rjr}ox_tmP0DNA!(-Jh?C0C@c<%h9
z;j3yHK#_^@0Gzb!vGt#+CEm~M^*Dr}xW5tZZM^9I0F3T1-pHO0`p)B(Zax7}8P6wC
zST50c+TM=}<DF!uk0+m>Jl`G13(t>@F~=vxLo@z6NXw~2?cdL1;XqTsQ+~IP@70U{
zUXB0o_}f0FyPNUq;qmFmQUcuXpQl95z9+}(UibXN;|J^b9^7~H@aO42A2ha*?@zFx
z(_R8mZo|rr>ma3`dg$#vm@m3}Wd7mt9gcH6I3<NDM9DdNu&E{fogS-x|Ed0S&ptbP
z{f$52qVPltYB0dU&;HDLWZ8ctL&4we@gE+4XU7jC^WXk)jt8srOzo#7!0GS0Wk}TS
zUA*wuI**)t0nAq^Zyi%BA5)g~p|TeMd`g11A6n86&N1IPC-;!#;x5PelsD9UJO&e6
zW|Qx&s-RYDBWtyO9)Z^!HXYdZoBg3`ec+DoF=(eA9#22c9~85rd*MP3ASX*t9lcVa
z{@puPAhaP1H0m1H@7MSbk3Zxw5h+qxiV&5tn1^Qk9gZKEMiku(Pc4Axc>sB8(m%9m
zA0EpM-a51X%;>GRzJ{29^kFNodkuQ7{Ja15k|~Ndk0;7hm9n^XRaZ$F+$)yx+kL5C
zub<D&{Rhah&l0fq(0YA%e5Yfss@=)etN*yTcH{E^Zf1j-{cLXTgxc-udx{+;g32;u
zv@Q<+=#Te>2K|9)byZ79qJNZiIv>xv-P&YwvVgveQspjt9>5aUT;r#ngHJi8J1mm)
z{b|?3AO3nDzV7F%-Ck-x{`hC{*kk`b5mg{EAo`weI7Z#_$`}J<%+~<?nvMU+f2j%m
zfFkXf&#eyzkDr^H$Kvc9@;s{pXH-)I6T#N1PL~4||1a5{%`f<KPT8n*3bhFlHFx~9
z9ZS=9cIukTxZG(1>N`jeog$|0{{HD>&^?MLz6Y^&hlwPb8pfD<D<m%XlsS(^Oy<9i
z)llP^z>Y5;If==!e{;<!PF<JL9rJY79KPfC+4BpQRfXN7BfNe47Pbx!wozN6V}$;8
zQp-QE(fS-fJJT9JarP0saPASTt*xQg>mkcBC`BMrP(*$qxLNZX)O7%~vlb?m#6t`#
z!V40jWW_W$JV_zrc&|?7I=b_A3|GKT<iy(}-Q^q_AGp=v@d5YBmvx$1;_k!VQ+=Cs
zXV-~>&?2gdAjo3QJ@S-8+UhjH$zlf(H3ftFUZ4@XHz7wLF!6NZjJu}Ord%_-|LS{Z
znkvWSdF$^7GKI$UPn}}+b1G-Z%_Up6b~GO0=B=Cff4}~9{Of~*!RDi9KHlqfk7wp)
z4wqM#j+fV#cfa}dH@07Y`SmK<Xy!o*+|`kBt<^@akIl_ZY@RuTcBgH-c@jt|yFI9$
z6!%b}lF4VknVV8O2!ix8B%g$^B>eZp!;GZ8{La1D^HX&-M+<hk#*YOR^K_k>E+(QW
z8m4Iy#TP0CnmZXy(^8b^{JUv&o+?~VwQ9uF@M+c@pLQSN1L@{EZH%VGjqk;E=auuq
z(}Xmp&5iqh_$!|x>{3DFxcrq;s49&t%dvLp5>`6dxu5#EPyYJi+@M;VpD7mRXR3wS
z{`lZWF24WjwNL-U-}vwT!7Ezp3QbVkeaF?;C^KfX^Bgn%K04hl%Bn(H79di{GD{#q
z%1^qSd`2x8*!B2LHf5x-<tC$P#VocWiaD|boOWj?xxKaxns=JUndUCAC7D#D{6--N
z4eQQt42YCH=9<5O$dXssR>$rf&eUYC=SgS|cdN$K3kOXlmd1r_YwDoQoof|uY>qa9
zy9Xk%XjxhZ)+(^`$%gIuD9BkB^(r)lZY=fE?AV4GDskgDx<32-z_AwR@O<Swx^?9g
zg)v-PnFw=y8fCS&fc&OL^c>_oO3~mx@6K=7z}SFwr`tiN-Nww!3_7hA+C=?9ul3xZ
z*TSIN!fdC7ek;RFr)4G^3m5;&Fa6Aa{@b7X7w@Akw=U4cwcl5hUV&LDr9etSR~5$N
zF-D^?RF>6?)Ga6XaHK=VfKtj*7DH^B+A1(??EBnMfr{$C8#YiB9z^~5coVpO;tlgH
z)gjCvJ0AJPNDZyzHkLH<<wEca%=@&#zct3#bJzvR##=ycZu|!GaSifX#hHqvlyFu#
z($`*Ky17@%UT>IRC-j`Kt<OoeN4xUoD5P*oO=qs>$VYV=mX!UNVPsh?0NJ&zvI5x{
z<FALsb8_L|riLacMRnhIzd6Z1<M4dlx&5=4=Jq8PR%3kv{@n2Ei-JI;`koCNFRYDy
zKE@dTyjyvWEK~J78iOojbULV&fjw`oNUaaLpI&OKrvMz=f6~W)AWZt8ITeLPMheE5
zhW2!m?H)3LppC}S;US7*f?ltWUcc`pd%an$w2XX2ghk0lXez2X6q&_7;Ajyy{7ja@
zh>@wRzIH35bVG|O-;pMEGfwwq8^SA14l4@XZwXT&!br_ZF(=_(?B5vvc>n-u?KP*2
zZTQWX*v&*Laz_lAXinv|Ibq6HII_JC@<NTgVD{SB1gpkB6NVMumdZ<WWDP~J5hh{m
z)f+OhScHH!2tt8WeJ-uFck|d7FI=Me1)_LSy_pS+rm*(Nvf?v?#6I!!L&`>S$VYxE
zZ7@Htu)M5Lj5V}2eoc2XrN$?t1=Q`xVWaoOgA&xsrRXHo6Om;ZvW#p?A~ej$8sb?0
zu8qb!Z@r0ce&ZWBJUGDFvuE-A3ol@O^Q_=B51QK}=_vR}Zb29}ad1rPNox9ZK|84E
zL9xYPrVBQWq)8#;KA*Y>VT0F!qaetv_EBX0^EzndG^x|H{w|!o?5>RxJ5<~gi7{hs
z7c7S8eH8>42{$U87bkR6KiL^T^`>zqz7iRgC}J47Fj3@P5mdq<=<f-(xd*5r5S^g(
zmKb6U?#GvbI)Zp+)DU7o><$GBM#blFRw@N$BG08%y(j#<5}~X#jIR0kh9?yiI+3S3
z8u|Y9m5t<&?WUJOJas>g^K^oo6b%bnH8yUhG8pU2zVqgr`2FAeUEI2L3&t3{^Y+_#
z_nmj}YoGm3(C+qwC14i{6I;-FtuehlCN`*lu+|)vfj?;i*5;!UX}6}?Uu!RJ#D@I6
zPRY+j=CadZcA<LLLi&7C^ExfY@PSV@JS8r~-ls&gsKbU<O2t~(nwx%cIV*sJV;vT%
znqmdj=4hB_veuOqY}T*OROUCdv+|_HBQpUEwws8&_pX%Hz>1>zlraxCZ-&`(TsR@=
zpQTd5+!j_)X#3p|W=ath6pT}Dey)QeaJtVwS83^SB!g>Zq=F!JCVr)B;?8kVq0@?)
zwTjaBuRlTDlKj4#^?5Vs!PZQKpG2umSonNLhllv)H(tZ7Tes@I=KxGm;Jx?W!{tlw
z<LQrm+%Fin;1p5h|2f}Ynw4Q;g^dhQ<mdYb?>2z&7u~`Qiyq#R0JHZU<pNepc|VVQ
z-x(vMe$dQp*xQ_(1i-`Rjh(}0WRAtPuoPk(TO-=_%0mcjxv`yjt~hK|sl9ZiV;@_Z
z70h)%JCcGR_~qKfP7oW0jx30#U(7~(;cM7HWh%N4>FfL00XXu}!4!lnF~~kEch2;h
z+?*KiiqyeXLncbXL>8q8>VZW3f&=-vZ!7Ku2}di=uDiM`t}(h1Nzx|jUq21@d*4iY
zbxK0CAvs9~sq7>alL7|^2X<4(r?_$BMjhml8Y~hfoS62AHXw5doVm$1_WLe|0FKQ)
zwhPE<L3a)%BK-|>8cvhNTFY%prBu9OZL~Q!h_QJXuAhBG-$kq=;E`}tWzO4(?*}a`
z{-$VZ{#j~twoz`Uq2YwL(4L_5TBQF^(Z)*SI5MCW1Qdz5DMx}{UYq|rMC`^3a`tYW
zcdy*voVK>>N2bjv$t1Y>Hf$nmAc|WsN4a*$tdej;(zy{6W4rsD+7sta_<l1*+kan<
z^J%cC`T=pn><#`+z3_Ye9?qOOgZJKj7sgDYJG%Ihr(rZl=5zRNl9N>wnc6ZPO;HMu
zq6Ie9ug^%t49F^f86Z-=(}i?ffaz|7B0|O5YELPM2z4Avg-t60kt8w|%mymU8i7dS
zItvhC8K`!lvP}7?b%;_sbG^O~=Ub*$5t7)2{0YFPS~+U!MUCh^`)vq67ZM-jePn6^
zr)o<?Cd1=Es3PUvky^-7Gu<hy8<Lh$IAxttQOdg_BB2*zIWB|1A%Lf>dES_RQ1lFy
z%KZ3pj_T%^x{>$4hu3}0#phw6$-H;%r!(thvvZVMnwc5k<Ig^aYge!0z4zXOF$P(d
z;rSO{z+;a+fugLCWva1(NrhDtSq(|l+iw^tr6a%&qP%jtut`zv=ZX}M3*4|kRJq7B
z5eci8t;tQuvdoX+(n%r1z&_36o_c0Cw-;<G^ZvYrjX|jlRar#~jHl$2eTvV{y%fMr
zR2_+o28oU`No+$=6nCftP-0Sj3X*L6L)mm^@;#VF+$9YHOAAPDaA}!EYs`p@4AS&k
zusXceW+z$sv}F@};O>i!iIJN!C@2<b6eJ`h_!Bp&+BQ4M@EyGF3&mA1-3)v4R+?n7
z78Iy4B5XeL2!838e;L=WUd8tIHqM`a5>GsN9+R?+BCx(YvLYCpVhVs76Cuf*6!tzf
z)!&JLGf5=dumPEP;Ti8co&xc-FxNVT2a%)os{(8+PC(V2Tb$6SDia6Ujg8FPxg!q{
z5`Mi66d9k3t}_$PpLW(wl)?;w3?IE`X0N5S)*<*M{A7<6aDhGnMKDH3fd_9Pn5ZUA
zXvSJ28=HR0R943qDABr6dX6J&F}M}65AD;2#)x&oexB;}P-h`rjKZf0-8?G<p~W))
zA7_FfeRMV+&_nh)_{<Xr&F!EP{#>FhSKS%tLzi0J*Q&Z)N>3@-l**!qRtL3AFt7YX
zDl9IqU~y^Ln?Ty3(NgJ8h$6_rWK&ktT0oA9HJS%;a4;_=nohbNshKa$&r~ydEnpY4
z-0Wmgam)<GN(8CW2zb45R5rz|v{2-F3}JDI@oPa6gNU+Bc>z-AGtfv&dA9*cB-}=}
zT^#@^LXJGdC46d-M5k8gR;h+i%v2U_l*oFD{PtKtWlBZXlbjDuw5&_>)&em2<e5^C
zjX;Uw;w&HJbOBn9aT79d8`7S^eN%a`K9ogO%5wz&UXD#d!)x1z??Y?#`%ZBcqs9qQ
zG(0uy6$Rgs;h>213AE9EA(mB%+qZAw#`Wtcipi-36w(V)nZo@1Jf3{&X>>ZBkU9dP
z)Ft+IcQGE1BZ#NFmb}%%^70D0b(wFZ1+HGbf~u-uw1#2E`uaL%XXiq0mVohijQzbm
zlx1Nhx{(kr5BVfHPh6Yuk39OQPwO}^(&6C&j*brN1#V)597LgqbR!tR#>N?RyImX}
z9N^$!KZ1wK&6mQFohcu3)9fvc_4N&Odp#T2WE}4A;qdU#2lE=h^e9&z1kA$XBIf4i
z0RV@GhuGWOX=3KB;Leo7^2#cDy`DGeeGiH>(B?FHa(`~)dZ?~I5*lNoG^kHc+U$q4
zI(!y`PA}MzC_9NyKm>R8Ck_ArAOJ~3K~%*RK|B7oxFXDyqMGm9aUKC2yicPV0GBB>
zMiv@cZ^l-h`Dm&!2HRU(c<HNOLRA*%blR~u#z3Vts<O1^X^w8U?SoXeZ(hS2uYU_a
z^RqvXg~cVm0B>Bsj<3J+k`(~)YdoG{ZEYQ&{)wNon%H>D<jR!~@MnMWuh8jsV6?&U
z@esfA*MHS7kkQErzWBw@<M!>F7DCz7x<SB&KO3Vl9*=SM+@pBn{P|j-7>#$|eFrap
z?JFqD0=;fepx$B)6?yH<D9RGuZV#XN%r9UxI>DE|_-EMN*+Q$;^0f?it2&b#l({zf
zwK4dWU-?yxiwQ2je+jR>`ZA6V57F!OB5+Qmz>;yau0cjW{^`Gn#f2pdPlov77ycC6
zTerMmjwAU7i;GM6k-zZc$g)ACEv4^VubGhJ_7)Te0SK~z#spmBKPT!ms8-jJriP8f
zNTj7PS`-X$10d#5hbmJcXh%ZKvh50N_Y{9;X8rdUS{tICA)OHlW|Cl8BQmZ;I;sBK
z^=sGgh0p&nR##Who*P7;*IJ|BpTRR9eHMe+S)UmC;Dh(@&f9OIZHpAPx3}@~*S?CM
z{OO;s!3@O&H?ChruiHVt-)p2=Mx!wvef)8Bdp(q8<rh{_6nO3HU&H3+883{U{>U@P
zRF1MJaqZeweB~=&z+k42GaDN=uof@+g@r{7X6KWNxH{%h=?YIibrEG%Vt9Ovm%j34
z+`e@KE6Ynh*eB1|>2$HMxQI@>D^c?R40L6%y0(U1zmMbNV{B|};IT&^vFA}ZIM~Pj
z{+>;Dq5+6$w>wx~UO}tX_Bm#w>vJ9thj{6wFXQs1cd@WAk8|hFHlAmv)4|fx3i5VK
zLi;U**I+Q1#rl~|Fo2skZ(w(43+wCaQ?G|e;feE4VR3N@mDXMWxm27I!pp5OcGech
zR;3XxVgw`tiE22Cas6Nc{1KJ{GmO!}z?xQgCDXX6dF7rMSE9S`4-RQcj?*fle8m@e
ze^N$WU4V(Bl>zMS?&7sqU&hA9hF=JB!52k|7e4VZ4CdzT!>JeM-rl|knh+8C7LV^@
z^gBD-*x9~~g@yU4xc)qE;qk}Mqb#ckumAp~_k2XxSrboPxCm_wZg1VjH(q-M3-j}6
zw_8myYz&r{SMls~FG6Lxz~77NK<kSZMS(Y7{}zr8_prLUlEf+Md(ZP6=byZQGn;3V
zynoP8b-<L-pBdoe&%Nju(|A0_b?X}Sdc9^541lGjWnB2kM@4002+V!$r7z>=^{d#}
zSZ`dL%Pc(c#8Wu?$fMAP1!Orzvk|n`c<t*iV}5=vddBj4`u#r6Y@UVo7!7Km98=U@
zsBjcG1c63$ASPM6&H`oWvo->#B!jvkUDzzJiS9u_cadaIq9{G8x-~c$KPWFX-KP%t
zVOUA&{>2z<2RjU)ic6Q?LA#y%z?=M66a~&~p2c7=8wJ0#uJF#=Z=u`mMggf_uZJwJ
zEB4-g^L6z5y~a728I#EbPhPl)R=eY`3CuV-8RGi&t7x}d{`xl0okOSF$7E9A^84>0
z%LuJjKJ~m=mSf}0CX~v;W~aaa<RHkkKYM_ySKjx6Dm_=dAy=@vwo%7BJmAD4*=(kO
zEC+#`pDfEjN?~_r2e)qBh~`NCYqi=~UE4q_Z&{Po_^9~s_!zH$^BY)Ln4fxW%#4}A
zEY6%g7j1Sa)Qt&f$E#PbU^qNF^;(!2>l<g#?e=|^hD6Ss1W*bo4~pBg5x|II09T@I
zT~0kZhYdo;!CabBcOSS&B-TLU^wZtJcEd{_o`29ZJV*a$FU^&Rl!l0<&-g~x&eqm#
z93AeX-D))+j<NOSt844X@;ox7UVHTw%+3yCV1~-@*kg}_8Q9v|!p`;<*4Nh>K${v_
z2R!xE)0h;6f9gsRZr!+!@yQS~Gc^-ZtJTKx@*0Q;hX?z(dE*+EmKGcNdw2fvc!V#1
z>5GAU!>7n<r|79CFW_U(J_k08H@@`^^t#=Uvro>KWjWT?&j<ich*0|sNV343?`W9u
z^{;=eF-P+E!R#E?&upSBE4!(Jnf=wTehG_<3y~k2Uf<r{E`Il){XYU(X&pcNoPPG_
z{t~*q9*kkU^3qqZvb-`C_~gv_^G{yzRb)|cKn7?NK7mH=-qjFLf{2qiep|jROO++W
z+A!DAeo8gCNb9<1z$S__$)K<-s5BtFb4y{r1cnu1H!pD59wN&!XaKw8@?LV|_l*EU
z?06E<&ahD(>xWClh0<2|$Z%PdxN-d&%CbPa)o=L0mDX5VUd8(QX7mt`4i9nt+7&F!
z&qeUd{>&^Md;C03MkBoZ(wDKewmJpZ&zMXKJpcTQ^=5a{RvR1-k8$P72fi=7F$T*k
zOITP~g4PDFz4i(QgPE!4bW3k}c?E`T5swJgXsuCI8Y`=-00X-_JGg$WHkZ?d>3*M?
z8Q{$3S(H^3ZxRt<*G5O1-W8Huzj_t>dpkILc5^Dsm56Zh;zv+g?1Qi4X2#a7TiCvR
z6U)m>Q-g8LjBdAwyw&oUgZN$zI_)kN78Ws?Oz`GgucN9;<az(p^F49?JhTx7F!ox~
z%C{6K!-8W$;@+KK?x@xr<}g_0>{m2L6lD-4w4ovq6gQ=fQHM$TGYM2PfDsga^Ku{R
zb`PqXfwp&{+CxyL0OsoG_VK+2)b2~GsYn2mG^<39c8&rmaiByg!twA3w{Kp@%uGLl
zTGq3gWf>lQ?D0ApYlR3i<K1`PM$e|v+^Z-G{P2(b7>csQ)hkzEbOoYLbUp_<8O+XN
zd3n|6!rcbi+1|$C!5$VD=Y6h!^XwxaMcBE$jf1@%tgf!2$*EUsm0o`a&p!W&2*4ph
zAX%2z>_BCOS6_V@%gf7+>vP9NQQ^YV&-mb#Pv0e4KDAYu8D&}Fl~-Q!*3C3(rj?a7
z%+4>=1xy^w+^Q__&O2{<H)GoOvn<1fiyy&Yc22|+;(GL%nE{HTz-T<e2bV9Q+ijnE
zzJ9-t&CPQFhv(r8VM-8iDVq-?hV6PVl-=mclYFSC!Z%bmikL`}ZmV$|6hUvHlDdLM
zY#}YHrtfxe?!K_rMvIz-gmq?pD#=w;e_em~@}*0@b~s(R#uy9+b68zn7mL0Q@Ez>$
zA<r|B{?S-oS;g$!0!E_~T)lER38;nZsj3R+&p(1zyB#bOYu3H~`fFB$hw+z|mZ2++
z*Is=Yi;IiRA_9ASax%n=KlCYdx^>LJXcI8`LR(d3g_}37V{|ga%uH|U`HW#KEG}Yx
zVbP<(q5=`WsFl~Q4ri{l#s`-#L02X6neNo{XIX|P&Oe2+D3btJof<tj*hgo|{K-Jy
z;?fF8V#dh@CF@O4S;XS)TQ_lhe1zG-;MDV-J@=@OrJNQY@<mgK8FHe4ctp1q1cEQ2
zl|jC=WY^>PInrj+>gAnF;b6is5>r$<rl#*HuLnInrxKiLfR`e!t<EfhD<Hbae~y`P
z>Aknn@Asz!aDe0EA)b5wMZ2Kc2Lg9?wlEowyl-ht9oYNGGapA)Y3%ImqAVxgESKli
zT4OMn#p>Ed9h_0*E32+uxq``fgxtmoMxzm)fAJFl5e^OyFqwq+<YI9`WH6Y+%F0@(
z|If3iiYim8)?SKm^Tu_w+Rf{8$7NaJnP)zZs;t8KvdsJX9<^stdaf270Lrq!2OqqT
zPN#M1`PbGq(CPO4=2Y(52-w}-Mll(OVwpxzGQ-)kk05Wg;<|4FRIWUZfv6Tfd%HVe
zqoXvOyq>wac`PrlA<Oc>e<1PxM2)JvI<V$q4rD=H4&6!qp3?mLRM#f*=P3lA5o#UW
ze7o!ORiGdQ7B>66C{T^K=iw=v{XtL9HGFt5Lu+HpS7S`NPkn%V5YB0YlapbRCd<+5
z&0ubR0h?zwF_{!NI6MR_GOgR|VR3N@`mx7wd~}GSC{PpyHa8zZp0~klFd2_(!iFr5
z@zBhuw83C@0W*UE$|}@v9~~axl~-P}K5M;DH#Z+ar_)7QX&fHxV=yz*IG;Nnk0<!?
zf8$3nnH1jSbmhMixdwK4Y~zzj>G_N?Sl>8<cBdPBM7wz;p`_aw8gUK#<x7`vGCa0H
z$7T(GtJTKF=2>JmWylO@s{DPIMIo%CCN<c?!V+d?=V7!7MKlP(?7D0w2EpX{^z#uB
zmX=pAn4R_XVsdl({5ZMVjM%CRyoiB|z?u3!5a-f$Ocn<pLHoekBqXQsaS6{r#34-=
z0n22HnYkW46hp**{wcfq2O$?fwLI2I)ta~fo<LDn)Hy06=U*)?uXv5Vu&{*njWZa`
z&S86d8{c~4bsQb;L+iki*X#GOzJ3OeK6bt~-9LCA#vEbu+#_grI$$=K84S?t^-)y?
zQto<YgYE6x_}bUL>bR3&jK=QHHd=Y+P5FL*22VfpQHvB)n4e#;X*N9_UP-{a@4OAA
z@~Ki=DTSw>eg>Uh7eoq6%S$*J9!!O68pAj~KE}7c`HhJGUTUYM#bum5cg|WdL4%x}
zoZ$M6YhKGuJOA>^D&}VA1GZg6p0g~&U@-93QFHzn$HQa1`Np?URXQOBt$$xwT*70I
zJz*`p467@v*uH&p>iJxj=J4<+BE<~ko`ExAeqjOUpS+ONK{)F3xMGnY`W|pxbR&h6
zubA}M{Mv&h5EQG#DxjvjN`e0B^rk5E-8AX%OBb5Nhc`ae#sXtaR0lX>_74d)Wjy=b
zi`d)Q!rJ-<mRDAB<;oSj^2#e<Q$cHucDsdEtL5RIJKMLhvvnKqzSF};KlUsxJpEB<
ztubo>IZ6>078dcyV~^w3jcYhMI*j52d6wb$=n%(8htVvyS~<Gi4$88`^2#cneDVT1
zot_Uy&M(a4{8JZk<?_22jmC{MYpd15jqBF}{g!x?MNwjIZXOpdUi6#h+_^_#bcGw&
zuc4~S#PlQ_?C)V`d#kZ#*f35`PVn4wFCfbvi_)S*3On1|xOL+?R#ui9rNgkAc5Q7P
zDz|_jj-%W}3THOYVKN?LYwISeN=GO{06082z}D^C32k$I6}qZ$@#&A&=DcO4SzX^i
zQ53j(<ub~0(%29?+gm7#V(JEP;-o4oyzt@=1&!%Su311<F|7zHSPbcW_(CH}V9N#(
zF^SAP$s!w2;5CqAI?E^K4Y>1W{}5XK{!(0#j6_l$VU=kz7io7O4DaV#$$9qNBRG5Z
z941A9x88aS<Ixaj&TJr48BR`yD9ed3MO)}}IxxndEGvBZi=W4n7oNt`A9*H%UFLa?
zGn?nIv2hl8MyRR^S{o1|qVbq5)(W<|fF?`K*xGVAvw0TFD=T%GXI0uAqJrs`5+b@%
zJ_b77E|kUE69MgZ2ai8-0gpfa6bx%Y*&Lg_;`E+lUn#P}$PqvopFdw+UBhSo&0nm2
zeMzz@OyzE`@3H8<E?+>HJKY|he&*wN`k9Zx=*kMQP(#kLKqkq16DiE}XX=_CYx;IO
zT|Du`Q+Vw0^Dw%A7WC9kI~uU%E98hn!PVzvDnq-|3&lBzK{kYDzCLwDBCCf(w%IEL
z0h^WFeRAD8U>FodU3erzkE7r6@rS#-=tF?p9srZx27D+4Yg~Q2d?-YOEK3Oi>dmQ?
zLc7z!4}J27LyE|jO78A%W9#-U93JfB<fNwQcEPK5dj*%?eG6AUcpuNd@I%-<a~7>m
z+i!X&a9ZsgEg40YivfZ8w8mcxHrt5QqBeIso!TUCw>uF_o~#idkseD$xJ(1J+HFYI
z80V9wq!Dp$-Vt{gXtBwBdTXW+=6?N64y-PcJC6Y$>;f6V3S>)5MX?83t*E(2oNj`z
zH)o**jd1TgTTY%KLk6^3-eiu5BAH_*VW*uNraB=L<8dP`7GI~o4#XwW{(ch7yM$M}
zIjjSvXj%sr0Hg#m&tvhU^xoa~E)(V1?Cjz_Zua|^mJ1bD97+TUo{UfuTDr86!@^72
z=9uYJSrfj(>|9-dGCV%Q-tG>zwr*iOI`I;9X=w?EhevqnD__K=<yAa&;UbooSJCNq
z1F4`38giV{@l3mj%{sZs1BW^Q&m(RE;cJ6MCb%$e@dfxM0c^SRC}~n<tE@sBIj(Es
zUDJ(-tdpZaku&Q(o0`=?uGv9khNfvsc_ez+xz0c!YLYl2=A?`3?3*^Ktn+ulvs927
z6ZrLI^_xl9eF+33=)~)5B_#XS`~S_>R*2}kBC^pa#b*LoM*woz_85>bTF<EKOO8c$
z?;g`~1VZPr$9}%t-g&pUdUfA!I!9<}?!f~1ULKo#nkPcSl#h7XDbBOI)QP0AmhVep
z;C$1;>>LI&vshYQ!QsI^wr=0V(a|BYEW^UWJj$}f!Tt`u@})lmNMUtl6|-}5btTx!
zDi#+P(Q3DA6H*0eRZO&?0BB#r8%)70+#3t#*a#L%&D4#<&LjL}YI5F(2AdQbATk=h
zsDvwns5Y6EppG^%C6r_WiZqvi&pIkGpX)|wZPnzQBf-*(h}6UdX7el$2)8L|FeD%u
z`OG7BVJl!VikoPp4JU&eBsa6WHWlIQWdn<}i3lYv%>4aI&O{^Fa|HFY{Cu>9qm&}u
zwIOge)Bot~r#|^N`Nikohf=#}wN6x)6}GMQ_s@Pe<_p`u`MKZ0R1!<si%s;AOE-hC
zlPq~Z1mT}*KuTlZ5?-<o26LF{53s(miLxlLb^9hxPEJr16D%w)p)3pN%Ah|p!0PI1
zC}K$?sJ<%-M`=ONe5=x0C#Ut4CsYXeRrdb5Bi%6I25G756Yfkz2Zv3YY<L8j4yBr&
zRY&@mZhp*kjyTC#=bJVtYSzb#hMYc#l{`a9eWfC<cSJ!k`TWxJ_%s%h&NDzv^(-4k
zI6w>|V!WBw@s^TqmeR+U^&HbQeK1TYJRA2+(%_z*Gg7KS@)FCpm^1J+XWdz$1VDAW
zAK`BIqT6WqBW1_T0|38oub}`?MR|A@3o$jTqQyn7>x^kk5{VK;a17B@38k~jG7u}M
zZiaJ@K5;6%R2Dsu#81mks={Xs4I=`7TSVh*0w26=;sBS6b`V;a=7M6!0Z$>KEV$HV
zeAHz;3^OtojIR{T`Pf3JC&}>(l1fc?$pg>9Ooc7WR)|dYc%#SeK!i>cgb^vdlgwXx
zQ@kOV0**m$bRvq{QAtE6jPTnLIPgM4isl+%!4MP#h3r%-lniB_k;$PKqntj6F0sbw
zghd%4rovpW1LhcccUsUchV-iY8MHH1H9*|Qew?S852xlJ(a<OjjyO<E@-G*LVNdR_
zM4?35MZ~c2CT$3O1xjJL>?wiodZtrGLg5^b;m+-Y(>w)k8ErCnnkC748lkWljSfA`
z$yqoCIR#`JMT^iEd^iQ^`2^AM;blVx1r;hC8NTj2Zl=*}!Wl6GyEa+iravu&7z@{r
z8hLSQpx|UGHxeia&w^xLeww9|@G+!G6i3EFnAU1L1ujj~(CitXj5Z*}K&E^b;UBaY
zmsQtp_~S+%KH#W@FD5q4Y0MxIsaWzbGU*G;l2KANavJxD^X#};Fo~6&aAPaUB*irw
zhRQ-`+Z0nR;|RVvqD6EC?r|ibm}Cjq=(R5bv7GQ}LkJd4&wY^5E+Ca<QMK5#CX?y>
zs%V48&qr=h1&Z5pJAtIAX{CuMjZ)NT65%reKqIr@N=o6a8^QbLf~GvZeYcAj#2b~P
zjosMXs@X793dtY<$k#X!MJ<9ohn+E|4t@enmp~Gc+M=AOpWZZkobPBxPZgy1;}}MF
zQTMo0PRk46jcH)&n|>2DBKk7O!6ugWGIbIPCJ^;ylZ6nzryZLpr|ifirOOe_G2=J1
z!-u<ks}VfpU<PHO^J{2(M6qdXBf_LYA3d+h9a{<*(1C9aB8%Vzi=Q{UiDVzSh=dVn
zG@XpwEmNe%d}@tDXBKdiJx6+9GTkPSs1bx!R%sj2%{P!hA}%i_snP}5CF%%ktgz;&
zv4`(0DJ&-fP2Ds>u&WRQ@Mb$jE<nAp14q51p00!SHX0-E2V(sSLFziz)O`q4lc@3z
z%ATe)!@OU|Y)p>2$6W>6<1U}(iG<XebZj{3za7(C)r~9IgG#)KltjWMO;iMy-~cR9
zqSdskWtI&joz!*@mQ)-`c2U;|K;f>>nQRV8=#nr|j3PFjz2sCbif#f;l5ck%Bei5v
zOq9y9Kedf5$fgnAtxEc}+X!1oYq7JKi~y^ImdkE4c(M)-bL9EgIS81vS)*(q>beYp
z({@3Lsf}s80;x-7pas|_weS)zDrkPuz$5e-3>|-n#atMIhK^zv=@`MXi7_0q*`(}x
zd%CK>7x>M6JZ7H~^s$8e?qZ9*1SNvdh9MP3Q{ayhh>_-fqm-AM(o8l?G!386Ei405
z2dIP=RElD1<0OLZ7qIs|InFpF7EH=}ANPi1Ar#~4LMNmo9kR<+r!Geba3(ZPY&<7^
zlS7cBXt1Qp4vfPjAgd~}pi<vg25Xhz(+`b2t>&{N7LqI?4K_LfCgUbDyO6f<N-YSA
zEVyPj9r7t<7SA`7%lf{1L~t>-I`-oNy&MUeIOt9>j~--oU$d{m9n*4xX_q((*?ixR
zlU#hWU3C0uXX>iN<P~NPHzW8d@u1HsBa!4B^2E{vOd*v%s&AvvPMVYOJw38bXxG>*
zqyV&VpdgzIk5F4;kt-2g^^3v#NTJP<l0D?61U#9hGyWpkG=5I=yx~$!6Utr~m^c>V
zeNVxI51Im774oYI#6eVv=K2&&H@jn0W3a5^Hs4W-jc{r|cb|XvZMGS*D9#skf*V;J
z|J+5(EJENKkSw-HdH$zZ0kSKx-xYKhMK95flsvWX_wf`U&Xjt1w(!|3L{Ei8&Rpc2
zl+RzL|JWoxKEXFgAR;JH_dG2SD1&$o@#F%Cr0PJPvcG34i@`oou3E+TXsK4kCUy-B
zWrWx*Ds4=&SG=v`b_A1=R)uJ7OcDdZQAQvtw*`ro$@ZFLSDk4qjDk;{XBm{}fk&cq
zP6R-qcx-mS6A!1RNU6zQd(!lE3_<}4%-;I*eznKx3u{h=96p$*b_??TY#nnCg&GbI
zMw*%-Lev>Z&I6Ov{=)J|sjWBx?r;DRr420aF$WG)mgr}UT!|LhWeKh-%y+Yp3N1^_
zw+V~g4E+{?ClkzMjHO<NrCx^RzTjIZ3e2`@w=y#o`Z<BvAlD_j`Q2R(C4XfOeX-Mg
zm79FmG(grUhu`D=VpBrVp(_el^yUs5!kNl7iGuRxJ)_p-e)B7eembH97M)z{YNxn)
zVbn>)H5yQHT1rBMo1Ek#D<Mo*M?Ar<v7y}L*6){Qs<MO=AwL}Ka>=Rgh#02@ha5qJ
zOoMV-yDdy~*&~e`=_;1$v!Q+KOofUHfZRrRsK2zMtxw_kUhF2SbTcMS{YiA4QbB0>
z?+C1bVNQH)@+4HUebzJ{0H6L%Q+3W-vTVUh2()1L-dlQ(%M!y^Ucujfbc|1&4IGcd
zuf2@%JMZ8h{_+z5fNF0K%a`B4fBP2(_%A+|<3Ic40=n<Kj$d3U@ppfykAL!u8~7*x
z&Us`6nDH1VU;YyQ$Df#kIXuMkd+*`D`H5w$6o+{J_M7<kURa)*j-OsU6D?>H69hn#
z{3lw+NybcpjE*H`l&|L6_m*fVCH;0ukIYeOP?9OQ9J-8fyJm`~cV&rTp3-!et%w2(
zZyf;h<~=FvqsAI0?P{Bvz0wQy=|l%T6<Sn6ZGEKJ2?z>vMrgnT8uy$w+?@6qB<aDZ
z`>hKQCYTFjn*F56_X<R8D!a^piCw{I?WIK_Vu*ck0$lJBbi@Tw9B0-d78^wo@FtC4
zL=atT{mH7o1Wj}AF+2OJ_V;mN4*19ubD%=u;(Qmk$H4#hio$3z0qYUiXiVO_gun7{
zUBn-}e~jPxoiF0={<R;*g`fHq{_#ui;Y(k83%~T4=kRCy9n{<&1Oq}Zn;<_vz`2bK
zPtIv<_6%m`x;U9krlk(m=|Fo2V{<*wMbV7Z8jj=5h=&*zIEW}WQGlaD{vJVKWBfjB
zJ-&Qk!PpbL>W1Z-2zl;glSQPFNhIFUS{Y+JK}QtS5g;L7HRh|s!u!E0kXecZj3NSY
zsiu(|SZfoy`6f`#w1xI*{n?$+ia87t5VgYwObt#-a7^mQ#@zO<MnQs-<aLLLy$r-k
za7|(nQk>#rVLkdaV>ndeA$Ei0Gi&hFA&zG-$F_P@1m-Og7T3Xd&BHS@RI7!<vBCbq
z0Y12V3!^vR#HY@N_zde2Oi@4&hq!RIi`REc98V0kZf+qP9bx{)d-$t==_B~cVGCcr
zI;z)Os|92^U`ALS?_%ST1^mHR-op!<EevK`I4R2TT*5_~Q#QPb83ci-gNL@-yXJwH
z6<#ssS_xVpXR2zg?E(&)-RG}eR}w|YEq64XQ<Nml7KPi>wr$(CJ#E{zZQC}d?e1yY
zwykN~xBiE_Rz20qtjbVE#M$3IkwfB{!rvMVwhD(1VzSJKN>C~`mMU=-pSmQQLYq^f
zwvCy{A7X9*cS07vmm7;^;jMf9!B(<56Np|wG_XXDmY8~o9_IsJggiGJzxD`Uf}&^=
zsI2IA6dPr__0(_&DbZ26CC;ix$VEeWeRUe4TqIb1(`#PzSgJB<=$JLeoVX5|2V$O@
ztq4W7SJCp92N>!ucL8@ueGt5Ds+_VMT>ee({+6A5>2m)>@$h}x_V4?!{lWR^>_L7n
z+d#bo&No;EwS#6+6?v-!NuOCzGKbzMU_$^I$F1x09SlWXy-hU<RO;a36GL&zx)IIt
zdL_^kg24g%{sl`R#zjY8RF?fno2kW&sSG3?*gn&MGg}4X@0darShwQ(E>5L=Xj?`+
z84-*@*Uwgq=PZ{{Q6_I>fq+XgpB2jQh^CseAe|sZ${s+PDH&`U5+Sc;^{zFD<&|=d
z`hOO{P&gZV5-zWCKAW@<p7KcBD>5e3zL?fvqRLR@mjfIOSjlXmaz%x6rCc~$IyPrJ
zC$;E2*$a@7`v@97)@oPoK}CFBi3_&su!BJzq0+21w74FGS<{~rTgIS(U`l!a&b0`d
zl%UIhBuceZSqcNSB>R#Vd5UhzY(05<b>GJi9<CXOr8u3fF%&2+XJ868E_W+iK=!)p
zgAX*(?VSn6zNN8;+S(dE*RWy5Oz(dh7{~7V9p$JbJmbE;d_Nx*_~Hb%ZVna_2d*}~
zJ-!Ec{a(~u)q6!s;maq3C#5Ot#E!udU|ljKt;#WNs4`2jZZ?TZGi=<>$zS!X7pCqv
zWHLNQmawINqx@Wd+DmAwWM3l+62-me%LvS0LJ!7jS=(*{Dcqm8NN>d`W^W8Q`qf`1
zo?O#`ut+T+DK-@hI|z4(?rcOB44)6MfY8_{hS?z7fMo?xL(*ZH5|}jo3W*XcmIIkG
z%FlzHzbPv{tPPjLJ%ed^E0ot~pK@4{k~TFZJ?=cSr#PQ7?bEC^KQ+sRpz3wT*V9PS
zj9abCH=wvY{PAP)sodJ>=cvoy`)m~c*~0p466lUgEv|m;P?$QjWr@F9XYn|$PG@ZL
z#qxLbgUQ#yXg1Ug)8+}+(7HTq*^GJ4g!^0s-12~f6$j(29?04v;1ePl)raEhvhE;z
zqQC0WWzkHidpm>ziDo-AZ<c@#6iLm?R^uT-7AV};lqyRD4^^6YbO?`IxR*0qM#tyE
z0-n}bA3}uO2<fRye?h>e#R+#n`Z+#QBs5omPd^dl)S;;-9i%X!Zl9Yp!#t&k3l2%!
zM=qZ6x|c_poklj?e_*KZi4huDj=Cy|AzH6E^k%33Fbmv*rD^WyETzwDYUGrXFeotm
zgT6}I;=M5k@-pCZd|kLKd~+WCItX<buV-7#_=M9PjbT6@zwiHQ^(#CzNN;oKN{t}D
zOX_TP*5LGuJ!+KxVEc>j^SK56J(wQ8uI1~z>omX5{)U;mu9=Az>g}F+hjZq3*S{rN
z=GR4S;4tsKat4V<^QMcuvpAQT7~B=oTkOuiI3%^1SvdyT`?b~5vi@0kRGFh_3tY0_
zT9k*HGMu!?#!v_v33`$aih0Mt$?_Q!;u$IsFtk1YLXy({A(N)2I*T-i^vFkEcUh-5
zt2y!J_bd%anEr0Nk+#uo4Yq_XR**wR4%U<9#7L}Lkm;92Zso0cm!-Ow<M_Kt9#Y?m
zp6HA<kX3-$eYrOQ9oR3y+K{kL(t&>HqWveSoasnWsRC?%oLp?}PPh2!pYrP407#fY
z0kr-Y1_lsftBqjpJ#5V~nhmfkFb(FCUGU0^BM#8Wozc{(*<B#H!R(AHO}M7c@T7J|
zoHsumodnc0C>6-%8Z7M7{7CB+(&;H;g0b0=COL?6<2R4RiMVO%%L{3xc))Mr*DPvO
ze{azO!`jMi*}jsd2<&Q0G|eP~{u0;KBMxm9QKK&bGK)eg5(J6Vt7fUbp%{i=aDHaZ
z7G%V9z=+G}&=Q&PsOuQVDK&yQZgeA%KvAb7GC<7AMVmyiWyD}4#IdqWASg@(2G9+0
ze_#TC;@hD^BX1T07xy+6bQ8wpF^m(|gURXAC{bL6q{erAC=i!|qe^>?=ja1hsH-Mb
zY?tL!z>f@Ss30`O$m&73$fwApNP*$UXu{pyafs)re;uXi6kKy_7>wl384e+Nb|eIt
z>1hb7Dzl^%m3bEp|CX*B3Ir!_g#^<<1wKAyk6p~!!ENy?MSe*;$=-gc3>*?l(S@o%
z3!qH_=c1i6nQxKbuRkSy!*g1hNQ8wZvIF6!U-m_IqpOkdghQRkFQrLxOA|vT{Ijb3
z?<W{|nA+&VvDrwkngTr^SH`XB?cvsnwTLiKyckt;J^{{gCX3KAT2@IKOT^6AU}`AB
zU+NK)y=$tjXne+)(~g>QO3D74i7g{)A*YFfT?$N)F;lg~6IZO6W$Nn_>ViQ^2T3Og
zaX)=qD?2T1sqYAiIWt=@iM${bMTb)&$GcWqp-c}43og#W>+69?pBWpvlK4jr9h!{O
z@6=nOHW(3Ai6vQD)+S1(n5c@T7~fTy7ATIaEFv9JQSF45FCwf;32DnXg1@B-u#u?j
z!x@tDHg+LN$|A0l1V0cfZ^tuXg&PaqGM~F=&Y~tfaD|S%pkZa~SuCGz3Bp;Dm{AcM
zC=Dyw1A(1qR2J>j{mwLsuoF$ISQv*(^h0Lchd9Ni6n4kTAg90sDHv^gGl~PXPm@|3
zv;s##h(7BrpSsJ4;OxAnh0Xl1Lyk~XQM71|iwYHXp^M{tH5W!@5=rdC36RQIC$DNu
zK{S-C<sBqO%W94wUOH~Fs8vOGP6&!NshTb0DZ-Dc<Z)Ke&O_dJ=#5u^*%%*1Q$lgP
ziy--xFa*&L%iQBNQM^}i0=lX-+LJ5y;Mtr>XW$5<bcvW_JZLcddxvd0U)<Jz`vCFj
zR*6N1Q3CQEj76#G4xBBkWfVRDm>G3>cJkFYgouNh+20yBID(3CFu@WM9Ni#oFFBi1
z?LbZsNi^BEEN9*B4?27fC@K+XHsZcVp@&YuA9hqMXnBu&-ruCdH95QuWK^4Q<jr}|
z@EPDLWTe;))rPJrDmtMR@qb-bm8k6wI)8`Jrn&~uW8E;?&<>{t9dMFe2CaX&;b?XR
z|Jf8<xe{{SAe@I>>dFz^UYU|@puSE4Kz9O`xDJOmr7IPjN_XW3=QwoUP?o0%`55A|
z1sSH)dV;)UN?E8TCAwV72O^$}VQ^!t)l~@&EfVKF5%k$bd$3~d!R?em%&WyQNog}C
z;D&#IrAlIQJmrg`V-WKCU$c(eS9mbVu0Qgyr@GXt64RuW9UV_oIQ^0aJe7YwSzj|s
ze4cRzK-`JRHHUC^G36~P<{Z9=d%zlMv;4TBkOu{c(u8}Y7Nlg3$YeMMi^!#*`qIY2
z5VM-~K;&=CDw0h#v@r{KGKB2Q;%5vXuH-3HC^w#J8ga>BW9a+%CFmvPIZq%_$JhhY
zQn=!%{1t-4OUG|lW{~99ZbHw6c*rcmO|-Wy9R?`h|2=FlMT+K~CNk^?apvsxQ#DgP
z!AurT;NH_sCX{F*s(Z|z(}gH6r98}2QfVZ%yZ}=uAbEmOB=$y(H6oQX1@gH?H2P2j
zS5OonhQNqAQrluPnM~#5gE*6N?J!4a_+R_Pc_f#giS6pB4EwJ88XzLqA$@+H;isH!
zU%y>6vGy5eT5EuX9}4Om5s%+=-hqV^nkWRCe05zYY#NU`eS{B?gyYKHVL9WCDA-%k
z(pk|msAy=>GHp^EbsYAZGZ4bU_KAyrXwD^pLw52)$d1|clirZ!OXw&&FlLVK{s58z
zu}uIK-<T|{mKD$U(=wxroh}GBWR?~YrwP0r3Rt`|O(|-|y}g0+I(`!a@Uax73YXBY
zZQajmfp^e9e`q(EmtkiGeu&f5Rus`oBL;AMF0<?QFB$y7<9Y8ZZeG4u{hylJJs;BS
z!Cu3E?q9N4R|i<>s-X$|pFRKB+ia|iVXLYh1S8NNK2KY7V!<=9umsz+Mfd*$$@93U
z+VxBoe7#Ta4d~vsr7XQI7I?P=V0orQIP|(+7yyh*)x!3+lHiNUCTATCC%CHW_WR?;
z@M8roX4KfFQ+I0Wu>qi@WoMuMc{^?tngN^rSIo{IPybOQrCxLmG_*o(fUxAaF@5|O
zkCnUDM+J^GGrHFU&T7?DRkekXb-YERlYvaxj=Im0?B8<vSBGV(N3`he43wY*YKh#Y
znFN{-Qhrac$*({R%s{M-F2|8tnX8*{8!47#WQ!@Ut`^jKewaVAENU2mPh=wl0hia>
z6Q>XVT1K)tEu17K2a(X&-)7gusi$He8aN3$svB>1xohX>CH5R)#+ImX^uX%IjP^}S
zRVv*1>29n$y2YSJM{7HVo>%C$+Wp`NysyD?xSU%@PJ(}@gi^>;MuTW?YHMf<1TVCZ
zHxj>JEF;XFyZprw0;`Y}^|rMdx4>iRmd3OxCGl%AVjju&{Z??eTygzF%K$3M$;;aZ
zkX4>vUh3Q0Le2S~K>$Rvp!9xaIsE}lelKt-<c+@9ui5U~aZ0V9YaaWeZM(w7D?@;M
zI~9|hOr-a7V$Hd>8_e|dT735(leV_IIq2aN1fapdwjfZtH_9@{lE_A;v-QW)*jBQK
zrFuC=xiEq4i$;)hQl_fJtxpoJQRrh2+I3bS5Xj2&Wmu%0`N#ytmQJYLfDLf1<(jry
z=iewYdD`T+zv@X_6+EGpxa&hEukB1Y<kBn70~S+KJfqf&7PovlWgzlG{KwoOH^BGA
za`l{$6vsW1r2$#y;6y{_Eka6DRRK8C8_;h})V1|>kO#z@?hkgeUribM8nRJDPAbco
z$@63A`-mxyZ>s-6h=&KE6aZV+$e|-;psUNg+C4(J2rXTmk+CrgRbY)j{hDJWq<XDS
z0Ko2n6VLxnxx&HDggIrzn`yv{4L}fKijz@vzV?vmbv`Kp0xd+aX3jcq_*IQ|yVnym
z0B}iOLHP|B8xT?Bm{)E%+2#a7ZL7gdG5>)-{{9%^*0i*=#%^}_sVnWS4-f$49HJBz
zpz}2}cE(Bl4v`Bi`&cS*N2ig#ZJbXrN~xemDx?BUF`1vvns>`;^x~q5X!Hn>oQv}E
zf|5@<agCr+1gl8W0I5t3Y*&Vl0D~7neWkQYFz_<dA#<Lcxf(Y*U_?Nw#R>rAig4Hp
zEE8Y2#_o>)h>*pAzxTCsYa#C8iP<&Bl0rnuH(MyzS3*q|T_P`l;x`P+ppF7*3ibrN
zA%c1(YS_4Q;dgo;;llu_jkdS@KM#uP%-O>ldU~P&N;v4?K2zA}=$VUmMf;5Y&DB-^
z8Fa24fQ7~-05I6DBIhL)?YQxy8M)b`Zxjr#;g<$2j#k-s)AoPE{CdNWkN*Q0V8-rS
zZS{5cVpn?uwK-}H{p~Tr!+&X<y8uA)`W{D!U%$Nf#xegBhfnc6aS8XXIP@jjHd|~P
zR)k6zGh^zzy1^NX7taqmF!%%Q+I|6feBM#q`hU%wIy{`n0nBHh0P?d4@~6^wg%=9U
zh`#e^$0R|Hy{_blh2P!Qn6fdm$o|J>K^D@plTrVcRK|#E=TD=<gu6c*aL6%8s`N4`
zNoEbR4SP1E4XfQ|2OH)}HL^|tQ+iMcs0=0-lkl(!SPh$jTKPho!eHGN-7k9Mgduk%
zSk`Ugg2muZssRJ53tcv+zL|JsDxOHz-F2DX$M3BHmlOTGQ&#~;V?|kV%=l3@+EwYN
zeTRtQQUI6T9SQ(HizsQ;b-uoER_&LN6p5QR@nXa&m^gAGF~X!lEaM*J?{lb1|D$q^
z3=M&;FaJYZKf^4J>3HAI4l`uQ0Uyff$Qlwt8=IW|sVQ23!U}+2z=`+XpRDIP>1A}Z
zw1xq;gNO^gX9<aL0GW_|iZ52T`|{G<-W~#jkw0<;phnudE<r`?TEtTn5QlI?g;1i!
zs+2OEmTcykenrk|!BsV8rA@}q5<zAs=}2ZcOHWXBKs3=l2yIjdl^_2YLsh3eDp$G+
zOYOdfXv3%B%-;c*IU{25b>s!Yi)GzoQtv9vFTeka=?iB)Io}Z&*zM=Keq?Th-;49~
zh<n>}QL*1TQbQ1pK+Q(ukJ3PaR#8Qh(lUl(GVr_rpe_yo#Lj_pXxt$JFqg@Y_Ww7c
zPEJn}PU#*$KxN6rmYk$cQnsh_U=<u(T!30PT2?O$H!q=%aQ651fO6%3P0GlipCKKf
zKRiUY9;p>CsKN<?Bph?G&)5L?ct~SdKu`>7lZR(cHImof(DxA5r4*Q0MK!W0!+@Ep
zzPXv08KFhh>G>bYkAUONI+;Y;j{CQr==&d9dqsS31Xf<`)~iQYE}p?c4-b!a;*O-a
z=64`1%lMwbp0y_Xmw!q{n%IfR(+S3Fe0<xn;@&`TH*&y~1-uhw97yi^CPT5_B#i-9
z>@AzTdwnXVW@1C#FP`7CySM8U1WlctRf;;JjwDK|>e2CTrN%LI*=D4*MdX(u1fz~1
zATcAji>|<aNA3?e!YRhZB_oUyiS1^r8880mWltI=D%G)~zWWLq0mqV~b4c&KEQ`9`
zYfP4n7bfl4^VNjY1JbH=#FELWL>R<)GV2k49&CR;Zp2o6=gnh770lS`V7bgO56d9?
zge^{DPrrBmLea>`x$q=PCdiVK2sjbrmlqdDiw_oROmXBZOcv=?H#IiOQm2;G(1l-G
z{NqN#Qy(^By1%^K>h=vD9`@8(B|?`$R3PQ_c~sqS#tR!#<`bk7=Sy51=}Hh8B$1Wl
zE7GgEeLP1g9lklgDsF0$nf9kcVs1n{2t9!DXKgbSqttrr7QP%6InvRBw2tZ7a-O++
zI7?}WSYg+|Zc#~nC6dq!9c~YF57=o7=Q|)?<tQ=cu+95IOa?+!`HV=|56z5=7XN_*
zjUzV7LMk*3UrQXo6!Gs0-Hih8%9P(5rp-AMuzB>_2x@E2u!wyk4?)ie5N4;_v=Z78
z#93#<7`R_>F3XbzNtkY(pI@)sGIOnc@7p5`eNxS1pldM3XorLj1&KRMh!{P;xG;1y
zBys|Mk}IpJiIwh<EY%^*o!RSzZ_!FUE)}Eq_YGX#{e-{M;2jWZqn%tFY@4|hW<UR<
zBz<rPw%K}hu#pM_LD*`3^L-**&ehw}qDa7FMuRV04JXF6zLsVgQ7MoER)nm-ODHUt
zPX+?pN9=&E7CopK;`!BmYE=Tns2yF~DstQfG}!_h)8{_aVAOgV8jo!q$#_`<;Njwj
z*V53iax*Er7~!#GG}<!)Q@HK<33;GGXtWj58CgJGwuCSTs^wB1ogT_N<!voXN50vI
zLlnk5Ev4!Z?w)Y|q#yXj<35V)%>1)Gs8or%RA+EL+&~L4O_U{-ELUD@jkO)c#K$Tx
zFXzYrvLG<=un3W9TBN0&@@DZDD%4QK866vgoXz7~POxIdA*uXVt-E@>muT$b{-RW^
z=J9yTA07Qb%cpPR_KszIh(ZTOV*!zE2Xm^l>sQs02nQGM@OJrdL4<{iYu5@}i$#Oi
zjYMpOQe)4pRO~~no#-*Os3@I~*P;=?!FGDbt-cEe3R=UHrzVUBR~zjREVtX+M!lx2
z(XK{$p@s5%M)~)WbLp~$+$^|&Zgpkr@h^JuPQ|<htE72jpqZdI>gtNxxLMQCfg^Qk
z(&^b@k}PTD@FD7?n5yB@CELa(PXz~dN|e~bIji+B$hvHrD6vqb&NKTZW{Xy=O)Fev
zi4Jw5WLX5oK_Zw*;W=;-?5teTW8>4VtqSegA=i2pbpp;m+{C8sR}S|<@H$w^J{SW*
zP4R5X;=1tF`<(z2=JB~X#JEMp3Jc;yQgj7IPR^;@GYv{G!q>Vw|A4SVMS8T#<?6Kt
zQkm#z)(h37E8EBCXC-xw07x%71fO%jSW>E-TU=DIR}g5>h!N%Oza8Ved~;nmhlYW9
zh_TIuY`@D`KO|0JE9(uv<eW~P(>@wkk<LyuMobGq<RmIg+}Yen3&j&J=wAE{Jzb=A
zf#p@J6=GH&wtC3jQ?df*`Bzg2ri_!YHtgB^kW1gAIMEF@MYmJVKjaoyH)2j?>#x_a
zQQ*tY2Uk2f0Wsp=ubCH*r&lOfUxClP^glJVw*ueSy^t|HEr(YKem_4)(`~!^ef@)<
z=>k8>PFGxNY3W>E|5W2}eNzR#k_C)>Y;vyi@Mm(rBK%(nzDW?ScMnemKA?W?^}npY
z^98;^cYH2+aJhX_dOxEDOkG?6SKIaUcm(dgU-{2$Y+(P~Hs#-b5qx5Aw%$OFcnMRR
z6Y)tpiMakTIP|v<ooNw%FpXaCwrLpt3wDK4^K*;L_jji&R8fDj^{*pjSao%;1$8R4
z$l#X>jcL>{uhKx@9;2}_%FyARB9*z{g$c8iw>L$r?ZdxwRKOpY`TC-bI-Xx$mG4Jd
z4w%*>%;0i6;chET66_ywb4QFGwAae``F6kgy3yRcuAG+!a*5S1&dze2UN^`B9?;|6
zCTiRJC0Vu%wog)E2eeq$ehG{Gw?-jXXUTC2sg4lk4G)prqO6E72Is+9oO>EM0sN?H
zM>~Xst|}BW<GUgl!8uH7kle%iA{BNE_0P%fr}o4#v;T{`fZ0o4H)%2y|JM<2o86AV
zZjbM@vVNus#Lv%%z$=lv-7W-J+~OXG|3e$6|2It@1O4smJPDvJUh{vZdxsN~Xwn((
z_P+71ce+Qvzdo>V@Q%X;UfJw+{uX9<?|xmsP^we&X8DXYl`HdlerE7_KR5b*#GQy&
zDG=~3PVT+i57a(uKi?V_t@+pe&=M<)+aeYYgJ|X<1;e5+m;}_TRjVFEf@z0|1C3$a
z13HP<o1dMe84WQ^PjNBIs3jv0OE6;6ajNOT9i}hn*Aj21ZM&?SDsyyY(E|neoyJyi
zp!6|yar)zTictJ;-0dV(lAg{g0MF4bQKAC8V#iIOHybm&cq6wAKv%AkL`_OIi67*`
z?0xDHzY;42tR6!NxRdFad!M_%my6(K8GLrVQjbWqUe+-8$iu`^uYYcOUk(mHI-cQM
zVd0u=N97kPQ#gWRn3$Od&c-BJh-G9NpSFEM$T0Eo2U}_RKaPyy3AkmslMO$fa{-xd
zoSutcxLhw_@pN@bQK;l|c&C5$`s6>gsKVp%$`<c4bMi{_;-5au&N$xA5drGqTs91k
z$ITJ2JI>?v8!8+OZ(%C^p32sBL(HT3x#Ro06@d4`9Ja$T0(A_-0Y@XdXz5kTRc2gm
zp=6F%{#HHjpz=>S!+@yN#KIz^wibV(61B}v&;EIbsA>3?k}gwvaeG^&ThH9g44X=q
zx)k}&BPe&%{WonIu@vQZ#5thW0LI$BjSXlw+WIB<XfdB~<*#mFgfIKpth0GBCF!!V
zJi={=JCB^Z$g2_-TaC2or6rV$7Aw)wtKFsb4y^Bg3f~Do&-y<xMvl71dXTCkm)O31
zZZLGu6E9H@5>8=*Rb}ArIeirRv1zPgYHJFFpI-g#Q_F7ZP44PR`W&~d?xoR(+>rCU
zKo?ICEn2yv#Bug&4d$~nE-#Pl3aSdLyAIeYRcKZ%*tM4nX_HJ1zQ6GBu5dX$BBWcy
z?ez)1K(#5+qJ3`E{ZgenJiA}6Hsf8$ib;xN>~jltED|P<F$s31>C+EW)t{BCIYh9Z
z|84&2o5|$?OfW_JtV?Fc3OXqywU-`ry46{a1pWh)=rye=3>td}ICiv7hv-AlxyC|>
zh4FD#U|<B}_7HL#bU{GBO|m1ec*ac{U0j--&o5!9_t}v1&R)=4<;b(i(4$Gfc=dHk
zROsig?zT+N%5N1&H(TGvcYo;eeczcB$O#hU%OZx2qJR!O`c#zROlfYZ(4+S`>7Tp?
zaV?=NST9EYY*3^wS*e<t=k0UCAxDymh>*a-$9mK)8{F@MUV*{Q9eWka+ba-wzg$tE
zM?0P$c-jC1T+SZ6wPS)&m`0jwX~#&?L0jCaPTEDL5#_bEkl(lou|CL20^G`VXjbMa
zB#FPSp{_dWZM0$XV9Q{HUMnDLyASKz+XX9Cl*T#{{-{-<(E$~$k9<Ae_)m2S{7}95
z<XN>${F{PR>YSRHAr2`}s$~4K!6wRjj}kB5ccfO!%+D|0U((dmg#bR5&dglL!j9!$
zWMR4JHZL=$OqT`}M@@YNHh`T`#+G0Id$y!5Hdfw_O3&&3(l3-*x@8-Te(inNBpU1Q
z`fs}wUJ{WFtJu6Xqt!VXLYk6^M9B>&xoc1Q^kOA?$Eyj`<H2i+#<0npxHx&lAP?St
zfO|%&T&cOO&3meF#p{aPxh7htHdee?s8R)Xf>kDAwocie6;S7LL@_VpZ8lgXD%8vz
z9G6`C5b4iv4`Q^F<mk~z(ZfsRYyun-e!g&%jc3>AWO)_~wuh0Zgqk`T#VWKONjsR4
zqDi8}<Nu~uBTa&GyI$tjm!~Htpxtk_%q%P-c6N698Yc*Vt>8JnL7uiPRE_Fv#r`!t
z9Sk&rKxFA(w`GmP5W!ki(v$YH#Lj{92qU_V%%fU-@4ktaOCS*3pLaCL0dZt1;#9z+
zb}f|BWt$oq1@-p}*=(A5y<=TkSO42=%ZI_}5e7ma*echmakyB*;{SP6#*Q`1e)(qD
zIlfIK89H>t=gSe5&dAL)w6#s`_SWC8X6OY1Zm~+WR%d8(KDA34C*`oyfziSY#OAoj
zK8E>tj-{+;K>izoJ2k{%aMF-@zw7ep2i&qEvI|Im_OxK^60+{zo~U<@^5}iSZmfx(
zR*!{=S=3z|{r%0K$D3(l=SCiZlSEV%0gi`<x26U=iL63x+S$o{etD(*rw*}S2ORa^
zR!26#9Sbm_b-3TOjw&Rp(4d*+$^EWTix@q8e1h}nxlXD<+0@Y1K0IGSNlQnM9L<K|
z>Ft>*9{&ZH$doFZK@KL4k(*c+0ds2cK4XI~#h95XGvHMaD<0g^0vIUSSCX{&<xNf5
z07vej1cGM|rviPt@lT*g3Jn^dBX)Op!@|YxwJS9#Fmq_KD99Oub#5>mc6wm@_?yvz
zq!V}NGTox`-KmQo7Ckb;lN4gmA+ei;vNQ8e+%F&#c6h(AU*X~9RZOI~e*hiz?ID`$
z`6sXL`b4+t#9gk|GPCkd%^y-|XleqSfSX(0&f(i#FAfJwmH@-3=etXk`Jw`#;Pkz3
z*}Y=+_5up!_{!Ai?S5C(BqYT-oStDug?-7R@fq2<rk<XWU%%iRjZf{!33kkFZP^Uo
z#{*1PeZF%~vNY4`wg1lotfA6=+patQs4#?J<+kqQ>S>4fAWyfZmM3Mo($xMfo#!us
zLVP3C<IXm<ut;&Llq{a#`|jR!adS(OH)pkPFUTA}-iV|?X_w!AXqH)6-mZpaFoi+g
zZlsmZ;~zX4{8+MbrPq6n0u*jxb5o*5P1WnWwbf00WJFcf>FCVS?`{VWQwe?XzoYNa
z;Q_2Yl`11_H%*!}A;Klj&;E%^Yv}8n8~Onj%rkv`h>@a7a@1iE;T_JG-15aU2Lrq!
z#l|KJSb&QGZBCS(>hn6OKexPG6CoNY8YD_ARZc<L$ciYNpM8nGF|nFYsEILMpycke
z%mk~;Sv0CG*1gwq^JM<9fVu^SZk~0tgt2T9lKI^)6xaPujWLsddRsUsJ3E!YfNEiH
zF99j^(+9L{CDuX_cUbY;%+EL1$S-$r_lG}HG-|P2|L~s#0b=y%+xJUvyzS_Ehd09F
zY}ptFG%lw@K;8~N1jK5)_X~WfQJzvmU*XLc^tehEi@Dz6XL>#hJAZ#|Zr9n_*-+fD
zrTr`u509L;MEGtnxFr`eq%sp0$$@s=Xc{SQ_Yg*Q!0WMi6DSt;v;9!>VzSg<{y*cR
z&l8gg;Hib??4syG*O}n3@Nmhqb%0T!q3Ji%-Q~{daORM_UWVlL={S}aNQ5uYsX)If
zdi~|7M~lw_OPC@lF08E`r~lPo=Xg27rc{X<cc@5>mK9B%NtSJUIJd8kW+(~SpVlv=
z=YL3NxBXXMLL$qn8@~O>$(A&k3IZY=6KA&!|Kj82rs^est(Bx8Fv=`pxb>>5-S-lk
zg=H2KFTcRnhekwXu)TJ0>2SOZqF0S9QIe5~NvO6v*_ps!lsx%(>3p@}Dg#5%lKZ>@
z(spu?h<2Jy@@`9vltqqf^6XLF_TK0mA_YW5!<aXazeerw^|Bu>&6EglRPtI3@}L3p
z#^*)-wI9L1<Tm^1$;bIOOn)UyU7}n$Rmuc);@FQ59$xO}$ImSRl{&QwwJKmeHK=Xx
zpYGKiXS<mqO}69lV7t+%dGW+OZW5%_A?&{k)cYdvMZ<i~+V%3URH;^}QjN>)leDh)
zjUBLO6Xg}}Q7kELO5T0z_Lu73SFBV+8x<~UV*uG~l+8KH53n4Keq}iTuS1i+P0Ysm
zvL(!$pVK3Aa3tY(<_EcEQ0wj8ZuR9zmCnrD@k^E>H*oO*bXTDkt>H#v$yKt&wBxz`
zVmV_7Itg1JqaYJ%AqnqacOHw115ZXdqoZvLY12vLX5$!9(8h?6fV>9h=hvqFp!Udj
z?H9$~@9!y+!Y^aHfM^3BUpHVSsaUs~O{hgHM4ek!-L*>T+tua0)@TaD#3Rm~e8;>K
zZ0qJ>5+Yt4hKPRWAv;|rAwCLNkpP4P;2;%lF$D#NI1(<8Gs;SrFstb<`m8~i&cp~J
zu_w~p+UlTXIIkuG=%Vee`by)qp+$e`$0L=&rxElCLycLlWd8P3GH|IUUcqj?@_7qI
z$~4y2qG}z>3%GPufh(0?aAFUB^mTu#W_4<oD^{$K#{X@+b1$T(OqjN;t5&mBEoc1(
zSF4gkLYb2dy5m>q&;Ar$F#MXmq#&TNu9SnF|EW}AyT_?LlDp<-dXNbL3BM(=qGO$D
zx8$wp&}VG04c`Fz<R6pZTRdmgZo6W%Q{zqC18f?n7nFGT-amew-CU}}Xfogc%8QA!
z2`yNt!F=GGt@A~z-DYb)uDFm35Uy%m&M&S3wZ=o~Ja3fl^NaAj(fo%0flc_#jXc@(
zrUw+_eAGXo)7$I(`f3qf^kE~H)05jnfUbW2+2@Myfe$pNA*2-5eIka~rAUNjouiLC
z<hO5VYCJzefBpQ5r~uNZsN>5Qvj(Lz1mCurl@X>uj7r<v@*vTpoA@joq<RYTQkZBX
zROtvl>}(%hq0Qf#di|dMy3uy>P6zTF)-IyA15<0q;$a$n#qa3pm}6r7`rk_`h)H|N
zJh)%Vp@Qs{NWvv9Y#`!{JCL-M(+GtnMTKIOAV6#sC{4!^S#l5$Mpzw!I8;rjrs#Yh
zGi(7g0)CobdSeynazDT!GxviiHWtE|beUwrs_Z2tX@<jS%e`XY{GHGJ2$4&8jwP&Y
z*Fr&x(UMdGk|Opk&8x`F@9t@cM2oPiEX@wFq4rSQ+vJd+inN1s1B)Vzay^~}xr#fV
z%tQHewfUFoBpTFCQwrQkL{||;=$-FoP5nr<3<&dHS7H^742;34bQLYcQ-c`TXX`<Q
z6#ATA9P%D~9)#@y%q6W0xe_Yxl9Y6!0;z-Rj$W>WB^*}wU(3zwwNY%(aNVjYswq0O
zrhSl21C27%SgVplkpTf_fTU|G*h73`w)u=ULDMBDP1w+lOD$k%`m6`pN?`$vhA{&n
zme}(HUb5v=(g-$5dLH5$4P_LAXV^e3nj5YA*v6JC3W3uukE9EAl~E863es4($hECP
z71k#ZvjOtL3lyQ>BbJ^kXWXtCim%~9V$U3&bU*Oyk`&Nv%bjp-g3Yvt9K#tfbzkY8
zOWj9LdXF~@>7!P8M*W4R-UadL5Y$sc$YjCIA%#^7?i#`BwKoN4i6bZF%U|Q6Hmztv
zp9;>43xgz|iz5r{2w(l|AF54Wkf(n<J;$?x=(C#2%ulJHD1~{*<|3rE00-fmrP*>&
zO+qTXBJ)c3K#q7!EB<NRpR*1T*4p4h4LdD>pP^=4Z3O9}wEg~9-X%FmFazy$Av}^b
z@Ux$?S##U`gsfXzDQGx5A>Avnf3Jgp1o!t)+Z(;Y-(JYNHH9ym^#M^BeoFj1NJ71p
zZu0TN8>`=}_+HP3Fyc*O-drE-dK^O-x=d>(znnOR5tx8=aoO2RI)-MuPn#aM0Tmk#
z%d!XzYo9w`HzW@JoPF6__#t^U7%0>(reYM&lOl{>o9*?Pf5GOXuCn9om8VDCY_3-w
zaVoL&8aFzv>QWUf?oyOCiB6RnCV8;trQUBKhD7xu8Y%prs-z)TEq9CXqv`Ig@UPNO
zOzXp}g42e~@;Vn?x~Qqx6rPJ#${$Z#lL)&`q$s3xJ5+;|W>nVm88PY69byTgu$nxV
zQnTpQ^eh^9;qurn=w=irl!9#;FWb9V^jm=||AyQ0)vtOG9#Ue9`om2+PmUQ&&fgqJ
z_QAIVg1ulOMQ7>K@D~slH2PLm6tNZea}<TIDw1-v#S&~E@U#O@lU9=vZAy*`dHS9B
zWfdeN(-B1$xJ`+*Mwa>89Hyvh(H68R5fadodxU4PX^Q|6$Y{Fm0bPF360^K>Lf<)f
zKKH5(RBMWZh*l(ZOlz~C>ByyiYBxglib!rD?%ekjdxEQw>Q;v;dw<8z@@iNbif>uH
zE@w*+hDdBr4TrzqH!W|D9LQ^k9XkP2G_7}!F^MR$UZ5M=c5l}raRNOfYb~TMch(=W
zH`fQsfdL9-lijHXtq}URjEGpk6&8U}3s{T|PZ_;Mg4SWy6^N*9^ztXWU@EA>qhdw=
ztg?EmY=6-_Fv(Lwr6dtSN9*#iBIO@+DzZo=kHJIQLZdtpQ`6|JhrYw@XZ*91S<_8n
z5-v*>Wr5OPn<R%828J-z4!QK!K*nc|GtKg0Y(UJr$bdwk4tN~W>Ce~E@m!GGz-ra6
z1C|2sj1s_wtaX7g2@0$YjmJEz5dppxyBI(3GAzM6_08}tNZe+H{^G?(&|GWKA@^W5
zxvNjp(l=_p?LI<Sb5#oI3|4SO7WplXQgwy?YHOX+SDZLtTvdNKoCg)7Wnd@-GaP5p
z^T^WpPswP>Vs}vST4Af7Lj+;SW5QsnlBK}#ZPKKTn2ZLehslH2+qGnw&xlBX!?1yl
zd5Wr(b$J@J%f_TZ5g7r_p<dTs{pSJdK`YKL;8pXFc}Y|IyA3teF&HXbG&2LuEYFY#
z6Bz7SsKyq2okb)t<LSL|_G?>8kjWpO-Np^}GNg@`<v^|=X<D82GxkmXI5N1UH|@vm
zpA^+DAFdceJ=wqW@*s+FWrpnW`ya;?k*{`iN~^k(B&)LVZ17vcrCKg_?e47Tv`7Tp
zY*G=h?E0{=?+C$*4ogyo9=%lQSc~-BkdX=EF3Am;thciYmx=i8n32=)v1qz~zqNjH
zrYRP!fBWQ+@J7#<)@@K>Y*g#Q$+FnQh!~<L=DC3eNLhHqAYwZyTvnKVeLc<Mb+m0X
ztS%@n!EJzr=6pP^!X30dSxNXmKc3apqq$i$Ki)6;CO^0~FnxVx56`tx!VPhNUMWI=
zU8o=ib_C@uRHYxs9ePn#xDh1|!JcSDo1oq-HHL1}iuqa_)X*+fN7bL~w3))km&9;2
zQLoY&%l{d}*U|_bS4ObOM*S_GRm|_pVy&eJ4x<#N<NlZ=Kp8877P*9L#0OQ09Sl`%
zDFlx6Fzb*>U`LUHQwv*0-7hGfEiS2L0vj<mSW*1F<NDP7>yeVea;8P@TTHQ0TXeH)
zj|)|+u}ZUwgMf;rQxO~j`6fDM;C$3j%5jZA=okNBp4&Z{ntFtNR8`w+s~m{O?%Fv!
z$Oe@2HKus;)6(4DNY+hldN2+G;q;=K7ey7(!7>;@4`}typ_roDs@Phfy!Ol1;yBIw
z$g!1V$9xcChS0?!-@H*hHSOe>pS7Q!;djORz$2df0G1`TU7?P}?fn5On08wrdp{cs
zD(QxkVMzx>ZIfA5^!#D?Ed~<zxKB}9d^nf{3%+9cXn?i`x|xsbS>*D(=XRm`K5{Jw
zACw`_J}BVm6ofLQa(F=;Wdyt%L4>L~32~>z;&!zm94z9A5Kr4OOu7rRkA>Am52_k=
zP#6nGZjC}GY0PFNU-|1z+Lnv-fxO**R6$XnLzg*P#+?WdiT6)+1}InOSjmC{MsF3<
zvqDvxz|a&lrc6k8=%hZa$#TS3YN0|geHz?A3pH&-9Me3VqG76H|1gKo7Dm3IVu<AT
z+0b(%nn>nFpR&BTc5o<mVWetUUWj}~6z-BOgUy6IoO))J#KzFfV3m#c+kFEl8BgG|
z=&fFbupa^9ci9jLFEAq_|D(#&jm(C9?kn+T{zwky5}T)+g@~?Iiry1KLP9_BTt_X+
z#ZbqBZm`nTb)&S^Q9#@JVYj>*qIC#sV4JFDxs7^ZRtVrPo@cklI<P4sM!MkHVmwUT
zIIz2AaQ=%`@gda*woMc4Omwsf0JAQLjoMd5NI(BoAg>BlYxZ6#Dv}L{3A?E(gEFUb
z6<l95fPvK6f&C^9oT??>b=TCgM+)}k*u>BDwNV<SveLBqcsh`37MFcH;gf5Fc6??%
zlJ#x$px3H7uPNSZuOgEH*|pIwB2jh=k7ew%=PzEz2i>M#JA&s>%02<30CQw^=2-LF
zi%4!s*Xq2XhCBem+XY3QYeQmltz|{uDsGbzh(_2Uqi1r(N>yi+D0lpT6Mk7bRD)N(
zMT;y~-cXYX5EKD~W;5`VtEk8@?^>xxD<$MzjQOc$XP4{aJ8E^Tweq`0Y<lJ$npffe
z6@`Y~W1~e0Xv6E?5xU8QOO*r)WQ>zzQuFZ*i(k0r?vi%|2G=YB3tvSd86qbfP)fqx
zLeDvO^DXpJOi5Xch*>Tt&vFS-Q&;b!QEFd*m&FNLNd);-$%y3QfEdWVTWhqJ9!eXw
zWXIK=RZTm9BtXx=QXQADH#q5H;B0<!v+EhuyjypSr)_aw4d%ScF}|?#&^5cTvT!=e
zvL%(KO1#r(r42WkD}Ua9xp#-8pZfUT$w&_qpU(KrHB;BFzI`snXJ&hr>CvD^dpgRd
ziMztaEBQ<qdr%~c)9f#L`S!9a!vsupj~d*LLw3o&)WZBd{A?wrJh7=`Z4FWALKVkB
zHpMndDH@3<3cjrN_a{A(mH|hGD5~`&ecN&0VS@uz-ba_VvIWD5aQQ^p?uF>2ln!16
z8P&S7rkzcmg-mId)#vvGhKAdNnQ&@Cdzj{Utb+;<5&zQ(n<Ls>pM#v}Si5tXUGXyF
zIB%5fpH>sWNf*I20x-$?d~x7@hRVNIbjk`$ldyOI4~i7~_<r*uTyK}ERRbcAQl$%k
z2(QD}hU&$W8NZJHPe6la#N0WhNM8v3@7Tv4CGiDAVk0QAt-H|}wUoo&em6=Ibv0_E
zDDG*~raAlPiAJ*D66X9ZDI7AE&&?Yaj1};Yl4eU5ivEzHkWaataH)*J{3HnNqfSk9
zAK<H^Rnx1Dq87NA2T#_<(!&cVLV6uH&BoepL*pJKTCD=P37tNg*>f3DJS@!81PD0G
zaWO%L?<|$<P$ZVZcGr~K74a01=Wx-qpyie6E|3glJAX0T+8!BDyucc^UAUH?`o1Hp
zR<ck@l`Zx79J2uA)Whc+F{pN!WLZ*7ti4!g5+JEay{!>Wrj51(@g<M9@&uY=gX&(P
zsa4saLDu<7mEq*Zc;(N%Ld~8zR4#<!o@{*93Q3r%c&GJaO0z?v*pJ?}*h;jDT0y!g
zu|Oa}51PlTB?vOwYU!mFD{cSJi-k&36@m(C>qbNkP{!g-a<w;-*NvfetKqvv`-N8L
z)Uu9Gl@=`5?)wcvKmc)31q{y%HcnYg-cHnawXHnxs))NHyqNaoa{O8b)v6N+nI5kU
z%KfnX(r#QIN`EV0WhLerUp!%`em4!?=`_JS7hI!F5ixA5vuf&Lf=cS*>c-USN;5f0
zW3$=8GY|^@xmx-h5EcU`{0A&}GLF@Yb2WNIDWYvIAdfM4T1L$=RjT~t^TJ9l_A!8#
zH7P-@_>HW{Zb`7BPNh*1Pq#(*P_70p@;OR)dM}vMzVh#p>!ZFEs&=u&3kPlQ#w`VO
zC-y9JIcx2&p^kU&3lJ2!ZnLR{P<Hgiif!O*=~kaHxM~&>m>tx`*Ovhdmr#k)uz#yR
zyjiP(_oKJ9)$~J9N*+3B5lHf}+x2be**b;4)in>bT0)AnGi)HSzBb^14r2v*u2_}g
zI0Df(6_8UGmgRR(rm0fyRVL6v>MK(wOOmLpp0I~~^0aEC8xqRf+GbrQ63I1%JkWv<
zDzt&saIyB^L@|8LpC{~Ol=UJVcu@-HVY1?O8mE{wtt~$<i9}+!x?R{LvgSS86Dv>W
zV_Xm7DSVXuZlkmdo>I6ghaGbZlz#u=RSyjM=Ay45<d-^o{0;Y)IZ0haytGqBVa=D^
z#|fgezLd1P^TzPuw1qXa*g|R*p5pQ%Bufo9L=q?JeBOSOAN>e>Hbx6ci<8>$TlDNn
zPf5W(3Tt)3hnY6O^4z&isKb8hR-c);ao`Bz$yv+K(iqD{Q^0GK<18H+f2&ufwmTRg
zvKNnsw=b9)8s-TT&9>U|w7c8|mB(50XT+h9&R>{jQ|q%etH<g#7lb)59KM{jDl8$X
z9UU<<MFh~7#Xz&+w=(E2ZbqJfw8Y#c`DKY$CEfCFTcC)FrrUZBW%j8nLKqb8^k`^N
zhV$z!zPpBUoEh`@7HZ=VE`tf9wTx-|hRq3!WoK0+K)b+oLkykcSXR)nOcNJ}U<uLC
zby?`%NAFRlO2?Xm@8$Kk-NM6O;X?~7$ZQ7a>($xEVSg;BBV}(1>fIhQ$mKaEW?kb1
z7Zl>(O2YF3n2bF@Zr2>oE4fyA8)G}WFsF{8qhRk6K8cmLP*3#JQ&_+`O~p?g6a6Ab
zR?X5VV++3$1Gj#|Se39j%d}e56K{N={}Zfi!Iic_vf=_GrxQe?7Cs{JHLLNS?$YBS
zVY7GlN59gRz;aZ|`h&Kutp`Xi;8!P1Q6S_ye6$TCSG9pk%7xvDmyiXED~5vxvE(cV
zYn)IjE8rcuo`lui?nfMk>3kx~efIKniP}sYC{(Sl`3g}pVy?s=N-14;nRTc0lQI1I
z^W@LqZA~*}WNl_W9)Vc)=FK5V^n_n^eqQe4;<B*4J-D_~gBneSesV&UF8y!2E&n-A
z9v+W>!aU#iAa|nnBH70&o}mEB$VpZy;&7XgFGQ#gL`5;|5Hkd^r6NWUu980-jT+^1
z7)?=(X^KIGFk}fIa=LD8Eu=YlewT6S=K`lf!s^Z+KmT`Gc_&1sxnW@9N+W0O$&+a-
zJz%AnUlo^*R>7Zsc);ydhm-R??Z-8yyU2t>W!b~w(Gd&>D#URUh;y{|=AY&@7g_Ce
zG0=2#Yu!9C3<D326p>~j_Gu}H$H9oU`m~h|`V*?w{lX!(el+?1G~KfmjoFh8U6jy2
z)yF9nLTI*mfjYl!0t}DOJrNizfjB^%ZhhM3_mK};@4D&MBB+qVdx+$vbEpFKi$YYK
zd1J5|)wa-Srr@Si&eNja+d8)Z5)usrmMFGY&{R^K22@&Gl3@R-GmU=^6(YH$!*eXa
z-cG(2uBNy4XyKHTj;a~r@V6+cHuo`_Wt3}7W^+2<oE9>6vxs3(ye0fOb+y$t6*+7|
zD{6Z);(G|yJkoc7Q!bo_KXAGPrb6eu`$u>%TKhfNUM8eek=%oHcM{4yPTCDoj`Z<F
zH&8MPb7uudRAzeN?&T3#E+?kut&;bzL3Ryo$C{GhPTmE74G`#Jb5k2AIA=z>Fpw^?
zU2csKSs1oNcp~-RHB&3#q~E#9^kw1!L1>-{F4XqzXmh#>suR&TQ!lP0u@yKneawQL
zVPwv?x1sEu`C`9nwBaf%TU@*u^tJcY;j%y-j?6_Y8r6}mHpNg?;23a+Ka)2g%*MP-
zEz}6m?j>tZSNX0UV<!k^!51Ze`Wj-u_r3l|ZR1aU_7uD%jaWg-iI*_?!4t7RcdsFG
zZC3Qahs#e?OuBk3FlfE)jTgA0IUV+Vl`d(0g*4jiuk&j{RMT%Mux*PsWBF1NYsS+k
z;hSVp<RVW?RwgOZB0c_wtPkB@_$w?XTud@uH13`L{wjkBTh+%nz?@?@KoLKuqMB9)
z@o+jErlU3ihh;mR{fBFBqf?Xv^NmQDo;!;#g$gK9Zac6Q5|y%YItLVtTa?pjS}Kyc
z=kd48k9m_;{XA@`j`a|~k1)>5%q~9dbkbi-!xEe6N9z73qk*Y!eS=FDKif^KR$<~J
zUjkPoH{D8=)K1mRB(iW|wLj@3w%IN{NDKwL7ehH1WwT@Ht_V&j<1FnE>FN@WgTC?x
zR%<@gYU*i~%a?j*qEW3jah;0>uBM@~<TBc|aE4F-lqJ+B&qf>P+$Br65FkrG>LDy-
zvfA2mUBq&~J-O<vk|mD=g6R&}@Nb{o9XfFuy!{s&)BrrhJC`?A8XWOx!--T`DlI+T
za<(N|l63rZHA?`H?Y%~iEZut4RTnz+uazk`H@AasIzT`KkY1GNQKZNK=M^kK)^aKp
zbytt?B#-q97A8`l&LvKiRH8ge&D&|DZCs~q@yb=I6a~nOfX97)c2lZkwYIi~oS#~-
zChvy^C=u4x)h3%85yOXn{`{%<*xcEHM+U%y<0eYOnr&_Fiq)!`+S<hc4Fd4f-nF1S
zW&jjanmLmckbl<*$@dVF>z5Rq_w6Rf<gUZxqNGJZ348qN+czDaxmG=qYot}cb62AD
zoX2&7oK{d75o7mdsd@A%c5;lvh3%`erZ8q-;XV0K6#L#TZpM$e_fXq?laCa2DV#}T
zm;2YH@*&Dsur|b)S(8SqZ3N!HbHCx~qQK|u4@Ww^-rn;x&eXIl3wsZMV<h{I|M~I<
zB|X#=-yDX~zmxF4{V-w1YPG>S>UQ@ZVc7ZN0?6Jc0J#(JEyS<z*Nf=cx3}4!Jb+@@
z*xuf^_R48}Y5h5^|3k*-`&F_?^?fVw!++I*3)w&G|BeFC7Lx#wxN@Z$CO-DQ!uP8{
zq9pm*<>hJJ_ocofeL8>`@OkY2khR&I0US##@b%GaYUh>)aI}P|>+|&=4gUIkwf~L+
zphtI$`JWlbrKdKVJ%H04KDbtEbxvL*lc_Jb0rK(g*K3`lZhGN9()WAs7dQYGmQ@fq
zTo``%C*Y7#txkV;-VwhJn8E#@%l$=(^9t&E^LxLmdkYlDnp};tg)=ZP&|mHS-%bJ0
zUGlieYq7wqZyv*x^LI4^CKgudyv42l_ou?y*}wm=4F0c2+&Wy&u_tTw*YVvix=r`%
zqq^_=-nq?H3F_Pfgzv>4F+iW0+^auW|CnJl)c=5N(=k3fZ`AmFwbY&YqiR`$=>;9J
zB>$Tvyc^A0srlln<sWZN3yjlNHmqW)^_<xy@lc5}X37mw#e7s~t<<d_LG*CMsF4aa
zTCIT3*wG`2-g(7*T4b`^sHM!P6oriqkMxpd3z=l_7(RDusnlI!7SOoG`GA{YUiZ4!
z?^^`*NnZD4$Vo3H-^W*EMPO(_CbKArzcN;ud*D*gx}{~{La!`xV2@AFjz?#||7+sC
zVEy{mPFdniGY5wRK<{nQ8cBqI@`}B?bG$L)uwQcDdBY!#>xnYeCRL)kzx1@z=^eQN
z0Dy#v5fA&}1ob_g0HO}D?%(e0(vopmdH($B>S$u|DCfs~_@j&a9Z&B=7cD*gZU3*E
zrk<XWI=`P^I=z0=ppAQ1ZM%g!HH=)I`Q{4c9-n7OU2az=L*t8pPVf`e<!;Bq#WfxX
z`U}t~Cy$w{?S4<p037kZ&D8f-?~lIJ(BTpe+%5BYJb}Q>c9*;5&Dl^Zn7N)e=p^#z
zaQ+V!;NsiIaTNJnZZUUv4uQ}8_;!bV-Za}oPB;K?XzPkcI=8qv2|%+vS>FOeL%H5R
zKHlc*ejo_^UV#<zc_Ajty1R2lejyMAcDdU-1Mn0;+3th&Kaje+eF30SLM27K=kq@*
z0F;Ew<s{ppxG%2Iwr6LA>L#eMpy9>8FX1k-KvpS!j*}I836X0!tfx`CF)=^ph|4z0
zvFt%~7YlKAz6jogMtUH}@Q5fsxrJC#@}cJae-?lUY2|-3U3FBH-PZ*{K`H5O1Zn98
zg_kY`q(izHx<eYIq@@L<V+iSP>F(}k=#KC5TkHF8)>4><=iYnHzWeNb4!!-F7U|&|
z63?W!EU6aMVnPqHW)Ev1n>fWjL?;PTqveN>5&Py(5W<7yaurn2@<77MS1qETNK>dh
zzjssS)+$vRz?aG!pK<<JTIYPo;Bzhcl$7yskO%a6<+Zin8A+WF7Nj9haOLW$;Iz#+
zhnJVXo>EPyJKo%GyqqIm@eNGV(fKn*I48hwM}!{Xp4OI$i4}^d=XFB}3bF4Jq<+en
z&eS>ZT)`GsXDjJ--8Ly^ts?z{BTrY6V9M`{D}A0m?KuT!X6j@0(vW97d_SD8=HL{R
zD_40#RUY_lAF$pL{25-SY+7{HK%p&N&D_HXJ=k8D#mJww43CUJC^I$-QDNx1feM?#
zmek4&Pquh_?QBVr1n>+!_Yq}>@#|b485L4_#c5LvVM|^Mjc)!(S4YQt<?Ef;(lmbA
zl2IqKdF1PyM5q{120aGh){EU^XWOYydnlmhe3)i$64^+^Y;oqb8ln9Fb<n|f9Pg<P
zqT$-$*@+tbnLj}!^pkDi)5jvJ3(T}zGVA*yfsq|k?eY5wE_ct}2;{G{>6f#UrYI3>
z?KTQZ<aR{VqO<Pt*7myi3PNF?9y_dv`sTN<n0+aGVu_V35!NF1^Z9J9S4SkNRz0~x
zX_DkluTQ9l(jR{Anhpcu;U^jC(x$Z1QX8<-zP#TmP+=TovVkNX?d=&|mFnCt!5&cl
zIM$wDh?Df>sFpB93VbZlMfzrI`|I%$e$L+dV5w5gT2u;%n>mTlz`YHv<`bv{4W%^z
zxr8Z<@vdNcUuxQT`bY@Gb|BjzBqbH2nyrC|Jj(#f*(4-;Y)OLUX!|>>55d9mKJFk_
zVo5CEAp((zA)Y;QePn8CC|&3-q=!jY$Xf>fi=?j5r|d7L^OuK?j?PrRR@D&?cUQ3r
zIWv`}tfg@i#7+$HG7kQ6F{`Uzs!`Fg!e$TVnvizu<>ajBrk6fRnj!^9k>zMY*K1iC
zoMAb6c_}(TdNq|GR?pHQ)`5z8K0ZC&Kcv%O&Pha>ry<`<o0Ub`vi8C4jzFl|+rEA*
zXH~~#F+rBuM9pIM747lftsp9z-bclh*Ac82XkAV^B-3nodHeOe3TJ1WjQ;N%zCizL
z7m0mxb3FP!G;n@c(Nbc0n2YS5B3*;Ie4Wu@QTMsN@I$|w4;{K?X=W0l2Z%E^+D+}y
zhn<XaV_Os@8G~wh7e$OHGU4aEP~Xt7yR(BxDMcImtXy8FQyd?k9{%@_ps1)n=tN8%
zzN)ce0OYuROE;5k6NGmeZwH13%9@)?-(D&ebdKjK10}$T<6c2ls<78>+(nfWfHa`(
zqG)|gPR=%v;+0ibcc0~KOVOa^wGEu3GBWlL$SEopO#MnrTV3?Irhm?z)GgH#nV*f!
z%|j(RHrpON_U0B_T<|HaOiWDvZJz;6Re{RZ?zkz?Q{<)#fj45a+}Nx5cm#2KYI4Cu
zP8abR0xGCLQQz5FjX!b4B~b7@ujB2L>gqJK^Xk|X6&00>CSCb2;_U0ft$WlpHP>#&
z9Hvy&l2TH*CR}&u%hNG3igfh)l_NCVe?*xS<rJNq>osHeZf-UO8kgR_P*a8*e65VN
zv3FzW_`q@9mg~)BKC2qAi@$<Ua&c|)J%m_}^*>9K+;>dtPN+nuHJ!ul&R_NS8N}eI
zv;U-_HM}-YxI4{3(e0wxEpHLMkP6zGZKr6&L3tTTBGg^F*g&|mELx!b6$X579TO8c
zjIy$SYe3&72q%%8g0PW^NwP(iOv%*1g+eDb2yE_6zWbamrz#BM*-Ot07!!(khe5JZ
z#45}aXBigepw0XAE=TD#{J`K~d3`;&SOwR*o(RHSSVU;?Kt8bZ%Ruy4c_7+iRBliB
zF#Cg<qRw?TGI`-nJCcON1Xo_SjAzZ!>89+2C09iflR&k#>GBegYfGD$q?cFMw~re3
zT(5-<15GPV*t3}gB*@57vxy}4Q$$L{Gl$CJQWg*^;laPa%OZnJG*jckYM9-@8wpff
zNI(INPQu%{osll4?iYsNoCR%(8XaXT)oGg3K5or{vX%j58JJ@7E6H0T`^#0SVvH9E
zqLqrnfvD_@KbJMe7bTDu&(TB<0!L)9f7A5;!ZH!-|J@(c;YS6@er=U4pTQq1Y*}@@
zb!DVXl>5zm4*7wQE5l(nCJGjXcEOg#dH;v|eYV!vqUfPF<6y+h?+N@&7=E<bi|lxw
zTsl^B*5Z)jkqiim+-m15he=v|@e1Sqw_Z&TsX}*@jEszLb_j@wa<jAj?dt|cM#{2+
z=h#xf#~Wz###9M0un}cKp;5lR%;#5EXQRO_8)2-%hR!C*p`ovT<WR+8kbht+PkRO-
zHIPLhOALDSg{LK7pi3Ey`JZiv3W%b*CyT-(B2RAjAzv6az&rg_H%kZ_le!u|!C#W|
z{sVET*6Zw56uJCqw$CLoYE=01R^PM_P2qu#PtJDDFW<0;stcyM{|E6Afu{3zm9Nu<
zb{T+e^v%kXQ8J1Y$Z=10MrnX^L2S)_ZNvOkaFE;eitwanJeZg=GCSI}4`~#yQ!%hV
zr3B7`M)x%wI>jc1a`laqb?NRJg=5C$r?0eh<n|YR#z)Hy{V9;9!J$PDFcrhl$te&C
z;|M+m>>g7`$8fD08=z`EyFQ_rcRARI;91%l-RLk8|ILTK?|%OQTVCV=RgDnM8l%TM
zOf~cETdsVZFTEkiDq8Rb(g;zw`m(Ps)uTVW@fk0ZdzmKeGVMd2Fv?&;nOmVmekNVl
z%c1l4+jQ0S)p25Acq;eHe}Nu%5YekDDxS|F|LEAy=N}g)w04wa_yzcP5BCj0#wcg1
z^|`_W;yv)rK@4YS=a-<3HL>zct=1++KtNEh9z4O$BOoW=2FJ({Xk}|!&d`Cki2PxP
z$My2y^%ZPs>tcHOcZ<(YfG!+eoY;lgKC#DdjjVPEx}AoI1xJ-x4wDJrTpI$FTN6-6
zK}(d2)MhHLa1BlnAx#hH_|3O5H#dBjM~ku^9!P*_-Z?znJebAcwLd2SYAP#2qFkjC
zrT4`S`&(!VX~OdC@oU#7v7QeX(^Au!nnhnqCg0<{iIWuv>lKX*{=;ClWbDB3u>Jk@
z>$i9U&IehlB_Hmrl4T11MQ1~?6lvVf24S{mw_k}A{4Gi(N_0)#%%d;01=g|WL+Hi<
z%8OGRO3SIKNhF<ji5cA50iH2$=O82(SefaSa7+P?WF)Dfv2iH4X3fpd6A~}WFwA#9
zA|Sb5uQZ>)74UK7R+gO$?mMOnjEq5b@+5+{*Mq)E8FIfW=3YKfdXErp!U*499nSXc
zJIAl;@i$$UIUQ8VM@5!|nlB|7`pV0=)wQYiitl5L-|0E;)i7M>O*qO{4kTKkl1quH
z5*KVQ9!reQU+s(B?)bQ^A3jK8ko|$SV9ZCld8HS<z#Bkny?0DI<dfNa1LU<v71FA`
z+h-uMyc>~v7aP}yi*>>qxes)8<!_DH&DZQwBo=ejS&Ax3OPI$~qp0Zd`lV=Q<$~;U
z<eHW!(q!~!@p6=s9Qnnm@F0GkFJ!vdtq(OAHs8cs#2Zn4Vo&<53i&D5Nsl87^mDP&
zAjhAmhg(!hRO!+sN&Qsd60u}R0&4B`dY0L0rZFe_1Q~g(DC^ikllKXIoFsWSZi1!N
zW!9%RFWBa3V--Li0w5OTF(NboP!`WI-{VcTOLZD_Vu4bb4EFIr_2}`0g_LxiHYHh9
zv_ei9bBcYHXx&(2I-nWs>qHsie`^;gL3yNdu+`Op+;AL~6Vafm?+b=<*x)I*d)8j#
z%`yGnyuofb_oipI{(p}I3Pd^F5+6e*7K}Qwo63lx=@EIB9NI!b0_UJP@~@zlR_l4%
z=#W?$S|ASI9A5TF)JuQ*xlGp2F%p{zW$gH<m^`HI=PKtK{spR}YD7CbkzHtM^4PHb
z7c2i=;D0hb_m7F*UT4c01G0~c<WT#XQS@prn?wI7Z*ujQTi*lKi@Mw2%Kx{Po~1SF
zp81>QbBSu6svgoGo^Fds&%#L}iu}pFy+dvIKqYCz%a>Z;g!MT4KGEw;ow-$=;Pe~E
z=PNNKyw`uZhJ<KoxxZ(cKWX`97plUr*Y+MKC9I~{9I0@UVbTJZGWmd~C6NgSrQ37b
zPG@TB?1!fcL;S?|uR_|9vYDUHbs3?hrUlyEyo*@UCAxW<MFq*#pBdbE*nT!~1A<1B
z?KlkEPqRs(WXUX2^2~`#lR2^QlT4U>9vh)^^zWbqZ_mHyQ4rijTscQ3Z4CMvoEr)3
z&XAAzu$DCJ+`mCD<Z~Fg#^oIl-h}gVFO}VIw@+0rbucymRN*e>w{m0CHBh#eQqtU+
zi2tT+bGj)$k*gV07>obq!l1<F5Aq^hL0_5KR`nc-=xRiLf#0xB!kCI7eaYV~?(7#x
z;=jXB$*Bt1@c-lWl0a-q#~FKX6mGWtmUTYQqz{eER?RpltX01Iit%bUCG&K|Oyk0S
zj-6|@<jb$EZTqGbX>zMGx23*z{t!Kgj8{o(zaj-H^djUYpR->p&3?bfq@dRFp$-3W
z%`rKE<m-cZl1C|`wX+S)Jb{HMRRL?;gFQm21WF@CR&)<43tA0uq7dy?mvHkw%u%H{
zc+OWN$hSN#pxi_e_Xn;uwi^)AXZa;3R=qW#W++9K6VoeOd8aS=AIELYO@%7sAJtK&
zl5cAU8uDITz9>H&#j=I<&Z)A}H!Wyr{8G8ZbcurG1ADLSaWnr*&O#o1F+2Pp3fQC=
zfx{xzOeE7>xwu(`X@xi2N$5hi9r+a-$ftcTGWe-9_Jd|RBB&0lS=BB}8&{9BqUuBy
zgAE2l(HLsq1`CD1y~%i&y0gaWC^FhrLx90L6(Qk_`2{aIU)lg!i)mg7Wqy*X7I{%1
z?PdNp$zBkl#4sc@M7#c-46PQ29_T)G6)oa3KI3+R#rdi6ARuwB_n^Myel_JwgA(Fy
zMRT7e$b4OaF9GqURgG#e%QmH!sG+NyTLaCgt|oDTEE`Oh3jO$`4QMs>U#9&DpMYOR
zF+(_$IWb!mN*VAQ3e7Mm|F_r2-enLC?1I&(sO61~o%ahQ;99B=d=;c=X@9FW)wO@+
zE#)KlxiU#8>WKu3rpL$Q0<Gz<bZ-eCA7#d}T3*EhZJUY-2??n@4#6aMxjyU^CRSFC
zY9~L<oOWOc(Rvm9%lk4eb5(zA7uCU`QoWrjUhWG6?#@1WtDQFR*nMV51Xlp7<?`5z
zDlQX~+-KeiXsrJk&F>r?>3exa<aCMiH`LR|%b=oKWlouW;NcN-QDp6x9o_|lS(>tA
zCns^=+~o3_0qzA9EPzS=J<jRDToqCe@whZ0!>pKw`)%w7>p=cG<hSPdVKFL{U(aGQ
zExCS2f|*wHFP!FksUk;>%A)Z4lk43^lesS{Z?lhIQBq?n^Q$e@+N?(OV!xGE<DR6g
zr-h|_T&v(BpySS3Xtp~0$vT6(A@TF+)x=!cf>JbrXPRJgSYCpLZpqa3#)8JtLVcT>
zo@e*M0cV0S+s(1C$jx1g{$4M20BFDQK)9*&MQ28-uJeXf#MA`1SZ<tzh40{RF1WU~
zP54|c#YlQqkJ7ZXo9?-k70J#<S(hc@)S%j10M4r?tjtaJ12aXKM0Oj1fZuLsIZRA*
zZ;lgTzK(Ss+vs3A5|Ag`p3UJNE!BwwY5Bv|qwnml=`%o&q9dpJu6N%t{JgO0OvkIN
z%fP}@QTt(dQx+e*W9>S}Xn`6VC3>~%jRVQzQl|3y>UMlR&pt3V64*>UZ+kV;6@*q7
zGoElLb;yL0H^PQRzHpqPY`6T;EwX#q!zB}}?dj`d*Yk9av@iGvL<`!2PwysWk|bj>
zZua_z0V$z<y(dey)Y1b6Yh2&1xgpwK9v}g~<WKbhbPeGojRSp*hQTi);zkKJrD82j
zm2n&~rC6v}gR3XM-XKpNwuHX=8W3&QQA1(GR1k$O-bu%1_Eqy8tonQ$<>Xa>>#mYj
z6NVLMIyUnZbf$BcS(mDOzLRE%-GeT};UL09+x!>i4vFE@utViIc!eo?504l?>%2Zy
zk^<a0GF`bi+~7`FqA4aLU8kgqA<8{3vD^w5MJ8|mFlP(^ihl>S)qJ)8_Aq{ur)|cr
zsUjf>*(TuDl9JLk+XGpX(!9ENIiRDq+7dn8Zv0$b9Y`*2{1*X>4Oh?J6;)N$XR55A
zCyIcCh%!y4(sG*Y8P29@@w`v$2R7MoFizR-Vh=1_Q$!q#$K_FWO-;s7sSS&c;P9eA
z4LA{$iT&lK%Z!4at{DJ(e__I#X*R?MUO!vX-t1tETAwHMMWLot;WK_E<mT%&<#Zvh
zcEDeR(8Yig7B;zQ46d+kfQse4+<Of;YeY)d^BqcHhW%Yslu~*`_FV2uo3E*L*~SA0
zY_{0}KNy{Kb=Ch45RQR$Nrbu{56ldc45d~vv5qxFUY>hTDait|XXn$Bx<B+_4^VT{
zcU7)7gR+XlFI4V5c?@<*;rj$p=oe+>Yu-9&_gv#{%?hNaCG8{LdkK9|&RY$7I3tP(
zy5Ukd<8&dRa~0wYV-sKXs=GhW5GA`Sd0lU>+?fJOHx<d0IFIsCJHb_IBm^_<|BjKT
zp?b!io_>HQD;(9L9q&Hd4vXu5R~4aC@0iXieD}*$a40gZfgbN{q1HJbfNCA4eyX&g
z<8ETe$tHfr7na1?ItTnDtAyA*1&5>cD1eF$`$s;&tz*m29wuh^bdRbj{<OBFP8qbn
z@04!7U30(+<ppr};|w14`uh3R#o27$Hm~;@PLgAgkjK@i8L#KfO&%x_qk%o5%G8}S
zy|mG{2?hA@V5U4wU2te;Ms==&4_r=tvFQ}`XSo5!&xVq1?~c<6dY^}Yk96Sa9-dZ%
zJ&*e_Y;}T31zad|{^aFFF>Afz^I4Upt%m(BY6w>0AM`~C1~c^d!Se9gAAAjX3#cRe
z;}Oi}`%{Nk)u>}4Wr2X!2cMofd_Mb)_n<N~_`5?%J<P^9$6?MZsW6(1aS(f&^@7?=
zupVFg_pb@eYun4;$EZT#!Wzrr$i1Z{`S?vw4uP@O?S}seg|~l@DGw+gdAL|XDE3Y+
z@j3kOJ%iA{TAxp$%q@K1YcyatgJ_RhJ@VFmnwH(T;>;<U_Zl*QtAqjTsoU|2uo{cb
zZ_N@;>-@k!AXtlL7KmLv?ZcKupIRwIk?R{gK;D?J-~ta^7}nxsAOLvSqa)q9IeTQp
zbuBvJs76IYkCvi=|7TJW9v%rQDF2$(E{lkpyn0wpZv=Pc60Ee)Q9kj<=lXnu6ENZ7
zL4^m2%hB11T|l6JwL>z0nwSDyjx*BJZ4Al@9v%>oXFZ|KkKPQEZxH<b_uz?1NII*T
z`S}HQkB-D;datKmlk`xgm}f&>;65n}d|>C6$ksLNiA>wmCnqFDph)W-nOw|9{|QWa
zwxq$2zRZB105>m?<bbq*M9?)vvxIEdu)~lR^TceLW4a_HEIMg@s{KkwV3jJATlAOG
z*TF)Wk@Fz6!%P#h!e7>7f17^%CGbXhJLY+<M@;*gFa@5<V9mVKwg&XAkS{yX{cO;W
zf4rxKUel7fXG5K0v5S`9X|m^`!*hUw>c>kfdq#-i&eVc>3yeZ(&v7F4DMpkn>NkB9
zDH$PXc%`}6IC@fIwOohty=wC7l<G7fD7$XloX+y{G7L2E0`G}7?O#(Of_ptyR98}Z
zQnwQka(|Wz3mb=!Jj?V@2hvsiN!xe<U2Q2%hF+ffdsq4zE<F4#JJQ6!I>NVplT}}V
zJ-)ZP%5M9T8Sp_b0LNwIW*qNc(%rYmE{Y6T&$BZJUbMuUI=%}E78VxZE22-7EiUD3
zx$MoBM3yb9s2G@=V@R<60+~okOL~O}l3mfh5RZst)97#Yf0fnsS%~E0!|4<`MmIN9
z7w&1AC4Kh`ObNzzcSFoEy#cd57WzM`jTwK^kKq$vj<xwYG>xVYYt*Rx%p*@VFES6a
zPD1v2Ke5E?#LW6z8EJrN7=?0;8amkGm5`eLbNy<y+FC-pKwfk`nSnA&Rp`C8=&Se5
zHjer$WXvA-@|PnO7x(uqE^aMJYZRS1E?=YY(!UU?4$s+W|J%MfS$@QwwF*+ZBsVhO
z<-56PocrS8?%{U2@w!f1;lf5fuDKh$KQl|q_0~3O&-2wgWZBP5c-QB#QGA{o1fs~m
zLH_-Fzn<PkXRk6C0a^LCc0{}O?2I?!RgYro#(vl~ePTc0IPG@F!~xSTU!n`5MXu{6
z2pI!|!*<8Vm@GQ=A#pLFh=SRg!~s1ysf#L@wt&-aaSqgJa0Yd`XM!a{B8^Tt3g|gV
z_}s%;MV`XdnIx(-H&1h*gfr|?z$OmH@QTUw_Lz!nO!SV=l&i-sF{GpnueHBG!XRI5
z^S>)DE&j}eTjz0y2l$jfm6c(jJP6FLz;&x#=b6+I9K|NU)3LYrJZB7$uC{yUghLrm
zKP+;vc4oCwS5~o?dEo<J`|VcG7e+ZR{_`hL|KuT&Kvfnx#j&QNHs0z{`?>b(@w|9P
zvsSNmnw0O})tq+=X=C0zmNn1DqPJtRqyMn@Uj_>eX6qIB<Myw#&0U3YfB*hPm#Af(
z;WX-x=vu7(qlPI7f4Y~kQ*BN7uW(qsZ_|Fmo=;fFB|)GD0yuXG+LSLw$snRe>*>)&
zOMTPA13cKuZM<yUo0p(Y00e1%)4D$XfHsy>STY67ra?Jxa3qPLkySXTp`G?$EmOx1
z9;d;)qkJ><h57F=*-%RLng$Zu^wCNABotjRTx=FsK=zfI-kd4wN%}R@y*OV3_~V6U
zH-AtK0*eQ<>DOzOil6}Z2K?gHo$}ZTODAAF99mf5oQCRbmejQL9|_$7bFzuGb%aL^
zgpHST0NDKudknx^4h4x9$UQx-n%jLJ<ZF_nL~g&w$G>ZS>L6!tb|U71EdAD`cX;SC
zE@O(!5FETb6ad64BhV#j=;-JVA9;}oyQk7Ak^vXy;3Q)rAsN}~Oc9+~|5mN@4VIqg
z<#YWl)%y_5-Q$+m<%nrlrSEge4f|IgRS2SKby@lp=FZkb6@qU>PfVpy(fcmkV<{Q7
z!+@!rKg~|DkHtG05Q(=&`M1X+mBMs2e_d@J;?!WfPfgZ@ddnM%Gg~Sj)!RJGEQIH)
zQ{w&cj|&X3X!Z0`oa$Cw_dD$}S3h=G6N%rnKzO%Udlpw<7cjerX-wXwD_(R??a})t
zcMQx%Rk1PK-$x%iLJ!_BYg^{v;Spwy?mZs0|BB}BFAYfBnD$xc;k!D~2zZ++ctHe6
zEx=A1Xt04In}7=}^XG7Ef0ZFC(@*FIa7u#a2j4vRRmYN0pBLE98(ys*U?rji<8rS%
zg&%=bVJIl6d}psHcs+NJGkhNDH|>)^WvKda#+Nkg1W?+b!yQFHmlmYOACVRi)W*h1
z2ASVU!yHyd^uhJ&nQ-F);Jc<KYBah8nbP$zf`>k#|BuW&g$%bekh@n#-U=x{OcZ_v
z7aBg-Yvcl>XQQp5#op`eY{P@uhA7ae!oKd6fXgAMKm-A7;*VpM_Uju^)LE3sFp+Kl
zi#DV&cnx-4H@I0SWG}6>`ig;E7h~Pe&d)!zx5tp96bjteDe6>1nbeYX04B6!HQKLG
zh^jw#ps97f0K}CLyU3Jz<&W=J$+HYUWfl$lclvYUW|sab+HG`5dHnm>0TKVRby;Le
z@IG(#GkW7#-raI=2$r$tWJhvnZpGtLtC#B4EXvhZ%nr%&cF}Ec>X$L<_bS@W-oNs^
zGC#4X<p`-!#wvW9muG33csL1!wNazd7Cy=n?P6x?vC{;6ojP2~AjOyDm(te8KYgcO
zGXFEAs+bdTWd1H&?`~(g>2d0@1L<;nS>z*CI-K6|?`Z!2jNZ@By%wiz&YU$vRC#^j
zo%J$Wl+H2$+lV^9Bq(wR`LF&l3`r~?E4uwm<Dp6uQ>EQbzB$Jp4qYRNMk%6GQyV4i
z19t8oiBzp~z8XgAo9zJV4AIOe_e(gUGJN=p;?`IZQRA;Ep&`Qfl#~&xFj#W+c=TQV
zR|aBu6J|Xv38?&kya>6?x&n<aB=!96w&HuLNvScTqGf0`G;~&nm%I{19=kl46oorw
zXv?scpspk;PA5^Qsd23B(|YG#TP~9{>a*Mn_L~cPtV_%4g4n#i+!wtGw13zdSE>$p
zL=Z>WcVa~k8yR3)vWzGFEYky(><8h<FFEF_7uk(D4+3ExXW|BVI_7Tzkd^JSvE)SJ
zzL-G^mWJ79<?GMPV`Uh>x*fW|LRSqbwW@9Yf!ABWKRFd2WcDZCX8v>btSVwWgsRr&
zn{8IFCNrh&LTfQQ-0+9fy9uE&T=R;H+5x(`o#}T6c`G%jkr{?`a&txA42-iyw5yk1
zM;8r5Mij`#Dg|_JWLYgWHqi)Rq19~JB=L^QeC8UwNvQ1c61htMRIqrWRgw^%e4g;n
zgln}*Y~)JNNd6PVfUwR{k>LMvb{rjm#pvsL<Tom@NsMtxeCnoW{O>1pOCYA+y)}dW
zRVZ)%HAeD2Q9H4owt+@gk{#q_-KE6HA2o9g{wk$<lQ&`90_chH(b%>0YpNwmXKi;r
zNgkD^gN2NW2Q`;BM@@VPNi=6Pq0-2qU!>l}Pv~rVTVNFYxr+LKEdVCzk#h@wd*pEn
z`8|}keU(RK76V;ij&yP|r*sTC2F{ltfJO={hQ^oV`v9Un)!7n+RV20Y>anD1`sPT!
zF3Sk#P3<^OD(s+X`nF{GqXD&gvscZxie$?qB|lm%`6LU!t;L0o1ev0joH0^CJ{g6f
z>|x|8$!@R8R|j%;8AzbIvIKY52<`OzaEgDTd|9Sj%-;T5*8O|X9hJ^4rchZBEPsO<
zC=zV%gDT-a!XT{0mAoxuK5>lkn&8#H4{&0`oc9jiLQSE9^CLxs(w&<$C?tI$o9Dez
z$D4_2wnyWNcISsRWlo0{4~vx<-hS(_CXlFGI=7~{KzS6aXW0WEMk?@wBTsR4EfD2;
zrPGcHFHCd3`RYjE`o7WuG#lsuDo^gn1-M3+105?HUH?A;*f8>*yo}T~FiO<#%v6MQ
zvlO3o?YtnWtgbHfDzb?q@*FNz@P<+$gFp0YiSNgt^zCh1=+((C9r^meuJZM9HkkTW
z9TbMovNj_i32#K=10!fo{pFjdnAUmYV0v=1y=`}UF3og?HC?LHB}wiLXc2)RWjc{|
zgYwocS$w;LMVH@hp)Qfl5uopqemTMMZV&l-XXtvZ{SDSos&HUQ3A1*SGcLKe?TbX#
zC<UHGI_vvcMUk$gak`UBEy(IvPMA8=E6@8A!c^BMUKZ`^7jz0Fk}`gSgO=;dI?W*%
zOCpi7_^jd6cL#aAUVAj)1|>@(;*FXT%XIzxHOF1s%1~<$Hwiz+QE{ekTq!RlS2LWb
z@w8szY3%(B;@@JXNSWTLeBZr}M)Ho-9uaZTkSl}VoLJaekV$Z_?8n%0|B$C~=i$=Y
z+>*~8v?gb&!o5HIeII>s+x16Zy{A15&(jn0MxT43`@EJr4A=cZk&lSir+bO6cmK#w
zYJARMc3T7V+Vzfv!w+kwuIm?ScIP{oseE2<OcgTPqaH6IW#!GfiZjZ23afb{4@e(z
zTRaZG-mhLkskh&GpS7RydLNK}<aithqAOuxj_%J-*DxQ%K|)yb8FwU^8%lo(bK~P4
z<m57%2MkudPBk4$ZI@+j3IS`2kiQ1=IVZP!Trj)7CI>CFsNs1Zm)IJQ+o5F(Bu|fn
zBKKr!EPCCtEpBAnLup+%XWJ+D(Dbg&{>0-|B=VKbMBUb4^3>Mlhr?yK&#AoLB&;px
zFHWbheC|77C#MiyM3s}uj7I{xNb(LqE(L9;Kk%{W)dwh(dxcEv-7%MHH-|qje4_W6
zU^REm@qD6g=gE4{aj;0E?{f1!6(^(jZLAOYismS=H&#tWZrFtH4oHSFM4~btHpp#H
z+VOcWml|AGr&~IwwrF*IE^tXiE{Cq`^*rIh%j@hy!9QN86zS*+)B813_Qr~EVrh&c
z(1!(0-~$6ce${4@HQBM@Lg#iJ$G@K6T5)L0yt@|cj{`xVt9BRtxtv8YB4u3FU;~*D
zNz}??xE^HquO&VWTE~nF`+k9vU+4KiB8yIUmF09UhRAvjc=qmF{%5c*o5-@-&k9au
zmHbAk-O+-Z;Q58*NfYepEr!rNvb}2R(?Ml<Vv5c8yo^U~g~lggUC-5NFqYL&@MdCM
zs^i7g!WHiQ(Zw`4>(uI7@5nrN^cTFYyspp36;GBL3|l)7YZiThkZavHxH*z%`JQ^o
z^Xv-j<ClV`5s<ZX4_F6dix;6}<UMA`hZV~!kpSr86NSAhm@p4L9u20meVQg~H84cL
z5WYuV^1efUybk8E1tWJoH!ZK$BL!fcla?v2K>2Xe1C{{+$)=NI*b`q%OZI-RPHzPS
zhT|%z@b|7celnj^`bMvF>-)!uX}hg+de18lpHO0qCDgAgO@^?QL7u1YDK`88#1O#{
zx^!2f7LNxm60bXX&(qzWS{S2V2ezVcAT^{Z5VTa|@^pS=O834cT=2ZcBdJ}LXgps-
z;XQfu;B`HwKwq{eZoV1pIoZ;Jtd-O}es|aw?rPF&BEP$Y^~fV(tR7NJ9^YDmA#>g~
zEtRS!7l^6<xVuObB=w9>;)UlkO4Iu+{&8_87{<t1(koF|rfZ2Z8|OBr-`4v2TVs2D
zfk3UbdE*Ae%!@xd8=4pi=a{V7Eiw_@aQHMak4M^fC&W&>9$GKDDt`4CqCmX6BnQ_p
zQ#fQ{u!^IR7FS0yU8JUIC`@>k>dQ0v_I=M!*K*hLq?jsj$98!*9}M$)3cj9X&FEU~
zs9C9=KSHE%-H3*)v<ITNKB^6`-uc`h6hmR{OI{u)_{(>)_ZvMvQ4tYN3wG0s*jyKk
zGc^!$UC+nq>!YjYsEY_R!TWzaWmOC9VZ%>EJ~#g42402;9R{r}K*cJ1zXN;3`w@;r
z=80U$@7`g3&|U;>42O8_v!Ql;kBHE5UF*#|x#L-CtpkyHLs`-A>PYB1@u|xvFynEf
zN1dhSc%=ga9?quW(0Rdm{?PSkHe)@ME~7JD$fLZx*%u;o$*b$NY3zB@wQWez^<iaX
zkY_y;Y(hQZE2g7{D@L$fCJWwoX|?M^4aZ>_Pl!=MkBFC~yx;Z9Td#bM5gH$F_j%n;
zsReJ&Ys%FDn*>(RQqKdf#q$!sc0IDe_AIjlB&nVb3=zMx?cvpnY27vq?`t*Y6lPXZ
zwWU#e^Tuzt7Fb!=*kef2IJw%Gurf8WSf@8XE&mhLKpQWO_SOC+@gGy+jq5u^>J+BC
zXq-4YzQQzDoH2~p@AlOuEIt+NTf+}dJ%9U^3sL`3n*5O5a#R*4^QX&^#<kSXAq<8H
zhd13_t^>toCtZeTI8fLcSbH@c(Sg0z0n>eA_P!i%=^3qAE+p<gTJ*4e^2eY=vz*an
zv4eSC>DOtmO=&^846M=MY*&JaZLbrwPJr-pt$;40)Yn%prFPfSl6Z!P?bi8lE<($u
z$$D*f`PJ8zpa-6n+!UKq%~O!;;93{2B6mL!?-SSFBxwCEjK}l5*!xP-d{M3WW65b+
z=<`=V7Odx{pu@u*)om}0218)N3%2X>pWi#f<|5`{wb+TQdfnN}_ftlCFBhDq7iX$G
zc$8##9j|RCnLRHak;>}a(1LA*!!IJ74wg6`A0{o;PFfK#zFL-P+0@|zsZZ-xm1Qlg
z8ER0s@Ir+yTA@2L1=4-nP4t@({8&Jf$5kZp$YG7LkrINbWwR))1QA`wPrspXHiR_3
zewCgM(TK8lF)of?yx)F0cMLh8kkTyLF!8c+Tz_yT_T|Ed?-U$sJX(2;_8*te5On+V
zt>4&(nDmgwFP`PGxk+I&qW9?J!r{}pZZE^CoWS$zsOv5N621;7($jrDKnBZ?4>MJk
zE;*Gp2XhgUEjQ|4nMg$*$+)?>|Cf?1F$6*50fg;gA8y)zWHV8qxi@x{=Xy%5`yr9=
z^@<mGd8_wzmCxV;bi#{z4%G{J85G;$ibJVw%)yY3I)`oB-L;p+P{_)^Xr7ZD9`cT@
zExbrl52UavF0k?OYmaZXdBF>>wclh1ee}Xo6Q6f9N&O8T4d!#Ehx>t|r`;NelCj>3
z#<Mol00V8=5ln~Ey0$aYz=nr($1|!OpCpZ|7niL50}(CbX|koYY7oT5-X1A>@Nj3>
z2lspnwjJ_6IsHPuuf-|~cOz(F=v&rx(vfGhl}70B+Hc6;n_evd=m%Y!=#8COXbb{q
zhu7(pdcp0gX=ZMrvo}gOK&m}yJkR#&0plAOM-FbeAoVtfv$iz;ct(z5Jmg2F6GJ1T
ztgmFp?7|jI%f2)dU(ITq@v5Q?u*yM>m|6z}mmDTze=_@jtf;;=6WtSXX~p)d-^RAD
zO4B5zFX=FfXnETvzfY{LwG7e;evnQBTQM{$U#KNFt_<;a{YxwJ9=_wu=+B2;4uu>C
z+SXab?Xui8)wU;dT;IH!JVl0?u4DRhoKnA5b^TLmazL;3(%)=>)t<35p4?j2K0V%*
zgPt{&Mc!@~3}l|ym<tZWLZ9IzqezkviO@)T3$G9RS-~iPjJ5_CNmm{?tMiZ+kB#QA
z6(o`C?d#x{CrpqySEDc8H;~CZ?xh<Y&aG2<?Oy2lY!F``cfR%nzcwAzKO3*t&Rp+%
zA<vNWCk+@g4qKTu^@$87yXB{NJ^XlYdOhUQ9LCyw{X#N|tPNXH$R9)G`fbWI_sPsU
zHRDk)U5k*CBgnzcx06VqBb}t{x(jp_N#x#A@a`;QO<?&3B~`!$9Y!MbgD#^PGb2qP
zI2NEE)ASn_?}sA2H4y#9p0QuglF*O4qdNu#?{iELVsY;$^`20`cA^6y{?7HZz|{6&
zrr~-EOu6sdWaM?)qe;Ixx;nmx_Ot}kG+ypO?5-BCR#w`?Tz7d`*PfI3bA&%hQg*!$
z&9en~Qt<H_d#2$DF0#o12ML{|m51Deq{Z_H|5^?B#r!wzHTbY-B}<Oi7gciO*1oJ+
zc1H7j|J84G7C>B`$)4&<IUB;D?q*#eEL+`_T#>TT7&+Nf`Z34gcvPKjwg7V;r?vS4
ze!13^6@8%$A2ifzdqnV%%+(>Z6J<kvo&3tm;I)+wLa96|vQs$USos9qNO;2A#0aSF
z;?H<?#J^@29Hm=m_j)Zih^Ea8aNSePgG|?>`@{$G5;;m$T-_>LibgS~2Jdou8MTkE
z*A>?`mm9w`>gl$X)GYBocs5Rj>9<CUH2ZSoDXfiTid~3-2`R%T3#{IeJ!C#FAT1Bv
zHo}f?m+u}iY<I_u?+@}sx>_EmpYWc6wBX4`tn0Z})auQ)PXwSPh=RJl4}y?5gRQ8a
zgbR5%xdMqv;AATWvXY=>)4>526ku=2N}Z|C50_;(d_}<%L^AIU;%5-rPTb;w)-lKb
z92TCATAs*{PZ?R)Bc^q`sG|gbP(vQbY8IW5nlENzU12i~t{3r%WiHF!sUj|T!-8iz
zAjWe)Z<>|8Ny}Q#8>+`yy$3EJ6vusr?>!%Sx4nHEj+&8tPMTUe1z?T-8BgbQuE(pv
z0KU6{zoN!&zocdzJXX;21_NJ)$+HOlXz#5CUawmmU9X#WsX{*JS4$48={G|z;EpkW
zeKYLs7fj}k2y5{n`CkKFD;wq$^2e>GHgHc1G3;4t^Ch<Fd@id2fg-)G=gCXKheOzk
zKQ`TQr?TSek;hTj(=7lVyq8B`7Cc~T`&8Vh0&`7C6o$0iU4NCdmIsMH>0>8Lf3LUV
z6aPgI(d~)pvx(RqjQAUW2lu98zVBak+_FW>{O#keUV$~9oDiAQyKx7Tu4bpM8kp`{
zf|yqA<_ew-pDP;A5yI3IZHh(iAXV&MPUv{wwDXDS+}qr#S!=8<wtvm_g561BJgfLn
ztF?3Sm+#pd?m6IQD!1E^p5|fT$(U=F-5D>B=0!4p_XeP-`-^ktX<%yKuc0hl#Y0~(
z@RmKn9W~yuXxG}pyDYfzG@r&p*T9)?Rcm$^aXwr^g9E|-4S@Cm`UJLjq%H;y4%pzl
z;id|@VLhi(@WQ`Kl0V?tG~eJIEVp1}czT-f_YSQ_Lj*yO<4XfCFH*Hq?d~P7JKJe+
zOuJLi4Gg^ywujQY+WfQC7S<I713_BVe|mfXr~Neu{b<*>)XS{^U=*VJoXyeNG(4a$
zcr2@xSx(!eiuj<{EPD%pVD1;({D=$?X4Lat;Cy$SI>`1KZ^7vbq<l;KQfu9g=WFsb
zxf_nlvIna(0E2;H_;&rwHEaIZFaYb)+tGLyLi~A1+mXNpOW>#$`x#IJ<m0>O;k-VU
zBYWW`cyaDhX1c6<u+(HKH!?`5D0qWo!)r?o9F+mjBtxq&aUr+9;WP_VqSlQ1a_cje
z*x_joMc`TZt^*z_J4(2{q$VQy0g2ob8I-w8(#>m@oINDP<s&(C@oUbL_JlLLu#2-i
zuka8i-}+>HH5HJ(Yw|V7b&csfJG*@v3&uzH<<G{DHkoUsBJ)NQ)Bsm~rl7X1j%8Q0
zyQ^Y-SUT6ia%IqB!z(6QmIv3`2=9{@6t92gK9SMAT%QgVl#hLn^`K2Nok0hW^;cM;
zumyU4w?53OGauOEaq&WUiR3#4d9&TF&vAz&`BQiHq%Hh7`b<TeVf@z|&sT_O9T@nO
zSO^11nVdU@4u}#zX1`QbCU^6q7n2*k>3-ktJU?ik!WP2$l|FqL;*MY5`yP|m!1Z2%
z<1JrDVcsj#9vdJh6c8z8;o(y|^0<*}#7iA@(OXI;@!RFZ%I#EO;x&wX%>^?p6@f;v
z(P#;elPuBH`N6I4E*C@0aE=n<lnctFO>!zmFHEfwhL7rA5(epSj6tF6_of-EK2M4w
z?NNGvD1P{R*zSLNlO<I~2Xm%#ur8>;9FC)SBYdLv^mu(XuD1~IbmAir$iq@%js0I+
z;=*fUf`9ouZZXM=q`KOKUOS93`-tprNe#r}opWZpM$4lCZ23GsT2`77e1#(3)tQK?
zja1Tm>V>10bQXda72<p5o$>}>_J$xrD-JG{=w@cF@Y;L(`D9nlGzoit)+LDwDI_R5
zee&9M*fyUC>&rNG8jNI&>8H5_Zcol<2xq@Ly~A~mwCd3Oj!u}t;@Pw`XCB&}<;+l^
z@sf_^m;9o{wii6ZqSo8JIWEgX=LjF4F`_b}y;Ueu+j1|A!Q>Ds{`4ncPjI>8Y&UJ}
z`Y{iKF`Bt5nv`~c<@!HOizrlRNlDd9i^i$>kX(v}cfY=QrmEoTYM9-}V9~sxgX^AV
zOVeDJ{vf9fGiMQsi0a!_`ui9?R+yc18oGTtU3W^KJrol^C8Jn%uIPR+P{^6vf^NRY
z*fpj{Nh=e|NZmXu#(GVoE^8^_yUqCeY$;y_gVA@lDX#dk&tqD5G6ApJ?^~A!R_4t6
z9E*STE6HfTjN3KPazBey8u^N4{xL$cvY`3BWK;9I$-yx%a-r>hDQ{Bsvo}jkX-!@V
z(&0euZ)C&2q>{Ke(gxxjoqVcUhL^uH&VLl{BAk>KHRBXf#I}xz5`RVz<@T?zQ5rB$
zruyOb<@3D~Z{>wPo?uMOqlC#9B-Wqhh-rA3-KUE2SdN|rB58Yd+FCspXMX8Fel!H&
zZv7>eVP1^)Y?m-BR>+iOVHcGqAq%aU{Iy5`e<<@*em6Mj+LiLz`B3tWM7RYb8|(7s
z{#QK=KREU6a=Ie9gU*^Lo0y##)5o~>Z*&38GEo_BIRzq1Zee@<ckaqXxCF?FX>(!L
zzp}?q5)qC&8&Whg$k}CZ9C^4CbqDfgI^KUt8<%ytx2}Q5;rZpx5ZC&`;w7g=s3*Ce
z7BN<Sh}UouoKi#~&321!D96300qM7hgbZ#W+7uOGcN<@vRQ`FT*{;+*(n67kVIKwS
zfyrX1Jj2i9d!gz&6FWJz(A`E;Q8!3`<KLrZlZwHK)pqv7#pEZIti_DhptJ(mdJl*D
z(_|;{QaaO%e*8LN3g1t^*(BjrRhXodzN-BExWih7L8>^OxjFKQ;roW7m)O=XZc0e{
z=i6x_s-0YPtFj$j{Y|0xZNjk;8*ioHBr6Wn7cYLuSr9p@F!S#Z^yg!9xce;q3+Qvh
zgb%8|nUeoz5g#5SKl)PHHfN3F8u1086@A7}etQM{#f@-w##f&uYWp|O`8-&JiCEg$
z&uOYR9SWOh3f!3ggLd?K$iIx8-_BvLQVkQgPLbljjw;kzrX=Qm3`|0GTWT~CU}^fT
zbD)`9$Ihx;VDsWGWN&6f<+T_b+A2k3QeEQycG=qf(EfcQ@91yrfdgZ+ru>%K9|#aG
zmH`|rzL%)n$Nj3jNfm2*;cEL`1;XYR0SI1-njt19J`jTh337R-4rOXR-7RCaTX!!H
zH@#>jCY7vmB9{3^r}T`<bt^A4<<0I?N4Zt3E{e*yb7TGK;fkM9_d<9o<EY()EZ$yB
zS2f<{chX}tahUo+848=lrMf@s2d~cg3F?TRtQugL#*j-l(GdlB!ym0%h>d7>oJy1s
zdo%j^Zv)s5RE)%8(haLSdP^nq^0b5OKg?PNtN(2Vb<|(Drc&%xxh3qA2kTS694?w%
zdhgVKcv$z*SfKS>)uYk{ot40}k!u{SNtW4%Ws_*~bW)$ZSyR8RAiC|<9v1?FCAS~3
z!UOYipE5yS)a2yPa&zCBNMh*2_Lx^fsQpQWc&aPEvdIzd?)2;KLr*ee;{KV#J9n5A
zBV#My0O3aAXx&TVA4jM;u;Q$Rh&b9)|1l)BPJ(PP`SjZBgpgI!ZCk1LT9RxjtkOSZ
ztqR#=q%{U7mD4^2*)urh6pDS@Kg-dj7#p6L_pA*k#_my5Hju8860HmyJ1YHVzKvM?
zB|n=k;8%#L-MUgahpqCX``bd^@i=>RrC~@S!P)VjRCFAa1w%o-s!zn!ii_dHeO247
zeeF=G9c{lolVY!3n_Q9$PO*p??xKO+Hvu>jKXAW3IQ4Cc*Ff>MPWMFP9_uSN1+~nn
zo_JXKbH)p=({ohq6CNi{Dz#?KbE*rN*v0Wb4GNis!DV5n`L-b%{5G!+!wQFr$3!yW
zh?8-=?XhBiM^K|mEXspDoPnbChTX2HXFuje+~QeBcJugmm5ukx{`ezNseNc7#G;=x
zZ6kBJso&L0++TAor94i@YPky(*Jq;juF!gqc5h*qjn0-~jz;q|DG_(Zo4RR;<E+C3
zgw5Pne`qhieu|o0(3^(s^pUgjGquFU8}PhvkU1Sn>V7Oc3X!hI!XAI|?Ja9#K~lo3
zjDJC5ZW4@w8!yQ)CRRvipjQ{JvFn?{Cy^8~JpWMX?mtD{jxSK!sFNilS`^-SF}%zF
z#$NFU&7qq`#>^KNHS3qNyNMR%6b^fIoqjNmU$KcpCLUFX(5osFU2BuMnAU2~U$y8T
z#)COA)h4V+ifE}9BICw|?C&l%vMP3DCzEmq+$j^+P9Spxb=lz_)SsheT+r}GxrORq
zwY_cp>zYP?8`~mwa&z)G<BUVv3jME^<E9^@)&v)Z++Tt~PUlkdK7E!bq7NflIJm7v
zq?%4lT^dH~y>l;6Z`j!Fc@Qq!$zjuE5gHXHH1bWl0`Io<mq=8I?7EX^PycC_n02g>
zg2JDJkM5#sU@q}o;tb|pRP>oWmiwi4{+)BBd(Q9@)474nCzzXH7s`-<JU#WeqW5A~
zZ?0cXdOmf8e9wgLew={(slyGl`t@J5?^-fk*nW2W6G2go2!`3Tsq+l8TZ%NlLS#RW
zS>C&1(wjD%&xoTw$Ork<*}2KzQ2+ggm}?4ig^@h+V7|S+LR}mmym<%b68@D_D7g3+
z^bEAkwec40B2H#z4UK<CT{U|<!bAFTi=9WBhgczp*`DLkU5J_tp(e?edoT`FOHrCf
zd}V+;m(<~<{{7Wx4SD<)N|qaObqe<f=|8LQOTorVJjO<F(CNR!<kAd1J<}&BM)zX~
zl8C7wX0Lgv!%M4#yRDAa_Ecl9t+PMvw)<ba=*@y!`Ndz-nIq%Q-=wh;_Cr#Q1fg;I
zMit+qC8mfK4yx7r4b9YEt8B&bPc5aA3sTpuA7S<}HMPE*FwC2n<q{w5tXm4P&^AQ9
zN*A2Nayu&0tjn>j`be%Sfvzazur4M?-$w*5u`o;2*nGv5=9-Iw@Cidz)4b@k2=&OQ
zz<4|6{Edkq{$!2CJY&nO_&CxOfzf#+pG@ovOM#L!Iz9RB%w<;W#5LHmx*O5B8CUM)
zEzHHNiZX<+OlKi3VwK7%iZ%UPgN`(G@Ou`#9`#3BdMCb<S9RQH&O9k;EUGa^HZP=s
zz((3m+Z=jdgZVCo2c4tTcT!tY$dJ-ZMaOySrz1N{RsanSC*|QQ_RE3I2mWupsXrPi
z<>vy3&V8Hv3U2Kb#H6uIYKIHD266=uu<VVM|C7^x$u^c&shAi2Xe7a!&wxk)V}<oZ
z-X|rUFt9493n{Pha#F8P=_>!W9{ZEKrp%Dk<vo@ADr(<?T!hZsb8DxXVSwMNW!r}=
zee1lIbGK^q$r(?rWLq}j;tyKefXxCFUHz@J7dh3X%9}5doSHan{24(LLP3dK&N-QK
zOl5ywO;lv1pSV~Vk0`9$cR2hKUwv)Mpdddpn9p%R`OaoepmS~@@U_<arXM_UI}(PA
zMqxbpBq`zSXbFY*rT?-DgU}e~F0hO6KkMcaDUc5o9QxA)z51hxje>>hlr4T9Df=cy
zU>;AoF;Z9>jLM|J<+X$+g?#DFx(s<=<ep|&cRF{9-tU7nS8{JWYm>XJV`<)Mx|a17
z?V3_KPKnSfgt*BzW2W3s8|AZ2z?+%RAHTUVL3DRa2flO@WY>BY&b<UvgjSE7*4d=9
zjSWWF20H&kahMgn4y3WGPGvK)eQ^6T@?$59Uo4!SEHHgvxJP&2#^#e+T}g7s9cEg6
zwDI52n_2II1fp-DL1S@t#{spK_nM3AbeJ40M@8fUe5ae`7uon6WJli|lUUEVlC%3!
z%e#-VozPI+R}@I+L>vlCW!%eo9Cdzfu5G^)+-_R@Iry21gJ>|x$SgCGh+yk(X%N}!
zg;KC2L`dIXF~5|qm_U>pIp3AizQQ^XN0W_EL8|Ff4#KgVTt)T2;-L?I|7gVZY)l4O
zA|@MYF~vMe;Iu2=@MFu0Z!(KSIr2&+|Gim^H2CU@j<_FAlWHH76w~<HoxIW6tMf(A
zVw?dD0~;hOrtxoAx<h={pC=xIpV`X>GCpb4Z2@$Rj5RtQLIPV3IKQ`YBsZI1@x{OV
z56{I6;y*TzT(IY=%rSb<Se^P$7r^APpG$`?%drN-XUuTEZjC#6s`c^xk@$Ztfc%T#
zBNGk^Y`RdIU7F0V$k^cr6<fCs<4}e5R_)zZoP||577;hI%!u9yO{s>o+d+A=Qaw$~
z$~yA~G97lg*0>@AT4@uTrBe8-cz8A>^-pr;VKrL=4%#XO1oV(*D@PsPm)4x?hTo>7
z&D2q=r14x>qaNz!VkD%<DV!a!eyf_U4`VMXo-kYtO!1AdB$o_7HfPi!5r@x(t2pdI
z5f5FR)9cid(rI3X&__*r5~{(mu4)vXKX@I!%S+ekb()Bp{Dr0#j!VVjMw^rN!`aIq
zfPlkCgr4#4Z<_6xTKiHC*YB_^%$cLV>4zD+e@!UEe<?cO$^|`ca1eRhRjULLR4pY}
z2jZ@k@fFyd)Lb3LJ83cR*3X*FcU>%Mc2NI&6|qxEhJVVrZuQoSL8;Nn>EjDSrp*6x
zAw165+T>>Vb$8cx&GlUQjD;bZ7Y6AFBZ=pz+I;7e9^T@Z{Z8eTq_OSDQun!-gsP6J
z(!SlZiQCPbvC>(L>FKlbUnc^nZX<pteV9oecw_GV-vWVNEzLOJ8*74@mFA&YRq|-2
zcxi#X1y9wqp~c-dyAtX88R?T{_XiiM{o}UY@D_eF6I03TE%epvWh!Ww?qLF-ijvFC
zkj%o(soDo0Lc33bI}iBNL{_P3mz?;FcDb2^)z*rvptCiGbqfQhGl7ASWd8L*;3<dH
ztxrnG6f3&Uq=>cGHRYF335I-?akdOVUN`C}7LpLH;BY=)XITzmi_tn=n3WIe3G{TB
zCNQK^2*qo5^ZqowKI~RkGh=y}Ut!$6Y!EkTOX7<9jzL17zzvTmR?eGML%`iiy=o+N
z{_m$(i!O$0r?_P^pKRD>aA!6VDCc{>Lp@$=eV+R`XUg-J@c^bZyA|MaAfV@MD1M`Z
z&d32xY;H8IPCxjj^v(U6O$tH~y{K;%`S-#g)_<?!Vy*7da_Ux^N|q6^aZ`?l;P7lX
zo2-0)9jh?4{QO(a7{N?kyw$JHXgSv-Z8kr+lw;!0ZV|?+5QS<uPR^2n^XC5L+c&v!
z%}X=cu5fstWVYr0<FRvt2;0mm{}6IBE}gj0J-N_i3MgzWz)IqdICXbRK$pgi*8?4T
zNZi;Q4&S1t?VTG5Be9YADQLCwM;a@Nlp?8Oaa3%Ch7TkS^%j1aMSbZaK=HN-Gk#5x
z0Ac8hB_Bim(NK~C2S*VNm4r~l98$oB^V+vW)-avSk(?m}Q9qWzKMHTzm%~4>l&z_|
zIMdbS8R@dT#v}bd08&7$zs)YnqG80HqmrX?o6C8BI<h980lO-N4YJj&2`0MU(~^YD
z46Ow)idwZ<lDIlxx>q^vwO6QB{KlW)p2y8NM$R@$iK?sR)MvBNXFVKLOpcto>ZF83
zD82q(ZHXq6qwCXt$F4?psm(b<%a}M?XRDZY5`14*@@aMq+N}inrt7hdct&eN#)y~>
zomivv=atz+EG^r^PXZL5r6s-dsgkrOT8JIEReG}N^(HnX%-Z{m7lKXcp>yC}PUwmv
zxGCV}ukB{<OeBDi9p-)E%4_m{zK=)Z_QGzo*_63uw~a875=9i5WHgy?>c~1~gEEWP
z&X%~$uTHWqwyC%f*~2B9d#3OPG?+cH{Z}S~)vEksTI>)Qc}~PAr7?t7K8Mx`0B@do
zG;i+a<l(`5y-YiISv^B`JEk3jcDiGBPUm>zsE<4vTIMNzguTb4`ne~f--aR@kzOaS
z=l~_AiPmhp;#*F>_L4z1NvS#Hl#-X7aHL6SBg^H&z^d%JBsPkPJ@A~nt5J6emD|f~
zO2#@`EAQ7!bJfnI2N^<rK-IvLa*a`GQFiUIl1jt1=h0ab8z)A&YmE%kKHnnUtzhYt
zCM?uTv*k0F@6oK@_#@H=oJ<};TX7O#IDF`M<Qo&8z{_iMW+2m6W8*c^`nn-l<yjk|
zZ_&)W+dnm4`2Mt)Rn>uK1L;msdJ1yPrN31*vri;DUoCOXW?Vvx!+4~V)etWlzYAA@
zFne#dDQ%-#Xf+jG5}V>ucJb<oP8&%r)xjwyVn#jKYByp*?#ne8|6V$ucc!5(x0WG+
zNFYs55ZpS|-6i*kdw6Qo`^cF$rRGtfN|To)U0$2{TCMCf0^mI1CaN05Z&E>WQFMZH
z%Lr90ozf&uQdJWsDKu8r+QQ{&BV^3RjZ9s;gv_CpYNiM)=kSL9-7iR{o|AbJZH$ib
z=U8-eqd--J)mXgX>oMTzjbixj#runQNw%6+v9VMJ^vV5LXwE6MoR&(ZD2UYu1=29R
zURB3V5(B*XK!k|j&gFLHiPI>Ft(ci?)SZAi8vxMfu6a*^CbxA7sX}583Px-dMRruF
zCaSUC`2A_<TPF_&CZv_z0ORRSO0#kw<*b#YRjr;=z&wn6_Ge0EC9XU$@3;#J?qEAL
zbe3J^aqLl84;-}Ix`ONrR=d^;b_Uv2G<{yq3YoLd+X>*eP3y7X*Ck=i!om^lfSHKT
z&id|p<0c8mPNwIcE^4a=#8^;|H)Kl<k-}a}f~<)=+XTxcIj5v#PxGi$hV_Z#3Z$d+
z3PK?d18$Y*V&>1zw%hy2^X{LdryEbbs~5AdeUotlW|N2{eY-`oWE1ry^LI>h+l^ft
zxtC>4gldm^wT(9-kn>3=G+ISi{Ui}&+5}S)GotG@m^#rDXEtgVLDrqY;oE|C0cT#e
zVdjYhW&fN!Hj>k>D(SPMSn`-i$Q_1DSvD9n3un5)M1!4J`kk-z=v5>Ga*$EmSEZ1n
z-|o~hb}Q0NaqOxJ*p@l4v{s}7MjROhiA&)^`Q;O9sm6Azj?Gf4Cns~?ndoEX#t58R
zi30#HNv1r%nMG=ZMUrL>LQ4Bo2`7wtgN!=~97rNP5hw`c=;rxl_MTb`$FyGMB^;>q
z3Qaee6J9LIsIt^Dm>a7m{DK{Cog&l$&vV3^ZJBm+Q#uFci6POnZ^|}IyXIcL+LwM|
zkzAbw71rOI>4zF12VOx{K&*`B@jeVgL#EM}_N8acH8>*KQ;GyRy=PmiLd>E{qkPqG
zR2;-;sf#@=loM8r6KV>|@#Ji-6HF{|m(0SC195^RN<%RxJth%}bP-Gj4+t{Xy!Dmm
z>qq`>#;J!kr8MR9aTR6au$)Oq9dXjhzI3v&0>0IaQj$rttsj-pNsi{cV_P;$GHT)(
z?cRII72seG*71+&IkGZ2Vq2!&%<s*P)wRRnx}WO~S$wl7y)i1>29Atmo?XdK4GIS=
z8qaT7<&pt>$n2qv`g+3)yLb~J?VUgcaR!^IOdvHOmFLfqfui-xC-M&U_<jUtPRkU>
zO>-&O2s9zBzt4V~q0ZJ=su@711J$H&dDK-_g=__9PH8tbyV%wKwY{I1$}3iEWpV=?
zvy-_Yb%YuC)%(TnBgYXKi@?n3=ZQ4oSWbd6|2mj<2K>|bdkosi_LP5TfB|dfANA?{
z=(9luK0%eod?odhWs<?oW?qZtt{M=!T0F+7r{_{lB8sRq^}hq%d@8QMs`R3{HD9yJ
zmCu%8=x6Z$ak>CTsx+$j$UD?<!zeLLH%yZeH(w7(9dkjRSTX12c{<O-+2~TJ|7;5_
zuSC7nB^mV_nE;SbhfqXY?dv(MLh1EqTA(1U=6d+<JDK3gKjt6o;K7pP7#XX+&`wx2
z+#GzMq90n8eYcWeC`2$hqr#?Dx9GI@VyoJ5TI@Va=MO7S$u^NVruReBt`z1n+;i0<
zo`DZltgJ1fY%%`9*N`Vb-6^FO@QgA5c*f7}y_&VrS4|jbHqXy!w@m$R@oWck@7+Jv
z>9%MydVjtmOEz9{265NQ%qyFSzdqtZL@gjou%+6+>tDMV%d&{Dvy=6tGv&6bX|2cJ
zTzU^X{<qTD&W5w169x6t!bZ|sdBT@YtNh#KwNED@=ce-oE<W!pP~Z<CrG(`&HvvoF
z{KC9v(~BjU_9Zd?aXg0dR8c14)DMpQ<M_2FNzlPf9+C^FAdr%cF^x5IN@m{9@2&9i
znJlBuf(eQ+@S$tDrq|3wAa>jFUU1#m6FQ#>K)~Q)NELOr)n4i?!^ASwdY75F6&x0P
zT__Tp6O3T3z$>UcB&&c!3&@ZO(<#^9RHtS5SOPV&8q$?ds+AhX;S&#C3Gco)$FyTW
zZ<dlz<$Fh|b&o4DQ($aMyrI)5YlbXy$G+>;WPvVO`mxq>xomDXH2yPArL?0p#23J_
zA@*QCeb&zD)R)}lG~-3<w`DK!Wo2M_T~(+8mvv6ppv?I#GZ5YHg2Ff%oo+N;YJHr{
z)R=S-Dqc@;ryD36i*3CWN_{x!6z9=e0kI4}fE|S)ma{FE^S(qcU-onSN|V;5VRpiW
zj8-xZ(bKl3&$e+Fay=T$^rI2B8Xv&NinEPc=g+ULN>L4J_qpD_S9j04*@#4$j{WG3
zS(7VGGjzv2eDeVtCLc7W$9hk=;#R^m%-BpIRo7Etq`5X%Xabm&I#raIzoYLb@_w7-
zv7Vx9!Z2YKQ_KqN=JSG%zn>&^Kwx)@5<k+o?r;lK?Z6PC>y<cyIMtP%fXeIl`gpkh
zwNizNTxELPs!Vj1SHTEU&+%tj?Re^Y<4N*_mp<$wQJ>uiR}=V_#If`MZw=o3<<(^O
z3HkGvilkhJoVC$#-C{MHxwMTZrAET(meO2&vvZ)GwYZ9ecN&1V!RFu}r#OM_Tn|qL
zi=@;XXn5h!_n0G}(qJ^!JYMP$UT+^PWBzy-Qb;?#k_~iOu*>DLWzJ9RG{dK+S|^n1
zN-O;h5-${UB)wy*$w?3Fmduz7(n2Td_dt|a?dQ@Z*H5LBhMKZ?5TgxPEEXMbXDpz|
zB($LG+R1}8EdBZU6TO%6H_0tfxCw+81EIr)gaj;(B$K4$33wrlI0k6nK9qlFLu}%z
z&)BHdwrOlNQyQ9+vBb^0UI+T7Gy8>ieD20>ov&cu4#+n6Ugt|+4E$5pPIj4dCW6Fd
zA4RCCkcnkoRA^(Uyv%0z_KVzj$hp*06D6%S<J|~b+=k;d<_5GY)Y{1;p$1#zJkHQ5
zj}8*VFX@cq3_a(v<iwQ`&lGvITrRttSpg(vun<PyU9f^O`YV)SGaX@tn?{C`lhQEz
z&8A@~)!fm2_Nm%FWrNOdZS|uxqX!7WCHOr>mRbBcc5{8fnDtjDA!>3F{KNw;GMwqj
zm9XU0e9Pt5xS1}2BpJ}u%YRp(^{YJX!o?qz@!mUhrrg(Hg>PHZ*KBNUWSJ_M2=c;f
z>PZ!C<VmtR-89pGo6I+wS*FP!JhF5u3@S!wdGp{92%h<ug%Hh=S-j(Y=pxq{%~~nE
zh{iSn6RW;%Lp5#0jzat8#F%AXHa_~aVcOSW%^Zt%o)vfk2~%VkX-<>0wCo_uWp<{Y
z+29_Dq^K<cSWS+-_Xr$QhqQa0epAfLJb`Yl&0xTf+b;%=n?$(Tm8oI^gqfkIMv2+8
z3f29m_9eEopXnqjYg2`oJF${!$FuUO*ih~QrNpbz^Lt{Le?AA=RjYNKPo7Eh^VQy=
zrfRAkAD(;X#IeS~XroJ&O;Y<mW?^-`DCrXoYRs*J8)bF+`e2k(7qrV(=ToZNB-|qB
z$Y_ai*AVQ?zAA~b>t_;YI|M&bIAuvbEv6Us?rCHv<J<4r5mOdAN;1$3SeWm?{DUNY
z5Cl&GcvDP{S;@@C#{BfRs@B5;a~}Q>g99az&IZd|U$I<`ZZnukjP<~o(#Xt=<<R<V
zHl`HiMeAt1GkBr;6P~gm=PHrpivXqZNEvOZ20>W<Lx5U4Anln>Q8^dQCrlnY+RQ!Y
z+|cm47_I7z#W+lAv5Gq?IlZTy8;{wspH4kp8HHs!z5AP(1sK(j-srBKVJAKJkcQq+
z0~TRc=d<Qp7Y$ktAP8v8j&7Qgaj0o5zrICcEkRVivoT~p4wMeRC_MLOh|%=wjatkb
zR5G)%e)CYGQ@775IOB}#Fi%|ISfggi2*O6XX3^7s^Plj~L3Cl+!DE*Vg7fa-bU(6P
z@=O`WRbFy(2{F>>nME?nEQ67q)_T7j2q#LW*D(3!l?BEnX$17K1k?E5Pan1!zj=0G
z88f=@uKHf4<WVDBaXEUqc>7Idt_I{CxH7&o+GO6gW+T1z<HbTs>XK9;p*k<xTvcaM
zT3z5I!j?+RX;dC!Nquf@_p+K~pqllTd%_DFPMFY$nmXI($md{@ilnI>bd{!R2y&M6
zog{&@Hceo(Sc6cMs?&Mp&-L!J^4J~P)XFyO-5p_q<U+MAN-xvN-X<1O$1QC)MnjNC
z`hv5cZgRpjg++?A-m%LpcVdses^AfXbbjvsBxY2X9aK4|u98Pm50?sQ%NZCeV<t=N
z0cDy6WF6X04a%KT=XO)$j>&;01iA>v7^c^=oT$k#3A}`MR~2A3F<F?h&{ImadNWc?
zN%fup_018@Q_$RLm?_U=THhM9(tY%iQtIKeaj@-M4sK!i-m&ELrbwjO0n#8{Dz5=w
zv#r2Huu=yfmh@QRY3IgvJ~+aR-Nd#7U0N&`+|JVu+cE9nvbcnla088zD#-$Bbk<x-
zwh>w~BODKS)dbbfD8lmleKc|hmPO(i9>qZn8AhD<TLaDL1}+@<X-?ft6%uj9VP@SX
zb3Ew3*|M4$c+pJ1Tl7^}!i$g@X=L~11VN=u>*u^;#V3xqR6-r=wd0Cns&>pm4j5`Y
zH1<~H;#?o>*e;pUH0rTeVjSRjsYWQOPRtUCt2k30lMAlnfy|}HVuzqz;0a)Cr=#M4
zLA#kGS*y+yQWORY-T+q)6~=UGr{sbcvzl>U7c}T3r>6HCTm~GpW3aJ*eYYdi+%$4O
zsZOW<gmGgdFAZ&1Elt>fb-xY89kAMY^IFi`JkJq#46x|E*d6++)2W_3Oqd$kXPK9+
zRmtQrH=XR|ugj#M&E_p9-!Kj7dVtV>3uH<#s<bHkC_D93>N2&-aX<(9`wet0R%s%l
z1G*BICU|_@2*hnhvf5heI)y7c`rRFj)^yvy)!D!8;!WAy!TQOgL#Aux${#vWWsLxZ
zKt0V`dp{$J$QpuPyueL#k{6`VVk_MIZq!x)!z50yF_npFEPp}q*(~D?%^aq(*~p7Y
zC{p5~b!H4%1V=urFA{MSqLWY5>D*)-Pk~WtTlosTb}^zO_Vnwg9_SQm3|iI=w`9mu
zIa~PomZQ(@R;sVVc<Iv=r`59dT1Vx79sg1#Rv$aXhVtdUO391fwNH@6&U^J8_4t3H
z=e#+*cfz!*kxJsY+9;_a#7>fS0<c}Q@VH0G_s*fr#r~*@7+g;t88WooupCMk4P%az
zIs#O=_WL<7hNJ~jQ+O~FfFZqC9N&25b(oe$V^NF$wEOI}iPZ=oXM6fFeOM!J{*-1-
zAfw|Tv?Mdi4ckWKtSkHqEeTwR)fa-F8X)IfQJKjRsCtpEx~fh}P-7hFD`RE}R@tl{
zP09||b-<&aW6N<-Ip;IKV~Z=^IJY&i<cfgGf_fqoA)}mj?M9kGj$uo~f|T=^uK+>K
z{Gw;v*+vJ(I;)yJx}HDG>UBgMw#QZm72)&3EmF%Mk9IR<bgxB|bBZZ;&yK$!5G-}s
z`RX+wkWNlmvl6f38$JHoCS0hz6%Zq@xhP48nRTX27DoRQS#B|yNjYsacN!mtCM>Ca
zPMt=-0+d3|vub;NZRGO;N`|J9bU4{tL12lFTvdwEmsm7@MlE-pzVv=mh%BzU``=_O
zqPMu(LEEs1`qHtqwPcERW9!V$)z5;BPFee1+%TflieH#X#sHs*h1Nb`Qk|JM1B-py
z3ahtx(va<FP5K$M=fHzUW`#!VCK6qx0hr!D`4dul4tc>(cx)=pT8e4Bjgh8pnlMpv
zIZHshwBBB=(dPQexd1nivD0|hDg&JkohKjukQhTVlOcVv?>*m>ZHhwtdw#!;Fvgp_
zuO@i9&{3&Zl-|0-(!7FcxnJ0GQPM!n*Vn#v-?klC^smjD7Ss?58l4~@QgEqn{x)Yr
zYB9<>`kn!4k`0sez+Dx$AeuAxn~*L0r?)qmp?SebsrQP;+WXSi)+B33*zv$%Bi{6m
zH%8q?5y$0Z)NC~gq+T@}m`O^_*_6Bd9ITtqunb9->{@*QYD>c)TT=m|a_gH}Nuvm}
z^^^ry*+i06uVplxNRm1}=J@<&&ffd*=}aJ7{p{3|$jbiE?pby9buDMy;WpF5V>M^q
z#Cu1-9|>k;hH>Xge+}A-ZKI}S@|h4C$z=*(1WOJntu<m-MWZSIa~`320L%k*2yVvi
z`J{ggfm3HWoIug$=Ow;K&`{~#Nd-22G$h`{@7u>YrC<@X<Q(#_PZFe+v=)R%irr{W
z82EDck!wpV<#fbz>kOLt=E+NBL4T{E<e0}~j2o~_H#uo^`<(p2B4%`%rh`bM(V#I>
zNoL9vnSms(qB^8sRx)CCoE}S(*DmUAMruDdisO=?bws+7X}7RD22l>(4%hjvfdnh$
zdgAlRymL&)sTZpq_hXfiJ(uZ}Q7eS0tX!HL2)(Z&=VYo416Nrybg7;CZZ6hY!lVI0
z<jsk%#$S!mZh*^h2cm-W?+}K3L~T{Qwpo#dZ(Qq4Y)%+DL5qgGAGBK%iM0Z=p73TW
z!q>)arb_NL+L=~N$UaXkimPv7bsAs!zRl!{g){g($l2JIYFaGSndVrx0qthOBs;6B
zU|n}{R5NNh17KsPHr3p+CNaq~emCUIIDYlRWL+GYF?d3VC&w^AW!QCa;gG&}7R%D(
ztJsa9QVW6D+FIIP&XvCW-=3Hg5o<g?kcQM|z1^1E7JGdTXWY<*Xqs!EO!cA~-{78!
zCNsj4dHJdunyC`$W|@~R1VftTlmdxNIm(E%CJG^&tT{HAV4JW+w%?rJ$E{36V(QUw
zsm3Fm*HbqNe(&Wq6IWll1fOkqungJ-Af3f#V#nFpFiGjbJB?nzb|`(_@pB$`&EzbU
zobxBMuWBz|?48kb;k|ZUoSHz1L+F`sk%)x<zGRRK)l1Dm#UbfcPAP8jX^2#N!i>*k
zE2jYqVcP3gNA&1hpsI^kn#q^fPCb4jn3UI%;SCv$&z<wuGxrP$X}V+<L2q&bwu&0r
zS(W{_%tj^Y!7qd7Xr90-B|^|R8SNsmU_(EAT(?kpp1@uX%L?Gtun~6%Kov{!(wCHw
zm&-b#Wdc%1DW2of%L+0~1jl>-JUXaX0`3|Xl+-4yF6mPbbckU~&7ELoaR|CTQi9Ab
zuNJe!6b;>CBV-&5`tbK1z!I4#8a@DeCLfDIYSj@%EpzxJ`@)-1pqR3b7e!@pNgt8S
zK7TMMbYr7=UVK#)mXV(k<79h7Y43Jwn2D_Nq9!%^d>9|_KqUf(A}7BHTUtRKAA~ph
z+|pbbq@+^5Xu+i_Hj@Kt=~_4gmAqU!o`rQY@(8`o!Rp%qaj<-$Fby{Ft2br5#QR7G
z@9$&|Z;;4nloWhzWrX&mi9!)f-q|YubIhyXcpl6C=UV=)8aJJ;zVdBKS!BiYtgA$P
zPTCC4U<o=B?zqPL9Bp<EW1yi8PcdW-=@y3pI=MBNdRz%XG@C5z+o39_?c8vsBMsFJ
zGR3|G9^2{Y&Mv~bBInZqq^|VNv|-erRg;h2^~Qfrp4b)L<IV2b#=OXO+}9Z@2u+Kj
znD?|3gO9j>2Pc2s#M$I-`#HS!)PzoQY12=6_bX+jU)-Dq>*s`pL=%npi~@?#3(iCL
zJ9y~@nOf_^G7Lqv%z<ZiYO{FR>x6vK3f58d<H{pPF0Uwh*yo|MqRVb{QXO(YV<h3=
z$8NE3K;z_4tL#Nbn)r!nC`r1KcW(1#%jT{XN@Aj+40}=o1|Az@Qm#BxgUv=|Q1)au
zUhdA-63M#wF(b|q<Dg@G7X!v0WaU`xx-G6&F!Sb2H#7q6z?#P$$YZNLPLeQ2s`Bf}
z0k!(85inO?wE^zvbnH%Vv1Ma>v%UK&bJ~;nfcOTmd2Q9E$}eE@BX50ZGUa;hg-Ksf
zZ=ULu%O`;|BtYxK8y^97yf|A)A@q7PtUu?k!>1|BRnw5Ve!oO_m3U+gD*!R(7u;!9
ze>g|M9VdFpfP8aKM4S~cnugljAQ=Ld19W8?pK>czywE3LVD98@o0g@xmPDj>P>fo6
zjvecWE-RRJX52=nwAmyiIQ7X9XAZP;hP`GJaK+;sXlLI{=x*ZBbicbB7tkS@KG^u1
zv&stEd6_A(`An9XcrdDr;-pGcEwW86q$bB4$db)WT~(`6u(;KFjsS~<M5fJTvXHW3
z9U^SF)**>lFEes#ZG3cTeJhoDhK*<V1r}#vDs9(F(P>#CmU}LNbTe=<$+T*OC)P!_
zh>sF&(s3W3SYk_927Bg@*CchXW!!Z7Z1||1^zW_o=<QHSMy1zy06Kpttt#m;59EpV
zn}xcPKH}bVr~cgYDRyRnu@WpJuW+3y_x$Eyda*er7kY!qx=05by-`Z6GIwVNp9!a!
z!3BybWyE&tX4n#+mS!n1a?Dau2RPN-dum1Ob4m++P({`vUyVHYDa69L%KB^TFT7>a
zQOiUm9-k-3sjNm2L`0VI7;W)2=VL#XWdoB;an0aOG&1t6z+RhBc#lDuqnpBd<#P`Y
zdOS}H2J`Dx49`OYDr;D}>oyF$?G`syi)TC_ZT$1L^R(lhr3fR+F3j5Va*{EVt01y<
zB&QDD%^GIISz!W$dFUjz$(av$6UMo8*U&i!&NeGar=&AGJuQf0tz;5&<^WBPgE;iG
zH)#=rdGL)~`|^On$B$87pV0_RRZ?=}vu;sI>V-l9GY&y0V*~P}df+2Stud8O839kd
zy5?*NF4M>?lCZKIJBgU72s(gH>!D%d$0yAQlWct2Yz45RIVM}Yg8%>^07*naRJ_a}
zXgl?^<3CeJ-V+Alh)XY)H{*?1+IrXl)2{3c!n>FDF0qvq!a;_R(6^f%Z4^4b=scyn
zCL0f3A9or(F%5RPR6`=+`FN(lKtC1W9JX$>Rz`!%+;Ij9%~jD<Zsz?Nmz&&9&`hZ-
zshwU;qMA)+y}>BT>(M1yL+6G*(~aKp%<c8y6drZ+oMiX~{dk7w<w;XFj^o{-Y{Jc_
zuK$e2sxX`D*NjuN=ff+kBax!h9q{<Gg<)h<_Lt|+1&={#*HA&-QKx}!-c?3*4X;ti
zpxbF;uHTnl+=(sCxt7cK?u6ftvwyu~IX1EIvv%7fY7f4twPrF#4!pw+DL~JuPlkpw
zT&3J^t||<w?xLi6N0yl9&irlPg(Pnm1*dNZG5WNLO>}G)$(mVPf6gp8G-8cKlC+C;
z^60%O&&#Qt?CXx-bIcU9{PNP4i9yI4U3v6~Yd!>)GF_Q=MI#__ULL#z*hPkUT}2ff
zu}d-?eK}j4g>j_B9twf8j$Kaz?fPcLG6SDoR19khO(RL|(zT4mLXd<U;`3x7g?5@2
z;!>--OLR7!xSFS&fI^ta4Sn}tyYGE=A!AGDk9e04U(lQsT1Rypa<30}AXoEKb97Eq
zhOiAW%-^u7gDLNa1j(_j5&y1_o|=140|p|3Xf<|Bsohw4nM0CHhoYwhOr^j0xe2U|
zaxK5KnK$_4)v`EK>U;HKVTEq|WEXQLI5<MC>j|19=;7HSdOBGHV5l3T0=9g2gc(Ug
zt18NP6Jo0=1Y#+|5NsYEU#ry7yOXPuQjlZVHWsP!>6F-UXMBz4FKyx99Y2eWJr}XD
zYXcj*H?X$8hBQPO1ar;3_P?k0Xp1wZ)ExT_TWA~hnXO%ry}O{xt<@(y&!!n*3Ds%7
z#PU3MXlVLpXR(QFvMBg3S+97W@%Bh6Y`7x&fP_eoFGS{m2xJ&cKVEJkB|bm*ezojp
zvJc;YM3?mjjN(o))7#Z?n$QN+kYqpqw%{N;<0N7XMy|m$;!&w1DRrN7ks>o6e<TUz
z>RQBOSN}PI1T|*cPhuR3v@EW2KWA2FQZS@6k<KurnxJE%pG(k&zyz84Q*RiCQQo`E
zWa;L42dNXHf0=;~E(1dbWD`i&09lvj_ViEuPj~zr5)A8WSbp)v>II**CzlvYrl3#v
z5yqXFB~Z;0S{$@?#t<VXx;+l>(kZ2G62Pgo-KdWcb3d{&BP4CYkgVE`bJ*LxF~|rM
z)1H`86?p@3{hilZIo0d5qB`<A@THb~jcbtek_aGb;9AclYq3npl)HX2XHULDS!U8p
zE!FwGXDZp*&Rp3JOKMt8fq}RRQMHqYdY?oLO|=+2({g<lbIl5b*bUjB?`Y&L;dX<@
z(-eGR0KX(i>uZpW4WwPWAiH)Ut#3ev6cRlDTwgDPx#7Z|?$Vu#-A)V**=Pm9k9y@=
zdMdj4ZuvQ@;TCDpo#w3lE>^?gb0E;s)Az)^?sD=BlDZr`6Oe(HP^&JxOO>#P$%&`^
zzKlyNS(43&KBqE>Z|<(*`Suwl8cLxUWa!3L$=G<q2uGOJIHJK~LKnOYc$iAsYDp$>
zMKLS}1HkZRyGY4w{^6Laeg<P{FOvsBa?=RbA*e6OtLrRW7>DDDm>GOFpS!}!XB$zh
zjS@?ifOkilJ#D=+@t^7IZJ2g#r!|0@_M<8f%AsQrHR+;)wcKuGq-xY|Aw8(5$dEgP
zK8igumR#8>$#RB5jOe4zjFZItc(H|3&k{o@vS`2~!t@sg_^k75FR4;hY;A23lTi(*
z$7!?h03TUtab8>JGDJkD==yS$bvxO8Md4hBE8DIoew$=mRR~j)U5KTx&>ANsJK7k!
z{DP+Ex5r;|I%=7B=)^12L?k5)JLKDl<HP>Bzn)+4xkV^3<HwIgI^|HgS+jHk3B&Hn
zcC1wN;>NMIq-wfxU+ERu=Go9h%W2}GsJ#+N(8}9vl1?U?DUGEhONXwP8>FDXs;L9N
zZ1_TaYgkYGB?Us1Yn|=2O6_;qn1oxS%DG4La%+^%>GdY<RaQ<hr_RdD%;FW;+S+Q@
zG$m7pxAnfP8*JHlhsDs3ZF$41Bf2sc8@f#?4O6hm<j2=6*p?juEOK6|RiqM|Q*9+6
zOJb!L0C8|5UF`6PpY5{$slT2>>6ySVGtvQ%WxOhg)k~>&yJ6GHLi?#V#6;G}dD2Wf
z6;+`+mV2NWF#1*^Ij5VtxpcW@sK8SKjkTEanG%X8LZhqBU(jI~XnYyieU(x(aiGRv
z-V2xMg$(02FHGMXocI2?7mR*woDeinG?r?{g34#l?`9B?ISig{SVJ#sE*~fGSdg%|
z(-;#Ci9y)1`7wrLh$bS)!Tsq~bSe3230R~uqMk4d$GS@-$VrmOIMZ2%t>n|<|JVO4
zEXP;iyOhp5-KDE)=@;o#W)|BVV()Xp>V>Cpgg$X}CMp?TEtaP8(=NV3&n#m=GxnQo
zky~}*$8@bWWy&ja_x;V@G1Il@<@@WQE0k)8n1+0MF*n^%P8)u}#3HU9meaK_H+;*w
zb7MF6d4TW<&gO&kqMA&m6I#%B1w^#t1@t1G+<~)^&cQ@t!H*zqB5gn87fasBfnZ%%
zAMUJ3`E!50Z4W;hC}=I6870>#S(aILrhIiOGv5w)-goCWmizM2_iZNr3OS%!!l>oA
zf8)_ztGMIsn%!X91S8w|C$zHB>hCXMD4x|N#@u}NR58Yn%JWnhQ%UbJ=k3A@%55tI
zHRWlE(JG;z)yYO2(F#&cGs<Jsm~Im><wwlZ&k(m(N_Nr7xD)lnm#n#sTFHaYwmQkQ
zQy%@O<SV4s?>j#~+pejl<Cf@jKQUNwxQBSipXuvunRY_ucag%@Q43f;sE#vlDXC1Y
z^dL|R>$89ilTmyMtGGZzrX-eAVx;0qE6ororrL+g(%0hA&Wtg@atsC;Dm7FolfL@B
z&0OJfQnGDyOKL%-yw>@5?LnJ@t6f7Fi86C1I5(cvh5mJv7R99Ml2Z_K%GDt4Vn$lg
z=gWUzHVoc)Qi7G4P8%49nKaUrAg5`1l5?lU7~c=*T4_b!Yp@7&0<v^OoFX#v)f$7R
zmc%r^wvA!HeK+jK#@@YH-?Inndv;@OV^<r?73^s-U=xa*H-T%p$(Yn8>hR`d4m<>@
zNHiL5l<4-mm#=N&^u;U4!y@!GSlA|sQa6zafzCA|xh*t{%6o*msKmUoD=)K^&d!vw
z5$T6}$?|dJ<<f|K7%{HQG3iYv*nfX0(MQf(-?t^@bq&KXJ#XW5b5s$ZSULCO#c|O%
z-y&lhl|o0BadFt~dpy}PSzKcl^zx1=943*-3%-kArtzSpl2g#wXWqTXKSp5~w{S)^
zbl}=dnrTHQ3+u+pv)7fz#-OT<rXY!?3S1d9o&pDVxVb)>kqMugH}4tnuO2>t!w2`_
z@J)Mh_|RV5ux|s4wKP$8M+&c`giS1g<tDI|8-<pfd4b&MwnUSKX7XAHsJMoPTS#9S
zpMSX<|I`0*9&cV;58FfIOV4>~{6R_uFcMK1sT6eyEf#1IGt1Oe%nr0mo;9Wl8u-C`
zDratyM{GRF3OMfs)6n!(-z$G@q@dz5#9=-9d*I21Dl)UK&e>7pn>l;0o#<&grEDrJ
z6rC?W(@l9?W_S^~S9^KB1kY5)_m$}8oHqQ4iP%m<n(afn&#H~gIO(?^@!C1Qkr9OW
zMVjz|L^p1!7@0oHxC0~lW%`>cld`=J9$Ru%#a<C3J%5QcT*QWCY{(XN%Qfst>sS++
zHnwTeE)~1V2e%;BBXp$cks42tA@p;_l89B)<MG#sH-RrV6Nb%A=rsX?K-Jd6Pt2n>
z+EFuFGovtpHKm-1K#mLyYYcQ3`_vq2{NF~wf6RnZAQ<_eqpw=6e|9HwUhPim`sRL4
z%o5k^`YG+OhSoM@w^@oQ(Y!5l=V++Szut2km_+3{3)1&;b<~$qHr{zwFcXYq9p9Tr
zbWPPKUARMemq{Y81)&LKrW`^i8TRkVF+Um08HPmn3&I%kUKG~B*gHq%W!ouPI6A%_
zO05y|%J!qV1^>K^oHVyZ5G_>Aip8+7=rj<k(%3F4_v*RITob!-u)UGOM_QqqiAHX@
z0P2jkvfI$B%TgNqcy0p<aAn6~VpxCkIdcV(cKP#YBB7=(gYk%~8_HBRv&2;$?*Q6!
zdCbOw-nF&p&g&$hfLK$BYw4x!jy2T-D5!y6m)A+u*C`G3?1&-=!b8J_B_Y{|tE?PE
zscNn>UgNWGT!vvmM<2c-{{9cv)vTwT|2;zc!(a)w9#_d@z5JG~(zg$ym_~DgG}#l`
zlCr+x;w+P-l4R_r5l2f!aa3jDEc4Rzkm7dK)@M>LOEki^NPSSCwvw-cY+^X$HOOEw
zv>RyBpnJg4BDl?Rt26x+_rW`hrSa=*gmh)@&6{YFWIXxW-zyZ>WQ1?X5|t$m`zSaJ
z6IYVhYg&Q438yjFif*FBzIA?d=UNfZFUYD$LsKZ)XmSQYwT3}PT#)uWse0VAP-i3{
z4R*>S@!xaCAG#3GQh_DAN$kYa&K*=7MB#2z<AJB*(z(5@coamT+ZP@Sw_2lsln%&}
zLCh&r!8j7Ecn4d+T2z}JnZz1Q3svKH=8$kl%&|9uE$=F5L?y7FbNfjG+)l1Df}!pv
zG=2Z-nR-esz>>M*JX!7N!BeUWk1o9xR&_7pG8%C9S};Kk?8)aR9H^f&%qE%x*>2;e
zTWrYFc+qhzoc*dh^<-w83lxLVHr^YFQq)X|1%k~8&3#V%I?Muf6!h&*c+BZroEhb;
zWz`OnX$983R;9hdxiHBzw<kn;<nkhU{>djh_j!rpki77M-+gTx3~49T;Dxe5<f>}w
zdD)e)<1U=4FPUNnVZ8xiLmv4ty4Nr0onvcQ0@+*DSmgftG9bis+iLS{n`}E{s55GG
z3PrYMHXt5Zr?xooo)=K79Lxuc@U<*c5%t0(k=dY4@0}<UU>2$1=1zAXq)~y|;_>hB
zn?x2^UP#q#I%WfJpPKm;BxtF`p89^n6K753H%9+6VU}U=+!6#@wrXc3mp)hW0?_N-
zjTO<-rnAn4R+L4cS*t@$2rH-~W~c+K$j;c#ByAI$0}pyu`FZ*(2M6{Jz0$=>F&3fF
zJ~c?27^m!|1s7q@{OZ7>Aom_M{zo;D$4r?TK2XM<l5AFcT|^>dzB+=acl43fW;~^q
zcvYqu%Oc=Ga~!JUT8gT!l+`FE%y0hX{c0WwGG%&0q^a@#(ca#Sc-;y>m$@TYDU-i~
z<B~NHl`k+Px5AWUyfM_U(|q`yl-)Z4=vJ<yo%HZhD399u%*b0TRXU{1I)^k0Wxqpr
z1dTf0OQsjDDKJ4UT?wsJ_2sqAR5yVZ+5jt$?xvKG(UN7A$7Sd<>^w*&hS1TIQF?bw
zn9XbSjvt6WkV4OQKOZiY7LTLKjV;|IVQ9X3#W=E56R@_|zQtieRh8;ed>C|m{T0kh
zy(<uV&MA?Cn%15mLg`EX<l>&$m{Z*-bzm=rLVV)NDaZh*69HoOm8h-cDzu&E!<%j)
z@Sqa|ItL)13#K%h2MxeIp&*K#gh^JT2XSN?D&;vOFqF!|+FjXEkQj7Yd&dW(YN}4B
zuJ^4Z8ZS@PIhrgn$lR=!Pn}_i_t1{?6ZY>-vmIrRck7l;ro#3s3uA7)$=9B7hK_q~
z7A~5ZB%1MtxFiFfLfG6npFsd8FwvUPj=&MgzjL31o?Uqzap`>(GLQ(T5T=B{*aAQr
zD{S}px#ks2T#Ry`fhG?Ql&n@-!6qE$!=n$PsE)L4cwjaM-t;(a))>q(2q^Iga0jln
zZRA!;s;YQX7!UY%A%h;vZwAzFHC!Nd$*eNilu*tEvk_PsfGyumnJCm_cH@~=O7qFv
z>A2Cbg{;jHHSQ-tqbu(9B+O}Nx^nZPw=I&FB%AE-JR;m4X|_o<T#s7HtrGRsTRAsx
zLD$kaPdpLC;g`Xpt**9-%k&1QiSq{Fi)sPMM0g5JIGey89&80>M}OAWuQp~PHL#{X
zq{dBYphG3{rH^Lrsxu>bH<Ftz7|6bEPP?Ps^Q|8G_X}Pv@y7IDfr`#2%2d<Gs(iC=
zg>THVp|nz2t(@4U+>E<%vP7SN*2%#cFgfBjvxgl_e7GfxR$@}lT)3|d?dYl?E#+$C
zYo{G3<@&%x2}3Bl6j<uF3vb_=RiGOyiuCc>BOsQH@FX&ow1Ah;sVKc)I#FGhhA+=2
zmxOj`Rh>svYp!~`*l&QMpWA4&*rXNmk%S;740;xUc2Rz*%n@vSOqBLjf`PoEsA&fl
zYTg+purRas^3Jrkq8=rbOC#0@-<bIH&>$zRxY8!e88=qX?gl7|tvJ8ORTN!yVe@^w
z(yH@NW8=%2Ts;4tc$}48B(WJsLB_EfiF7K7WSSKx@!tCya}0<G!k9@1k`Z6kBk2XV
zC?Di9FOAn7PgIJ?2mzJ1tY*#Df52udSw6d`L;Fpr@&+aVv$UJV9hfHxf*>)ut2)Xp
zkt>~;c^OJAlDI58z{O|#MK3#K+LcS9EB;1j&ysm!k8?EHo_M2;lbt3r3UMQfL_Xl9
z^q+gbi%HE?-eA>WBPhj#8l`Znvk}>(0KBrLorDWH?h8FhguUUD_&hvzqwVdMJP?RF
zx`GKyuwo$zD<$u=%O?+l(OnIN;FMH>NmR+M(rGPxGvY8~SViY&SIsU8frb=+tpf4Y
zN^4F<;+0{!38`y!m_r{)KqK71lYZECx<z}z5N>=MVq#?4{5A&db{a&%K_(Gsr@;oL
z^UOVA*XkW;_7_aE)4ACs_0u(im^|w0^VJw*1ACHEOU)v!R9iSUo3LSfjF@*m=YYBS
zK_s3K{6RZm#c>?j${Ny>fzZVY6VZn^A)#}DEV*l-2E4;f|5`l(sKqKZ0}F+i<Wr&R
zQ%>SU{&JiJ;6Ya5ekSm;SEoP&k|q93ElU!a=lv3~MWIf9>uuPzwLFea+oSE4^;n%|
z)zZIx6U>|XJQ~OIkqFqm4$zL-duRx|E2vD=lxV*hz&{3M+0T{t$zNop8#32~3oiNT
zW-KbWY2M33kAgbevXJ|1HK#yfex)=RnkWNt^?y!4!66C0Ul*CP=&~7l>c(dcoRN-z
z#Mi>~*fjTUW20m|(-d}Wsg0#$tB<VRB4=@pLAeFZNhXNYQYI&PHYJ>={d6}CsVO57
z+D5nMsKy&AVX9A?cdJRuEs@V<LGu_=BaK3#2nT6Fd~Es{ZXfyOtBa0E2F}y-EV$U<
z)tuy>{1wc|AvO_8bbhWLPT43pQXR6tDnEA7wHOkyk8JNMK+RNdBfFu~T=S_>m{jm!
zjw`VlB=Mf}erNVTAq!F1q|gj3-CTq9*+pO>ZcI3qmw~o?BEKXNEVI^YQo<T4?_T;8
zS?>j4Dwe7IXW~s_U%FuASFb~Gnx-^V0u&!ZDUH@vg%{u2uDGqN*H^~JtR8?;Muh#H
z$y|Z##V1qyk)f5^yULX~cF|Fj7R1tH%WCVvKR@SJH}R>mTah_3L_Y?LJWLH1WQ$<9
z6P|%RcrHBxEI{m2$cie&f_9yrSvyjP{k_R81TY-#=<&v$58-UN6V<rgDNHTrQJ->!
zfXe!^8fe;N!qQR9B2YK<^cn!|LMyD%W^>#gKNY`eshg!pFrzQxq^34gyIHu=XOo|n
z%7&SK5=Mb>E9F&(N@ZsfoBdXA)>2hXZC(t53M?EEClUF@yb}Gd*Va}(FuF=LwrSm=
zWh}{)5i%88a8_$&Ei!+4>h<>UL1i7P<rJY$K=}Bw{b<gJXLvNnoa%yTin$1l!KM-$
z3!0fSWr0}*fHi{T%bDB_U>CaO3wz@W>r1CC<)r%O+0h%b{>(_S=Fp=8VQmsnKD0c=
z7PScJl8#$no5B!^`k8Hf<Fl+(iQLblHEYkDdIkph6jobshfAoN%G9~F0-F4ZsAeM4
zw=`-d0BQh3^aQPdC=<0MM$;fp^+BsbTxHNxuCvkSCsHn!Yq@MuIW2d66}TSt@VcUh
zN56>8p(ggU7mX)$ed79Rlzui0%ZLnwPf;<Y+8l>I5oias(M|r<DiJz_1P<JPdY(Ox
zhq~#wA&1z2MFG!ZrAi}nr+shZAK?VrsiGLt&^h|nz(G<1R?&vI;6~cS456dE7PVj|
z(_~GyJ)y~Ev3I5=<Uv<9F}{xWv-IW}zL(A&AHI>cvTGR<*a$MxIfN4v$Lwpt7I0Np
zE9X;6NE05==>rf+jFS=g)aY_{`kg9RW&_TR<w7p~iov+(j(;^~@M_Qf0hz&UTheRR
z0HFtsNqWLfvnNh7?^;}Z5}5^x+S8krNP&%$cfD=EA^M;|DO~emV!*M7yM$&D)f*lH
z6{qbsyabs*CrfTw=4GFjntH$dLVj5;bECT!4L9ckRF<PwZn%G+1vg=Cd&^S;O;Va9
zHHko7R$r;y6qsVJ?aAb0qawPi59?@r1~Q>E^Z(q_j6KR;uHD3kPxZ62{s(F0Jim?m
z_;9I8M^{l5F9H7ilWb3Ek)0}GWQRYW6WNF@_xo769Ww10%qqL8F%sZRc0&&(S*$Ug
zK!~yn<(5UWYu>@EQHEI5wfwi*VafPfnzD&wg!$5VkxknqoPnfsuPwc6RThrU&+U{f
zo@rIIqc#`a07HYd{ia1}8#i=#f$--w?dw9+U^pWV33_Zcl`I?v#$+lgP`)21-#SSt
z1$g?6q1k8!7>lVQ#JB;mbB=NqH$DDxnN0?P-7u`ISu|c(-anz(YE^#1c1N%7Y`sT|
z6rOfl?js3ar><u5ZTC8i9==rnzE9%$t0|Qll0kivm{EG|i%iD2ozXU{X;-eOb^w!*
zDVexlkn^}Z!c35A+l||}k_g5)CVx+Dx!gv5Fo~$1EvQ8Fsn<8z>tRM~+B!$89{}cJ
zP^xYrVi7{R&8}HpNz;tGQk$izN`CU~nx=-I(D)R@f>ZCJiwMY-DvBzj#(p%ZA&^{&
zT_X0qg5=CIiAvt9&>S$*`5n)%GbdJ48lQOzzH~J5eiKqhz3q5Didl>FZ9qGitSu#!
zvjRxV+%mAI?WhG;WJ8eIT4pN)g*8{Gvc&?rEwiEH!o8LXU<EBy6f3OSf(4d&X=0N&
zeU$U+m_$F0nk>*3+G!Ke#6S-U*eT5$ki#_iwfGW}A>(2yY9;`jfmbF6WO|^rHL+G+
zg<+O88K5hp7t_?ur+mLwJ>~hA^=&4?K|Jd)M+iHCf_1a28>o)?Zsl6%@$+cB4s@a)
z?J^7c47kGF^SFZ#u*j-dBnqM^zo*%3V6(`W2kp=i4$TyV@;I)`;)=XX==!aiz;|Q0
zNn8;)jWCt7S^a85@5vN073NinS#(JRI%%i7IjAR72u$x<b<P~6WEg5fym0a;Q_H!p
z;Rdxju%d{n*;WZe62t|^s6G={?i##<S&9PZNYkbll3cWwJCTcZG&8gqd|oUDqq=KY
zi@1z<wRBx7x7C5P)ii?fm?S3sm0g3I9l4`U*UE`B@lNlrI*x8_IIdQ5SIh}1I)K4c
zb3?MHb;w|x9&fQ&5V$EwEbOZ6$jJ^ps;IU*T_aAs0FuLRhmWh<^!K`|#GmKV_h`Gd
z{)JId*(4INBO54DJ^PoDx>;yX_%XlhcW&p@VoJ{13%3D9HPI+HfH6yCJ4i7*uCcHZ
zRI!H1whzo6>J3AripWbIQT|-Dbxvlq$ge9=Py+&bar2dj?O~a2>|Tq8)K~3F<90t}
z!Y$O;g{jUY49nO>7Qok!ZpV{NjIV${k!@QhhU`_8jX7&~Z}iT%QZw*6SKnFllAWf<
z#%wt^IqT4N!;Rk#Cs1^iMyc9XdD<=PG_&<yZ1!OIzsf{jn>7dLLs%)KRQ-(K8yscP
zzLTsP_B9dfs#Var0$80f0FB3(fa5*lIdqWw+!7nyaj<zLg=X_q<*@-L-qM!Z2Gf8i
z-bAgfRh!K(gLD_IQB}1(Okz&H+FJ0qYO0u;a42>fW>k9|OQuc=F2QHiA^6Fv0qgIQ
za4Dj|)?T$%OxZ9e8<;DGwjHtSB6~DTxwe}kW-uKDesZRym!1?eC$075D|LS>>NxlG
zcm}a2@zl0VJCTuM>9RDZQf#_Kht}H;X&@p;ssWEo)ns&#qnAo~I0`$Gb*M#CcQI2g
zIs2td)Kei3c&2IAIBK3<qh+o6$l{t?Mq(7WWKzG`RC%hCj+*kEO5MuhDmiM&x}(=|
znlWo=y|U6q+A+wc&u3Uz^mz(&Z`F`H@l+gl-lPOKQcZQ3p_4rgL-X|)nO7$A&s=F;
zOg((r-I;VGq5D!|hhWML;E`gb7<W^K@qXZ}`$#tuIvCBI=(9{ar<dQUFMVX0C9XO)
zr?T#-q|da7njKZU5Dv99R>`(3T_OjiWV?y-G*W9xwDz4PKi^e4<y9x4KyQ9woM>GG
zG^-DwDy1xR&00aProZmThMY{xKp<lbMzXu2g)-L_N)>?CdGnmI%S1U#%xbIE1*OdT
z{CRFk+5+|`ax&tSKJ1ZBVphYMsY`EC;oCI-S*6qzbH??@8;uxdUb5T~g1tR2pmXM>
zk@9vE?wwj(%?TAmVx%6npzihZk&`OyNN=X3r{1lipM9F8=2jZ>-Jj`VTad*$sGxVH
z^*{`x?KbY%S|S<8o64b|PHuq_bO_DP3&-7$+)CM$X(U#wiDibZ@YFKDG$U)wt<X%)
zs6<UQ3^yNRJxwLXsN?aqEY0c1bmZItWeo8a`f5M(En$ZB?ziQxPxmRUjI*%z0gVvF
zAgMVC(MS_BIs^thJ7QFM4jzfJGp$oz%9z$$6aWAq07*naR77mD<ek*LW?9)naGpVg
zoCW>N_3&<J&K^>BrN`-{b0406+8qT^s9J|wCb?wI5N)2{5gcb-UZi)tnJnpSYADYd
zZO>Qs74KhX`f9aurJR?QQ=XE`ou68f7DVYih8i)1U0;{W>;R<cadHEFj4?xp*ca=t
z)R<x>mro6Tkd60$4w+**jVOgSX+F99sLz9P)nSKl7~^tVtFQnopb0@)>|4uajS{y}
z##$P>_O(c@GAuY&Ht5s~rNFk=eUfaY@=^q~@dKRI&m&~#m9d;injdv3W?gGLm>}TL
zbLA~7=(Fr;*P-`nX|=O7-+sYQ3x>*M-?N$|R-kh>v56zr$)(*aGSW8*F!CXQ<?qKE
zEgOWoqj$1JGc9BrJJc+dJ@_WU^ENu>VC1?S&Qa$2R(G8Yx@6gHsa7OIviO6^l_QCi
zxYuaPUm3@SD%Nbm%0*-QY2$l0!`#Xm^Re6bw7jlnzEQ?lg&n6};E`!G%OhSxl4|As
zKs<k=br5?l7A|}>`ACfu&*R?AR_DVI%5b@Ts9byAR1t%A(dbNOD0Si&vD0vv$(7D~
z;F;&k^TwF7T>6^$slCq}yU7^AN9PIOPLR?ICKpg(%0(A+0V-#U;!NojGH5rIfYpr9
z06ZK&?Jbj1hrFr_J1idcaEdz6Yc~G+%S<}>99lZb#F$f}IWiLOM^XKlOe|{dxb9t6
zTUHw~s4!V{mHB9L_&i<^(_#H2q8Vc3j!nnagYm+XUKgRBxT7;17a@}qG=s|`<SAbN
z2uk^aOZ8@>O=_ESBbt@ANOhZ$**2gZcvK5ZnhE8ub5#TX{ti-OXUB3(P~j6Sbu2Th
z-12_&b<WE4%0PU<NU)(e!p1Qt2Yd;&0VxeY=^p`ml9Q!zqVbRM!mCowG=)04{5S2B
z|AaHj!Roz&gsTMv>rIubUth#~FibSkKGqwLB&QYRnt~bChig=WN_+jx2@mHVP|^5o
z%YUN`ggI_3Z`~qM#$w!g^HtWI+Q3qD1SF~4jZV_+z|dNG24R;mKR~KqpS1^XYRR4S
z>9g`!&$J_#+0f#OPjx#L><lnE6AicQWjpbV7^V|lQ2OxaZc-D=B)u4B9LH&(g3~Z%
z77;!`r=&Vv{@80}!-lHf`XZgI){{&4)a21rQTUZ^Ih#|;!>6DH-B^Aq1b&K(unK3z
z$>o#V*$r>7SaH1=;A2Wu^U2RWv4whNrR+aLwsHX&mJLGVJ6Zrf61!5S3j)q#LgV8{
zq9wG?Fnd>C^e#5)D!NulX}5xz=g|A!?HrT~ku&WNU<tmSW6bGx%)Q|I+k$qLl;TPN
zb3ly0aB-)X0f3Vj;6|j)+tuC3mO49BnkciXV2t^MSWk)c=ICbUro=0=ZAk{9NL{~3
zr{R#ojm!jHIv)To|NN$x5;^P^+HR7rt!WfkaYh_u8HOoZ8NGzLoZ_Cb$liPGCTniC
zvDr2j)}>l2Af;v4Nwd*Tt$a>=QWMvm<;2ZF)-GaZ>&>|cu}^{$RwL5_P4pfl_-rGr
zX0aH0GETtk<1wKi5Pr>++K_p+oJQ!r_Trj|Rp<C=)+&qAV^@{+$s>-vJBXF4R{10u
zI(WNgw)-u!(6(5ljc=w?r<i53+RW>uO?J9Vab<B!nl>y_0)<h-X-J)qTKC4gnXt9h
zVq32IIFtUKOTC(D7fv+P08&}CD-%aU3^h7@pGpG}42z*=1hPp+G0ubwi)2)vEyzoP
zZviR=aqx%)aJ2A*$EhP*8`F$5BFZcH9)r@o)T#k*g$1<%nf(6kXWuhC=dqLac@*a%
z%-GxcvcCe`R#a*-feb-CNRQ>m)ZqEVwGy&}PQDw<$u#3kk+m?*uFFL-Mg~)<y<9Fa
z42ybmcn4axO%@shimQY8F-_JTtRz+`4ON&KHT`a(t#V7ki6h=bk}p^;t$X$rfaMWX
z+#)D1=h_v^17Od-JX%j{kHDMBfZdxKO;#04A7tS%7*%s^i)&0PZIgT6rt?$}yg}R;
zP|V2Dp5*9AF698|{RcrYVXbBAu>+Vmu%>74g)?w6YJd7$2Bl&#ZE^`SHrLn&w2Mx7
z2~hfgu_q3+Tj^u(pKv>-UAYEXN0CV@>tGEm$_L<`R!O(rxb3!IV^<h1)$QiRsjvub
zm(61L1PZh;#jI>fY5D(=`>S>{Y&3<M6ObsZ^t6nnMgUB@8{6v0$$>{Kc}YaDoaWzU
zXK6|^+L%c&l3XH<jX#d((Ai{&7Y7~<gfnW!bR1~GDmW8DDFh6{N^{F-)-HNSu0k_2
zE%zFnSxUd~a;M3#b9L6@=h@Pq?>B?@2%OeFCdh2-OCR*wY+LQaB<ZXTed!IhsS!x9
zl1o2%!xvt&z(g%a7F6o;Z6!&S$l41MgJgwSmdr_EUv1&GxBi^`^~7F<CMrR7j7@{I
z1s?d!*AKTNXDCY0f_Ep*<b7rmX`BaL&bcPG6!#S6*kt~Ursr4;L*VM$1Tk=lDV1x_
z*DJIH<7jUL6-z0<#YAE8#-2L!5GQ%{VHmEoHX$FuohdYe(GIW3=AQ7Cf_0=#CTyeU
zS)eE3NF!>cA-QS6HpTMwfO<2)oA^2Y%p_oyf1d7~X;%yl+nhH^sw4(GThv*U9#h_9
z$&v3o(dZ;opbBuno?@D7eqHsZ&t90(h#!ER<yWSi%OEEatO2X4rE}t}H8kfF`uj>U
z;cF7eT<a*Yj_|BsQ5uG^O^{xt)oy4-N;bFNM_ZNe4ILNW35d#OS;RGixEq8v4hL{X
zdG}&0_{ay(B?Q+E$nhQ87*H&LIfJy9(V71`XL~OSn}??H{-{Kt?majQagk8~<~$7x
zgK*?4$m%)#cK>XL__Gc{R__rS&~>-lcg!3<YXj5DsRSQG9C*Z;*d^x+$6*o{X`H~9
zq%A1Wl#tojD%HThfZ<ohH0E`QJ<&T?)S&8^8E_dvQK$C~9DVxJhLKgWnx33#B)GXt
zi<C30>4>5yukdT?%2eq}b#|=t-0qcqD%exbBg=Mv-nDeDa^gy*ZhVeS=W&m|P4U;g
z_~D5u-*cA0d8w!FCWj4)YZKKY;QA+?@Vd>q*BFHBBBz7L+%7SC(St}+%8HwXmWL}h
zU`S?=-m9!Rro#EW1xTqgL##crq4GA=dF&k(s*O^s$PNUd3^yOLfTgjH;tinnpkj3B
zV%i3E?^g`TVocE-XVdCt>4q&xZH2MmBIYB9KSVrmUwN4f06uwDCaNYIW)!=u=G<!q
zI?e17-n2sOY#tqJ4RxMx#6rb-T-2oA_&(Zu%~eCyZ11ySNG3HX*2BXXgK&EV0y?2O
zl9}pt&BnGpTI4$pqL|^!hajJ<Hq7X#xxx(AZHPD4<S{zEf?P5|hnkx*lF~)H#1S`}
zZ*yKN;^7HEyK#lcDN6l(TeQiS`0bYOlxmFd8i!NIl~2UK<{PlRCKxcSwjEK)>`pTV
zh(>^uecHq<PR|pMFbT#<jQ*V~kbs|F%_$J*^#!K-61Uis*A7glc-fruq<FI!31-ba
z+WpZSe1@TM1={DRp$@}WLG>J```cHMi6%VC8<zmh4|zp-PN1ExVA>fvtsBqPYD?qT
zDX*P30yJ^Vzi`33EOjI2tTMr5=f2G8P0eIY3EXLAy6y9`W=NKP)ZldF9%W^(yOzXa
zl?a6<nhh$R&5bV7e_GAyCmC}GC49rO>%_Dt9EI)OUcBBqYp;=7G9MmRM$GT2GlUR(
za#;e*gpiXmjoEbQGz4uvo(Nkh+6wSOBz{0>?#XF~G|%^AU6$7VzwNzgkYv|&Cib2C
zUaqxuSMTV?LaZbJf*=SG7%t$D(oiI&8PghRMk7zeC}tevag4*^@ceOve>gm0hhpq-
z*kO$wG2@uACE1c?%MwY6n?Q;KZdkZr2bztw(R+1Qb*)*InJ@40kGGwB?!B+7fo`B1
zVj>XLS(W)R-`&pko$u4kxb;D7D|fvfM^;Td_4+NzI3(42IF7ClJy(bnZZg-YLN&qQ
z6euQCcH?*ofE1v{1K~8$UqOn;a5J=4`u_FglY%w+%?>Qm_Z2IRI6o??UkLOY0c6Rc
zoYoY=8tmer$F#VlR~8Y;pCnO;1;4sbi$@qRu@k4W!pXbPi5hK4@I9C^$tID8($zH;
z4OU@QEIX&OfiJgggp?B;&bGQGx$FnfUVx|B<|Q0icqXQ%wwG?UP8EAZA|=OP?FLhM
zP<a_=*Bhxr7*ZX1#%l<w=fo=LtlN`85l+S0m9Ifz4m*?M{ZVx8BmZ>x@1Y4W$mN|6
zCEG}r<v5O|C%vnsyT2{t4dCm>NvmMuSqWF49aa0GKJr{;lz=4<C1^xLj%I#!velB&
z#abatjJ$=jVmM`|!3Qc+0kN>1#Eq(PN*=%JIx@i+sC~<34H*MlE6F^Hu0F}DCYoHx
zgZApV5L$GAgQyF$<%ryfwaO(7v<^GMlW+wfs3s3_=3)nBu@J&jC)nc2JNASt-Eb>_
zH77*cVvSp-6M6&GRF0#amFkGYNw}sY-i~SKY5OFiaq+sPYNm?ONLwg4NvN`hZYo;e
ze4<OpY+d#cE>lH~Tvq~Q>7;ZkE4XJ;3ms_2RicnQZq4{wqR8rIH>wgGx@p1@l|bG@
z?KE4E-~|f6cJ*Sc$C2F7Mv_1hTtKzdyH|R6b+SqliLj$RUsg^`fM2eJs5%{pZavW#
z*i_&rYps&irf6wWKliit#yNm;XtY~?1>&m1(6|t3i}gWa$h)4trWI?V!s;6%;`gvm
z9@2-8x$sPp_bG4NYp@C1#z1DCqkZwII~e3_Zb>0!3XbxmXnd($WWnE^BbW@51WtV!
zj&h8jS!5-pRO0Vt(}v`?Clx0f@ttbiz5>=1$Tkx4z&@`%ypon7m;BPH7>LoAme*+<
z5%-Sj5V0PIJD><K0FT%)|A<oVN?;UZORu`7uO;Uu;$&W-9J5d}iL^%*zChOemG`2>
zK0{Jh^-muVlqctWv|@0K4LOwK61`c5I5Ih0wqA$44Vx=#1aUIK5J4x&D6mO=g51FR
zcQ-jxGf+n|<`8^%z_zTll48n(pCTu+EO%?!JMQwQt5OHte)w`>NaBh*S*E%RP_w#}
zp+SXZS8klHdzXio#1AlAu$9)PR)x{CS0~vfRRf9RLX)V?s`|Su6;%yI0VUU}EETDv
zhuB_gEk7sc<OX>{SW!cHr3JNu48&Qd0U}7((xRTL9PyLSV1tBID1oVeF9jbY%1`pr
zY1uBNR$cW=IHjp#u4RJ_N8q+H1ah<x<euZ2%6(gKjSP8osLg7l%fuZ8m~2@Kbc9QP
zTsHyiqz=!H#gf0#<btvhf)rz{7w@aSdU8(FFz(lwobs9lznsL2OByRzFtTg_@@b!~
z^frWyboE`BU67D5bur8;R$XWD)TD_zvFW2FY8QqSl-J)NsL06435A3rj<*72d@cC&
zDz8M~@kKr$7GGDD2sNE``?DM8H*y(N_3@CU<ZY>$f-SF7;@SAz@kY^$Yj#~H;iqBa
zB0pr2tKtOjv7t9T7T#0L+G~Rzz~6J^I-(HO2m*3A?Idj2$yN)?p%-<jC|l{uDW)8*
z<c`^)b(V{#oIKgKsk8Qu;tl!SYGp5?sj|8g(bT~XC2?p08KGig1W=~x*;m$AEAW&(
z;<~q<go|lB0*HEUT>7ZOc#3L>WMt7&TCR6dwz``Lm384Vr>VnqBkR{5!p-5aCqHQ#
z8C&^!Qi?KCQAbl})v{s6t*bk__2jnr2Gwx`-e9%fOo5(rC8vFFf*lSzie~+HmbBYe
z_>uhsLt20A08Q8QkUfxfTwDBSD|#X0Y;+DJJtSn5RED}tB*`WV36_BoT~U=gT)Y3}
zLYLIpvW{DJ_>t&p(jXzPuN}VPO;sK&H+NBHl5<zrcv1DTTRW+)H<?VFF#y5K+`FrU
z6c=FKG3KZ~TkG|(moaBKzO_JN$hD~9uSqesHD4W9-F=hEMC6?UtiFVx+aCe|xz^u`
z0~)IL-Y2RkD=igIoh-ev@D{1&s^`GLBXcbjV0m;uj~#d4xzFt!`G%w&hhqMSA!fMz
z^{h~H!6aY<4j^vf$wxpD;-{vzl5$`rADYUWI<b4rVdfu*tlTg6->$`SwZViqM4%*A
zf>or*L&@)DoEmNTB(F9n`7AG0vPbox>s&@iS6wGB$xu$|Ei>E!=&WSum2IE(W`rm!
z)dxh}8V7<rVI5hO+1$7t9%9k$qSLOs+mr7akdmZR_w)O5W766)!iqOqUP^{{y3X%;
zfrjE%JJKE-P1>=Km*+?_4kA}m2<z50d8)}Z+$0}2di9P=Us3a#BzkIV?s6!&r;{ZW
zE>tyHvOQ8?zmRyA)K^9TH)_3F;i3yvnlYqEH2hmPhP>vRTH49Ys^|=L*^X-zS2?ku
zbShz{f_E*1;F94$HBObBv(WA15bDc~0ks;dAy=C&-us<@yQ*_8P_6KK!vn5!jd}2u
zaq1<YJK2n<xKqd2rsfMM4*x3i9|$Kn005G6X%rz!$m`Q!8<__%72O#{&1;azg2SMg
zQ06_<ealTkl%cX71(179z#B+6o8ZDlO@6v3vH_wP#FAUB#<Ck%c~zZ~vUEd2XRVyX
zBoP9L0!v?R%fuvZnU3=w@(?b&&ia}nKF_aRH(Q`e1SSP{90C@nrp<Es>C5kACljyS
zWR#UFD-R`J!O;yvohvZn{XQEkinh*zvtQ`V$vy(@Qr8CztE8K|VZG$34VSQV++4cb
zHCZKl5LkJ*>!y~Rhr!jIW0h#t?~}CL75cEaV3MZQ?;UP>bwA;pPWZ5=9mMFG07Hf4
zuFp$uHs0Ba6nV2q;UJ(yvkmUX)s~x-@nC>!OwuPw7qdQWazBHGpW$e>Sq>&vY=zr*
zVU7~7?Wkdr?0BllD71^|vcxFsCG_$np1NlF;UG@3lsBq2m;;^>?x*sEs_#;BYB(x5
zRjD%2*dmD@%0o2~FjP5Lap@#KrqzHU+f0<=tp}&KL3Gnu%R5qbk?wYx{FMn`b~+nH
zlZ%j;@-ptirRM-B$_7Y5JYi5LY!GYCMxuDy2KmOKgv#5$rSZ}cg3OpI%{DaEF4{<z
zc#IlUH_igMtkH|$!=WM;R#U64!bz~z-*_UL8W<cDN7T$Rp_93^E;ip`m;^S42Bm~D
zAZ3}*DG!FAz=4)oYZ)ft+8Zcw3=CHQLT#@6a+4}dDzOn(5N817HK*&CTFO%8&|3=Y
z7As3vBI=re99)E9IxnEDX;8aOV;Q8!YHbvAA)(;LiM34)P1b@Ts`XYvzok?+k!wzw
zB~bw4LKGo9I~q9a;8W0T*B%?I(Yrf*hjn<_Oi~i?lR7cwW=4b@QCdIe6fK{7vQBO(
zh5|kHROA<|60|7koMnrwM$VPBS_1^#K?mk(6g-sN1P`flrRM?{JbF@W0)(7RRwUJ`
z>qu4=h2f@vNzkz3oWjd(HI@|+r%F+w;f#Y%fVel`Q_y(=7Vf$!@;>l|F(di{Qh=i@
zUpjyz5u+RB#=F8CN)*HoZKE{iZW!Ti@ET{5cz~GgO!JO8?GR4dc|bk#<Nc6eg)Y^R
zjwhO8__9pmV3}3?2T`J{V_0%(@LJEzad89IR7xZ}nQNKB7RjiZ6j5*BVuQ1Sv<3tT
zSTXsyn_bm<<)%@%@KDky=TocEW3{vp1*;Gma3gE^T5$(jTAFkFUsWHZzBwt^T>@>`
zt$$BM4nkY-GJ#gMt1=h*fI&?@cv*BeXF}ng{=(wQ_}w7{NfIfe=8audrc{YK*?#MG
z+Li1$b>4vjz2tI@2lxCXs>g2ox&}_W#+tvn_KrC1D%abF02{6~*3Ao$y4$5Y2U+iy
zs4a3NmtF2K*X59+7*f+tFSLq8QfiW^gQwgSrP`^a;F9g3A(TWYW9?F13w*jGIzdi<
zeJG}_4<EmO+jD1CNL6yk*VfrJD^72@(r4Fkxy-J+q8jAIw((54yV2`8rf8{C&NHBz
zn1pAjK{9gwD?WOqJ+IMrZYO9AVYq|9c_+It5J)q}#bcT-8P<^ty@7WY!&j0_!ac35
zF<e(!mY`xTQ<X4dH`7_UbCw;Kn-v4A+qX_C<nWKf()!u5<P(tpt)-gF#ub-2H+paf
z&}6O<1l1d@7#9<Ssj^oFlI*&*tLdWX*dcdxaR#yh#X(A<MwD4WogK2svU9H7%(5&N
z;^))V5ZM4zjd4OwP^x>&S%ec#=;(Nlt~VJvFm)&rR|H06t;QRBwAJNUw_GTOr+}Cw
zx&7+gK#Ap5ast=Wx!KCK-?krK)lD^EqFkh;*!6T*RZUxLlm)QWrpP<EiftNYMy>qd
zT4uPQd9J&ts?(~PmxSDfUc0yK)a+ex!~jlPV-6xhnB_Q?U0IU4Ih1IW0GApmC`(V_
zL#AY{kzHjHJ}X&dJtTsOR4byJmjd-@3MS875{`1Oo8Y11g+Ds9k)<_#AL_&*hXBL`
zN`xE?FGBM{LE;s5a2pnpp7=}UrB|g`Qn7s~hNqAm71cl-2y|ZMt8UjVXD1U_JAs{8
zOsvItJg!PfT4BZ`G^qO6jc}E$lj-DwFRi4lb`@(vfDo-dswIEJ>Mo(55b>RK%k9M0
zG|56))`<I+AQ6`j0FIlTWf1Z|<iIn1thlLg4Klm$mb%>g%VTUK;&Sr)`xWFkX1#RY
zt7gpc5Avo1B5xR~a{w~0;-1?s;fY7ClDEcrJsh%x7@BLTMx*uRH9eI}nH8qs4vA1$
zTZCBxf*b_iP^^Lxa0mz>>&r*6Lgo=i!+S5;CmF?>!i7{?0TPnFQb0hHOpwU>5}86;
z$|$I4U6v`6B(n9<2##@`!6gCwv8C2HM57F1U<sFh&m=}1D5g@rDG#0`O<XG=?zhyz
zlL8PW_P|L>!fk8-0yJDjHXB+tsu=U!^<_n+<;Jy1npW&OMzG{Sc`Ox}DGE(iv{nk$
z7(xVwHhu_&X%ecs@~m!biR3Rr*Efx@W)6UGOtH=o{f=5nD-@pT-_`53u&9Q%&!j0A
zpJV#*qz;S#a?X*RLNjrOJ{5L=v|}hPo4TePY~IxxbMjPY5G4+N+LiZF^h0plIZ1c|
z(xQhGUg6eE4fX*~L>#P2jO7M~%iYFR0+Rt-#X3R<51#%wdEP-%9aIt`Y@{5sB@d(E
z;La&0?x=L*gltpD#kRrz^m-Z82Q-Rt_IcW4;2AmBlG(OKM*6{J6m$cZNTdRHHN@DO
zxFm#~umOJi(o6EeHt_>)GMP9$f*!3HAxeNj?3-i{QKzbm;5gEbBLo;;W}chXV+BpM
z(YXarfI=q;YTY&+cDvZ)kd{}SfY5O@d8e9IB+;@%P7NL$#f0lPFSamh7oP<VoE&Vn
z##`sK$*vlUOpHjj*jnU+!&WS(wshsV1xFj}+({sOk-BeE_s?mLqB?^VYG5fR)Y|$x
zyX-wKu||2{zRHWj^eZbG;&ju^ETO7~3)8g-aqxvUw)SLV-i8E2Nn^G)nBaTQtzvq5
zgz2eG%uILC>$Z!Ygqn8NO1W`ZQH`<U0A``6TLRunU5N5p?(?cM6;g>ezuv|s<HDK+
z^~3#mDbx)S$jNZCXwlRIVk^Z|s&0-PcfP)OC`On4?2`Fa$Dv7*Aj`4<E?jI7LtekS
zkvQ{!jFEJIby5wiX|mvP)w|_B!SG9>wbi(ErHN9nDX*WVX??%N*y?hn>u4z+Ip+X#
zb>}6&dp@42%7Mtk(J0}FIssd5di^;Jzqen?Hp>#51as*_6oI*rh{`hLDY@x=>8OzA
zKxlsb1{qy}atKG%*}Sru;akTRk+j<|?G}<&3)D&jp-TYk&O3nVA<{R`0dTL<5MU67
z=)?57$P-JAz#F$jQ)b2MFYjjFNl;oDqF{_wTN0i8F-5b8uO6H0xe;L9NvxYt!b!QB
zug$p7;EGe<Kk;nEg9bru6u?`1uAS6RQ-X}luyRbQkijTSx7$HhkDGykb^7P!7-&v+
z-?f)xrWbm1d|toQh(pX&Qe>nm45jxLjO$CIP$D<Q;U5y>@Oj|t?_M4@nzB6F3<G$i
zCltu?hk68@14nv7<$6dA#xpaRbh|K}4ye<CX}5D=)1^pGU7<%x1WHp(R#&$J-jqD?
zF&ZfAGPnffemTSn!?lq!s>4ZZck3h0apwXA1~r;aD$;V03R^Z&R7p8gA6iZvs@(ok
z|I8{i9Tw_vvJRfeq^FEinSJZ*bZBwG)<d4aWGva_0$yazTW`wR4woBDCjaF3t0}#6
z7qd><`qcz2v>^pFNRVw*n?Hbl3*{XGq)&}w;k;Mq*vHy~B_1LedLVBqG6C1$v|BKp
zHcYnz>ULq;9YA>=@Al70lS^M&8L(&Ft6De-h^TCyVMYnn4#it0p{kZ%@7-EH2#OL*
z17<4aR3cD9RhucrNWmN&zD^REiv6`(N`>%4ZH>dpA1Rz!CK(JU>Y(X5zC?J{*E5bH
z4?MP5zuYD{*Y!0e?xDuKBPjAHH<E5emQ<*u%CVu|aZQ3!<2K;A&K`ivtJTA)f#=^l
z!k?((^blQm6LW4X@$1I$eu+4aY}MeMcklT&NjsPPqC~^h2Y}0D=%AuR^MS6%S6J$z
zhdnez6-rLTeNvc!xmnlSNE#zyYIWwn=D$me47{xzcp1}{9B%TEkR%ROm4V@H8d+B_
z<%}gP)fjT1u`GlljoL7Bamwy4S1Hv6@|1rs64D;gq|5rM8fYZ5jr0r}EMyP@8nDC?
zy%{QvNpC8bg|>cHS{ydI8ln?&A*!oTs1Qor`7V9l5x5g~U9<kYo6on$(lcP~q;lJ;
z!4jEfC<r716U$PRP-IUfj8@R!%Y6U<AOJ~3K~%PO)|;}9(JMnEJqF7zgO2RSSE?v}
zoF`sWcnu_2X~2;-%z)cmZdzN)DM?Yq3NS)K^g+3$ax<g8H52J)4-r1-EhoLJ5bV^$
zD+rk|zqOZqUS;?Mk5+D;vY%h|Ffb4Vwn$2@8l+Udb>eJp{~q8p`!to=Vn)I$0?$y7
zh=fk(JbJu6_FZZi$cn_f@I2VF;DUyVxJN0lc=c1sE*oKjbttWBrM^IE&MH?b;+|`6
zIDJwpieg7D%JU9tv>yQ;!%a?9S=B6@@sXpYlS1Wpt?Iq-W6@CdRdy6Mm5cnvOU}l&
z5q))b8j9GhiUf#9U3OUnYv}sBa-f73?15*u71b5Tw2q)iC@0kPyCz%))cA(RCrHW(
zaxnBwtg{qz?cb&6JHXNx@<gbaWI`vWZ(-bzU~B7s=79U;TT*H5)u1y6*+%uXq-;`7
zd&Tbc4EY{Hqy}#Ug;u2!Q!3#Qf>y-^6x9jN3YuK9wkkH-awAe8VWoS~L)I%q@f=o-
zVMm6z<jV_HRZ7+)4uN@8<pqkJ*hDC-G^EvaLH+hzA~@_hp?Et69}baH#(MNa^N#?u
z7wjMV!D}h(trkgtXP-B1c!C#;8Ud$u#QH={R@Q7oZLT5kMO~cqUFV$rHNYVjxTXs*
zaq|J?K{J7^?6giA$xb{;o9zh~fV=`hNj)XmR_w&OZm6l5_!3FR$?l14yjrnu0b`cG
z-uOv0-UX1O^Gc;#QygH{Mq^v&04eTIz9umy>Pq`1Fkh`#uZz0uM#0S-+O#2+SGVUK
z(Re*ZU@5U5K6*2MPbW=r)BHTzQ&VV9_0gW1LaWoM2|UV#WnwU9fO!NSS_PbO!!fs(
z&VFYeOJzGDZpxBk4j5(`76w}wN347*_q$PeY*Nh<RcVEx8bMI#&qbI{<)$v&q$Ex1
zGM|d^%EN|re4^dP>iZUp#gNBqW*U+;k{D8oO_Vjnq$(Xj0bs~OY?X=53P>Vw{P0LE
zU6+-a#Q}n<ejfYY`g2S0kNa9Tk&_ez63jlbBi0cJ;q6t2nsEPPZKXQ2@L{lSGfNZl
zEe4bcmC=HrtKhto=LtwsRrh*zZ>lK_LO*5Pwbx>Hc7oa231((9^m{qeZl1y}7@rJb
z!WL}DK*lvlMxgQPLo9@>EB_7Wy(}QKRp?y6*BR6J<EPeeVw5+vHI(ICiy31pb*P^t
z?pgB82O*K<$j6n)yfS&@0(x9{uZ1fERe2jS(_e{X_#Jp0q~bDwS6%SCvBKps<0Z>v
zERF~zQ|Mrm<wsV8X0d})$DuOGDMc0?+eBrF%=+Cvu{v}JnyR3&A;@cd^Rhz4A(HzE
zdxjM89OWUPu@*5<P?$CxK@gMH7o6?@58l8yu!pg4o^fE_V%M}qtHnjhmjNEvWbzf9
zRzhN}g4SALY#5A*3!yDawspsi`#kSMV4Ph`@E1?6V6xr{&auOJBxQ0vs3}n4#XW#S
z$!_B<MC-KcIVGUb>8+B4K~|WOV_cM*s@R&@OW^64&syODK-IE?Szh0QR!Ss}3&x&G
zN{CiDlvt7$N5V$+K^0R*$xDe;Aq*+NHyHa4O+DgHGm%IP>h|9{ufvta&d1F-8F;_;
z-M}p$2@&+hZVLIBRkcZN>d@c(oJ^$MEtav{?ssL<|1C;IHD(M;PavBBMYXNDEGObx
zKq_c*g)NW8S=C~9m}TG)W`sm6g7j9XnMAAaAu#GS<B+R76QUuOhfK~rPgPQ_EG1E6
z0*4hfmr%$x<iuB`$|Es+wyU@cfsSj=GP|reMwB}Ru|mOd=XooIC}MOC1|*p{fLM%q
z8``s|`256%sR%5U3oqMNL)mhNdp@xKIIrbK6S)r0Uqd)jtN9oQJK+gI@Y~#&aR;lJ
z(~i(wDcAu{AoWi*VHquicmpdw`9PCH*+f!tx&>%Ck&|s~R|9qM{i09b!4**WL@r4a
zL!Ermy0GYclVA`J+9?i|imWq$xCjAGYWi#+ZC68*U4>X3_tyM><R;yv{4~2gXB=v6
zma<FYduxOoN2RC`g|gP))yD*ocbHG2aeK_|)^+oc`yE5^$vAzxdcE6*EgHaNr6GU@
zk1?G4b?x|{n(F(6W(Py$?HaG|Sa`NJ-?T<ZFR>4ts28*mEF&yhV_m5vxk*`-%Miee
zJA@NuH(ID1!cdFV-}u!eDnW7f$~-<NU)5^M)yd<skOWFO{&Ny!u@ta;{w(UhRTVK=
z-Df!CP0AyYo)haB+(8rMah-KqLH(wb5Y}CD-NiTyV%O7Elh7fe%Z-}YBc@=hzh?-%
z6J*|jOAaFP;&sX_Mp&sgG=;?<V{Z%b%xiTbnRAue@v?qs8)$DtmcAx<$V)fI>wv3h
zkwYx6Rd&7Rc9V5<Q^Hjt@%JWDW+I0!%HwN`bV+FnDg+XOW&B_D0|<_|`g(F<PCTAE
zj`Ze-S~dZ{?yPI)Iuy}TT+Ai1Ot8sF?z@JPn)X6GXlmJ>8^E>8h8tOil^ea51&i0W
zDZ)k9bg;y5_BsrZxsuR0R%OHh!&08?^vjyM%<S;$DZ$M~PP>4%I|VFvjF;Z=I#ej3
zdFhoEi-ruTer>t%lR#NRDwUG5lrXBVxayZTH8G*&54QrMS~cc~a+kvz6IwXNt2c9~
zzN)gyYSmPHd^*XNyK}}{DB4~0d$L_sS7s87vASCi9!_4?`Q@TY(xk|95KtXLZh10#
z5E)aEd&=y)2^<#wW;KqEdmW;%mx0%)IXO3FzkjTJhJX<W(qD<!CrRS*Cg>(3|5`2u
zw+yM|J-ePjovbFwM6{ilWWc1yUe_e~9EyB`xkPfm*7g)v)?$)n7>`G=wi5s^xT1#A
z$u@%e$wPk$)SgF#LABxwAzmZ)v)VNnghQ64q~40*tWk8xiCVj+jdJ<`2+^3c4jtG7
z)r71VEA76zV=kO^E>&5|&izpKKP2nqG`@($Dgv-+KQ@+)Hu*TzS#9mn#9jGN$uDHV
zLoRnyl_3O;jlI7l*{pdUNTB)LdG}m?<^m;Y1;el~$4wTV0-Kxazj>T>`YlRjCMYXS
zTC$285qGJ^fRD2blSzgw%aEoiv_@O$D(6;MVA`cJh)RHw*S!X3K&iaeHVKuQ8_#F5
zVYr&#y6mETFp~Iz;u<#ay3qH~F1$PlE4pS?dJ6NpiNjW%$y|B?WjIxq#Tsh)@-Qh$
zMvXdTbYoB$f+|s$Vd!d5(>;ovN0c;D;_^edi6(MQ2TD7cfK^2#%wBA&oKxMA7w!RI
zYxB)s2%g%BbtKo`Qj(s%oO8uCOOcFwlf*P>_knkqw6oS?oQ*Lak1-sM&~A?^gqBH)
zc!>-OEgwvjl_>GobwabomP?tbG6|S3%7U$xodTdY$t4?&F@(uP&|nz~D*c4A{<YUp
zlUTUTHty-JYqW0ShblL(3Ui!$x3D%~rL1)lf>k4ypi_cKwvjx9oUS`~U?3UN=)MB?
zKH!0cLXV{2*>|=70;G{a4+{<hah1p=op7q{l5wECf-$84om4YjqBAS(hb^=RjaMRN
zg_7eEz(NLvC{>*ck^Ky10=oo6*-5ZrsL6#7CgDO!JH=n`SbZ%fiGWuS5|i9XS#C0!
zV7N8JU}FQFP8$HwYPXRlNkv&Lkz{qOjsgdVu-hzQj1{;>zz^AX|FqOIDo*>l&9+pm
zb>ch(Kt7J!Yz6U#5?c(oO<pokCvC`u^6E*cELPz+lEe{k7*gs|P1P=QhPZsIr02>x
z)Rh&W=AvzR2pWl)w7w{(mNIh92zf|MK+}bBl&hUo2F!@DwZ!nqlSLYwoswg@zN#9B
zKvouqKxv$+&u}>d^Vbxve6h)M?{{2uQnEjcA=X+oJWjVQ2aR_4Il0%9F}gk!c3g+g
zvJC4R8|W;rU}7g&-x#3XY9UF}Dp8Us46|GyS~P$`RR*_G1{Fs`)iV$F7Dm3QlL|>f
zD)|Q0_ggd27`Lsls#}<vVYkE;SVxJWKH({ZZXieC(fLm0y%-ZmL9p5|;^2f>pgQ9!
zYxT~8<ysd&hB73o5EVm_f;2lYY9RvZ^8nNvmdH;eZP$?EEq)W?i=kl3qFN1Qg#|9Q
zL&}W%TZNnhA+TheHRv$^i231i!x#JsTf;4^uC8KhYb)3`PTL{inzH)p?~%7SuO}rg
z%&Jh|7{gN$cCN3jfdC9P2WYq3NLy*{(#vvHIS~^JlKNv1xcWl>yp(scU>Fp-Z=@|G
zP*XkG3hkE^gn+qqG!^d8(Ub={nf!91r1Y>u&&<}z*6Ku(c6VJC9TW$Y98{`Y$C685
zT5u={ZU{!8a#NDplyXB6;FT%0pklQ!%2v{fWW>#&*If8|bNVpqDyJbqMjYGJVTo;-
z=&gw^v^2BmV-V(`@|a3~LZxjO+yUaJp;}*$BVI?$^N}sfCF9d%GQsBN7M2zlv9!E`
zY%=k;)K262NDSV9(b@Tfw?_h|04&Jh$x|nB+nzn>Y^>*<UPbNMwR+pbgIq>i_nfM|
zfp8s?Bc~Y}tcrFh>z;LrYH+(yVx>9XaBn6eQpkW8U+0wxEf^qq@!)tP{=FCWm))bh
z!b@xm>8h%w!7#-)tL&N|>5?kHkq9o_Sf``OrwsSF4+514e?r6TEkuFU<utY_)dxl>
z9tal6Wh=DIe@rG5oL^qXGsoX3@(4S`vNr5qidpfP#1wBo<E5c#O4?;e3|?GVz|YQ}
z$u++CEuAkr2lQUy$5p@-{MNoVU8~>xz5gIXuw;-KgX?E&k&s}0odQX_P;QNOrXJfs
z+UynHi4aak$qjE>Ez3m6G6I*esk(Av4BAOrZKkoEU|cdKzDFO%7_?1Nxz8C}jCIoH
zJ@V+JDH5SRw3UtDllLhP*VGuaOs%LhnoKYW^pF?vT%Np6Q<#*H7z?wVnk+}uV}%;5
zbVgX!*B$jG_UrYmqN+NIq(-D&MrjHd14>(>@78_Xv1dQ-+;_0L(1pPUzW3&9@99Nx
zWOf%meDDZbNglf|Z4U6%*;82E+I(*vY-I5H+wMdwsWt0=aN>0=Y^=R!=eC=+aNnUL
zI50f}0+3mYqZbx%Y;hrWLX>brnAAoEFQZ61-EpVf^zFnXqZ&2paDb2_qi76Yl-|G`
zj;8?Ja^Mg?dc)1t^V4gqczogXd)mq$+&zy6Z@Q(bPMlp|#Ty%IShJHWu;~c1-2?|`
z+L-Sr=(h~ggpgUr=E&mwMuu~1W2_D@zlYIEQhe;@+nnFMwy}!y<KcUDZu`AH?m2QJ
zZk*eldvDfaXb3N_Eyp)}nOjLRN21%yx+9LXqd?rb6ER6w^wGc0C1vRWSgniY-EWfQ
zlEvi$O%p(%>)w-(B!Nj2B!%0TBx!!n0qpx*aVh(4gCnyoeB!1V{PO#E;mBMYi9yXJ
zC=yZDGRBs1{Nf0YzP5(1A6v$`^)WWb{I(AON)nhPak1x@={~RGcnwCbX=_1Ax}$q0
z(4{Aeg4o%x)%NvvL<}zviO8jR8w)QInJ$1uK7aM%B4#_?>P$GhzK)6Pe%t2#*W&Yq
z!8(3=_7vL1A~?UXftBIbj>fC$d9P*g(Ib6){*GCE=9U@k>ZNWrR-Mv<7z*>f4(`3K
zgMaXmUHIm)Rea;+RXlxq6B{G@mcLKN7Ehizflk#C2b@`7b*dQewfWteWO)AkSu77X
zD+_;oWobw2Ike4ojI;|EL!3C?12wVV4^JWw;0E?PMB25I1UK#8gMBlz02ptaK8vlb
zVU?jguzMFe`*vZv-^12$i1A<@`;rdE<6NP#+v(tjLkD1t!Rpo~UO0Q&$vkVGxvS;*
zjq`hOXm%Hv85b@t<KoI{Va*flpPof$&m4Bo&R{qk;r!_lW|1P{eAv3}HV*FHgKnpT
zjnNP<ojX&7II+*WX?Gi6ymJP>diNX-PN%5&&(NeL>ObGr1^&)GGx+$8UHrw%>-gQD
zF5~Qa7QNruP8W9`JOo1qYl8t!on5FdxO;jAW~PT-^SOI_{^Bxbk~T8CRej#!1N$&D
zH3iESFP=MtwXLnIetxGr9o({KKl<%9Hitu;JbSK6%FVR<nA<&vnf?2arU@=wTt@3c
ziape-I3eceX0dnoE)WQ>U0A@m^)-P5prFSes!)dFY}O@X<*Ga7bQ1J+s#TUemtKSv
zO&flGY8wCemwpL%-f#l|##g`cZM^WzQM5ZPeC*Q?;m$j5!P(<yu(>`!x4#>|__@3A
z%B#om*rQKkV|{?zZ@dNn-rxQlhzP5L0e<s;{+}9o%C3gz{Z0pe=aZkrr|!HH%#5dg
z{2adhjqd>f9{kuxaPNoj!pgZNtSqje)0@MmK7Jb(?_R~Xzy2szm)G#V>u$hjfBDmx
zo1MYg<%{?iU;Yw~ojx7>JVS(g4|VV#Ke!7IUf)AE1(-8LD&aeNo+lOwfB)WTyl;1c
zfBE=DJb!i=utvZ~Z@&%y*)RVJ2!xBvEBN1j=l4Mb+<5c#`1EH#fox-lrE`k_fREhr
z0sP86AI5hc`96-n`X-ox|L|9T74y4yfx-A+zxhpk{i&Z`_4E6|8*apZ^107rZfXik
zOUwAu|MN9mIKPCs-Lv>xzy5i&VX$!W9I~x3?!EDL{LK&DhsS^L6TI~NF|^VYpL*zH
zxaY%nf<XA%kAH;!<&nP#C*}gDvNpE5rF~m+47UX?$o9nSCjdE+BM4jgG{xb)dvV?V
zeIR1&pPs?Vw2g;9{V`nszU%Ro-}?&I*EXuAmH9op@R=|Cb@V^^Ain>Xk7I9t8b=Q7
z2LsqM9E#H?ObdNAJZ~il4$SYykpug3H+I)<Oe4WvAN~M7@xXof#+M(#={L{h{Cb8k
zJu{6@{K8+uuYK`z_~YOI66U*o9NE7Qvvbp+R)VQcCrE=$06uk77ysp_cj53%3PTyn
zMlI>_jVHh$V~jFJW^)v{0gxI(CnfY+gqHCSfffM|-`K*z>D~Arf3Sid9N$95?)}b9
zPvgk`e12xTT}&gvksGeVXFmHW9DVK>o_g}xyyL9!Za#GX2l2~)<6(R|`z}ttaSAsb
zI*6Is88CpobF<gP{Lb`xxc<OC%uMysH3@dNduYwh;otwee-kH<pT=X4K7rA23<e`j
zQ{3|Y_u&`*`a?*zGMqVa1_yWT!r}e<LBu$;d*0z{)O(5pEpQYGvc1Gz0Gh8$bfK7C
z-fj&Y-l0ohe_;KF>#je9!#7-qZ+-PUSiZP|G$BlN4K{}poIkgS@Bigv_=PWg3VZkO
zDZmCC&{AdpxVoyIyROmn%oINU>4)&hpZ_I}zj^}308`xr!;!_x#T7jI&F|sw{=;9x
z&9~naQ4@8qPXHb`+`@nRH)b*41Axps*;j{*7Z%2NabbjG=LR^tyoHM!V~i&j?UZ1-
zjT`s%@ZszGxaVLSx9>?Y*Y)Yc@7P25FCL!3Z$E1B-Qz>gFA!}aXt!H<|J}Fa^ocWg
z`bW<q8;#NH<fqBzaExbv{2X@ep2hp`z8wo^&Z9<3UTgE~rqb`Z|85M2BYfu@-vu+H
z+c9V*gtfs4N1r{0xw%<9^vV12r+@Hg-hODX>zAIqi>#WePu}`&y3#In?=S}N*>1y2
zw_)$Tc`RRC#l;KDNE6`JBOTm)xQkQgM|k?!2F{&Y!0PfE4jw*$Y@E4nl|$;Kp+Z;5
zbNE%r@?Ktl`FI}VAMD`$H}<f&lHsXi8(3Ri$FUb)#_f0Bir0SjhF`^GH-Niqe~N$h
zu|9TpY|gGDUOJvIo<5u5n=fzSjnhkLjaIR*wS^BRV@%IwNDX7cgs(l{!q<<s@yOg9
z4)34FLpM+1*Y4`!-h-)E8oF^7_|N}ZAFp4`aAMUu_bcb8*Y9C&_bi_M=?fSQN0^&V
zasLOV0RTUKX&uXJBOHJA1n#;2ZuI(H-)+8T=C^L?ZFkzZ?#MyB@YIX2)?#)l!QHn^
zVb@H8pB&x5!qOPWUVH@)eEdFid!0btoP^)Z+t%SjNjtDtVe^xE`tJdxo#eE0`{g;#
zyBD<ZqEEWhZDY7KM3!Y}r3N<~?BMzX9ZdHVJoEAfvhf(3gH23L_pq|O=DZ)Ivl)DK
zK8Fiw?N9ZvzP3>{d>q-|#`Oo<n4L;+?9EM#GseZmWn6dt!QlJl_4oA&fB&8qKCl-c
z&YWS{7&HFlr4hb$bQSx@3%IwvhF!f3?SzpggfsyX10;qqM`Q5%7-M5_d^p6(g>^iC
zZa04Oo*w?z9WC@*q%1w~Pao*upMQ4~gK>zqn~|h>8E$K^1%R-7CdDm>^F{vJsV%Im
zXV~1_f-$*Dkaw@w%>35G8|_vL?M@pj%PSxPW~Wlzbf}HlsT5}y$5>b#VSRNYxBUH{
zKerVCCv3RAIy@SXc6R%uo#VD^q@CilV{r)6Hb^^V?dpbs&CL<^U)Mvcm11jij8{)>
zp_LL|IXMJ#eqv6|Okv^dg_<^5p@Rslnq#h>=lY%jV0~=^Gjr20Ndh~uc<s~>GyMc-
z7e`p#$TRT!4(!3o(yCAt^)<lS3E{IhC-}wp8KkIVb^sV;!0$Z1h38*i!u`Dk?CFot
zX#t&9f=-*zX%V_@LYfj11N8d@(;;xDn^SU)$9VDO3;6GsW^j6S3cq!43%iwz|EU`Z
zU%Vs5|NTOSiS@r{mSwP(F*V)KGxN)1ynG_hyf0iF10YOI_c57RWa9}urrm3BeutwG
zwzh_t-@6BIzJ3Zzs~KKBHN@Vz30^z71qLv;dlp0ngY|(oW+mr;>09$QWw~grJrGrL
z-~{2OC?ZfD<Wh}!Cv|wwKmj;+dI5Lc`+gk0;X1th(kpoN#1OBZ7y^{HzutKB^_ZIK
z<K*#EICSKoBP-72_BzS<@oIS<O7@&Sc@}nJao305kLRCy38xlDICXwl&BEUO^SJ%a
zTk-WjeFXifzBgv&lj~=Jzx@G1FL7h`jWOf*o|)kJR~PW`%y~?=EZV6-zh}_z8uU8`
zy^cYrMQF7MiD7iR1k*C$Zl|CFvp_b%>hcEu?UM{bAOG}$6sc&*pKSwQxRvnaDZ<Ma
z>qS(K!RE#$7SAu?<~wf2o3Ee5#>N2O`SEIHo_hU0Zn@)qSh}!;&5Z$Mi|(~Kzrc7n
z#v8A^i4Wd)Cyu@NGB!81@Z|IBl{s#A+PM3}AHb<MPh&J3d2`#8w8Nz$?Y4=xS#jqP
zyXZUC+<3wRAnZUN-bw8jU-1073wZVD>-gBGAH*$p+>ErHRx(Prec%>6@bUZb+OapV
zytGn$7zKa^>;xKD+w=OK^IvRkY~g#~`XL^A_yOGWk-O0Ccad||B{*`^VSM`Y598#U
zr*YzqQ^6cSdHqk`0Nl2F0_Jh`|HO{*t=BR<@$w2Dp1FXTHlx=`Fg=xG*K`Z>b8XDe
zwXu7)g<Uf(%uc76ol4PaB`|3UYPCS^HcYz%>a>9*!Ekeg-+O9^?;Rfl;<K2?xMO~T
z2d-nZjA+9xzUz3L;icz(hS|9peEic7VP<xwS}8NLGx+#t9>VPI8NBq|&oCa3z4u=`
z^Xt-b9ewT?HaEBMnJ;__`ws0bh&6zz=_%a*u@B?Ojfe4*$DeipG5-8+6T>UUS=sUC
zw5(IuGw{-l9AK~tVD>3go{L%dQI_G{;u5akvnOv9SzW^*8{^3zKZC(|jL&@GQ`p+v
z!rIyfrlxx6_PTiH=@;?TkDtR}G{o}829}pskr;#X7nfbaLIsStTAmNbV=OMOU~P3B
z)><rHT)~JeUOM&~l70sdKJ;PS_t3q#cyR^2UKdl-eZ2h28+hUeKfxAHu(CP8#ijgS
zS60@rwz*mLYJc%|oAaiLk$>$X;orSH#+|JTm~JzA?F7^P1T#}9=B5)&_YJyjgLaz7
z?__cT4wK}pJd`A$G)2J>0<spIW!Tsl;@>=z;Ep}Oq3QYqdnxeoBZP0g4lJ*&V`XI(
zh78V~JC7kOPMtfCM;`eeKJoBJ@%R4GuVZO3cLnD6?83r@B|P%T_i^^@c~~&co?XZp
zvf1L?H8Q{Jg8>$omVpUlWn~SkTbo!~U&B}b{4epD&wc`5{CmHG)#X);Mq|wH*^TwV
z0N?%IlX&&`38ZO?iz{nbTU!T#aCUL2j_G#*yotu}9>;@=mUBvRDtpHvUV7niiD;v-
zNRaOR&EI&!5Z%{pwJJXJ(P#`iDY?Z7AHVx9{09#|j8>9hd1C|r^&kBaHU^uRl&?t)
z+U-_#3T_OyutUbKclCLv)k3Sd=Pb*Lcs0N0kKS=Re&gYXG2QKAX?-34`kUXx8)whu
zj3<TGUaQ@z`1-a+BUrY$doSY;zUYE#Mibx<o;P^z*b?rWx`^p6VRkCP+)N9zQz_=A
z40>IIR^FmeM2PwS|JDD?_|oeMc+Wgcf&DHm8BZqQEW=c<h5zUQgMav;31qAGW(NGD
zucmluF-5oCE@0ypqv5z3l5VGs|L(Vb3;j+9h6um^=%e`l3oqm-$|}R%s%X5nMk8c)
za@EgoViI&)t%`+dG#XW#X4lL#e*F_4#{;+BhSV5*^XaGYrN<w~Xf&?q!CGlrB`il-
zhEbLQVBFZv@Q-gAVE1erdv^7(f4+xZ(`~d`B-CTA*rm04Y_7&stH;)aoxXakD+g_h
z{DgXar9his@5F@;{?q^CJdO^hfHe8;%D2DsuK=t9I16CG!P0Mz$3Wq}xhMd}1GnCa
zeRFeI-Q2|OhY!OtV`wLW6KI0b)+CU(+>ZV0-F-eBk1-6~vjK2mejYdO-;Xm(OL*Ub
z1K2k=hoh%XIVF(MaOhqCV@JjyJ9d71e#78}(_<WI570@0ZacwrKi}*#{S>_}p`GS2
zy91!m9LAC2JZk^|7Ys>6K~xG#isG;ujxC;9NO5{~gd;O`hOlRV5A7#Bciv!qYb!Vm
zQ@tMUID8nVmX@$<Y6>^)-;YP0e%g6mHX237@#>x5iM80!^Hcn}+iBy$+iypbB<Q!>
zxci11@CT1R>R8Au8w1&Ro6l?hwa40|en%mMokHyGpo|}e`ZXu**e?f&=NDF2u`wKC
zlx4WEx>{h8Ir{o*{W(C`91gLzxrqrgme$s=G8i;8w$zUg?#;kO8LoVsUQ4mGI>v`)
zM`*VUdffz5-2_wJ6upi?yOn3;bGj`Ca~Q(OU@y@~#$c+IAmeGgw!DeM)9z>AxyMvf
z9lGD~WP+8!0OQF78(UjgTwUFEJzVS0$61E+tE-rwnE?^u%*BgEvyk24`gn_YoJ+v%
z@TI<Y2iF!t6q;Y%eg5W!3;5wnFX6=EBJR5WdTfnGkQ_bw_1F4y3&!Hw8XiA(49~ss
z1|GcqcB~8rViShnZ@}2o9alK{at>ZuOfW+ubW@<+GU#^`^m{3K-30BHfic$YfRYqQ
z%z<Q$sI?k{ez%RO&J0eiE?{D_ij9Q<Tt7o#?nUo+b2!9v$B*O3ue^fy9XNn<%gfuY
zhim=$R+i!D$&*+f3^3d8V{I^Sh({aW&prb0t?<$Z@qqz~tL=a{p;UjYB2ep^k``8U
zpWlDWEts2{f+50PH{5`|v$Kt_zt*3pNrD^p?Zf-_@5j>G8t%F2Cfs)D(6;ZlAbj)n
z6i=TcJavxn^f|&4rwzXPN{YShG17$4ZYSt=67<>z?bIMiY8KjxmO$~H)x3|P&nI+S
zDfZ9w@vY-+Jo;u*eg03+62AIs+IYW*cJIb52M@v!VfXYj?!Wcc_uPEy=hNLTK6?A@
z7>-8RJ2Qii-gcYNP-uRCt%FG6q@83)Cr381nqPviHp4nnVwE3MksSxu%g&^x&a&mx
zU^ZO*UmghM0rERv`3gE|iq*jYkG=2$PA@G5y@)IL+z>Epi$kiDCg`_KebUx^&FcNU
zJz^pF7~uy`KY<@T{}ZeX2KeW{`>(OMzJ|Fpi?~zu^}ckpjV~Q-J16;}_7)D!kI-%<
z=(Y?xZG%=T-|V%nT_hCaZGyu>=<(LQJ-m2s4!`|G7uh72r7FvfyHbvh$Kv7{{5SvS
zzs3306+Hj)3)mcuFqhiP<D2po@O6vVPAo7O0TVV=jXE^ji7{vyLcd*)+2-03{>2~u
zE;dIaJazP0w9^!`$t3VC-1R~Lrc(=J@&ug`8+=Ek7?I@{AhijvT-pYRvlEw|x3>O=
z$zbz{9SmmeXf(~^@f56W7Z)-BAksZp#XJ9?R=O*hnf@Y-*$V)-?489Y4$mM#CbFHO
zLZ$r4kb2*BkuwH(-pKzwUEFm?UzdffmU|6Jlt5tYZH=+NYtifEZhW_$pp}|>(Qufe
zo1O2Yuj?Yg?mpPZ&9nRQ`oby!*Agi0me)41xjDjUoaIC%LDDq&ozH>03}Dl{M}ItH
z<E6*Mtt@kJoI^6Gk-4mpjQR7$HO3QXfQ76BZl%$+Gc(o4^)o3RI@}XxU;^-}d;K|f
z1=$1Zg}|6f8J$*wb}K=e=CbNR;YjRUYRcoU<H%-a-`ejmn^$dkyZ9$x`XPW_0OkSA
zB46U|5HRQ6dbIZMyRLiNZJ(v0EVU;!_{jb)5*k-!4|kH-SsYcFq$*>;d7XC<=oxbk
z484f0TJY>FW&*<yBTZZAcM|lwDLU=ax>GnK!~rEy2$h`*3R7%;B6L!N8}|2bU3Y?|
z6~g+4!Pc;pN3w9>v8+`KL<z`Qb)w;iL+p#z+pH|dlxwex^?0+?JPpquocSv+ng9MI
zGoBv<JZfI+9R?1x4L)+PBfby&b6V--xqp+!B%e#5(@xOqq-eL2Y90x-CKPFNty)|?
zPCI=NkV|Ln!Eh<EUUtZMV+$j`3Lq=~onB2F-gLX&q}Lsl8@|`?WAC0Bv}hDqWP#18
z>Z0!ARvT4aizAD}``mIUy~Une<0J(-tsFwzZ6`<*s;Q1;vd4o=x)$D*R$~$N5!$T;
zQ~fq9TXb3m!*K>{CwXl-xS8sW$D(Fjv!8MuCUM{}^~T&PuP63-`cU@Am^r-p%inKg
z7VQp!r~}jM#us_7kN$KU`}fRLHSF!zOMLzf0clF;brSTt`KEW8Y*;lDM%;2jAPHCg
z-KsU9uNPS_yiL+hZuk*^b@4OBRrE+^XZxnt%gVZQZ@Pzl^D}7CFtG7zU;;-ryknV!
z_2<AMV78G(s~5M8E>r@;7$8l6c1ma$APr4gAiJq3AWagZbSf7_k{EP5Ef4{{c8Y8=
zsr1dG2N=Txa=5Rx@r@7|Q;uvRcWiCLb?QTg<!hCzy)v}ubP2|EfNp%lxB5Ly&2+GD
zemcD2gX@Lk>jjL&0IihJZkeLWLLg#a{85YB1e)(80<WULQga`ptkUbHS{DuNv9`)m
z<<@<4HCgs*()RA1r*79$f%fY3y4XF}M~h5g5r;Ogb*#PjddKqH;O2IJXQQ442a#5s
zHyu%KAv}N$g<U(}ON$qFN^ymxl_E(9ww)9b$2Q__TPHT>z-Fx7?brtJ$A<&gE|F%Q
z$0fZ8jvXql*Tlv5n_06++XTaHpwo$4_-+^7UI)8pd*ZrwoAuIk;9HoYvSkdaJj{0V
zWX``ip!C&{nk_B4^a6sRfb=l7vGC<ji>vUF%*}35l9r-gNYWIYP8)5SG*}`Vu<$u?
zlnYTb?m~bGSS_PAgK-yw+6?TFj=8U)QvZ%4IbrG2tIWC-gJjm)eL3MMfzUDrY^Yw?
z8qVq5KitC(#vMa80n2REn7iZSzlYS}OKP5|;Q&_2!Xl1uw+eaeq}X+_a4<=brYX9e
zmOAilAVjl)xm5SUMnIndq5}4+Ip{*1b}`wgkozCvwA*gIFuP^KIMVLw-00P$wcA$e
zd6CKGsFTXVi;XKcwwEB1uZLLNr3>jk-}d!#p>qvyV28BM6blC~jftWtb+p87m=n!)
z;mIvOvQ&a4<jPUT84uTsk$*40mQiuM+}Psp<^6c~FAqY9_gJx@4WPz{)%ex(p<Z8H
zk71D*63V<y9V4b#FUIu}y!G-H=3jKa1Q}|Zs&gS2t!{#m0IZ#?mu(<{Ch*)UOMi7d
zCvx-ST)Q|Dj6e~$NP{2XV<-IgQN#1Vd!6f1NcA)je+7!I>=7flNjnzxb@}gdhs4H1
zlGTuU?$na0;rm{~_)ydMY<E3Ptb<xLHok$>8X<D!z3Hv37wllYF#9gGOr&uv{)S%^
z()OSclc8lGWx0483m>xbSJiVD+`vvEM3zBFw<87y*=zmKuNQHUmxO7EleEBy)4muC
z%-|6kIQs4lo1&J+mbDr3%0hbKIGCOC24fOMk?{;tFhL-|tb2%f_aoXtIr81)_t!E_
z#BR7l<c|jns|)2$U&?ynx4T|K1Q-!1^S8TRV#&dng}(+K<Q)Gy$a^$DIQ}u0TSkim
zwN^A`RXwncd;cV#^EN!^@L5nVX*_V5$Ad5FqZ{?p-3Awbd^qBiy;s*u)7MO|we4QJ
zvf)%{j2Wal6?L-1+g!1<YP|Lt!OeKAq@)vX0hW`d1?_JB5CD@s0&}fL?%jv-mSXoC
z8c*p(65?Y?Aw^UK5?g`K^W9Yy=T?96q#gn#!GJsbPOcZcGwY@4D7)r1JP`u9Yv0}W
z{XiAZ!bdYn`5$MEDWEe&3S-X4v+tr+r4>>ON;9F5rYYj!{Rbgf)SNTWzz>}wCdHcu
zak$Cv%sPq)WSn&p3*^V4B*vw@cF@HZNR|-bk7x(_0|B;~cVxY=JLas`(dAz+JLj~!
z+Mhf4i;|&KQJA?&6!yDILo!_&Vy+umWbIS_J=QPnA<5Y-&FFT>5X9Y$58dOP10PUA
zK)vx`9~J8+iP(uJ9p{O|<D>aG*v%Qml}*`4gh7o*a6Z(@r4K_r9`5_yS6}LS!P{Lg
zc<0tj+2Z@2NZQqtO<pOZ8VGV{hjzdq5=_GAll@YYb^(sEs9V4;_gScNC-WAph{{=+
zC1+s-f>sJ7?U=Vu+F>V2J2waD6G`a#QLm3B?X*u#!HMMH_&~eKm$+Vbl(cJFFAc1<
zS7g0Vvp)Paleo+8kAl{N8cH2kEO!`j6@#yRE0jfnSha4LAwP-BPzkF`=%}L0G+^}B
zGJLTOwbL(2-qA>YR2!IwcXYjMqYr;s*2^}J6jwRmCU!r3g(hmJa}vy^hrVOPy(K6x
zMN`t1d57PIFVA>1t0?VkFLNATN<h%<bjF9@#utseiuv-LYj1hI#8WPpalPz-@#dO)
zNNHfcGKUIXqM-_%#^hEJ-N~lrL@QMj9iBc8<TftLcr@@dUeb6_!}}Eo##{WfvwH<|
zbPQuj-FJ1p(3M>;Q9MN?hBwOMUv1At&vGQe8sbg}xKp7rh)#w`P)LxYjN)acM$WOO
z5{@#X-g4%eih;--4+*agjR(bKPb88r5Ee_zW0^3_Qe0fkklFkXz4io~!<-75VA1OW
zyZS&v6R(`5%TBxvA(7J}PZ8dAmQ?|Nd}LPbU0pAs*I%jivO_V+t3GMxmW8<fotShA
z;g89c<dr3BMj&Y;CqZ35>XLDTI3TIXVPAm2L9$tWeRA%<BJpq%G+e<+o$+X}fFy2^
z*_AYs-*1!=PAvhipB>@E`9=Knl?5C<y_%g{9%WnO38s53T)(HAzW+!+{m@NwI50DX
zBYO#lb^*N($4RZ_CW%ziY7KM_E3!f`{RYOz<1%@t*Gq^1;|i^p?Ocs(t`1+H$n0Ao
z3V=P(Tq<fhu>%G$Tz-kfi&6iw0l>k$O=Ql}X=9%TOAusu<3a9c)Zn28x0r#|0pYQq
z4e;%!&f>9`PHnw;Zf(h0dz!6X0P`xCM;mLcbYXdG*H4eH@BPEaF6_Vi`l;(adB?8y
zeK$?xt|M*in}Z{eu~R=hh92~OvK|i#dM<Bez2I`K7X;K~F8g|64}Wz{Z+KE27V>li
z{IZW1OR|sWmh2>6*-7D+opB|Fpd$C=4tgf~l$P$c+LYw1KvMS~Nz14kpx8@T#){-H
z=ahf4Ae_DkeEElG@h6WT&t5*h@XC07<N3+@#v7BhwG&|8Le8O(mEIVoX`1fcbMV>G
z?z>)F%I^Qs$>FWPbjNi1i+4}s(EJ4L)OVXX;1YXz013PadJ3Twm_HU;?rA6M1@JrB
zE@{0)P<B^hz0fv!m}}3%BO<tm2;O>|%w~{HgaaG=Qom#1x<LZNou<6KXQA>W$8&FT
z!NihD!X>saIJpG;?~feEm!EijbmsW!zsN2w|Hy7`E`WIimoTOL3C=Q%&z?J*oxgB&
za$w&Nerj+0g;N9i!Z5S_&)qYP>*g8VRs(s%rDo+NZ~S)S!+&+w%X=be#{nOPV@Va=
zOAN1_IGTi^rt3E(?L2o`ms_+;O)4=3pXe|LPKm6AQWVrEveE*E#>2yASNG<-zNZ!^
z_?Lh7I{x&rS1+ucJoD${#l@e1c~ETZEdYb!=T`B%kuz75Njf@x_H=e(@#vYm?t1Qb
zvHzb9GM@d_`(|*%URz6Bb0kS9hnb~E#{rkV4w&QP!;l;sm$F`Pxz-Ebf%O7zJh!g-
z_Sl$K7je999KtXMkyG4&w2KU?Rs*fRlSl#)!K;;)pFtF{NK642oqhLH;nn4M1a-{`
zASSR#+6~9R|M!FQ_}Y(-UsyYRuH5YFVzaL!Cp;a*Hhi(R+IBQ<Z#?z%pPTMOop1DZ
z{geH3Tl2p%)xrFfI~l~P)tTHRm{X?oN^Dfog@wl_z!`W6>%|+#OI<IKq}`QVFHKl_
zBmR9g|8&!*(wz$>W+<}512ef3uJB-@gqss}Q4MeoTQ_d<<z&j1LqCNTWIwJ1`6Zmt
z2Qq-?j&I?QzyIpi;<*by94{_DQ&{$Lqb~zk0&t=DS^mGO{$Cb<yD)t9wJ)Do8h`1L
z*R#<}rz|W?b9Y{##_Y9ASq8=#+;qJEQ!{eE<Ljk)`CgIr!VMeVDr<VR{`6cmrohdI
z#vpKXYkV{ZN<~4&lhE%G21ZaIN$9P~KthMSW18K?9-!`F)b!1Sre>4Sc+_Cjl?}!p
zfBz(opI?4+ym0O@OeU*hvzHsa-0aK6@1=V${~wfx#OVC_H?yUSfAs7He*UR585UO?
z#w9i%%0;nkG2%%*HWZsE4$jv*wqAmV*A-eXAt4L3;jht@9eL~^PDeDqjmslWC#0K^
zWvgQ>nb`PQwEgQj_9Z;3>E`jEZNCoT`8T)l{bT3t==}L_@o;pZaMcIOVlOLq-bVh<
zs*TUQzVXbnPmjj-%YXLDc>UxBiwW<1`B7vftd8R&LKcke$LETz7ya2+aJ?`tjq&EH
ze(nG?;6iIj{ac3mj1W(pniJjbsY*s3M_HiVlp^kFl%tHo?q5tQTCQv6+O)VTI)U*}
zqJ)fqv=MUe_}Mp>adBg`ke$EqGm(8C6mI%@@qcWin?U}h{M(4LY%pG4`Pzv=diLb1
z#rmduufg$ifO4ePfJob^@sQ8;NM7oC!R1^pd}Y^5v{50l!LEs<T~5)ALQO>ttWw}8
z$rMRpm`RjVJi<a!YlRf?At`djfP2M$Xx;d4hhUN#Vm(65)LQnj7jM>Kel;FyOdRq?
zs!5=hH!{3<Y84x68%K*xE|YZS|797@Uc&s9)_yd2_PJM(CdXb{Vytgk9~BmGi{<=z
zZmfe(;NbXp{py#vUhsC;3j*tfugrR(Dx<fvvfS10&==a=%UeU7SY)K8pnzuM&@VHS
zTf$(M`k1BMD6>maAW?Z%TURNFAf>BNah0<TE8h456+)>-bJz>9jKMHhf=$HzyV#Zd
z+Ur{uZ=7$Hq{-Dah`G35ThT`|7xdBvM?8aZ>iig|SH~EwuDznHyWH#}y!8&tY_hsK
z0PysS%jOF!8;tdVxK{)OEv)t2bY=?><J1L4#z~daamS+`pRFuI3vIl<P^<waSV70l
z7NCOCoJ++U>(;<nU|n6Rd=9LSa_xjQ>q;#Hs^&hRpI{kGVm!D$JDJ(jN-VFDW%WJ0
z7dCuGK*j(bd*!tGjc1Mm+1P|SG#J7I2y*+n&l!=_YdoNgMB2Q)LNdp`2gIb-e_9^_
zJa23hOUlWmb^Mcm^Y4&uZWx|S5F^I(XsyL#m|43HvpU(@JnO{YwY7gco84AP;>qL(
zKRH8#fAD`TcFo2b*xKCN<fc?Ts>8ATQ)Yq9R^OTf6de};SlS%m4}W|CfBKy#V22~)
z<pMa*`16j|$|bHB+GY_nWYqmwHf#Z9N|%|jI%Lq^#D)^z*UW}zYnNf|AMwOK$>VW<
zygr!TxVSdW<53$dYdr74han`Jo7s42DI+qm@xfqyEwzI|3d?UT2}Q7WYwI<;x^_xz
z@R4%k@isR-HlBU{yZyU9@Y~BH{=j4~ndNNK2HS3>Y{5JJz91gkba`cDHwKL_-P#<O
z$=Z5~EPHRSm1@0gjqGsis7jz(x|VJOxrFsJfV}|rBbT?HhKnb7uReAn19myap~S}P
zn)~Y8wD9sfrU1HX9%u2^B+4&E9xcURoku3Tv{e8L0G85gaM8=y(iAuJS7F1y(+5kL
znI8xXe>vwcLtXAG)r;GaWb)4+Z_%3)Vc7^kcCBvsb#XK8pD&OrVjX0{?s8c6&}Wo~
zc4>*ypU>qL*)L_KWpu5%^hUV$U9s7JzDO?rLecSic9}PQIgj%HpU>r$@z%;se@$(8
zz3I)*7swU2@)}t4^SQjnH$Gj1U*1Ii{qx6_ivxix!*2ZZxqOG`^8W`Qd7$&bdgCwv
O0000<MNUMnLSTYkrBwa^

literal 0
HcmV?d00001

diff --git a/doc/testbenches_doc_resources/server.pdf b/doc/testbenches_doc_resources/server.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..6034fcf667018a2709804dc9bfa136a56aec281f
GIT binary patch
literal 4366
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
JF(H{k{sW0*OH%*<

literal 0
HcmV?d00001

diff --git a/doc/testbenches_doc_resources/x310.jpg b/doc/testbenches_doc_resources/x310.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3e14d30a15849d57cc30fb384024e825217fb50e
GIT binary patch
literal 11188
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

literal 0
HcmV?d00001

diff --git a/doc/testing_gnb_w_cots_ue_resources/gnb.conf b/doc/testing_gnb_w_cots_ue_resources/gnb.conf
index c96d2074456..206e1b4f02b 100755
--- a/doc/testing_gnb_w_cots_ue_resources/gnb.conf
+++ b/doc/testing_gnb_w_cots_ue_resources/gnb.conf
@@ -21,8 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 31; //0;
-    pdsch_AntennaPorts                                        = 1;
 	
     servingCellConfigCommon = (
     {
diff --git a/doc/tutorial_resources/docker-compose-basic-nrf.yaml b/doc/tutorial_resources/docker-compose-basic-nrf.yaml
new file mode 100644
index 00000000000..cd1e957ad8b
--- /dev/null
+++ b/doc/tutorial_resources/docker-compose-basic-nrf.yaml
@@ -0,0 +1,360 @@
+version: '3.8'
+services:
+    mysql:
+        container_name: "mysql"
+        image: mysql:5.7
+        volumes:
+            - ./database/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql
+            - ./healthscripts/mysql-healthcheck2.sh:/tmp/mysql-healthcheck.sh
+        environment:
+            - TZ=Europe/Paris
+            - MYSQL_DATABASE=oai_db
+            - MYSQL_USER=test
+            - MYSQL_PASSWORD=test
+            - MYSQL_ROOT_PASSWORD=linux
+        healthcheck:
+            test: /bin/bash -c "/tmp/mysql-healthcheck.sh"
+            interval: 10s
+            timeout: 5s
+            retries: 5
+        networks:
+            public_net:
+                ipv4_address: 192.168.70.131
+    oai-udr:
+        container_name: "oai-udr"
+        image: oai-udr:develop
+        environment:
+            - TZ=Europe/Paris
+            - INSTANCE=0
+            - PID_DIRECTORY=/var/run
+            - UDR_NAME=OAI_UDR
+            - UDR_INTERFACE_NAME_FOR_NUDR=eth0
+            - UDR_INTERFACE_PORT_FOR_NUDR=80
+            - UDR_INTERFACE_HTTP2_PORT_FOR_NUDR=8080
+            - USE_HTTP2=no
+            - UDR_API_VERSION=v1
+            - MYSQL_IPV4_ADDRESS=192.168.70.131
+            - MYSQL_USER=test
+            - MYSQL_PASS=test
+            - DB_CONNECTION_TIMEOUT=300 # Reset the connection to the DB after expiring the timeout (in second) currently can't be changed
+            - MYSQL_DB=oai_db
+            - WAIT_MYSQL=120
+            - USE_FQDN_DNS=yes
+            - REGISTER_NRF=yes
+            - NRF_IPV4_ADDRESS=192.168.70.130
+            - NRF_PORT=80
+            - NRF_API_VERSION=v1
+            - NRF_FQDN=oai-nrf
+        depends_on:
+            - mysql
+            - oai-nrf
+        networks:
+            public_net:
+                ipv4_address: 192.168.70.136
+        volumes:
+            - ./healthscripts/udr-healthcheck.sh:/openair-udr/bin/udr-healthcheck.sh
+        healthcheck:
+            test: /bin/bash -c "/openair-udr/bin/udr-healthcheck.sh"
+            interval: 10s
+            timeout: 5s
+            retries: 5
+    oai-udm:
+        container_name: "oai-udm"
+        image: oai-udm:develop
+        environment:
+            - TZ=Europe/Paris
+            - INSTANCE=0
+            - PID_DIRECTORY=/var/run
+            - UDM_NAME=OAI_UDM
+            - SBI_IF_NAME=eth0
+            - SBI_PORT=80
+            - SBI_HTTP2_PORT=8080
+            - USE_HTTP2=no
+            - UDM_VERSION_NB=v1
+            - USE_FQDN_DNS=yes
+            - UDR_IP_ADDRESS=192.168.70.136
+            - UDR_PORT=80
+            - UDR_VERSION_NB=v1
+            - UDR_FQDN=oai-udr
+            - REGISTER_NRF=yes
+            - NRF_IPV4_ADDRESS=192.168.70.130
+            - NRF_PORT=80
+            - NRF_API_VERSION=v1
+            - NRF_FQDN=oai-nrf
+        depends_on:
+            - oai-udr
+        networks:
+            public_net:
+                ipv4_address: 192.168.70.137
+        volumes:
+            - ./healthscripts/udm-healthcheck.sh:/openair-udm/bin/udm-healthcheck.sh
+        healthcheck:
+            test: /bin/bash -c "/openair-udm/bin/udm-healthcheck.sh"
+            interval: 10s
+            timeout: 5s
+            retries: 5
+    oai-ausf:
+        container_name: "oai-ausf"
+        image: oai-ausf:develop
+        environment:
+            - TZ=Europe/Paris
+            - INSTANCE_ID=0
+            - PID_DIR=/var/run
+            - AUSF_NAME=OAI_AUSF
+            - SBI_IF_NAME=eth0
+            - SBI_PORT=80
+            - USE_HTTP2
+            - SBI_HTTP2_PORT
+            - USE_FQDN_DNS=yes
+            - UDM_IP_ADDRESS=192.168.70.137
+            - UDM_PORT=80
+            - UDM_VERSION_NB=v1
+            - UDM_FQDN=oai-udm
+            - REGISTER_NRF=yes
+            - NRF_IPV4_ADDRESS=192.168.70.130
+            - NRF_PORT=80
+            - NRF_API_VERSION=v1
+            - NRF_FQDN=oai-nrf
+        depends_on:
+            - oai-udm
+        networks:
+            public_net:
+                ipv4_address: 192.168.70.138
+        volumes:
+            - ./healthscripts/ausf-healthcheck.sh:/openair-ausf/bin/ausf-healthcheck.sh
+        healthcheck:
+            test: /bin/bash -c "/openair-ausf/bin/ausf-healthcheck.sh"
+            interval: 10s
+            timeout: 5s
+            retries: 5
+    oai-nrf:
+        container_name: "oai-nrf"
+        image: oai-nrf:develop
+        environment:
+            - TZ=Europe/Paris
+            - NRF_INTERFACE_NAME_FOR_SBI=eth0
+            - NRF_INTERFACE_PORT_FOR_SBI=80
+            - NRF_INTERFACE_HTTP2_PORT_FOR_SBI=8080
+            - NRF_API_VERSION=v1
+            - INSTANCE=0
+            - PID_DIRECTORY=/var/run
+        networks:
+            public_net:
+                ipv4_address: 192.168.70.130
+        volumes:
+            - ./healthscripts/nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh
+        healthcheck:
+            test: /bin/bash -c "/openair-nrf/bin/nrf-healthcheck.sh"
+            interval: 10s
+            timeout: 5s
+            retries: 5
+    oai-amf:
+        container_name: "oai-amf"
+        image: oai-amf:develop
+        environment:
+            - TZ=Europe/paris
+            - INSTANCE=0
+            - PID_DIRECTORY=/var/run
+            - MCC=208
+            - MNC=99
+            - REGION_ID=128
+            - AMF_SET_ID=1
+            - SERVED_GUAMI_MCC_0=208
+            - SERVED_GUAMI_MNC_0=99
+            - SERVED_GUAMI_REGION_ID_0=128
+            - SERVED_GUAMI_AMF_SET_ID_0=1
+            - SERVED_GUAMI_MCC_1=460
+            - SERVED_GUAMI_MNC_1=11
+            - SERVED_GUAMI_REGION_ID_1=10
+            - SERVED_GUAMI_AMF_SET_ID_1=1
+            - PLMN_SUPPORT_MCC=208
+            - PLMN_SUPPORT_MNC=99
+            - PLMN_SUPPORT_TAC=0x0001
+            - SST_0=1
+            - SD_0=0x1
+            - AMF_INTERFACE_NAME_FOR_NGAP=eth0
+            - AMF_INTERFACE_NAME_FOR_N11=eth0
+            - SMF_INSTANCE_ID_0=1
+            - SMF_FQDN_0=oai-smf
+            - SMF_IPV4_ADDR_0=192.168.70.133
+            - SMF_HTTP_VERSION_0=v1
+            - SELECTED_0=true
+            - SMF_INSTANCE_ID_1=2
+            - SMF_FQDN_1=oai-smf
+            - SMF_IPV4_ADDR_1=0.0.0.0
+            - SMF_HTTP_VERSION_1=v1
+            - SELECTED_1=false
+            - MYSQL_SERVER=192.168.70.131
+            - MYSQL_USER=root
+            - MYSQL_PASS=linux
+            - MYSQL_DB=oai_db
+            - OPERATOR_KEY=1006020f0a478bf6b699f15c062e42b3
+            - NRF_IPV4_ADDRESS=192.168.70.130
+            - NRF_PORT=80
+            - EXTERNAL_NRF=no
+            - NF_REGISTRATION=yes
+            - SMF_SELECTION=yes
+            - USE_FQDN_DNS=yes
+            - EXTERNAL_AUSF=yes
+            - EXTERNAL_UDM=no
+            - EXTERNAL_NSSF=no
+            - USE_HTTP2=no
+            - NRF_API_VERSION=v1
+            - NRF_FQDN=oai-nrf
+            - AUSF_IPV4_ADDRESS=192.168.70.138
+            - AUSF_PORT=80
+            - AUSF_API_VERSION=v1
+            - AUSF_FQDN=oai-ausf
+            - UDM_IPV4_ADDRESS=192.168.70.137
+            - UDM_PORT=80
+            - UDM_API_VERSION=v2
+            - UDM_FQDN=oai-udm
+        depends_on:
+            - mysql
+            - oai-nrf
+            - oai-ausf
+        volumes:
+            - ./healthscripts/amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh
+        healthcheck:
+            test: /bin/bash -c "/openair-amf/bin/amf-healthcheck.sh"
+            interval: 10s
+            timeout: 15s
+            retries: 5
+        networks:
+            public_net:
+                ipv4_address: 192.168.70.132
+    oai-smf:
+        container_name: "oai-smf"
+        image: oai-smf:develop
+        environment:
+            - TZ=Europe/Paris
+            - INSTANCE=0
+            - PID_DIRECTORY=/var/run
+            - SMF_INTERFACE_NAME_FOR_N4=eth0
+            - SMF_INTERFACE_NAME_FOR_SBI=eth0
+            - SMF_INTERFACE_PORT_FOR_SBI=80
+            - SMF_INTERFACE_HTTP2_PORT_FOR_SBI=9090
+            - SMF_API_VERSION=v1
+            - DEFAULT_DNS_IPV4_ADDRESS=8.8.8.8
+            - DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4
+            - AMF_IPV4_ADDRESS=192.168.70.132
+            - AMF_PORT=80
+            - AMF_API_VERSION=v1
+            - AMF_FQDN=oai-amf
+            - UDM_IPV4_ADDRESS=192.168.70.137
+            - UDM_PORT=80
+            - UDM_API_VERSION=v2
+            - UDM_FQDN=oai-udm
+            - UPF_IPV4_ADDRESS=192.168.70.134
+            - UPF_FQDN_0=oai-spgwu
+            - NRF_IPV4_ADDRESS=192.168.70.130
+            - NRF_PORT=80
+            - NRF_API_VERSION=v1
+            - USE_LOCAL_SUBSCRIPTION_INFO=yes  #Set to yes if SMF uses local subscription information instead of from an UDM
+            - USE_NETWORK_INSTANCE=no  #Set yes if network instance is to be used for given UPF
+            - NRF_FQDN=oai-nrf
+            - REGISTER_NRF=yes
+            - DISCOVER_UPF=yes
+            - USE_FQDN_DNS=yes
+            - HTTP_VERSION=1        # Default: 1
+            - UE_MTU=1500
+            - DNN_NI0=oai
+            - TYPE0=IPv4
+            - DNN_RANGE0=12.1.1.2 - 12.1.1.253
+            - NSSAI_SST0=1
+            - NSSAI_SD0=0x1
+            - SESSION_AMBR_UL0=1000Mbps
+            - SESSION_AMBR_DL0=1000Mbps
+            - DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1  # only needed when ims is being used
+            - ENABLE_USAGE_REPORTING=no # Set yes if UE USAGE REPORTING is to be done at UPF
+        depends_on:
+            - oai-nrf
+            - oai-amf
+        volumes:
+            - ./healthscripts/smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh
+        healthcheck:
+            test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh"
+            interval: 10s
+            timeout: 5s
+            retries: 5
+        networks:
+            public_net:
+                ipv4_address: 192.168.70.133
+    oai-spgwu:
+        container_name: "oai-spgwu"
+        image: oai-spgwu-tiny:develop
+        environment:
+            - TZ=Europe/Paris
+            - PID_DIRECTORY=/var/run
+            - SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0
+            - SGW_INTERFACE_NAME_FOR_SX=eth0
+            - PGW_INTERFACE_NAME_FOR_SGI=eth0
+            - NETWORK_UE_NAT_OPTION=yes
+            - NETWORK_UE_IP=12.1.1.0/24
+            - SPGWC0_IP_ADDRESS=192.168.70.133
+            - BYPASS_UL_PFCP_RULES=no
+            - MCC=208
+            - MNC=99
+            - MNC03=099
+            - TAC=1
+            - GW_ID=1
+            - THREAD_S1U_PRIO=80
+            - S1U_THREADS=8
+            - THREAD_SX_PRIO=81
+            - SX_THREADS=1
+            - THREAD_SGI_PRIO=80
+            - SGI_THREADS=8
+            - REALM=openairinterface.org
+            - ENABLE_5G_FEATURES=yes
+            - REGISTER_NRF=yes
+            - USE_FQDN_NRF=yes
+            - UPF_FQDN_5G=oai-spgwu
+            - NRF_IPV4_ADDRESS=192.168.70.130
+            - NRF_PORT=80
+            - NRF_API_VERSION=v1
+            - NRF_FQDN=oai-nrf
+            - NSSAI_SST_0=1
+            - NSSAI_SD_0=0x1
+            - DNN_0=oai
+        depends_on:
+            - oai-nrf
+            - oai-smf
+        cap_add:
+            - NET_ADMIN
+            - SYS_ADMIN
+        cap_drop:
+            - ALL
+        privileged: true
+        volumes:
+            - ./healthscripts/spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh
+        healthcheck:
+            test: /bin/bash -c "/openair-spgwu-tiny/bin/spgwu-healthcheck.sh"
+            interval: 10s
+            timeout: 5s
+            retries: 5
+        networks:
+            public_net:
+                ipv4_address: 192.168.70.134
+    oai-ext-dn:
+        image: trf-gen-cn5g:latest
+        privileged: true
+        container_name: oai-ext-dn
+        entrypoint: /bin/bash -c \
+              "ip route add 12.1.1.0/24 via 192.168.70.134 dev eth0; sleep infinity"
+        depends_on:
+            - oai-spgwu
+        networks:
+            public_net:
+                ipv4_address: 192.168.70.135
+networks:
+    # public_net:
+    #     external:
+    #         name: demo-oai-public-net
+    public_net:
+        driver: bridge
+        name: demo-oai-public-net
+        ipam:
+            config:
+                - subnet: 192.168.70.128/26
+        driver_opts:
+            com.docker.network.bridge.name: "demo-oai"
diff --git a/doc/tutorial_resources/oai_db.sql b/doc/tutorial_resources/oai_db.sql
new file mode 100644
index 00000000000..fb8f4b20edc
--- /dev/null
+++ b/doc/tutorial_resources/oai_db.sql
@@ -0,0 +1,328 @@
+-- phpMyAdmin SQL Dump
+-- version 5.1.0
+-- https://www.phpmyadmin.net/
+--
+-- Host: 172.16.200.10:3306
+-- Generation Time: Mar 22, 2021 at 10:31 AM
+-- Server version: 5.7.33
+-- PHP Version: 7.4.15
+
+SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
+START TRANSACTION;
+SET time_zone = "+00:00";
+
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8mb4 */;
+
+--
+-- Database: `oai_db`
+--
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `AccessAndMobilitySubscriptionData`
+--
+
+CREATE TABLE `AccessAndMobilitySubscriptionData` (
+  `ueid` varchar(15) NOT NULL,
+  `servingPlmnid` varchar(15) NOT NULL,
+  `supportedFeatures` varchar(50) DEFAULT NULL,
+  `gpsis` json DEFAULT NULL,
+  `internalGroupIds` json DEFAULT NULL,
+  `sharedVnGroupDataIds` json DEFAULT NULL,
+  `subscribedUeAmbr` json DEFAULT NULL,
+  `nssai` json DEFAULT NULL,
+  `ratRestrictions` json DEFAULT NULL,
+  `forbiddenAreas` json DEFAULT NULL,
+  `serviceAreaRestriction` json DEFAULT NULL,
+  `coreNetworkTypeRestrictions` json DEFAULT NULL,
+  `rfspIndex` int(10) DEFAULT NULL,
+  `subsRegTimer` int(10) DEFAULT NULL,
+  `ueUsageType` int(10) DEFAULT NULL,
+  `mpsPriority` tinyint(1) DEFAULT NULL,
+  `mcsPriority` tinyint(1) DEFAULT NULL,
+  `activeTime` int(10) DEFAULT NULL,
+  `sorInfo` json DEFAULT NULL,
+  `sorInfoExpectInd` tinyint(1) DEFAULT NULL,
+  `sorafRetrieval` tinyint(1) DEFAULT NULL,
+  `sorUpdateIndicatorList` json DEFAULT NULL,
+  `upuInfo` json DEFAULT NULL,
+  `micoAllowed` tinyint(1) DEFAULT NULL,
+  `sharedAmDataIds` json DEFAULT NULL,
+  `odbPacketServices` json DEFAULT NULL,
+  `serviceGapTime` int(10) DEFAULT NULL,
+  `mdtUserConsent` json DEFAULT NULL,
+  `mdtConfiguration` json DEFAULT NULL,
+  `traceData` json DEFAULT NULL,
+  `cagData` json DEFAULT NULL,
+  `stnSr` varchar(50) DEFAULT NULL,
+  `cMsisdn` varchar(50) DEFAULT NULL,
+  `nbIoTUePriority` int(10) DEFAULT NULL,
+  `nssaiInclusionAllowed` tinyint(1) DEFAULT NULL,
+  `rgWirelineCharacteristics` varchar(50) DEFAULT NULL,
+  `ecRestrictionDataWb` json DEFAULT NULL,
+  `ecRestrictionDataNb` tinyint(1) DEFAULT NULL,
+  `expectedUeBehaviourList` json DEFAULT NULL,
+  `primaryRatRestrictions` json DEFAULT NULL,
+  `secondaryRatRestrictions` json DEFAULT NULL,
+  `edrxParametersList` json DEFAULT NULL,
+  `ptwParametersList` json DEFAULT NULL,
+  `iabOperationAllowed` tinyint(1) DEFAULT NULL,
+  `wirelineForbiddenAreas` json DEFAULT NULL,
+  `wirelineServiceAreaRestriction` json DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `Amf3GppAccessRegistration`
+--
+
+CREATE TABLE `Amf3GppAccessRegistration` (
+  `ueid` varchar(15) NOT NULL,
+  `amfInstanceId` varchar(50) NOT NULL,
+  `supportedFeatures` varchar(50) DEFAULT NULL,
+  `purgeFlag` tinyint(1) DEFAULT NULL,
+  `pei` varchar(50) DEFAULT NULL,
+  `imsVoPs` json DEFAULT NULL,
+  `deregCallbackUri` varchar(50) NOT NULL,
+  `amfServiceNameDereg` json DEFAULT NULL,
+  `pcscfRestorationCallbackUri` varchar(50) DEFAULT NULL,
+  `amfServiceNamePcscfRest` json DEFAULT NULL,
+  `initialRegistrationInd` tinyint(1) DEFAULT NULL,
+  `guami` json NOT NULL,
+  `backupAmfInfo` json DEFAULT NULL,
+  `drFlag` tinyint(1) DEFAULT NULL,
+  `ratType` json NOT NULL,
+  `urrpIndicator` tinyint(1) DEFAULT NULL,
+  `amfEeSubscriptionId` varchar(50) DEFAULT NULL,
+  `epsInterworkingInfo` json DEFAULT NULL,
+  `ueSrvccCapability` tinyint(1) DEFAULT NULL,
+  `registrationTime` varchar(50) DEFAULT NULL,
+  `vgmlcAddress` json DEFAULT NULL,
+  `contextInfo` json DEFAULT NULL,
+  `noEeSubscriptionInd` tinyint(1) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `AuthenticationStatus`
+--
+
+CREATE TABLE `AuthenticationStatus` (
+  `ueid` varchar(20) NOT NULL,
+  `nfInstanceId` varchar(50) NOT NULL,
+  `success` tinyint(1) NOT NULL,
+  `timeStamp` varchar(50) NOT NULL,
+  `authType` varchar(25) NOT NULL,
+  `servingNetworkName` varchar(50) NOT NULL,
+  `authRemovalInd` tinyint(1) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `AuthenticationSubscription`
+--
+
+CREATE TABLE `AuthenticationSubscription` (
+  `ueid` varchar(20) NOT NULL,
+  `authenticationMethod` varchar(25) NOT NULL,
+  `encPermanentKey` varchar(50) DEFAULT NULL,
+  `protectionParameterId` varchar(50) DEFAULT NULL,
+  `sequenceNumber` json DEFAULT NULL,
+  `authenticationManagementField` varchar(50) DEFAULT NULL,
+  `algorithmId` varchar(50) DEFAULT NULL,
+  `encOpcKey` varchar(50) DEFAULT NULL,
+  `encTopcKey` varchar(50) DEFAULT NULL,
+  `vectorGenerationInHss` tinyint(1) DEFAULT NULL,
+  `n5gcAuthMethod` varchar(15) DEFAULT NULL,
+  `rgAuthenticationInd` tinyint(1) DEFAULT NULL,
+  `supi` varchar(20) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Dumping data for table `AuthenticationSubscription`
+--
+
+INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES
+    ('2089900007487', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000000\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'C42449363BBAD02B66D16BC975D77CC1', NULL, NULL, NULL, NULL, '2089900007487');
+INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES
+    ('208990000000001', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000000\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'C42449363BBAD02B66D16BC975D77CC1', NULL, NULL, NULL, NULL, '208990000000001');
+INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES
+    ('208990000000002', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000000\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'C42449363BBAD02B66D16BC975D77CC1', NULL, NULL, NULL, NULL, '208990000000002');
+INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES
+    ('208990000000003', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000000\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'C42449363BBAD02B66D16BC975D77CC1', NULL, NULL, NULL, NULL, '208990000000003');
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `SdmSubscriptions`
+--
+
+CREATE TABLE `SdmSubscriptions` (
+  `ueid` varchar(15) NOT NULL,
+  `subsId` int(10) UNSIGNED NOT NULL,
+  `nfInstanceId` varchar(50) NOT NULL,
+  `implicitUnsubscribe` tinyint(1) DEFAULT NULL,
+  `expires` varchar(50) DEFAULT NULL,
+  `callbackReference` varchar(50) NOT NULL,
+  `amfServiceName` json DEFAULT NULL,
+  `monitoredResourceUris` json NOT NULL,
+  `singleNssai` json DEFAULT NULL,
+  `dnn` varchar(50) DEFAULT NULL,
+  `subscriptionId` varchar(50) DEFAULT NULL,
+  `plmnId` json DEFAULT NULL,
+  `immediateReport` tinyint(1) DEFAULT NULL,
+  `report` json DEFAULT NULL,
+  `supportedFeatures` varchar(50) DEFAULT NULL,
+  `contextInfo` json DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `SessionManagementSubscriptionData`
+--
+
+CREATE TABLE `SessionManagementSubscriptionData` (
+  `ueid` varchar(15) NOT NULL,
+  `servingPlmnid` varchar(15) NOT NULL,
+  `singleNssai` json NOT NULL,
+  `dnnConfigurations` json DEFAULT NULL,
+  `internalGroupIds` json DEFAULT NULL,
+  `sharedVnGroupDataIds` json DEFAULT NULL,
+  `sharedDnnConfigurationsId` varchar(50) DEFAULT NULL,
+  `odbPacketServices` json DEFAULT NULL,
+  `traceData` json DEFAULT NULL,
+  `sharedTraceDataId` varchar(50) DEFAULT NULL,
+  `expectedUeBehavioursList` json DEFAULT NULL,
+  `suggestedPacketNumDlList` json DEFAULT NULL,
+  `3gppChargingCharacteristics` varchar(50) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Dumping data for table `SessionManagementSubscriptionData`
+--
+
+INSERT INTO `SessionManagementSubscriptionData` (`ueid`, `servingPlmnid`, `singleNssai`, `dnnConfigurations`) VALUES
+    ('2089900007487', '20899', '{\"sst\": 1, \"sd\": \"1\"}','{\"oai\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 6,\"arp\":{\"priorityLevel\": 1,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"NOT_PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"1000Mbps\", \"downlink\":\"1000Mbps\"},\"staticIpAddress\":[{\"ipv4Addr\": \"12.1.1.2\"}]}}');
+INSERT INTO `SessionManagementSubscriptionData` (`ueid`, `servingPlmnid`, `singleNssai`, `dnnConfigurations`) VALUES
+    ('208990000000001', '20899', '{\"sst\": 1, \"sd\": \"1\"}','{\"oai\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 6,\"arp\":{\"priorityLevel\": 1,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"NOT_PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"1000Mbps\", \"downlink\":\"1000Mbps\"},\"staticIpAddress\":[{\"ipv4Addr\": \"12.1.1.2\"}]}}');
+INSERT INTO `SessionManagementSubscriptionData` (`ueid`, `servingPlmnid`, `singleNssai`, `dnnConfigurations`) VALUES
+    ('208990000000002', '20899', '{\"sst\": 1, \"sd\": \"1\"}','{\"oai\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 6,\"arp\":{\"priorityLevel\": 1,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"NOT_PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"1000Mbps\", \"downlink\":\"1000Mbps\"},\"staticIpAddress\":[{\"ipv4Addr\": \"12.1.1.3\"}]}}');
+INSERT INTO `SessionManagementSubscriptionData` (`ueid`, `servingPlmnid`, `singleNssai`, `dnnConfigurations`) VALUES
+    ('208990000000003', '20899', '{\"sst\": 1, \"sd\": \"1\"}','{\"oai\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 6,\"arp\":{\"priorityLevel\": 1,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"NOT_PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"1000Mbps\", \"downlink\":\"1000Mbps\"},\"staticIpAddress\":[{\"ipv4Addr\": \"12.1.1.4\"}]}}');
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `SmfRegistrations`
+--
+
+CREATE TABLE `SmfRegistrations` (
+  `ueid` varchar(15) NOT NULL,
+  `subpduSessionId` int(10) NOT NULL,
+  `smfInstanceId` varchar(50) NOT NULL,
+  `smfSetId` varchar(50) DEFAULT NULL,
+  `supportedFeatures` varchar(50) DEFAULT NULL,
+  `pduSessionId` int(10) NOT NULL,
+  `singleNssai` json NOT NULL,
+  `dnn` varchar(50) DEFAULT NULL,
+  `emergencyServices` tinyint(1) DEFAULT NULL,
+  `pcscfRestorationCallbackUri` varchar(50) DEFAULT NULL,
+  `plmnId` json NOT NULL,
+  `pgwFqdn` varchar(50) DEFAULT NULL,
+  `epdgInd` tinyint(1) DEFAULT NULL,
+  `deregCallbackUri` varchar(50) DEFAULT NULL,
+  `registrationReason` json DEFAULT NULL,
+  `registrationTime` varchar(50) DEFAULT NULL,
+  `contextInfo` json DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `SmfSelectionSubscriptionData`
+--
+
+CREATE TABLE `SmfSelectionSubscriptionData` (
+  `ueid` varchar(15) NOT NULL,
+  `servingPlmnid` varchar(15) NOT NULL,
+  `supportedFeatures` varchar(50) DEFAULT NULL,
+  `subscribedSnssaiInfos` json DEFAULT NULL,
+  `sharedSnssaiInfosId` varchar(50) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Indexes for dumped tables
+--
+
+--
+-- Indexes for table `AccessAndMobilitySubscriptionData`
+--
+ALTER TABLE `AccessAndMobilitySubscriptionData`
+  ADD PRIMARY KEY (`ueid`,`servingPlmnid`) USING BTREE;
+
+--
+-- Indexes for table `Amf3GppAccessRegistration`
+--
+ALTER TABLE `Amf3GppAccessRegistration`
+  ADD PRIMARY KEY (`ueid`);
+
+--
+-- Indexes for table `AuthenticationStatus`
+--
+ALTER TABLE `AuthenticationStatus`
+  ADD PRIMARY KEY (`ueid`);
+
+--
+-- Indexes for table `AuthenticationSubscription`
+--
+ALTER TABLE `AuthenticationSubscription`
+  ADD PRIMARY KEY (`ueid`);
+
+--
+-- Indexes for table `SdmSubscriptions`
+--
+ALTER TABLE `SdmSubscriptions`
+  ADD PRIMARY KEY (`subsId`,`ueid`) USING BTREE;
+
+--
+-- Indexes for table `SessionManagementSubscriptionData`
+--
+ALTER TABLE `SessionManagementSubscriptionData`
+  ADD PRIMARY KEY (`ueid`,`servingPlmnid`) USING BTREE;
+
+--
+-- Indexes for table `SmfRegistrations`
+--
+ALTER TABLE `SmfRegistrations`
+  ADD PRIMARY KEY (`ueid`,`subpduSessionId`) USING BTREE;
+
+--
+-- Indexes for table `SmfSelectionSubscriptionData`
+--
+ALTER TABLE `SmfSelectionSubscriptionData`
+  ADD PRIMARY KEY (`ueid`,`servingPlmnid`) USING BTREE;
+
+--
+-- AUTO_INCREMENT for dumped tables
+--
+
+--
+-- AUTO_INCREMENT for table `SdmSubscriptions`
+--
+ALTER TABLE `SdmSubscriptions`
+  MODIFY `subsId` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
+COMMIT;
+
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+
diff --git a/docker/Dockerfile.build.rhel8.2 b/docker/Dockerfile.build.rhel8.2
index 22486c5e680..2664096a9bf 100644
--- a/docker/Dockerfile.build.rhel8.2
+++ b/docker/Dockerfile.build.rhel8.2
@@ -35,4 +35,4 @@ COPY . .
 RUN /bin/sh oaienv && \ 
     cd cmake_targets && \
     mkdir -p log && \
-    ./build_oai --eNB --gNB --RU --UE --nrUE --ninja --build-lib all -w USRP --verbose-ci
+    ./build_oai --eNB --gNB --RU --UE --nrUE --ninja --build-lib all -w USRP --verbose-ci --noavx512
diff --git a/docker/Dockerfile.build.ubuntu18 b/docker/Dockerfile.build.ubuntu18
index 3ba1e41442f..7809d56216b 100644
--- a/docker/Dockerfile.build.ubuntu18
+++ b/docker/Dockerfile.build.ubuntu18
@@ -35,4 +35,4 @@ COPY . .
 RUN /bin/sh oaienv && \
     cd cmake_targets && \
     mkdir -p log && \
-    ./build_oai --eNB --gNB --RU --UE --nrUE --ninja --build-lib all -w USRP --verbose-ci
+    ./build_oai --eNB --gNB --RU --UE --nrUE --ninja --build-lib all -w USRP --verbose-ci --noavx512
diff --git a/docker/Dockerfile.phySim.rhel8.2 b/docker/Dockerfile.phySim.rhel8.2
index 2627a9eafdf..b4eb9a1eebb 100644
--- a/docker/Dockerfile.phySim.rhel8.2
+++ b/docker/Dockerfile.phySim.rhel8.2
@@ -38,7 +38,7 @@ RUN yum install -y libasan
 RUN /bin/sh oaienv && \ 
     cd cmake_targets && \
     mkdir -p log && \
-    ./build_oai --phy_simulators --ninja --verbose-ci --sanitize-address
+    ./build_oai --phy_simulators --ninja --verbose-ci --sanitize-address --noavx512
 
 #start from scratch for target executable
 FROM registry.access.redhat.com/ubi8/ubi:latest as oai-physim
diff --git a/docker/scripts/generateTemplate.py b/docker/scripts/generateTemplate.py
index 850bb535a52..ec8f32ec6e8 100644
--- a/docker/scripts/generateTemplate.py
+++ b/docker/scripts/generateTemplate.py
@@ -60,6 +60,7 @@ def main():
                              "rcc.band40.tm1.25PRB": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}',
                              "gnb.band78.tm1.fr1.106PRB.usrpb210.conf": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}',
                              "gnb.band78.sa.fr1.106PRB.usrpn310.conf": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}',
+                             "gnb.sa.band78.fr1.106PRB.usrpb210.conf": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}',
                              "gnb.sa.band66.fr1.106PRB.usrpn300.conf": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}',
                              "gNB_SA_CU.conf": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}',
                              "gNB_SA_DU.conf": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}',
diff --git a/docker/scripts/gnb_entrypoint.sh b/docker/scripts/gnb_entrypoint.sh
index dd6256609c8..ac0e0d4c889 100755
--- a/docker/scripts/gnb_entrypoint.sh
+++ b/docker/scripts/gnb_entrypoint.sh
@@ -10,6 +10,7 @@ THREAD_PARALLEL_CONFIG=${THREAD_PARALLEL_CONFIG:-PARALLEL_SINGLE_THREAD}
 
 if [[ -v USE_NSA_TDD_MONO ]]; then cp $PREFIX/etc/gnb.nsa.tdd.conf $PREFIX/etc/gnb.conf; fi
 if [[ -v USE_SA_TDD_MONO ]]; then cp $PREFIX/etc/gnb.sa.tdd.conf $PREFIX/etc/gnb.conf; fi
+if [[ -v USE_SA_TDD_MONO_B2XX ]]; then cp $PREFIX/etc/gnb.sa.tdd.b2xx.conf $PREFIX/etc/gnb.conf; fi
 if [[ -v USE_SA_FDD_MONO ]]; then cp $PREFIX/etc/gnb.sa.fdd.conf $PREFIX/etc/gnb.conf; fi
 if [[ -v USE_SA_CU ]]; then cp $PREFIX/etc/gnb.sa.cu.conf $PREFIX/etc/gnb.conf; fi
 if [[ -v USE_SA_TDD_CU ]]; then cp $PREFIX/etc/gnb.sa.du.tdd.conf $PREFIX/etc/gnb.conf; fi
diff --git a/docker/scripts/gnb_parameters.yaml b/docker/scripts/gnb_parameters.yaml
index d5942f2c9b4..420559ff3f7 100644
--- a/docker/scripts/gnb_parameters.yaml
+++ b/docker/scripts/gnb_parameters.yaml
@@ -94,6 +94,36 @@
     - key: parallel_config
       env: "@THREAD_PARALLEL_CONFIG@"
 
+  - filePrefix: gnb.sa.band78.fr1.106PRB.usrpb210.conf
+    outputfilename: "gnb.sa.tdd.b2xx.conf"
+    config:
+    - key: Active_gNBs
+      env: "@GNB_NAME@"
+    - key: gNB_name
+      env: "@GNB_NAME@"
+    - key: mcc
+      env: "@MCC@"
+    - key: mnc
+      env: "@MNC@"
+    - key: mnc_length
+      env: "@MNC_LENGTH@"
+    - key: tracking_area_code
+      env: "@TAC@"
+    - key: sst
+      env: "@NSSAI_SST@"
+    - key: ipv4
+      env: "@AMF_IP_ADDRESS@"
+    - key: GNB_INTERFACE_NAME_FOR_NG_AMF
+      env: "@GNB_NGA_IF_NAME@"
+    - key: GNB_IPV4_ADDRESS_FOR_NG_AMF
+      env: "@GNB_NGA_IP_ADDRESS@"
+    - key: GNB_INTERFACE_NAME_FOR_NGU
+      env: "@GNB_NGU_IF_NAME@"
+    - key: GNB_IPV4_ADDRESS_FOR_NGU
+      env: "@GNB_NGU_IP_ADDRESS@"
+    - key: parallel_config
+      env: "@THREAD_PARALLEL_CONFIG@"
+
   - filePrefix: gnb.sa.band66.fr1.106PRB.usrpn300.conf
     outputfilename: "gnb.sa.fdd.conf"
     config:
diff --git a/executables/main-ocp.c b/executables/main-ocp.c
index c9388e179d1..5d949d5a287 100644
--- a/executables/main-ocp.c
+++ b/executables/main-ocp.c
@@ -173,7 +173,7 @@ void init_transport(PHY_VARS_eNB *eNB) {
   }
 
   for (int i=0; i<NUMBER_OF_ULSCH_MAX; i++) {
-    LOG_D(PHY,"Allocating Transport Channel Buffer for ULSCH, UE %d\n",i);
+    LOG_D(PHY,"Allocating Transport Channel Buffers for ULSCH, UE %d\n",i);
     AssertFatal((eNB->ulsch[1+i] = new_eNB_ulsch(MAX_TURBO_ITERATIONS,fp->N_RB_UL, 0)) != NULL,
                 "Can't get eNB ulsch structures\n");
     // this is the transmission mode for the signalling channels
diff --git a/executables/nr-gnb.c b/executables/nr-gnb.c
index 8ea7f167121..bc3dccf4fa8 100644
--- a/executables/nr-gnb.c
+++ b/executables/nr-gnb.c
@@ -304,32 +304,36 @@ void rx_func(void *param) {
        );
 #endif
 }
-static void dump_L1_meas_stats(PHY_VARS_gNB *gNB, RU_t *ru, char *output) {
-  int stroff = 0;
-  stroff += print_meas_log(&gNB->phy_proc_tx, "L1 Tx processing", NULL, NULL, output);
-  stroff += print_meas_log(&gNB->dlsch_encoding_stats, "DLSCH encoding", NULL, NULL, output+stroff);
-  stroff += print_meas_log(&gNB->phy_proc_rx, "L1 Rx processing", NULL, NULL, output+stroff);
-  stroff += print_meas_log(&gNB->ul_indication_stats, "UL Indication", NULL, NULL, output+stroff);
-  stroff += print_meas_log(&gNB->rx_pusch_stats, "PUSCH inner-receiver", NULL, NULL, output+stroff);
-  stroff += print_meas_log(&gNB->ulsch_decoding_stats, "PUSCH decoding", NULL, NULL, output+stroff);
-  stroff += print_meas_log(&gNB->schedule_response_stats, "Schedule Response",NULL,NULL, output+stroff);
-  if (ru->feprx) stroff += print_meas_log(&ru->ofdm_demod_stats,"feprx",NULL,NULL, output+stroff);
+static size_t dump_L1_meas_stats(PHY_VARS_gNB *gNB, RU_t *ru, char *output, size_t outputlen) {
+  const char *begin = output;
+  const char *end = output + outputlen;
+  output += print_meas_log(&gNB->phy_proc_tx, "L1 Tx processing", NULL, NULL, output, end - output);
+  output += print_meas_log(&gNB->dlsch_encoding_stats, "DLSCH encoding", NULL, NULL, output, end - output);
+  output += print_meas_log(&gNB->phy_proc_rx, "L1 Rx processing", NULL, NULL, output, end - output);
+  output += print_meas_log(&gNB->ul_indication_stats, "UL Indication", NULL, NULL, output, end - output);
+  output += print_meas_log(&gNB->rx_pusch_stats, "PUSCH inner-receiver", NULL, NULL, output, end - output);
+  output += print_meas_log(&gNB->ulsch_decoding_stats, "PUSCH decoding", NULL, NULL, output, end - output);
+  output += print_meas_log(&gNB->schedule_response_stats, "Schedule Response", NULL, NULL, output, end - output);
+  if (ru->feprx)
+    output += print_meas_log(&ru->ofdm_demod_stats, "feprx", NULL, NULL, output, end - output);
 
   if (ru->feptx_ofdm) {
-    stroff += print_meas_log(&ru->precoding_stats,"feptx_prec",NULL,NULL, output+stroff);
-    stroff += print_meas_log(&ru->txdataF_copy_stats,"txdataF_copy",NULL,NULL, output+stroff);
-    stroff += print_meas_log(&ru->ofdm_mod_stats,"feptx_ofdm",NULL,NULL, output+stroff);
-    stroff += print_meas_log(&ru->ofdm_total_stats,"feptx_total",NULL,NULL, output+stroff);
+    output += print_meas_log(&ru->precoding_stats,"feptx_prec",NULL,NULL, output, end - output);
+    output += print_meas_log(&ru->txdataF_copy_stats,"txdataF_copy",NULL,NULL, output, end - output);
+    output += print_meas_log(&ru->ofdm_mod_stats,"feptx_ofdm",NULL,NULL, output, end - output);
+    output += print_meas_log(&ru->ofdm_total_stats,"feptx_total",NULL,NULL, output, end - output);
   }
 
-  if (ru->fh_north_asynch_in) stroff += print_meas_log(&ru->rx_fhaul,"rx_fhaul",NULL,NULL, output+stroff);
+  if (ru->fh_north_asynch_in)
+    output += print_meas_log(&ru->rx_fhaul,"rx_fhaul",NULL,NULL, output, end - output);
 
-  stroff += print_meas_log(&ru->tx_fhaul,"tx_fhaul",NULL,NULL, output+stroff);
+  output += print_meas_log(&ru->tx_fhaul,"tx_fhaul",NULL,NULL, output, end - output);
 
   if (ru->fh_north_out) {
-    stroff += print_meas_log(&ru->compression,"compression",NULL,NULL, output+stroff);
-    stroff += print_meas_log(&ru->transport,"transport",NULL,NULL, output+stroff);
+    output += print_meas_log(&ru->compression,"compression",NULL,NULL, output, end - output);
+    output += print_meas_log(&ru->transport,"transport",NULL,NULL, output, end - output);
   }
+  return output - begin;
 }
 
 void *nrL1_stats_thread(void *param) {
@@ -355,7 +359,7 @@ void *nrL1_stats_thread(void *param) {
     dump_nr_I0_stats(fd,gNB);
     dump_pdsch_stats(fd,gNB);
     dump_pusch_stats(fd,gNB);
-    dump_L1_meas_stats(gNB, ru, output);
+    dump_L1_meas_stats(gNB, ru, output, L1STATSSTRLEN);
     fprintf(fd,"%s\n",output);
     fflush(fd);
     fseek(fd,0,SEEK_SET);
@@ -380,7 +384,7 @@ void *tx_reorder_thread(void* param) {
     if (resL1Reserve) {
        resL1=resL1Reserve;
        if (((processingData_L1tx_t *)NotifiedFifoData(resL1))->slot != next_tx_slot) {
-         LOG_E(PHY,"order mistake");
+         LOG_E(PHY,"order mistake\n");
 	 resL1Reserve=NULL;
 	 resL1 = pullTpool(gNB->L1_tx_out, gNB->threadPool);
        }
@@ -462,7 +466,7 @@ void init_gNB_Tpool(int inst) {
     pushNotifiedFIFO(gNB->L1_tx_free,msgL1Tx); // to unblock the process in the beginning
   }
 
-  if (!get_softmodem_params()->emulate_l1) 
+  if ((!get_softmodem_params()->emulate_l1) && (!IS_SOFTMODEM_NOSTATS_BIT))
      threadCreate(&proc->L1_stats_thread,nrL1_stats_thread,(void*)gNB,"L1_stats",-1,OAI_PRIORITY_RT_LOW);
 
   threadCreate(&proc->pthread_tx_reorder, tx_reorder_thread, (void *)gNB, "thread_tx_reorder", -1, OAI_PRIORITY_RT_MAX);
@@ -600,7 +604,8 @@ void init_gNB(int single_thread_flag,int wait_for_sync) {
     gNB->UL_INFO.cqi_ind.cqi_raw_pdu_list = gNB->cqi_raw_pdu_list;*/
 
     gNB->prach_energy_counter = 0;
-    gNB->prb_interpolation = get_softmodem_params()->prb_interpolation;
+    gNB->chest_time = get_softmodem_params()->chest_time;
+    gNB->chest_freq = get_softmodem_params()->chest_freq;
   }
   
 
diff --git a/executables/nr-ru.c b/executables/nr-ru.c
index 78d02e8849c..b782209e4f8 100644
--- a/executables/nr-ru.c
+++ b/executables/nr-ru.c
@@ -729,10 +729,17 @@ void tx_rf(RU_t *ru,int frame,int slot, uint64_t timestamp) {
 
       AssertFatal(txsymb>0,"illegal txsymb %d\n",txsymb);
 
-      if(slot%(fp->slots_per_subframe/2))
-        siglen = txsymb * (fp->ofdm_symbol_size + fp->nb_prefix_samples);
-      else
-        siglen = (fp->ofdm_symbol_size + fp->nb_prefix_samples0) + (txsymb - 1) * (fp->ofdm_symbol_size + fp->nb_prefix_samples);
+      if (fp->slots_per_subframe == 1) {
+        if (txsymb <= 7)
+          siglen = (fp->ofdm_symbol_size + fp->nb_prefix_samples0) + (txsymb - 1) * (fp->ofdm_symbol_size + fp->nb_prefix_samples);
+        else
+          siglen = 2 * (fp->ofdm_symbol_size + fp->nb_prefix_samples0) + (txsymb - 2) * (fp->ofdm_symbol_size + fp->nb_prefix_samples);
+      } else {
+        if(slot%(fp->slots_per_subframe/2))
+          siglen = txsymb * (fp->ofdm_symbol_size + fp->nb_prefix_samples);
+        else
+          siglen = (fp->ofdm_symbol_size + fp->nb_prefix_samples0) + (txsymb - 1) * (fp->ofdm_symbol_size + fp->nb_prefix_samples);
+      }
 
       //+ ru->end_of_burst_delay;
       flags = 3; // end of burst
@@ -1091,11 +1098,12 @@ void fill_rf_config(RU_t *ru, char *rf_config_file) {
     cfg->tx_gain[i] = ru->att_tx;
     cfg->rx_gain[i] = ru->max_rxgain-ru->att_rx;
     cfg->configFilename = rf_config_file;
-    LOG_I(PHY, "Channel %d: setting tx_gain offset %f, rx_gain offset %f, tx_freq %lu Hz, rx_freq %lu Hz\n",
+    LOG_I(PHY, "Channel %d: setting tx_gain offset %.0f, rx_gain offset %.0f, tx_freq %.0f Hz, rx_freq %.0f Hz, tune_offset %.0f Hz\n",
           i, cfg->tx_gain[i],
           cfg->rx_gain[i],
-          (unsigned long)cfg->tx_freq[i],
-          (unsigned long)cfg->rx_freq[i]);
+          cfg->tx_freq[i],
+          cfg->rx_freq[i],
+          cfg->tune_offset);
   }
 }
 
@@ -2103,6 +2111,8 @@ static void NRRCconfig_RU(void) {
         RC.ru[j]->openair0_cfg.time_source = internal;
       }
 
+      RC.ru[j]->openair0_cfg.tune_offset = get_softmodem_params()->tune_offset;
+
       if (strcmp(*(RUParamList.paramarray[j][RU_LOCAL_RF_IDX].strptr), "yes") == 0) {
         if ( !(config_isparamset(RUParamList.paramarray[j],RU_LOCAL_IF_NAME_IDX)) ) {
           RC.ru[j]->if_south                        = LOCAL_RF;
diff --git a/executables/nr-softmodem-common.h b/executables/nr-softmodem-common.h
index 6e36dcf6c7f..1e6c556acff 100644
--- a/executables/nr-softmodem-common.h
+++ b/executables/nr-softmodem-common.h
@@ -66,6 +66,7 @@
 #define CONFIG_HLP_ITTIL         "Generate ITTI analyzser logs (similar to wireshark logs but with more details)\n"
 #define CONFIG_HLP_DLMCS_PHYTEST "Set the downlink MCS for PHYTEST mode\n"
 #define CONFIG_HLP_DLNL_PHYTEST "Set the downlink nrOfLayers for PHYTEST mode\n"
+#define CONFIG_HLP_ULNL_PHYTEST "Set the uplink nrOfLayers for PHYTEST mode\n"
 #define CONFIG_HLP_STMON         "Enable processing timing measurement of lte softmodem on per subframe basis \n"
 #define CONFIG_HLP_MSLOTS        "Skip the missed slots/subframes \n"
 #define CONFIG_HLP_ULMCS_PHYTEST "Set the uplink MCS for PHYTEST mode\n"
diff --git a/executables/nr-softmodem.c b/executables/nr-softmodem.c
index 1c75d9a155e..54345dc6b02 100644
--- a/executables/nr-softmodem.c
+++ b/executables/nr-softmodem.c
@@ -839,10 +839,10 @@ int main( int argc, char **argv ) {
   }
 
   for (int inst = 0; inst < NB_RU; inst++) {
+    kill_NR_RU_proc(inst);
     nr_phy_free_RU(RC.ru[inst]);
   }
 
-  free_lte_top();
   pthread_cond_destroy(&sync_cond);
   pthread_mutex_destroy(&sync_mutex);
   pthread_cond_destroy(&nfapi_sync_cond);
diff --git a/executables/nr-softmodem.h b/executables/nr-softmodem.h
index 834e89b4039..98087ea2bb2 100644
--- a/executables/nr-softmodem.h
+++ b/executables/nr-softmodem.h
@@ -22,6 +22,7 @@
     {"E" ,                    CONFIG_HLP_TQFS,        PARAMFLAG_BOOL,   i8ptr:&threequarter_fs,             defintval:0,                   TYPE_INT8,   0},        \
     {"m" ,                    CONFIG_HLP_DLMCS_PHYTEST,0,               uptr:&target_dl_mcs,                defintval:0,                   TYPE_UINT,   0},        \
     {"l" ,                    CONFIG_HLP_DLNL_PHYTEST,0,                uptr:&target_dl_Nl,                 defintval:0,                   TYPE_UINT,   0},        \
+    {"L" ,                    CONFIG_HLP_ULNL_PHYTEST,0,                uptr:&target_ul_Nl,                 defintval:0,                   TYPE_UINT,   0},        \
     {"t" ,                    CONFIG_HLP_ULMCS_PHYTEST,0,               uptr:&target_ul_mcs,                defintval:0,                   TYPE_UINT,   0},        \
     {"M" ,                    CONFIG_HLP_DLBW_PHYTEST,0,                uptr:&target_dl_bw,                 defintval:0,                   TYPE_UINT,   0},        \
     {"T" ,                    CONFIG_HLP_ULBW_PHYTEST,0,                uptr:&target_ul_bw,                 defintval:0,                   TYPE_UINT,   0},        \
@@ -36,6 +37,7 @@
 extern threads_t threads;
 extern uint32_t target_dl_mcs;
 extern uint32_t target_dl_Nl;
+extern uint32_t target_ul_Nl;
 extern uint32_t target_ul_mcs;
 extern uint32_t target_dl_bw;
 extern uint32_t target_ul_bw;
@@ -57,9 +59,6 @@ extern void set_function_spec_param(RU_t *ru);
 
 extern void reset_opp_meas(void);
 extern void print_opp_meas(void);
-
-extern void init_fep_thread(PHY_VARS_gNB *);
-
 void init_gNB_afterRU(void);
 
 extern int stop_L1L2(module_id_t gnb_id);
diff --git a/executables/nr-ue.c b/executables/nr-ue.c
index 620e21ec142..85ec4e5e0c6 100644
--- a/executables/nr-ue.c
+++ b/executables/nr-ue.c
@@ -106,23 +106,24 @@ queue_t nr_rach_ind_queue;
 
 static void *NRUE_phy_stub_standalone_pnf_task(void *arg);
 
-static int dump_L1_UE_meas_stats(PHY_VARS_NR_UE *ue, char *output, int max_len)
+static size_t dump_L1_UE_meas_stats(PHY_VARS_NR_UE *ue, char *output, size_t max_len)
 {
-  int stroff = 0;
-  stroff += print_meas_log(&ue->phy_proc_tx, "L1 TX processing", NULL, NULL, output);
-  stroff += print_meas_log(&ue->ulsch_encoding_stats, "ULSCH encoding", NULL, NULL, output + stroff);
-  stroff += print_meas_log(&ue->phy_proc_rx[0], "L1 RX processing t0", NULL, NULL, output + stroff);
-  stroff += print_meas_log(&ue->phy_proc_rx[1], "L1 RX processing t1", NULL, NULL, output + stroff);
-  stroff += print_meas_log(&ue->ue_ul_indication_stats, "UL Indication", NULL, NULL, output + stroff);
-  stroff += print_meas_log(&ue->rx_pdsch_stats, "PDSCH receiver", NULL, NULL, output + stroff);
-  stroff += print_meas_log(&ue->dlsch_decoding_stats[0], "PDSCH decoding t0", NULL, NULL, output + stroff);
-  stroff += print_meas_log(&ue->dlsch_decoding_stats[1], "PDSCH decoding t1", NULL, NULL, output + stroff);
-  stroff += print_meas_log(&ue->dlsch_deinterleaving_stats, " -> Deinterleive", NULL, NULL, output + stroff);
-  stroff += print_meas_log(&ue->dlsch_rate_unmatching_stats, " -> Rate Unmatch", NULL, NULL, output + stroff);
-  stroff += print_meas_log(&ue->dlsch_ldpc_decoding_stats, " ->  LDPC Decode", NULL, NULL, output + stroff);
-  stroff += print_meas_log(&ue->dlsch_unscrambling_stats, "PDSCH unscrambling", NULL, NULL, output + stroff);
-  stroff += print_meas_log(&ue->dlsch_rx_pdcch_stats, "PDCCH handling", NULL, NULL, output + stroff);
-  return stroff;
+  const char *begin = output;
+  const char *end = output + max_len;
+  output += print_meas_log(&ue->phy_proc_tx, "L1 TX processing", NULL, NULL, output, end - output);
+  output += print_meas_log(&ue->ulsch_encoding_stats, "ULSCH encoding", NULL, NULL, output, end - output);
+  output += print_meas_log(&ue->phy_proc_rx[0], "L1 RX processing t0", NULL, NULL, output, end - output);
+  output += print_meas_log(&ue->phy_proc_rx[1], "L1 RX processing t1", NULL, NULL, output, end - output);
+  output += print_meas_log(&ue->ue_ul_indication_stats, "UL Indication", NULL, NULL, output, end - output);
+  output += print_meas_log(&ue->rx_pdsch_stats, "PDSCH receiver", NULL, NULL, output, end - output);
+  output += print_meas_log(&ue->dlsch_decoding_stats[0], "PDSCH decoding t0", NULL, NULL, output, end - output);
+  output += print_meas_log(&ue->dlsch_decoding_stats[1], "PDSCH decoding t1", NULL, NULL, output, end - output);
+  output += print_meas_log(&ue->dlsch_deinterleaving_stats, " -> Deinterleive", NULL, NULL, output, end - output);
+  output += print_meas_log(&ue->dlsch_rate_unmatching_stats, " -> Rate Unmatch", NULL, NULL, output, end - output);
+  output += print_meas_log(&ue->dlsch_ldpc_decoding_stats, " ->  LDPC Decode", NULL, NULL, output, end - output);
+  output += print_meas_log(&ue->dlsch_unscrambling_stats, "PDSCH unscrambling", NULL, NULL, output, end - output);
+  output += print_meas_log(&ue->dlsch_rx_pdcch_stats, "PDCCH handling", NULL, NULL, output, end - output);
+  return output - begin;
 }
 
 static void *nrL1_UE_stats_thread(void *param)
@@ -613,7 +614,7 @@ void processSlotTX(void *arg) {
   int tx_slot_type = nr_ue_slot_select(cfg, proc->frame_tx, proc->nr_slot_tx);
   uint8_t gNB_id = 0;
 
-  LOG_D(PHY,"%d.%d => slot type %d\n",proc->frame_tx,proc->nr_slot_tx,tx_slot_type);
+  LOG_D(PHY,"processSlotTX %d.%d => slot type %d\n",proc->frame_tx,proc->nr_slot_tx,tx_slot_type);
   if (tx_slot_type == NR_UPLINK_SLOT || tx_slot_type == NR_MIXED_SLOT){
 
     // trigger L2 to run ue_scheduler thru IF module
@@ -713,7 +714,8 @@ void processSlotRX(void *arg) {
       LOG_D(PHY, "Sending Uplink data \n");
       nr_ue_pusch_common_procedures(UE,
                                     proc->nr_slot_tx,
-                                    &UE->frame_parms,1);
+                                    &UE->frame_parms,
+                                    UE->frame_parms.nb_antennas_tx);
     }
 
     if (UE->UE_mode[gNB_id] > NOT_SYNCHED && UE->UE_mode[gNB_id] < PUSCH) {
@@ -1107,8 +1109,10 @@ void init_NR_UE_threads(int nb_inst) {
 
     LOG_I(PHY,"Intializing UE Threads for instance %d (%p,%p)...\n",inst,PHY_vars_UE_g[inst],PHY_vars_UE_g[inst][0]);
     threadCreate(&threads[inst], UE_thread, (void *)UE, "UEthread", -1, OAI_PRIORITY_RT_MAX);
-    pthread_t stat_pthread;
-    threadCreate(&stat_pthread, nrL1_UE_stats_thread, UE, "L1_UE_stats", -1, OAI_PRIORITY_RT_LOW);
+    if (!IS_SOFTMODEM_NOSTATS_BIT) {
+      pthread_t stat_pthread;
+      threadCreate(&stat_pthread, nrL1_UE_stats_thread, UE, "L1_UE_stats", -1, OAI_PRIORITY_RT_LOW);
+    }
   }
 }
 
diff --git a/executables/nr-uesoftmodem.c b/executables/nr-uesoftmodem.c
index b418fc9e90d..cb848a76cdf 100644
--- a/executables/nr-uesoftmodem.c
+++ b/executables/nr-uesoftmodem.c
@@ -261,13 +261,11 @@ void init_tpools(uint8_t nun_dlsch_threads) {
 }
 static void get_options(void) {
 
-  nrUE_params.ofdm_offset_divisor = 8;
   paramdef_t cmdline_params[] =CMDLINE_NRUEPARAMS_DESC ;
   int numparams = sizeof(cmdline_params)/sizeof(paramdef_t);
+  config_get(cmdline_params,numparams,NULL);
   config_process_cmdline( cmdline_params,numparams,NULL);
 
-
-
   if (vcdflag > 0)
     ouput_vcd = 1;
 }
@@ -319,8 +317,8 @@ void set_options(int CC_id, PHY_VARS_NR_UE *UE){
   UE->rf_map.card          = card_offset;
   UE->rf_map.chain         = CC_id + chain_offset;
 
-  LOG_I(PHY,"Set UE mode %d, UE_fo_compensation %d, UE_scan_carrier %d, UE_no_timing_correction %d \n, do_prb_interpolation %d\n",
-  	   UE->mode, UE->UE_fo_compensation, UE->UE_scan_carrier, UE->no_timing_correction, UE->prb_interpolation);
+  LOG_I(PHY,"Set UE mode %d, UE_fo_compensation %d, UE_scan_carrier %d, UE_no_timing_correction %d \n, chest-freq %d\n",
+  	   UE->mode, UE->UE_fo_compensation, UE->UE_scan_carrier, UE->no_timing_correction, UE->chest_freq);
 
   // Set FP variables
 
@@ -332,6 +330,7 @@ void set_options(int CC_id, PHY_VARS_NR_UE *UE){
   LOG_I(PHY, "Set UE nb_rx_antenna %d, nb_tx_antenna %d, threequarter_fs %d, ssb_start_subcarrier %d\n", fp->nb_antennas_rx, fp->nb_antennas_tx, fp->threequarter_fs, fp->ssb_start_subcarrier);
 
   fp->ofdm_offset_divisor = nrUE_params.ofdm_offset_divisor;
+  UE->max_ldpc_iterations = nrUE_params.max_ldpc_iterations;
 
 }
 
@@ -356,6 +355,7 @@ void init_openair0(void) {
     openair0_cfg[card].num_rb_dl = frame_parms->N_RB_DL;
     openair0_cfg[card].clock_source = get_softmodem_params()->clock_source;
     openair0_cfg[card].time_source = get_softmodem_params()->timing_source;
+    openair0_cfg[card].tune_offset = get_softmodem_params()->tune_offset;
     openair0_cfg[card].tx_num_channels = min(4, frame_parms->nb_antennas_tx);
     openair0_cfg[card].rx_num_channels = min(4, frame_parms->nb_antennas_rx);
 
diff --git a/executables/nr-uesoftmodem.h b/executables/nr-uesoftmodem.h
index 927d619c42f..a25d9cf5cff 100644
--- a/executables/nr-uesoftmodem.h
+++ b/executables/nr-uesoftmodem.h
@@ -7,10 +7,11 @@
 
 
 
-#define  CONFIG_HLP_IF_FREQ                "IF frequency for RF, if needed"
-#define  CONFIG_HLP_IF_FREQ_OFF            "UL IF frequency offset for RF, if needed"
+#define  CONFIG_HLP_IF_FREQ                "IF frequency for RF, if needed\n"
+#define  CONFIG_HLP_IF_FREQ_OFF            "UL IF frequency offset for RF, if needed\n"
 #define  CONFIG_HLP_DLSCH_PARA             "number of threads for dlsch processing 0 for no parallelization\n"
 #define  CONFIG_HLP_OFFSET_DIV             "Divisor for computing OFDM symbol offset in Rx chain (num samples in CP/<the value>). Default value is 8. To set the sample offset to 0, set this value ~ 10e6\n"
+#define  CONFIG_HLP_MAX_LDPC_ITERATIONS    "Maximum LDPC decoder iterations\n"
 /***************************************************************************************************************************************/
 /* command line options definitions, CMDLINE_XXXX_DESC macros are used to initialize paramdef_t arrays which are then used as argument
    when calling config_get or config_getlist functions                                                                                 */
@@ -32,8 +33,9 @@
     {"tx_subdev",                CONFIG_HLP_USRP_ARGS,   0,               strptr:(char **)&tx_subdev,         defstrval:"", TYPE_STRING,   0},    \
     {"rx_subdev",                CONFIG_HLP_USRP_ARGS,   0,               strptr:(char **)&rx_subdev,         defstrval:"", TYPE_STRING,   0},    \
     {"single-thread-disable",    CONFIG_HLP_NOSNGLT,     PARAMFLAG_BOOL,  iptr:&single_thread_flag,           defintval:1,           TYPE_INT,    0}, \
-    {"dlsch-parallel",           CONFIG_HLP_DLSCH_PARA,  0,               iptr:(int32_t *)&nrUE_params.nr_dlsch_parallel,       defintval:0,           TYPE_UINT8,  0}, \
-    {"offset-divisor",           CONFIG_HLP_OFFSET_DIV,  0,               uptr:(uint32_t *)&nrUE_params.ofdm_offset_divisor,    defuintval:UINT_MAX,           TYPE_UINT32,  0}, \
+    {"dlsch-parallel",           CONFIG_HLP_DLSCH_PARA,  0,               u8ptr:&nrUE_params.nr_dlsch_parallel,       defintval:0,           TYPE_UINT8,  0}, \
+    {"offset-divisor",           CONFIG_HLP_OFFSET_DIV,  0,               uptr:&nrUE_params.ofdm_offset_divisor,    defuintval:8,           TYPE_UINT32,  0}, \
+    {"max-ldpc-iterations",      CONFIG_HLP_MAX_LDPC_ITERATIONS, 0,       u8ptr:&nrUE_params.max_ldpc_iterations,    defuintval:5,       TYPE_UINT8, 0}, \
     {"nr-dlsch-demod-shift",     CONFIG_HLP_DLSHIFT,     0,               iptr:(int32_t *)&nr_dlsch_demod_shift,    defintval:0,     TYPE_INT,    0}, \
     {"V" ,                       CONFIG_HLP_VCD,         PARAMFLAG_BOOL,  iptr:&vcdflag,                      defintval:0,     TYPE_INT,    0}, \
     {"uecap_file",               CONFIG_HLP_UECAP_FILE,  0,               strptr:(char **)&uecap_file,        defstrval:"./uecap.xml", TYPE_STRING, 0}, \
@@ -69,7 +71,8 @@
     {"T" ,                       CONFIG_HLP_TDD,         PARAMFLAG_BOOL,  iptr:&tddflag,                      defintval:0,           TYPE_INT,   0}, \
     {"if_freq" ,                 CONFIG_HLP_IF_FREQ,     0,               u64ptr:&(UE->if_freq),              defuintval:0,          TYPE_UINT64,0}, \
     {"if_freq_off" ,             CONFIG_HLP_IF_FREQ_OFF, 0,               iptr:&(UE->if_freq_off),            defuintval:0,          TYPE_INT,   0}, \
-    {"do-prb-interpolation",     CONFIG_HLP_PRBINTER,    PARAMFLAG_BOOL,  iptr:&(UE->prb_interpolation),      defintval:0,           TYPE_INT,   0}, \
+    {"chest-freq",               CONFIG_HLP_CHESTFREQ,   0,               iptr:&(UE->chest_freq),             defintval:0,           TYPE_INT,   0}, \
+    {"chest-time",               CONFIG_HLP_CHESTTIME,   0,               iptr:&(UE->chest_time),             defintval:0,           TYPE_INT,   0}, \
     {"ue-timing-correction-disable", CONFIG_HLP_DISABLETIMECORR, PARAMFLAG_BOOL, iptr:&(UE->no_timing_correction), defintval:0,      TYPE_INT,   0}, \
 }
 
@@ -78,6 +81,7 @@ typedef struct {
   uint64_t       optmask;   //mask to store boolean config options
   uint32_t       ofdm_offset_divisor; // Divisor for sample offset computation for each OFDM symbol
   uint8_t        nr_dlsch_parallel; // number of threads for dlsch decoding, 0 means no parallelization
+  uint8_t        max_ldpc_iterations; // number of maximum LDPC iterations
   tpool_t        Tpool;             // thread pool 
 } nrUE_params_t;
 extern uint64_t get_nrUE_optmask(void);
diff --git a/executables/softmodem-common.c b/executables/softmodem-common.c
index c78fc70243c..bf30cab847e 100644
--- a/executables/softmodem-common.c
+++ b/executables/softmodem-common.c
@@ -85,6 +85,7 @@ char *get_softmodem_function(uint64_t *sofmodemfunc_mask_ptr) {
 }
 
 void get_common_options(uint32_t execmask) {
+  int32_t stats_disabled = 0;
   uint32_t online_log_messages=0;
   uint32_t glog_level=0 ;
   uint32_t start_telnetsrv = 0, start_telnetclt = 0;
@@ -149,6 +150,8 @@ void get_common_options(uint32_t execmask) {
 
   if(worker_config != NULL)   set_worker_conf(worker_config);
   nfapi_setmode(nfapi_mode);
+  if (stats_disabled)
+    set_softmodem_optmask(SOFTMODEM_NOSTATS_BIT);
 }
 void softmodem_printresources(int sig, telnet_printfunc_t pf) {
   struct rusage usage;
diff --git a/executables/softmodem-common.h b/executables/softmodem-common.h
index eb0c1a54f74..a2ba6802346 100644
--- a/executables/softmodem-common.h
+++ b/executables/softmodem-common.h
@@ -60,6 +60,7 @@ extern "C"
 #define CONFIG_HLP_DMRSSYNC      "tells RU to insert DMRS in subframe 1 slot 0"
 #define CONFIG_HLP_CLK           "tells hardware to use a clock reference (0:internal, 1:external, 2:gpsdo)\n"
 #define CONFIG_HLP_TME           "tells hardware to use a time reference (0:internal, 1:external, 2:gpsdo)\n"
+#define CONFIG_HLP_TUNE_OFFSET   "LO tuning offset to use in Hz\n"
 #define CONFIG_HLP_USIM          "use XOR autentication algo in case of test usim mode\n"
 #define CONFIG_HLP_NOSNGLT       "Disables single-thread mode in lte-softmodem\n"
 #define CONFIG_HLP_DLF           "Set the downlink frequency for all component carriers\n"
@@ -71,7 +72,8 @@ extern "C"
 #define CONFIG_HLP_DLMCS         "Set the maximum downlink MCS\n"
 #define CONFIG_HLP_STMON         "Enable processing timing measurement of lte softmodem on per subframe basis \n"
 #define CONFIG_HLP_256QAM        "Use the 256 QAM mcs table for PDSCH\n"
-#define CONFIG_HLP_PRBINTER       "Do PRB based averaging of channel estimates. Frequency domain linear interpolation by default\n"
+#define CONFIG_HLP_CHESTFREQ     "Set channel estimation type in frequency domain. 0-Linear interpolation (default). 1-PRB based averaging of channel estimates in frequency. \n"
+#define CONFIG_HLP_CHESTTIME     "Set channel estimation type in time domain. 0-Symbols take estimates of the last preceding DMRS symbol (default). 1-Symbol based averaging of channel estimates in time. \n"
 
 #define CONFIG_HLP_NONSTOP       "Go back to frame sync mode after 100 consecutive PBCH failures\n"
 //#define CONFIG_HLP_NUMUES        "Set the number of UEs for the emulation"
@@ -99,6 +101,7 @@ extern "C"
 #define CONFIG_HLP_NFAPI         "Change the nFAPI mode for NR\n"
 #define CONFIG_L1_EMULATOR       "Run in L1 emulated mode (disable PHY layer)\n"
 #define CONFIG_HLP_CONTINUOUS_TX "perform continuous transmission, even in TDD mode (to work around USRP issues)\n"
+#define CONFIG_HLP_STATS_DISABLE "disable globally the stats generation and persistence"
 
 /*-----------------------------------------------------------------------------------------------------------------------------------------------------*/
 /*                                            command line parameters common to eNodeB and UE                                                          */
@@ -118,9 +121,11 @@ extern "C"
 #define EMULATE_RF          softmodem_params.emulate_rf
 #define CLOCK_SOURCE        softmodem_params.clock_source
 #define TIMING_SOURCE       softmodem_params.timing_source
+#define TUNE_OFFSET         softmodem_params.tune_offset
 #define SEND_DMRSSYNC       softmodem_params.send_dmrs_sync
 #define USIM_TEST           softmodem_params.usim_test
-#define PRB_INTERPOLATION   softmodem_params.prb_interpolation
+#define CHEST_FREQ          softmodem_params.chest_freq
+#define CHEST_TIME          softmodem_params.chest_time
 #define NFAPI               softmodem_params.nfapi
 #define NSA                 softmodem_params.nsa
 #define NODE_NUMBER         softmodem_params.node_number
@@ -141,6 +146,7 @@ extern int usrp_tx_thread;
     {"usim-test",            CONFIG_HLP_USIM,         PARAMFLAG_BOOL, u8ptr:&USIM_TEST,                   defintval:0,           TYPE_UINT8,  0},                     \
     {"clock-source",         CONFIG_HLP_CLK,          0,              uptr:&CLOCK_SOURCE,                 defintval:0,           TYPE_UINT,   0},                     \
     {"time-source",          CONFIG_HLP_TME,          0,              uptr:&TIMING_SOURCE,                defintval:0,           TYPE_UINT,   0},                     \
+    {"tune-offset",          CONFIG_HLP_TUNE_OFFSET,  0,              dblptr:&TUNE_OFFSET,                defintval:0,           TYPE_DOUBLE, 0},                     \
     {"wait-for-sync",        NULL,                    PARAMFLAG_BOOL, iptr:&WAIT_FOR_SYNC,                defintval:0,           TYPE_INT,    0},                     \
     {"single-thread-enable", CONFIG_HLP_NOSNGLT,      PARAMFLAG_BOOL, iptr:&SINGLE_THREAD_FLAG,           defintval:0,           TYPE_INT,    0},                     \
     {"C" ,                   CONFIG_HLP_DLF,          0,              u64ptr:&(downlink_frequency[0][0]), defuintval:0,          TYPE_UINT64, 0},                     \
@@ -157,14 +163,16 @@ extern int usrp_tx_thread;
     {"rfsim",                CONFIG_HLP_RFSIM,        PARAMFLAG_BOOL, uptr:&rfsim,                        defintval:0,           TYPE_INT,    0},                     \
     {"nokrnmod",             CONFIG_HLP_NOKRNMOD,     PARAMFLAG_BOOL, uptr:&nokrnmod,                     defintval:0,           TYPE_INT,    0},                     \
     {"nbiot-disable",        CONFIG_HLP_DISABLNBIOT,  PARAMFLAG_BOOL, uptr:&nonbiot,                      defuintval:0,          TYPE_INT,    0},                     \
+    {"chest-freq",           CONFIG_HLP_CHESTFREQ,    0,              iptr:&CHEST_FREQ,                   defintval:0,           TYPE_INT,    0},                     \
+    {"chest-time",           CONFIG_HLP_CHESTTIME,    0,              iptr:&CHEST_TIME,                   defintval:0,           TYPE_INT,    0},                     \
     {"nsa",                  CONFIG_HLP_NSA,          PARAMFLAG_BOOL, iptr:&NSA,                          defintval:0,           TYPE_INT,    0},                     \
     {"node-number",          NULL,                    0,              u16ptr:&NODE_NUMBER,                defuintval:0,          TYPE_UINT16, 0},                     \
     {"usrp-tx-thread-config", CONFIG_HLP_USRP_THREAD, 0,              iptr:&usrp_tx_thread,               defstrval:0,           TYPE_INT,    0},                     \
-    {"do-prb-interpolation", CONFIG_HLP_PRBINTER,     PARAMFLAG_BOOL, iptr:&PRB_INTERPOLATION,            defintval:0,           TYPE_INT,    0},                     \
     {"nfapi",                CONFIG_HLP_NFAPI,        0,              u8ptr:&nfapi_mode,                  defintval:0,           TYPE_UINT8,  0},                     \
     {"non-stop",             CONFIG_HLP_NONSTOP,      PARAMFLAG_BOOL, iptr:&NON_STOP,                     defintval:0,           TYPE_INT,    0},                     \
     {"emulate-l1",           CONFIG_L1_EMULATOR,      PARAMFLAG_BOOL, iptr:&EMULATE_L1,                   defintval:0,           TYPE_INT,    0},                     \
     {"continuous-tx",        CONFIG_HLP_CONTINUOUS_TX,PARAMFLAG_BOOL, iptr:&CONTINUOUS_TX,                defintval:0,           TYPE_INT,    0},                     \
+    {"disable-stats",        CONFIG_HLP_STATS_DISABLE, PARAMFLAG_BOOL, iptr:&stats_disabled,               defintval:0,           TYPE_INT,    0},                     \
   }
 
 #define CONFIG_HLP_NSA           "Enable NSA mode \n"
@@ -203,6 +211,7 @@ extern int usrp_tx_thread;
 #define SOFTMODEM_NONBIOT_BIT         (1<<2)
 #define SOFTMODEM_RFSIM_BIT           (1<<10)
 #define SOFTMODEM_SIML1_BIT           (1<<12)
+#define SOFTMODEM_DLSIM_BIT           (1<<13)
 #define SOFTMODEM_DOSCOPE_BIT         (1<<15)
 #define SOFTMODEM_RECPLAY_BIT         (1<<16)
 #define SOFTMODEM_TELNETCLT_BIT       (1<<17)
@@ -210,6 +219,7 @@ extern int usrp_tx_thread;
 #define SOFTMODEM_GNB_BIT             (1<<21)
 #define SOFTMODEM_4GUE_BIT            (1<<22)
 #define SOFTMODEM_5GUE_BIT            (1<<23)
+#define SOFTMODEM_NOSTATS_BIT         (1<<24)
 #define SOFTMODEM_FUNC_BITS (SOFTMODEM_ENB_BIT | SOFTMODEM_GNB_BIT | SOFTMODEM_5GUE_BIT | SOFTMODEM_4GUE_BIT)
 #define MAPPING_SOFTMODEM_FUNCTIONS {{"enb",SOFTMODEM_ENB_BIT},{"gnb",SOFTMODEM_GNB_BIT},{"4Gue",SOFTMODEM_4GUE_BIT},{"5Gue",SOFTMODEM_5GUE_BIT}}
 
@@ -219,6 +229,7 @@ extern int usrp_tx_thread;
 #define IS_SOFTMODEM_NONBIOT         ( get_softmodem_optmask() & SOFTMODEM_NONBIOT_BIT)
 #define IS_SOFTMODEM_RFSIM           ( get_softmodem_optmask() & SOFTMODEM_RFSIM_BIT)
 #define IS_SOFTMODEM_SIML1           ( get_softmodem_optmask() & SOFTMODEM_SIML1_BIT)
+#define IS_SOFTMODEM_DLSIM           ( get_softmodem_optmask() & SOFTMODEM_DLSIM_BIT)
 #define IS_SOFTMODEM_DOSCOPE         ( get_softmodem_optmask() & SOFTMODEM_DOSCOPE_BIT)
 #define IS_SOFTMODEM_IQPLAYER        ( get_softmodem_optmask() & SOFTMODEM_RECPLAY_BIT)
 #define IS_SOFTMODEM_TELNETCLT_BIT   ( get_softmodem_optmask() & SOFTMODEM_TELNETCLT_BIT)    
@@ -226,6 +237,7 @@ extern int usrp_tx_thread;
 #define IS_SOFTMODEM_GNB_BIT         ( get_softmodem_optmask() & SOFTMODEM_GNB_BIT)
 #define IS_SOFTMODEM_4GUE_BIT        ( get_softmodem_optmask() & SOFTMODEM_4GUE_BIT)
 #define IS_SOFTMODEM_5GUE_BIT        ( get_softmodem_optmask() & SOFTMODEM_5GUE_BIT)
+#define IS_SOFTMODEM_NOSTATS_BIT     ( get_softmodem_optmask() & SOFTMODEM_NOSTATS_BIT)
 
 typedef struct {
   uint64_t       optmask;
@@ -245,9 +257,12 @@ typedef struct {
   int            band;
   uint32_t       clock_source;
   uint32_t       timing_source;
+  double         tune_offset;
   int            hw_timing_advance;
   uint32_t       send_dmrs_sync;
-  int            prb_interpolation;
+  int            use_256qam_table;
+  int            chest_time;
+  int            chest_freq;
   uint8_t        nfapi;
   int            nsa;
   uint16_t       node_number;
diff --git a/ldpctest_BG_1_Zc_384_rate_1-3_block_length_8448_maxit_5.txt b/ldpctest_BG_1_Zc_384_rate_1-3_block_length_8448_maxit_5.txt
new file mode 100644
index 00000000000..2983268dac4
--- /dev/null
+++ b/ldpctest_BG_1_Zc_384_rate_1-3_block_length_8448_maxit_5.txt
@@ -0,0 +1,64 @@
+SNR BLER BER UNCODED_BER ENCODER_MEAN ENCODER_STD ENCODER_MAX DECODER_TIME_MEAN DECODER_TIME_STD DECODER_TIME_MAX DECODER_ITER_MEAN DECODER_ITER_STD DECODER_ITER_MAX
+-2.000000 1.000000 0.346185 0.258473 44.551218 31.688925 357.883903 217.655668 12.810778 326.852166 5.000000 0.000000 5 
+-1.900000 1.000000 0.345395 0.256275 40.787109 4.190954 65.926488 215.687102 4.300128 230.585721 5.000000 0.000000 5 
+-1.800000 1.000000 0.343100 0.253634 40.748628 3.912915 56.669470 215.314020 4.139156 227.806468 5.000000 0.000000 5 
+-1.700000 1.000000 0.341806 0.250634 40.550845 3.347808 56.032851 216.839001 5.959734 244.483352 5.000000 0.000000 5 
+-1.600000 1.000000 0.339245 0.248129 40.457158 3.735092 56.853508 215.747244 4.995522 242.867659 5.000000 0.000000 5 
+-1.500000 1.000000 0.337230 0.245763 41.178595 4.297429 56.265874 215.785600 4.151781 227.795995 5.000000 0.000000 5 
+-1.400000 1.000000 0.335131 0.243311 39.915221 2.739586 55.454917 216.866764 6.547848 251.528327 5.000000 0.000000 5 
+-1.300000 1.000000 0.333085 0.240664 40.119215 3.044973 55.978253 216.208443 4.459816 228.810686 5.000000 0.000000 5 
+-1.200000 1.000000 0.330664 0.238769 40.507713 2.998241 55.701876 215.868796 3.778455 226.049304 5.000000 0.000000 5 
+-1.100000 1.000000 0.329130 0.235812 41.038895 4.522472 56.760814 215.654663 4.746822 236.021980 5.000000 0.000000 5 
+-1.000000 1.000000 0.325980 0.233534 41.067622 4.626711 57.444142 215.260535 3.481966 225.512853 5.000000 0.000000 5 
+-0.900000 1.000000 0.323823 0.230863 40.683316 3.689159 56.208182 215.560917 5.180017 243.603452 5.000000 0.000000 5 
+-0.800000 1.000000 0.321004 0.228222 41.643513 4.717568 58.502452 215.630891 4.283475 238.574145 5.000000 0.000000 5 
+-0.700000 1.000000 0.317983 0.225520 41.214547 3.941824 56.054211 215.910346 4.375081 227.444626 5.000000 0.000000 5 
+-0.600000 1.000000 0.316243 0.222903 40.834442 4.370416 56.765508 215.153296 3.617927 226.280086 5.000000 0.000000 5 
+-0.500000 1.000000 0.312886 0.220473 40.178174 4.185502 64.657291 219.647151 4.454154 236.473446 5.000000 0.000000 5 
+-0.400000 1.000000 0.309757 0.217536 40.240385 3.172484 55.751563 217.761119 3.900779 228.757195 5.000000 0.000000 5 
+-0.300000 1.000000 0.305464 0.215229 40.852271 3.761739 56.158869 217.830497 4.087453 230.237764 5.000000 0.000000 5 
+-0.200000 1.000000 0.302919 0.212364 40.531166 3.688281 56.426841 217.657657 5.498697 253.516146 5.000000 0.000000 5 
+-0.100000 1.000000 0.298246 0.209310 41.058364 4.140510 59.959571 217.519279 4.087389 228.768313 5.000000 0.000000 5 
+0.000000 1.000000 0.294110 0.207107 40.436486 3.604369 55.788895 217.853044 4.012624 236.118036 5.000000 0.000000 5 
+0.100000 1.000000 0.288139 0.204033 40.603738 4.045866 57.560760 217.046816 4.583841 244.429411 5.000000 0.000000 5 
+0.200000 1.000000 0.285604 0.201954 40.494607 3.886199 59.431970 217.322824 4.080988 233.317513 5.000000 0.000000 5 
+0.300000 1.000000 0.278478 0.198929 40.311327 3.452837 56.124657 217.319394 4.434358 232.534720 5.000000 0.000000 5 
+0.400000 1.000000 0.270992 0.196299 40.649243 3.415612 56.204178 218.079445 4.990947 245.055337 5.000000 0.000000 5 
+0.500000 1.000000 0.263944 0.193661 40.464299 3.622703 56.602842 218.555364 3.936432 229.481159 5.000000 0.000000 5 
+0.600000 1.000000 0.256340 0.191194 40.200314 2.474984 53.432412 216.547260 3.695211 227.198078 5.000000 0.000000 5 
+0.700000 1.000000 0.251578 0.188606 40.111945 3.029821 54.900896 216.581752 4.247622 237.358365 5.000000 0.000000 5 
+0.800000 1.000000 0.234558 0.184742 39.533282 1.182169 42.753097 215.462335 2.960246 226.716604 5.000000 0.000000 5 
+0.900000 1.000000 0.225915 0.182691 39.851294 1.108193 42.180342 216.404194 4.450720 228.482353 5.000000 0.000000 5 
+1.000000 1.000000 0.216180 0.179994 40.721936 3.302539 56.032206 217.082196 4.599188 227.979232 5.000000 0.000000 5 
+1.100000 1.000000 0.203481 0.177332 41.006217 3.798207 56.014901 216.204345 4.292145 227.297386 5.000000 0.000000 5 
+1.200000 1.000000 0.188297 0.174121 40.739289 3.269948 56.653507 216.585873 6.250858 251.207034 5.000000 0.000000 5 
+1.300000 1.000000 0.172624 0.171622 41.215540 4.783342 55.692883 215.885639 3.629370 226.473280 5.000000 0.000000 5 
+1.400000 1.000000 0.156483 0.169110 40.289903 3.749338 56.290861 215.663761 4.176366 225.824735 5.000000 0.000000 5 
+1.500000 1.000000 0.136293 0.165692 42.208932 6.070189 69.182665 216.390504 4.816283 235.417446 5.000000 0.000000 5 
+1.600000 1.000000 0.125127 0.163325 40.890581 3.941185 56.491504 215.752348 4.426511 226.425984 5.000000 0.000000 5 
+1.700000 1.000000 0.104593 0.159971 41.263557 4.128935 57.062514 217.284932 5.311288 249.647163 5.000000 0.000000 5 
+1.800000 1.000000 0.091397 0.157460 40.273078 3.062810 55.546913 217.252505 6.331426 251.175692 5.000000 0.000000 5 
+1.900000 1.000000 0.078256 0.154628 40.407489 3.419342 56.316166 216.967648 4.712664 245.093313 5.000000 0.000000 5 
+2.000000 1.000000 0.065221 0.152571 40.660365 4.317854 57.537407 216.198346 4.991856 245.173269 5.000000 0.000000 5 
+2.100000 1.000000 0.053694 0.148885 40.355654 4.062614 60.051963 215.797667 4.447252 236.221454 5.000000 0.000000 5 
+2.200000 1.000000 0.042182 0.146229 40.613562 4.124655 56.201536 216.117304 4.060825 227.115987 5.000000 0.000000 5 
+2.300000 1.000000 0.034334 0.143612 40.465884 3.541452 55.067611 215.575953 4.891719 244.546802 5.000000 0.000000 5 
+2.400000 1.000000 0.026641 0.140869 41.074690 4.697458 61.619188 216.069185 4.700827 233.830937 5.000000 0.000000 5 
+2.500000 1.000000 0.019976 0.138112 40.766971 4.274128 58.871741 215.761570 5.633731 249.753931 5.000000 0.000000 5 
+2.600000 1.000000 0.012826 0.135122 40.559343 2.952804 54.017706 215.835161 4.039993 226.822103 5.000000 0.000000 5 
+2.700000 1.000000 0.010550 0.132915 40.985193 3.330639 55.013950 215.975836 4.240744 227.040703 5.000000 0.000000 5 
+2.800000 1.000000 0.007327 0.130133 39.778804 3.002485 56.610555 216.462786 7.082268 265.051418 5.000000 0.000000 5 
+2.900000 1.000000 0.004038 0.126763 40.327795 3.934211 55.515352 215.982666 4.626198 230.696124 5.000000 0.000000 5 
+3.000000 1.000000 0.003087 0.124336 40.337807 3.537021 55.101627 215.468662 4.177203 230.789145 5.000000 0.000000 5 
+3.100000 1.000000 0.001576 0.121689 39.812195 3.116738 55.422687 215.797778 4.091192 225.897780 5.000000 0.000000 5 
+3.200000 0.980000 0.001000 0.118928 39.853764 2.871322 56.405555 215.562722 4.187466 232.598421 5.000000 0.000000 5 
+3.300000 0.960000 0.000623 0.116065 40.440328 3.580650 56.738889 216.165848 4.735158 240.329999 5.000000 0.000000 5 
+3.400000 0.850000 0.000303 0.113505 40.974107 4.291544 56.280236 215.889562 4.448049 237.556780 5.000000 0.000000 5 
+3.500000 0.690000 0.000152 0.111010 41.508631 4.251791 56.198873 216.740295 4.889693 242.922934 5.000000 0.000000 5 
+3.600000 0.530000 0.000102 0.108493 40.065231 3.643794 57.120823 216.887338 5.242621 250.003843 5.000000 0.000000 5 
+3.700000 0.320000 0.000043 0.105612 40.462159 4.162383 56.782173 216.465615 3.846314 227.022697 5.000000 0.000000 5 
+3.800000 0.210000 0.000032 0.103084 42.192455 6.207380 64.648964 217.030913 4.482820 228.095918 5.000000 0.000000 5 
+3.900000 0.110000 0.000013 0.100391 40.640286 3.715782 55.922914 217.726055 4.553212 236.362804 5.000000 0.000000 5 
+4.000000 0.050000 0.000006 0.097518 40.437760 2.838308 54.764308 218.230040 4.309275 237.932625 5.000000 0.000000 5 
+4.100000 0.020000 0.000002 0.095436 41.347934 4.608500 64.182062 217.408836 4.385757 228.219627 5.000000 0.000000 5 
+4.200000 0.000000 0.000000 0.092396 40.782371 3.621708 55.984245 217.579878 4.102149 228.145363 5.000000 0.000000 5 
diff --git a/nfapi/oai_integration/nfapi_vnf.c b/nfapi/oai_integration/nfapi_vnf.c
index d13dc5d1c50..8cc1bda7828 100644
--- a/nfapi/oai_integration/nfapi_vnf.c
+++ b/nfapi/oai_integration/nfapi_vnf.c
@@ -217,7 +217,7 @@ void oai_create_enb(void) {
   }
 
   // This will cause phy_config_request to be installed. That will result in RRC configuring the PHY
-  // that will result in eNB->configured being set to TRUE.
+  // that will result in eNB->configured being set to true.
   // See we need to wait for that to happen otherwise the NFAPI message exchanges won't contain the right parameter values
   if (RC.eNB[0][0]->if_inst==0 || RC.eNB[0][0]->if_inst->PHY_config_req==0 || RC.eNB[0][0]->if_inst->schedule_response==0) {
     NFAPI_TRACE(NFAPI_TRACE_INFO, "RC.eNB[0][0]->if_inst->PHY_config_req is not installed - install it\n");
@@ -267,7 +267,7 @@ void oai_create_gnb(void) {
 
 
   // This will cause phy_config_request to be installed. That will result in RRC configuring the PHY
-  // that will result in gNB->configured being set to TRUE.
+  // that will result in gNB->configured being set to true.
   // See we need to wait for that to happen otherwise the NFAPI message exchanges won't contain the right parameter values
   if (RC.gNB[0]->if_inst==0 || RC.gNB[0]->if_inst->NR_PHY_config_req==0 || RC.gNB[0]->if_inst->NR_Schedule_response==0) {
     NFAPI_TRACE(NFAPI_TRACE_INFO, "RC.gNB[0][0]->if_inst->NR_PHY_config_req is not installed - install it\n");
diff --git a/nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_constants.h b/nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_constants.h
index 7fb42e566aa..6d40752a9aa 100644
--- a/nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_constants.h
+++ b/nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_constants.h
@@ -10,7 +10,8 @@
 #define FAPI_NR_MAX_RA_OCCASION_PER_CSIRS          64
 // Constants Defined in 38.213
 #define FAPI_NR_MAX_CORESET_PER_BWP                3
-#define FAPI_NR_MAX_SS                             10
+#define FAPI_NR_MAX_SS_PER_BWP                     10
+#define FAPI_NR_MAX_SS                             FAPI_NR_MAX_SS_PER_BWP*NR_MAX_NUM_BWP
 
 
 /// RX_IND
@@ -19,6 +20,7 @@
 #define FAPI_NR_RX_PDU_TYPE_DLSCH 0x03 
 #define FAPI_NR_DCI_IND 0x04
 #define FAPI_NR_RX_PDU_TYPE_RAR 0x05
+#define FAPI_NR_CSIRS_IND 0x06
 
 #define FAPI_NR_SIBS_MASK_SIB1 0x1
 
diff --git a/nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h b/nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h
index 5f8a856028c..a28762d1ff0 100644
--- a/nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h
+++ b/nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h
@@ -36,9 +36,6 @@
 */
 
 
-
-
-
 typedef struct {
   uint8_t uci_format;
   uint8_t uci_channel;
@@ -50,7 +47,14 @@ typedef struct {
   uint32_t sr;
 } fapi_nr_uci_pdu_rel15_t;
 
-    
+typedef struct {
+  uint32_t rsrp;
+  int rsrp_dBm;
+  uint8_t rank_indicator;
+  uint8_t i1;
+  uint8_t i2;
+  uint8_t cqi;
+} fapi_nr_csirs_measurements_t;
 
 typedef struct {
   /// frequency_domain_resource;
@@ -87,7 +91,7 @@ typedef struct {
   // N_CCE is L, or number of CCEs for DCI
   int N_CCE;
   uint8_t payloadSize;
-  uint8_t payloadBits[16];
+  uint8_t payloadBits[16] __attribute__((aligned(16))); // will be cast as uint64
   //fapi_nr_dci_pdu_rel15_t dci;
 } fapi_nr_dci_indication_pdu_t;
 
@@ -130,6 +134,7 @@ typedef struct {
     fapi_nr_pdsch_pdu_t pdsch_pdu;
     fapi_nr_ssb_pdu_t ssb_pdu;
     fapi_nr_sib_pdu_t sib_pdu;
+    fapi_nr_csirs_measurements_t csirs_measurements;
   };
 } fapi_nr_rx_indication_body_t;
 
@@ -308,6 +313,7 @@ typedef struct
   uint8_t  transform_precoding;
   uint16_t data_scrambling_id;
   uint8_t  nrOfLayers;
+  uint8_t  Tpmi;
   //DMRS
   uint16_t  ul_dmrs_symb_pos;
   uint8_t  dmrs_config_type;
@@ -433,6 +439,9 @@ typedef struct {
   uint8_t mcs;
   uint8_t ndi;
   uint8_t rv;
+  uint16_t targetCodeRate;
+  uint8_t qamModOrder;
+  uint32_t TBS;
   uint8_t tb2_mcs;
   uint8_t tb2_ndi;
   uint8_t tb2_rv;
@@ -464,6 +473,7 @@ typedef struct {
   uint8_t nEpreRatioOfPDSCHToPTRS;
   /// MCS table for this DLSCH
   uint8_t mcs_table;
+  uint32_t tbslbrm;
   uint8_t nscid;
   uint16_t dlDmrsScramblingId;
   uint16_t pduBitmap;
@@ -476,20 +486,20 @@ typedef struct {
 
 
 typedef struct {
-  uint16_t bwp_size;//
-  uint16_t bwp_start;//
-  uint8_t  subcarrier_spacing;//
-  uint8_t  cyclic_prefix;//
-  uint16_t start_rb;
-  uint16_t nr_of_rbs;
-  uint8_t  csi_type;//Value: 0:TRS 1:CSI-RS NZP 2:CSI-RS ZP
-  uint8_t  row;//Row entry into the CSI Resource location table. [TS38.211, sec 7.4.1.5.3 and table 7.4.1.5.3-1] Value: 1-18
-  uint16_t freq_domain;//Value: Up to the 12 LSBs, actual size is determined by the Row parameter
-  uint8_t  symb_l0;//The time domain location l0 and firstOFDMSymbolInTimeDomain Value: 0->13
-  uint8_t  symb_l1;//
-  uint8_t  cdm_type;
-  uint8_t  freq_density;//The density field, p and comb offset (for dot5).0: dot5 (even RB), 1: dot5 (odd RB), 2: one, 3: three
-  uint16_t scramb_id;//ScramblingID of the CSI-RS [TS38.214, sec 5.2.2.3.1] Value: 0->1023
+  uint8_t subcarrier_spacing;       // subcarrierSpacing [3GPP TS 38.211, sec 4.2], Value:0->4
+  uint8_t cyclic_prefix;            // Cyclic prefix type [3GPP TS 38.211, sec 4.2], 0: Normal; 1: Extended
+  uint16_t start_rb;                // PRB where this CSI resource starts related to common resource block #0 (CRB#0). Only multiples of 4 are allowed. [3GPP TS 38.331, sec 6.3.2 parameter CSIFrequencyOccupation], Value: 0 ->274
+  uint16_t nr_of_rbs;               // Number of PRBs across which this CSI resource spans. Only multiples of 4 are allowed. [3GPP TS 38.331, sec 6.3.2 parameter CSI-FrequencyOccupation], Value: 24 -> 276
+  uint8_t csi_type;                 // CSI Type [3GPP TS 38.211, sec 7.4.1.5], Value: 0:TRS; 1:CSI-RS NZP; 2:CSI-RS ZP
+  uint8_t row;                      // Row entry into the CSI Resource location table. [3GPP TS 38.211, sec 7.4.1.5.3 and table 7.4.1.5.3-1], Value: 1-18
+  uint16_t freq_domain;             // Bitmap defining the frequencyDomainAllocation [3GPP TS 38.211, sec 7.4.1.5.3] [3GPP TS 38.331 CSIResourceMapping], Value: Up to the 12 LSBs, actual size is determined by the Row parameter
+  uint8_t symb_l0;                  // The time domain location l0 and firstOFDMSymbolInTimeDomain [3GPP TS 38.211, sec 7.4.1.5.3], Value: 0->13
+  uint8_t symb_l1;                  // The time domain location l1 and firstOFDMSymbolInTimeDomain2 [3GPP TS 38.211, sec 7.4.1.5.3], Value: 2->12
+  uint8_t cdm_type;                 // The cdm-Type field [3GPP TS 38.211, sec 7.4.1.5.3 and table 7.4.1.5.3-1], Value: 0: noCDM; 1: fd-CDM2; 2: cdm4-FD2-TD2; 3: cdm8-FD2-TD4
+  uint8_t freq_density;             // The density field, p and comb offset (for dot5). [3GPP TS 38.211, sec 7.4.1.5.3 and table 7.4.1.5.3-1], Value: 0: dot5 (even RB); 1: dot5 (odd RB); 2: one; 3: three
+  uint16_t scramb_id;               // ScramblingID of the CSI-RS [3GPP TS 38.214, sec 5.2.2.3.1], Value: 0->1023
+  uint8_t power_control_offset;     // Ratio of PDSCH EPRE to NZP CSI-RSEPRE [3GPP TS 38.214, sec 5.2.2.3.1], Value: 0->23 representing -8 to 15 dB in 1dB steps; 255: L1 is configured with ProfileSSS
+  uint8_t power_control_offset_ss;  // Ratio of NZP CSI-RS EPRE to SSB/PBCH block EPRE [3GPP TS 38.214, sec 5.2.2.3.1], Values: 0: -3dB; 1: 0dB; 2: 3dB; 3: 6dB; 255: L1 is configured with ProfileSSS
 } fapi_nr_dl_config_csirs_pdu_rel15_t;
 
 
diff --git a/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h b/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h
index c3a173758cc..3a7dd8d523d 100644
--- a/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h
+++ b/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h
@@ -738,7 +738,7 @@ typedef struct {
   // The total DCI length (in bits) including padding bits [TS38.212 sec 7.3.1] Range 0->DCI_PAYLOAD_BYTE_LEN*8
   uint16_t PayloadSizeBits;
   // DCI payload, where the actual size is defined by PayloadSizeBits. The bit order is as following bit0-bit7 are mapped to first byte of MSB - LSB
-  uint8_t Payload[DCI_PAYLOAD_BYTE_LEN];
+  uint8_t Payload[DCI_PAYLOAD_BYTE_LEN] __attribute__((aligned(32)));
 
 } nfapi_nr_dl_dci_pdu_t;
 
@@ -776,6 +776,10 @@ typedef struct {
   nfapi_nr_dl_dci_pdu_t dci_pdu[MAX_DCI_CORESET];
 }  nfapi_nr_dl_tti_pdcch_pdu_rel15_t;
 
+typedef struct {
+  uint32_t tbSizeLbrmBytes;
+}nfapi_v3_pdsch_maintenance_parameters_t;
+
 typedef struct {
   uint16_t pduBitmap;
   uint16_t rnti;
@@ -854,6 +858,7 @@ typedef struct {
   uint8_t nEpreRatioOfPDSCHToPTRS;
   // Beamforming
   nfapi_nr_tx_precoding_and_beamforming_t precodingAndBeamforming;
+  nfapi_v3_pdsch_maintenance_parameters_t maintenance_parms_v3;
 }nfapi_nr_dl_tti_pdsch_pdu_rel15_t;
 
 
@@ -920,32 +925,24 @@ typedef struct
 } nfapi_nr_dlsch_pdu_t;
 */
 
-//for csi-rs_pdu:
-
-//table 3-39
 typedef struct
 {
-  uint16_t bwp_size;//
-  uint16_t bwp_start;//
-  uint8_t  subcarrier_spacing;//
-  uint8_t  cyclic_prefix;//
-  uint16_t start_rb;
-  uint16_t nr_of_rbs;
-  uint8_t  csi_type;//Value: 0:TRS 1:CSI-RS NZP 2:CSI-RS ZP
-  uint8_t  row;//Row entry into the CSI Resource location table. [TS38.211, sec 7.4.1.5.3 and table 7.4.1.5.3-1] Value: 1-18
-  uint16_t freq_domain;//Value: Up to the 12 LSBs, actual size is determined by the Row parameter
-  uint8_t  symb_l0;//The time domain location l0 and firstOFDMSymbolInTimeDomain Value: 0->13
-  uint8_t  symb_l1;//
-  uint8_t  cdm_type;
-  uint8_t  freq_density;//The density field, p and comb offset (for dot5).0: dot5 (even RB), 1: dot5 (odd RB), 2: one, 3: three
-  uint16_t scramb_id;//ScramblingID of the CSI-RS [TS38.214, sec 5.2.2.3.1] Value: 0->1023
-  //tx power info
-  uint8_t  power_control_offset;//Ratio of PDSCH EPRE to NZP CSI-RSEPRE Value :0->23 representing -8 to 15 dB in 1dB steps
-  uint8_t  power_control_offset_ss;//Ratio of SSB/PBCH block EPRE to NZP CSI-RS EPRES 0: -3dB, 1: 0dB, 2: 3dB, 3: 6dB
-
+  uint8_t subcarrier_spacing;       // subcarrierSpacing [3GPP TS 38.211, sec 4.2], Value:0->4
+  uint8_t cyclic_prefix;            // Cyclic prefix type [3GPP TS 38.211, sec 4.2], 0: Normal; 1: Extended
+  uint16_t start_rb;                // PRB where this CSI resource starts related to common resource block #0 (CRB#0). Only multiples of 4 are allowed. [3GPP TS 38.331, sec 6.3.2 parameter CSIFrequencyOccupation], Value: 0 ->274
+  uint16_t nr_of_rbs;               // Number of PRBs across which this CSI resource spans. Only multiples of 4 are allowed. [3GPP TS 38.331, sec 6.3.2 parameter CSI-FrequencyOccupation], Value: 24 -> 276
+  uint8_t csi_type;                 // CSI Type [3GPP TS 38.211, sec 7.4.1.5], Value: 0:TRS; 1:CSI-RS NZP; 2:CSI-RS ZP
+  uint8_t row;                      // Row entry into the CSI Resource location table. [3GPP TS 38.211, sec 7.4.1.5.3 and table 7.4.1.5.3-1], Value: 1-18
+  uint16_t freq_domain;             // Bitmap defining the frequencyDomainAllocation [3GPP TS 38.211, sec 7.4.1.5.3] [3GPP TS 38.331 CSIResourceMapping], Value: Up to the 12 LSBs, actual size is determined by the Row parameter
+  uint8_t symb_l0;                  // The time domain location l0 and firstOFDMSymbolInTimeDomain [3GPP TS 38.211, sec 7.4.1.5.3], Value: 0->13
+  uint8_t symb_l1;                  // The time domain location l1 and firstOFDMSymbolInTimeDomain2 [3GPP TS 38.211, sec 7.4.1.5.3], Value: 2->12
+  uint8_t cdm_type;                 // The cdm-Type field [3GPP TS 38.211, sec 7.4.1.5.3 and table 7.4.1.5.3-1], Value: 0: noCDM; 1: fd-CDM2; 2: cdm4-FD2-TD2; 3: cdm8-FD2-TD4
+  uint8_t freq_density;             // The density field, p and comb offset (for dot5). [3GPP TS 38.211, sec 7.4.1.5.3 and table 7.4.1.5.3-1], Value: 0: dot5 (even RB); 1: dot5 (odd RB); 2: one; 3: three
+  uint16_t scramb_id;               // ScramblingID of the CSI-RS [3GPP TS 38.214, sec 5.2.2.3.1], Value: 0->1023
+  uint8_t power_control_offset;     // Ratio of PDSCH EPRE to NZP CSI-RSEPRE [3GPP TS 38.214, sec 5.2.2.3.1], Value: 0->23 representing -8 to 15 dB in 1dB steps; 255: L1 is configured with ProfileSSS
+  uint8_t power_control_offset_ss;  // Ratio of NZP CSI-RS EPRE to SSB/PBCH block EPRE [3GPP TS 38.214, sec 5.2.2.3.1], Values: 0: -3dB; 1: 0dB; 2: 3dB; 3: 6dB; 255: L1 is configured with ProfileSSS
 } nfapi_nr_dl_tti_csi_rs_pdu_rel15_t;
 
-//for ssb_pdu: 
 
 typedef struct
 {
@@ -1195,6 +1192,10 @@ typedef struct
 #define PUSCH_PDU_BITMAP_PUSCH_PTRS 0x4
 #define PUSCH_PDU_BITMAP_DFTS_OFDM  0x8
 
+typedef struct {
+  uint32_t tbSizeLbrmBytes;
+}nfapi_v3_pusch_maintenance_parameters_t;
+
 typedef struct
 {
   uint16_t pdu_bit_map;//Bitmap indicating presence of optional PDUs (see above)
@@ -1240,7 +1241,7 @@ typedef struct
   nfapi_nr_dfts_ofdm_t dfts_ofdm;
   //beamforming
   nfapi_nr_ul_beamforming_t beamforming;
-
+  nfapi_v3_pdsch_maintenance_parameters_t maintenance_parms_v3;
 } nfapi_nr_pusch_pdu_t;
 
 //for pucch_pdu:
@@ -1665,41 +1666,34 @@ typedef struct
 
 } nfapi_nr_uci_indication_t;
 
-//3.4.10 srs_indication
-//table 3-73
 
-typedef struct
-{
-  uint8_t  rb_snr;
-}nfapi_nr_srs_indication_reported_symbol_resource_block_t;
+/// 5G PHY FAPI Specification: SRS indication - Section 3.4.10, Table 3-73
 
-typedef struct
-{
-  uint16_t num_rbs;
+typedef struct {
+  uint8_t rb_snr;                 // SNR value in dB. Value: 0 -> 255 representing -64 dB to 63 dB with a step size 0.5 dB, 0xff will be set if this field is invalid.
+} nfapi_nr_srs_indication_reported_symbol_resource_block_t;
+
+typedef struct {
+  uint16_t num_rbs;               // Number of PRBs to be reported for this SRS PDU. Value: 0 -> 272.
   nfapi_nr_srs_indication_reported_symbol_resource_block_t* rb_list;
-}nfapi_nr_srs_indication_reported_symbol_t;
+} nfapi_nr_srs_indication_reported_symbol_t;
 
-#define NFAPI_NR_SRS_IND_MAX_PDU 100
-typedef struct
-{
-  uint32_t handle;
-  uint16_t rnti;
-  uint16_t timing_advance;
-  uint8_t  num_symbols;
-  uint8_t  wide_band_snr;
-  uint8_t  num_reported_symbols;
+typedef struct {
+  uint32_t handle;                // The handle passed to the PHY in the the UL_TTI.request SRS PDU.
+  uint16_t rnti;                  // The RNTI passed to the PHY in the UL_TTI.request SRS PDU. Value: 1 -> 65535.
+  uint16_t timing_advance;        // Timing advance TA measured for the UE [TS 38.213, Section 4.2]. NTA_new = NTA_old + (TA − 31) * 16 * 64 / (2^u). Value: 0 -> 63. 0xffff should be set if this field is invalid.
+  uint8_t num_symbols;            // Number of symbols for SRS. Value: 1 -> 4. If a PHY does not report for individual symbols then this parameter should be set to 1.
+  uint8_t wide_band_snr;          // SNR value in dB measured within configured SRS bandwidth on each symbol. Value: 0 -> 255 representing -64 dB to 63 dB with a step size 0.5 dB. 0xff will be set if this field is invalid.
+  uint8_t num_reported_symbols;   // Number of symbols reported in this message. This allows PHY to report individual symbols or aggregated symbols where this field will be set to 1. Value: 1 -> 4.
   nfapi_nr_srs_indication_reported_symbol_t* reported_symbol_list;
+} nfapi_nr_srs_indication_pdu_t;
 
-}nfapi_nr_srs_indication_pdu_t;
-
-typedef struct
-{
+typedef struct {
   nfapi_p7_message_header_t header;
-  uint16_t sfn;
-  uint16_t slot;
-  uint8_t number_of_pdus;
+  uint16_t sfn;                   // SFN. Value: 0 -> 1023
+  uint16_t slot;                  // Slot. Value: 0 -> 159
+  uint8_t number_of_pdus;         // Number of PDUs included in this message. Value: 0 -> 255
   nfapi_nr_srs_indication_pdu_t* pdu_list;
-
 } nfapi_nr_srs_indication_t;
 
 
diff --git a/nfapi/open-nFAPI/nfapi/src/nfapi_p7.c b/nfapi/open-nFAPI/nfapi/src/nfapi_p7.c
index 3adde23e7da..98f89f599c8 100644
--- a/nfapi/open-nFAPI/nfapi/src/nfapi_p7.c
+++ b/nfapi/open-nFAPI/nfapi/src/nfapi_p7.c
@@ -200,8 +200,6 @@ static uint8_t pack_tpm_value(nfapi_dl_config_dci_dl_tpm_t *value, uint8_t **ppW
 static uint8_t pack_dl_tti_csi_rs_pdu_rel15_value(void *tlv, uint8_t **ppWritePackedMsg, uint8_t *end) {
   nfapi_nr_dl_tti_csi_rs_pdu_rel15_t *value = (nfapi_nr_dl_tti_csi_rs_pdu_rel15_t *)tlv;
   return(
-          push16(value->bwp_size, ppWritePackedMsg, end) &&
-          push16(value->bwp_start, ppWritePackedMsg, end) &&
           push8(value->subcarrier_spacing, ppWritePackedMsg, end) &&
           push8(value->cyclic_prefix, ppWritePackedMsg, end) &&
           push16(value->start_rb, ppWritePackedMsg, end) &&
@@ -3663,8 +3661,6 @@ int nfapi_p7_message_pack(void *pMessageBuf, void *pPackedBuf, uint32_t packedBu
 static uint8_t unpack_dl_tti_csi_rs_pdu_rel15_value(void *tlv, uint8_t **ppReadPackedMsg, uint8_t *end) {
   nfapi_nr_dl_tti_csi_rs_pdu_rel15_t *value = (nfapi_nr_dl_tti_csi_rs_pdu_rel15_t *)tlv;
   return(
-          pull16(ppReadPackedMsg, &value->bwp_size, end) &&
-          pull16(ppReadPackedMsg, &value->bwp_start, end) &&
           pull8(ppReadPackedMsg, &value->subcarrier_spacing, end) &&
           pull8(ppReadPackedMsg, &value->cyclic_prefix, end) &&
           pull16(ppReadPackedMsg, &value->start_rb, end) &&
diff --git a/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c b/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c
index 264b25deca4..af02a160547 100644
--- a/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c
+++ b/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c
@@ -814,7 +814,7 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y,
   llr_t *s1,*s2,*yp1,*yp2,*yp;
   unsigned int i,j,iind;//,pi;
   unsigned char iteration_cnt=0;
-  unsigned int crc,oldcrc,crc_len;
+  unsigned int crc, crc_len;
   uint8_t temp;
 #if defined(__x86_64__) || defined(__i386__)
   __m128i *yp128;
@@ -1233,8 +1233,8 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y,
       }
 
       // check the CRC
-      oldcrc= *((unsigned int *)(&decoded_bytes[(n>>3)-crc_len]));
-
+      uint32_t oldcrc;
+      memcpy(&oldcrc, &decoded_bytes[(n >> 3) - crc_len], crc_len);
       switch (crc_type) {
         case CRC24_A:
           oldcrc&=0x00ffffff;
diff --git a/openair1/PHY/CODING/coding_defs.h b/openair1/PHY/CODING/coding_defs.h
index 8fe31f208ea..1854f28fa78 100644
--- a/openair1/PHY/CODING/coding_defs.h
+++ b/openair1/PHY/CODING/coding_defs.h
@@ -38,7 +38,6 @@
 #define MAX_TURBO_ITERATIONS_MBSFN 8
 #define MAX_TURBO_ITERATIONS max_turbo_iterations
 
-#define MAX_LDPC_ITERATIONS 5
 #define MAX_LDPC_ITERATIONS_MBSFN 4
 
 #define LTE_NULL 2
@@ -469,28 +468,11 @@ int32_t nr_segmentation(unsigned char *input_buffer,
                      unsigned int *F,
                      uint8_t BG);
 
-/*!\fn uint32_t nr_compute_tbs
-\brief This function returns the TBS in bits as per 6.1.4.2 of TS 38.214
-*/
-uint32_t nr_compute_tbs(uint16_t Qm,
-                        uint16_t R,
-			uint16_t nb_rb,
-			uint16_t nb_symb_sch,
-			uint16_t nb_dmrs_prb,
-                        uint16_t nb_rb_oh,
-                        uint8_t tb_scaling,
-			uint8_t Nl);
-
-uint32_t nr_compute_tbslbrm(uint16_t table,
-			    uint16_t nb_rb,
-		            uint8_t Nl);
-
 void nr_interleaving_ldpc(uint32_t E, uint8_t Qm, uint8_t *e,uint8_t *f);
 
 void nr_deinterleaving_ldpc(uint32_t E, uint8_t Qm, int16_t *e,int16_t *f);
 
-int nr_rate_matching_ldpc(uint8_t Ilbrm,
-                          uint32_t Tbslbrm,
+int nr_rate_matching_ldpc(uint32_t Tbslbrm,
                           uint8_t BG,
                           uint16_t Z,
                           uint8_t *w,
@@ -501,8 +483,7 @@ int nr_rate_matching_ldpc(uint8_t Ilbrm,
                           uint8_t rvidx,
                           uint32_t E);
 
-int nr_rate_matching_ldpc_rx(uint8_t Ilbrm,
-                             uint32_t Tbslbrm,
+int nr_rate_matching_ldpc_rx(uint32_t Tbslbrm,
                              uint8_t BG,
                              uint16_t Z,
                              int16_t *w,
diff --git a/openair1/PHY/CODING/crc_byte.c b/openair1/PHY/CODING/crc_byte.c
index 9ad18cc1a63..471b26fe243 100644
--- a/openair1/PHY/CODING/crc_byte.c
+++ b/openair1/PHY/CODING/crc_byte.c
@@ -244,11 +244,11 @@ crc16 (unsigned char * inptr, int bitlen)
 
   while (octetlen-- > 0) {
 
-    crc = (crc << 8) ^ (crc16Table[(*inptr++) ^ (crc >> 24)] << 16);
+    crc = (crc << 8) ^ (((uint32_t)crc16Table[(*inptr++) ^ (crc >> 24)]) << 16);
   }
 
   if (resbit > 0)
-    crc = (crc << resbit) ^ (crc16Table[((*inptr) >> (8 - resbit)) ^ (crc >> (32 - resbit))] << 16);
+    crc = (crc << resbit) ^ (((uint32_t)crc16Table[(*inptr) >> (8 - resbit) ^ (crc >> (32 - resbit))]) << 16);
 
   return crc;
 }
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC/logo.png b/openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC/logo.png
deleted file mode 100644
index 7b785ca0517c0aa7467aafebff9255b2bdf0b8ef..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3723
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
HwF&(n?xrWN

diff --git a/openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC/nrLDPC.pdf b/openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC/nrLDPC.pdf
deleted file mode 100644
index 590dab5ce26bd9181db6f61c649842e44aefd922..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 281923
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
Y9bN6e!;cZbz{t!BMM5GhBLemR0K0!5$^ZZW

diff --git a/openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC/nrLDPC.tex b/openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC/nrLDPC.tex
deleted file mode 100644
index 019b51aa96f..00000000000
--- a/openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC/nrLDPC.tex
+++ /dev/null
@@ -1,960 +0,0 @@
-%
-% Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
-% contributor license agreements.  See the NOTICE file distributed with
-% this work for additional information regarding copyright ownership.
-% The OpenAirInterface Software Alliance licenses this file to You under
-% the OAI Public License, Version 1.1  (the "License"); you may not use this file
-% except in compliance with the License.
-% You may obtain a copy of the License at
-%
-%      http://www.openairinterface.org/?page_id=698
-%
-% Unless required by applicable law or agreed to in writing, software
-% distributed under the License is distributed on an "AS IS" BASIS,
-% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-% See the License for the specific language governing permissions and
-% limitations under the License.
-%-------------------------------------------------------------------------------
-% For more information about the OpenAirInterface (OAI) Software Alliance:
-%      contact@openairinterface.org
-%
-
-\documentclass{article}
-
-\usepackage[a4paper, total={6in, 8in}]{geometry}
-
-\usepackage{amsmath}
-\usepackage{amsfonts}
-\usepackage{amssymb}
-\usepackage{booktabs}
-\usepackage{url}
-\usepackage{tcolorbox}
-
-\usepackage{tikz}
-\usetikzlibrary{arrows,decorations,shapes,backgrounds,patterns}
-\usepackage{pgfplots}
-\pgfplotsset{compat=newest}
-\definecolor{green}{RGB}{32,127,43}
-\usetikzlibrary{calc}
-
-\usepackage{listings}
-\lstdefinestyle{customc}{
-  belowcaptionskip=1\baselineskip,
-  breaklines=true,
-  frame=L,
-  xleftmargin=\parindent,
-  language=C,
-  showstringspaces=false,
-  basicstyle=\footnotesize\ttfamily,
-  keywordstyle=\bfseries\color{green!40!black},
-  commentstyle=\itshape\color{purple!40!black},
-  identifierstyle=\color{blue},
-  stringstyle=\color{orange},
-}
-\lstset{escapechar=@,style=customc}
-
-\title{NR LDPC Decoder}
-\author{Sebastian Wagner (TCL)}
-\date{\today}
-
-\def\0{\mathbf{0}}
-\def\b{\mathbf{b}}
-\def\Bbb{\mathbb{B}}
-\def\Bcal{\mathcal{B}}
-\def\c{\mathbf{c}}
-\def\C{\mathbf{C}}
-\def\Cbb{\mathbb{C}}
-\def\Ccal{\mathcal{C}}
-\def\eqdef{\triangleq}
-\def\g{\mathbf{g}}
-\def\G{\mathbf{G}}
-\def\Gcal{\mathcal{G}}
-\def\h{\mathbf{h}}
-\def\H{\mathbf{H}}
-\def\Hbg{\mathbf{H}_\mathrm{BG}}
-\def\Hbgo{\mathbf{H}_\mathrm{BG1}}
-\def\Hbgt{\mathbf{H}_\mathrm{BG2}}
-\def\I{\mathbf{I}}
-\def\Kb{{K_b}}
-\def\m{\mathbf{m}}
-\def\Mb{{M_b}}
-\def\Nb{{N_b}}
-\def\Nbb{\mathbb{N}}
-\def\n{\mathbf{n}}
-\def\nr{{n_{\rm r}}}
-\def\nt{{n_{\rm t}}}
-\def\s{\mathbf{s}}
-\def\SNR{\mathsf{SNR}}
-\def\y{\mathbf{y}}
-\def\z{\mathbf{z}}
-\def\Z{\mathbf{Z}}
-\def\Zc{{Z_c}}
-
-
-\def\herm{\mathsf{H}}
-\def\trans{\mathsf{T}}
-\def\EE{\mathsf{E}}
-\newcommand{\sgn}{\operatorname{sgn}}
-
-\begin{document}
-
-\maketitle
-
-\begin{tikzpicture}[remember picture,overlay]
-   \node[anchor=north west,inner sep=0pt] at (current page.north west)
-              {\includegraphics[scale=0.5]{logo.png}};
-\end{tikzpicture}
-
-
-\begin{center}Currently Supported:\end{center}
-\tcbox[center]{
-    \begin{tabular}{lll}
-      \toprule
-      \textbf{BG} & \textbf{Lifting Size Z} & \textbf{Code Rate R} \\
-      \midrule
-        1 & all & 1/3, 2/3, 8/9 \\
-        2 & all & 1/5, 1/3, 2/3 \\
-      \bottomrule
-    \end{tabular}
-}
-
-\paragraph{Version 1.0:}
-\begin{itemize}
-\item Initial version
-\end{itemize}
-
-\paragraph{Version 2.0:}
-\begin{itemize}
-\item Enhancements in message passing:
-  \begin{itemize}
-  \item LUTs replaced by smaller BG-specific parameters
-  \item Inefficient load/store replaced by circular memcpy
-  \end{itemize}
-\item Bug fixes:
-  \begin{itemize}
-  \item Fixed bug in function \texttt{llr2CnProcBuf}
-  \item Corrected input LLR dynamic range in BLER simulations
-  \end{itemize}
-\item Results:
-  \begin{itemize}
-  \item Size of LUTs reduced significantly (60MB to 200KB)
-  \item Siginifcantly enhances execution time (factor 3.5)
-  \item Improved BLER performance (all simulation results have been updated)
-  \end{itemize}
-\end{itemize}
-
-
-\newpage
-\tableofcontents
-
-\newpage
-\section{Introduction}
-\label{sec:introduction}
-
-Low Density Parity Check (LDPC) codes have been developed by Gallager in 1963 \cite{gallager1962low}. They are linear error correcting codes that are capacity-achieving for large block length and are completely described by their Parity Check Matrix (PCM) $\H^{M\times N}$. The PCM $\H$ defines $M$ constraints on the codeword $\c$ of length $N$ such that
-\begin{equation}
-  \label{eq:29}
-  \H\c = \0.
-\end{equation}
-The number of information bits $B$ that can be encoded with $\H$ is given by $B=N-M$. Hence the code rate $R$ of $\H$ reads
-\begin{equation}
-  \label{eq:37}
-  R = \frac{B}{N} = 1-\frac{M}{N}.
-\end{equation}
-
-
-\subsection{LDPC in NR}
-\label{sec:ldpc-nr}
-
-NR uses quasi-cyclic (QC) Protograph LDPC codes, i.e. a smaller graph, called Base Graph (BG), is defined and utilized to construct the larger PCM. This has the advantage that the large PCM does not have to be stored in memory and allows for a more efficient implementation while maintaining good decoding properties.
-Two BGs $\Hbg\in\Nbb^{\Mb\times \Nb}$ are defined in NR:
-\begin{enumerate}
-\item $\Hbgo\in\Nbb^{46\times 68}$
-\item $\Hbgt\in\Nbb^{42\times 52}$
-\end{enumerate}
-where $\Nbb$ is the set of integers. For instance the first 3 rows and 13 columns of BG2 are given by
-
-\setcounter{MaxMatrixCols}{30}
-\begin{equation*}
-  \label{eq:33}
-  \Hbgt =
-  \begin{bmatrix}
-    9   & 117       & 204       & 26  & \emptyset & \emptyset & 189       & \emptyset & \emptyset & 205       & 0         & 0         & \emptyset & \emptyset \\
-    127 & \emptyset & \emptyset & 166 & 253       & 125       & 226       & 156       & 224       & 252       & \emptyset & 0         & 0         & \emptyset \\
-    81  & 114       & \emptyset & 44  & 52        & \emptyset & \emptyset & \emptyset & 240       & \emptyset & 1         & \emptyset & 0         & 0
-  \end{bmatrix}.
-\end{equation*}
-
-To obtain the PCM $\H$ from the BG $\Hbg$, each element $\Hbg(i,j)$ in the BG is replaced by a lifting matrix of size $\Zc\times \Zc$ according to
-\begin{equation}
-  \label{eq:35}
-  \Hbg(i,j) =
-  \begin{cases}
-    \0 & \textrm{if}~ \Hbg(i,j)=\emptyset \\
-    \I_{P_{ij}} & \textrm{otherwise}
-  \end{cases}
-\end{equation}
-where $\I_{P_{ij}}$ is the identity matrix circularly shifted to the right by $P_{ij} = \Hbg(i,j)\mod \Zc$. Hence, the resulting PCM $\H$ will be of size $\Mb\Zc\times\Nb\Zc$.
-
-The lifting size $\Zc$ depends on the number of bits to encode. To limit the complexity, a discrete set $\mathcal{Z}$ of possible values of $\Zc$ has been defined in \cite{3gpp2017_38212} and the optimal value $\Zc$ is calculated according to
-\begin{equation}
-  \label{eq:36}
-  \Zc = \min_{\Z\in\mathcal{Z}}\left[Z\geq\frac{B}{\Nb}\right].
-\end{equation}
-
-The base rate of the two BGs is $1/3$ and $1/5$ for BG1 and BG2, respectively. That is, BG1 encodes $K=22\Zc$ bits and BG2 encodes $K=10\Zc$ bits. Note that the first 2 columns of BG 1 and 2 are always punctured, that is after encoding, the first $2\Zc$ bits are discarded and not transmitted.
-For instance, consider $B=500$ information bits to encode using BG2, \eqref{eq:36} yields $\Zc=64$ hence $K=640$. Since $K>B$, $K-B=140$ filler bits are appended to the information bits. The PCM $\Hbgt$ is of size $2688\times 3328$ and the $640$ bits $\b$ are encoded according to \eqref{eq:29} at a rate $R \approx 0.192$. To achieve the higher base rate of $0.2$, the first $128$ are punctured, i.e. instead of transmitting all $3328$ bits, only $3200$ are transmitted resulting in the desired rate $R=640/3200=0.2$.
-
-\subsection{LDPC Decoding}
-\label{sec:ldpc-decoding}
-
-The decoding of codeword $\c$ can be achieved via the classical message passing algorithm. This algorithm can be illustrated best using the Tanner graph of the PCM. The rows of the PCM are called check nodes (CN) since they represent the parity check equations. The parity check equation of each of these check nodes involves various bits in the codeword. Similarly, every column of the PCM corresponds to a bit and each bit is involved in several parity check equations. In the Tanner graph representation, the bits are called bit nodes (BN). Let's go back to the previous example of BG2 and assume $\Zc=2$, hence the first 3 rows and 13 columns of BG2 $\Hbgt$ read
-\begin{equation*}
-  \label{eq:36}
-  \Hbgt =
-  \begin{bmatrix}
-    1 & 1         & 0         & 0 & \emptyset & \emptyset & 1         & \emptyset & \emptyset & 1         & 0         & 0         & \emptyset & \emptyset \\
-    1 & \emptyset & \emptyset & 0 & 1         & 1         & 0         & 0         & 0         & 0         & \emptyset & 0         & 0         & \emptyset \\
-    1 & 0         & \emptyset & 0 & 0         & \emptyset & \emptyset & \emptyset & 0         & \emptyset & 1         & \emptyset & 0         & 0
-  \end{bmatrix}.
-\end{equation*}
-Replacing the elements according to \eqref{eq:35}, we obtain the first 6 rows and 26 columns of the PCM as
-\begin{equation*}
-  \label{eq:39}
-  \H =
-  \begin{bmatrix}
-    0 & 1 & 0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\
-    1 & 0 & 1 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0\\
-    0 & 1 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 1 & 0 & 1 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0\\
-    1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 1 & 0 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0\\
-    0 & 1 & 1 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 1 & 0 & 1 & 0\\
-    1 & 0 & 0 & 1 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 1 & 0 & 1
-  \end{bmatrix}.
-\end{equation*}
-
-The Tanner graph of the first 8 BNs is shown in Figure \ref{fig:tannergraph}.
-
-\begin{figure}[ht]
-  \label{fig:tannergraph}
-  \centering
-  \def\ww{0.3cm}
-  \def\hh{0.3cm}
-  \tikzstyle{cnode}=[fill=white,rectangle,draw=black,thick,inner sep=2pt, minimum height=\hh,minimum width=\ww, rounded corners=1pt,text width=\ww]
-  \tikzstyle{vnode}=[fill=white,circle,draw=black,thick,inner sep=2pt, minimum height=\hh,minimum width=\ww, rounded corners=1pt,text width=\ww]
-  \tikzstyle{connector}=[<->,>=latex',semithick]
-
-  \begin{tikzpicture}
-    \tikzstyle{every node}=[node distance=1.5cm,text centered]
-    % Check nodes
-    \node[cnode, label=above:$v_0$] (v0) {};
-    \node[cnode, label=above:$v_1$, right of=v0] (v1) {};
-    \node[cnode, label=above:$v_2$, right of=v1] (v2) {};
-    % Variable nodes
-    \node[vnode, label=below:$c_3$, below of=v1, node distance=1.5cm] (c3) {};
-    \node[vnode, label=below:$c_2$, left of=c3, node distance=1.5cm] (c2) {};
-    \node[vnode, label=below:$c_1$, left of=c2, node distance=1.5cm] (c1) {};
-    \node[vnode, label=below:$c_0$, left of=c1, node distance=1.5cm] (c0) {};
-    \node[vnode, label=below:$c_4$, right of=c3, node distance=1.5cm] (c4) {};
-    \node[vnode, label=below:$c_5$, right of=c4, node distance=1.5cm] (c5) {};
-    \node[vnode, label=below:$c_6$, right of=c5, node distance=1.5cm] (c6) {};
-
-    % Draw edges
-    \draw (c0) edge[connector] (v1);
-    \draw (c1) edge[connector] (v0);
-    \draw (c1) edge[connector] (v2);
-    \draw (c2) edge[connector] (v1);
-    \draw (c3) edge[connector] (v0);
-    \draw (c4) edge[connector] (v0);
-    \draw (c4) edge[connector] (v2);
-    \draw (c5) edge[connector] (v1);
-    \draw (c6) edge[connector] (v0);
-    \draw (c6) edge[connector] (v2);
-
-  \end{tikzpicture}
-
-  \caption{Tanner graph for first 7 bits nodes and 3 check nodes from \eqref{eq:39}.}
-\end{figure}
-
-The message passing algorithm is an iterative algorithm where probabilities of the bits (being either 0 or 1) are exchanged between the BNs and CNs. After sufficient iterations, the probabilities will have either converged to either 0 or 1 and the parity check equations will be satisfied, at this point, the codeword has been decoded correctly.
-
-\newpage
-\section{LDPC Decoder Implementation}
-\label{sec:ldpc-implementation}
-
-The implementation on a general purpose processor (GPP) has to take advantage of potential instruction extension of the processor architecture. We focus on the Intel x86 instruction set architecture (ISA) and its advanced vector extension (AVX). In particular, we utilize AVX2 with its 256-bit single instruction multiple data (SIMD) format. In order to utilize AVX2 to speed up the processing at the CNs and BNs, the corresponding data has to be ordered/aligned in a specific way. The processing flow of the LDPC decoder is depicted in \ref{fig:ldpc_decoder_flow}.
-
-\begin{figure}[ht]
-  \label{fig:ldpc_decoder_flow}
-  \centering
-  \def\ww{0.3cm}
-  \def\hh{0.3cm}
-  \tikzstyle{func}=[,draw=none]
-  \tikzstyle{connector}=[->,>=latex',semithick]
-
-  \begin{tikzpicture}
-    \tikzstyle{every node}=[node distance=2.5cm,text centered]
-    % Check nodes
-    % First iteration
-    \node[func]                               (llr2llrProcBuf) {\texttt{llr2llrProcBuf}};
-    \node[func, above of=llr2llrProcBuf]      (llr2CnProcBuf)  {\texttt{llr2CnProcBuf}};
-    \node[func, above right of=llr2CnProcBuf] (cnProc1)        {\texttt{cnProc}};
-    \node[func, below right of=cnProc1]       (cn2bnProcBuf1)  {\texttt{cn2bnProcBuf}};
-    \node[func, below  of=cn2bnProcBuf1]      (bnProcPc1)      {\texttt{bnProcPc}};
-
-    % Iterations
-    \node[func, right of=cnProc1, node distance=7cm] (cnProc)       {\texttt{cnProc}};
-    \node[func, below right of=cnProc]               (cn2bnProcBuf) {\texttt{cn2bnProcBuf}};
-    \node[func, below of=cn2bnProcBuf]               (bnProcPc)     {\texttt{bnProcPc}};
-    \node[func, below left of=cnProc]                (bn2cnProcBuf) {\texttt{bn2cnProcBuf}};
-    \node[func, below  of=bn2cnProcBuf]              (bnProc)       {\texttt{bnProc}};
-
-    % Post processing
-    \node[func, below of=bnProcPc]      (llrRes2llrOut) {\texttt{llrRes2llrOut}};
-    \node[func, below of=llrRes2llrOut, node distance=1cm] (llr2bit) {\texttt{llr2bit}};
-
-    % Draw edges
-    \draw (llr2llrProcBuf)  edge[connector] (llr2CnProcBuf);
-    \draw (llr2CnProcBuf)   edge[connector] (cnProc1);
-    \draw (cnProc1)         edge[connector] (cn2bnProcBuf1);
-    \draw (cn2bnProcBuf1)   edge[connector] (bnProcPc1);
-
-    \draw (bnProcPc)       edge[connector] (bnProc);
-    \draw (bnProc)         edge[connector] (bn2cnProcBuf);
-    \draw (bn2cnProcBuf)   edge[connector] node[above left] {\texttt{cnProcPc}} (cnProc);
-    \draw (cnProc)         edge[connector] (cn2bnProcBuf);
-    \draw (cn2bnProcBuf)   edge[connector] (bnProcPc);
-
-    \draw (bnProcPc1)      edge[connector] (bnProc);
-
-    \draw (bnProcPc) edge[connector] node[left] {iterations done} (llrRes2llrOut);
-    \draw (llrRes2llrOut) edge[connector] (llr2bit);
-
-    % Boxes
-    \node[inner sep=0pt,above right of=cn2bnProcBuf1, node distance = 2.5cm] (ref) {};
-
-    \draw[fill=black,opacity=.2, rounded corners] (llr2llrProcBuf.south west) rectangle ($(ref) + (-.5cm,.5cm)$);
-    \draw[fill=black,opacity=.2, rounded corners] ($(ref) + (.5cm,.5cm)$) rectangle ($(bnProcPc.south east) + (.4cm,0)$);
-
-    \node[func, above of=cnProc1, node distance=.8cm] (iter1) {\textbf{First Iteration}};
-    \node[func, above of=cnProc , node distance=.8cm] (iterX) {\textbf{Subsequent Iterations}};
-
-  \end{tikzpicture}
-
-  \caption{LDPC Decoder processing flow.}
-\end{figure}
-
-The functions involved are described in more detail in Table \ref{tab:sum_func}.
-
-\begin{table}[ht]
-  \centering
-  \begin{tabular}{ll}
-    \toprule
-    \textbf{Function} & \textbf{Description} \\
-    \midrule
-    \texttt{llr2llrProcBuf} & Copies input LLRs to LLR processing buffer \\
-    \texttt{llr2CnProcBuf}  & Copies input LLRs to CN  processing buffer \\
-    \texttt{cnProc}         & Performs CN signal processing \\
-    \texttt{cnProcPc}       & Performs parity check \\
-    \texttt{cn2bnProcBuf}   & Copies the CN results to the BN processing buffer \\
-    \texttt{bnProcPc}       & Performs BN processing for parity check and/or hard-decision \\
-    \texttt{bnProc}         & Utilizes the results of \texttt{bnProcPc} to compute LLRs for CN processing \\
-    \texttt{bn2cnProcBuf}   & Copies the BN results to the CN processing buffer \\
-    \texttt{llrRes2llrOut}  & Copies the results of \texttt{bnProcPc} to output LLRs \\
-    \texttt{llr2bit}        & Performs hard-decision on the output LLRs \\
-    \bottomrule
-  \end{tabular}
-  \caption{Summary of the LDPC decoder functions.}
-  \label{tab:sum_func}
-\end{table}
-
-The input LLRs are assumed to be 8-bit and aligned on 32 bytes. CN processing is carried out in 8-bit whereas BN processing is done in 16 bit. Subsequently, the processing tasks at the CNs and BNs are explained in more detail.
-
-\newpage
-\subsection{Check Node Processing}
-\label{sec:check-node-proc}
-
-Denote $q_{ij}$ the value from BN $j$ to CN $i$ and let $\Bcal_i$ be the set of connected BNs to the $i$th CN. Then, using the min-sum approximation, CN $i$ has to carry out the following operation for each connected BN.
-\begin{equation}
-  \label{eq:40}
-  r_{ji} = \prod_{j'\in\Bcal_i\setminus j}\sgn q_{ij'}\min_{j'\in\Bcal_i\setminus j} |q_{ij'}|
-\end{equation}
-where $r_{ji}$ is the value returned to BN $j$ from CN $i$. There are $\Mb = \{46,42\}$ CNs in BG 1 and BG 2, respectively. Each of these CNs is connected to only a small number of BNs. The number of connected BNs to CN $i$ is $|\Bcal_i|$. In BG1 and BG2, $|\Bcal_i|=\{3,4,5,6,7,8,9,10,19\}$ and $|\Bcal_i|=\{3,4,5,6,8,10\}$, respectively. The following tables show the number of CNs $M_{|\Bcal_i|}$ that are connected to the same number of BNs.
-
-\begin{table}[ht]
-  \centering
-  \begin{tabular}{llllllllll}
-    \toprule
-    $|\Bcal_i|$   & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 19 \\
-    \midrule
-    $M_{|\Bcal_i|}^\mathrm{BG1}$ & 1 & 5  &18 & 8 & 5 & 2 & 2 & 1 & 4 \\
-    $M_{|\Bcal_i|}^\mathrm{BG2}$ & 6 & 20 & 9 & 3 & 0 & 2 & 0 & 2 & 0 \\
-    \bottomrule
-  \end{tabular}
-  \caption{Ceck node groups for BG1 and BG2.}
-  \label{tab:checkNodeGroups}
-\end{table}
-
-It can be observed that each CN is at least connected to 3 BNs and there are 9 groups and 5 groups in BG1 and BG2, respectively. Denote the set of CN groups as $\Gcal$ and $M_k$ the number of CNs in group $k\in\Gcal$, e.g. for BG2 $M_4=20\Zc$. Each CN group will be processed separately. The CN processing buffer $p_C^k$ of group $k$ is defined as
-\begin{equation}
-  \label{eq:44}
-  p_C^k = \{\underbrace{q_{11}q_{21}\dots q_{M_k 1}}_{\text 1. BN},\underbrace{q_{12}q_{22}\dots q_{M_k 2}}_{\text 2. BN},\dots,\underbrace{q_{12}q_{22}\dots q_{M_k k}}_{\text last BN}\}
-\end{equation}
-Hence, $|p_C^k| = kM_k$, e.g, $\Zc=128$, $|p_C^4| = 4\cdot 20\cdot 128 = 10240$.
-
-\begin{lstlisting}[frame=single,caption={Example of CN processing for group 3 from \texttt{cnProc}.},label=code_cnproc]  % Start your code-block
-
-  const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}};
-
-  // =====================================================================
-  // Process group with 3 BNs
-
-  // Number of groups of 32 CNs for parallel processing
-  M = (lut_numCnInCnGroups[0]*Z)>>5;
-  // Set the offset to each bit within a group in terms of 32 Byte
-  bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>5;
-
-  // Set pointers to start of group 3
-  p_cnProcBuf    = (__m256i*) &cnProcBuf   [lut_startAddrCnGroups[0]];
-  p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]];
-
-  // Loop over every BN
-  for (j=0; j<3; j++)
-  {
-    // Set of results pointer to correct BN address
-    p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
-
-    // Loop over CNs
-    for (i=0; i<M; i++)
-    {
-      // Abs and sign of 32 CNs (first BN)
-      ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
-      sgn  = _mm256_sign_epi8(*p_ones, ymm0);
-      min  = _mm256_abs_epi8(ymm0);
-
-      // 32 CNs of second BN
-      ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i];
-      min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));
-      sgn  = _mm256_sign_epi8(sgn, ymm0);
-
-      // Store result
-      min = _mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127
-      *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn);
-      p_cnProcBufResBit++;
-    }
-  }
-
-}
-\end{lstlisting}
-
-Once all results of the check node processing $r_{ji}$ have been calculated, they are copied to the bit node processing buffer.
-
-\subsection{Bit Node Processing}
-\label{sec:bit-node-processing}
-
-Denote $r_{ji}$ the value from CN $i$ to BN $j$ and let $\Ccal_j$ be the set of connected CNs to the $j$th BN. Each BN $j$ has to carry out the following operation for every connected CN $i\in\Ccal_j$.
-\begin{equation}
-  \label{eq:46}
-  q_{ij} = \Lambda_j + \sum_{i'\in\Ccal_j\setminus i}r_{ji'}
-\end{equation}
-
-There are $\Nb = \{68,52\}$ BNs in BG 1 and BG 2, respectively. Each of these BNs is connected to only a small number of CNs. The number of connected CNs to BN $j$ is $|\Ccal_j|$. In BG1 and BG2, $|\Ccal_j|=\{1,4,7,8,9,10,11,12,28,30\}$ and $|\Ccal_j|=\{1,5,6,7,8,9,10,12,13,14,16,22,23\}$, respectively. The following tables show the number of BNs $K_{|\Ccal_j|}$ that are connected to the same number of CNs.
-
-\begin{table}[ht]
-  \centering
-  \begin{tabular}{lllllllllllllllllll}
-    \toprule
-    $|\Ccal_j|$ & 1&4&5&6&7&8&9&10&11&12&13 & 14 & 15 & 16 & 22 & 23 &28&30 \\
-    \midrule
-    $K_{|\Ccal_j|}^\mathrm{BG1}$ & 42 & 1 & 1 & 2 & 4 & 3 & 1 & 4 & 3 & 4 & 1 & 0 & 0 & 0 & 0 & 0 & 1 & 1 \\
-    $K_{|\Ccal_j|}^\mathrm{BG2}$ & 38 & 0 & 2 & 1 & 1 & 1 & 2 & 1 & 0 & 1 & 1 & 1 & 0 & 1 & 1 & 1 & 0 & 0\\
-    \bottomrule
-  \end{tabular}
-  \caption{Bit node groups for BG1 and BG2 for base rates 1/3 and 1/5, respectively.}
-  \label{tab:bitNodeGroups}
-\end{table}
-
-The BNs that are connected to a single CN do not need to be considered in the BN processing since \eqref{eq:46} yields $q_{ij} = \Lambda_j$. It can be observed that the grouping is less compact, i.e. there are many groups with only a small number of elements.
-
-Denote the set of BN groups as $\Bcal$ and $K_k$ the number of BNs in group $k\in\Bcal$, e.g. for BG2 $K_5=2\Zc$. Each BN group will be processed separately. The BN processing buffer $p_B^k$ of group $k$ is defined as
-\begin{equation}
-  \label{eq:47}
-  p_B^k = \{\underbrace{r_{11}r_{21}\dots r_{K_k 1}}_{\text 1. CN},\underbrace{r_{12}r_{22}\dots r_{K_k 2}}_{\text 2. CN},\dots,\underbrace{r_{12}r_{22}\dots r_{K_k k}}_{\text last CN}\}
-\end{equation}
-Hence, $|p_B^k| = kK_k$, e.g, $\Zc=128$, $|p_B^5| = 5\cdot 2\cdot 128 = 1024$.
-
-Depending on the code rate, some parity bits are not being transmitted. For instance, for BG2 with code rate $R = 1/3$ the last $20\Zc$ bits are discarded. Therefore, the last 20 columns or the last $20\Zc$ parity check equation are not required for decoding. This means that the BN groups shown in table \ref{tab:bitNodeGroups} are depending on the rate.
-
-\begin{lstlisting}[frame=single,caption={Example of BN processing for group 3 from \texttt{bnProcPc}.},label=code_bnproc]  % Start your code-block
-
-  // If elements in group move to next address
-  idxBnGroup++;
-
-  // Number of groups of 32 BNs for parallel processing
-  M = (lut_numBnInBnGroups[2]*Z)>>5;
-
-  // Set the offset to each CN within a group in terms of 16 Byte
-  cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4;
-
-  // Set pointers to start of group 3
-  p_bnProcBuf  = (__m128i*) &bnProcBuf  [lut_startAddrBnGroups   [idxBnGroup]];
-  p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]];
-  p_llrRes     = (__m256i*) &llrRes     [lut_startAddrBnGroupsLlr[idxBnGroup]];
-
-  // Loop over BNs
-  for (i=0,j=0; i<M; i++,j+=2)
-  {
-    // First 16 LLRs of first CN
-    ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf[j]);
-    ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf[j+1]);
-
-    // Loop over CNs
-    for (k=1; k<3; k++)
-    {
-      ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[k*cnOffsetInGroup + j]);
-      ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);
-
-      ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[k*cnOffsetInGroup + j+1]);
-      ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);
-    }
-
-    // Add LLR from receiver input
-    ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);
-    ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);
-
-    ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]);
-    ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);
-
-    // Pack results back to epi8
-    ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);
-    // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
-    // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
-    *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);
-
-    // Next result
-    p_llrRes++;
-  }
-}
-
-\end{lstlisting}
-
-The sum of the LLRs is carried out in 16 bit for accuracy and is then saturated to 8 bit for CN processing. Saturation after each addition results in significant loss of sensitivity for low code rates.
-
-\subsection{Mapping to the Processing Buffers}
-\label{sec:mapp-cn-proc}
-
-For efficient processing with the AVX instructions, the data is required to be aligned in a certain manner. That is the reason why processing buffers have been introduced. The drawback is that the results of the processing need to copied every time to the processing buffer of the next task. However, the speed up in computation with AVX more than makes up for the time wasted in copying data. The copying is implemented as a circular memcpy because every edge in the BG is a circular shift of a $Z\times Z$ identity matrix. Hence, a circular mempcy consists of two regular memcpys each copying a part of the $Z$ values depending on the circular shift in the BG definition. The circular shifts are stored in \texttt{nrLDPC\_lut.h} in arrays \texttt{circShift\_BGX\_ZX\_CNGX}. In the specification there are only 8 sets of cirular shifts defined. However, the applied circular shift depends on $Z$, i.e. modulo $Z$. To avoid inefficient modulo operations in loops, we store the the circular shift values for every $Z$. Moreover, for convinience the arrays are already arranged depending on the CN group (CNG).
-
-\newpage
-\section{Performance Results}
-\label{sec:performance-results}
-
-In this section, the performance in terms of BLER and decoding latency of the current LDPC decoder implementation is verified.
-
-\subsection{BLER Performance}
-\label{sec:bler-performance}
-
-In all simulations, we assume AWGN, QPSK modulation and 8-bit input LLRs, i.e. $-127$ until $+127$. The DLSCH coding procedure in 38.212 is used to encode/decode the TB and an error is declared if the TB CRC check failed. Results are averaged over at least $10\,000$ channel realizations. 
-
-The first set of simulations in Figure \ref{fig:bler-bg2-15} compares the current LDPC decoder implementation to the reference implementation developed by Kien. This reference implementation is called \textit{LDPC Ref} and uses the min-sum algorithm with 2 layers and 16 bit for processing. Our current optimized decoder implementation is referred to as \textit{LDPC OAI}. Moreover, reference results provided by Huawei are also shown.
-
-\begin{figure}[ht]
-  \centering
-  \begin{tikzpicture}
-  \tikzstyle{every pin}=[fill=white,draw=black]
-    \pgfplotsset{every axis legend/.append style={
-        cells={anchor=west}, at={(1.05,1)}, anchor=north west}}
- %   \pgfplotsset{every axis plot/.append style={smooth}}
-    \pgfplotsset{every axis/.append style={line width=0.5pt}}
-    \pgfplotsset{every axis/.append style={mark options=solid, mark size=2.5pt}}
-
-    \begin{semilogyaxis}[title={}, xlabel={$\SNR$ [dB]}, ylabel={BLER},
-      grid={both}, xmin=-4, xmax=2, xtick={-4,-3.5,...,2}, ymin=0,
-      ymax=1,ytickten={-5,-4,-3,-2,-1,0},legend columns=1]
-
-      % HUAWEI merged BG2 2017-06-15
-      \addplot[black, solid] plot coordinates { (-3.91839,0.01) (-3.5567,0.0001) };
-
-      % 5 iterations
-      % LDPC Ref
-      \addplot[red, solid, mark=o] plot coordinates {(-1.250000,0.781300) (-1.000000,0.421000) (-0.750000,0.140400) (-0.500000,0.028900) (-0.250000,0.003300) (0.000000,0.000300) (0.250000,0.000000) (0.500000,0.000000)};
-      % LDPC OAI
-      \addplot[blue, solid, mark=square] plot coordinates {(-1.000000,0.693730) (-0.750000,0.370190) (-0.500000,0.137260) (-0.250000,0.038850) (0.000000,0.009740) (0.250000,0.002510) (0.500000,0.000730) (0.750000,0.000180) };
-      % Matlab layered min-sum with scaling factor 1
-      \addplot[green, solid, mark=triangle] plot coordinates {(-1.750000,0.709000) (-1.500000,0.360600) (-1.250000,0.105500) (-1.000000,0.015700) (-0.750000,0.001300) (-0.500000,0.000100) (-0.250000,0.000000) (0.000000,0.000000) };
-      % Matlab layered min-sum with scaling factor 0.8
-      %\addplot[green, solid, mark=triangle] plot coordinates {(-2.750000,0.982300) (-2.500000,0.882200) (-2.250000,0.573100) (-2.000000,0.214100) (-1.750000,0.041300) (-1.500000,0.003800) (-1.250000,0.000000) (-1.000000,0.000000) };
-
-      % 10 iterations
-      % Kien's 2-layer 16bit code
-      \addplot[red, solid, mark=o] plot coordinates { (-2.750000,0.915500) (-2.500000,0.576000) (-2.250000,0.165000) (-2.000000,0.017100) (-1.750000,0.000600) (-1.500000,0.000000) (-1.250000,0.000000) (-1.000000,0.000000)};
-      % LDPC OAI
-      \addplot[blue, solid, mark=square] plot coordinates { (-2.750000,0.997200) (-2.500000,0.955000) (-2.250000,0.710900) (-2.000000,0.270400) (-1.750000,0.042400) (-1.500000,0.002200) (-1.250000,0.000000) (-1.000000,0.000000)};
-      % Matlab layered min-sum with scaling factor 1
-      \addplot[green, solid, mark=triangle] plot coordinates {(-2.750000,0.942900) (-2.500000,0.723200) (-2.250000,0.362300) (-2.000000,0.098400) (-1.750000,0.014500) (-1.500000,0.001100) (-1.250000,0.000000) (-1.000000,0.000000) };
-      % Matlab layered min-sum with scaling factor 0.8
-      %\addplot[green, solid, mark=triangle] plot coordinates {(-3.750000,0.994300) (-3.500000,0.927200) (-3.250000,0.651100) (-3.000000,0.252000) (-2.750000,0.042500) (-2.500000,0.002700) (-2.250000,0.000000) (-2.000000,0.000000) (-1.750000,0.000000) (-1.500000,0.000000) };
-
-
-      % 20 iterations
-      % Kien's 2-layer 16bit code
-      \addplot[red, solid, mark=o] plot coordinates { (-2.750000,0.330300) (-2.500000,0.067800) (-2.250000,0.006000) (-2.000000,0.000100) (-1.750000,0.000000) (-1.500000,0.000000) (-1.250000,0.000000) (-1.000000,0.000000)};
-      % LDPC OAI
-      \addplot[blue, solid, mark=square] plot coordinates  {(-2.750000,0.337900) (-2.500000,0.058300) (-2.250000,0.004000) (-2.000000,0.000200) (-1.750000,0.000000) (-1.500000,0.000000) };
-      % Matlab layered min-sum with scaling factor 1
-      %\addplot[green, solid, mark=triangle] plot coordinates {(-2.750000,0.843200) (-2.500000,0.524600) (-2.250000,0.198100) (-2.000000,0.037300) (-1.750000,0.003200) (-1.500000,0.000000) };
-      % Matlab layered min-sum with scaling factor 0.8
-      %\addplot[green, solid, mark=triangle] plot coordinates {(-3.750000,0.872300) (-3.500000,0.544600) (-3.250000,0.186400) (-3.000000,0.027500) (-2.750000,0.001900) (-2.500000,0.000000) };
-
-
-      
-      % Parity check 50 iterations
-      %\addplot[blue, solid, mark=square] plot coordinates {(-2.750000,0.214600) (-2.500000,0.029200) (-2.250000,0.001500) (-2.000000,0.000100) (-1.750000,0.000000) (-1.500000,0.000000) };
-
-
-      \draw (axis cs:-3.3,0.1)  node[fill=white,draw=black] (pint0) {20 iter};
-      \draw (axis cs:-2.3,0.01) node[draw,black,thick,ellipse,minimum height=0.3cm] (ell0) {}; \draw[black,thick] (pint0) -- (ell0);
-      
-      \draw (axis cs:-1.2,0.0001)   node[fill=white,draw=black] (pint1) {10 iter};
-      \draw (axis cs:-1.6,0.002) node[draw,black,thick,ellipse,minimum width=0.8cm] (ell1) {}; \draw[black,thick] (pint1) -- (ell1);
-      
-      \draw (axis cs:1.3,0.2)  node[fill=white,draw=black] (pint2) {5 iter};
-      \draw (axis cs:-0.4,0.01) node[draw,black,thick,ellipse,minimum width=2cm] (ell2) {}; \draw[black,thick] (pint2) -- (ell2);
-      
-
-      \legend{ {Huawei 2017-06-15}\\
-               {LDPC Ref}\\
-               {LDPC OAI}\\
-               {MATLAB NMS SF=1}\\};
-
-    \end{semilogyaxis}
-  \end{tikzpicture}
-  \caption{BLER vs. SNR, BG2, Rate=1/5, \{5,10,20\} Iterations, B=1280.}
-  \label{fig:bler-bg2-15}
-\end{figure}
-
-From Figure \ref{fig:bler-bg2-15} it can be observed that the reference decoder outperforms the current implementation significantly for low to medium number of iterations. The reason is the implementation of 2 layers in the reference decoder, which results in faster convergence for punctured codes and hence requires less iterations to achieve a given BLER target. Note that there is a large performance loss of about 4 dB at BLER $10^{-2}$ between the Huawei reference and the current optimized decoder implementation with 5 iterations.
-
-Moreover, there is a gap of about 1.5 dB between the results provided by Huawei and the current decoder with 20 iterations. The reason is the min-sum approximation algorithm used in both the reference decoder and the current implementation. The gap can be closed by using a tighter approximation like the min-sum with normalization or the lambda-min approach. Moreover, the gap closes for higher code rates which can be observed from Figure \ref{fig:bler-bg2-r23}. The gap is only about 0.6 dB for 50 iterations.
-
-The Matlab results denoted \texttt{MATLAB NMS} are obtained with the function \texttt{nrLDPCDecode} provided by the MATLAB 5G Toolbox R2019b. The following options are provided to the function: \texttt{'Termination','max','Algorithm','Normalized min-sum','ScalingFactor',1}. Furthermore, the 8-bit input LLRs are adapted to fit the dynamic range of \texttt{nrLDPCDecode} which is shown in Listing \ref{ldpc_matlab}. 
-
-\begin{lstlisting}[frame=single,caption={Input adaptation for MATLAB LDPC Decoder},label=ldpc_matlab]
-maxLLR = max(abs(softbits));
-rxLLRs = round((softbits/maxLLR)*127);
-// adjust range to fit tanh use in decoder code 
-softbits = rxLLRs/3.4;
-\end{lstlisting}
-
-A scaling factor (SF) of 1 has been chosen to compare the results more easily with the \textit{LDPC OAI} since the resulting check node processing is the same. However, the Matlab normelized min-sum algorithm uses layered processing and floating point operations. Thus, for the same number of iterations, the performance is significantly better than \textit{LDPC OAI}, especially for small a number of iterations.
-
-\begin{figure}[ht]
-  \centering
-  \begin{tikzpicture}
-  \tikzstyle{every pin}=[fill=white,draw=black]
-    \pgfplotsset{every axis legend/.append style={
-        cells={anchor=west}, at={(1.05,1)}, anchor=north west}}
- %   \pgfplotsset{every axis plot/.append style={smooth}}
-    \pgfplotsset{every axis/.append style={line width=0.5pt}}
-    \pgfplotsset{every axis/.append style={mark options=solid, mark size=2.5pt}}
-
-    \begin{semilogyaxis}[title={}, xlabel={$\SNR$ [dB]}, ylabel={BLER},
-      grid={both}, xmin=3, xmax=6.5, xtick={3,3.5,...,6.5}, ymin=0,
-      ymax=1,ytickten={-5,-4,-3,-2,-1,0},legend columns=1]
-
-      % Kien's 2-layer 16bit code
-      %\addplot[red, solid] plot coordinates { (-2.750000,0.915500) (-2.500000,0.576000) (-2.250000,0.165000) (-2.000000,0.017100) (-1.750000,0.000600) (-1.500000,0.000000) (-1.250000,0.000000) (-1.000000,0.000000)};
-
-      % Huawei
-      \addplot[black, solid] plot coordinates { (3.28392,0.01) (3.73319,0.0001) };
-
-      % LDPC opt with 16bit BN processing
-      %\addplot[blue, solid, mark=square] plot coordinates {(4.000000,0.487500) (4.250000,0.163400) (4.500000,0.029800) (4.750000,0.002700) (5.000000,0.000100)};
-      \addplot[blue, solid, mark=square] plot coordinates {(5.000000,0.439600) (5.250000,0.185800) (5.500000,0.062100) (5.750000,0.015000) (6.000000,0.003900)};
-
-
-      %\addplot[blue, dashed, mark=triangle] plot coordinates {(4.000000,0.487500) (4.250000,0.163700) (4.500000,0.030000) (4.750000,0.002900) (5.000000,0.000100)};
-
-      %\addplot[blue, dashed, mark=square] plot coordinates {(3.000000,0.911600) (3.250000,0.614100) (3.500000,0.230100) (3.750000,0.036900) (4.000000,0.001100) (4.250000,0.000000) (4.500000,0.000000)};
-      \addplot[blue, dashed, mark=square] plot coordinates {(3.000000,0.900400) (3.250000,0.600000) (3.500000,0.216400) (3.750000,0.036000) (4.000000,0.002600) (4.250000,0.000000) };      
-
-
-      \legend{ {Huawei 2017-06-15}\\
-               {LDPC OAI 5 iter}\\
-               {LDPC OAI 50 iter}\\};
-
-    \end{semilogyaxis}
-  \end{tikzpicture}
-  \caption{BLER vs. SNR, BG2, Rate=2/3, \{5,50\} Iterations, B=1280.}
-  \label{fig:bler-bg2-r23}
-\end{figure}
-
-In Figure \ref{fig:bler-bg2-15-2} we compare the performance of different algorithms using at most 50 iterations with early stopping if the parity check passes. The Matlab layered believe propagation (LBP) is used with unquantized input LLRs and performs the best since no approximation is done in the processing. Both NMS and offset min-sum (OMS) use a scaling factor and offset, respectively, that has been empirically found to perform best in this simulation setting. Theirs performance is very close to the BLP and OMS is slightly better than NMS. The performance of \textit{LDPC OAI} is more than 1 dB worse mainly because of the looser approximation. Moreover, the NMS algorithm with SF=1 performs worst probably because the SF is not optimized for the input LLRs. From the results in Figure \ref{fig:bler-bg2-15-2} we can conclude that the performance of the \textit{LDPC OAI} can be significantly improved by adopting an offset min-sum approximation improving the performance to within 0.3dB of the Huawei reference curve.
-
-\begin{figure}[ht]
-  \centering
-  \begin{tikzpicture}
-  \tikzstyle{every pin}=[fill=white,draw=black]
-    \pgfplotsset{every axis legend/.append style={
-        cells={anchor=west}, at={(1.05,1)}, anchor=north west}}
- %   \pgfplotsset{every axis plot/.append style={smooth}}
-    \pgfplotsset{every axis/.append style={line width=0.5pt}}
-    \pgfplotsset{every axis/.append style={mark options=solid, mark size=2.5pt}}
-
-    \begin{semilogyaxis}[title={}, xlabel={$\SNR$ [dB]}, ylabel={BLER},
-      grid={both}, xmin=-4, xmax=-1, xtick={-4,-3.5,...,-1}, ymin=0,
-      ymax=1,ytickten={-5,-4,-3,-2,-1,0},legend columns=1]
-
-      % HUAWEI merged BG2 2017-06-15
-      \addplot[black, solid] plot coordinates { (-3.91839,0.01) (-3.5567,0.0001) };
-
-      % Parity check 50 iterations
-      \addplot[blue, solid, mark=square] plot coordinates {(-2.750000,0.214600) (-2.500000,0.029200) (-2.250000,0.001500) (-2.000000,0.000100) (-1.750000,0.000000) (-1.500000,0.000000) };
-
-      % Matlab layered believe propagation
-      \addplot[red, solid, mark=diamond] plot coordinates {(-4.500000,0.854200) (-4.250000,0.495800) (-4.000000,0.147700) (-3.750000,0.016100) (-3.500000,0.000800) (-3.250000,0.000200) (-3.000000,0.000000) };
-      
-      % Matlab layered min-sum with scaling factor 1
-      \addplot[green, dashed, mark=triangle] plot coordinates {(-2.750000,0.830100) (-2.500000,0.497700) (-2.250000,0.165800) (-2.000000,0.024000) (-1.750000,0.001900) (-1.500000,0.000000) };
-      % Matlab layered min-sum with scaling factor 0.8
-      %\addplot[green, solid, mark=triangle] plot coordinates {(-3.750000,0.734800) (-3.500000,0.353800) (-3.250000,0.084300) (-3.000000,0.008000) (-2.750000,0.000400) };
-      \addplot[green, solid, mark=triangle] plot coordinates {(-4.500000,0.964400) (-4.250000,0.748200) (-4.000000,0.333600) (-3.750000,0.057700) (-3.500000,0.004400) (-3.250000,0.000400) };
-
-      % Matlab layered offset min-sum with offset 0.025
-      \addplot[brown, solid, mark=asterisk] plot coordinates {(-4.250000,0.688800) (-4.000000,0.253800) (-3.750000,0.035600) (-3.500000,0.002000) (-3.250000,0.000000) (-3.000000,0.000000) };
-
-      
-
-      \legend{ {Huawei 2017-06-15}\\
-               {LDPC OAI}\\
-               {MATLAB LBP}\\
-               {MATLAB NMS SF=1}\\
-               {MATLAB NMS SF=0.65}\\
-               {MATLAB OMS OS=0.025}\\};
-
-    \end{semilogyaxis}
-  \end{tikzpicture}
-  \caption{BLER vs. SNR, BG2, Rate=1/5, max iterations = 50, B=1280.}
-  \label{fig:bler-bg2-15-2}
-\end{figure}
-
-
-Figure \ref{fig:bler-bg1-r89} shows the performance of BG1 with largest block size of $B=8448$ and highest code rate $R=8/9$. From Figure \ref{fig:bler-bg1-r89} it can be observed that the performance gap is only about 0.3 dB if 50 iterations are used. However, for 5 iterations there is still a significant performance loss of about 2.3 dB at BLER $10^{-2}$.
-
-\begin{figure}[ht]
-  \centering
-  \begin{tikzpicture}
-  \tikzstyle{every pin}=[fill=white,draw=black]
-    \pgfplotsset{every axis legend/.append style={
-        cells={anchor=west}, at={(1.05,1)}, anchor=north west}}
- %   \pgfplotsset{every axis plot/.append style={smooth}}
-    \pgfplotsset{every axis/.append style={line width=0.5pt}}
-    \pgfplotsset{every axis/.append style={mark options=solid, mark size=2.5pt}}
-
-    \begin{semilogyaxis}[title={}, xlabel={$\SNR$ [dB]}, ylabel={BLER},
-      grid={both}, xmin=6, xmax=9, xtick={6,6.5,...,9}, ymin=0,
-      ymax=1,ytickten={-5,-4,-3,-2,-1,0},legend columns=1]
-
-      % Huawei
-      \addplot[black, solid] plot coordinates { (6.118717,0.01) (6.291449,0.0001) };
-
-      % LDPC opt 5 iter
-      %\addplot[blue, solid, mark=square] plot coordinates {(8.500000,0.350000) (8.750000,0.155100) (9.000000,0.062400) (9.250000,0.023000) (9.500000,0.008700) (9.750000,0.003500) (10.000000,0.000900) (10.250000,0.000300) };
-      \addplot[blue, solid, mark=square] plot coordinates {(7.500000,0.858900) (7.750000,0.449500) (8.000000,0.129700) (8.250000,0.025500) (8.500000,0.002300) (8.750000,0.000300) (9.000000,0.000000) };
-
-      % LDPC opt 50 iter
-      %\addplot[blue, dashed, mark=square] plot coordinates {(6.000000,0.705333) (6.100000,0.353367) (6.200000,0.102100) (6.300000,0.015133) (6.400000,0.000967) (6.500000,0.000000)};
-      \addplot[blue, dashed, mark=square] plot coordinates {(6.000000,0.970000) (6.100000,0.830800) (6.200000,0.527300) (6.300000,0.216900) (6.400000,0.045500) (6.500000,0.005600) (6.600000,0.000300) (6.700000,0.000000) (6.800000,0.000000) };
-
-      \legend{ {Huawei}\\
-               {LDPC OAI 5 iter}\\
-               {LDPC OAI 50 iter}\\};
-
-    \end{semilogyaxis}
-  \end{tikzpicture}
-  \caption{BLER vs. SNR, BG1, Rate=8/9 \{5,50\} Iterations, B=8448.}
-  \label{fig:bler-bg1-r89}
-\end{figure}
-
-\newpage
-\subsection{Decoding Latency}
-\label{sec:decoding-time}
-
-This section provides results in terms of decoding latency. That is, the time it takes the decoder to to finish decoding for a given number of iterations. To measure the run time of the decoder we use the OAI tool \texttt{time\_meas.h}. The clock frequency is about 2.9 GHZ, decoder is run on a single core and the results are averaged over $10\,000$ blocks.
-
-The results in Table \ref{tab:lat-bg2-r15} show the impact of the number of iterations on the decoding latency. It can be observed that the latency roughly doubles if the number of iterations are doubled.
-
-\begin{table}[ht]
-  \centering
-  \begin{tabular}{lrrr}
-    \toprule
-    \textbf{Function} & \textbf{Time [$\mu s$] (5 it)} & \textbf{Time [$\mu s$] (10 it)} & \textbf{Time [$\mu s$] (20 it)}\\
-    \midrule
-    % \texttt{llr2llrProcBuf} & 1.1   & 1.1   & 1.1   \\
-    % \texttt{llr2CnProcBuf}  & 12.4  & 12.0  & 12.0  \\
-    % \texttt{cnProc}         & 11.7  & 22.1  & 43.5  \\
-    % \texttt{bnProcPc}       & 6.6   & 12.1  & 23.8  \\
-    % \texttt{bnProc}         & 4.2   & 8.1   & 16.2  \\
-    % \texttt{cn2bnProcBuf}   & 61.3  & 118.3 & 234.9 \\
-    % \texttt{bn2cnProcBuf}   & 38.1  & 82.5  & 172.3 \\
-    % \texttt{llrRes2llrOut}  & 3.5   & 3.4   & 3.4   \\
-    % \texttt{llr2bit}        & 0.2   & 0.1   & 0.1   \\
-    \texttt{llr2llrProcBuf} & 0.5  & 0.5  & 0.5  \\
-    \texttt{llr2CnProcBuf}  & 5.0  & 4.8  & 4.9  \\
-    \texttt{cnProc}         & 12.4 & 23.0 & 42.7 \\
-    \texttt{bnProcPc}       & 8.4  & 14.8 & 27.0 \\
-    \texttt{bnProc}         & 5.5  & 10.1 & 19.0 \\
-    \texttt{cn2bnProcBuf}   & 14.9 & 24.4 & 44.0 \\
-    \texttt{bn2cnProcBuf}   & 10.5 & 17.8 & 31.8 \\
-    \texttt{llrRes2llrOut}  & 0.3  & 0.3  & 0.3  \\
-    \texttt{llr2bit}        & 0.2  & 0.2  & 0.2  \\
-    \midrule
-    % \textbf{Total}          & \textbf{139.4} & \textbf{260.3} & \textbf{508.4} \\
-    \textbf{Total}          & \textbf{58.5} & \textbf{97.1} & \textbf{172.6} \\
-    \bottomrule
-  \end{tabular}
-  \caption{BG2, Z=128, R=1/5, B=1280, LDPC OAI}
-  \label{tab:lat-bg2-r15}
-\end{table}
-
-Table \ref{tab:lat-bg2-i5} shows the impact of the code rate on the latency for a given block size and 5 iterations. It can be observed that the performance gain from code rate 1/3 to 2/3 is about a factor 2.
-
-\begin{table}[ht]
-  \centering
-  \begin{tabular}{lrrr}
-    \toprule
-    \textbf{Function} & \textbf{Time [$\mu s$] (R=1/5)} & \textbf{Time [$\mu s$] (R=1/3)} & \textbf{Time [$\mu s$] (R=2/3)}\\
-    \midrule
-    % \texttt{llr2llrProcBuf} & 3.2   & 2.9   & 2.6   \\
-    % \texttt{llr2CnProcBuf}  & 36.5  & 25.4  & 14.8  \\
-    % \texttt{cnProc}         & 33.6  & 25.2  & 13.3  \\
-    % \texttt{bnProcPc}       & 17.6  & 10.2  & 4.5   \\
-    % \texttt{bnProc}         & 8.5   & 5.4   & 2.5   \\
-    % \texttt{cn2bnProcBuf}   & 175.3 & 110.6 & 50.7  \\
-    % \texttt{bn2cnProcBuf}   & 106.6 & 71.2  & 36.1  \\
-    % \texttt{llrRes2llrOut}  & 10.2  & 6.3   & 3.3   \\
-    % \texttt{llr2bit}        & 0.4   & 0.2   & 0.1   \\
-    \texttt{llr2llrProcBuf} & 1.5  & 0.9  & 0.5  \\
-    \texttt{llr2CnProcBuf}  & 6.0  & 4.1  & 2.2  \\
-    \texttt{cnProc}         & 32.2 & 23.7 & 14.4 \\
-    \texttt{bnProcPc}       & 21.2 & 12.1 & 5.5  \\
-    \texttt{bnProc}         & 9.8  & 5.9  & 2.9  \\
-    \texttt{cn2bnProcBuf}   & 23.3 & 13.9 & 6.8  \\
-    \texttt{bn2cnProcBuf}   & 14.8 & 9.7  & 5.0  \\
-    \texttt{llrRes2llrOut}  & 0.6  & 0.4  & 0.3  \\
-    \texttt{llr2bit}        & 0.7  & 0.4  & 0.2  \\
-    \midrule
-    % \textbf{Total}          & \textbf{392.4} & \textbf{258.0} & \textbf{128.2} \\
-    \textbf{Total}          & \textbf{111.0} & \textbf{71.8} & \textbf{38.5} \\
-    \bottomrule
-  \end{tabular}
-  \caption{BG2, Z=384, B=3840, LDPC OAI, 5 iterations}
-  \label{tab:lat-bg2-i5}
-\end{table}
-
-Table \ref{tab:lat-bg1-i5} shows the results for BG1, larges block size and different code rates. The latency difference betwee code rate 1/3 and code rate 2/3 is less than half because upper left corner of the PCM is more dense than the rest of the PCM.
-
-\begin{table}[ht]
-  \centering
-  \begin{tabular}{lrrr}
-    \toprule
-    \textbf{Function} &  \textbf{Time [$\mu s$] (R=1/3)} & \textbf{Time [$\mu s$] (R=2/3)} & \textbf{Time [$\mu s$] (R=8/9)}\\
-    \midrule
-    % \texttt{llr2llrProcBuf}  & 5.5   & 4.9   & 4.6  \\
-    % \texttt{llr2CnProcBuf}   & 60.6  & 34.1  & 24.4 \\
-    % \texttt{cnProc}          & 102.0 & 74.1  & 56.0 \\
-    % \texttt{bnProcPc}        & 26.0  & 11.0  & 6.4  \\
-    % \texttt{bnProc}          & 15.7  & 7.4   & 4.5  \\
-    % \texttt{cn2bnProcBuf}    & 291.0 & 140.8 & 83.1 \\
-    % \texttt{bn2cnProcBuf}    & 193.6 & 100.5 & 63.0 \\
-    % \texttt{llrRes2llrOut}   & 13.3  & 6.9   & 5.2  \\
-    % \texttt{llr2bit}         & 0.4   & 0.2   & 0.2  \\
-    \texttt{llr2llrProcBuf}  & 2.1  & 1.2  & 0.9  \\
-    \texttt{llr2CnProcBuf}   & 10.6 & 5.4  & 2.9  \\
-    \texttt{cnProc}          & 89.8 & 66.3 & 50.0 \\
-    \texttt{bnProcPc}        & 28.1 & 12.4 & 7.1 \\
-    \texttt{bnProc}          & 17.1 & 8.1  & 4.8 \\
-    \texttt{cn2bnProcBuf}    & 38.7 & 17.1 & 9.3 \\
-    \texttt{bn2cnProcBuf}    & 25.6 & 12.7 & 7.2 \\
-    \texttt{llrRes2llrOut}   & 0.8  & 0.4  & 0.3 \\
-    \texttt{llr2bit}         & 0.9  & 0.4  & 0.3 \\
-    \midrule
-    % \textbf{Total}           & \textbf{708.9} & \textbf{380.6} & \textbf{248.1}\\
-    \textbf{Total}           & \textbf{214.6} & \textbf{124.6} & \textbf{83.6}\\
-    \bottomrule
-  \end{tabular}
-  \caption{BG1, Z=384, B=8448, LDPC OAI, 5 iterations}
-  \label{tab:lat-bg1-i5}
-\end{table}
-
-From the above results it can be observed that the data transfer between CNs and BNs takes up a significant amount of the run time. However, the performance gain due to AVX instructions in both CN and BN processing is significantly larger than the penalty incurred by the data transfers.
-
-\section{Parity Check and Early Stopping Criteria}
-It is often unnecessary to carry out the maximum number of iterations. After each iteration a parity check (PC) \eqref{eq:29} can be computed and if a valid code word is found the decoder can stop. This functionality has been implemented and the additional overhead is reasonable. The PC is carried out in the CN processing buffer and the calculation complexity itself is negligible. However, for the processing it is necessary to move the BN results to the CN buffer which takes time, the overall overhead is at most $10\%$ compared to an algorithm without early stopping criteria with the same number of iterations. The PC has to be activated via the define \texttt{NR\_LDPC\_ENABLE\_PARITY\_CHECK}.
-
-
-\section{Conclusion}
-\label{sec:conclusion}
-
-The results in the previous sections show that the current optimized LDPC implementation full-fills the requirements in terms of decoding latency for low to medium number of iterations at the expense of a loss in BLER performance. To improve BLER performance, it is recommended to implement a layered algorithm and a min-sum algorithm with normalization. Further improvements upon the current implementation are detailed in the next section.
-
-\newpage
-\section{Future Work}
-\label{sec:future-work}
-
-The improvements upon the current LDPC decoder implementation can be divided into two categories:
-\begin{enumerate}
-\item Improved BLER performance
-\item Reduced decoding latency
-\end{enumerate}
-
-\subsection{Improved BLER Performance}
-\label{sec:impr-bler-perf}
-
-The BLER performance can be improved by using a tighter approximation than the min-sum approximation. For instance, the min-sum algorithm can be improved by adding a correction factor in the CN processing . The min-sum approximation in \eqref{eq:40} is modified as
-\begin{equation}
-  \label{eq:50}
-  r_{ji} = \prod_{j'\in\Bcal_i\setminus j}\sgn q_{ij'}\min_{j'\in\Bcal_i\setminus j} |q_{ij'}| + w(q_{ij'})
-\end{equation}
-The correction term $w(q_{ij'})$ is defined as
-\begin{equation}
-  \label{eq:51}
-  w(q_{ij'}) =
-  \begin{cases}
-     c & \textrm{if}~  \\
-    -c & \textrm{if}~ \\
-     0 & \textrm{otherwise}
-  \end{cases}
-\end{equation}
-where the constant $c$ is of order $0.5$ typically.
-
-\subsection{Reduced Decoding Latency}
-\label{sec:reduc-decod-latency}
-
-The following improvements will reduce the decoding latency:
-
-\begin{itemize}
-\item Adapt to AVX512
-\item Optimization of CN processing
-\item Implement 2/3-layers for faster convergence
-\end{itemize}
-
-\paragraph{AVX512:}
-The computations in the CN and BN processing can be further accelerated by using AVX512 instructions. This improvement will speed-up the CN and BN processing by a approximately a factor of 2.
-
-\paragraph{Optimization of CN Processing:}
-It can be investigated if CN processing can be improved by computing two minima regardless of the number of BNs. Susequently, the (absolute) value fed back to the BN is one of those minima.
-
-\paragraph{Layered processing:}
-The LDPC code in NR always punctures the first 2 columns of the base graph. Hence, the decoder inserts LLRs with value 0 at their place and needs to retrieve those bits during the decoding process. Instead of computing all the parity equations and then passing the results to the BN processing, it is beneficial to first compute parity equations where at most one punctured BN is connected to that CN. If two punctured BNs are connected than according to \eqref{eq:40}, the result will be again 0. Thus in a first sub-iteration those parity equation are computed and the results are send to BN processing which calculates the results using only those rows in the PCM. In the second sub-iteration the remaining check equation are used.
-The convergence of this layered approach is much fast since the bit can be retrieved more quickly while the decoding complexity remains the same. Therefore, for a fixed number of iterations the layered algorithm will have a significantly better performance.
-
-\newpage
-\bibliographystyle{IEEEtran}
-\bibliography{./references}
-
-\end{document}
-
-%%% Local Variables:
-%%% mode: latex
-%%% TeX-master: t
-%%% End:
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC/references.bib b/openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC/references.bib
deleted file mode 100644
index 6f446edeb38..00000000000
--- a/openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC/references.bib
+++ /dev/null
@@ -1,105 +0,0 @@
-%
-% Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
-% contributor license agreements.  See the NOTICE file distributed with
-% this work for additional information regarding copyright ownership.
-% The OpenAirInterface Software Alliance licenses this file to You under
-% the OAI Public License, Version 1.1  (the "License"); you may not use this file
-% except in compliance with the License.
-% You may obtain a copy of the License at
-%
-%      http://www.openairinterface.org/?page_id=698
-%
-% Unless required by applicable law or agreed to in writing, software
-% distributed under the License is distributed on an "AS IS" BASIS,
-% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-% See the License for the specific language governing permissions and
-% limitations under the License.
-%-------------------------------------------------------------------------------
-% For more information about the OpenAirInterface (OAI) Software Alliance:
-%      contact@openairinterface.org
-%
-@online{3gpp5gTimeline,
-  author = {3GPP},
-  title = {{3GPP 5G Timeline}},
-  year = 2016,
-  urldate = {2017-06-14},
-  url = {http://www.3gpp.org/images/articleimages/5g_timeline.jpg}
-}
-
-@techreport{3gppTR38913,
-  author =	 "{Technical Specification Group Radio Access Network}",
-  title =	 "{Study on Scenarios and Requirements for Next Generation Access Technologies}",
-  institution =	 "{3GPP TR 38.913 V14.2.0}",
-  month =	 mar,
-  year =	 2017,
-};
-
-@techreport{iturM2038,
-  author =	 "{ITU-R}",
-  title =	 "{IMT Vision -- Framework and overall objectives of the future development of IMT for 2020 and beyond}",
-  institution =	 "{Radiocommunication Sector of ITU}",
-  month =	 sep,
-  year =	 2015,
-};
-
-@techreport{3gpp2014seb,
-  author =	 "{Samsung, Nokia Networks}",
-  title =	 "{New SID Proposal: Study on Elevation Beamforming/Full-Dimension (FD) MIMO for LTE}",
-  institution =	 "3GPP",
-  month =	 sep,
-  year =	 2014,
-};
-
-@techreport{3gpp2015fdm,
-  author =	 "{Technical Specification Group Radio Access Network}",
-  title =	 "{Study on elevation beamforming / Full-Dimension (FD) Multiple Input Multiple Output (MIMO) for LTE}",
-  institution =	 "3GPP TR 36.897 V13.0.0",
-  month =	 jun,
-  year =	 2015,
-};
-
-
-@techreport{3gpp2008tsg,
-  author =	 "{Technical Specification Group Radio Access Network;
-Evolved Universal Terrestrial Radio Access (E-UTRA)}",
-  title =	 "{Further advancements for E-UTRA physical layer aspects (Release 9)}",
-  institution =	 "{3GPP TR 36.814 V9.0.0}",
-  month =	 mar,
-  year =	 2010,
-};
-
-@techreport{3gpp2011uer,
-  author =	 "{Technical Specification Group Radio Access Network;
-Evolved Universal Terrestrial Radio Access (E-UTRA)}",
-  title =	 "{User Equipment (UE) Radio Transmission and Reception}",
-  institution =	 "{3GPP TR 36.101 V10.3.0}",
-  month =	 jun,
-  year =	 2011,
-};
-
-@techreport{3gpp2009_36211,
-  author =	 "{3rd Generation Partnership Project}",
-  title =	 "{Physical Channels and Modulation (Release 8)}",
-  institution =	 "{3GPP TS 36.211 V8.6.0}",
-  month =	 mar,
-  year =	 2009,
-};
-
-@techreport{3gpp2017_38212,
-  author =	 "{3rd Generation Partnership Project}",
-  title =	 "{Multiplexing and channel coding (Release 15)}",
-  institution =	 "{3GPP TS 38.212 V15.0.1}",
-  month =	 mar,
-  year =	 2018,
-};
-
-@article{gallager1962low,
-  title={Low-density parity-check codes},
-  author={Gallager, Robert},
-  journal={IRE Transactions on information theory},
-  volume={8},
-  number={1},
-  pages={21--28},
-  year={1962},
-  publisher={IEEE}
-}
\ No newline at end of file
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC_doxyCfg b/openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC_doxyCfg
deleted file mode 100644
index 3a4137acb49..00000000000
--- a/openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC_doxyCfg
+++ /dev/null
@@ -1,2427 +0,0 @@
-# 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           = "NR LDPC Decoder"
-
-# 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         =
-
-# 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          =
-
-# 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       =
-
-# 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      = YES
-
-# 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       =
-
-# 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        = YES
-
-# 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         = YES
-
-# 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       = YES
-
-# 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       = YES
-
-# 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        = YES
-
-# 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                  = ../nrLDPC_defs.h ../nrLDPC_types.h ../nrLDPC_init.h ../nrLDPC_cnProc.h ../nrLDPC_bnProc.h ../nrLDPC_mPass.h ../nrLDPC_decoder.h ../nrLDPC_decoder.c ../nrLDPC_lut.h
-
-# 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          =
-
-# 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              = NO
-
-# 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       =
-
-# 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          = YES
-
-# 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      = NO
-
-# 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   = 4
-
-# 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        = NO
-
-# 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         = NO
-
-# 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            = NO
-
-# 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               = YES
-
-# 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/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_bnProc.h b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_bnProc.h
index 91f552f935c..c21169869cb 100644
--- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_bnProc.h
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_bnProc.h
@@ -30,7 +30,7 @@
 
 #ifndef __NR_LDPC_BNPROC__H__
 #define __NR_LDPC_BNPROC__H__
-
+#include <immintrin.h>
 /**
    \brief Performs first part of BN processing on the BN processing buffer and stores the results in the LLR results buffer.
           At every BN, the sum of the returned LLRs from the connected CNs and the LLR of the receiver input is computed.
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h
index 6d82fe5f11f..f792f993e9c 100644
--- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h
@@ -1,3 +1,4 @@
+
 /*
  * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -28,8 +29,8 @@
  * \warning
  */
 
-#ifndef __NR_LDPC_CNPROC__H__
-#define __NR_LDPC_CNPROC__H__
+#ifndef __NR_LDPC_DECODER_CNPROC__H__
+#define __NR_LDPC_DECODER_CNPROC__H__
 
 /**
    \brief Performs CN processing for BG2 on the CN processing buffer and stores the results in the CN processing results buffer.
@@ -37,6 +38,13 @@
    \param p_procBuf Pointer to processing buffers
    \param Z Lifting size
 */
+
+
+#ifdef __AVX512BW__
+#include "nrLDPC_cnProc_avx512.h"
+
+#else
+
 static inline void nrLDPC_cnProc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z)
 {
     const uint8_t*  lut_numCnInCnGroups   = p_lut->numCnInCnGroups;
@@ -92,14 +100,14 @@ static inline void nrLDPC_cnProc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int
             for (i=0; i<M; i++)
             {
                 // Abs and sign of 32 CNs (first BN)
-	      //                ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
-	        ymm0 = pj0[i];
+              //                ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+                ymm0 = pj0[i];
                 sgn  = _mm256_sign_epi8(*p_ones, ymm0);
                 min  = _mm256_abs_epi8(ymm0);
 
                 // 32 CNs of second BN
-		//  ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i];
-		ymm0 = pj1[i];
+                //  ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i];
+                ymm0 = pj1[i];
                 min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));
                 sgn  = _mm256_sign_epi8(sgn, ymm0);
 
@@ -107,7 +115,7 @@ static inline void nrLDPC_cnProc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int
                 min = _mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127
                 //*p_cnProcBufResBit = _mm256_sign_epi8(min, sgn);
                 //p_cnProcBufResBit++;
-		p_cnProcBufResBit[i]=_mm256_sign_epi8(min, sgn);
+                p_cnProcBufResBit[i]=_mm256_sign_epi8(min, sgn);
             }
         }
     }
@@ -364,6 +372,15 @@ static inline void nrLDPC_cnProc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int
 
 }
 
+
+/**
+   \brief Performs CN processing for BG1 on the CN processing buffer and stores the results in the CN processing results buffer.
+   \param p_lut Pointer to decoder LUTs
+   \param Z Lifting size
+*/
+
+
+
 /**
    \brief Performs CN processing for BG1 on the CN processing buffer and stores the results in the CN processing results buffer.
    \param p_lut Pointer to decoder LUTs
@@ -431,6 +448,7 @@ static inline void nrLDPC_cnProc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int
                 min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));
                 sgn  = _mm256_sign_epi8(sgn, ymm0);
 
+
                 // Store result
                 min = _mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127
                 *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn);
@@ -859,6 +877,7 @@ static inline void nrLDPC_cnProc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int
 
 }
 
+#endif
 /**
    \brief Performs parity check for BG1 on the CN processing buffer. Stops as soon as error is detected.
    \param p_lut Pointer to decoder LUTs
@@ -942,7 +961,8 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu
 
         // If no error pcRes should be 0
         // Only use valid CNs
-        pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
+        if (Mrem)
+          pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
 
         // If PC failed we can stop here
         if (pcResSum > 0)
@@ -1009,7 +1029,8 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu
 
         // If no error pcRes should be 0
         // Only use valid CNs
-        pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
+        if (Mrem)
+          pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
 
         // If PC failed we can stop here
         if (pcResSum > 0)
@@ -1077,7 +1098,8 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu
 
         // If no error pcRes should be 0
         // Only use valid CNs
-        pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
+        if (Mrem)
+          pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
 
         // If PC failed we can stop here
         if (pcResSum > 0)
@@ -1144,7 +1166,8 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu
 
         // If no error pcRes should be 0
         // Only use valid CNs
-        pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
+        if (Mrem)
+          pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
 
         // If PC failed we can stop here
         if (pcResSum > 0)
@@ -1211,7 +1234,8 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu
 
         // If no error pcRes should be 0
         // Only use valid CNs
-        pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
+        if (Mrem)
+          pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
 
         // If PC failed we can stop here
         if (pcResSum > 0)
@@ -1278,7 +1302,8 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu
 
         // If no error pcRes should be 0
         // Only use valid CNs
-        pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
+        if (Mrem)
+          pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
 
         // If PC failed we can stop here
         if (pcResSum > 0)
@@ -1345,7 +1370,8 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu
 
         // If no error pcRes should be 0
         // Only use valid CNs
-        pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
+        if (Mrem)
+          pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
 
         // If PC failed we can stop here
         if (pcResSum > 0)
@@ -1412,7 +1438,8 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu
 
         // If no error pcRes should be 0
         // Only use valid CNs
-        pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
+        if (Mrem)
+          pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
 
         // If PC failed we can stop here
         if (pcResSum > 0)
@@ -1479,7 +1506,8 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu
 
         // If no error pcRes should be 0
         // Only use valid CNs
-        pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
+        if (Mrem)
+          pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
 
         // If PC failed we can stop here
         if (pcResSum > 0)
@@ -1574,7 +1602,8 @@ static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBu
 
         // If no error pcRes should be 0
         // Only use valid CNs
-        pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
+        if (Mrem)
+          pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
 
         // If PC failed we can stop here
         if (pcResSum > 0)
@@ -1641,7 +1670,8 @@ static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBu
 
         // If no error pcRes should be 0
         // Only use valid CNs
-        pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
+        if (Mrem)
+          pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
 
         // If PC failed we can stop here
         if (pcResSum > 0)
@@ -1708,7 +1738,8 @@ static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBu
 
         // If no error pcRes should be 0
         // Only use valid CNs
-        pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
+        if (Mrem)
+          pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
 
         // If PC failed we can stop here
         if (pcResSum > 0)
@@ -1775,7 +1806,8 @@ static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBu
 
         // If no error pcRes should be 0
         // Only use valid CNs
-        pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
+        if (Mrem)
+          pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
 
         // If PC failed we can stop here
         if (pcResSum > 0)
@@ -1842,7 +1874,8 @@ static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBu
 
         // If no error pcRes should be 0
         // Only use valid CNs
-        pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
+        if (Mrem)
+          pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
 
         // If PC failed we can stop here
         if (pcResSum > 0)
@@ -1909,7 +1942,8 @@ static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBu
 
         // If no error pcRes should be 0
         // Only use valid CNs
-        pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
+        if (Mrem)
+          pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem)));
 
         // If PC failed we can stop here
         if (pcResSum > 0)
@@ -1922,3 +1956,6 @@ static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBu
 }
 
 #endif
+
+
+
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc_avx512.h b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc_avx512.h
new file mode 100644
index 00000000000..044f1048e71
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc_avx512.h
@@ -0,0 +1,865 @@
+
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+/*!\file nrLDPC_cnProc_avx512.h
+ * \brief Defines the functions for check node processing
+ * \author Sebastian Wagner (TCL Communications) Email: <mailto:sebastian.wagner@tcl.com>
+ * \date 30-09-2021
+ * \version 1.0
+ * \note
+ * \warning
+ */
+
+#ifndef __NR_LDPC_CNPROC__H__
+#define __NR_LDPC_CNPROC__H__
+
+#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)
+static inline void nrLDPC_cnProc_BG2_AVX512(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z)
+{
+    const uint8_t*  lut_numCnInCnGroups   = p_lut->numCnInCnGroups;
+    const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups;
+
+    __m512i* p_cnProcBuf;
+    __m512i* p_cnProcBufRes;
+
+    // Number of CNs in Groups
+    uint32_t M;
+    uint32_t i;
+    uint32_t j;
+    uint32_t k;
+    // Offset to each bit within a group in terms of 32 Byte
+    uint32_t bitOffsetInGroup;
+
+    __m512i zmm0, min, sgn, zeros;
+    zeros  = _mm512_setzero_si512();
+//     maxLLR = _mm512_set1_epi8((char)127);
+    __m512i* p_cnProcBufResBit;
+
+    const __m512i* p_ones   = (__m512i*) ones512_epi8;
+    const __m512i* p_maxLLR = (__m512i*) maxLLR512_epi8;
+
+    // LUT with offsets for bits that need to be processed
+    // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc.
+    // Offsets are in units of bitOffsetInGroup
+    const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}};
+
+    // =====================================================================
+    // Process group with 3 BNs
+
+    if (lut_numCnInCnGroups[0] > 0)
+    {
+        // Number of groups of 32 CNs for parallel processing
+        // Ceil for values not divisible by 32
+        M = (lut_numCnInCnGroups[0]*Z + 63)>>6;
+        // Set the offset to each bit within a group in terms of 32 Byte
+        bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 3
+        p_cnProcBuf    = (__m512i*) &cnProcBuf   [lut_startAddrCnGroups[0]];
+        p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[0]];
+
+        // Loop over every BN
+        for (j=0; j<3; j++)
+        {
+            // Set of results pointer to correct BN address
+            p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+            __m512i *pj0 = &p_cnProcBuf[(lut_idxCnProcG3[j][0]/2)];
+            __m512i *pj1 = &p_cnProcBuf[(lut_idxCnProcG3[j][1]/2)];
+
+            // Loop over CNs
+            for (i=0; i<M; i++)
+            {
+                // Abs and sign of 32 CNs (first BN)
+              //                zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+                zmm0 = pj0[i];
+                sgn  = _mm512_xor_si512(*p_ones, zmm0);
+                min  = _mm512_abs_epi8(zmm0);
+
+                // 32 CNs of second BN
+                //  zmm0 = p_cnProcBuf[(lut_idxCnProcG3[j][1]/2) + i];
+                zmm0 = pj1[i];
+                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+                sgn  = _mm512_xor_si512(sgn, zmm0);
+
+                // Store result
+                min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127
+                *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);
+                p_cnProcBufResBit++;
+                //p_cnProcBufResBit[i]=_mm512_sign_epi8(min, sgn);
+            }
+        }
+    }
+
+    // =====================================================================
+    // Process group with 4 BNs
+
+    // Offset is 20*384/32 = 240
+    const uint16_t lut_idxCnProcG4[4][3] = {{240,480,720}, {0,480,720}, {0,240,720}, {0,240,480}};
+
+    if (lut_numCnInCnGroups[1] > 0)
+    {
+        // Number of groups of 32 CNs for parallel processing
+        // Ceil for values not divisible by 32
+        M = (lut_numCnInCnGroups[1]*Z + 63)>>6;
+        // Set the offset to each bit within a group in terms of 32 Byte
+        bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 4
+        p_cnProcBuf    = (__m512i*) &cnProcBuf   [lut_startAddrCnGroups[1]];
+        p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
+
+        // Loop over every BN
+        for (j=0; j<4; j++)
+        {
+            // Set of results pointer to correct BN address
+            p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+            // Loop over CNs
+            for (i=0; i<M; i++)
+            {
+                // Abs and sign of 32 CNs (first BN)
+                zmm0 = p_cnProcBuf[(lut_idxCnProcG4[j][0]/2) + i];
+                sgn  = _mm512_xor_si512(*p_ones, zmm0);
+                min  = _mm512_abs_epi8(zmm0);
+
+                // Loop over BNs
+                for (k=1; k<3; k++)
+                {
+                    zmm0 = p_cnProcBuf[(lut_idxCnProcG4[j][k]/2) + i];
+                    min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+                   sgn  = _mm512_xor_si512(sgn, zmm0);
+                }
+
+                // Store result
+                min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127
+                *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);
+                p_cnProcBufResBit++;
+            }
+        }
+    }
+
+    // =====================================================================
+    // Process group with 5 BNs
+
+    // Offset is 9*384/32 = 108
+    const uint16_t lut_idxCnProcG5[5][4] = {{108,216,324,432}, {0,216,324,432},
+                                            {0,108,324,432}, {0,108,216,432}, {0,108,216,324}};
+
+    if (lut_numCnInCnGroups[2] > 0)
+    {
+        // Number of groups of 32 CNs for parallel processing
+        // Ceil for values not divisible by 32
+        M = (lut_numCnInCnGroups[2]*Z + 63)>>6;
+        // Set the offset to each bit within a group in terms of 32 Byte
+        bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 5
+        p_cnProcBuf    = (__m512i*) &cnProcBuf   [lut_startAddrCnGroups[2]];
+        p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[2]];
+
+        // Loop over every BN
+        for (j=0; j<5; j++)
+        {
+            // Set of results pointer to correct BN address
+            p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+            // Loop over CNs
+            for (i=0; i<M; i++)
+            {
+                // Abs and sign of 32 CNs (first BN)
+                zmm0 = p_cnProcBuf[(lut_idxCnProcG5[j][0]/2) + i];
+                sgn  = _mm512_xor_si512(*p_ones, zmm0);
+                min  = _mm512_abs_epi8(zmm0);
+
+                // Loop over BNs
+                for (k=1; k<4; k++)
+                {
+                    zmm0 = p_cnProcBuf[(lut_idxCnProcG5[j][k]/2) + i];
+                    min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+                   sgn  = _mm512_xor_si512(sgn, zmm0);
+                }
+
+                // Store result
+                min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127
+                *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);
+                p_cnProcBufResBit++;
+            }
+        }
+    }
+
+    // =====================================================================
+    // Process group with 6 BNs
+
+    // Offset is 3*384/32 = 36
+    const uint16_t lut_idxCnProcG6[6][5] = {{36,72,108,144,180}, {0,72,108,144,180},
+                                            {0,36,108,144,180}, {0,36,72,144,180},
+                                            {0,36,72,108,180}, {0,36,72,108,144}};
+
+    if (lut_numCnInCnGroups[3] > 0)
+    {
+        // Number of groups of 32 CNs for parallel processing
+        // Ceil for values not divisible by 32
+        M = (lut_numCnInCnGroups[3]*Z + 63)>>6;
+        // Set the offset to each bit within a group in terms of 32 Byte
+        bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 6
+        p_cnProcBuf    = (__m512i*) &cnProcBuf   [lut_startAddrCnGroups[3]];
+        p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[3]];
+
+        // Loop over every BN
+        for (j=0; j<6; j++)
+        {
+            // Set of results pointer to correct BN address
+            p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+            // Loop over CNs
+            for (i=0; i<M; i++)
+            {
+                // Abs and sign of 32 CNs (first BN)
+                zmm0 = p_cnProcBuf[(lut_idxCnProcG6[j][0]/2) + i];
+                sgn  = _mm512_xor_si512(*p_ones, zmm0);
+                min  = _mm512_abs_epi8(zmm0);
+
+                // Loop over BNs
+                for (k=1; k<5; k++)
+                {
+                    zmm0 = p_cnProcBuf[(lut_idxCnProcG6[j][k]/2) + i];
+                    min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+                   sgn  = _mm512_xor_si512(sgn, zmm0);
+                }
+
+                // Store result
+                min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127
+                *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);
+                p_cnProcBufResBit++;
+            }
+        }
+    }
+
+    // =====================================================================
+    // Process group with 8 BNs
+
+    // Offset is 2*384/32 = 24
+    const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,120,144,168}, {0,48,72,96,120,144,168},
+                                           {0,24,72,96,120,144,168}, {0,24,48,96,120,144,168},
+                                           {0,24,48,72,120,144,168}, {0,24,48,72,96,144,168},
+                                           {0,24,48,72,96,120,168}, {0,24,48,72,96,120,144}};
+
+    if (lut_numCnInCnGroups[4] > 0)
+    {
+        // Number of groups of 32 CNs for parallel processing
+        // Ceil for values not divisible by 32
+        M = (lut_numCnInCnGroups[4]*Z + 63)>>6;
+        // Set the offset to each bit within a group in terms of 32 Byte
+        bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 8
+        p_cnProcBuf    = (__m512i*) &cnProcBuf   [lut_startAddrCnGroups[4]];
+        p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[4]];
+
+        // Loop over every BN
+        for (j=0; j<8; j++)
+        {
+            // Set of results pointer to correct BN address
+            p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+            // Loop over CNs
+            for (i=0; i<M; i++)
+            {
+                // Abs and sign of 32 CNs (first BN)
+                zmm0 = p_cnProcBuf[(lut_idxCnProcG8[j][0]/2) + i];
+                sgn  = _mm512_xor_si512(*p_ones, zmm0);
+                min  = _mm512_abs_epi8(zmm0);
+
+                // Loop over BNs
+                for (k=1; k<7; k++)
+                {
+                    zmm0 = p_cnProcBuf[(lut_idxCnProcG8[j][k]/2) + i];
+                    min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+                   sgn  = _mm512_xor_si512(sgn, zmm0);
+                }
+
+                // Store result
+                min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127
+                *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);
+                p_cnProcBufResBit++;
+            }
+        }
+    }
+
+    // =====================================================================
+    // Process group with 10 BNs
+
+    // Offset is 2*384/32 = 24
+    const uint8_t lut_idxCnProcG10[10][9] = {{24,48,72,96,120,144,168,192,216}, {0,48,72,96,120,144,168,192,216},
+                                             {0,24,72,96,120,144,168,192,216}, {0,24,48,96,120,144,168,192,216},
+                                             {0,24,48,72,120,144,168,192,216}, {0,24,48,72,96,144,168,192,216},
+                                             {0,24,48,72,96,120,168,192,216}, {0,24,48,72,96,120,144,192,216},
+                                             {0,24,48,72,96,120,144,168,216}, {0,24,48,72,96,120,144,168,192}};
+
+    if (lut_numCnInCnGroups[5] > 0)
+    {
+        // Number of groups of 32 CNs for parallel processing
+        // Ceil for values not divisible by 32
+        M = (lut_numCnInCnGroups[5]*Z + 63)>>6;
+        // Set the offset to each bit within a group in terms of 32 Byte
+        bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 10
+        p_cnProcBuf    = (__m512i*) &cnProcBuf   [lut_startAddrCnGroups[5]];
+        p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[5]];
+
+        // Loop over every BN
+        for (j=0; j<10; j++)
+        {
+            // Set of results pointer to correct BN address
+            p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+            // Loop over CNs
+            for (i=0; i<M; i++)
+            {
+                // Abs and sign of 32 CNs (first BN)
+                zmm0 = p_cnProcBuf[(lut_idxCnProcG10[j][0]/2) + i];
+                sgn  = _mm512_xor_si512(*p_ones, zmm0);
+                min  = _mm512_abs_epi8(zmm0);
+
+                // Loop over BNs
+                for (k=1; k<9; k++)
+                {
+                    zmm0 = p_cnProcBuf[(lut_idxCnProcG10[j][k]/2) + i];
+                    min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+                   sgn  = _mm512_xor_si512(sgn, zmm0);
+                }
+
+                // Store result
+                min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127
+                *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);
+                p_cnProcBufResBit++;
+            }
+        }
+    }
+
+}
+
+static inline void nrLDPC_cnProc_BG1_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z)
+{
+    const uint8_t*  lut_numCnInCnGroups   = p_lut->numCnInCnGroups;
+    const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups;
+
+    int8_t* cnProcBuf    = p_procBuf->cnProcBuf;
+    int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;
+
+    __m512i* p_cnProcBuf;
+    __m512i* p_cnProcBufRes;
+
+    // Number of CNs in Groups
+    uint32_t M;
+    uint32_t i;
+    uint32_t j;
+    uint32_t k;
+    // Offset to each bit within a group in terms of 32 Byte
+    uint32_t bitOffsetInGroup;
+
+    __m512i zmm0, min, sgn, zeros;
+
+     zeros  = _mm512_setzero_si512();
+    // maxLLR = _mm512_set1_epi8((char)127);
+    __m512i* p_cnProcBufResBit;
+
+
+    const __m512i* p_ones   = (__m512i*) ones512_epi8;
+    const __m512i* p_maxLLR = (__m512i*) maxLLR512_epi8;
+
+
+
+
+    // LUT with offsets for bits that need to be processed
+    // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc.
+    // Offsets are in units of bitOffsetInGroup (1*384/32)
+    const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}};
+
+    // =====================================================================
+    // Process group with 3 BNs
+
+    if (lut_numCnInCnGroups[0] > 0)
+    {
+        // Number of groups of 32 CNs for parallel processing
+        // Ceil for values not divisible by 32
+        M = (lut_numCnInCnGroups[0]*Z + 63)>>6;
+
+        // Set the offset to each bit within a group in terms of 32 Byte
+        bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 3
+        p_cnProcBuf    = (__m512i*) &cnProcBuf   [lut_startAddrCnGroups[0]];
+        p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[0]];
+
+        // Loop over every BN
+        for (j=0; j<3; j++)
+        {
+            // Set of results pointer to correct BN address
+            p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+            // Loop over CNs
+            for (i=0; i<M; i++)
+            {
+                // Abs and sign of 32 CNs (first BN)
+                zmm0 = p_cnProcBuf[(lut_idxCnProcG3[j][0]/2) + i];
+                sgn  = _mm512_xor_si512(*p_ones, zmm0);
+                min  = _mm512_abs_epi8(zmm0);
+
+                // 32 CNs of second BN
+                zmm0 = p_cnProcBuf[(lut_idxCnProcG3[j][1]/2) + i];
+                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+               sgn  = _mm512_xor_si512(sgn, zmm0);
+
+
+                // Store result
+                min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127
+                *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);
+                p_cnProcBufResBit++;
+            }
+        }
+    }
+
+    // =====================================================================
+    // Process group with 4 BNs
+
+    // Offset is 5*384/32 = 60
+    const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}};
+
+    if (lut_numCnInCnGroups[1] > 0)
+    {
+        // Number of groups of 32 CNs for parallel processing
+        // Ceil for values not divisible by 32
+        M = (lut_numCnInCnGroups[1]*Z + 63)>>6;
+
+        // Set the offset to each bit within a group in terms of 32 Byte
+        bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 4
+        p_cnProcBuf    = (__m512i*) &cnProcBuf   [lut_startAddrCnGroups[1]];
+        p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
+
+        // Loop over every BN
+        for (j=0; j<4; j++)
+        {
+            // Set of results pointer to correct BN address
+            p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+            // Loop over CNs
+            for (i=0; i<M; i++)
+            {
+                // Abs and sign of 32 CNs (first BN)
+                zmm0 = p_cnProcBuf[(lut_idxCnProcG4[j][0]/2) + i];
+                sgn  = _mm512_xor_si512(*p_ones, zmm0);
+                min  = _mm512_abs_epi8(zmm0);
+
+                // Loop over BNs
+                for (k=1; k<3; k++)
+                {
+                    zmm0 = p_cnProcBuf[(lut_idxCnProcG4[j][k]/2) + i];
+                    min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+                   sgn  = _mm512_xor_si512(sgn, zmm0);
+                }
+
+                // Store result
+                min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127
+                *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);
+                p_cnProcBufResBit++;
+            }
+        }
+    }
+
+    // =====================================================================
+    // Process group with 5 BNs
+
+    // Offset is 18*384/32 = 216
+    const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864},
+                                            {0,216,648,864}, {0,216,432,864}, {0,216,432,648}};
+
+    if (lut_numCnInCnGroups[2] > 0)
+    {
+        // Number of groups of 32 CNs for parallel processing
+        // Ceil for values not divisible by 32
+        M = (lut_numCnInCnGroups[2]*Z + 63)>>6;
+
+        // Set the offset to each bit within a group in terms of 32 Byte
+        bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 5
+        p_cnProcBuf    = (__m512i*) &cnProcBuf   [lut_startAddrCnGroups[2]];
+        p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[2]];
+
+        // Loop over every BN
+        for (j=0; j<5; j++)
+        {
+            // Set of results pointer to correct BN address
+            p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+            // Loop over CNs
+            for (i=0; i<M; i++)
+            {
+                // Abs and sign of 32 CNs (first BN)
+                zmm0 = p_cnProcBuf[(lut_idxCnProcG5[j][0]/2) + i];
+                sgn  = _mm512_xor_si512(*p_ones, zmm0);
+                min  = _mm512_abs_epi8(zmm0);
+
+                // Loop over BNs
+                for (k=1; k<4; k++)
+                {
+                    zmm0 = p_cnProcBuf[(lut_idxCnProcG5[j][k]/2) + i];
+                    min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+                   sgn  = _mm512_xor_si512(sgn, zmm0);
+                }
+
+                // Store result
+                min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127
+                *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);
+                p_cnProcBufResBit++;
+            }
+        }
+    }
+
+    // =====================================================================
+    // Process group with 6 BNs
+
+    // Offset is 8*384/32 = 96
+    const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480},
+                                            {0,96,288,384,480}, {0,96,192,384,480},
+                                            {0,96,192,288,480}, {0,96,192,288,384}};
+
+    if (lut_numCnInCnGroups[3] > 0)
+    {
+        // Number of groups of 32 CNs for parallel processing
+        // Ceil for values not divisible by 32
+        M = (lut_numCnInCnGroups[3]*Z + 63)>>6;
+
+        // Set the offset to each bit within a group in terms of 32 Byte
+        bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 6
+        p_cnProcBuf    = (__m512i*) &cnProcBuf   [lut_startAddrCnGroups[3]];
+        p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[3]];
+
+        // Loop over every BN
+        for (j=0; j<6; j++)
+        {
+            // Set of results pointer to correct BN address
+            p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+            // Loop over CNs
+            for (i=0; i<M; i++)
+            {
+                // Abs and sign of 32 CNs (first BN)
+                zmm0 = p_cnProcBuf[(lut_idxCnProcG6[j][0]/2) + i];
+                sgn  = _mm512_xor_si512(*p_ones, zmm0);
+                min  = _mm512_abs_epi8(zmm0);
+
+                // Loop over BNs
+                for (k=1; k<5; k++)
+                {
+                    zmm0 = p_cnProcBuf[(lut_idxCnProcG6[j][k]/2) + i];
+                    min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+                   sgn  = _mm512_xor_si512(sgn, zmm0);
+                }
+
+                // Store result
+                min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127
+                *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);
+                p_cnProcBufResBit++;
+            }
+        }
+    }
+
+    // =====================================================================
+    // Process group with 7 BNs
+
+    // Offset is 5*384/32 = 60
+    const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360},
+                                            {0,60,180,240,300,360},   {0,60,120,240,300,360},
+                                            {0,60,120,180,300,360},   {0,60,120,180,240,360},
+                                            {0,60,120,180,240,300}};
+
+    if (lut_numCnInCnGroups[4] > 0)
+    {
+        // Number of groups of 32 CNs for parallel processing
+        // Ceil for values not divisible by 32
+        M = (lut_numCnInCnGroups[4]*Z + 63)>>6;
+
+        // Set the offset to each bit within a group in terms of 32 Byte
+        bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 7
+        p_cnProcBuf    = (__m512i*) &cnProcBuf   [lut_startAddrCnGroups[4]];
+        p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[4]];
+
+        // Loop over every BN
+        for (j=0; j<7; j++)
+        {
+            // Set of results pointer to correct BN address
+            p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+            // Loop over CNs
+            for (i=0; i<M; i++)
+            {
+                // Abs and sign of 32 CNs (first BN)
+                zmm0 = p_cnProcBuf[(lut_idxCnProcG7[j][0]/2) + i];
+                sgn  = _mm512_xor_si512(*p_ones, zmm0);
+                min  = _mm512_abs_epi8(zmm0);
+
+                // Loop over BNs
+                for (k=1; k<6; k++)
+                {
+                    zmm0 = p_cnProcBuf[(lut_idxCnProcG7[j][k]/2) + i];
+                    min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+                   sgn  = _mm512_xor_si512(sgn, zmm0);
+                }
+
+                // Store result
+                min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127
+                *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);
+                p_cnProcBufResBit++;
+            }
+        }
+    }
+
+    // =====================================================================
+    // Process group with 8 BNs
+
+    // Offset is 2*384/32 = 24
+    const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,120,144,168}, {0,48,72,96,120,144,168},
+                                           {0,24,72,96,120,144,168}, {0,24,48,96,120,144,168},
+                                           {0,24,48,72,120,144,168}, {0,24,48,72,96,144,168},
+                                           {0,24,48,72,96,120,168}, {0,24,48,72,96,120,144}};
+
+    if (lut_numCnInCnGroups[5] > 0)
+    {
+        // Number of groups of 32 CNs for parallel processing
+        // Ceil for values not divisible by 32
+        M = (lut_numCnInCnGroups[5]*Z + 63)>>6;
+
+        // Set the offset to each bit within a group in terms of 32 Byte
+        bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 8
+        p_cnProcBuf    = (__m512i*) &cnProcBuf   [lut_startAddrCnGroups[5]];
+        p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[5]];
+
+        // Loop over every BN
+        for (j=0; j<8; j++)
+        {
+            // Set of results pointer to correct BN address
+            p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+            // Loop over CNs
+            for (i=0; i<M; i++)
+            {
+                // Abs and sign of 32 CNs (first BN)
+                zmm0 = p_cnProcBuf[(lut_idxCnProcG8[j][0]/2) + i];
+                sgn  = _mm512_xor_si512(*p_ones, zmm0);
+                min  = _mm512_abs_epi8(zmm0);
+
+                // Loop over BNs
+                for (k=1; k<7; k++)
+                {
+                    zmm0 = p_cnProcBuf[(lut_idxCnProcG8[j][k]/2) + i];
+                    min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+                   sgn  = _mm512_xor_si512(sgn, zmm0);
+                }
+
+                // Store result
+                min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127
+                *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);
+                p_cnProcBufResBit++;
+            }
+        }
+    }
+
+    // =====================================================================
+    // Process group with 9 BNs
+
+    // Offset is 2*384/32 = 24
+    const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192},
+                                           {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192},
+                                           {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192},
+                                           {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192},
+                                           {0,24,48,72,96,120,144,168}};
+
+    if (lut_numCnInCnGroups[6] > 0)
+    {
+        // Number of groups of 32 CNs for parallel processing
+        // Ceil for values not divisible by 32
+        M = (lut_numCnInCnGroups[6]*Z + 63)>>6;
+
+        // Set the offset to each bit within a group in terms of 32 Byte
+        bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 9
+        p_cnProcBuf    = (__m512i*) &cnProcBuf   [lut_startAddrCnGroups[6]];
+        p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[6]];
+
+        // Loop over every BN
+        for (j=0; j<9; j++)
+        {
+            // Set of results pointer to correct BN address
+            p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+            // Loop over CNs
+            for (i=0; i<M; i++)
+            {
+                // Abs and sign of 32 CNs (first BN)
+                zmm0 = p_cnProcBuf[(lut_idxCnProcG9[j][0]/2) + i];
+                sgn  = _mm512_xor_si512(*p_ones, zmm0);
+                min  = _mm512_abs_epi8(zmm0);
+
+                // Loop over BNs
+                for (k=1; k<8; k++)
+                {
+                    zmm0 = p_cnProcBuf[(lut_idxCnProcG9[j][k]/2) + i];
+                    min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+                   sgn  = _mm512_xor_si512(sgn, zmm0);
+                }
+
+                // Store result
+                min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127
+                *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);
+                p_cnProcBufResBit++;
+            }
+        }
+    }
+
+    // =====================================================================
+    // Process group with 10 BNs
+
+    // Offset is 1*384/32 = 12
+    const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108},
+                                             {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108},
+                                             {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108},
+                                             {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108},
+                                             {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}};
+
+    if (lut_numCnInCnGroups[7] > 0)
+    {
+        // Number of groups of 32 CNs for parallel processing
+        // Ceil for values not divisible by 32
+        M = (lut_numCnInCnGroups[7]*Z + 63)>>6;
+
+        // Set the offset to each bit within a group in terms of 32 Byte
+        bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 10
+        p_cnProcBuf    = (__m512i*) &cnProcBuf   [lut_startAddrCnGroups[7]];
+        p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[7]];
+
+        // Loop over every BN
+        for (j=0; j<10; j++)
+        {
+            // Set of results pointer to correct BN address
+            p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+            // Loop over CNs
+            for (i=0; i<M; i++)
+            {
+                // Abs and sign of 32 CNs (first BN)
+                zmm0 = p_cnProcBuf[(lut_idxCnProcG10[j][0]/2) + i];
+                sgn  = _mm512_xor_si512(*p_ones, zmm0);
+                min  = _mm512_abs_epi8(zmm0);
+
+                // Loop over BNs
+                for (k=1; k<9; k++)
+                {
+                    zmm0 = p_cnProcBuf[(lut_idxCnProcG10[j][k]/2) + i];
+                    min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+                   sgn  = _mm512_xor_si512(sgn, zmm0);
+                }
+
+                // Store result
+                min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127
+                *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);
+                p_cnProcBufResBit++;
+            }
+        }
+    }
+
+    // =====================================================================
+    // Process group with 19 BNs
+
+    // Offset is 4*384/32 = 12
+    const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864},
+                                               {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864},
+                                               {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864},
+                                               {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864},
+                                               {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864},
+                                               {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864},
+                                               {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864},
+                                               {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864},
+                                               {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864},
+                                               {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}};
+
+    if (lut_numCnInCnGroups[8] > 0)
+    {
+        // Number of groups of 32 CNs for parallel processing
+        // Ceil for values not divisible by 32
+        M = (lut_numCnInCnGroups[8]*Z + 63)>>6;
+
+        // Set the offset to each bit within a group in terms of 32 Byte
+        bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 19
+        p_cnProcBuf    = (__m512i*) &cnProcBuf   [lut_startAddrCnGroups[8]];
+        p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[8]];
+
+        // Loop over every BN
+        for (j=0; j<19; j++)
+        {
+            // Set of results pointer to correct BN address
+            p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+            // Loop over CNs
+            for (i=0; i<M; i++)
+            {
+                // Abs and sign of 32 CNs (first BN)
+                zmm0 = p_cnProcBuf[(lut_idxCnProcG19[j][0]/2) + i];
+                sgn  = _mm512_xor_si512(*p_ones, zmm0);
+                min  = _mm512_abs_epi8(zmm0);
+
+                // Loop over BNs
+                for (k=1; k<18; k++)
+                {
+                    zmm0 = p_cnProcBuf[(lut_idxCnProcG19[j][k]/2) + i];
+                    min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+                   sgn  = _mm512_xor_si512(sgn, zmm0);
+                }
+
+                // Store result
+                min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127
+                *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);
+                p_cnProcBufResBit++;
+            }
+        }
+    }
+
+}
+#endif
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c
index bf0f401e974..0ab3ea8e6b1 100644
--- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c
@@ -1,3 +1,5 @@
+
+
 /*
  * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -20,14 +22,8 @@
  */
 
 /*!\file nrLDPC_decoder.c
- * \brief Defines the LDPC decoder
- * \author Sebastian Wagner (TCL Communications) Email: <mailto:sebastian.wagner@tcl.com>
- * \date 30-09-2019
- * \version 2.0
- * \note
- * \warning
- */
-
+ * \brief Defines thenrLDPC decoder
+*/
 
 #include <stdint.h>
 #include <immintrin.h>
@@ -37,6 +33,83 @@
 #include "nrLDPC_mPass.h"
 #include "nrLDPC_cnProc.h"
 #include "nrLDPC_bnProc.h"
+#define UNROLL_CN_PROC 1
+#define UNROLL_BN_PROC 1
+#define UNROLL_BN_PROC_PC 1
+#define UNROLL_BN2CN_PROC 1
+/*----------------------------------------------------------------------
+|                  cn processing files -->AVX512
+/----------------------------------------------------------------------*/
+
+//BG1-------------------------------------------------------------------
+#ifdef __AVX512BW__
+
+#include "cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h"
+#include "cnProc_avx512/nrLDPC_cnProc_BG1_R23_AVX512.h"
+#include "cnProc_avx512/nrLDPC_cnProc_BG1_R89_AVX512.h"
+//BG2-------------------------------------------------------------------
+#include "cnProc_avx512/nrLDPC_cnProc_BG2_R15_AVX512.h"
+#include "cnProc_avx512/nrLDPC_cnProc_BG2_R13_AVX512.h"
+#include "cnProc_avx512/nrLDPC_cnProc_BG2_R23_AVX512.h"
+
+#else
+
+/*----------------------------------------------------------------------
+|                  cn Processing files -->AVX2
+/----------------------------------------------------------------------*/
+
+//BG1------------------------------------------------------------------
+#include "cnProc/nrLDPC_cnProc_BG1_R13_AVX2.h"
+#include "cnProc/nrLDPC_cnProc_BG1_R23_AVX2.h"
+#include "cnProc/nrLDPC_cnProc_BG1_R89_AVX2.h"
+//BG2 --------------------------------------------------------------------
+#include "cnProc/nrLDPC_cnProc_BG2_R15_AVX2.h"
+#include "cnProc/nrLDPC_cnProc_BG2_R13_AVX2.h"
+#include "cnProc/nrLDPC_cnProc_BG2_R23_AVX2.h"
+
+#endif
+
+/*----------------------------------------------------------------------
+|                 bn Processing files -->AVX2
+/----------------------------------------------------------------------*/
+
+//bnProcPc-------------------------------------------------------------
+//BG1------------------------------------------------------------------
+#include "bnProcPc/nrLDPC_bnProcPc_BG1_R13_AVX2.h"
+#include "bnProcPc/nrLDPC_bnProcPc_BG1_R23_AVX2.h"
+#include "bnProcPc/nrLDPC_bnProcPc_BG1_R89_AVX2.h"
+//BG2 --------------------------------------------------------------------
+#include "bnProcPc/nrLDPC_bnProcPc_BG2_R15_AVX2.h"
+#include "bnProcPc/nrLDPC_bnProcPc_BG2_R13_AVX2.h"
+#include "bnProcPc/nrLDPC_bnProcPc_BG2_R23_AVX2.h"
+
+//bnProc----------------------------------------------------------------
+
+#ifdef __AVX512BW__
+//BG1-------------------------------------------------------------------
+#include "bnProc_avx512/nrLDPC_bnProc_BG1_R13_AVX512.h"
+#include "bnProc_avx512/nrLDPC_bnProc_BG1_R23_AVX512.h"
+#include "bnProc_avx512/nrLDPC_bnProc_BG1_R89_AVX512.h"
+//BG2 --------------------------------------------------------------------
+#include "bnProc_avx512/nrLDPC_bnProc_BG2_R15_AVX512.h"
+#include "bnProc_avx512/nrLDPC_bnProc_BG2_R13_AVX512.h"
+#include "bnProc_avx512/nrLDPC_bnProc_BG2_R23_AVX512.h"
+
+#else
+#include "bnProc/nrLDPC_bnProc_BG1_R13_AVX2.h"
+#include "bnProc/nrLDPC_bnProc_BG1_R23_AVX2.h"
+#include "bnProc/nrLDPC_bnProc_BG1_R89_AVX2.h"
+//BG2 --------------------------------------------------------------------
+#include "bnProc/nrLDPC_bnProc_BG2_R15_AVX2.h"
+#include "bnProc/nrLDPC_bnProc_BG2_R13_AVX2.h"
+#include "bnProc/nrLDPC_bnProc_BG2_R23_AVX2.h"
+
+#endif
+
+
+
+
+
 
 #define NR_LDPC_ENABLE_PARITY_CHECK
 //#define NR_LDPC_PROFILER_DETAIL
@@ -66,28 +139,31 @@ int32_t nrLDPC_decod(t_nrLDPC_dec_params* p_decParams, int8_t* p_llr, int8_t* p_
 }
 
 /**
-   \brief Performs LDPC decoding of one code block
+   \brief PerformsnrLDPC decoding of one code block
    \param p_llr Input LLRs
    \param p_out Output vector
    \param numLLR Number of LLRs
    \param p_lut Pointer to decoder LUTs
-   \param p_decParams LDPC decoder parameters
-   \param p_profiler LDPC profiler statistics
+   \param p_decParamsnrLDPC decoder parameters
+   \param p_profilernrLDPC profiler statistics
 */
 static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler)
 {
     uint16_t Z          = p_decParams->Z;
     uint8_t  BG         = p_decParams->BG;
+    uint8_t  R         = p_decParams->R; //Decoding rate: Format 15,13,... for code rates 1/5, 1/3,... */
     uint8_t  numMaxIter = p_decParams->numMaxIter;
     e_nrLDPC_outMode outMode = p_decParams->outMode;
-
-    int8_t cnProcBuf[NR_LDPC_SIZE_CN_PROC_BUF]    __attribute__ ((aligned(32))) = {0};
-    int8_t cnProcBufRes[NR_LDPC_SIZE_CN_PROC_BUF] __attribute__ ((aligned(32))) = {0};
-    int8_t bnProcBuf[NR_LDPC_SIZE_BN_PROC_BUF]    __attribute__ ((aligned(32))) = {0};
-    int8_t bnProcBufRes[NR_LDPC_SIZE_BN_PROC_BUF] __attribute__ ((aligned(32))) = {0};
-    int8_t llrRes[NR_LDPC_MAX_NUM_LLR]            __attribute__ ((aligned(32))) = {0};
-    int8_t llrProcBuf[NR_LDPC_MAX_NUM_LLR]        __attribute__ ((aligned(32))) = {0};
-    int8_t llrOut[NR_LDPC_MAX_NUM_LLR]            __attribute__ ((aligned(32))) = {0};
+   // int8_t* cnProcBuf=  cnProcBuf;
+   // int8_t* cnProcBufRes= cnProcBufRes;
+
+    int8_t cnProcBuf[NR_LDPC_SIZE_CN_PROC_BUF]    __attribute__ ((aligned(64))) = {0};
+    int8_t cnProcBufRes[NR_LDPC_SIZE_CN_PROC_BUF] __attribute__ ((aligned(64))) = {0};
+    int8_t bnProcBuf[NR_LDPC_SIZE_BN_PROC_BUF]    __attribute__ ((aligned(64))) = {0};
+    int8_t bnProcBufRes[NR_LDPC_SIZE_BN_PROC_BUF] __attribute__ ((aligned(64))) = {0};
+    int8_t llrRes[NR_LDPC_MAX_NUM_LLR]            __attribute__ ((aligned(64))) = {0};
+    int8_t llrProcBuf[NR_LDPC_MAX_NUM_LLR]        __attribute__ ((aligned(64))) = {0};
+    int8_t llrOut[NR_LDPC_MAX_NUM_LLR]            __attribute__ ((aligned(64))) = {0};
     // Minimum number of iterations is 1
     // 0 iterations means hard-decision on input LLRs
     uint32_t i = 1;
@@ -123,14 +199,8 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_
 #ifdef NR_LDPC_PROFILER_DETAIL
     start_meas(&p_profiler->llr2CnProcBuf);
 #endif
-    if (BG == 1)
-    {
-        nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, cnProcBuf, Z);
-    }
-    else
-    {
-        nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, cnProcBuf, Z);
-    }
+    if (BG == 1) nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, cnProcBuf, Z);
+    else nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, cnProcBuf, Z);
 #ifdef NR_LDPC_PROFILER_DETAIL
     stop_meas(&p_profiler->llr2CnProcBuf);
 #endif
@@ -146,13 +216,79 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_
 #ifdef NR_LDPC_PROFILER_DETAIL
     start_meas(&p_profiler->cnProc);
 #endif
-    if (BG == 1)
-    {
+    if (BG==1) {
+#ifndef UNROLL_CN_PROC      
         nrLDPC_cnProc_BG1(p_lut, cnProcBuf, cnProcBufRes, Z);
-    }
-    else
-    {
+#else        
+        switch (R)
+        {
+            case 13:
+            {
+                #ifdef __AVX512BW__
+                nrLDPC_cnProc_BG1_R13_AVX512(cnProcBuf, cnProcBufRes, Z);
+                #else
+                nrLDPC_cnProc_BG1_R13_AVX2(cnProcBuf, cnProcBufRes, Z);
+                #endif
+                break;
+            }
+
+            case 23:
+            {
+                #ifdef __AVX512BW__
+                nrLDPC_cnProc_BG1_R23_AVX512(cnProcBuf,cnProcBufRes, Z);
+                #else
+                nrLDPC_cnProc_BG1_R23_AVX2(cnProcBuf, cnProcBufRes, Z);
+                #endif
+                break;
+            }
+
+            case 89:
+            {
+                #ifdef __AVX512BW__
+                 nrLDPC_cnProc_BG1_R89_AVX512(cnProcBuf, cnProcBufRes, Z);
+                #else
+                nrLDPC_cnProc_BG1_R89_AVX2(cnProcBuf, cnProcBufRes, Z);
+                #endif
+                break;
+            }
+
+        }
+#endif        
+    } else {
+#ifndef UNROLL_CN_PROC
         nrLDPC_cnProc_BG2(p_lut, cnProcBuf, cnProcBufRes, Z);
+#else
+        switch (R) {
+            case 15:
+            {
+                #ifdef __AVX512BW__
+                nrLDPC_cnProc_BG2_R15_AVX512(cnProcBuf, cnProcBufRes, Z);
+                #else
+                nrLDPC_cnProc_BG2_R15_AVX2(cnProcBuf, cnProcBufRes, Z);
+                #endif
+                break;
+            }
+            case 13:
+            {
+                #ifdef __AVX512BW__
+                 nrLDPC_cnProc_BG2_R13_AVX512(cnProcBuf, cnProcBufRes, Z);
+                #else
+                nrLDPC_cnProc_BG2_R13_AVX2(cnProcBuf, cnProcBufRes, Z);
+                #endif
+                break;
+            }
+            case 23:
+            {
+                #ifdef __AVX512BW__
+                 nrLDPC_cnProc_BG2_R23_AVX512(cnProcBuf, cnProcBufRes, Z);
+                #else
+                nrLDPC_cnProc_BG2_R23_AVX2(cnProcBuf, cnProcBufRes, Z);
+                #endif
+                break;
+            }
+
+        }
+#endif        
     }
 #ifdef NR_LDPC_PROFILER_DETAIL
     stop_meas(&p_profiler->cnProc);
@@ -166,14 +302,8 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_
 #ifdef NR_LDPC_PROFILER_DETAIL
     start_meas(&p_profiler->cn2bnProcBuf);
 #endif
-    if (BG == 1)
-    {
-        nrLDPC_cn2bnProcBuf_BG1(p_lut, cnProcBufRes, bnProcBuf, Z);
-    }
-    else
-    {
-        nrLDPC_cn2bnProcBuf_BG2(p_lut, cnProcBufRes, bnProcBuf, Z);
-    }
+    if (BG == 1) nrLDPC_cn2bnProcBuf_BG1(p_lut, cnProcBufRes, bnProcBuf, Z);
+    else         nrLDPC_cn2bnProcBuf_BG2(p_lut, cnProcBufRes, bnProcBuf, Z);
 #ifdef NR_LDPC_PROFILER_DETAIL
     stop_meas(&p_profiler->cn2bnProcBuf);
 #endif
@@ -187,7 +317,51 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_
 #ifdef NR_LDPC_PROFILER_DETAIL
     start_meas(&p_profiler->bnProcPc);
 #endif
+
+
+#ifndef UNROLL_BN_PROC_PC
     nrLDPC_bnProcPc(p_lut, bnProcBuf, bnProcBufRes, llrProcBuf, llrRes, Z);
+#else        
+    if (BG==1) {
+        switch (R) {
+            case 13:
+            {
+                nrLDPC_bnProcPc_BG1_R13_AVX2(bnProcBuf,bnProcBufRes,llrRes, llrProcBuf, Z);
+                break;
+            }
+            case 23:
+            {
+                nrLDPC_bnProcPc_BG1_R23_AVX2(bnProcBuf,bnProcBufRes, llrRes, llrProcBuf, Z);
+                break;
+            }
+            case 89:
+            {
+                nrLDPC_bnProcPc_BG1_R89_AVX2(bnProcBuf,bnProcBufRes, llrRes, llrProcBuf, Z);
+                break;
+            }
+        }
+    } else {
+        switch (R) {
+            case 15:
+            {
+                nrLDPC_bnProcPc_BG2_R15_AVX2(bnProcBuf,bnProcBufRes, llrRes, llrProcBuf, Z);
+                break;
+            }
+            case 13:
+            {
+                nrLDPC_bnProcPc_BG2_R13_AVX2(bnProcBuf,bnProcBufRes,llrRes,llrProcBuf, Z);
+                break;
+            }
+
+            case 23:
+            {
+                nrLDPC_bnProcPc_BG2_R23_AVX2(bnProcBuf,bnProcBufRes,llrRes, llrProcBuf, Z);
+                break;
+            }
+        }
+    }
+#endif
+
 #ifdef NR_LDPC_PROFILER_DETAIL
     stop_meas(&p_profiler->bnProcPc);
 #endif
@@ -200,7 +374,78 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_
 #ifdef NR_LDPC_PROFILER_DETAIL
     start_meas(&p_profiler->bnProc);
 #endif
-    nrLDPC_bnProc(p_lut, bnProcBuf, bnProcBufRes, llrRes, Z);
+
+    if (BG==1) {
+#ifndef UNROLL_BN_PROC
+        nrLDPC_bnProc(p_lut, bnProcBuf, bnProcBufRes, llrRes, Z);
+#else
+        switch (R) {
+            case 13:
+            {
+                #ifdef __AVX512BW__
+                nrLDPC_bnProc_BG1_R13_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #else
+                nrLDPC_bnProc_BG1_R13_AVX2(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #endif
+                break;
+            }
+            case 23:
+            {
+                #ifdef __AVX512BW__
+                nrLDPC_bnProc_BG1_R23_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #else
+                nrLDPC_bnProc_BG1_R23_AVX2(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #endif
+                break;
+            }
+            case 89:
+            {
+                #ifdef __AVX512BW__
+                nrLDPC_bnProc_BG1_R89_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #else
+                nrLDPC_bnProc_BG1_R89_AVX2(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #endif
+                break;
+            }
+        }
+#endif
+    } else {
+#ifndef UNROLL_BN2CN_PROC
+        nrLDPC_bn2cnProcBuf_BG2(p_lut, bnProcBufRes, cnProcBuf, Z);
+#else
+        switch (R) {
+            case 15:
+            {
+                #ifdef __AVX512BW__
+                nrLDPC_bnProc_BG2_R15_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #else
+                nrLDPC_bnProc_BG2_R15_AVX2(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #endif
+                break;
+            }
+            case 13:
+            {
+                #ifdef __AVX512BW__
+                nrLDPC_bnProc_BG2_R13_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #else
+                nrLDPC_bnProc_BG2_R13_AVX2(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #endif
+                break;
+            }
+
+            case 23:
+            {
+                #ifdef __AVX512BW__
+                nrLDPC_bnProc_BG2_R23_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #else
+                nrLDPC_bnProc_BG2_R23_AVX2(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #endif
+                break;
+            }
+        }
+#endif        
+   }
+
 #ifdef NR_LDPC_PROFILER_DETAIL
     stop_meas(&p_profiler->bnProc);
 #endif
@@ -214,14 +459,8 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_
 #ifdef NR_LDPC_PROFILER_DETAIL
     start_meas(&p_profiler->bn2cnProcBuf);
 #endif
-    if (BG == 1)
-    {
-        nrLDPC_bn2cnProcBuf_BG1(p_lut, bnProcBufRes, cnProcBuf, Z);
-    }
-    else
-    {
-        nrLDPC_bn2cnProcBuf_BG2(p_lut, bnProcBufRes, cnProcBuf, Z);
-    }
+    if (BG == 1) nrLDPC_bn2cnProcBuf_BG1(p_lut, bnProcBufRes, cnProcBuf, Z);
+    else         nrLDPC_bn2cnProcBuf_BG2(p_lut, bnProcBufRes, cnProcBuf, Z);
 #ifdef NR_LDPC_PROFILER_DETAIL
     stop_meas(&p_profiler->bn2cnProcBuf);
 #endif
@@ -236,8 +475,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_
 
     // First iteration finished
 
-    while ( (i < numMaxIter) && (pcRes != 0) )
-    {
+    while ( (i < numMaxIter) && (pcRes != 0) ) {
         // Increase iteration counter
         i++;
 
@@ -245,13 +483,74 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_
 #ifdef NR_LDPC_PROFILER_DETAIL
         start_meas(&p_profiler->cnProc);
 #endif
-        if (BG == 1)
-        {
-            nrLDPC_cnProc_BG1(p_lut, cnProcBuf, cnProcBufRes, Z);
-        }
-        else
-        {
-            nrLDPC_cnProc_BG2(p_lut, cnProcBuf, cnProcBufRes, Z);
+        if (BG==1) {
+#ifndef UNROLL_CN_PROC
+           nrLDPC_cnProc_BG1(p_lut, cnProcBuf, cnProcBufRes, Z);
+#else        
+           switch (R) {
+            case 13:
+            {
+                #ifdef __AVX512BW__
+                nrLDPC_cnProc_BG1_R13_AVX512(cnProcBuf, cnProcBufRes, Z);
+                #else
+                nrLDPC_cnProc_BG1_R13_AVX2(cnProcBuf, cnProcBufRes, Z);
+                #endif
+                break;
+            }
+            case 23:
+            {
+                #ifdef __AVX512BW__
+                 nrLDPC_cnProc_BG1_R23_AVX512(cnProcBuf, cnProcBufRes, Z);
+                #else
+                nrLDPC_cnProc_BG1_R23_AVX2(cnProcBuf, cnProcBufRes, Z);
+                #endif
+                break;
+            }
+            case 89:
+            {
+                #ifdef __AVX512BW__
+                 nrLDPC_cnProc_BG1_R89_AVX512(cnProcBuf, cnProcBufRes, Z);
+                #else
+                nrLDPC_cnProc_BG1_R89_AVX2(cnProcBuf, cnProcBufRes, Z);
+                #endif
+                break;
+            }
+           }
+#endif        
+        } else {
+#ifndef UNROLL_CN_PROC
+           nrLDPC_cnProc_BG2(p_lut, cnProcBuf, cnProcBufRes, Z);
+#else
+           switch (R) {
+            case 15:
+            {
+                #ifdef __AVX512BW__
+                nrLDPC_cnProc_BG2_R15_AVX512(cnProcBuf,cnProcBufRes, Z);
+                #else
+                nrLDPC_cnProc_BG2_R15_AVX2(cnProcBuf, cnProcBufRes, Z);
+                #endif
+                break;
+            }
+            case 13:
+            {
+                #ifdef __AVX512BW__
+                 nrLDPC_cnProc_BG2_R13_AVX512(cnProcBuf, cnProcBufRes, Z);
+                #else
+                nrLDPC_cnProc_BG2_R13_AVX2(cnProcBuf, cnProcBufRes, Z);
+                #endif
+                break;
+            } 
+            case 23:
+            {
+                #ifdef __AVX512BW__
+                 nrLDPC_cnProc_BG2_R23_AVX512(cnProcBuf, cnProcBufRes, Z);
+                #else
+                nrLDPC_cnProc_BG2_R23_AVX2(cnProcBuf, cnProcBufRes, Z);
+                #endif
+                break;
+            }
+          }  
+#endif
         }
 #ifdef NR_LDPC_PROFILER_DETAIL
         stop_meas(&p_profiler->cnProc);
@@ -265,14 +564,8 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_
 #ifdef NR_LDPC_PROFILER_DETAIL
         start_meas(&p_profiler->cn2bnProcBuf);
 #endif
-        if (BG == 1)
-        {
-            nrLDPC_cn2bnProcBuf_BG1(p_lut, cnProcBufRes, bnProcBuf, Z);
-        }
-        else
-        {
-            nrLDPC_cn2bnProcBuf_BG2(p_lut, cnProcBufRes, bnProcBuf, Z);
-        }
+        if (BG == 1) nrLDPC_cn2bnProcBuf_BG1(p_lut, cnProcBufRes, bnProcBuf, Z);
+        else         nrLDPC_cn2bnProcBuf_BG2(p_lut, cnProcBufRes, bnProcBuf, Z);
 #ifdef NR_LDPC_PROFILER_DETAIL
         stop_meas(&p_profiler->cn2bnProcBuf);
 #endif
@@ -285,7 +578,49 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_
 #ifdef NR_LDPC_PROFILER_DETAIL
         start_meas(&p_profiler->bnProcPc);
 #endif
+
+#ifndef UNROLL_BN_PROC_PC
         nrLDPC_bnProcPc(p_lut, bnProcBuf, bnProcBufRes, llrProcBuf, llrRes, Z);
+#else
+        if (BG==1) {
+          switch (R) {
+            case 13:
+            {
+                nrLDPC_bnProcPc_BG1_R13_AVX2(bnProcBuf,bnProcBufRes,llrRes, llrProcBuf, Z);
+                break;
+            }
+            case 23:
+            {
+                nrLDPC_bnProcPc_BG1_R23_AVX2(bnProcBuf,bnProcBufRes, llrRes, llrProcBuf, Z);
+                break;
+            }
+            case 89:
+            {
+                nrLDPC_bnProcPc_BG1_R89_AVX2(bnProcBuf,bnProcBufRes, llrRes, llrProcBuf, Z);
+                break;
+            }
+          }
+        } else {
+          switch (R)
+          {
+            case 15:
+            {
+                nrLDPC_bnProcPc_BG2_R15_AVX2(bnProcBuf,bnProcBufRes,llrRes, llrProcBuf, Z);
+                break;
+            }
+            case 13:
+            {
+                nrLDPC_bnProcPc_BG2_R13_AVX2(bnProcBuf,bnProcBufRes,llrRes, llrProcBuf, Z);
+                break;
+            }
+            case 23:
+            {
+                nrLDPC_bnProcPc_BG2_R23_AVX2(bnProcBuf,bnProcBufRes,llrRes, llrProcBuf, Z);
+                break;
+            }
+          }
+        }
+#endif
 #ifdef NR_LDPC_PROFILER_DETAIL
         stop_meas(&p_profiler->bnProcPc);
 #endif
@@ -297,7 +632,75 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_
 #ifdef NR_LDPC_PROFILER_DETAIL
         start_meas(&p_profiler->bnProc);
 #endif
+#ifndef UNROLL_BN_PROC
         nrLDPC_bnProc(p_lut, bnProcBuf, bnProcBufRes, llrRes, Z);
+#else     
+        if (BG==1) {
+          switch (R) {
+            case 13:
+            {
+                #ifdef __AVX512BW__
+                nrLDPC_bnProc_BG1_R13_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #else
+                nrLDPC_bnProc_BG1_R13_AVX2(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #endif
+                break;
+            }
+            case 23:
+            {
+                #ifdef __AVX512BW__
+                nrLDPC_bnProc_BG1_R23_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #else
+                nrLDPC_bnProc_BG1_R23_AVX2(bnProcBuf,bnProcBufRes,llrRes, Z);
+                #endif
+                break;
+            }
+            case 89:
+            {
+                #ifdef __AVX512BW__
+                nrLDPC_bnProc_BG1_R89_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #else
+                nrLDPC_bnProc_BG1_R89_AVX2(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #endif
+                break;
+            }
+          }
+        } else {
+          switch (R)
+          {
+            case 15:
+            {
+                #ifdef __AVX512BW__
+                nrLDPC_bnProc_BG2_R15_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #else
+                nrLDPC_bnProc_BG2_R15_AVX2(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #endif
+                break;
+            }
+            case 13:
+            {
+                #ifdef __AVX512BW__
+                nrLDPC_bnProc_BG2_R13_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #else
+                nrLDPC_bnProc_BG2_R13_AVX2(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #endif
+                break;
+            }
+            case 23:
+            {
+                #ifdef __AVX512BW__
+                nrLDPC_bnProc_BG2_R23_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #else
+                nrLDPC_bnProc_BG2_R23_AVX2(bnProcBuf, bnProcBufRes,llrRes, Z);
+                #endif
+                break;
+            }
+          }
+        }
+#endif
+
+
+
 #ifdef NR_LDPC_PROFILER_DETAIL
         stop_meas(&p_profiler->bnProc);
 #endif
@@ -310,14 +713,8 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_
 #ifdef NR_LDPC_PROFILER_DETAIL
         start_meas(&p_profiler->bn2cnProcBuf);
 #endif
-        if (BG == 1)
-        {
-            nrLDPC_bn2cnProcBuf_BG1(p_lut, bnProcBufRes, cnProcBuf, Z);
-        }
-        else
-        {
-            nrLDPC_bn2cnProcBuf_BG2(p_lut, bnProcBufRes, cnProcBuf, Z);
-        }
+        if (BG == 1) nrLDPC_bn2cnProcBuf_BG1(p_lut, bnProcBufRes, cnProcBuf, Z);
+        else         nrLDPC_bn2cnProcBuf_BG2(p_lut, bnProcBufRes, cnProcBuf, Z);
 #ifdef NR_LDPC_PROFILER_DETAIL
         stop_meas(&p_profiler->bn2cnProcBuf);
 #endif
@@ -326,60 +723,44 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_
         nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, cnProcBuf);
 #endif
 
-        // Parity Check
+   // Parity Check
 #ifdef NR_LDPC_ENABLE_PARITY_CHECK
 #ifdef NR_LDPC_PROFILER_DETAIL
-        start_meas(&p_profiler->cnProcPc);
+       start_meas(&p_profiler->cnProcPc);
 #endif
-        if (BG == 1)
-        {
-            pcRes = nrLDPC_cnProcPc_BG1(p_lut, cnProcBuf, cnProcBufRes, Z);
-        }
-        else
-        {
-            pcRes = nrLDPC_cnProcPc_BG2(p_lut, cnProcBuf, cnProcBufRes, Z);
-        }
+       if (BG == 1) pcRes = nrLDPC_cnProcPc_BG1(p_lut, cnProcBuf, cnProcBufRes, Z);
+       else         pcRes = nrLDPC_cnProcPc_BG2(p_lut, cnProcBuf, cnProcBufRes, Z);
 #ifdef NR_LDPC_PROFILER_DETAIL
-        stop_meas(&p_profiler->cnProcPc);
-#endif
+       stop_meas(&p_profiler->cnProcPc);
 #endif
-    }
-
-    // If maximum number of iterations reached an PC still fails increase number of iterations
-    // Thus, i > numMaxIter indicates that PC has failed
-
-#ifdef NR_LDPC_ENABLE_PARITY_CHECK
-    if (pcRes != 0)
-    {
-        i++;
-    }
 #endif
+   } // end while
 
+   // Last iteration
+   if (pcRes != 0) i++;
     // Assign results from processing buffer to output
 #ifdef NR_LDPC_PROFILER_DETAIL
-    start_meas(&p_profiler->llrRes2llrOut);
+   start_meas(&p_profiler->llrRes2llrOut);
 #endif
-    nrLDPC_llrRes2llrOut(p_lut, p_llrOut, llrRes, Z, BG);
+   nrLDPC_llrRes2llrOut(p_lut, p_llrOut, llrRes, Z, BG);
 #ifdef NR_LDPC_PROFILER_DETAIL
-    stop_meas(&p_profiler->llrRes2llrOut);
+   stop_meas(&p_profiler->llrRes2llrOut);
 #endif
 
     // Hard-decision
 #ifdef NR_LDPC_PROFILER_DETAIL
-    start_meas(&p_profiler->llr2bit);
+   start_meas(&p_profiler->llr2bit);
 #endif
-    if (outMode == nrLDPC_outMode_BIT)
-    {
-        nrLDPC_llr2bitPacked(p_out, p_llrOut, numLLR);
-    }
-    else if (outMode == nrLDPC_outMode_BITINT8)
-    {
-        nrLDPC_llr2bit(p_out, p_llrOut, numLLR);
-    }
-
+   if (outMode == nrLDPC_outMode_BIT) nrLDPC_llr2bitPacked(p_out, p_llrOut, numLLR);
+   else //if (outMode == nrLDPC_outMode_BITINT8)
+     nrLDPC_llr2bit(p_out, p_llrOut, numLLR);
 #ifdef NR_LDPC_PROFILER_DETAIL
     stop_meas(&p_profiler->llr2bit);
 #endif
 
     return i;
 }
+
+
+
+
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_init_mem.h b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_init_mem.h
new file mode 100644
index 00000000000..5678a7b3b7c
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_init_mem.h
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+/*!\file nrLDPC_init_mem.h
+ * \brief Defines the function to initialize the LDPC decoder and sets correct LUTs.
+ * \author Sebastian Wagner (TCL Communications) Email: <mailto:sebastian.wagner@tcl.com>
+ * \date 07-12-2018
+ * \version 1.0
+ * \note
+ * \warning
+ */
+
+#ifndef __NR_LDPC_INIT_MEM__H__
+#define __NR_LDPC_INIT_MEM__H__
+
+#include <stdlib.h>
+#include "nrLDPC_types.h"
+
+/**
+   \brief Allocates 32 byte aligned memory and initializes to zero
+   \param size Input size in bytes
+   \return Pointer to memory
+*/
+static inline void* malloc32_clear(size_t size)
+{
+    void* ptr = (void*) memalign(64, size+64);
+    memset(ptr, 0, size);
+    return ptr;
+}
+
+/**
+   \brief Allocates and initializes the internal decoder processing buffers
+   \param p_decParams Pointer to decoder parameters
+   \param p_lut Pointer to decoder LUTs
+   \return Number of LLR values
+*/
+static inline t_nrLDPC_procBuf* nrLDPC_init_mem(void)
+{
+    t_nrLDPC_procBuf* p_procBuf = (t_nrLDPC_procBuf*) malloc32_clear(sizeof(t_nrLDPC_procBuf));
+
+    if (p_procBuf)
+    {
+        p_procBuf->cnProcBuf    = (int8_t*) malloc32_clear(NR_LDPC_SIZE_CN_PROC_BUF*sizeof(int8_t));
+        p_procBuf->cnProcBufRes = (int8_t*) malloc32_clear(NR_LDPC_SIZE_CN_PROC_BUF*sizeof(int8_t));
+        p_procBuf->bnProcBuf    = (int8_t*) malloc32_clear(NR_LDPC_SIZE_BN_PROC_BUF*sizeof(int8_t));
+        p_procBuf->bnProcBufRes = (int8_t*) malloc32_clear(NR_LDPC_SIZE_BN_PROC_BUF*sizeof(int8_t));
+        p_procBuf->llrRes       = (int8_t*) malloc32_clear(NR_LDPC_MAX_NUM_LLR     *sizeof(int8_t));
+        p_procBuf->llrProcBuf   = (int8_t*) malloc32_clear(NR_LDPC_MAX_NUM_LLR     *sizeof(int8_t));
+    }
+
+    return(p_procBuf);
+}
+
+static inline void nrLDPC_free_mem(t_nrLDPC_procBuf* p_procBuf)
+{
+    free(p_procBuf->cnProcBuf);
+    free(p_procBuf->cnProcBufRes);
+    free(p_procBuf->bnProcBuf);
+    free(p_procBuf->bnProcBufRes);
+    free(p_procBuf->llrRes);
+    free(p_procBuf->llrProcBuf);
+
+    free(p_procBuf);
+}
+#endif
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h
index 7f514d5cfa6..ecbcac638d1 100644
--- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h
@@ -21,21 +21,16 @@
 
 /*!\file nrLDPC_mPass.h
  * \brief Defines the functions for message passing
- * \author Sebastian Wagner (TCL Communications) Email: <mailto:sebastian.wagner@tcl.com>
- * \date 30-09-2019
- * \version 2.0
- * \note
- * \warning
- */
-
+ *
+*/
 #ifndef __NR_LDPC_MPASS__H__
 #define __NR_LDPC_MPASS__H__
 
 #include <string.h>
 #include "nrLDPCdecoder_defs.h"
-
+//#include <omp.h>
 /**
-   \brief Circular memcpy
+   \brief Circular memcpy1
                 |<- rem->|<- circular shift ->|
    (src) str2 = |--------xxxxxxxxxxxxxxxxxxxxx|
                          \_______________
@@ -46,6 +41,7 @@
    \param Z Lifting size
    \param cshift Circular shift
 */
+
 static inline void *nrLDPC_inv_circ_memcpy(int8_t *str1, const int8_t *str2, uint16_t Z, uint16_t cshift)
 {
     uint16_t rem = Z - cshift;
@@ -169,6 +165,8 @@ static inline void nrLDPC_llr2CnProcBuf_BG1(t_nrLDPC_lut* p_lut, int8_t* llr, in
 
     bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX;
 
+
+
     for (j=0; j<3; j++)
     {
         p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup];
@@ -200,8 +198,10 @@ static inline void nrLDPC_llr2CnProcBuf_BG1(t_nrLDPC_lut* p_lut, int8_t* llr, in
     // =====================================================================
     // CN group with 5 BNs
 
+
     bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX;
 
+
     for (j=0; j<5; j++)
     {
         p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[2] + j*bitOffsetInGroup];
@@ -234,8 +234,10 @@ static inline void nrLDPC_llr2CnProcBuf_BG1(t_nrLDPC_lut* p_lut, int8_t* llr, in
     // =====================================================================
     // CN group with 7 BNs
 
+
     bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX;
 
+
     for (j=0; j<7; j++)
     {
         p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[4] + j*bitOffsetInGroup];
@@ -253,6 +255,7 @@ static inline void nrLDPC_llr2CnProcBuf_BG1(t_nrLDPC_lut* p_lut, int8_t* llr, in
 
     bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX;
 
+
     for (j=0; j<8; j++)
     {
         p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[5] + j*bitOffsetInGroup];
@@ -302,6 +305,7 @@ static inline void nrLDPC_llr2CnProcBuf_BG1(t_nrLDPC_lut* p_lut, int8_t* llr, in
     // =====================================================================
     // CN group with 19 BNs
 
+
     bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX;
 
     for (j=0; j<19; j++)
@@ -1007,18 +1011,18 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, int8_t* bnProcBu
     // CN group with 4 BNs
 
     bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX;
-
+  
     for (j=0; j<3; j++)
     {
         p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[1] + j*bitOffsetInGroup];
+
         for (i=0; i<lut_numCnInCnGroups[1]; i++)
         {
             idxBn = lut_startAddrBnProcBuf_CNG4[j][i] + lut_bnPosBnProcBuf_CNG4[j][i]*Z;
             nrLDPC_circ_memcpy(p_cnProcBuf, &bnProcBufRes[idxBn], Z, lut_circShift_CNG4[j][i]);
             p_cnProcBuf += Z;
-        }
+         }
     }
-
     // =====================================================================
     // CN group with 5 BNs
 
@@ -1027,6 +1031,7 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, int8_t* bnProcBu
     for (j=0; j<4; j++)
     {
         p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[2] + j*bitOffsetInGroup];
+    
         for (i=0; i<lut_numCnInCnGroups[2]; i++)
         {
             idxBn = lut_startAddrBnProcBuf_CNG5[j][i] + lut_bnPosBnProcBuf_CNG5[j][i]*Z;
@@ -1039,10 +1044,11 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, int8_t* bnProcBu
     // CN group with 6 BNs
 
     bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX;
-
+    
     for (j=0; j<5; j++)
     {
         p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[3] + j*bitOffsetInGroup];
+      
         for (i=0; i<lut_numCnInCnGroups[3]; i++)
         {
             idxBn = lut_startAddrBnProcBuf_CNG6[j][i] + lut_bnPosBnProcBuf_CNG6[j][i]*Z;
@@ -1055,11 +1061,12 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, int8_t* bnProcBu
     // CN group with 7 BNs
 
     bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX;
-
+    
     for (j=0; j<6; j++)
     {
         p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[4] + j*bitOffsetInGroup];
 
+    
         for (i=0; i<lut_numCnInCnGroups[4]; i++)
         {
             idxBn = lut_startAddrBnProcBuf_CNG7[j][i] + lut_bnPosBnProcBuf_CNG7[j][i]*Z;
@@ -1092,6 +1099,7 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, int8_t* bnProcBu
     for (j=0; j<8; j++)
     {
         p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[6] + j*bitOffsetInGroup];
+
         for (i=0; i<lut_numCnInCnGroups[6]; i++)
         {
             idxBn = lut_startAddrBnProcBuf_CNG9[j][i] + lut_bnPosBnProcBuf_CNG9[j][i]*Z;
@@ -1104,10 +1112,11 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, int8_t* bnProcBu
     // CN group with 10 BNs
 
     bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX;
-
+    
     for (j=0; j<9; j++)
     {
         p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[7] + j*bitOffsetInGroup];
+    
         for (i=0; i<lut_numCnInCnGroups[7]; i++)
         {
             idxBn = lut_startAddrBnProcBuf_CNG10[j][i] + lut_bnPosBnProcBuf_CNG10[j][i]*Z;
@@ -1120,10 +1129,11 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, int8_t* bnProcBu
     // CN group with 19 BNs
 
     bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX;
-
+   
     for (j=0; j<19; j++)
     {
         p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[8] + j*bitOffsetInGroup];
+      
         for (i=0; i<lut_numCnInCnGroups[8]; i++)
         {
             idxBn = lut_startAddrBnProcBuf_CNG19[j][i] + lut_bnPosBnProcBuf_CNG19[j][i]*Z;
@@ -1172,3 +1182,7 @@ static inline void nrLDPC_llrRes2llrOut(t_nrLDPC_lut* p_lut, int8_t* llrOut, int
 }
 
 #endif
+
+
+
+
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/CMakeLists.txt b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/CMakeLists.txt
new file mode 100644
index 00000000000..669ab17aa7d
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/CMakeLists.txt
@@ -0,0 +1,19 @@
+add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/generator_bnProc        ldpc/generator_bnProc)
+add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/generator_bnProc_avx512 ldpc/generator_bnProc_avx512)
+add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/generator_cnProc        ldpc/generator_cnProc)
+add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/generator_cnProc_avx512 ldpc/generator_cnProc_avx512)
+
+# custom target to build all generators
+add_custom_target(ldpc_generators)
+add_dependencies(ldpc_generators
+                 bnProc_gen_avx2
+                 bnProc_gen_avx512
+                 cnProc_gen_avx2
+                 cnProc_gen_avx512)
+
+add_library(ldpc_gen_HEADERS INTERFACE)
+target_link_libraries(ldpc_gen_HEADERS INTERFACE
+                      bnProc_gen_avx2_HEADERS
+                      bnProc_gen_avx512_HEADERS
+                      cnProc_gen_avx2_HEADERS
+                      cnProc_gen_avx512_HEADERS)
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/CMakeLists.txt b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/CMakeLists.txt
new file mode 100644
index 00000000000..baf2f19d97c
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/CMakeLists.txt
@@ -0,0 +1,36 @@
+add_executable(bnProc_gen_avx2
+               bnProc_gen_BG1_avx2.c
+               bnProc_gen_BG2_avx2.c
+               bnProcPc_gen_BG1_avx2.c
+               bnProcPc_gen_BG2_avx2.c
+               main.c)
+target_compile_options(bnProc_gen_avx2 PRIVATE -W -Wall -mavx2)
+
+#set(bnProc_headers
+#    bnProc/nrLDPC_bnProc_BG1_R13_AVX2.h
+#    bnProc/nrLDPC_bnProc_BG1_R23_AVX2.h
+#    bnProc/nrLDPC_bnProc_BG1_R89_AVX2.h
+#    bnProc/rLDPC_bnProc_BG2_R13_AVX2.h
+#    bnProc/rLDPC_bnProc_BG2_R15_AVX2.h
+#    bnProc/rLDPC_bnProc_BG2_R23_AVX2.h)
+#
+#set(bnProcPc_headers
+#    bnProcPc/rLDPC_bnProcPc_BG1_R13_AVX2.h
+#    bnProcPc/rLDPC_bnProcPc_BG1_R23_AVX2.h
+#    bnProcPc/rLDPC_bnProcPc_BG1_R89_AVX2.h
+#    bnProcPc/rLDPC_bnProcPc_BG2_R13_AVX2.h
+#    bnProcPc/rLDPC_bnProcPc_BG2_R15_AVX2.h
+#    bnProcPc/rLDPC_bnProcPc_BG2_R23_AVX2.h)
+
+add_custom_command(TARGET bnProc_gen_avx2 POST_BUILD
+  #OUTPUT ${bnProc_headers} ${bnProcPc_headers}
+  COMMAND ${CMAKE_COMMAND} -E make_directory bnProc
+  COMMAND ${CMAKE_COMMAND} -E make_directory bnProcPc
+  COMMAND bnProc_gen_avx2 .
+  DEPENDS bnProc_gen_avx2
+  COMMENT "Generating LDPC bnProc header files for AVX2"
+)
+
+add_library(bnProc_gen_avx2_HEADERS INTERFACE)
+target_include_directories(bnProc_gen_avx2_HEADERS INTERFACE ${CMAKE_CURRENT_BINARY_DIR})
+add_dependencies(bnProc_gen_avx2_HEADERS bnProc_gen_avx2)
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG1_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG1_avx2.c
new file mode 100644
index 00000000000..f51f607b885
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG1_avx2.c
@@ -0,0 +1,1789 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include "../../nrLDPCdecoder_defs.h"
+#include "../../nrLDPC_types.h"
+
+
+void nrLDPC_bnProcPc_BG1_generator_AVX2(const char *dir, int R)
+{
+  const char *ratestr[3]={"13","23","89"};
+
+  if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();}
+
+
+ // system("mkdir -p ../ldpc_gen_files");
+
+  char fname[FILENAME_MAX+1];
+  snprintf(fname, sizeof(fname), "%s/bnProcPc/nrLDPC_bnProcPc_BG1_R%s_AVX2.h", dir, ratestr[R]);
+  FILE *fd=fopen(fname,"w");
+  if (fd == NULL) {
+    printf("Cannot create file %s\n", fname);
+    abort();
+  }
+
+//  fprintf(fd,"#include <stdint.h>\n");
+//  fprintf(fd,"#include <immintrin.h>\n");
+
+  fprintf(fd,"static inline void nrLDPC_bnProcPc_BG1_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes,int8_t* llrRes ,  int8_t* llrProcBuf, uint16_t Z ) {\n",ratestr[R]);
+    const uint8_t*  lut_numBnInBnGroups;
+    const uint32_t* lut_startAddrBnGroups;
+    const uint16_t* lut_startAddrBnGroupsLlr;
+    if (R==0) {
+
+
+      lut_numBnInBnGroups =  lut_numBnInBnGroups_BG1_R13;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R13;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13;
+
+    }
+    else if (R==1){
+
+      lut_numBnInBnGroups =  lut_numBnInBnGroups_BG1_R23;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R23;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23;
+    }
+    else if (R==2) {
+
+      lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R89;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R89;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89;
+    }
+  else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();}
+        // Number of BNs in Groups
+//    uint32_t M;
+    //uint32_t M32rem;
+    //uint32_t i,j;
+    uint32_t k;
+    // Offset to each bit within a group in terms of 32 Byte
+    uint32_t cnOffsetInGroup;
+    uint8_t idxBnGroup = 0;
+
+    fprintf(fd,"   __m256i ymm0, ymm1, ymmRes0, ymmRes1;  \n");
+
+
+    fprintf(fd,"        __m128i* p_bnProcBuf; \n");
+    fprintf(fd,"        __m128i* p_llrProcBuf;\n");
+    fprintf(fd,"        __m256i* p_llrRes; \n");
+  //  fprintf(fd,"        __m256i* p_bnProcBufRes; \n");
+//    fprintf(fd,"        __m256i* p_llrProcBuf256; \n");
+    fprintf(fd,"         uint32_t M ;\n");
+
+
+    fprintf(fd,  "// Process group with 1 CNs \n");
+
+/*
+ // Process group with 1 CNs
+
+   // if (lut_numBnInBnGroups[0] > 0)
+   // {
+        // If elements in group move to next address
+       // idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[0] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+       // cnOffsetInGroup = (lut_numBnInBnGroups[0]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+       // fprintf(fd,"    p_bnProcBufRes     = (__m256i*) &bnProcBufRes    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+       //  fprintf(fd,"   p_llrProcBuf256   = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+         
+         fprintf(fd,"           p_bnProcBufRes[i] = p_llrProcBuf256[i];\n");
+       
+            // First 16 LLRs of first CN
+        fprintf(fd,"            ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"            ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"           ymmRes0 = _mm256_adds_epi16(ymm0, ymm1);\n");
+
+        
+            // Second 16 LLRs of first CN
+        fprintf(fd,"            ymm0    = _mm256_cvtepi8_epi16(p_bnProcBuf[j + 1 ]);\n");
+        fprintf(fd,"            ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j + 1 ]);\n");
+        fprintf(fd,"            ymmRes1 = _mm256_adds_epi16(ymm0, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"            ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+
+        fprintf(fd,"}\n");
+    //}
+*/  
+    // =====================================================================
+    // Process group with 2 CNs
+
+
+fprintf(fd,  "// Process group with 2 CNs \n");
+
+ // Process group with 2 CNs
+
+    if (lut_numBnInBnGroups[1] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[1] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"            ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"            ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf[j + 1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<2; k++)
+        {
+        fprintf(fd,"            ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"            ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"            ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "           ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"            ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"            ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"            ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"            ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"            ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+
+        fprintf(fd,"}\n");
+    }
+
+    // =====================================================================
+    // Process group with 3 CNs
+
+
+fprintf(fd,  "// Process group with 3 CNs \n");
+
+ // Process group with 3 CNs
+
+    if (lut_numBnInBnGroups[2] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[2] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<3; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+            }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+    // =====================================================================
+    // Process group with 4 CNs
+
+fprintf(fd,  "// Process group with 4 CNs \n");
+
+ // Process group with 4 CNs
+
+    if (lut_numBnInBnGroups[3] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[3] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<4; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 5 CNs
+
+fprintf(fd,  "// Process group with 5 CNs \n");
+
+ // Process group with 5 CNs
+
+    if (lut_numBnInBnGroups[4] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[4] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<5; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+   // =====================================================================
+    // Process group with 6 CNs
+
+fprintf(fd,  "// Process group with 6 CNs \n");
+
+ // Process group with 6 CNs
+
+    if (lut_numBnInBnGroups[5] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[5] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<6; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 7 CNs
+
+fprintf(fd,  "// Process group with 7 CNs \n");
+
+ // Process group with 7 CNs
+
+    if (lut_numBnInBnGroups[6] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[6] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<7; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        //fprintf(fd,"         (__m256i*) &llrRes[%d + i]    = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 );
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 8 CNs
+
+fprintf(fd,  "// Process group with 8 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[7] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[7] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<8; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        //fprintf(fd,"         (__m256i*) &llrRes[%d + i]    = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 );
+
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+   // =====================================================================
+    // Process group with 9 CNs
+
+fprintf(fd,  "// Process group with 9 CNs \n");
+
+ // Process group with 9 CNs
+
+    if (lut_numBnInBnGroups[8] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[8] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<9; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        //fprintf(fd,"         (__m256i*) &llrRes[%d + i]    = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 );
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 10 CNs
+
+fprintf(fd,  "// Process group with 10 CNs \n");
+
+ // Process group with 10 CNs
+
+    if (lut_numBnInBnGroups[9] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[9] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<10; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+    // =====================================================================
+
+fprintf(fd,  "// Process group with 11 CNs \n");
+
+
+
+ // Process group with 2 CNs
+
+    if (lut_numBnInBnGroups[10] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[10] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"            ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"            ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<11; k++)
+        {
+        fprintf(fd,"            ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"            ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"            ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "           ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"            ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"            ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"            ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"            ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"            ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+      // =====================================================================
+    // Process group with 2 CNs
+
+
+fprintf(fd,  "// Process group with 12 CNs \n");
+
+ // Process group with 2 CNs
+
+    if (lut_numBnInBnGroups[11] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[11] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"            ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"            ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<12; k++)
+        {
+        fprintf(fd,"            ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"            ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"            ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "           ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"            ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"            ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"            ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"            ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"            ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+    // =====================================================================
+    // Process group with 13 CNs
+
+
+fprintf(fd,  "// Process group with 13 CNs \n");
+
+ // Process group with 3 CNs
+
+    if (lut_numBnInBnGroups[12] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[12] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<13; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+            }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+    // =====================================================================
+    // Process group with 4 CNs
+
+fprintf(fd,  "// Process group with 14 CNs \n");
+
+ // Process group with 4 CNs
+
+    if (lut_numBnInBnGroups[13] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[13] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<14; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 5 CNs
+
+fprintf(fd,  "// Process group with 15 CNs \n");
+
+ // Process group with 5 CNs
+
+    if (lut_numBnInBnGroups[14] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[14] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<15; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+         fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+   // =====================================================================
+    // Process group with 6 CNs
+
+fprintf(fd,  "// Process group with 16 CNs \n");
+
+ // Process group with 6 CNs
+
+    if (lut_numBnInBnGroups[15] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[15] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<16; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 17 CNs
+
+fprintf(fd,  "// Process group with 17 CNs \n");
+
+ // Process group with 17 CNs
+
+    if (lut_numBnInBnGroups[16] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[16] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<17; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 18 CNs
+
+fprintf(fd,  "// Process group with 18 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[17] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[17] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<18; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+   // =====================================================================
+    // Process group with 9 CNs
+
+fprintf(fd,  "// Process group with 19 CNs \n");
+
+ // Process group with 9 CNs
+
+    if (lut_numBnInBnGroups[18] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[18] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<19; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 20 CNs
+
+fprintf(fd,  "// Process group with 20 CNs \n");
+
+ // Process group with 20 CNs
+
+    if (lut_numBnInBnGroups[19] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[19] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<20; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+
+
+    // =====================================================================
+
+fprintf(fd,  "// Process group with 21 CNs \n");
+
+
+
+ // Process group with 2 CNs
+
+    if (lut_numBnInBnGroups[20] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[20] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"            ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"            ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<21; k++)
+        {
+        fprintf(fd,"            ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"            ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"            ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "           ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"            ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"            ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"            ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"            ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"            ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+      // =====================================================================
+    // Process group with 2 CNs
+
+
+fprintf(fd,  "// Process group with 22 CNs \n");
+
+ // Process group with 2 CNs
+
+    if (lut_numBnInBnGroups[21] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[21] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"            ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"            ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<22; k++)
+        {
+        fprintf(fd,"            ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"            ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"            ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "           ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"            ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"            ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"            ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"            ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"            ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+         fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+    // =====================================================================
+    // Process group with 13 CNs
+
+
+fprintf(fd,  "// Process group with <23 CNs \n");
+
+ // Process group with 3 CNs
+
+    if (lut_numBnInBnGroups[22] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[22] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<23; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+    // =====================================================================
+    // Process group with 4 CNs
+
+fprintf(fd,  "// Process group with 24 CNs \n");
+
+ // Process group with 4 CNs
+
+    if (lut_numBnInBnGroups[23] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[23] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<24; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 5 CNs
+
+fprintf(fd,  "// Process group with 25 CNs \n");
+
+ // Process group with 5 CNs
+
+    if (lut_numBnInBnGroups[24] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[24] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<25; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+   // =====================================================================
+    // Process group with 6 CNs
+
+fprintf(fd,  "// Process group with 26 CNs \n");
+
+ // Process group with 6 CNs
+
+    if (lut_numBnInBnGroups[25] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[25] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<26; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 17 CNs
+
+fprintf(fd,  "// Process group with 27 CNs \n");
+
+ // Process group with 17 CNs
+
+    if (lut_numBnInBnGroups[26] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[26] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<27; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 18 CNs
+
+fprintf(fd,  "// Process group with 28 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[27] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[27] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<28; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+   // =====================================================================
+    // Process group with 9 CNs
+
+fprintf(fd,  "// Process group with 29 CNs \n");
+
+ // Process group with 9 CNs
+
+    if (lut_numBnInBnGroups[28] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[28] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<29; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 20 CNs
+
+fprintf(fd,  "// Process group with 30 CNs \n");
+
+ // Process group with 20 CNs
+
+    if (lut_numBnInBnGroups[29] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[29] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<30; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+    fprintf(fd,"}\n");
+  fclose(fd);
+}//end of the function  nrLDPC_bnProcPc_BG1
+
+
+
+
+
+
+
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG2_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG2_avx2.c
new file mode 100644
index 00000000000..c2c96280e9a
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG2_avx2.c
@@ -0,0 +1,1789 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+#include <stdio.h>
+#include <stdint.h>
+#include <immintrin.h>
+#include "../../nrLDPCdecoder_defs.h"
+#include "../../nrLDPC_types.h"
+
+
+void nrLDPC_bnProcPc_BG2_generator_AVX2(const char *dir, int R)
+{
+  const char *ratestr[3]={"15","13","23"};
+
+  if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();}
+
+
+ // system("mkdir -p ../ldpc_gen_files");
+
+  char fname[FILENAME_MAX+1];
+  snprintf(fname, sizeof(fname), "%s/bnProcPc/nrLDPC_bnProcPc_BG2_R%s_AVX2.h", dir, ratestr[R]);
+  FILE *fd=fopen(fname,"w");
+  if (fd == NULL) {
+    printf("Cannot create file %s\n", fname);
+    abort();
+  }
+
+//  fprintf(fd,"#include <stdint.h>\n");
+  //fprintf(fd,"#include <immintrin.h>\n");
+
+  fprintf(fd,"static inline void nrLDPC_bnProcPc_BG2_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes,int8_t* llrRes ,  int8_t* llrProcBuf, uint16_t Z  ) {\n",ratestr[R]);
+    const uint8_t*  lut_numBnInBnGroups;
+    const uint32_t* lut_startAddrBnGroups;
+    const uint16_t* lut_startAddrBnGroupsLlr;
+    if (R==0) {
+
+
+      lut_numBnInBnGroups =  lut_numBnInBnGroups_BG2_R15;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R15;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R15;
+
+    }
+    else if (R==1){
+
+      lut_numBnInBnGroups =  lut_numBnInBnGroups_BG2_R13;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R13;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R13;
+    }
+    else if (R==2) {
+
+      lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R23;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R23;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R23;
+    }
+  else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();}
+
+
+
+
+    uint32_t k;
+    // Offset to each bit within a group in terms of 32 Byte
+    uint32_t cnOffsetInGroup;
+    uint8_t idxBnGroup = 0;
+
+    fprintf(fd,"   __m256i ymm0, ymm1, ymmRes0, ymmRes1;  \n");
+
+
+    fprintf(fd,"        __m128i* p_bnProcBuf; \n");
+    fprintf(fd,"        __m128i* p_llrProcBuf;\n");
+    fprintf(fd,"        __m256i* p_llrRes; \n");
+   // fprintf(fd,"        __m256i* p_bnProcBufRes; \n");
+   // fprintf(fd,"        __m256i* p_llrProcBuf256; \n");
+    fprintf(fd,"         uint32_t M ;\n");
+
+
+    fprintf(fd,  "// Process group with 1 CNs \n");
+/*
+
+ // Process group with 1 CNs
+
+   // if (lut_numBnInBnGroups[0] > 0)
+   // {
+        // If elements in group move to next address
+       // idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[0] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+       // cnOffsetInGroup = (lut_numBnInBnGroups[0]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_bnProcBufRes     = (__m256i*) &bnProcBufRes    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+         fprintf(fd,"   p_llrProcBuf256   = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+
+         fprintf(fd,"           p_bnProcBufRes[i] = p_llrProcBuf256[i];\n");
+
+            // First 16 LLRs of first CN
+        fprintf(fd,"            ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"            ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"           ymmRes0 = _mm256_adds_epi16(ymm0, ymm1);\n");
+
+
+            // Second 16 LLRs of first CN
+        fprintf(fd,"            ymm0    = _mm256_cvtepi8_epi16(p_bnProcBuf[j + 1 ]);\n");
+        fprintf(fd,"            ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j + 1 ]);\n");
+        fprintf(fd,"            ymmRes1 = _mm256_adds_epi16(ymm0, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"            ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+
+        fprintf(fd,"}\n");
+    //}
+  */    // =====================================================================
+    // Process group with 2 CNs
+
+
+fprintf(fd,  "// Process group with 2 CNs \n");
+
+ // Process group with 2 CNs
+
+    if (lut_numBnInBnGroups[1] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[1] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"            ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"            ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf[j + 1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<2; k++)
+        {
+        fprintf(fd,"            ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"            ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"            ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "           ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"            ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"            ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"            ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"            ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"            ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+
+        fprintf(fd,"}\n");
+    }
+
+    // =====================================================================
+    // Process group with 3 CNs
+
+
+fprintf(fd,  "// Process group with 3 CNs \n");
+
+ // Process group with 3 CNs
+
+    if (lut_numBnInBnGroups[2] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[2] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<3; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+            }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+    // =====================================================================
+    // Process group with 4 CNs
+
+fprintf(fd,  "// Process group with 4 CNs \n");
+
+ // Process group with 4 CNs
+
+    if (lut_numBnInBnGroups[3] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[3] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<4; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 5 CNs
+
+fprintf(fd,  "// Process group with 5 CNs \n");
+
+ // Process group with 5 CNs
+
+    if (lut_numBnInBnGroups[4] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[4] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<5; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+   // =====================================================================
+    // Process group with 6 CNs
+
+fprintf(fd,  "// Process group with 6 CNs \n");
+
+ // Process group with 6 CNs
+
+    if (lut_numBnInBnGroups[5] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[5] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<6; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 7 CNs
+
+fprintf(fd,  "// Process group with 7 CNs \n");
+
+ // Process group with 7 CNs
+
+    if (lut_numBnInBnGroups[6] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[6] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<7; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        //fprintf(fd,"         (__m256i*) &llrRes[%d + i]    = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 );
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 8 CNs
+
+fprintf(fd,  "// Process group with 8 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[7] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[7] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<8; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        //fprintf(fd,"         (__m256i*) &llrRes[%d + i]    = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 );
+
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+   // =====================================================================
+    // Process group with 9 CNs
+
+fprintf(fd,  "// Process group with 9 CNs \n");
+
+ // Process group with 9 CNs
+
+    if (lut_numBnInBnGroups[8] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[8] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<9; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        //fprintf(fd,"         (__m256i*) &llrRes[%d + i]    = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 );
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 10 CNs
+
+fprintf(fd,  "// Process group with 10 CNs \n");
+
+ // Process group with 10 CNs
+
+    if (lut_numBnInBnGroups[9] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[9] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<10; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+    // =====================================================================
+
+fprintf(fd,  "// Process group with 11 CNs \n");
+
+
+
+ // Process group with 2 CNs
+
+    if (lut_numBnInBnGroups[10] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[10] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"            ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"            ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<11; k++)
+        {
+        fprintf(fd,"            ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"            ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"            ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "           ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"            ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"            ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"            ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"            ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"            ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+      // =====================================================================
+    // Process group with 2 CNs
+
+
+fprintf(fd,  "// Process group with 12 CNs \n");
+
+ // Process group with 2 CNs
+
+    if (lut_numBnInBnGroups[11] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[11] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"            ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"            ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<12; k++)
+        {
+        fprintf(fd,"            ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"            ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"            ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "           ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"            ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"            ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"            ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"            ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"            ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+    // =====================================================================
+    // Process group with 13 CNs
+
+
+fprintf(fd,  "// Process group with 13 CNs \n");
+
+ // Process group with 3 CNs
+
+    if (lut_numBnInBnGroups[12] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[12] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<13; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+            }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+    // =====================================================================
+    // Process group with 4 CNs
+
+fprintf(fd,  "// Process group with 14 CNs \n");
+
+ // Process group with 4 CNs
+
+    if (lut_numBnInBnGroups[13] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[13] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<14; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 5 CNs
+
+fprintf(fd,  "// Process group with 15 CNs \n");
+
+ // Process group with 5 CNs
+
+    if (lut_numBnInBnGroups[14] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[14] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<15; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+         fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+   // =====================================================================
+    // Process group with 6 CNs
+
+fprintf(fd,  "// Process group with 16 CNs \n");
+
+ // Process group with 6 CNs
+
+    if (lut_numBnInBnGroups[15] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[15] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<16; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 17 CNs
+
+fprintf(fd,  "// Process group with 17 CNs \n");
+
+ // Process group with 17 CNs
+
+    if (lut_numBnInBnGroups[16] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[16] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<17; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 18 CNs
+
+fprintf(fd,  "// Process group with 18 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[17] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[17] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<18; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+   // =====================================================================
+    // Process group with 9 CNs
+
+fprintf(fd,  "// Process group with 19 CNs \n");
+
+ // Process group with 9 CNs
+
+    if (lut_numBnInBnGroups[18] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[18] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<19; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 20 CNs
+
+fprintf(fd,  "// Process group with 20 CNs \n");
+
+ // Process group with 20 CNs
+
+    if (lut_numBnInBnGroups[19] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[19] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<20; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+
+
+    // =====================================================================
+
+fprintf(fd,  "// Process group with 21 CNs \n");
+
+
+
+ // Process group with 2 CNs
+
+    if (lut_numBnInBnGroups[20] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[20] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"            ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"            ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<21; k++)
+        {
+        fprintf(fd,"            ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"            ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"            ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "           ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"            ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"            ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"            ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"            ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"            ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+      // =====================================================================
+    // Process group with 2 CNs
+
+
+fprintf(fd,  "// Process group with 22 CNs \n");
+
+ // Process group with 2 CNs
+
+    if (lut_numBnInBnGroups[21] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[21] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"            ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"            ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<22; k++)
+        {
+        fprintf(fd,"            ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"            ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"            ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "           ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"            ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"            ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"            ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"            ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"            ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+         fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+    // =====================================================================
+    // Process group with 13 CNs
+
+
+fprintf(fd,  "// Process group with <23 CNs \n");
+
+ // Process group with 3 CNs
+
+    if (lut_numBnInBnGroups[22] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[22] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<23; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+    // =====================================================================
+    // Process group with 4 CNs
+
+fprintf(fd,  "// Process group with 24 CNs \n");
+
+ // Process group with 4 CNs
+
+    if (lut_numBnInBnGroups[23] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[23] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<24; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 5 CNs
+
+fprintf(fd,  "// Process group with 25 CNs \n");
+
+ // Process group with 5 CNs
+
+    if (lut_numBnInBnGroups[24] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[24] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<25; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+   // =====================================================================
+    // Process group with 6 CNs
+
+fprintf(fd,  "// Process group with 26 CNs \n");
+
+ // Process group with 6 CNs
+
+    if (lut_numBnInBnGroups[25] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[25] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<26; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 17 CNs
+
+fprintf(fd,  "// Process group with 27 CNs \n");
+
+ // Process group with 17 CNs
+
+    if (lut_numBnInBnGroups[26] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[26] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<27; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 18 CNs
+
+fprintf(fd,  "// Process group with 28 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[27] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[27] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<28; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+   // =====================================================================
+    // Process group with 9 CNs
+
+fprintf(fd,  "// Process group with 29 CNs \n");
+
+ // Process group with 9 CNs
+
+    if (lut_numBnInBnGroups[28] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[28] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<29; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 20 CNs
+
+fprintf(fd,  "// Process group with 30 CNs \n");
+
+ // Process group with 20 CNs
+
+    if (lut_numBnInBnGroups[29] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[29] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m128i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m128i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m256i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<30; k++)
+        {
+        fprintf(fd,"        ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        ymm0    = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n");
+
+        fprintf(fd,"        ymm1    = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n");
+            // ymm0     = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]]
+            // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+    fprintf(fd,"}\n");
+  fclose(fd);
+}//end of the function  nrLDPC_bnProcPc_BG2
+
+
+
+
+
+
+
+
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c
new file mode 100644
index 00000000000..972a5720ca4
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c
@@ -0,0 +1,1112 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <immintrin.h>
+#include "../../nrLDPCdecoder_defs.h"
+#include "../../nrLDPC_types.h"
+
+
+void nrLDPC_bnProc_BG1_generator_AVX2(const char *dir, int R)
+{
+  const char *ratestr[3]={"13","23","89"};
+
+  if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();}
+
+
+ // system("mkdir -p ../ldpc_gen_files");
+
+  char fname[FILENAME_MAX+1];
+  snprintf(fname, sizeof(fname), "%s/bnProc/nrLDPC_bnProc_BG1_R%s_AVX2.h", dir, ratestr[R]);
+  FILE *fd=fopen(fname,"w");
+  if (fd == NULL) {
+    printf("Cannot create file %s\n", fname);
+    abort();
+  }
+
+  //fprintf(fd,"#include <stdint.h>\n");
+  //fprintf(fd,"#include <immintrin.h>\n");
+
+
+    fprintf(fd,"static inline void nrLDPC_bnProc_BG1_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes,  int8_t* llrRes, uint16_t Z ) {\n", ratestr[R]);
+
+    const uint8_t*  lut_numBnInBnGroups;
+    const uint32_t* lut_startAddrBnGroups;
+    const uint16_t* lut_startAddrBnGroupsLlr;
+    if (R==0) {
+
+
+      lut_numBnInBnGroups =  lut_numBnInBnGroups_BG1_R13;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R13;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13;
+
+    }
+    else if (R==1){
+
+      lut_numBnInBnGroups =  lut_numBnInBnGroups_BG1_R23;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R23;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23;
+    }
+    else if (R==2) {
+
+      lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R89;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R89;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89;
+    }
+  else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();}
+
+
+    //uint32_t M;
+    //uint32_t M32rem;
+   // uint32_t i;
+    uint32_t k;
+    // Offset to each bit within a group in terms of 32 Byte
+    uint32_t cnOffsetInGroup;
+    uint8_t idxBnGroup = 0;
+    fprintf(fd,"        uint32_t M, i; \n");
+
+
+
+// =====================================================================
+    // Process group with 1 CN
+    // Already done in bnProcBufPc
+
+    // =====================================================================
+
+fprintf(fd,  "// Process group with 2 CNs \n");
+
+    if (lut_numBnInBnGroups[1] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs or parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[1] );
+
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<2; k++)
+        {
+    
+          // Loop over BNs
+        fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+
+
+
+    }
+
+    // =====================================================================
+
+
+fprintf(fd,  "// Process group with 3 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[2] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+         fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[2] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        //fprintf(fd,"    ((__m256i*) bnProcBuf)     = ((__m256i*) &bnProcBuf)    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        
+
+        for (k=0; k<3; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+        }
+    }
+
+
+
+    // =====================================================================
+
+
+fprintf(fd,  "// Process group with 4 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[3] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[3] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+      
+    
+
+        for (k=0; k<4; k++)
+        {
+  
+          // Loop over BNs
+        fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",((lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup),(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), ((lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup));
+
+         fprintf(fd,"}\n");
+        }
+    }
+
+
+   // =====================================================================
+
+
+    fprintf(fd,  "// Process group with 5 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[4] > 0)
+    {
+    // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[4] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<5; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 6 CNs \n");
+
+ // Process group with 6 CNs
+
+    if (lut_numBnInBnGroups[5] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[5] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<6; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 7 CNs \n");
+
+ // Process group with 7 CNs
+
+    if (lut_numBnInBnGroups[6] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[6] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<7; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 8 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[7] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[7] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<8; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 9 CNs \n");
+
+ // Process group with 9 CNs
+
+    if (lut_numBnInBnGroups[8] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[8] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<9; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+fprintf(fd,  "// Process group with 10 CNs \n");
+
+ // Process group with 10 CNs
+
+    if (lut_numBnInBnGroups[9] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[9] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<10; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+    // =====================================================================
+
+fprintf(fd,  "// Process group with 11 CNs \n");
+
+    if (lut_numBnInBnGroups[10] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[10] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<11; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+      // =====================================================================
+
+
+
+fprintf(fd,  "// Process group with 12 CNs \n");
+
+
+    if (lut_numBnInBnGroups[11] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[11] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<12; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+    // =====================================================================
+
+
+
+fprintf(fd,  "// Process group with 13 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[12] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[12] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<13; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+    // =====================================================================
+
+
+fprintf(fd,  "// Process group with 14 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[13] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[13] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<14; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 15 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[14] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[14] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<15; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 16 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[15] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[15] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<16; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+    // Process group with 17 CNs
+
+fprintf(fd,  "// Process group with 17 CNs \n");
+
+ // Process group with 17 CNs
+
+    if (lut_numBnInBnGroups[16] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[16] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<17; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 18 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[17] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[17] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<18; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 19 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[18] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[18] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<19; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 20 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[19] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[19] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<20; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+
+
+    // =====================================================================
+
+fprintf(fd,  "// Process group with 21 CNs \n");
+
+
+
+
+
+    if (lut_numBnInBnGroups[20] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[20] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<21; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+      // =====================================================================
+
+
+
+fprintf(fd,  "// Process group with 22 CNs \n");
+
+
+    if (lut_numBnInBnGroups[21] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[21] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<22; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+    // =====================================================================
+
+
+
+fprintf(fd,  "// Process group with <23 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[22] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[22] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<23; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+    // =====================================================================
+
+
+fprintf(fd,  "// Process group with 24 CNs \n");
+
+ // Process group with 4 CNs
+
+    if (lut_numBnInBnGroups[23] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[23] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<24; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 25 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[24] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[24] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<25; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 26 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[25] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[25] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<26; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 27 CNs \n");
+
+ // Process group with 17 CNs
+
+    if (lut_numBnInBnGroups[26] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[26] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<27; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 28 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[27] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[27] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<28; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+   // =====================================================================
+
+fprintf(fd,  "// Process group with 29 CNs \n");
+
+ // Process group with 9 CNs
+
+    if (lut_numBnInBnGroups[28] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[28] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<29; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+fprintf(fd,  "// Process group with 30 CNs \n");
+
+ // Process group with 20 CNs
+
+    if (lut_numBnInBnGroups[29] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[29] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<30; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+    fprintf(fd,"}\n");
+  fclose(fd);
+}//end of the function  nrLDPC_bnProc_BG1
+
+
+
+
+
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c
new file mode 100644
index 00000000000..c23fd0b5a75
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c
@@ -0,0 +1,1108 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include "../../nrLDPCdecoder_defs.h"
+#include "../../nrLDPC_types.h"
+
+
+
+void nrLDPC_bnProc_BG2_generator_AVX2(const char *dir, int R)
+{
+  const char *ratestr[3]={"15","13","23"};
+
+  if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();}
+
+
+ // system("mkdir -p ../ldpc_gen_files");
+
+  char fname[FILENAME_MAX+1];
+  snprintf(fname, sizeof(fname), "%s/bnProc/nrLDPC_bnProc_BG2_R%s_AVX2.h", dir, ratestr[R]);
+  FILE *fd=fopen(fname,"w");
+  if (fd == NULL) {
+    printf("Cannot create file %s\n", fname);
+    abort();
+  }
+
+
+
+    fprintf(fd,"static inline void nrLDPC_bnProc_BG2_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes,  int8_t* llrRes, uint16_t Z  ) {\n",ratestr[R]);
+    const uint8_t*  lut_numBnInBnGroups;
+    const uint32_t* lut_startAddrBnGroups;
+    const uint16_t* lut_startAddrBnGroupsLlr;
+    if (R==0) {
+
+
+      lut_numBnInBnGroups =  lut_numBnInBnGroups_BG2_R15;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R15;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R15;
+
+    }
+    else if (R==1){
+
+      lut_numBnInBnGroups =  lut_numBnInBnGroups_BG2_R13;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R13;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R13;
+    }
+    else if (R==2) {
+
+      lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R23;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R23;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R23;
+    }
+  else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();}
+
+
+    //uint32_t M;
+    //uint32_t M32rem;
+   // uint32_t i;
+    uint32_t k;
+    // Offset to each bit within a group in terms of 32 Byte
+    uint32_t cnOffsetInGroup;
+    uint8_t idxBnGroup = 0;
+
+
+
+     fprintf(fd,"        uint32_t M, i; \n");
+
+
+
+// =====================================================================
+    // Process group with 1 CN
+    // Already done in bnProcBufPc
+
+    // =====================================================================
+
+fprintf(fd,  "// Process group with 2 CNs \n");
+
+    if (lut_numBnInBnGroups[1] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs or parallel processing
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[1] );
+
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<2; k++)
+        {
+    
+          // Loop over BNs
+        fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+
+
+
+    }
+
+    // =====================================================================
+
+
+fprintf(fd,  "// Process group with 3 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[2] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+         fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[2] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        //fprintf(fd,"    ((__m256i*) bnProcBuf)     = ((__m256i*) &bnProcBuf)    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        
+
+        for (k=0; k<3; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+        }
+    }
+
+
+
+    // =====================================================================
+
+
+fprintf(fd,  "// Process group with 4 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[3] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[3] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+      
+    
+
+        for (k=0; k<4; k++)
+        {
+  
+          // Loop over BNs
+        fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",((lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup),(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), ((lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup));
+
+         fprintf(fd,"}\n");
+        }
+    }
+
+
+   // =====================================================================
+
+
+    fprintf(fd,  "// Process group with 5 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[4] > 0)
+    {
+    // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[4] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<5; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 6 CNs \n");
+
+ // Process group with 6 CNs
+
+    if (lut_numBnInBnGroups[5] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[5] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<6; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 7 CNs \n");
+
+ // Process group with 7 CNs
+
+    if (lut_numBnInBnGroups[6] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[6] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<7; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 8 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[7] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[7] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<8; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 9 CNs \n");
+
+ // Process group with 9 CNs
+
+    if (lut_numBnInBnGroups[8] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[8] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<9; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+fprintf(fd,  "// Process group with 10 CNs \n");
+
+ // Process group with 10 CNs
+
+    if (lut_numBnInBnGroups[9] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[9] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<10; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+    // =====================================================================
+
+fprintf(fd,  "// Process group with 11 CNs \n");
+
+    if (lut_numBnInBnGroups[10] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[10] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<11; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+      // =====================================================================
+
+
+
+fprintf(fd,  "// Process group with 12 CNs \n");
+
+
+    if (lut_numBnInBnGroups[11] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[11] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<12; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+    // =====================================================================
+
+
+
+fprintf(fd,  "// Process group with 13 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[12] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[12] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<13; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+    // =====================================================================
+
+
+fprintf(fd,  "// Process group with 14 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[13] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[13] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<14; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 15 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[14] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[14] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<15; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 16 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[15] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[15] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<16; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+    // Process group with 17 CNs
+
+fprintf(fd,  "// Process group with 17 CNs \n");
+
+ // Process group with 17 CNs
+
+    if (lut_numBnInBnGroups[16] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[16] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<17; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 18 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[17] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[17] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<18; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 19 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[18] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[18] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<19; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 20 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[19] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[19] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<20; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+
+
+    // =====================================================================
+
+fprintf(fd,  "// Process group with 21 CNs \n");
+
+
+
+
+
+    if (lut_numBnInBnGroups[20] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[20] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<21; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+      // =====================================================================
+
+
+
+fprintf(fd,  "// Process group with 22 CNs \n");
+
+
+    if (lut_numBnInBnGroups[21] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[21] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<22; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+    // =====================================================================
+
+
+
+fprintf(fd,  "// Process group with <23 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[22] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[22] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<23; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+    // =====================================================================
+
+
+fprintf(fd,  "// Process group with 24 CNs \n");
+
+ // Process group with 4 CNs
+
+    if (lut_numBnInBnGroups[23] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[23] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<24; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 25 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[24] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[24] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<25; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 26 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[25] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[25] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<26; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 27 CNs \n");
+
+ // Process group with 17 CNs
+
+    if (lut_numBnInBnGroups[26] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[26] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<27; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 28 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[27] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[27] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<28; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+   // =====================================================================
+
+fprintf(fd,  "// Process group with 29 CNs \n");
+
+ // Process group with 9 CNs
+
+    if (lut_numBnInBnGroups[28] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[28] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<29; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+fprintf(fd,  "// Process group with 30 CNs \n");
+
+ // Process group with 20 CNs
+
+    if (lut_numBnInBnGroups[29] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[29] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<30; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m256i*)bnProcBufRes)[%d + i ] = _mm256_subs_epi8(((__m256i*)llrRes)[%d + i ], ((__m256i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+    fprintf(fd,"}\n");
+  fclose(fd);
+}//end of the function  nrLDPC_bnProc_BG2
+
+
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/main.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/main.c
new file mode 100644
index 00000000000..9e5f9e2bb88
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/main.c
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+#include <stdio.h>
+#include <stdint.h>
+#define NB_R  3
+void nrLDPC_bnProc_BG1_generator_AVX2(const char*, int);
+void nrLDPC_bnProc_BG2_generator_AVX2(const char*, int);
+void nrLDPC_bnProcPc_BG1_generator_AVX2(const char*, int);
+void nrLDPC_bnProcPc_BG2_generator_AVX2(const char*, int);
+
+const char *__asan_default_options()
+{
+  /* don't do leak checking in nr_ulsim, creates problems in the CI */
+  return "detect_leaks=0";
+}
+
+int main(int argc, char *argv[])
+{
+  if (argc != 2) {
+    fprintf(stderr, "usage: %s <output-dir>\n", argv[0]);
+    return 1;
+  }
+  const char *dir = argv[1];
+
+  int R[NB_R]={0,1,2};
+  for(int i=0; i<NB_R;i++){
+    nrLDPC_bnProc_BG1_generator_AVX2(dir, R[i]);
+    nrLDPC_bnProc_BG2_generator_AVX2(dir, R[i]);
+
+    nrLDPC_bnProcPc_BG1_generator_AVX2(dir, R[i]);
+    nrLDPC_bnProcPc_BG2_generator_AVX2(dir, R[i]);
+  }
+
+  return(0);
+}
+
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/CMakeLists.txt b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/CMakeLists.txt
new file mode 100644
index 00000000000..f0b3d49b1e6
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/CMakeLists.txt
@@ -0,0 +1,36 @@
+add_executable(bnProc_gen_avx512
+               bnProc_gen_BG1_avx512.c
+               bnProc_gen_BG2_avx512.c
+               bnProcPc_gen_BG1_avx512.c
+               bnProcPc_gen_BG2_avx512.c
+               main.c)
+target_compile_options(bnProc_gen_avx512 PRIVATE -W -Wall -mavx2)
+
+#set(bnProc_avx512_headers
+#    bnProc_avx512/rLDPC_bnProc_BG1_R13_AVX512.h
+#    bnProc_avx512/rLDPC_bnProc_BG1_R23_AVX512.h
+#    bnProc_avx512/rLDPC_bnProc_BG1_R89_AVX512.h
+#    bnProc_avx512/rLDPC_bnProc_BG2_R13_AVX512.h
+#    bnProc_avx512/rLDPC_bnProc_BG2_R15_AVX512.h
+#    bnProc_avx512/rLDPC_bnProc_BG2_R23_AVX512.h)
+#
+#set(bnProcPc_avx512_headers
+#    bnProcPc_avx512/rLDPC_bnProcPc_BG1_R13_AVX512.h
+#    bnProcPc_avx512/rLDPC_bnProcPc_BG1_R23_AVX512.h
+#    bnProcPc_avx512/rLDPC_bnProcPc_BG1_R89_AVX512.h
+#    bnProcPc_avx512/rLDPC_bnProcPc_BG2_R13_AVX512.h
+#    bnProcPc_avx512/rLDPC_bnProcPc_BG2_R15_AVX512.h
+#    bnProcPc_avx512/rLDPC_bnProcPc_BG2_R23_AVX512.h)
+
+add_custom_command(TARGET bnProc_gen_avx512 POST_BUILD
+  #OUTPUT ${bnProc_avx512_headers} ${bnProcPc_avx512_headers}
+  COMMAND ${CMAKE_COMMAND} -E make_directory bnProc_avx512
+  COMMAND ${CMAKE_COMMAND} -E make_directory bnProcPc_avx512
+  COMMAND bnProc_gen_avx512 .
+  DEPENDS bnProc_gen_avx512
+  COMMENT "Generating LDPC bnProc header files for AVX512"
+)
+
+add_library(bnProc_gen_avx512_HEADERS INTERFACE)
+target_include_directories(bnProc_gen_avx512_HEADERS INTERFACE ${CMAKE_CURRENT_BINARY_DIR})
+add_dependencies(bnProc_gen_avx512_HEADERS bnProc_gen_avx512)
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProcPc_gen_BG1_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProcPc_gen_BG1_avx512.c
new file mode 100644
index 00000000000..2bbca1591f7
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProcPc_gen_BG1_avx512.c
@@ -0,0 +1,1790 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <immintrin.h>
+#include "../../nrLDPCdecoder_defs.h"
+#include "../../nrLDPC_types.h"
+
+
+void nrLDPC_bnProcPc_BG1_generator_AVX512(const char *dir, int R)
+{
+  const char *ratestr[3]={"13","23","89"};
+
+  if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();}
+
+
+
+
+  char fname[FILENAME_MAX+1];
+  snprintf(fname, sizeof(fname), "%s/bnProcPc_avx512/nrLDPC_bnProcPc_BG1_R%s_AVX512.h", dir, ratestr[R]);
+  FILE *fd=fopen(fname,"w");
+  if (fd == NULL) {
+    printf("Cannot create file %s\n", fname);
+    abort();
+  }
+
+
+
+  fprintf(fd,"static inline void nrLDPC_bnProcPc_BG1_R%s_AVX512(int8_t* bnProcBuf,int8_t* llrRes ,  int8_t* llrProcBuf, uint16_t Z ) {\n",ratestr[R]);
+    const uint8_t*  lut_numBnInBnGroups;
+    const uint32_t* lut_startAddrBnGroups;
+    const uint16_t* lut_startAddrBnGroupsLlr;
+    if (R==0) {
+
+
+      lut_numBnInBnGroups =  lut_numBnInBnGroups_BG1_R13;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R13;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13;
+
+    }
+    else if (R==1){
+
+      lut_numBnInBnGroups =  lut_numBnInBnGroups_BG1_R23;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R23;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23;
+    }
+    else if (R==2) {
+
+      lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R89;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R89;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89;
+    }
+  else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();}
+        // Number of BNs in Groups
+//    uint32_t M;
+    //uint32_t M32rem;
+    //uint32_t i,j;
+    uint32_t k;
+    // Offset to each bit within a group in terms of 32 Byte
+    uint32_t cnOffsetInGroup;
+    uint8_t idxBnGroup = 0;
+
+    fprintf(fd,"   __m512i zmm0, zmm1, zmmRes0, zmmRes1;  \n");
+
+
+    fprintf(fd,"        __m256i* p_bnProcBuf; \n");
+    fprintf(fd,"        __m256i* p_llrProcBuf;\n");
+    fprintf(fd,"        __m512i* p_llrRes; \n");
+    fprintf(fd,"         uint32_t M ;\n");
+
+
+fprintf(fd,  "// Process group with 1 CNs \n");
+
+
+ // Process group with 2 CNs
+
+    if (lut_numBnInBnGroups[0] > 0)
+    {
+        // If elements in group move to next address
+       // idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[0] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[0]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"            zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"            zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[j + 1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<1; k++)
+        {
+        fprintf(fd,"            zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"            zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"            zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "           zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"            zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"            zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"            zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"            zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"            zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+
+        fprintf(fd,"}\n");
+    }
+      // =====================================================================
+    // Process group with 2 CNs
+
+
+fprintf(fd,  "// Process group with 2 CNs \n");
+
+ // Process group with 2 CNs
+
+    if (lut_numBnInBnGroups[1] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[1] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"            zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"            zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf[j + 1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<2; k++)
+        {
+        fprintf(fd,"            zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"            zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"            zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "           zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"            zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"            zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"            zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"            zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"            zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+
+        fprintf(fd,"}\n");
+    }
+
+    // =====================================================================
+    // Process group with 3 CNs
+
+
+fprintf(fd,  "// Process group with 3 CNs \n");
+
+ // Process group with 3 CNs
+
+    if (lut_numBnInBnGroups[2] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[2] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<3; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+            }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+    // =====================================================================
+    // Process group with 4 CNs
+
+fprintf(fd,  "// Process group with 4 CNs \n");
+
+ // Process group with 4 CNs
+
+    if (lut_numBnInBnGroups[3] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[3] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<4; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 5 CNs
+
+fprintf(fd,  "// Process group with 5 CNs \n");
+
+ // Process group with 5 CNs
+
+    if (lut_numBnInBnGroups[4] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[4] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<5; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+   // =====================================================================
+    // Process group with 6 CNs
+
+fprintf(fd,  "// Process group with 6 CNs \n");
+
+ // Process group with 6 CNs
+
+    if (lut_numBnInBnGroups[5] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[5] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<6; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 7 CNs
+
+fprintf(fd,  "// Process group with 7 CNs \n");
+
+ // Process group with 7 CNs
+
+    if (lut_numBnInBnGroups[6] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[6] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<7; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        //fprintf(fd,"         (__m512i*) &llrRes[%d + i]    = _mm512_permutex_epi64(zmm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>6 );
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 8 CNs
+
+fprintf(fd,  "// Process group with 8 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[7] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[7] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<8; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        //fprintf(fd,"         (__m512i*) &llrRes[%d + i]    = _mm512_permutex_epi64(zmm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>6 );
+
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+   // =====================================================================
+    // Process group with 9 CNs
+
+fprintf(fd,  "// Process group with 9 CNs \n");
+
+ // Process group with 9 CNs
+
+    if (lut_numBnInBnGroups[8] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[8] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<9; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        //fprintf(fd,"         (__m512i*) &llrRes[%d + i]    = _mm512_permutex_epi64(zmm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>6 );
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 10 CNs
+
+fprintf(fd,  "// Process group with 10 CNs \n");
+
+ // Process group with 10 CNs
+
+    if (lut_numBnInBnGroups[9] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[9] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<10; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+    // =====================================================================
+
+fprintf(fd,  "// Process group with 11 CNs \n");
+
+
+
+ // Process group with 2 CNs
+
+    if (lut_numBnInBnGroups[10] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[10] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"            zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"            zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<11; k++)
+        {
+        fprintf(fd,"            zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"            zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"            zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "           zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"            zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"            zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"            zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"            zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"            zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+      // =====================================================================
+    // Process group with 2 CNs
+
+
+fprintf(fd,  "// Process group with 12 CNs \n");
+
+ // Process group with 2 CNs
+
+    if (lut_numBnInBnGroups[11] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[11] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"            zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"            zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<12; k++)
+        {
+        fprintf(fd,"            zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"            zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"            zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "           zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"            zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"            zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"            zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"            zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"            zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+    // =====================================================================
+    // Process group with 13 CNs
+
+
+fprintf(fd,  "// Process group with 13 CNs \n");
+
+ // Process group with 3 CNs
+
+    if (lut_numBnInBnGroups[12] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[12] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<13; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+            }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+    // =====================================================================
+    // Process group with 4 CNs
+
+fprintf(fd,  "// Process group with 14 CNs \n");
+
+ // Process group with 4 CNs
+
+    if (lut_numBnInBnGroups[13] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[13] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<14; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 5 CNs
+
+fprintf(fd,  "// Process group with 15 CNs \n");
+
+ // Process group with 5 CNs
+
+    if (lut_numBnInBnGroups[14] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[14] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<15; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+         fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+   // =====================================================================
+    // Process group with 6 CNs
+
+fprintf(fd,  "// Process group with 16 CNs \n");
+
+ // Process group with 6 CNs
+
+    if (lut_numBnInBnGroups[15] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[15] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<16; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 17 CNs
+
+fprintf(fd,  "// Process group with 17 CNs \n");
+
+ // Process group with 17 CNs
+
+    if (lut_numBnInBnGroups[16] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[16] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<17; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 18 CNs
+
+fprintf(fd,  "// Process group with 18 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[17] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[17] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<18; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+   // =====================================================================
+    // Process group with 9 CNs
+
+fprintf(fd,  "// Process group with 19 CNs \n");
+
+ // Process group with 9 CNs
+
+    if (lut_numBnInBnGroups[18] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[18] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<19; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 20 CNs
+
+fprintf(fd,  "// Process group with 20 CNs \n");
+
+ // Process group with 20 CNs
+
+    if (lut_numBnInBnGroups[19] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[19] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<20; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+
+
+    // =====================================================================
+
+fprintf(fd,  "// Process group with 21 CNs \n");
+
+
+
+ // Process group with 2 CNs
+
+    if (lut_numBnInBnGroups[20] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[20] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"            zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"            zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<21; k++)
+        {
+        fprintf(fd,"            zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"            zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"            zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "           zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"            zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"            zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"            zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"            zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"            zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+      // =====================================================================
+    // Process group with 2 CNs
+
+
+fprintf(fd,  "// Process group with 22 CNs \n");
+
+ // Process group with 2 CNs
+
+    if (lut_numBnInBnGroups[21] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[21] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"            zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"            zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<22; k++)
+        {
+        fprintf(fd,"            zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"            zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"            zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "           zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"            zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"            zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"            zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"            zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"            zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+         fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+    // =====================================================================
+    // Process group with 13 CNs
+
+
+fprintf(fd,  "// Process group with <23 CNs \n");
+
+ // Process group with 3 CNs
+
+    if (lut_numBnInBnGroups[22] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[22] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<23; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+            }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+    // =====================================================================
+    // Process group with 4 CNs
+
+fprintf(fd,  "// Process group with 24 CNs \n");
+
+ // Process group with 4 CNs
+
+    if (lut_numBnInBnGroups[23] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[23] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<24; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 5 CNs
+
+fprintf(fd,  "// Process group with 25 CNs \n");
+
+ // Process group with 5 CNs
+
+    if (lut_numBnInBnGroups[24] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[24] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<25; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+   // =====================================================================
+    // Process group with 6 CNs
+
+fprintf(fd,  "// Process group with 26 CNs \n");
+
+ // Process group with 6 CNs
+
+    if (lut_numBnInBnGroups[25] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[25] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<26; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 17 CNs
+
+fprintf(fd,  "// Process group with 27 CNs \n");
+
+ // Process group with 17 CNs
+
+    if (lut_numBnInBnGroups[26] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[26] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<27; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 18 CNs
+
+fprintf(fd,  "// Process group with 28 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[27] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[27] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<28; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+   // =====================================================================
+    // Process group with 9 CNs
+
+fprintf(fd,  "// Process group with 29 CNs \n");
+
+ // Process group with 9 CNs
+
+    if (lut_numBnInBnGroups[28] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[28] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<29; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 20 CNs
+
+fprintf(fd,  "// Process group with 30 CNs \n");
+
+ // Process group with 20 CNs
+
+    if (lut_numBnInBnGroups[29] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[29] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"        zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<30; k++)
+        {
+        fprintf(fd,"        zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "       zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"        zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"        zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0);\n");
+
+        fprintf(fd,"        zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"        zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"        zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1);\n");
+            // zmm0     = [zmmRes1[255:256] zmmRes0[255:256] zmmRes1[127:0] zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256] zmmRes1[127:0] zmmRes0[255:256] zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+    fprintf(fd,"}\n");
+  fclose(fd);
+}//end of the function  nrLDPC_bnProcPc_BG1
+
+
+
+
+
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProcPc_gen_BG2_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProcPc_gen_BG2_avx512.c
new file mode 100644
index 00000000000..418fe1f36f8
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProcPc_gen_BG2_avx512.c
@@ -0,0 +1,1793 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <immintrin.h>
+#include "../../nrLDPCdecoder_defs.h"
+#include "../../nrLDPC_types.h"
+
+
+void nrLDPC_bnProcPc_BG2_generator_AVX512(const char *dir, int R)
+{
+  const char *ratestr[3]={"15","13","23"};
+
+  if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();}
+
+
+ // system("mkdir -p ../ldpc_gen_files");
+
+  char fname[FILENAME_MAX+1];
+  snprintf(fname, sizeof(fname), "%s/bnProcPc_avx512/nrLDPC_bnProcPc_BG2_R%s_AVX512.h", dir, ratestr[R]);
+  FILE *fd=fopen(fname,"w");
+  if (fd == NULL) {
+    printf("Cannot create file %s\n", fname);
+    abort();
+  }
+
+//  fprintf(fd,"#include <stdint.h>\n");
+  //fprintf(fd,"#include <immintrin.h>\n");
+
+  fprintf(fd,"static inline void nrLDPC_bnProcPc_BG2_R%s_AVX512(int8_t* bnProcBuf,int8_t* llrRes ,  int8_t* llrProcBuf, uint16_t Z ) {\n",ratestr[R]);
+    const uint8_t*  lut_numBnInBnGroups;
+    const uint32_t* lut_startAddrBnGroups;
+    const uint16_t* lut_startAddrBnGroupsLlr;
+    if (R==0) {
+
+
+      lut_numBnInBnGroups =  lut_numBnInBnGroups_BG2_R15;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R15;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R15;
+
+    }
+    else if (R==1){
+
+      lut_numBnInBnGroups =  lut_numBnInBnGroups_BG2_R13;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R13;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R13;
+    }
+    else if (R==2) {
+
+      lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R23;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R23;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R23;
+    }
+  else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();}
+
+
+    uint32_t k;
+    // Offset to each bit within a group in terms of 32 Byte
+    uint32_t cnOffsetInGroup;
+    uint8_t idxBnGroup = 0;
+
+    fprintf(fd,"   __m512i zmm0,zmm1,zmmRes0,zmmRes1;  \n");
+
+
+    fprintf(fd,"        __m256i* p_bnProcBuf; \n");
+    fprintf(fd,"        __m256i* p_llrProcBuf;\n");
+    fprintf(fd,"        __m512i* p_llrRes; \n");
+    fprintf(fd,"         uint32_t M ;\n");
+
+
+fprintf(fd,  "// Process group with 1 CNs \n");
+
+
+ // Process group with 2 CNs
+
+    if (lut_numBnInBnGroups[0] > 0)
+    {
+        // If elements in group move to next address
+       // idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[0] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[0]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"           zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"           zmm1 = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+
+            // Loop over CNs
+        /*for (k=1; k<1; k++)
+        {
+        fprintf(fd,"           zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"           zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"           zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "          zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+*/
+            // Add LLR from receiver input
+        fprintf(fd,"           zmm0    = _mm512_cvtepi8_epi16(p_bnProcBuf[j+1]);\n");
+        fprintf(fd,"           zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"           zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"           zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"           zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+
+        fprintf(fd,"}\n");
+    }
+      // =====================================================================
+    // Process group with 2 CNs
+
+
+fprintf(fd,  "// Process group with 2 CNs \n");
+
+ // Process group with 2 CNs
+
+    if (lut_numBnInBnGroups[1] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[1] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"           zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"           zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf[j + 1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<2; k++)
+        {
+        fprintf(fd,"           zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"           zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"           zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "          zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"           zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"           zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"           zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"           zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"           zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+
+        fprintf(fd,"}\n");
+    }
+
+    // =====================================================================
+    // Process group with 3 CNs
+
+
+fprintf(fd,  "// Process group with 3 CNs \n");
+
+ // Process group with 3 CNs
+
+    if (lut_numBnInBnGroups[2] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[2] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<3; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+            }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+    // =====================================================================
+    // Process group with 4 CNs
+
+fprintf(fd,  "// Process group with 4 CNs \n");
+
+ // Process group with 4 CNs
+
+    if (lut_numBnInBnGroups[3] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[3] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<4; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "      zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 5 CNs
+
+fprintf(fd,  "// Process group with 5 CNs \n");
+
+ // Process group with 5 CNs
+
+    if (lut_numBnInBnGroups[4] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[4] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<5; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "      zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+   // =====================================================================
+    // Process group with 6 CNs
+
+fprintf(fd,  "// Process group with 6 CNs \n");
+
+ // Process group with 6 CNs
+
+    if (lut_numBnInBnGroups[5] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[5] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<6; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "      zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 7 CNs
+
+fprintf(fd,  "// Process group with 7 CNs \n");
+
+ // Process group with 7 CNs
+
+    if (lut_numBnInBnGroups[6] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[6] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<7; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "      zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        //fprintf(fd,"         (__m512i*) &llrRes[%d + i]    = _mm512_permutex_epi64(zmm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 );
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 8 CNs
+
+fprintf(fd,  "// Process group with 8 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[7] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[7] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<8; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "      zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        //fprintf(fd,"         (__m512i*) &llrRes[%d + i]    = _mm512_permutex_epi64(zmm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 );
+
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+   // =====================================================================
+    // Process group with 9 CNs
+
+fprintf(fd,  "// Process group with 9 CNs \n");
+
+ // Process group with 9 CNs
+
+    if (lut_numBnInBnGroups[8] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[8] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<9; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "      zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        //fprintf(fd,"         (__m512i*) &llrRes[%d + i]    = _mm512_permutex_epi64(zmm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 );
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 10 CNs
+
+fprintf(fd,  "// Process group with 10 CNs \n");
+
+ // Process group with 10 CNs
+
+    if (lut_numBnInBnGroups[9] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[9] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<10; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "      zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+    // =====================================================================
+
+fprintf(fd,  "// Process group with 11 CNs \n");
+
+
+
+ // Process group with 2 CNs
+
+    if (lut_numBnInBnGroups[10] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[10] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"           zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"           zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<11; k++)
+        {
+        fprintf(fd,"           zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"           zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"           zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "          zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"           zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"           zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"           zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"           zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"           zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+      // =====================================================================
+    // Process group with 2 CNs
+
+
+fprintf(fd,  "// Process group with 12 CNs \n");
+
+ // Process group with 2 CNs
+
+    if (lut_numBnInBnGroups[11] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[11] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"           zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"           zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<12; k++)
+        {
+        fprintf(fd,"           zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"           zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"           zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "          zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"           zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"           zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"           zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"           zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"           zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+    // =====================================================================
+    // Process group with 13 CNs
+
+
+fprintf(fd,  "// Process group with 13 CNs \n");
+
+ // Process group with 3 CNs
+
+    if (lut_numBnInBnGroups[12] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[12] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<13; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+            }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+    // =====================================================================
+    // Process group with 4 CNs
+
+fprintf(fd,  "// Process group with 14 CNs \n");
+
+ // Process group with 4 CNs
+
+    if (lut_numBnInBnGroups[13] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[13] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<14; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "      zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 5 CNs
+
+fprintf(fd,  "// Process group with 15 CNs \n");
+
+ // Process group with 5 CNs
+
+    if (lut_numBnInBnGroups[14] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[14] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<15; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "      zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+         fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+   // =====================================================================
+    // Process group with 6 CNs
+
+fprintf(fd,  "// Process group with 16 CNs \n");
+
+ // Process group with 6 CNs
+
+    if (lut_numBnInBnGroups[15] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[15] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<16; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "      zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 17 CNs
+
+fprintf(fd,  "// Process group with 17 CNs \n");
+
+ // Process group with 17 CNs
+
+    if (lut_numBnInBnGroups[16] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[16] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<17; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "      zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 18 CNs
+
+fprintf(fd,  "// Process group with 18 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[17] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[17] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<18; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "      zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+   // =====================================================================
+    // Process group with 9 CNs
+
+fprintf(fd,  "// Process group with 19 CNs \n");
+
+ // Process group with 9 CNs
+
+    if (lut_numBnInBnGroups[18] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[18] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<19; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "      zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 20 CNs
+
+fprintf(fd,  "// Process group with 20 CNs \n");
+
+ // Process group with 20 CNs
+
+    if (lut_numBnInBnGroups[19] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[19] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<20; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "      zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+
+
+    // =====================================================================
+
+fprintf(fd,  "// Process group with 21 CNs \n");
+
+
+
+ // Process group with 2 CNs
+
+    if (lut_numBnInBnGroups[20] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[20] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"           zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"           zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<21; k++)
+        {
+        fprintf(fd,"           zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"           zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"           zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "          zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"           zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"           zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"           zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"           zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"           zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+      // =====================================================================
+    // Process group with 2 CNs
+
+
+fprintf(fd,  "// Process group with 22 CNs \n");
+
+ // Process group with 2 CNs
+
+    if (lut_numBnInBnGroups[21] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[21] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"            for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"           zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"           zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<22; k++)
+        {
+        fprintf(fd,"           zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"           zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"           zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "          zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"           zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"           zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"           zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"           zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"           zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+         fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+    // =====================================================================
+    // Process group with 13 CNs
+
+
+fprintf(fd,  "// Process group with <23 CNs \n");
+
+ // Process group with 3 CNs
+
+    if (lut_numBnInBnGroups[22] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[22] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<23; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+            }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+    // =====================================================================
+    // Process group with 4 CNs
+
+fprintf(fd,  "// Process group with 24 CNs \n");
+
+ // Process group with 4 CNs
+
+    if (lut_numBnInBnGroups[23] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[23] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<24; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "      zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 5 CNs
+
+fprintf(fd,  "// Process group with 25 CNs \n");
+
+ // Process group with 5 CNs
+
+    if (lut_numBnInBnGroups[24] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[24] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<25; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "      zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+
+   // =====================================================================
+    // Process group with 6 CNs
+
+fprintf(fd,  "// Process group with 26 CNs \n");
+
+ // Process group with 6 CNs
+
+    if (lut_numBnInBnGroups[25] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[25] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<26; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "      zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 17 CNs
+
+fprintf(fd,  "// Process group with 27 CNs \n");
+
+ // Process group with 17 CNs
+
+    if (lut_numBnInBnGroups[26] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[26] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<27; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "      zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 18 CNs
+
+fprintf(fd,  "// Process group with 28 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[27] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[27] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<28; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "      zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+   // =====================================================================
+    // Process group with 9 CNs
+
+fprintf(fd,  "// Process group with 29 CNs \n");
+
+ // Process group with 9 CNs
+
+    if (lut_numBnInBnGroups[28] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[28] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<29; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "      zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+
+   // =====================================================================
+    // Process group with 20 CNs
+
+fprintf(fd,  "// Process group with 30 CNs \n");
+
+ // Process group with 20 CNs
+
+    if (lut_numBnInBnGroups[29] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[29] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5;
+
+        // Set pointers to start of group 2
+        fprintf(fd,"    p_bnProcBuf     = (__m256i*) &bnProcBuf    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        fprintf(fd,"    p_llrProcBuf    = (__m256i*) &llrProcBuf   [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        fprintf(fd,"    p_llrRes        = (__m512i*) &llrRes       [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
+        // Loop over BNs
+        fprintf(fd,"        for (int i=0,j=0;i<M;i++,j+=2) {\n");
+            // First 16 LLRs of first CN
+        fprintf(fd,"       zmmRes0 = _mm512_cvtepi8_epi16(p_bnProcBuf [j]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_cvtepi8_epi16(p_bnProcBuf [j +1]);\n");
+
+            // Loop over CNs
+        for (k=1; k<30; k++)
+        {
+        fprintf(fd,"       zmm0 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup);
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1 = _mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup);
+
+        fprintf(fd, "      zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1); \n");
+        }
+
+            // Add LLR from receiver input
+        fprintf(fd,"       zmm0    = _mm512_cvtepi8_epi16(p_llrProcBuf[j]);\n");
+        fprintf(fd,"       zmmRes0 = _mm512_adds_epi16(zmmRes0,zmm0);\n");
+
+        fprintf(fd,"       zmm1    = _mm512_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n");
+        fprintf(fd,"       zmmRes1 = _mm512_adds_epi16(zmmRes1,zmm1);\n");
+
+            // Pack results back to epi8
+        fprintf(fd,"       zmm0 = _mm512_packs_epi16(zmmRes0,zmmRes1);\n");
+            //zmm0     = [zmmRes1[255:256]zmmRes0[255:256]zmmRes1[127:0]zmmRes0[127:0]]
+            // p_llrRes = [zmmRes1[255:256]zmmRes1[127:0]zmmRes0[255:256]zmmRes0[127:0]]
+        fprintf(fd,"            p_llrRes[i] = _mm512_permutex_epi64(zmm0, 0xD8);\n");
+
+        fprintf(fd,"}\n");
+    }
+
+    fprintf(fd,"}\n");
+  fclose(fd);
+}//end of the function  nrLDPC_bnProcPc_BG2
+
+
+
+
+
+
+
+
+
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProc_gen_BG1_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProc_gen_BG1_avx512.c
new file mode 100644
index 00000000000..2c049842208
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProc_gen_BG1_avx512.c
@@ -0,0 +1,1112 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <immintrin.h>
+#include "../../nrLDPCdecoder_defs.h"
+#include "../../nrLDPC_types.h"
+
+
+void nrLDPC_bnProc_BG1_generator_AVX512(const char *dir, int R)
+{
+  const char *ratestr[3]={"13","23","89"};
+
+  if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();}
+
+
+ // system("mkdir -p ../ldpc_gen_files");
+
+  char fname[FILENAME_MAX+1];
+  snprintf(fname, sizeof(fname), "%s/bnProc_avx512/nrLDPC_bnProc_BG1_R%s_AVX512.h", dir, ratestr[R]);
+  FILE *fd=fopen(fname,"w");
+  if (fd == NULL) {
+    printf("Cannot create file %s\n", fname);
+    abort();
+  }
+
+  //fprintf(fd,"#include <stdint.h>\n");
+  //fprintf(fd,"#include <immintrin.h>\n");
+
+
+    fprintf(fd,"static inline void nrLDPC_bnProc_BG1_R%s_AVX512(int8_t* bnProcBuf,int8_t* bnProcBufRes,  int8_t* llrRes, uint16_t Z ) {\n", ratestr[R]);
+
+    const uint8_t*  lut_numBnInBnGroups;
+    const uint32_t* lut_startAddrBnGroups;
+    const uint16_t* lut_startAddrBnGroupsLlr;
+    if (R==0) {
+
+
+      lut_numBnInBnGroups =  lut_numBnInBnGroups_BG1_R13;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R13;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13;
+
+    }
+    else if (R==1){
+
+      lut_numBnInBnGroups =  lut_numBnInBnGroups_BG1_R23;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R23;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23;
+    }
+    else if (R==2) {
+
+      lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R89;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R89;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89;
+    }
+  else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();}
+
+
+    //uint32_t M;
+    //uint32_t M32rem;
+   // uint32_t i;
+    uint32_t k;
+    // Offset to each bit within a group in terms of 32 Byte
+    uint32_t cnOffsetInGroup;
+    uint8_t idxBnGroup = 0;
+    fprintf(fd,"        uint32_t M, i; \n");
+
+
+
+// =====================================================================
+    // Process group with 1 CN
+    // Already done in bnProcBufPc
+
+    // =====================================================================
+
+fprintf(fd,  "// Process group with 2 CNs \n");
+
+    if (lut_numBnInBnGroups[1] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs or parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[1] );
+
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<2; k++)
+        {
+    
+          // Loop over BNs
+        fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+
+
+
+    }
+
+    // =====================================================================
+
+
+fprintf(fd,  "// Process group with 3 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[2] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+         fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[2] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+        //fprintf(fd,"    ((__m512i*) bnProcBuf)     = ((__m512i*) &bnProcBuf)    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        
+
+        for (k=0; k<3; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+        }
+    }
+
+
+
+    // =====================================================================
+
+
+fprintf(fd,  "// Process group with 4 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[3] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[3] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+      
+    
+
+        for (k=0; k<4; k++)
+        {
+  
+          // Loop over BNs
+        fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",((lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup),(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), ((lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup));
+
+         fprintf(fd,"}\n");
+        }
+    }
+
+
+   // =====================================================================
+
+
+    fprintf(fd,  "// Process group with 5 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[4] > 0)
+    {
+    // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[4] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<5; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 6 CNs \n");
+
+ // Process group with 6 CNs
+
+    if (lut_numBnInBnGroups[5] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[5] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<6; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 7 CNs \n");
+
+ // Process group with 7 CNs
+
+    if (lut_numBnInBnGroups[6] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[6] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<7; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 8 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[7] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[7] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<8; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 9 CNs \n");
+
+ // Process group with 9 CNs
+
+    if (lut_numBnInBnGroups[8] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[8] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<9; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+fprintf(fd,  "// Process group with 10 CNs \n");
+
+ // Process group with 10 CNs
+
+    if (lut_numBnInBnGroups[9] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[9] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<10; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+    // =====================================================================
+
+fprintf(fd,  "// Process group with 11 CNs \n");
+
+    if (lut_numBnInBnGroups[10] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[10] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<11; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+      // =====================================================================
+
+
+
+fprintf(fd,  "// Process group with 12 CNs \n");
+
+
+    if (lut_numBnInBnGroups[11] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[11] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<12; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+    // =====================================================================
+
+
+
+fprintf(fd,  "// Process group with 13 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[12] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[12] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<13; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+    // =====================================================================
+
+
+fprintf(fd,  "// Process group with 14 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[13] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[13] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<14; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 15 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[14] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[14] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<15; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 16 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[15] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[15] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<16; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+    // Process group with 17 CNs
+
+fprintf(fd,  "// Process group with 17 CNs \n");
+
+ // Process group with 17 CNs
+
+    if (lut_numBnInBnGroups[16] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[16] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<17; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 18 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[17] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[17] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<18; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 19 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[18] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[18] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<19; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 20 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[19] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[19] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<20; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+
+
+    // =====================================================================
+
+fprintf(fd,  "// Process group with 21 CNs \n");
+
+
+
+
+
+    if (lut_numBnInBnGroups[20] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[20] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<21; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+      // =====================================================================
+
+
+
+fprintf(fd,  "// Process group with 22 CNs \n");
+
+
+    if (lut_numBnInBnGroups[21] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[21] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<22; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+    // =====================================================================
+
+
+
+fprintf(fd,  "// Process group with <23 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[22] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[22] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<23; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+    // =====================================================================
+
+
+fprintf(fd,  "// Process group with 24 CNs \n");
+
+ // Process group with 4 CNs
+
+    if (lut_numBnInBnGroups[23] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[23] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<24; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 25 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[24] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[24] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<25; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 26 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[25] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[25] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<26; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 27 CNs \n");
+
+ // Process group with 17 CNs
+
+    if (lut_numBnInBnGroups[26] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[26] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<27; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 28 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[27] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[27] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<28; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+   // =====================================================================
+
+fprintf(fd,  "// Process group with 29 CNs \n");
+
+ // Process group with 9 CNs
+
+    if (lut_numBnInBnGroups[28] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[28] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<29; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+fprintf(fd,  "// Process group with 30 CNs \n");
+
+ // Process group with 20 CNs
+
+    if (lut_numBnInBnGroups[29] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[29] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<30; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+    fprintf(fd,"}\n");
+  fclose(fd);
+}//end of the function  nrLDPC_bnProc_BG1
+
+
+
+
+
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProc_gen_BG2_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProc_gen_BG2_avx512.c
new file mode 100644
index 00000000000..bcd1179b126
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProc_gen_BG2_avx512.c
@@ -0,0 +1,1108 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <immintrin.h>
+#include "../../nrLDPCdecoder_defs.h"
+#include "../../nrLDPC_types.h"
+
+
+void nrLDPC_bnProc_BG2_generator_AVX512(const char *dir, int R)
+{
+  const char *ratestr[3]={"15","13","23"};
+
+  if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();}
+
+
+ // system("mkdir -p ../ldpc_gen_files");
+
+  char fname[FILENAME_MAX+1];
+  snprintf(fname, sizeof(fname), "%s/bnProc_avx512/nrLDPC_bnProc_BG2_R%s_AVX512.h", dir, ratestr[R]);
+  FILE *fd=fopen(fname,"w");
+  if (fd == NULL) {
+    printf("Cannot create file %s\n", fname);
+    abort();
+  }
+
+  fprintf(fd,"#include <stdint.h>\n");
+  fprintf(fd,"#include <immintrin.h>\n");
+
+    fprintf(fd,"void nrLDPC_bnProc_BG2_R%s_AVX512(int8_t* bnProcBuf,int8_t* bnProcBufRes,  int8_t* llrRes, uint16_t Z  ) {\n",ratestr[R]);
+    const uint8_t*  lut_numBnInBnGroups;
+    const uint32_t* lut_startAddrBnGroups;
+    const uint16_t* lut_startAddrBnGroupsLlr;
+    if (R==0) {
+
+
+      lut_numBnInBnGroups =  lut_numBnInBnGroups_BG2_R15;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R15;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R15;
+
+    }
+    else if (R==1){
+
+      lut_numBnInBnGroups =  lut_numBnInBnGroups_BG2_R13;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R13;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R13;
+    }
+    else if (R==2) {
+
+      lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R23;
+      lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R23;
+      lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R23;
+    }
+  else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();}
+
+
+
+    uint32_t k;
+    // Offset to each bit within a group in terms of 32 Byte
+    uint32_t cnOffsetInGroup;
+    uint8_t idxBnGroup = 0;
+    fprintf(fd,"        uint32_t M, i; \n");
+
+
+
+// =====================================================================
+    // Process group with 1 CN
+    // Already done in bnProcBufPc
+
+    // =====================================================================
+
+fprintf(fd,  "// Process group with 2 CNs \n");
+
+    if (lut_numBnInBnGroups[1] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs or parallel processing
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[1] );
+
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<2; k++)
+        {
+    
+          // Loop over BNs
+        fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+
+
+
+    }
+
+    // =====================================================================
+
+
+fprintf(fd,  "// Process group with 3 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[2] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+         fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[2] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+        //fprintf(fd,"    ((__m512i*) bnProcBuf)     = ((__m512i*) &bnProcBuf)    [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
+        
+
+        for (k=0; k<3; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+        }
+    }
+
+
+
+    // =====================================================================
+
+
+fprintf(fd,  "// Process group with 4 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[3] > 0)
+    {
+        // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[3] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+      
+    
+
+        for (k=0; k<4; k++)
+        {
+  
+          // Loop over BNs
+        fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",((lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup),(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), ((lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup));
+
+         fprintf(fd,"}\n");
+        }
+    }
+
+
+   // =====================================================================
+
+
+    fprintf(fd,  "// Process group with 5 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[4] > 0)
+    {
+    // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[4] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<5; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 6 CNs \n");
+
+ // Process group with 6 CNs
+
+    if (lut_numBnInBnGroups[5] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[5] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<6; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 7 CNs \n");
+
+ // Process group with 7 CNs
+
+    if (lut_numBnInBnGroups[6] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[6] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<7; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 8 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[7] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[7] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<8; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 9 CNs \n");
+
+ // Process group with 9 CNs
+
+    if (lut_numBnInBnGroups[8] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[8] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<9; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+fprintf(fd,  "// Process group with 10 CNs \n");
+
+ // Process group with 10 CNs
+
+    if (lut_numBnInBnGroups[9] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[9] );
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<10; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+    // =====================================================================
+
+fprintf(fd,  "// Process group with 11 CNs \n");
+
+    if (lut_numBnInBnGroups[10] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[10] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<11; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+      // =====================================================================
+
+
+
+fprintf(fd,  "// Process group with 12 CNs \n");
+
+
+    if (lut_numBnInBnGroups[11] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[11] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<12; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+    // =====================================================================
+
+
+
+fprintf(fd,  "// Process group with 13 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[12] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[12] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<13; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+    // =====================================================================
+
+
+fprintf(fd,  "// Process group with 14 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[13] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[13] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<14; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 15 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[14] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[14] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<15; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 16 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[15] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[15] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<16; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+    // Process group with 17 CNs
+
+fprintf(fd,  "// Process group with 17 CNs \n");
+
+ // Process group with 17 CNs
+
+    if (lut_numBnInBnGroups[16] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[16] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<17; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 18 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[17] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[17] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<18; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 19 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[18] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[18] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<19; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 20 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[19] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[19] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<20; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+
+
+    // =====================================================================
+
+fprintf(fd,  "// Process group with 21 CNs \n");
+
+
+
+
+
+    if (lut_numBnInBnGroups[20] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[20] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<21; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+      // =====================================================================
+
+
+
+fprintf(fd,  "// Process group with 22 CNs \n");
+
+
+    if (lut_numBnInBnGroups[21] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[21] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<22; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+    // =====================================================================
+
+
+
+fprintf(fd,  "// Process group with <23 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[22] > 0)
+    {
+  // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[22] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<23; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+    // =====================================================================
+
+
+fprintf(fd,  "// Process group with 24 CNs \n");
+
+ // Process group with 4 CNs
+
+    if (lut_numBnInBnGroups[23] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[23] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<24; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 25 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[24] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[24] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<25; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 26 CNs \n");
+
+
+
+    if (lut_numBnInBnGroups[25] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[25] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<26; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 27 CNs \n");
+
+ // Process group with 17 CNs
+
+    if (lut_numBnInBnGroups[26] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[26] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<27; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+
+fprintf(fd,  "// Process group with 28 CNs \n");
+
+ // Process group with 8 CNs
+
+    if (lut_numBnInBnGroups[27] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[27] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<28; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+   // =====================================================================
+
+fprintf(fd,  "// Process group with 29 CNs \n");
+
+ // Process group with 9 CNs
+
+    if (lut_numBnInBnGroups[28] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[28] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<29; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+
+   // =====================================================================
+
+fprintf(fd,  "// Process group with 30 CNs \n");
+
+ // Process group with 20 CNs
+
+    if (lut_numBnInBnGroups[29] > 0)
+    {
+ // If elements in group move to next address
+        idxBnGroup++;
+
+        // Number of groups of 32 BNs for parallel processing
+        fprintf(fd,"       M = (%d*Z + 63)>>6;\n",lut_numBnInBnGroups[29] );;
+
+        // Set the offset to each CN within a group in terms of 16 Byte
+        cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>6;
+
+        // Set pointers to start of group 2
+  
+            // Loop over CNs
+        for (k=0; k<30; k++)
+        {
+  
+
+          // Loop over BNs
+       fprintf(fd,"            for (i=0;i<M;i++) {\n");
+        fprintf(fd,"            ((__m512i*)bnProcBufRes)[%d + i ] = _mm512_subs_epi8(((__m512i*)llrRes)[%d + i ], ((__m512i*) bnProcBuf)[%d + i]);\n",(lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>6), (lut_startAddrBnGroups[idxBnGroup]>>6)+ k*cnOffsetInGroup);
+
+         fprintf(fd,"}\n");
+
+        }
+    }
+
+    fprintf(fd,"}\n");
+  fclose(fd);
+}//end of the function  nrLDPC_bnProc_BG1
+
+
+
+
+
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/main.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/main.c
new file mode 100644
index 00000000000..8db03d8f51a
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/main.c
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#define NB_R  3
+void nrLDPC_bnProc_BG1_generator_AVX512(const char *, int);
+void nrLDPC_bnProc_BG2_generator_AVX512(const char *, int);
+void nrLDPC_bnProcPc_BG1_generator_AVX512(const char *, int);
+void nrLDPC_bnProcPc_BG2_generator_AVX512(const char *, int);
+
+const char *__asan_default_options()
+{
+  /* don't do leak checking in nr_ulsim, creates problems in the CI */
+  return "detect_leaks=0";
+}
+
+int main(int argc, char *argv[])
+{
+  if (argc != 2) {
+    fprintf(stderr, "usage: %s <output-dir>\n", argv[0]);
+    return 1;
+  }
+  const char *dir = argv[1];
+
+  int R[NB_R]={0,1,2};
+  for(int i=0; i<NB_R;i++){
+    nrLDPC_bnProc_BG1_generator_AVX512(dir, R[i]);
+    nrLDPC_bnProc_BG2_generator_AVX512(dir, R[i]);
+
+    nrLDPC_bnProcPc_BG1_generator_AVX512(dir, R[i]);
+    nrLDPC_bnProcPc_BG2_generator_AVX512(dir, R[i]);
+  }
+
+  return(0);
+}
+
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/CMakeLists.txt b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/CMakeLists.txt
new file mode 100644
index 00000000000..d78dfc4436c
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/CMakeLists.txt
@@ -0,0 +1,25 @@
+add_executable(cnProc_gen_avx2
+               cnProc_gen_BG1_avx2.c
+               cnProc_gen_BG2_avx2.c
+               main.c)
+target_compile_options(cnProc_gen_avx2 PRIVATE -W -Wall -mavx2)
+
+#set(cnProc_headers
+#    cnProc/rLDPC_cnProc_BG1_R13_AVX2.h
+#    cnProc/rLDPC_cnProc_BG1_R23_AVX2.h
+#    cnProc/rLDPC_cnProc_BG1_R89_AVX2.h
+#    cnProc/rLDPC_cnProc_BG2_R13_AVX2.h
+#    cnProc/rLDPC_cnProc_BG2_R15_AVX2.h
+#    cnProc/rLDPC_cnProc_BG2_R23_AVX2.h)
+
+add_custom_command(TARGET cnProc_gen_avx2 POST_BUILD
+  #OUTPUT ${cnProc_headers}
+  COMMAND ${CMAKE_COMMAND} -E make_directory cnProc
+  COMMAND cnProc_gen_avx2 .
+  DEPENDS cnProc_gen_avx2
+  COMMENT "Generating LDPC cnProc header files for AVX2"
+)
+
+add_library(cnProc_gen_avx2_HEADERS INTERFACE)
+target_include_directories(cnProc_gen_avx2_HEADERS INTERFACE ${CMAKE_CURRENT_BINARY_DIR})
+add_dependencies(cnProc_gen_avx2_HEADERS cnProc_gen_avx2)
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c
new file mode 100644
index 00000000000..f998f138593
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c
@@ -0,0 +1,693 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdint.h>
+#include "../../nrLDPCdecoder_defs.h"
+
+void nrLDPC_cnProc_BG1_generator_AVX2(const char* dir, int R)
+{
+  const char *ratestr[3]={"13","23","89"};
+
+  if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();}
+
+
+ // system("mkdir -p ../ldpc_gen_files");
+
+  char fname[FILENAME_MAX+1];
+  snprintf(fname, sizeof(fname), "%s/cnProc/nrLDPC_cnProc_BG1_R%s_AVX2.h", dir, ratestr[R]);
+  FILE *fd=fopen(fname,"w");
+  if (fd == NULL) {
+    printf("Cannot create file %s\n", fname);
+    abort();
+  }
+
+  fprintf(fd,"#include <stdint.h>\n");
+  fprintf(fd,"#include <immintrin.h>\n");
+
+
+  fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX2(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) {\n",ratestr[R]);
+
+  const uint8_t*  lut_numCnInCnGroups;
+  const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1;
+
+  if (R==0)      lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13;
+  else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23;
+  else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89;
+  else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();}
+
+
+
+  //__m256i* p_cnProcBuf;
+  //__m256i* p_cnProcBufRes;
+
+  // Number of CNs in Groups
+  //uint32_t M;
+  uint32_t j;
+  uint32_t k;
+  // Offset to each bit within a group in terms of 32 Byte
+  uint32_t bitOffsetInGroup;
+
+  //__m256i ymm0, min, sgn;
+  //__m256i* p_cnProcBufResBit;
+
+  // const __m256i* p_ones   = (__m256i*) ones256_epi8;
+  // const __m256i* p_maxLLR = (__m256i*) maxLLR256_epi8;
+
+  // LUT with offsets for bits that need to be processed
+  // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc.
+  // Offsets are in units of bitOffsetInGroup (1*384/32)
+  //    const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}};
+
+  // =====================================================================
+  // Process group with 3 BNs
+  fprintf(fd,"//Process group with 3 BNs\n");
+  // LUT with offsets for bits that need to be processed
+  // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc.
+  // Offsets are in units of bitOffsetInGroup (1*384/32)
+  const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}};
+
+  fprintf(fd,"                __m256i ymm0, min, sgn,ones,maxLLR;\n");
+  fprintf(fd,"                ones   = _mm256_set1_epi8((char)1);\n");
+  fprintf(fd,"                maxLLR = _mm256_set1_epi8((char)127);\n");
+
+  fprintf(fd,"                uint32_t  M;\n");
+
+  if (lut_numCnInCnGroups[0] > 0)
+    {
+      // Number of groups of 32 CNs for parallel processing
+      // Ceil for values not divisible by 32
+       fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[0] );
+
+      // Set the offset to each bit within a group in terms of 32 Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>5;
+
+
+      // Set pointers to start of group 3
+      //p_cnProcBuf    = (__m256i*) &cnProcBuf   [lut_startAddrCnGroups[0]];
+      //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]];
+
+      // Loop over every BN
+      
+      for (j=0; j<3; j++)
+        {
+	  // Set of results pointer to correct BN address
+	  //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+	  // Loop over CNs
+	  //	  for (i=0; i<M; i++,iprime++)
+	  //            {
+	  
+	  fprintf(fd,"            for (int i=0;i<M;i++) {\n");
+	  // Abs and sign of 32 CNs (first BN)
+	  //                ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+	  fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][0]);
+	  //                sgn  = _mm256_sign_epi8(ones, ymm0);
+	  fprintf(fd,"                sgn  = _mm256_sign_epi8(ones, ymm0);\n");
+	  //                min  = _mm256_abs_epi8(ymm0);
+	  fprintf(fd,"                min  = _mm256_abs_epi8(ymm0);\n");
+	  
+	  // 32 CNs of second BN
+	  //                ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i];
+	  fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][1]);
+	  
+	  //                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));
+	  fprintf(fd,"                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n");
+	  
+	  //                sgn  = _mm256_sign_epi8(sgn, ymm0);
+	  fprintf(fd,"                sgn  = _mm256_sign_epi8(sgn, ymm0);\n");
+	  
+	  // Store result
+	  //                min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127
+	  fprintf(fd,"                min = _mm256_min_epu8(min, maxLLR);\n");
+	  //                *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn);
+	  //                p_cnProcBufResBit++;
+	  fprintf(fd,"                ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup));
+	  fprintf(fd,"            }\n");
+        }
+    }
+
+  // =====================================================================
+  // Process group with 4 BNs
+  fprintf(fd,"//Process group with 4 BNs\n");
+  // Offset is 5*384/32 = 60
+  const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}};
+
+  if (lut_numCnInCnGroups[1] > 0)
+    {
+      // Number of groups of 32 CNs for parallel processing
+      // Ceil for values not divisible by 32
+      fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[1] );
+
+      // Set the offset to each bit within a group in terms of 32 Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>5;
+
+
+      // Set pointers to start of group 4
+      //p_cnProcBuf    = (__m256i*) &cnProcBuf   [lut_startAddrCnGroups[1]];
+      //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
+
+      // Loop over every BN
+      
+      for (j=0; j<4; j++)
+        {
+	  // Set of results pointer to correct BN address
+	  //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+	  // Loop over CNs
+	  //	  for (i=0; i<M; i++,iprime++)
+	  //            {
+	  fprintf(fd,"            for (int i=0;i<M;i++) {\n");
+	  // Abs and sign of 32 CNs (first BN)
+	  //                ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+	  fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>5)+lut_idxCnProcG4[j][0]);
+	  //                sgn  = _mm256_sign_epi8(ones, ymm0);
+	  fprintf(fd,"                sgn  = _mm256_sign_epi8(ones, ymm0);\n");
+	  //                min  = _mm256_abs_epi8(ymm0);
+	  fprintf(fd,"                min  = _mm256_abs_epi8(ymm0);\n");
+	  
+	  
+	  // Loop over BNs
+	  for (k=1; k<3; k++)
+	    {
+	      fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>5)+lut_idxCnProcG4[j][k]);
+	      
+	      //                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));
+	      fprintf(fd,"                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n");
+	      
+	      //                sgn  = _mm256_sign_epi8(sgn, ymm0);
+	      fprintf(fd,"                sgn  = _mm256_sign_epi8(sgn, ymm0);\n");
+	    }
+	  
+	  // Store result
+	  //                min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127
+	  fprintf(fd,"                min = _mm256_min_epu8(min, maxLLR);\n");
+	  //                *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn);
+	      //                p_cnProcBufResBit++;
+	  fprintf(fd,"                ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[1]>>5)+(j*bitOffsetInGroup));
+	  fprintf(fd,"            }\n");
+        }
+    }
+
+
+  // =====================================================================
+  // Process group with 5 BNs
+  fprintf(fd,"//Process group with 5 BNs\n");
+  // Offset is 18*384/32 = 216
+  const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864},
+					  {0,216,648,864}, {0,216,432,864}, {0,216,432,648}};
+
+
+  if (lut_numCnInCnGroups[2] > 0)
+    {
+      // Number of groups of 32 CNs for parallel processing
+      // Ceil for values not divisible by 32
+      fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[2] );
+
+      // Set the offset to each bit within a group in terms of 32 Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>5;
+
+
+      // Set pointers to start of group 4
+      //p_cnProcBuf    = (__m256i*) &cnProcBuf   [lut_startAddrCnGroups[1]];
+      //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
+
+      // Loop over every BN
+      
+      for (j=0; j<5; j++)
+	{
+	  // Set of results pointer to correct BN address
+	  //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+	  // Loop over CNs
+	  //	  for (i=0; i<M; i++,iprime++)
+	  //            {
+	  fprintf(fd,"            for (int i=0;i<M;i++) {\n");
+	  // Abs and sign of 32 CNs (first BN)
+	  //                ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+	  fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>5)+lut_idxCnProcG5[j][0]);
+	  //                sgn  = _mm256_sign_epi8(ones, ymm0);
+	  fprintf(fd,"                sgn  = _mm256_sign_epi8(ones, ymm0);\n");
+	  //                min  = _mm256_abs_epi8(ymm0);
+	  fprintf(fd,"                min  = _mm256_abs_epi8(ymm0);\n");
+	  
+	  
+	  // Loop over BNs
+	  for (k=1; k<4; k++)
+	    {
+	      fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>5)+lut_idxCnProcG5[j][k]);
+	      
+	      //                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));
+	      fprintf(fd,"                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n");
+	      
+	      //                sgn  = _mm256_sign_epi8(sgn, ymm0);
+	      fprintf(fd,"                sgn  = _mm256_sign_epi8(sgn, ymm0);\n");
+	    }
+	  
+	  // Store result
+	  //                min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127
+	  fprintf(fd,"                min = _mm256_min_epu8(min, maxLLR);\n");
+	  //                *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn);
+	  //                p_cnProcBufResBit++;
+	  fprintf(fd,"                ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[2]>>5)+(j*bitOffsetInGroup));
+	  fprintf(fd,"           }\n");
+        }
+    }
+
+  // =====================================================================
+  // Process group with 6 BNs
+  fprintf(fd,"//Process group with 6 BNs\n");
+  // Offset is 8*384/32 = 96
+  const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480},
+					  {0,96,288,384,480}, {0,96,192,384,480},
+					  {0,96,192,288,480}, {0,96,192,288,384}};
+
+
+  if (lut_numCnInCnGroups[3] > 0)
+    {
+      // Number of groups of 32 CNs for parallel processing
+      // Ceil for values not divisible by 32
+     fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[3] );
+
+      // Set the offset to each bit within a group in terms of 32 Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>5;
+
+
+      // Set pointers to start of group 4
+      //p_cnProcBuf    = (__m256i*) &cnProcBuf   [lut_startAddrCnGroups[1]];
+      //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
+
+      // Loop over every BN
+      
+      for (j=0; j<6; j++)
+        {
+	  // Set of results pointer to correct BN address
+	  //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+	  // Loop over CNs
+	  //	  for (i=0; i<M; i++,iprime++)
+	  //            {
+	  fprintf(fd,"            for (int i=0;i<M;i++) {\n");
+	  // Abs and sign of 32 CNs (first BN)
+	  //                ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+	  fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>5)+lut_idxCnProcG6[j][0]);
+	  //                sgn  = _mm256_sign_epi8(ones, ymm0);
+	  fprintf(fd,"                sgn  = _mm256_sign_epi8(ones, ymm0);\n");
+	  //                min  = _mm256_abs_epi8(ymm0);
+	  fprintf(fd,"                min  = _mm256_abs_epi8(ymm0);\n");
+	  
+	  
+	  // Loop over BNs
+	  for (k=1; k<5; k++)
+	    {
+	      fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>5)+lut_idxCnProcG6[j][k]);
+	      
+	      //                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));
+	      fprintf(fd,"                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n");
+	      
+	      //                sgn  = _mm256_sign_epi8(sgn, ymm0);
+	      fprintf(fd,"                sgn  = _mm256_sign_epi8(sgn, ymm0);\n");
+	    }
+	  
+	  // Store result
+	  //                min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127
+	  fprintf(fd,"                min = _mm256_min_epu8(min, maxLLR);\n");
+	  //                *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn);
+	  //                p_cnProcBufResBit++;
+	  fprintf(fd,"                ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[3]>>5)+(j*bitOffsetInGroup));
+	  fprintf(fd,"            }\n");
+	}
+    }
+
+
+  // =====================================================================
+  // Process group with 7 BNs
+  fprintf(fd,"//Process group with 7 BNs\n");
+  // Offset is 5*384/32 = 60
+  const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360},
+					  {0,60,180,240,300,360},   {0,60,120,240,300,360},
+					  {0,60,120,180,300,360},   {0,60,120,180,240,360},
+					  {0,60,120,180,240,300}};
+
+
+
+  if (lut_numCnInCnGroups[4] > 0)
+    {
+      // Number of groups of 32 CNs for parallel processing
+      // Ceil for values not divisible by 32
+      fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[4] );
+
+      // Set the offset to each bit within a group in terms of 32 Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>5;
+
+
+      // Set pointers to start of group 4
+      //p_cnProcBuf    = (__m256i*) &cnProcBuf   [lut_startAddrCnGroups[1]];
+      //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
+
+      // Loop over every BN
+      
+      for (j=0; j<7; j++)
+        {
+	  // Set of results pointer to correct BN address
+	  //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+	  // Loop over CNs
+	  //	  for (i=0; i<M; i++,iprime++)
+	  //            {
+	  fprintf(fd,"            for (int i=0;i<M;i++) {\n");
+	  // Abs and sign of 32 CNs (first BN)
+	  //                ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+	  fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>5)+lut_idxCnProcG7[j][0]);
+	  //                sgn  = _mm256_sign_epi8(ones, ymm0);
+	  fprintf(fd,"                sgn  = _mm256_sign_epi8(ones, ymm0);\n");
+	  //                min  = _mm256_abs_epi8(ymm0);
+	  fprintf(fd,"                min  = _mm256_abs_epi8(ymm0);\n");
+	  
+	  
+	  // Loop over BNs
+	  for (k=1; k<6; k++)
+	    {
+	      fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>5)+lut_idxCnProcG7[j][k]);
+	      
+	      //                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));
+	      fprintf(fd,"                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n");
+	      
+	      //                sgn  = _mm256_sign_epi8(sgn, ymm0);
+	      fprintf(fd,"                sgn  = _mm256_sign_epi8(sgn, ymm0);\n");
+	    }
+	  
+	  // Store result
+	  //                min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127
+	  fprintf(fd,"                min = _mm256_min_epu8(min, maxLLR);\n");
+	  //                *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn);
+	  //                p_cnProcBufResBit++;
+	  fprintf(fd,"                ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[4]>>5)+(j*bitOffsetInGroup));
+	  fprintf(fd,"            }\n");
+	}
+    }
+
+
+  // =====================================================================
+  // Process group with 8 BNs
+  fprintf(fd,"//Process group with 8 BNs\n");
+  // Offset is 2*384/32 = 24
+  const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,120,144,168}, {0,48,72,96,120,144,168},
+					 {0,24,72,96,120,144,168}, {0,24,48,96,120,144,168},
+					 {0,24,48,72,120,144,168}, {0,24,48,72,96,144,168},
+					 {0,24,48,72,96,120,168},  {0,24,48,72,96,120,144}};
+
+
+
+
+  if (lut_numCnInCnGroups[5] > 0)
+    {
+      // Number of groups of 32 CNs for parallel processing
+      // Ceil for values not divisible by 32
+     fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[5] );
+
+      // Set the offset to each bit within a group in terms of 32 Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>5;
+
+
+      // Set pointers to start of group 4
+      //p_cnProcBuf    = (__m256i*) &cnProcBuf   [lut_startAddrCnGroups[1]];
+      //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
+
+      // Loop over every BN
+      
+      for (j=0; j<8; j++)
+        {
+	  // Set of results pointer to correct BN address
+	  //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+	  // Loop over CNs
+	  //	  for (i=0; i<M; i++,iprime++)
+	  //            {
+	  fprintf(fd,"            for (int i=0;i<M;i++) {\n");
+	  // Abs and sign of 32 CNs (first BN)
+	  //                ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+	  fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>5)+lut_idxCnProcG8[j][0]);
+	  //                sgn  = _mm256_sign_epi8(ones, ymm0);
+	  fprintf(fd,"                sgn  = _mm256_sign_epi8(ones, ymm0);\n");
+	  //                min  = _mm256_abs_epi8(ymm0);
+	  fprintf(fd,"                min  = _mm256_abs_epi8(ymm0);\n");
+	  
+	  
+	  // Loop over BNs
+	  for (k=1; k<7; k++)
+	    {
+	      fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>5)+lut_idxCnProcG8[j][k]);
+	      
+	      //                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));
+	      fprintf(fd,"                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n");
+	      
+	      //                sgn  = _mm256_sign_epi8(sgn, ymm0);
+	      fprintf(fd,"                sgn  = _mm256_sign_epi8(sgn, ymm0);\n");
+	    }
+	  
+	  // Store result
+	  //                min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127
+	  fprintf(fd,"                min = _mm256_min_epu8(min, maxLLR);\n");
+	  //                *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn);
+	  //                p_cnProcBufResBit++;
+	  fprintf(fd,"                ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[5]>>5)+(j*bitOffsetInGroup));
+	  fprintf(fd,"              }\n");
+        }
+    }
+
+  // =====================================================================
+  // Process group with 9 BNs
+  fprintf(fd,"//Process group with 9 BNs\n");
+  // Offset is 2*384/32 = 24
+  const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192},
+					 {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192},
+					 {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192},
+					 {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192},
+					 {0,24,48,72,96,120,144,168}};
+
+
+
+
+
+  if (lut_numCnInCnGroups[6] > 0)
+    {
+      // Number of groups of 32 CNs for parallel processing
+      // Ceil for values not divisible by 32
+      fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[6] );
+      // Set the offset to each bit within a group in terms of 32 Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>5;
+
+
+      // Set pointers to start of group 9
+      //p_cnProcBuf    = (__m256i*) &cnProcBuf   [lut_startAddrCnGroups[1]];
+      //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
+
+      // Loop over every BN
+     
+      for (j=0; j<9; j++)
+        {
+	  // Set of results pointer to correct BN address
+	  //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+	  // Loop over CNs
+	  //	  for (i=0; i<M; i++,iprime++)
+	  //            {
+	  fprintf(fd,"            for (int i=0;i<M;i++) {\n");
+	  // Abs and sign of 32 CNs (first BN)
+	  //                ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+	  fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>5)+lut_idxCnProcG9[j][0]);
+	  //                sgn  = _mm256_sign_epi8(ones, ymm0);
+	  fprintf(fd,"                sgn  = _mm256_sign_epi8(ones, ymm0);\n");
+	  //                min  = _mm256_abs_epi8(ymm0);
+	  fprintf(fd,"                min  = _mm256_abs_epi8(ymm0);\n");
+	  
+	  
+	  // Loop over BNs
+	  for (k=1; k<8; k++)
+	    {
+	      fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>5)+lut_idxCnProcG9[j][k]);
+	      
+	      //                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));
+	      fprintf(fd,"                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n");
+	      
+	      //                sgn  = _mm256_sign_epi8(sgn, ymm0);
+	      fprintf(fd,"                sgn  = _mm256_sign_epi8(sgn, ymm0);\n");
+	    }
+	  
+	  // Store result
+	  //                min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127
+	  fprintf(fd,"                min = _mm256_min_epu8(min, maxLLR);\n");
+	  //                *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn);
+	  //                p_cnProcBufResBit++;
+	  fprintf(fd,"                ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[6]>>5)+(j*bitOffsetInGroup));
+	  fprintf(fd,"            }\n");
+	}
+    }
+
+  // =====================================================================
+  // Process group with 10 BNs
+  fprintf(fd,"//Process group with 10 BNs\n");
+  // Offset is 1*384/32 = 12
+  const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108},
+					   {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108},
+					   {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108},
+					   {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108},
+					   {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}};
+
+
+
+
+
+  if (lut_numCnInCnGroups[7] > 0)
+    {
+      // Number of groups of 32 CNs for parallel processing
+      // Ceil for values not divisible by 32
+      fprintf(fd, " M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[7] );
+
+      // Set the offset to each bit within a group in terms of 32 Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>5;
+
+
+      // Set pointers to start of group 10
+      //p_cnProcBuf    = (__m256i*) &cnProcBuf   [lut_startAddrCnGroups[1]];
+      //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
+
+      // Loop over every BN
+      
+      for (j=0; j<10; j++)
+        {
+	  // Set of results pointer to correct BN address
+	  //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+	  // Loop over CNs
+	  //	  for (i=0; i<M; i++,iprime++)
+	  //            {
+	  fprintf(fd,"            for (int i=0;i<M;i++) {\n");
+	  // Abs and sign of 32 CNs (first BN)
+	  //                ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+	  fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>5)+lut_idxCnProcG10[j][0]);
+	  //                sgn  = _mm256_sign_epi8(ones, ymm0);
+	  fprintf(fd,"                sgn  = _mm256_sign_epi8(ones, ymm0);\n");
+	  //                min  = _mm256_abs_epi8(ymm0);
+	  fprintf(fd,"                min  = _mm256_abs_epi8(ymm0);\n");
+	  
+	  
+	  // Loop over BNs
+	  for (k=1; k<9; k++)
+	    {
+	      fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>5)+lut_idxCnProcG10[j][k]);
+	      
+	      //                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));
+	      fprintf(fd,"                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n");
+	      
+	      //                sgn  = _mm256_sign_epi8(sgn, ymm0);
+	      fprintf(fd,"                sgn  = _mm256_sign_epi8(sgn, ymm0);\n");
+	    }
+	  
+	  // Store result
+	  //                min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127
+	  fprintf(fd,"                min = _mm256_min_epu8(min, maxLLR);\n");
+	  //                *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn);
+	  //                p_cnProcBufResBit++;
+	  fprintf(fd,"                ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[7]>>5)+(j*bitOffsetInGroup));
+	  fprintf(fd,"            }\n");
+        }
+    }
+
+
+  // =====================================================================
+  // Process group with 19 BNs
+  fprintf(fd,"//Process group with 19 BNs\n");
+  // Offset is 4*384/32 = 12
+  const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864},
+					     {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864},
+					     {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864},
+					     {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864},
+					     {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864},
+					     {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864},
+					     {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864},
+					     {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864},
+					     {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864},
+					     {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}};
+
+
+  if (lut_numCnInCnGroups[8] > 0)
+    {
+      // Number of groups of 32 CNs for parallel processing
+      // Ceil for values not divisible by 32
+     fprintf(fd, " M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[8] );
+
+      // Set the offset to each bit within a group in terms of 32 Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>5;
+
+
+      // Set pointers to start of group 19
+      //p_cnProcBuf    = (__m256i*) &cnProcBuf   [lut_startAddrCnGroups[1]];
+      //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]];
+
+      // Loop over every BN
+      
+      for (j=0; j<19; j++)
+        {
+	  // Set of results pointer to correct BN address
+	  //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup);
+
+	  // Loop over CNs
+	  //	  for (i=0; i<M; i++,iprime++)
+	  //            {
+	  fprintf(fd,"            for (int i=0;i<M;i++) {\n");
+	  // Abs and sign of 32 CNs (first BN)
+	  //                ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+	  fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>5)+lut_idxCnProcG19[j][0]);
+	  //                sgn  = _mm256_sign_epi8(ones, ymm0);
+	  fprintf(fd,"                sgn  = _mm256_sign_epi8(ones, ymm0);\n");
+	  //                min  = _mm256_abs_epi8(ymm0);
+	  fprintf(fd,"                min  = _mm256_abs_epi8(ymm0);\n");
+	  
+	  
+	  // Loop over BNs
+	  for (k=1; k<18; k++)
+	    {
+	      fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>5)+lut_idxCnProcG19[j][k]);
+	      
+	      //                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));
+	      fprintf(fd,"                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n");
+	      
+	      //                sgn  = _mm256_sign_epi8(sgn, ymm0);
+	      fprintf(fd,"                sgn  = _mm256_sign_epi8(sgn, ymm0);\n");
+	    }
+	  
+	  // Store result
+	  //                min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127
+	  fprintf(fd,"                min = _mm256_min_epu8(min, maxLLR);\n");
+	  //                *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn);
+	  //                p_cnProcBufResBit++;
+	  fprintf(fd,"                ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[8]>>5)+(j*bitOffsetInGroup));
+	  fprintf(fd,"            }\n");
+        }
+    }
+
+  fprintf(fd,"}\n");
+  fclose(fd);
+}//end of the function  nrLDPC_cnProc_BG1
+
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c
new file mode 100644
index 00000000000..9a5ff84c868
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c
@@ -0,0 +1,436 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include "../../nrLDPCdecoder_defs.h"
+#include "../../nrLDPC_types.h"                                                                                           
+#include "../../nrLDPC_bnProc.h"
+
+
+void nrLDPC_cnProc_BG2_generator_AVX2(const char* dir, int R)
+{
+  const char *ratestr[3]={"15","13","23"};
+
+  if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();}
+
+
+//  system("mkdir -p ldpc_gen_files/avx2");
+
+  char fname[FILENAME_MAX+1];
+  snprintf(fname, sizeof(fname), "%s/cnProc/nrLDPC_cnProc_BG2_R%s_AVX2.h", dir, ratestr[R]);
+  FILE *fd=fopen(fname,"w");
+  if (fd == NULL) {
+    printf("Cannot create file %s\n", fname);
+    abort();
+  }
+
+  fprintf(fd,"#include <stdint.h>\n");
+  fprintf(fd,"#include <immintrin.h>\n");
+  fprintf(fd,"static inline void nrLDPC_cnProc_BG2_R%s_AVX2(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) {\n",ratestr[R]);
+
+  const uint8_t*  lut_numCnInCnGroups;
+  const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG2;
+
+  if (R==0)      lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R15;
+  else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R13;
+  else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R23;
+  else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();}
+
+
+  // Number of CNs in Groups
+  //uint32_t M;
+  uint32_t j;
+  uint32_t k;
+  // Offset to each bit within a group in terms of 32 byte
+  uint32_t bitOffsetInGroup;
+
+  // Offsets are in units of bitOffsetInGroup (1*384/32)
+  //    const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}};
+
+  // =====================================================================
+  // Process group with 3 BNs
+  fprintf(fd,"//Process group with 3 BNs\n");
+  // LUT with offsets for bits that need to be processed
+  // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc.
+    // Offsets are in units of bitOffsetInGroup
+    const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}};
+
+
+  fprintf(fd,"                __m256i ymm0, min, sgn,ones,maxLLR;\n");
+  fprintf(fd,"                ones   = _mm256_set1_epi8((char)1);\n");
+  fprintf(fd,"                maxLLR = _mm256_set1_epi8((char)127);\n");
+    fprintf(fd,"                uint32_t M;\n");
+ 
+
+  if (lut_numCnInCnGroups[0] > 0)
+    {
+      // Number of groups of 32 CNs for parallel processing
+      // Ceil for values not divisible by 32
+     fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[0] );
+
+      // Set the offset to each bit within a group in terms of 32 byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>5;
+
+      // Loop over every BN
+      
+      for (j=0; j<3; j++)
+        {
+
+            fprintf(fd,"            for (int i=0;i<M;i+=2) {\n");
+            // Abs and sign of 32 CNs (first BN)
+            //                ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+            fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][0]);
+            //                sgn  = _mm256_sign_epi8(ones, ymm0);
+            fprintf(fd,"                sgn  = _mm256_sign_epi8(ones, ymm0);\n");
+            //                min  = _mm256_abs_epi8(ymm0);
+            fprintf(fd,"                min  = _mm256_abs_epi8(ymm0);\n");
+            
+            // 32 CNs of second BN
+            //                ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i];
+            fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][1]);
+            
+            //                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));
+            fprintf(fd,"                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n");
+            
+            //                sgn  = _mm256_sign_epi8(sgn, ymm0);
+            fprintf(fd,"                sgn  = _mm256_sign_epi8(sgn, ymm0);\n");
+            
+            // Store result
+            //                min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127
+            fprintf(fd,"                min = _mm256_min_epu8(min, maxLLR);\n");
+            //                *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn);
+            //                p_cnProcBufResBit++;
+            fprintf(fd,"                ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup));
+
+            // Abs and sign of 32 CNs (first BN)
+            //                ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+            fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][0]+1);
+            //                sgn  = _mm256_sign_epi8(ones, ymm0);
+            fprintf(fd,"                sgn  = _mm256_sign_epi8(ones, ymm0);\n");
+            //                min  = _mm256_abs_epi8(ymm0);
+            fprintf(fd,"                min  = _mm256_abs_epi8(ymm0);\n");
+      
+            fprintf(fd,"            }\n");
+          }
+      }
+
+  // =====================================================================
+  // Process group with 4 BNs
+  fprintf(fd,"//Process group with 4 BNs\n");
+  
+ // Offset is 20*384/32 = 240
+    const uint16_t lut_idxCnProcG4[4][3] = {{240,480,720}, {0,480,720}, {0,240,720}, {0,240,480}};
+
+    if (lut_numCnInCnGroups[1] > 0)
+    {
+            // Number of groups of 32 CNs for parallel processing
+            // Ceil for values not divisible by 32
+        fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[1] );
+
+            // Set the offset to each bit within a group in terms of 32 byte
+            bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>5;
+
+            // Loop over every BN
+            
+          for (j=0; j<4; j++)
+          {
+
+          // Loop over CNs
+
+          fprintf(fd,"            for (int i=0;i<M;i++) {\n");
+          // Abs and sign of 32 CNs (first BN)
+          //                ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+          fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>5)+lut_idxCnProcG4[j][0]);
+          //                sgn  = _mm256_sign_epi8(ones, ymm0);
+           fprintf(fd,"                sgn  = _mm256_sign_epi8(ones, ymm0);\n");
+          //                min  = _mm256_abs_epi8(ymm0);
+          fprintf(fd,"                min  = _mm256_abs_epi8(ymm0);\n");
+            
+            
+          // Loop over BNs
+            for (k=1; k<3; k++)
+            {
+            fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>5)+lut_idxCnProcG4[j][k]);
+                
+            //                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));
+            fprintf(fd,"                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n");
+                
+            //                sgn  = _mm256_sign_epi8(sgn, ymm0);
+                fprintf(fd,"                sgn  = _mm256_sign_epi8(sgn, ymm0);\n");
+            }
+            
+            // Store result
+            //                min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127
+            fprintf(fd,"                min = _mm256_min_epu8(min, maxLLR);\n");
+            //                *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn);
+                //                p_cnProcBufResBit++;
+            fprintf(fd,"                ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[1]>>5)+(j*bitOffsetInGroup));
+            fprintf(fd,"            }\n");
+          }
+      }
+
+
+  // =====================================================================
+  // Process group with 5 BNs
+    fprintf(fd,"//Process group with 5 BNs\n");
+
+    // Offset is 9*384/32 = 108
+    const uint16_t lut_idxCnProcG5[5][4] = {{108,216,324,432}, {0,216,324,432},
+                                            {0,108,324,432}, {0,108,216,432}, {0,108,216,324}};
+
+
+
+    if (lut_numCnInCnGroups[2] > 0)
+    {
+      // Number of groups of 32 CNs for parallel processing
+      // Ceil for values not divisible by 32
+    fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[2] );
+      // Set the offset to each bit within a group in terms of 32 byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>5;
+
+      // Loop over every BN
+      
+      for (j=0; j<5; j++)
+	    {
+
+         
+         fprintf(fd,"            for (int i=0;i<M;i++) {\n");
+        // Abs and sign of 32 CNs (first BN)
+        //                ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+        fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>5)+lut_idxCnProcG5[j][0]);
+        //                sgn  = _mm256_sign_epi8(ones, ymm0);
+        fprintf(fd,"                sgn  = _mm256_sign_epi8(ones, ymm0);\n");
+        //                min  = _mm256_abs_epi8(ymm0);
+        fprintf(fd,"                min  = _mm256_abs_epi8(ymm0);\n");
+        
+        
+        // Loop over BNs
+        for (k=1; k<4; k++)
+        {
+          fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>5)+lut_idxCnProcG5[j][k]);
+            
+          //                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));
+          fprintf(fd,"                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n");
+            
+          //                sgn  = _mm256_sign_epi8(sgn, ymm0);
+          fprintf(fd,"                sgn  = _mm256_sign_epi8(sgn, ymm0);\n");
+        }
+        
+          // Store result
+        //                min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127
+        fprintf(fd,"                min = _mm256_min_epu8(min, maxLLR);\n");
+        //                *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn);
+        fprintf(fd,"                ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[2]>>5)+(j*bitOffsetInGroup));
+        fprintf(fd,"           }\n");
+      }
+    }
+
+  // =====================================================================
+  // Process group with 6 BNs
+  fprintf(fd,"//Process group with 6 BNs\n");
+    // Offset is 3*384/32 = 36
+  const uint16_t lut_idxCnProcG6[6][5] = {{36,72,108,144,180}, {0,72,108,144,180},
+                                            {0,36,108,144,180}, {0,36,72,144,180},
+                                            {0,36,72,108,180}, {0,36,72,108,144}};
+
+
+  if (lut_numCnInCnGroups[3] > 0)
+  {
+      // Number of groups of 32 CNs for parallel processing
+      // Ceil for values not divisible by 32
+      fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[3] );
+
+      // Set the offset to each bit within a group in terms of 32 byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>5;
+
+      // Loop over every BN
+      
+    for (j=0; j<6; j++)
+    {
+	
+
+	    // Loop over CNs
+	 
+	    fprintf(fd,"            for (int i=0;i<M;i++) {\n");
+	    // Abs and sign of 32 CNs (first BN)
+	    //                ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+	    fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>5)+lut_idxCnProcG6[j][0]);
+	    //                sgn  = _mm256_sign_epi8(ones, ymm0);
+	    fprintf(fd,"                sgn  = _mm256_sign_epi8(ones, ymm0);\n");
+	   //                min  = _mm256_abs_epi8(ymm0);
+	    fprintf(fd,"                min  = _mm256_abs_epi8(ymm0);\n");
+	  
+	  
+	    // Loop over BNs
+	    for (k=1; k<5; k++)
+	    {
+	    fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>5)+lut_idxCnProcG6[j][k]);
+	      
+	    //                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));
+	    fprintf(fd,"                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n");
+	      
+	    //                sgn  = _mm256_sign_epi8(sgn, ymm0);
+	    fprintf(fd,"                sgn  = _mm256_sign_epi8(sgn, ymm0);\n");
+	    }
+	  
+      // Store result
+      //                min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127
+      fprintf(fd,"                min = _mm256_min_epu8(min, maxLLR);\n");
+      //                *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn);
+      //                p_cnProcBufResBit++;
+      fprintf(fd,"                ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[3]>>5)+(j*bitOffsetInGroup));
+      fprintf(fd,"            }\n");
+	  }
+  }
+
+
+
+  // =====================================================================
+  // Process group with 8 BNs
+  fprintf(fd,"//Process group with 8 BNs\n");
+ // Offset is 2*384/32 = 24
+    const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,120,144,168}, {0,48,72,96,120,144,168},
+                                           {0,24,72,96,120,144,168}, {0,24,48,96,120,144,168},
+                                           {0,24,48,72,120,144,168}, {0,24,48,72,96,144,168},
+                                           {0,24,48,72,96,120,168}, {0,24,48,72,96,120,144}};
+
+
+
+
+
+
+    if (lut_numCnInCnGroups[4] > 0)
+    {
+      // Number of groups of 32 CNs for parallel processing
+      // Ceil for values not divisible by 32
+     fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[4] );
+
+      // Set the offset to each bit within a group in terms of 32 byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>5;
+
+      // Loop over every BN
+      
+      for (j=0; j<8; j++)
+      {
+
+	      // Loop over CNs
+        fprintf(fd,"            for (int i=0;i<M;i++) {\n");
+        // Abs and sign of 32 CNs (first BN)
+        //                ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+        fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>5)+lut_idxCnProcG8[j][0]);
+        //                sgn  = _mm256_sign_epi8(ones, ymm0);
+        fprintf(fd,"                sgn  = _mm256_sign_epi8(ones, ymm0);\n");
+        //                min  = _mm256_abs_epi8(ymm0);
+        fprintf(fd,"                min  = _mm256_abs_epi8(ymm0);\n");
+        
+	      // Loop over BNs
+          for (k=1; k<7; k++)
+          {
+          fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>5)+lut_idxCnProcG8[j][k]);
+            
+          //                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));
+          fprintf(fd,"                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n");
+            
+            //                sgn  = _mm256_sign_epi8(sgn, ymm0);
+          fprintf(fd,"                sgn  = _mm256_sign_epi8(sgn, ymm0);\n");
+          
+          }
+	  
+	        // Store result
+          //                min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127
+          fprintf(fd,"                min = _mm256_min_epu8(min, maxLLR);\n");
+          //                *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn);
+          //                p_cnProcBufResBit++;
+          fprintf(fd,"                ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[4]>>5)+(j*bitOffsetInGroup));
+          fprintf(fd,"              }\n");
+        }
+    }
+
+ 
+  // =====================================================================
+  // Process group with 10 BNs
+  fprintf(fd,"//Process group with 10 BNs\n");
+
+    const uint8_t lut_idxCnProcG10[10][9] = {{24,48,72,96,120,144,168,192,216}, {0,48,72,96,120,144,168,192,216},
+                                             {0,24,72,96,120,144,168,192,216}, {0,24,48,96,120,144,168,192,216},
+                                             {0,24,48,72,120,144,168,192,216}, {0,24,48,72,96,144,168,192,216},
+                                             {0,24,48,72,96,120,168,192,216}, {0,24,48,72,96,120,144,192,216},
+                                             {0,24,48,72,96,120,144,168,216}, {0,24,48,72,96,120,144,168,192}};
+
+
+
+
+
+    if (lut_numCnInCnGroups[5] > 0)
+    {
+      // Number of groups of 32 CNs for parallel processing
+      // Ceil for values not divisible by 32
+    fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[5] );
+
+      // Set the offset to each bit within a group in terms of 32 byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>5;
+
+      // Loop over every BN
+      
+      for (j=0; j<10; j++)
+      {
+
+      // Loop over CNs
+
+      fprintf(fd,"            for (int i=0;i<M;i++) {\n");
+      // Abs and sign of 32 CNs (first BN)
+        //                ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+      fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>5)+lut_idxCnProcG10[j][0]);
+        //                sgn  = _mm256_sign_epi8(ones, ymm0);
+      fprintf(fd,"                sgn  = _mm256_sign_epi8(ones, ymm0);\n");
+        //                min  = _mm256_abs_epi8(ymm0);
+      fprintf(fd,"                min  = _mm256_abs_epi8(ymm0);\n");
+        
+	  
+	  // Loop over BNs
+	     for (k=1; k<9; k++)
+	     {
+          fprintf(fd,"                ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>5)+lut_idxCnProcG10[j][k]);
+            
+            //                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));
+          fprintf(fd,"                min  = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n");
+            
+            //                sgn  = _mm256_sign_epi8(sgn, ymm0);
+          fprintf(fd,"                sgn  = _mm256_sign_epi8(sgn, ymm0);\n");
+        }
+	  
+          // Store result
+            //                min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127
+          fprintf(fd,"                min = _mm256_min_epu8(min, maxLLR);\n");
+            //                *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn);
+            //                p_cnProcBufResBit++;
+          fprintf(fd,"                ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[5]>>5)+(j*bitOffsetInGroup));
+          fprintf(fd,"            }\n");
+      }
+    }
+
+
+  fprintf(fd,"}\n");
+  fclose(fd);
+}//end of the function  nrLDPC_cnProc_BG2
+
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/main.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/main.c
new file mode 100644
index 00000000000..9d81417749b
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/main.c
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+#include <stdio.h>
+#include <stdint.h>
+#define NB_R  3
+void nrLDPC_cnProc_BG1_generator_AVX2(const char*, int);
+void nrLDPC_cnProc_BG2_generator_AVX2(const char*, int);
+
+const char *__asan_default_options()
+{
+  /* don't do leak checking in nr_ulsim, creates problems in the CI */
+  return "detect_leaks=0";
+}
+
+int main(int argc, char *argv[])
+{
+  if (argc != 2) {
+    fprintf(stderr, "usage: %s <output-dir>\n", argv[0]);
+    return 1;
+  }
+  const char *dir = argv[1];
+
+  int R[NB_R]={0,1,2};
+  for(int i=0; i<NB_R;i++) {
+    nrLDPC_cnProc_BG1_generator_AVX2(dir, R[i]);
+    nrLDPC_cnProc_BG2_generator_AVX2(dir, R[i]);
+  }
+
+  return(0);
+}
+
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/CMakeLists.txt b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/CMakeLists.txt
new file mode 100644
index 00000000000..7ca988f1ca2
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/CMakeLists.txt
@@ -0,0 +1,25 @@
+add_executable(cnProc_gen_avx512
+               cnProc_gen_BG1_avx512.c
+               cnProc_gen_BG2_avx512.c
+               main.c)
+target_compile_options(cnProc_gen_avx512 PRIVATE -W -Wall -mavx2)
+
+#set(cnProc_avx512_headers
+#    cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h
+#    cnProc_avx512/nrLDPC_cnProc_BG1_R23_AVX512.h
+#    cnProc_avx512/nrLDPC_cnProc_BG1_R89_AVX512.h
+#    cnProc_avx512/nrLDPC_cnProc_BG2_R13_AVX512.h
+#    cnProc_avx512/nrLDPC_cnProc_BG2_R15_AVX512.h
+#    cnProc_avx512/nrLDPC_cnProc_BG2_R23_AVX512.h)
+
+add_custom_command(TARGET cnProc_gen_avx512 POST_BUILD
+  #OUTPUT ${cnProc_avx512_headers}
+  COMMAND ${CMAKE_COMMAND} -E make_directory cnProc_avx512
+  COMMAND cnProc_gen_avx512 .
+  DEPENDS cnProc_gen_avx512
+  COMMENT "Generating LDPC cnProc header files for AVX512"
+)
+
+add_library(cnProc_gen_avx512_HEADERS INTERFACE)
+target_include_directories(cnProc_gen_avx512_HEADERS INTERFACE ${CMAKE_CURRENT_BINARY_DIR})
+add_dependencies(cnProc_gen_avx512_HEADERS cnProc_gen_avx512)
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c
new file mode 100644
index 00000000000..b007ac0e0bf
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c
@@ -0,0 +1,597 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include "../../nrLDPCdecoder_defs.h"
+
+void nrLDPC_cnProc_BG1_generator_AVX512(const char *dir, int R)
+{
+  const char *ratestr[3]={"13","23","89"};
+
+  if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();}
+
+
+ // system("mkdir -p ../ldpc_gen_files");
+
+  char fname[FILENAME_MAX+1];
+  snprintf(fname, sizeof(fname), "%s/cnProc_avx512/nrLDPC_cnProc_BG1_R%s_AVX512.h", dir, ratestr[R]);
+  FILE *fd=fopen(fname,"w");
+  if (fd == NULL) {
+    printf("Cannot create file %s\n", fname);
+    abort();
+  }
+
+ // fprintf(fd,"#include <stdint.h>\n");
+//  fprintf(fd,"#include <immintrin.h>\n");
+
+
+  fprintf(fd,   "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n");
+
+
+  fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX512(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) {\n",ratestr[R]);
+
+  const uint8_t*  lut_numCnInCnGroups;
+  const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1;
+
+  if (R==0)      lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13;
+  else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23;
+  else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89;
+  else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();}
+
+
+
+  uint32_t j;
+  uint32_t k;
+  // Offset to each bit within a group in terms of 64  Byte
+  uint32_t bitOffsetInGroup;
+
+
+  fprintf(fd,"                uint32_t M, i;\n");
+  fprintf(fd,"                __m512i zmm0, min, sgn,zeros,maxLLR, ones;\n");
+
+  fprintf(fd,"                  zeros  = _mm512_setzero_si512();\n");
+  fprintf(fd,"                  maxLLR = _mm512_set1_epi8((char)127);\n");
+  fprintf(fd,"                 ones = _mm512_set1_epi8((char)1);\n");
+
+
+
+  // =====================================================================
+  // Process group with 3 BNs
+  fprintf(fd,"//Process group with 3 BNs\n");
+  // LUT with offsets for bits that need to be processed
+  // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc.
+  // Offsets are in units of bitOffsetInGroup (1*384/32)12
+     // Offsets are in units of bitOffsetInGroup (1*384/32)12
+
+  const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}};
+
+  if (lut_numCnInCnGroups[0] > 0)
+    {
+      // Number of groups of 64  CNs for parallel processing
+      // Ceil for values not divisible by 64
+      //M = (lut_numCnInCnGroups[0]*Z + 63)>>6;
+
+       fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] );
+
+      // Set the offset to each bit within a group in terms of 64  Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6;
+
+     // Loop over every BN
+
+      for (j=0; j<3; j++)
+        {
+
+          fprintf(fd,"            for (i=0;i<M;i++) {\n");
+          // Abs and sign of 64  CNs (first BN)
+          //                zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+            fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][0]/2);
+            fprintf(fd,"                sgn  = _mm512_xor_si512(ones, zmm0);\n");
+            fprintf(fd,"                min  = _mm512_abs_epi8(zmm0);\n");
+
+
+         // for (k=1; k<2; k++)
+            //{
+              fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][1]/2);
+
+              //                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+              fprintf(fd,"                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n");
+
+              //                sgn  = _mm512_sign_epi8(*p_ones, zmm0);
+              fprintf(fd,"                sgn  = _mm512_xor_si512(sgn, zmm0);\n");
+           // }
+
+          // Store result
+          //                min = _mm512_min_epu8(min, *maxLLR); // 128 in epi8 is -127
+          fprintf(fd,"                min = _mm512_min_epu8(min, maxLLR);\n");
+          //                *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn);
+              //                p_cnProcBufResBit++;
+          fprintf(fd,"                ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup));
+          fprintf(fd,"            }\n");
+        }
+    
+    }
+
+  // =====================================================================
+  // Process group with 4 BNs
+  fprintf(fd,"//Process group with 4 BNs\n");
+    // Offset is 5*384/32 = 30
+  const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}};
+
+  if (lut_numCnInCnGroups[1] > 0)
+    {
+      // Number of groups of 64  CNs for parallel processing
+      // Ceil for values not divisible by 64
+      //M = (lut_numCnInCnGroups[1]*Z + 63)>>6;
+        fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] );
+      // Set the offset to each bit within a group in terms of 64  Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6;
+
+      // Loop over every BN
+      for (j=0; j<4; j++)
+        {
+        // Loop over CNs
+          //      for (i=0; i<M; i++,iprime++)
+          //            {
+          fprintf(fd,"            for (i=0;i<M;i++) {\n");
+          // Abs and sign of 64  CNs (first BN)
+          //                zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+          fprintf(fd,"              zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>6)+lut_idxCnProcG4[j][0]/2);
+               fprintf(fd,"                sgn  = _mm512_xor_si512(ones, zmm0);\n");
+            fprintf(fd,"                min  = _mm512_abs_epi8(zmm0);\n");
+
+
+          // Loop over BNs
+          for (k=1; k<3; k++)
+            {
+              fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>6)+lut_idxCnProcG4[j][k]/2);
+
+              //                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+              fprintf(fd,"                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n");
+
+              //                sgn  = _mm512_sign_epi8(*p_ones, zmm0);
+              fprintf(fd,"                sgn  = _mm512_xor_si512(sgn, zmm0);\n");
+            }
+
+          // Store result
+          //                min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127
+          fprintf(fd,"                min = _mm512_min_epu8(min, maxLLR);\n");
+          //                *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn);
+              //                p_cnProcBufResBit++;
+          fprintf(fd,"                ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[1]>>6)+(j*bitOffsetInGroup));
+          fprintf(fd,"            }\n");
+        }
+    }
+
+
+  // =====================================================================
+  // Process group with 5 BNs
+  fprintf(fd,"//Process group with 5 BNs\n");
+  // Offset is 18*384/32 = 216
+  const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864},
+                                          {0,216,648,864}, {0,216,432,864}, {0,216,432,648}};
+
+
+  if (lut_numCnInCnGroups[2] > 0)
+    {
+      // Number of groups of 64  CNs for parallel processing
+      // Ceil for values not divisible by 64
+      //M = (lut_numCnInCnGroups[2]*Z + 63)>>6;
+      fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] );
+
+      // Set the offset to each bit within a group in terms of 64  Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6;
+
+      // Loop over every BN
+
+      for (j=0; j<5; j++)
+        {
+
+          fprintf(fd,"            for (i=0;i<M;i++) {\n");
+          // Abs and sign of 64  CNs (first BN)
+          //                zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+          fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][0]/2);
+           fprintf(fd,"                sgn  = _mm512_xor_si512(ones, zmm0);\n");
+           fprintf(fd,"                min  = _mm512_abs_epi8(zmm0);\n");
+
+
+          // Loop over BNs
+          for (k=1; k<4; k++)
+            {
+              fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][k]/2);
+
+              //                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+              fprintf(fd,"                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n");
+
+              //                sgn  = _mm512_sign_epi8(*p_ones, zmm0);
+              fprintf(fd,"                sgn  = _mm512_xor_si512(sgn, zmm0);\n");
+            }
+
+          // Store result
+          //                min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127
+          fprintf(fd,"                min = _mm512_min_epu8(min, maxLLR);\n");
+
+          fprintf(fd,"                ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[2]>>6)+(j*bitOffsetInGroup));
+          fprintf(fd,"           }\n");
+        }
+    }
+
+  // =====================================================================
+  // Process group with 6 BNs
+  fprintf(fd,"//Process group with 6 BNs\n");
+    // Offset is 8*384/32 = 48
+  const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480},
+                                          {0,96,288,384,480}, {0,96,192,384,480},
+                                          {0,96,192,288,480}, {0,96,192,288,384}};
+
+
+  if (lut_numCnInCnGroups[3] > 0)
+    {
+      // Number of groups of 64  CNs for parallel processing
+      // Ceil for values not divisible by 64
+      //M = (lut_numCnInCnGroups[3]*Z + 63)>>6;
+
+      fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] );
+
+      // Set the offset to each bit within a group in terms of 64  Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6;
+
+      // Loop over every BN
+
+      for (j=0; j<6; j++)
+        {
+
+          fprintf(fd,"            for (i=0;i<M;i++) {\n");
+          // Abs and sign of 64  CNs (first BN)
+          //                zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+          fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][0]/2);
+           fprintf(fd,"                sgn  = _mm512_xor_si512(ones, zmm0);\n");
+           fprintf(fd,"                min  = _mm512_abs_epi8(zmm0);\n");
+
+
+          // Loop over BNs
+          for (k=1; k<5; k++)
+            {
+              fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][k]/2);
+
+              //                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+              fprintf(fd,"                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n");
+
+              //                sgn  = _mm512_sign_epi8(*p_ones, zmm0);
+              fprintf(fd,"                sgn  = _mm512_xor_si512(sgn, zmm0);\n");
+            }
+
+          // Store result
+          //                min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127
+          fprintf(fd,"                min = _mm512_min_epu8(min, maxLLR);\n");
+
+          fprintf(fd,"                ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[3]>>6)+(j*bitOffsetInGroup));
+          fprintf(fd,"            }\n");
+        }
+    }
+
+
+  // =====================================================================
+  // Process group with 7 BNs
+  fprintf(fd,"//Process group with 7 BNs\n");
+    // Offset is 5*384/32 = 30
+  const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360},
+                                          {0,60,180,240,300,360},   {0,60,120,240,300,360},
+                                          {0,60,120,180,300,360},   {0,60,120,180,240,360},
+                                          {0,60,120,180,240,300}};
+
+
+  if (lut_numCnInCnGroups[4] > 0)
+    {
+      // Number of groups of 64  CNs for parallel processing
+      // Ceil for values not divisible by 64
+     // M = (lut_numCnInCnGroups[4]*Z + 63)>>6;
+     fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] );
+
+      // Set the offset to each bit within a group in terms of 64  Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6;
+
+      // Loop over every BN
+
+      for (j=0; j<7; j++)
+        {
+          // Loop over CNs
+          //      for (i=0; i<M; i++,iprime++)
+          //            {
+          fprintf(fd,"            for (i=0;i<M;i++) {\n");
+          // Abs and sign of 64  CNs (first BN)
+          //                zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+          fprintf(fd,"                zmm0= ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>6)+lut_idxCnProcG7[j][0]/2);
+           fprintf(fd,"                sgn  = _mm512_xor_si512(ones, zmm0);\n");
+           fprintf(fd,"                min  = _mm512_abs_epi8(zmm0);\n");
+
+
+          // Loop over BNs
+          for (k=1; k<6; k++)
+            {
+              fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>6)+lut_idxCnProcG7[j][k]/2);
+
+              //                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+              fprintf(fd,"                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n");
+
+              //                sgn  = _mm512_sign_epi8(*p_ones, zmm0);
+              fprintf(fd,"                sgn  = _mm512_xor_si512(sgn, zmm0);\n");
+            }
+
+          // Store result
+          //                min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127
+          fprintf(fd,"                min = _mm512_min_epu8(min, maxLLR);\n");
+
+          fprintf(fd,"                ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[4]>>6)+(j*bitOffsetInGroup));
+          fprintf(fd,"            }\n");
+        }
+    }
+
+
+  // =====================================================================
+  // Process group with 8 BNs
+  fprintf(fd,"//Process group with 8 BNs\n");
+    // Offset is 2*384/32 = 24
+    const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,120,144,168}, {0,48,72,96,120,144,168},
+                                           {0,24,72,96,120,144,168}, {0,24,48,96,120,144,168},
+                                           {0,24,48,72,120,144,168}, {0,24,48,72,96,144,168},
+                                           {0,24,48,72,96,120,168}, {0,24,48,72,96,120,144}};
+
+ 
+  if (lut_numCnInCnGroups[5] > 0)
+    {
+      // Number of groups of 64  CNs for parallel processing
+      // Ceil for values not divisible by 64
+     // M = (lut_numCnInCnGroups[5]*Z + 63)>>6;
+     fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] );
+
+      // Set the offset to each bit within a group in terms of 64  Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6;
+
+      // Loop over every BN
+
+      for (j=0; j<8; j++)
+        {
+          // Loop over CNs
+          //      for (i=0; i<M; i++,iprime++)
+          //            {
+          fprintf(fd,"            for (i=0;i<M;i++) {\n");
+          // Abs and sign of 64  CNs (first BN)
+          //                zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+          fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>6)+lut_idxCnProcG8[j][0]/2);
+           fprintf(fd,"                sgn  = _mm512_xor_si512(ones, zmm0);\n");
+           fprintf(fd,"                min  = _mm512_abs_epi8(zmm0);\n");
+
+
+          // Loop over BNs
+          for (k=1; k<7; k++)
+            {
+              fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>6)+lut_idxCnProcG8[j][k]/2);
+
+              //                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+              fprintf(fd,"                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n");
+
+              //                sgn  = _mm512_sign_epi8(*p_ones, zmm0);
+              fprintf(fd,"                sgn  = _mm512_xor_si512(sgn, zmm0);\n");
+            }
+
+          // Store result
+          //                min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127
+          fprintf(fd,"                min = _mm512_min_epu8(min, maxLLR);\n");
+
+          fprintf(fd,"                ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[5]>>6)+(j*bitOffsetInGroup));
+          fprintf(fd,"              }\n");
+        }
+    }
+
+
+ // =====================================================================
+  // Process group with 9 BNs
+
+  fprintf(fd,"//Process group with 9 BNs\n");
+    // Offset is 2*384/32 = 12
+  const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192},
+                                         {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192},
+                                         {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192},
+                                         {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192},
+                                         {0,24,48,72,96,120,144,168}};
+
+
+  if (lut_numCnInCnGroups[6] > 0)
+    {
+      // Number of groups of 64  CNs for parallel processing
+      // Ceil for values not divisible by 64
+     // M = (lut_numCnInCnGroups[5]*Z + 63)>>6;
+     fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[6] );
+
+      // Set the offset to each bit within a group in terms of 64  Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6;
+
+      // Loop over every BN
+
+      for (j=0; j<9; j++)
+        {
+          // Loop over CNs
+          //      for (i=0; i<M; i++,iprime++)
+          //            {
+          fprintf(fd,"            for (i=0;i<M;i++) {\n");
+          // Abs and sign of 64  CNs (first BN)
+          //                zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+          fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>6)+lut_idxCnProcG9[j][0]/2);
+           fprintf(fd,"                sgn  = _mm512_xor_si512(ones, zmm0);\n");
+           fprintf(fd,"                min  = _mm512_abs_epi8(zmm0);\n");
+
+
+          // Loop over BNs
+          for (k=1; k<8; k++)
+            {
+              fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>6)+lut_idxCnProcG9[j][k]/2);
+
+              //                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+              fprintf(fd,"                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n");
+
+              //                sgn  = _mm512_sign_epi8(*p_ones, zmm0);
+              fprintf(fd,"                sgn  = _mm512_xor_si512(sgn, zmm0);\n");
+            }
+
+          // Store result
+          //                min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127
+          fprintf(fd,"                min = _mm512_min_epu8(min, maxLLR);\n");
+
+          fprintf(fd,"                ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[6]>>6)+(j*bitOffsetInGroup));
+          fprintf(fd,"              }\n");
+        }
+    }
+
+
+
+
+
+
+  // =====================================================================
+  // Process group with 10 BNs
+  fprintf(fd,"//Process group with 10 BNs\n");
+        // Offset is 1*384/32 = 6
+  const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108},
+                                           {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108},
+                                           {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108},
+                                           {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108},
+                                           {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}};
+
+  if (lut_numCnInCnGroups[7] > 0)
+    {
+      // Number of groups of 64  CNs for parallel processing
+      // Ceil for values not divisible by 64
+      //M = (lut_numCnInCnGroups[7]*Z + 63)>>6;
+      fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[7] );
+
+      // Set the offset to each bit within a group in terms of 64  Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6;
+
+
+      // Loop over every BN
+
+      for (j=0; j<10; j++)
+        {
+          // Loop over CNs
+          //      for (i=0; i<M; i++,iprime++)
+          //            {
+          fprintf(fd,"            for (i=0;i<M;i++) {\n");
+          // Abs and sign of 64  CNs (first BN)
+          //                zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+          fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>6)+lut_idxCnProcG10[j][0]/2);
+           fprintf(fd,"                sgn  = _mm512_xor_si512(ones, zmm0);\n");
+           fprintf(fd,"                min  = _mm512_abs_epi8(zmm0);\n");
+
+
+          // Loop over BNs
+          for (k=1; k<9; k++)
+            {
+              fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>6)+lut_idxCnProcG10[j][k]/2);
+
+              //                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+              fprintf(fd,"                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n");
+
+              //                sgn  = _mm512_sign_epi8(*p_ones, zmm0);
+              fprintf(fd,"                sgn  = _mm512_xor_si512(sgn, zmm0);\n");
+            }
+
+          // Store result
+          //                min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127
+          fprintf(fd,"                min = _mm512_min_epu8(min, maxLLR);\n");
+
+          fprintf(fd,"                ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min,sgn,zeros);\n",(lut_startAddrCnGroups[7]>>6)+(j*bitOffsetInGroup));
+          fprintf(fd,"            }\n");
+        }
+    }
+
+
+  // =====================================================================
+  // Process group with 19 BNs
+  fprintf(fd,"//Process group with 19 BNs\n");
+  // Offset is 4*384/32 = 24
+  const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864},
+                                             {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864},
+                                             {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864},
+                                             {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864},
+                                             {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864},
+                                             {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864},
+                                             {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864},
+                                             {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864},
+                                             {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864},
+                                             {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}};
+
+
+  if (lut_numCnInCnGroups[8] > 0)
+    {
+      // Number of groups of 64  CNs for parallel processing
+      // Ceil for values not divisible by 64
+     // M = (lut_numCnInCnGroups[8]*Z + 63)>>6;
+     fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[8] );
+
+      // Set the offset to each bit within a group in terms of 64  Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6;
+
+      // Loop over every BN
+
+      for (j=0; j<19; j++)
+        {
+          // Loop over CNs
+          //      for (i=0; i<M; i++,iprime++)
+          //            {
+          fprintf(fd,"            for (i=0;i<M;i++) {\n");
+          // Abs and sign of 64  CNs (first BN)
+          //                zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+          fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>6)+lut_idxCnProcG19[j][0]/2);
+           fprintf(fd,"                sgn  = _mm512_xor_si512(ones, zmm0);\n");
+           fprintf(fd,"                min  = _mm512_abs_epi8(zmm0);\n");
+
+
+          // Loop over BNs
+          for (k=1; k<18; k++)
+            {
+              fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>6)+lut_idxCnProcG19[j][k]/2);
+
+              //                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+              fprintf(fd,"                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n");
+
+              //                sgn  = _mm512_sign_epi8(*p_ones, zmm0);
+              fprintf(fd,"                sgn  = _mm512_xor_si512(sgn, zmm0);\n");
+            }
+
+          // Store result
+          //                min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127
+          fprintf(fd,"                min = _mm512_min_epu8(min, maxLLR);\n");
+
+          fprintf(fd,"                ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[8]>>6)+(j*bitOffsetInGroup));
+          fprintf(fd,"            }\n");
+        }
+    }
+
+  fprintf(fd,"}\n");
+  fclose(fd);
+}//end of the function  nrLDPC_cnProc_BG1
+
+
+
+
+
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.c
new file mode 100644
index 00000000000..8a9e592f6f7
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.c
@@ -0,0 +1,414 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdint.h>
+#include "../../nrLDPCdecoder_defs.h"
+
+void nrLDPC_cnProc_BG2_generator_AVX512(const char *dir, int R)
+{
+  const char *ratestr[3]={"15","13","23"};
+
+  if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();}
+
+
+ // system("mkdir -p ../ldpc_gen_files");
+
+  char fname[FILENAME_MAX+1];
+  snprintf(fname, sizeof(fname), "%s/cnProc_avx512/nrLDPC_cnProc_BG2_R%s_AVX512.h", dir, ratestr[R]);
+  FILE *fd=fopen(fname,"w");
+  if (fd == NULL) {
+    printf("Cannot create file %s\n", fname);
+    abort();
+  }
+
+  //fprintf(fd,"#include <stdint.h>\n");
+//  fprintf(fd,"#include <immintrin.h>\n");
+
+
+  fprintf(fd,   "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n");
+
+
+
+ fprintf(fd,"static inline void nrLDPC_cnProc_BG2_R%s_AVX512(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) {\n",ratestr[R]);
+  const uint8_t*  lut_numCnInCnGroups;
+  const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG2;
+
+  if (R==0)      lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R15;
+  else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R13;
+  else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R23;
+  else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();}
+
+
+  // Number of CNs in Groups
+  //uint32_t M;
+  uint32_t j;
+  uint32_t k;
+  // Offset to each bit within a group in terms of 64  Byte
+  uint32_t bitOffsetInGroup;
+
+ fprintf(fd,"                uint32_t M;\n");
+  fprintf(fd,"                __m512i zmm0, min, sgn,zeros,ones,maxLLR;\n");
+  fprintf(fd,"                zeros  = _mm512_setzero_si512();\n");
+  fprintf(fd,"                maxLLR = _mm512_set1_epi8((char)127);\n");
+    fprintf(fd,"               ones = _mm512_set1_epi8((char)1);\n");
+  // =====================================================================
+  // Process group with 3 BNs
+  fprintf(fd,"//Process group with 3 BNs\n");
+  // LUT with offsets for bits that need to be processed
+  // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc.
+  // Offsets are in units of bitOffsetInGroup
+   const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}};
+
+
+  if (lut_numCnInCnGroups[0] > 0)
+    {
+      // Number of groups of 64  CNs for parallel processing
+      // Ceil for values not divisible by 64
+       fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] );
+
+      // Set the offset to each bit within a group in terms of 64  Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>6;
+
+
+      // Loop over every BN
+
+      for (j=0; j<3; j++)
+        {
+
+
+
+          fprintf(fd,"            for (int i=0;i<M;i++) {\n");
+          // Abs and sign of 64  CNs (first BN)
+          //                zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+            fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][0]/2);
+            fprintf(fd,"                sgn  = _mm512_xor_si512(ones, zmm0);\n");
+            fprintf(fd,"                min  = _mm512_abs_epi8(zmm0);\n");
+
+
+         // for (k=1; k<2; k++)
+            //{
+              fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][1]/2);
+
+              //                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+              fprintf(fd,"                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n");
+
+              //                sgn  = _mm512_sign_epi8(*p_ones, zmm0);
+              fprintf(fd,"                sgn  = _mm512_xor_si512(sgn, zmm0);\n");
+           // }
+
+          // Store result
+          //                min = _mm512_min_epu8(min, *maxLLR); // 128 in epi8 is -127
+          fprintf(fd,"                min = _mm512_min_epu8(min, maxLLR);\n");
+          //                *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn);
+              //                p_cnProcBufResBit++;
+          fprintf(fd,"                ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup));
+          fprintf(fd,"            }\n");
+        }
+
+    }
+
+
+  // =====================================================================
+  // Process group with 4 BNs
+  fprintf(fd,"//Process group with 4 BNs\n");
+ // Offset is 20*384/32 = 240
+    const uint16_t lut_idxCnProcG4[4][3] = {{240,480,720}, {0,480,720}, {0,240,720}, {0,240,480}};
+
+
+  if (lut_numCnInCnGroups[1] > 0)
+    {
+      // Number of groups of 64  CNs for parallel processing
+      // Ceil for values not divisible by 64
+      fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] );
+
+      // Set the offset to each bit within a group in terms of 64  Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>6;
+
+      // Loop over every BN
+      for (j=0; j<4; j++)
+        {
+          fprintf(fd,"            for (int i=0;i<M;i++) {\n");
+          // Abs and sign of 64  CNs (first BN)
+          //                zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+          fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>6)+lut_idxCnProcG4[j][0]/2);
+            fprintf(fd,"                sgn  = _mm512_xor_si512(ones, zmm0);\n");
+          fprintf(fd,"                min  = _mm512_abs_epi8(zmm0);\n");
+
+
+          // Loop over BNs
+          for (k=1; k<3; k++)
+            {
+              fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>6)+lut_idxCnProcG4[j][k]/2);
+
+              //                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+              fprintf(fd,"                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n");
+
+              //                sgn  = _mm512_sign_epi8(sgn, zmm0);
+              fprintf(fd,"                sgn  = _mm512_xor_si512(sgn, zmm0);\n");
+            }
+
+          // Store result
+          //                min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127
+          fprintf(fd,"                min = _mm512_min_epu8(min, maxLLR);\n");
+          //                *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn);
+              //                p_cnProcBufResBit++;
+          fprintf(fd,"                ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[1]>>6)+(j*bitOffsetInGroup));
+          fprintf(fd,"            }\n");
+        }
+    }
+
+
+  // =====================================================================
+  // Process group with 5 BNs
+  fprintf(fd,"//Process group with 5 BNs\n");
+    // Offset is 9*384/32 = 108
+    const uint16_t lut_idxCnProcG5[5][4] = {{108,216,324,432}, {0,216,324,432},
+                                            {0,108,324,432}, {0,108,216,432}, {0,108,216,324}};
+                                            
+
+
+
+  if (lut_numCnInCnGroups[2] > 0)
+    {
+      // Number of groups of 64  CNs for parallel processing
+      // Ceil for values not divisible by 64
+       fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] );
+
+      // Set the offset to each bit within a group in terms of 64  Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>6;
+
+      // Loop over every BN
+
+      for (j=0; j<5; j++)
+        {
+
+          fprintf(fd,"            for (int i=0;i<M;i++) {\n");
+          // Abs and sign of 64  CNs (first BN)
+          //                zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+          fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][0]/2);
+            fprintf(fd,"                sgn  = _mm512_xor_si512(ones, zmm0);\n");
+          fprintf(fd,"                min  = _mm512_abs_epi8(zmm0);\n");
+
+
+          // Loop over BNs
+          for (k=1; k<4; k++)
+            {
+              fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][k]/2);
+
+              //                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+              fprintf(fd,"                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n");
+
+              //                sgn  = _mm512_sign_epi8(sgn, zmm0);
+              fprintf(fd,"                sgn  = _mm512_xor_si512(sgn, zmm0);\n");
+            }
+
+          // Store result
+          //                min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127
+          fprintf(fd,"                min = _mm512_min_epu8(min, maxLLR);\n");
+
+          fprintf(fd,"                ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[2]>>6)+(j*bitOffsetInGroup));
+          fprintf(fd,"           }\n");
+        }
+    }
+
+  // =====================================================================
+  // Process group with 6 BNs
+  fprintf(fd,"//Process group with 6 BNs\n");
+    // Offset is 3*384/32 = 36
+  const uint16_t lut_idxCnProcG6[6][5] = {{36,72,108,144,180}, {0,72,108,144,180},
+                                            {0,36,108,144,180}, {0,36,72,144,180},
+                                            {0,36,72,108,180}, {0,36,72,108,144}};
+                                            
+
+
+
+  if (lut_numCnInCnGroups[3] > 0)
+    {
+      // Number of groups of 64  CNs for parallel processing
+      // Ceil for values not divisible by 64
+       fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] );
+
+      // Set the offset to each bit within a group in terms of 64  Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>6;
+
+      // Loop over every BN
+
+      for (j=0; j<6; j++)
+        {
+
+          fprintf(fd,"            for (int i=0;i<M;i++) {\n");
+          // Abs and sign of 64  CNs (first BN)
+          //                zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+          fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][0]/2);
+            fprintf(fd,"                sgn  = _mm512_xor_si512(ones, zmm0);\n");
+          fprintf(fd,"                min  = _mm512_abs_epi8(zmm0);\n");
+
+
+          // Loop over BNs
+          for (k=1; k<5; k++)
+            {
+              fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][k]/2);
+
+              //                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+              fprintf(fd,"                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n");
+
+              //                sgn  = _mm512_sign_epi8(sgn, zmm0);
+              fprintf(fd,"                sgn  = _mm512_xor_si512(sgn, zmm0);\n");
+            }
+
+          // Store result
+          //                min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127
+          fprintf(fd,"                min = _mm512_min_epu8(min, maxLLR);\n");
+
+          fprintf(fd,"                ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[3]>>6)+(j*bitOffsetInGroup));
+          fprintf(fd,"            }\n");
+        }
+    }
+
+
+
+  // =====================================================================
+  // Process group with 8 BNs
+  fprintf(fd,"//Process group with 8 BNs\n");
+ // Offset is 2*384/32 = 24
+    const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,120,144,168}, {0,48,72,96,120,144,168},
+                                           {0,24,72,96,120,144,168}, {0,24,48,96,120,144,168},
+                                           {0,24,48,72,120,144,168}, {0,24,48,72,96,144,168},
+                                           {0,24,48,72,96,120,168}, {0,24,48,72,96,120,144}};
+
+                                           
+
+
+  if (lut_numCnInCnGroups[4] > 0)
+    {
+      // Number of groups of 64  CNs for parallel processing
+      // Ceil for values not divisible by 64
+       fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] );
+
+      // Set the offset to each bit within a group in terms of 64  Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>6;
+
+      // Loop over every BN
+
+      for (j=0; j<8; j++)
+        {
+
+          fprintf(fd,"            for (int i=0;i<M;i++) {\n");
+          // Abs and sign of 64  CNs (first BN)
+          //                zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+          fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>6)+lut_idxCnProcG8[j][0]/2);
+            fprintf(fd,"                sgn  = _mm512_xor_si512(ones, zmm0);\n");
+          fprintf(fd,"                min  = _mm512_abs_epi8(zmm0);\n");
+
+
+          // Loop over BNs
+          for (k=1; k<7; k++)
+            {
+              fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>6)+lut_idxCnProcG8[j][k]/2);
+
+              //                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+              fprintf(fd,"                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n");
+
+              //                sgn  = _mm512_sign_epi8(sgn, zmm0);
+              fprintf(fd,"                sgn  = _mm512_xor_si512(sgn, zmm0);\n");
+            }
+
+          // Store result
+          //                min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127
+          fprintf(fd,"                min = _mm512_min_epu8(min, maxLLR);\n");
+
+          fprintf(fd,"                ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[4]>>6)+(j*bitOffsetInGroup));
+          fprintf(fd,"              }\n");
+        }
+    }
+
+
+  // =====================================================================
+  // Process group with 10 BNs
+  fprintf(fd,"//Process group with 10 BNs\n");
+
+  const uint8_t lut_idxCnProcG10[10][9] = {{24,48,72,96,120,144,168,192,216}, {0,48,72,96,120,144,168,192,216},
+                                             {0,24,72,96,120,144,168,192,216}, {0,24,48,96,120,144,168,192,216},
+                                             {0,24,48,72,120,144,168,192,216}, {0,24,48,72,96,144,168,192,216},
+                                             {0,24,48,72,96,120,168,192,216}, {0,24,48,72,96,120,144,192,216},
+                                             {0,24,48,72,96,120,144,168,216}, {0,24,48,72,96,120,144,168,192}};
+
+                                             
+
+
+  if (lut_numCnInCnGroups[5] > 0)
+    {
+      // Number of groups of 64  CNs for parallel processing
+      // Ceil for values not divisible by 64
+       fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] );
+
+      // Set the offset to each bit within a group in terms of 64  Byte
+      bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>6;
+
+     // Loop over every BN
+
+      for (j=0; j<10; j++)
+        {
+
+          fprintf(fd,"            for (int i=0;i<M;i++) {\n");
+          // Abs and sign of 64  CNs (first BN)
+          //                zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i];
+          fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>6)+lut_idxCnProcG10[j][0]/2);
+            fprintf(fd,"                sgn  = _mm512_xor_si512(ones, zmm0);\n");
+          fprintf(fd,"                min  = _mm512_abs_epi8(zmm0);\n");
+
+
+          // Loop over BNs
+          for (k=1; k<9; k++)
+            {
+              fprintf(fd,"                zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>6)+lut_idxCnProcG10[j][k]/2);
+
+              //                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));
+              fprintf(fd,"                min  = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n");
+
+              //                sgn  = _mm512_sign_epi8(sgn, zmm0);
+              fprintf(fd,"                sgn  = _mm512_xor_si512(sgn, zmm0);\n");
+            }
+
+          // Store result
+          //                min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127
+          fprintf(fd,"                min = _mm512_min_epu8(min, maxLLR);\n");
+
+          fprintf(fd,"                ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min,sgn,zeros);\n",(lut_startAddrCnGroups[5]>>6)+(j*bitOffsetInGroup));
+          fprintf(fd,"            }\n");
+        }
+    }
+
+
+  fprintf(fd,"}\n");
+  fclose(fd);
+}//end of the function  nrLDPC_cnProc_BG2
+
+
+
+
+
+
+
+
+
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/main.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/main.c
new file mode 100644
index 00000000000..04a6527c694
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/main.c
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+#include <stdio.h>
+#include <stdint.h>
+#define NB_R  3
+void nrLDPC_cnProc_BG1_generator_AVX512(const char *, int);
+void nrLDPC_cnProc_BG2_generator_AVX512(const char *, int);
+
+const char *__asan_default_options()
+{
+  /* don't do leak checking in nr_ulsim, creates problems in the CI */
+  return "detect_leaks=0";
+}
+
+int main(int argc, char *argv[])
+{
+  if (argc != 2) {
+    fprintf(stderr, "usage: %s <output-dir>\n", argv[0]);
+    return 1;
+  }
+  const char *dir = argv[1];
+
+  int R[NB_R]={0,1,2};
+  for(int i=0; i<NB_R;i++){
+    nrLDPC_cnProc_BG1_generator_AVX512(dir, R[i]);
+    nrLDPC_cnProc_BG2_generator_AVX512(dir, R[i]);
+  }
+
+  return(0);
+}
+
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/run_ldpc_generators.sh b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/run_ldpc_generators.sh
new file mode 100755
index 00000000000..091034b9787
--- /dev/null
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/run_ldpc_generators.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+echo "to build the LDPC decoder headers: go to the build directory, and type"
+echo "make/ninja ldpc_generators"
+echo
+echo "assuming your build directory is ran_build/build, I trigger building for"
+echo "you now. The generated headers will be in ran_build/build/ldpc/generator_*/"
+echo
+
+cd $OPENAIR_HOME/cmake_targets/ran_build/build
+make ldpc_generators || ninja ldpc_generators
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_types.h b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_types.h
index b7b15b5d334..fb52c5b4284 100644
--- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_types.h
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_types.h
@@ -30,8 +30,9 @@
 
 #ifndef __NR_LDPC_TYPES__H__
 #define __NR_LDPC_TYPES__H__
-
+#ifndef CODEGEN
 #include "time_meas.h"
+#endif
 #include "nrLDPCdecoder_defs.h"
 // ==============================================================================
 // TYPES
@@ -77,6 +78,7 @@ typedef struct nrLDPC_dec_params {
 /**
    Structure containing LDPC decoder processing time statistics.
  */
+#ifndef CODEGEN
 typedef struct nrLDPC_time_stats {
     time_stats_t llr2llrProcBuf; /**< Statistics for function llr2llrProcBuf */
     time_stats_t llr2CnProcBuf; /**< Statistics for function llr2CnProcBuf */
@@ -90,7 +92,7 @@ typedef struct nrLDPC_time_stats {
     time_stats_t llr2bit; /**< Statistics for function llr2bit */
     time_stats_t total; /**< Statistics for total processing time */
 } t_nrLDPC_time_stats;
-
+#endif
 /**
    Structure containing the processing buffers
  */
diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPCdecoder_defs.h b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPCdecoder_defs.h
index c35f93e0fe7..083fe39bff7 100644
--- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPCdecoder_defs.h
+++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPCdecoder_defs.h
@@ -198,4 +198,14 @@ static const int8_t zeros256_epi8[32] __attribute__ ((aligned(32))) = {0,0,0,0,0
 /** Vector of 32 '127' in int8 for application with AVX2 */
 static const int8_t maxLLR256_epi8[32] __attribute__ ((aligned(32))) = {127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127};
 
+/** Vector of 64 '1' in int8 for application with AVX512 */
+static const int8_t ones512_epi8[64] __attribute__ ((aligned(64))) = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
+/** Vector of 64 '0' in int8 for application with AVX512 */
+static const int8_t zeros512_epi8[64] __attribute__ ((aligned(64))) = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+/** Vector of 64 '127' in int8 for application with AVX512 */
+static const int8_t maxLLR512_epi8[64] __attribute__ ((aligned(64))) = {127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127};
+
+
+
+
 #endif
diff --git a/openair1/PHY/CODING/nr_rate_matching.c b/openair1/PHY/CODING/nr_rate_matching.c
index 782bb390243..06dfcaa4a94 100644
--- a/openair1/PHY/CODING/nr_rate_matching.c
+++ b/openair1/PHY/CODING/nr_rate_matching.c
@@ -387,8 +387,7 @@ void nr_deinterleaving_ldpc(uint32_t E, uint8_t Qm, int16_t *e,int16_t *f)
 }
 
 
-int nr_rate_matching_ldpc(uint8_t Ilbrm,
-                          uint32_t Tbslbrm,
+int nr_rate_matching_ldpc(uint32_t Tbslbrm,
                           uint8_t BG,
                           uint16_t Z,
                           uint8_t *w,
@@ -409,7 +408,7 @@ int nr_rate_matching_ldpc(uint8_t Ilbrm,
   //Bit selection
   N = (BG==1)?(66*Z):(50*Z);
 
-  if (Ilbrm == 0)
+  if (Tbslbrm == 0)
       Ncb = N;
   else {
       Nref = 3*Tbslbrm/(2*C); //R_LBRM = 2/3
@@ -419,11 +418,11 @@ int nr_rate_matching_ldpc(uint8_t Ilbrm,
   ind = (index_k0[BG-1][rvidx]*Ncb/N)*Z;
 
 #ifdef RM_DEBUG
-  printf("nr_rate_matching_ldpc: E %d, F %d, Foffset %d, k0 %d, Ncb %d, rvidx %d, Ilbrm %d\n", E, F, Foffset,ind, Ncb, rvidx, Ilbrm);
+  printf("nr_rate_matching_ldpc: E %d, F %d, Foffset %d, k0 %d, Ncb %d, rvidx %d, Tbslbrm %d\n", E, F, Foffset,ind, Ncb, rvidx, Tbslbrm);
 #endif
 
   if (Foffset > E) {
-    LOG_E(PHY,"nr_rate_matching: invalid parameters (Foffset %d > E %d) F %d, k0 %d, Ncb %d, rvidx %d, Ilbrm %d\n",Foffset,E,F, ind, Ncb, rvidx, Ilbrm);
+    LOG_E(PHY,"nr_rate_matching: invalid parameters (Foffset %d > E %d) F %d, k0 %d, Ncb %d, rvidx %d, Tbslbrm %d\n",Foffset,E,F, ind, Ncb, rvidx, Tbslbrm);
     return -1;
   }
   if (Foffset > Ncb) {
@@ -471,8 +470,7 @@ int nr_rate_matching_ldpc(uint8_t Ilbrm,
   return 0;
 }
 
-int nr_rate_matching_ldpc_rx(uint8_t Ilbrm,
-                             uint32_t Tbslbrm,
+int nr_rate_matching_ldpc_rx(uint32_t Tbslbrm,
                              uint8_t BG,
                              uint16_t Z,
                              int16_t *w,
@@ -498,7 +496,7 @@ int nr_rate_matching_ldpc_rx(uint8_t Ilbrm,
   //Bit selection
   N = (BG==1)?(66*Z):(50*Z);
 
-  if (Ilbrm == 0)
+  if (Tbslbrm == 0)
       Ncb = N;
   else {
       Nref = (3*Tbslbrm/(2*C)); //R_LBRM = 2/3
@@ -516,7 +514,7 @@ int nr_rate_matching_ldpc_rx(uint8_t Ilbrm,
   }
 
 #ifdef RM_DEBUG
-  printf("nr_rate_matching_ldpc_rx: Clear %d, E %d, k0 %d, Ncb %d, rvidx %d, Ilbrm %d\n", clear, E, ind, Ncb, rvidx, Ilbrm);
+  printf("nr_rate_matching_ldpc_rx: Clear %d, E %d, k0 %d, Ncb %d, rvidx %d, Tbslbrm %d\n", clear, E, ind, Ncb, rvidx, Tbslbrm);
 #endif
 
   if (clear==1) memset(w,0,Ncb*sizeof(int16_t));
diff --git a/openair1/PHY/INIT/nr_init.c b/openair1/PHY/INIT/nr_init.c
index 680d3684efe..b6427f5cf09 100644
--- a/openair1/PHY/INIT/nr_init.c
+++ b/openair1/PHY/INIT/nr_init.c
@@ -136,7 +136,7 @@ int init_codebook_gNB(PHY_VARS_gNB *gNB) {
         }
       }
 
-      int max_mimo_layers =(CSI_RS_antenna_ports<NR_MAX_NB_LAYERS) ? CSI_RS_antenna_ports : NR_MAX_NB_LAYERS;
+      int max_mimo_layers = (CSI_RS_antenna_ports<NR_MAX_NB_LAYERS) ? CSI_RS_antenna_ports : NR_MAX_NB_LAYERS;
 
       gNB->nr_mimo_precoding_matrix = (int32_t ***)malloc16(max_mimo_layers* sizeof(int32_t **));
       int32_t ***mat = gNB->nr_mimo_precoding_matrix;
@@ -236,7 +236,7 @@ int init_codebook_gNB(PHY_VARS_gNB *gNB) {
                 if((llb != ll) || (mmb != mm) || ((N1 == 1) && (N2 == 1))){
                   pmiq += 1;
                   mat[1][pmiq] = (int32_t *)malloc16((2*N1*N2)*(2)*sizeof(int32_t));
-                  LOG_I(PHY, "layer 2 Codebook pmiq = %d\n",pmiq);
+                  LOG_D(PHY, "layer 2 Codebook pmiq = %d\n",pmiq);
                   for(int j_col=0; j_col<2; j_col++) {
                     if (j_col==0) {
                       llc = llb;
@@ -320,7 +320,7 @@ int init_codebook_gNB(PHY_VARS_gNB *gNB) {
                   if((llb != ll) || (mmb != mm)){
                     pmiq += 1;
                     mat[2][pmiq] = (int32_t *)malloc16((2*N1*N2)*(3)*sizeof(int32_t));
-                    LOG_I(PHY, "layer 3 Codebook pmiq = %d\n",pmiq);
+                    LOG_D(PHY, "layer 3 Codebook pmiq = %d\n",pmiq);
                     for(int j_col=0; j_col<3; j_col++) {
                       if (j_col==0) {
                         llc = llb;
@@ -411,7 +411,7 @@ int init_codebook_gNB(PHY_VARS_gNB *gNB) {
                   if((llb != ll) || (mmb != mm)){
                     pmiq += 1;
                     mat[3][pmiq] = (int32_t *)malloc16((2*N1*N2)*4*sizeof(int32_t));
-                    LOG_I(PHY, "layer 4 pmiq = %d\n",pmiq);
+                    LOG_D(PHY, "layer 4 pmiq = %d\n",pmiq);
                     for(int j_col=0; j_col<4; j_col++) {
                       if (j_col==0) {
                         llc = llb;
@@ -544,8 +544,8 @@ int phy_init_nr_gNB(PHY_VARS_gNB *gNB,
   gNB->nr_gold_pdsch_dmrs = (uint32_t ****)malloc16(fp->slots_per_frame*sizeof(uint32_t ***));
   uint32_t ****pdsch_dmrs             = gNB->nr_gold_pdsch_dmrs;
 
-  // ceil(((NB_RB*6(k)*2(QPSK)/32) // 3 RE *2(QPSK)
-  int pdsch_dmrs_init_length =  ((fp->N_RB_DL*12)>>5)+1;
+  // ceil(((NB_RB*12(k)*2(QPSK)/32) // 3 RE *2(QPSK)
+  const int pdsch_dmrs_init_length =  ((fp->N_RB_DL*24)>>5)+1;
   for (int slot=0; slot<fp->slots_per_frame; slot++) {
     pdsch_dmrs[slot] = (uint32_t ***)malloc16(fp->symbols_per_slot*sizeof(uint32_t **));
     AssertFatal(pdsch_dmrs[slot]!=NULL, "NR init: pdsch_dmrs for slot %d - malloc failed\n", slot);
@@ -593,26 +593,23 @@ int phy_init_nr_gNB(PHY_VARS_gNB *gNB,
     nr_gold_pusch(gNB, nscid, gNB->pusch_gold_init[nscid]);
   }
 
-  //CSI RS init
-  gNB->nr_gold_csi_rs = (uint32_t ***)malloc16(fp->slots_per_frame*sizeof(uint32_t **));
-  uint32_t ***csi_rs = gNB->nr_gold_csi_rs;
-  AssertFatal(csi_rs!=NULL, "NR init: csi reference signal malloc failed\n");
-
+  // CSI RS init
   // ceil((NB_RB*8(max allocation per RB)*2(QPSK))/32)
   int csi_dmrs_init_length =  ((fp->N_RB_DL<<4)>>5)+1;
-
+  gNB->nr_csi_info = (nr_csi_info_t *)malloc16_clear(sizeof(nr_csi_info_t));
+  gNB->nr_csi_info->nr_gold_csi_rs = (uint32_t ***)malloc16(fp->slots_per_frame * sizeof(uint32_t **));
+  AssertFatal(gNB->nr_csi_info->nr_gold_csi_rs != NULL, "NR init: csi reference signal malloc failed\n");
   for (int slot=0; slot<fp->slots_per_frame; slot++) {
-    csi_rs[slot] = (uint32_t **)malloc16(fp->symbols_per_slot*sizeof(uint32_t *));
-    AssertFatal(csi_rs[slot]!=NULL, "NR init: csi reference signal for slot %d - malloc failed\n", slot);
-
+    gNB->nr_csi_info->nr_gold_csi_rs[slot] = (uint32_t **)malloc16(fp->symbols_per_slot * sizeof(uint32_t *));
+    AssertFatal(gNB->nr_csi_info->nr_gold_csi_rs[slot] != NULL, "NR init: csi reference signal for slot %d - malloc failed\n", slot);
     for (int symb=0; symb<fp->symbols_per_slot; symb++) {
-      csi_rs[slot][symb] = (uint32_t *)malloc16(csi_dmrs_init_length*sizeof(uint32_t));
-      AssertFatal(csi_rs[slot][symb]!=NULL, "NR init: csi reference signal for slot %d symbol %d - malloc failed\n", slot, symb);
+      gNB->nr_csi_info->nr_gold_csi_rs[slot][symb] = (uint32_t *)malloc16(csi_dmrs_init_length * sizeof(uint32_t));
+      AssertFatal(gNB->nr_csi_info->nr_gold_csi_rs[slot][symb] != NULL, "NR init: csi reference signal for slot %d symbol %d - malloc failed\n", slot, symb);
     }
   }
 
-  gNB->csi_gold_init = cfg->cell_config.phy_cell_id.value;
-  nr_init_csi_rs(gNB, cfg->cell_config.phy_cell_id.value);
+  gNB->nr_csi_info->csi_gold_init = cfg->cell_config.phy_cell_id.value;
+  nr_init_csi_rs(&gNB->frame_parms, gNB->nr_csi_info->nr_gold_csi_rs, cfg->cell_config.phy_cell_id.value);
 
   //PRS init
   gNB->nr_gold_prs = (uint32_t ****)malloc16(gNB->prs_vars.NumPRSResources*sizeof(uint32_t ***));
@@ -637,21 +634,6 @@ int phy_init_nr_gNB(PHY_VARS_gNB *gNB,
 
   for (int id=0; id<NUMBER_OF_NR_SRS_MAX; id++) {
     gNB->nr_srs_info[id] = (nr_srs_info_t *)malloc16_clear(sizeof(nr_srs_info_t));
-    gNB->nr_srs_info[id]->sc_list = (uint16_t *) malloc16_clear(6*fp->N_RB_UL*sizeof(uint16_t));
-    gNB->nr_srs_info[id]->srs_generated_signal = (int32_t*)malloc16_clear(fp->ofdm_symbol_size*MAX_NUM_NR_SRS_SYMBOLS*sizeof(int32_t));
-    gNB->nr_srs_info[id]->noise_power = (uint32_t*)malloc16_clear(sizeof(uint32_t));
-    gNB->nr_srs_info[id]->srs_received_signal = (int32_t **)malloc16(Prx*sizeof(int32_t*));
-    gNB->nr_srs_info[id]->srs_ls_estimated_channel = (int32_t **)malloc16(Prx*sizeof(int32_t*));
-    gNB->nr_srs_info[id]->srs_estimated_channel_freq = (int32_t **)malloc16(Prx*sizeof(int32_t*));
-    gNB->nr_srs_info[id]->srs_estimated_channel_time = (int32_t **)malloc16(Prx*sizeof(int32_t*));
-    gNB->nr_srs_info[id]->srs_estimated_channel_time_shifted = (int32_t **)malloc16(Prx*sizeof(int32_t*));
-    for (i=0;i<Prx;i++){
-      gNB->nr_srs_info[id]->srs_received_signal[i] = (int32_t*)malloc16_clear(fp->ofdm_symbol_size*MAX_NUM_NR_SRS_SYMBOLS*sizeof(int32_t));
-      gNB->nr_srs_info[id]->srs_ls_estimated_channel[i] = (int32_t*)malloc16_clear(fp->ofdm_symbol_size*MAX_NUM_NR_SRS_SYMBOLS*sizeof(int32_t));
-      gNB->nr_srs_info[id]->srs_estimated_channel_freq[i] = (int32_t*)malloc16_clear(fp->ofdm_symbol_size*MAX_NUM_NR_SRS_SYMBOLS*sizeof(int32_t));
-      gNB->nr_srs_info[id]->srs_estimated_channel_time[i] = (int32_t*)malloc16_clear(fp->ofdm_symbol_size*MAX_NUM_NR_SRS_SYMBOLS*sizeof(int32_t));
-      gNB->nr_srs_info[id]->srs_estimated_channel_time_shifted[i] = (int32_t*)malloc16_clear(fp->ofdm_symbol_size*MAX_NUM_NR_SRS_SYMBOLS*sizeof(int32_t));
-    }
   }
 
   generate_ul_reference_signal_sequences(SHRT_MAX);
@@ -694,14 +676,18 @@ int phy_init_nr_gNB(PHY_VARS_gNB *gNB,
   int N_RB_UL = cfg->carrier_config.ul_grid_size[cfg->ssb_config.scs_common.value].value;
   int n_buf = Prx*max_ul_mimo_layers;
 
+  int nb_re_pusch = N_RB_UL * NR_NB_SC_PER_RB;
+#ifdef __AVX2__
+  int nb_re_pusch2 = nb_re_pusch + (nb_re_pusch&7);
+#else
+  int nb_re_pusch2 = nb_re_pusch;
+#endif
+
   for (int ULSCH_id=0; ULSCH_id<gNB->number_of_nr_ulsch_max; ULSCH_id++) {
     pusch_vars[ULSCH_id] = (NR_gNB_PUSCH *)malloc16_clear( sizeof(NR_gNB_PUSCH) );
     pusch_vars[ULSCH_id]->rxdataF_ext           = (int32_t **)malloc16(Prx*sizeof(int32_t *) );
-    pusch_vars[ULSCH_id]->rxdataF_ext2          = (int32_t **)malloc16(Prx*sizeof(int32_t *) );
     pusch_vars[ULSCH_id]->ul_ch_estimates       = (int32_t **)malloc16(n_buf*sizeof(int32_t *) );
     pusch_vars[ULSCH_id]->ul_ch_estimates_ext   = (int32_t **)malloc16(n_buf*sizeof(int32_t *) );
-    pusch_vars[ULSCH_id]->ul_ch_ptrs_estimates     = (int32_t **)malloc16(n_buf*sizeof(int32_t *) );
-    pusch_vars[ULSCH_id]->ul_ch_ptrs_estimates_ext = (int32_t **)malloc16(n_buf*sizeof(int32_t *) );
     pusch_vars[ULSCH_id]->ptrs_phase_per_slot   = (int32_t **)malloc16(n_buf*sizeof(int32_t *) );
     pusch_vars[ULSCH_id]->ul_ch_estimates_time  = (int32_t **)malloc16(n_buf*sizeof(int32_t *) );
     pusch_vars[ULSCH_id]->rxdataF_comp          = (int32_t **)malloc16(n_buf*sizeof(int32_t *) );
@@ -709,25 +695,33 @@ int phy_init_nr_gNB(PHY_VARS_gNB *gNB,
     pusch_vars[ULSCH_id]->ul_ch_magb0           = (int32_t **)malloc16(n_buf*sizeof(int32_t *) );
     pusch_vars[ULSCH_id]->ul_ch_mag             = (int32_t **)malloc16(n_buf*sizeof(int32_t *) );
     pusch_vars[ULSCH_id]->ul_ch_magb            = (int32_t **)malloc16(n_buf*sizeof(int32_t *) );
-    pusch_vars[ULSCH_id]->rho                   = (int32_t **)malloc16_clear(n_buf*sizeof(int32_t*) );
+    pusch_vars[ULSCH_id]->rho                   = (int32_t ***)malloc16(Prx*sizeof(int32_t **) );
+    pusch_vars[ULSCH_id]->llr_layers            = (int16_t **)malloc16(max_ul_mimo_layers*sizeof(int32_t *) );
 
     for (i=0; i<Prx; i++) {
-      pusch_vars[ULSCH_id]->rxdataF_ext[i]           = (int32_t *)malloc16_clear( sizeof(int32_t)*N_RB_UL*12*fp->symbols_per_slot );
-      pusch_vars[ULSCH_id]->rxdataF_ext2[i]          = (int32_t *)malloc16_clear( sizeof(int32_t)*N_RB_UL*12*fp->symbols_per_slot );
+      pusch_vars[ULSCH_id]->rxdataF_ext[i]           = (int32_t *)malloc16_clear( sizeof(int32_t)*nb_re_pusch2*fp->symbols_per_slot );
+      pusch_vars[ULSCH_id]->rho[i]                   = (int32_t **)malloc16_clear(NR_MAX_NB_LAYERS*NR_MAX_NB_LAYERS*sizeof(int32_t*));
+
+      for (int j=0; j< max_ul_mimo_layers; j++) {
+        for (int k=0; k<max_ul_mimo_layers; k++) {
+          pusch_vars[ULSCH_id]->rho[i][j*max_ul_mimo_layers+k]=(int32_t *)malloc16_clear( sizeof(int32_t)*nb_re_pusch2*fp->symbols_per_slot );
+        }
+      }
     }
     for (i=0; i<n_buf; i++) {
-      pusch_vars[ULSCH_id]->ul_ch_estimates[i]       = (int32_t *)malloc16_clear( sizeof(int32_t)*fp->ofdm_symbol_size*2*fp->symbols_per_slot );
-      pusch_vars[ULSCH_id]->ul_ch_estimates_ext[i]   = (int32_t *)malloc16_clear( sizeof(int32_t)*N_RB_UL*12*fp->symbols_per_slot );
-      pusch_vars[ULSCH_id]->ul_ch_estimates_time[i]  = (int32_t *)malloc16_clear( 2*sizeof(int32_t)*fp->ofdm_symbol_size );
-      pusch_vars[ULSCH_id]->ul_ch_ptrs_estimates[i]       = (int32_t *)malloc16_clear( sizeof(int32_t)*fp->ofdm_symbol_size*2*fp->symbols_per_slot ); // max intensity in freq is 1 sc every 2 RBs
-      pusch_vars[ULSCH_id]->ul_ch_ptrs_estimates_ext[i]   = (int32_t *)malloc16_clear( sizeof(int32_t)*N_RB_UL*12*fp->symbols_per_slot );
+      pusch_vars[ULSCH_id]->ul_ch_estimates[i]       = (int32_t *)malloc16_clear( sizeof(int32_t)*fp->ofdm_symbol_size*fp->symbols_per_slot );
+      pusch_vars[ULSCH_id]->ul_ch_estimates_ext[i]   = (int32_t *)malloc16_clear( sizeof(int32_t)*nb_re_pusch2*fp->symbols_per_slot );
+      pusch_vars[ULSCH_id]->ul_ch_estimates_time[i]  = (int32_t *)malloc16_clear( sizeof(int32_t)*fp->ofdm_symbol_size );
       pusch_vars[ULSCH_id]->ptrs_phase_per_slot[i]   = (int32_t *)malloc16_clear( sizeof(int32_t)*fp->symbols_per_slot); // symbols per slot
-      pusch_vars[ULSCH_id]->rxdataF_comp[i]          = (int32_t *)malloc16_clear( sizeof(int32_t)*N_RB_UL*12*fp->symbols_per_slot );
-      pusch_vars[ULSCH_id]->ul_ch_mag0[i]            = (int32_t *)malloc16_clear( fp->symbols_per_slot*sizeof(int32_t)*N_RB_UL*12 );
-      pusch_vars[ULSCH_id]->ul_ch_magb0[i]           = (int32_t *)malloc16_clear( fp->symbols_per_slot*sizeof(int32_t)*N_RB_UL*12 );
-      pusch_vars[ULSCH_id]->ul_ch_mag[i]             = (int32_t *)malloc16_clear( fp->symbols_per_slot*sizeof(int32_t)*N_RB_UL*12 );
-      pusch_vars[ULSCH_id]->ul_ch_magb[i]            = (int32_t *)malloc16_clear( fp->symbols_per_slot*sizeof(int32_t)*N_RB_UL*12 );
-      pusch_vars[ULSCH_id]->rho[i]                   = (int32_t *)malloc16_clear( sizeof(int32_t)*(fp->N_RB_UL*12*7*2) );
+      pusch_vars[ULSCH_id]->rxdataF_comp[i]          = (int32_t *)malloc16_clear( sizeof(int32_t)*nb_re_pusch2*fp->symbols_per_slot );
+      pusch_vars[ULSCH_id]->ul_ch_mag0[i]            = (int32_t *)malloc16_clear( sizeof(int32_t)*nb_re_pusch2*fp->symbols_per_slot );
+      pusch_vars[ULSCH_id]->ul_ch_magb0[i]           = (int32_t *)malloc16_clear( sizeof(int32_t)*nb_re_pusch2*fp->symbols_per_slot );
+      pusch_vars[ULSCH_id]->ul_ch_mag[i]             = (int32_t *)malloc16_clear( sizeof(int32_t)*nb_re_pusch2*fp->symbols_per_slot );
+      pusch_vars[ULSCH_id]->ul_ch_magb[i]            = (int32_t *)malloc16_clear( sizeof(int32_t)*nb_re_pusch2*fp->symbols_per_slot );
+    }
+
+    for (i=0; i< max_ul_mimo_layers; i++) {
+      pusch_vars[ULSCH_id]->llr_layers[i] = (int16_t *)malloc16_clear( (8*((3*8*6144)+12))*sizeof(int16_t) ); // [hna] 6144 is LTE and (8*((3*8*6144)+12)) is not clear
     }
     pusch_vars[ULSCH_id]->llr = (int16_t *)malloc16_clear( (8*((3*8*6144)+12))*sizeof(int16_t) ); // [hna] 6144 is LTE and (8*((3*8*6144)+12)) is not clear
     pusch_vars[ULSCH_id]->ul_valid_re_per_slot  = (int16_t *)malloc16_clear( sizeof(int16_t)*fp->symbols_per_slot);
@@ -787,30 +781,16 @@ void phy_free_nr_gNB(PHY_VARS_gNB *gNB)
   }
   free_and_zero(pusch_dmrs);
 
-  uint32_t ***csi_rs = gNB->nr_gold_csi_rs;
+  uint32_t ***nr_gold_csi_rs = gNB->nr_csi_info->nr_gold_csi_rs;
   for (int slot = 0; slot < fp->slots_per_frame; slot++) {
     for (int symb = 0; symb < fp->symbols_per_slot; symb++)
-      free_and_zero(csi_rs[slot][symb]);
-    free_and_zero(csi_rs[slot]);
+      free_and_zero(nr_gold_csi_rs[slot][symb]);
+    free_and_zero(nr_gold_csi_rs[slot]);
   }
-  free_and_zero(csi_rs);
+  free_and_zero(nr_gold_csi_rs);
+  free_and_zero(gNB->nr_csi_info);
 
   for (int id = 0; id < NUMBER_OF_NR_SRS_MAX; id++) {
-    for (int i = 0; i < Prx; i++) {
-      free_and_zero(gNB->nr_srs_info[id]->srs_received_signal[i]);
-      free_and_zero(gNB->nr_srs_info[id]->srs_ls_estimated_channel[i]);
-      free_and_zero(gNB->nr_srs_info[id]->srs_estimated_channel_freq[i]);
-      free_and_zero(gNB->nr_srs_info[id]->srs_estimated_channel_time[i]);
-      free_and_zero(gNB->nr_srs_info[id]->srs_estimated_channel_time_shifted[i]);
-    }
-    free_and_zero(gNB->nr_srs_info[id]->sc_list);
-    free_and_zero(gNB->nr_srs_info[id]->srs_generated_signal);
-    free_and_zero(gNB->nr_srs_info[id]->noise_power);
-    free_and_zero(gNB->nr_srs_info[id]->srs_received_signal);
-    free_and_zero(gNB->nr_srs_info[id]->srs_ls_estimated_channel);
-    free_and_zero(gNB->nr_srs_info[id]->srs_estimated_channel_freq);
-    free_and_zero(gNB->nr_srs_info[id]->srs_estimated_channel_time);
-    free_and_zero(gNB->nr_srs_info[id]->srs_estimated_channel_time_shifted);
     free_and_zero(gNB->nr_srs_info[id]);
   }
 
@@ -844,30 +824,31 @@ void phy_free_nr_gNB(PHY_VARS_gNB *gNB)
 
   NR_gNB_PUSCH** pusch_vars = gNB->pusch_vars;
   for (int ULSCH_id=0; ULSCH_id<gNB->number_of_nr_ulsch_max; ULSCH_id++) {
+    for (int i=0; i< max_ul_mimo_layers; i++)
+      free_and_zero(pusch_vars[ULSCH_id]->llr_layers[i]);
     for (int i = 0; i < Prx; i++) {
       free_and_zero(pusch_vars[ULSCH_id]->rxdataF_ext[i]);
-      free_and_zero(pusch_vars[ULSCH_id]->rxdataF_ext2[i]);
+      for (int j=0; j< max_ul_mimo_layers; j++) {
+        for (int k=0; k<max_ul_mimo_layers; k++)
+          free_and_zero(pusch_vars[ULSCH_id]->rho[i][j*max_ul_mimo_layers+k]);
+      }
+      free_and_zero(pusch_vars[ULSCH_id]->rho[i]);
     }
     for (int i = 0; i < n_buf; i++) {
       free_and_zero(pusch_vars[ULSCH_id]->ul_ch_estimates[i]);
       free_and_zero(pusch_vars[ULSCH_id]->ul_ch_estimates_ext[i]);
       free_and_zero(pusch_vars[ULSCH_id]->ul_ch_estimates_time[i]);
-      free_and_zero(pusch_vars[ULSCH_id]->ul_ch_ptrs_estimates[i]);
-      free_and_zero(pusch_vars[ULSCH_id]->ul_ch_ptrs_estimates_ext[i]);
       free_and_zero(pusch_vars[ULSCH_id]->ptrs_phase_per_slot[i]);
       free_and_zero(pusch_vars[ULSCH_id]->rxdataF_comp[i]);
       free_and_zero(pusch_vars[ULSCH_id]->ul_ch_mag0[i]);
       free_and_zero(pusch_vars[ULSCH_id]->ul_ch_magb0[i]);
       free_and_zero(pusch_vars[ULSCH_id]->ul_ch_mag[i]);
       free_and_zero(pusch_vars[ULSCH_id]->ul_ch_magb[i]);
-      free_and_zero(pusch_vars[ULSCH_id]->rho[i]);
     }
+    free_and_zero(pusch_vars[ULSCH_id]->llr_layers);
     free_and_zero(pusch_vars[ULSCH_id]->rxdataF_ext);
-    free_and_zero(pusch_vars[ULSCH_id]->rxdataF_ext2);
     free_and_zero(pusch_vars[ULSCH_id]->ul_ch_estimates);
     free_and_zero(pusch_vars[ULSCH_id]->ul_ch_estimates_ext);
-    free_and_zero(pusch_vars[ULSCH_id]->ul_ch_ptrs_estimates);
-    free_and_zero(pusch_vars[ULSCH_id]->ul_ch_ptrs_estimates_ext);
     free_and_zero(pusch_vars[ULSCH_id]->ptrs_phase_per_slot);
     free_and_zero(pusch_vars[ULSCH_id]->ul_ch_estimates_time);
     free_and_zero(pusch_vars[ULSCH_id]->ul_valid_re_per_slot);
@@ -931,7 +912,12 @@ void nr_phy_config_request_sim(PHY_VARS_gNB *gNB,
   //gNB_config->subframe_config.dl_cyclic_prefix_type.value = (fp->Ncp == NORMAL) ? NFAPI_CP_NORMAL : NFAPI_CP_EXTENDED;
 
   gNB->mac_enabled   = 1;
-  if (mu==1) {
+  if (mu==0) {
+    fp->dl_CarrierFreq = 2600000000;//from_nrarfcn(gNB_config->nfapi_config.rf_bands.rf_band[0],gNB_config->nfapi_config.nrarfcn.value);
+    fp->ul_CarrierFreq = 2600000000;//fp->dl_CarrierFreq - (get_uldl_offset(gNB_config->nfapi_config.rf_bands.rf_band[0])*100000);
+    fp->nr_band = 38;
+    //  fp->threequarter_fs= 0;
+  } else if (mu==1) {
     fp->dl_CarrierFreq = 3600000000;//from_nrarfcn(gNB_config->nfapi_config.rf_bands.rf_band[0],gNB_config->nfapi_config.nrarfcn.value);
     fp->ul_CarrierFreq = 3600000000;//fp->dl_CarrierFreq - (get_uldl_offset(gNB_config->nfapi_config.rf_bands.rf_band[0])*100000);
     fp->nr_band = 78;
@@ -1053,9 +1039,9 @@ void init_nr_transport(PHY_VARS_gNB *gNB) {
 
   for (int i=0; i<gNB->number_of_nr_ulsch_max; i++) {
 
-    LOG_I(PHY,"Allocating Transport Channel Buffer for ULSCH  %d/%d\n",i,gNB->number_of_nr_ulsch_max);
+    LOG_I(PHY,"Allocating Transport Channel Buffers for ULSCH  %d/%d\n",i,gNB->number_of_nr_ulsch_max);
 
-    gNB->ulsch[i] = new_gNB_ulsch(MAX_LDPC_ITERATIONS, fp->N_RB_UL);
+    gNB->ulsch[i] = new_gNB_ulsch(gNB->max_ldpc_iterations, fp->N_RB_UL);
 
     if (!gNB->ulsch[i]) {
       LOG_E(PHY,"Can't get gNB ulsch structures\n");
diff --git a/openair1/PHY/INIT/nr_init_ru.c b/openair1/PHY/INIT/nr_init_ru.c
index 07f1d3b9e3c..75d78738fc6 100644
--- a/openair1/PHY/INIT/nr_init_ru.c
+++ b/openair1/PHY/INIT/nr_init_ru.c
@@ -41,7 +41,7 @@ int nr_phy_init_RU(RU_t *ru) {
   int p;
   int re;
 
-  LOG_I(PHY,"Initializing RU signal buffers (if_south %s) nb_tx %d\n",ru_if_types[ru->if_south],ru->nb_tx);
+  LOG_I(PHY,"Initializing RU signal buffers (if_south %s) nb_tx %d, nb_rx %d\n",ru_if_types[ru->if_south],ru->nb_tx, ru->nb_rx);
 
   nfapi_nr_config_request_scf_t *cfg;
   ru->nb_log_antennas=0;
@@ -60,7 +60,7 @@ int nr_phy_init_RU(RU_t *ru) {
 
     for (i=0; i<ru->nb_tx; i++) {
       // Allocate 10 subframes of I/Q TX signal data (time) if not
-      ru->common.txdata[i]  = (int32_t*)malloc16_clear( ru->sf_extension + (fp->samples_per_frame*sizeof(int32_t) ));
+      ru->common.txdata[i]  = (int32_t*)malloc16_clear((ru->sf_extension + fp->samples_per_frame)*sizeof(int32_t));
       LOG_I(PHY,"[INIT] common.txdata[%d] = %p (%lu bytes,sf_extension %d)\n",i,ru->common.txdata[i],
 	     (ru->sf_extension + fp->samples_per_frame)*sizeof(int32_t),ru->sf_extension);
       ru->common.txdata[i] =  &ru->common.txdata[i][ru->sf_extension];
@@ -124,9 +124,10 @@ int nr_phy_init_RU(RU_t *ru) {
 		ru->num_gNB,NUMBER_OF_gNB_MAX);
 
     LOG_I(PHY,"[INIT] %s() ru->num_gNB:%d \n", __FUNCTION__, ru->num_gNB);
-    if (ru->do_precoding == 1) { 
+
+    if (ru->do_precoding == 1) {
       int beam_count = 0;
-      if (ru->nb_tx>1) {//Enable beamforming when nb_tx > 1
+      if (ru->nb_tx>1) { //Enable beamforming when nb_tx > 1
 
         for (p=0;p<ru->nb_log_antennas;p++) {
           //if ((fp->L_ssb >> (63-p)) & 0x01)//64 bit-map with the MSB @2⁶³ corresponds to SSB ssb_index 0
@@ -149,7 +150,7 @@ int nr_phy_init_RU(RU_t *ru) {
             } // for j
           //}
           } // for p
-        } //for i
+        } // for i
       }
 
       ru->common.beam_id = (uint8_t**)malloc16_clear(ru->nb_tx*sizeof(uint8_t*));
@@ -205,12 +206,11 @@ void nr_phy_free_RU(RU_t *ru)
 	free_and_zero(ru->prach_rxsigF[j][i]);
       free_and_zero(ru->prach_rxsigF[j]);
     }
-
     if (ru->do_precoding == 1) {
       for (i = 0; i < ru->num_gNB; i++) {
         for (p = 0; p < ru->nb_log_antennas; p++) {
-            for (j=0; j<ru->nb_tx; j++) free_and_zero(ru->beam_weights[i][p][j]);
-            free_and_zero(ru->beam_weights[i][p]);
+          for (j=0; j<ru->nb_tx; j++) free_and_zero(ru->beam_weights[i][p][j]);
+          free_and_zero(ru->beam_weights[i][p]);
         }
       }
       for(i=0; i< ru->nb_tx; ++i)
diff --git a/openair1/PHY/INIT/nr_init_ue.c b/openair1/PHY/INIT/nr_init_ue.c
index 05375c46ced..73cdaf0faeb 100644
--- a/openair1/PHY/INIT/nr_init_ue.c
+++ b/openair1/PHY/INIT/nr_init_ue.c
@@ -34,19 +34,6 @@
 #include "PHY/NR_REFSIG/nr_refsig.h"
 #include "PHY/MODULATION/nr_modulation.h"
 
-#if 0
-void phy_config_harq_ue(module_id_t Mod_id,
-                        int CC_id,
-                        uint8_t gNB_id,
-                        uint16_t max_harq_tx) {
-  int num_of_threads,num_of_code_words;
-  PHY_VARS_NR_UE *phy_vars_ue = PHY_vars_UE_g[Mod_id][CC_id];
-
-  for (num_of_threads=0; num_of_threads<RX_NB_TH_MAX; num_of_threads++)
-    for (num_of_code_words=0; num_of_code_words<NR_MAX_NB_CODEWORDS; num_of_code_words++)
-      phy_vars_ue->ulsch[num_of_threads][gNB_id][num_of_code_words]->Mlimit = max_harq_tx;
-}
-#endif
 
 extern uint16_t beta_cqi[16];
 
@@ -76,7 +63,6 @@ void phy_init_nr_ue_PDSCH(NR_UE_PDSCH *const pdsch,
   pdsch->dl_ch_magr0            = (int32_t **)malloc16_clear( NR_MAX_NB_LAYERS*fp->nb_antennas_rx*sizeof(int32_t *) );
   pdsch->ptrs_phase_per_slot    = (int32_t **)malloc16_clear( fp->nb_antennas_rx*sizeof(int32_t *) );
   pdsch->ptrs_re_per_slot       = (int32_t **)malloc16_clear( fp->nb_antennas_rx*sizeof(int32_t *) );
-  pdsch->dl_ch_ptrs_estimates_ext = (int32_t **)malloc16_clear( fp->nb_antennas_rx*sizeof(int32_t *) );
   // the allocated memory size is fixed:
   AssertFatal( fp->nb_antennas_rx <= 4, "nb_antennas_rx > 4" );//Extend the max number of UE Rx antennas to 4
 
@@ -86,7 +72,6 @@ void phy_init_nr_ue_PDSCH(NR_UE_PDSCH *const pdsch,
     pdsch->rxdataF_uespec_pilots[i]    = (int32_t *)malloc16_clear( sizeof(int32_t) * fp->N_RB_DL*12);
     pdsch->ptrs_phase_per_slot[i]      = (int32_t *)malloc16_clear( sizeof(int32_t) * 14 );
     pdsch->ptrs_re_per_slot[i]         = (int32_t *)malloc16_clear( sizeof(int32_t) * 14);
-    pdsch->dl_ch_ptrs_estimates_ext[i] = (int32_t *)malloc16_clear( sizeof(int32_t) * num);
     pdsch->rho[i]                      = (int32_t **)malloc16_clear( NR_MAX_NB_LAYERS*NR_MAX_NB_LAYERS*sizeof(int32_t *) );
 
     for (int j=0; j<NR_MAX_NB_LAYERS; j++) {
@@ -126,7 +111,6 @@ void phy_term_nr_ue__PDSCH(NR_UE_PDSCH* pdsch, const NR_DL_FRAME_PARMS *const fp
     free_and_zero(pdsch->rxdataF_uespec_pilots[i]);
     free_and_zero(pdsch->ptrs_phase_per_slot[i]);
     free_and_zero(pdsch->ptrs_re_per_slot[i]);
-    free_and_zero(pdsch->dl_ch_ptrs_estimates_ext[i]);
     free_and_zero(pdsch->rho[i]);
   }
   free_and_zero(pdsch->pmi_ext);
@@ -149,7 +133,6 @@ void phy_term_nr_ue__PDSCH(NR_UE_PDSCH* pdsch, const NR_DL_FRAME_PARMS *const fp
   free_and_zero(pdsch->dl_ch_magr0);
   free_and_zero(pdsch->ptrs_phase_per_slot);
   free_and_zero(pdsch->ptrs_re_per_slot);
-  free_and_zero(pdsch->dl_ch_ptrs_estimates_ext);
 }
 
 int init_nr_ue_signal(PHY_VARS_NR_UE *ue, int nb_connected_gNB)
@@ -160,8 +143,11 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue, int nb_connected_gNB)
   NR_UE_PBCH  **const pbch_vars          = ue->pbch_vars;
   NR_UE_PRS   **const prs_vars           = ue->prs_vars;
   NR_UE_PRACH **const prach_vars         = ue->prach_vars;
+  NR_UE_CSI_IM **const csiim_vars        = ue->csiim_vars;
+  NR_UE_CSI_RS **const csirs_vars        = ue->csirs_vars;
   NR_UE_SRS **const srs_vars             = ue->srs_vars;
-  int i,slot,symb, gNB_id, th_id;
+
+  int i, slot, symb, gNB_id, th_id;
 
   LOG_I(PHY, "Initializing UE vars for gNB TXant %u, UE RXant %u\n", fp->nb_antennas_tx, fp->nb_antennas_rx);
 
@@ -389,26 +375,33 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue, int nb_connected_gNB)
 
     prach_vars[gNB_id] = (NR_UE_PRACH *)malloc16_clear(sizeof(NR_UE_PRACH));
     pbch_vars[gNB_id] = (NR_UE_PBCH *)malloc16_clear(sizeof(NR_UE_PBCH));
+    csiim_vars[gNB_id] = (NR_UE_CSI_IM *)malloc16_clear(sizeof(NR_UE_CSI_IM));
+    csirs_vars[gNB_id] = (NR_UE_CSI_RS *)malloc16_clear(sizeof(NR_UE_CSI_RS));
     srs_vars[gNB_id] = (NR_UE_SRS *)malloc16_clear(sizeof(NR_UE_SRS));
 
+    csiim_vars[gNB_id]->active = false;
+    csirs_vars[gNB_id]->active = false;
     srs_vars[gNB_id]->active = false;
-    ue->nr_srs_info = (nr_srs_info_t *)malloc16_clear(sizeof(nr_srs_info_t));
-    ue->nr_srs_info->sc_list = (uint16_t *) malloc16_clear(6*fp->N_RB_UL*sizeof(uint16_t));
-    ue->nr_srs_info->srs_generated_signal = (int32_t *) malloc16_clear( (2*(fp->samples_per_frame)+2048)*sizeof(int32_t) );
-    ue->nr_srs_info->noise_power = (uint32_t*)malloc16_clear(sizeof(uint32_t));
-    ue->nr_srs_info->srs_received_signal = (int32_t **)malloc16( fp->nb_antennas_rx*sizeof(int32_t *) );
-    ue->nr_srs_info->srs_ls_estimated_channel = (int32_t **)malloc16( fp->nb_antennas_rx*sizeof(int32_t *) );
-    ue->nr_srs_info->srs_estimated_channel_freq = (int32_t **)malloc16( fp->nb_antennas_rx*sizeof(int32_t *) );
-    ue->nr_srs_info->srs_estimated_channel_time = (int32_t **)malloc16( fp->nb_antennas_rx*sizeof(int32_t *) );
-    ue->nr_srs_info->srs_estimated_channel_time_shifted = (int32_t **)malloc16( fp->nb_antennas_rx*sizeof(int32_t *) );
-    for (i=0; i<fp->nb_antennas_rx; i++) {
-      ue->nr_srs_info->srs_received_signal[i] = (int32_t *) malloc16_clear(fp->ofdm_symbol_size*MAX_NUM_NR_SRS_SYMBOLS*sizeof(int32_t));
-      ue->nr_srs_info->srs_ls_estimated_channel[i] = (int32_t *) malloc16_clear(fp->ofdm_symbol_size*MAX_NUM_NR_SRS_SYMBOLS*sizeof(int32_t));
-      ue->nr_srs_info->srs_estimated_channel_freq[i] = (int32_t *) malloc16_clear(fp->ofdm_symbol_size*MAX_NUM_NR_SRS_SYMBOLS*sizeof(int32_t));
-      ue->nr_srs_info->srs_estimated_channel_time[i] = (int32_t *) malloc16_clear(fp->ofdm_symbol_size*MAX_NUM_NR_SRS_SYMBOLS*sizeof(int32_t));
-      ue->nr_srs_info->srs_estimated_channel_time_shifted[i] = (int32_t *) malloc16_clear(fp->ofdm_symbol_size*MAX_NUM_NR_SRS_SYMBOLS*sizeof(int32_t));
+
+    // ceil((NB_RB*8(max allocation per RB)*2(QPSK))/32)
+    int csi_dmrs_init_length =  ((fp->N_RB_DL<<4)>>5)+1;
+    ue->nr_csi_info = (nr_csi_info_t *)malloc16_clear(sizeof(nr_csi_info_t));
+    ue->nr_csi_info->nr_gold_csi_rs = (uint32_t ***)malloc16(fp->slots_per_frame * sizeof(uint32_t **));
+    AssertFatal(ue->nr_csi_info->nr_gold_csi_rs != NULL, "NR init: csi reference signal malloc failed\n");
+    for (int slot=0; slot<fp->slots_per_frame; slot++) {
+      ue->nr_csi_info->nr_gold_csi_rs[slot] = (uint32_t **)malloc16(fp->symbols_per_slot * sizeof(uint32_t *));
+      AssertFatal(ue->nr_csi_info->nr_gold_csi_rs[slot] != NULL, "NR init: csi reference signal for slot %d - malloc failed\n", slot);
+      for (int symb=0; symb<fp->symbols_per_slot; symb++) {
+        ue->nr_csi_info->nr_gold_csi_rs[slot][symb] = (uint32_t *)malloc16(csi_dmrs_init_length * sizeof(uint32_t));
+        AssertFatal(ue->nr_csi_info->nr_gold_csi_rs[slot][symb] != NULL, "NR init: csi reference signal for slot %d symbol %d - malloc failed\n", slot, symb);
+      }
+    }
+    ue->nr_csi_info->csi_rs_generated_signal = (int32_t **)malloc16(NR_MAX_NB_PORTS * sizeof(int32_t *) );
+    for (i=0; i<NR_MAX_NB_PORTS; i++) {
+      ue->nr_csi_info->csi_rs_generated_signal[i] = (int32_t *) malloc16_clear(fp->samples_per_frame_wCP * sizeof(int32_t));
     }
 
+    ue->nr_srs_info = (nr_srs_info_t *)malloc16_clear(sizeof(nr_srs_info_t));
 
     // RACH
     prach_vars[gNB_id]->prachF             = (int16_t *)malloc16_clear( sizeof(int)*(7*2*sizeof(int)*(fp->ofdm_symbol_size*12)) );
@@ -502,31 +495,30 @@ void term_nr_ue_signal(PHY_VARS_NR_UE *ue, int nb_connected_gNB)
       free_and_zero(ue->pdsch_vars[th_id][gNB_id]);
     }
   }
-  
+
   for (int gNB_id = 0; gNB_id < ue->n_connected_gNB; gNB_id++) {
 
     for (int th_id = 0; th_id < RX_NB_TH_MAX; th_id++) {
-
       free_and_zero(ue->pdcch_vars[th_id][gNB_id]);
     }
 
-    for (int i = 0; i < fp->nb_antennas_rx; i++) {
-      free_and_zero(ue->nr_srs_info->srs_received_signal[i]);
-      free_and_zero(ue->nr_srs_info->srs_ls_estimated_channel[i]);
-      free_and_zero(ue->nr_srs_info->srs_estimated_channel_freq[i]);
-      free_and_zero(ue->nr_srs_info->srs_estimated_channel_time[i]);
-      free_and_zero(ue->nr_srs_info->srs_estimated_channel_time_shifted[i]);
+    for (int i=0; i<NR_MAX_NB_PORTS; i++) {
+      free_and_zero(ue->nr_csi_info->csi_rs_generated_signal[i]);
     }
-    free_and_zero(ue->nr_srs_info->sc_list);
-    free_and_zero(ue->nr_srs_info->srs_generated_signal);
-    free_and_zero(ue->nr_srs_info->noise_power);
-    free_and_zero(ue->nr_srs_info->srs_received_signal);
-    free_and_zero(ue->nr_srs_info->srs_ls_estimated_channel);
-    free_and_zero(ue->nr_srs_info->srs_estimated_channel_freq);
-    free_and_zero(ue->nr_srs_info->srs_estimated_channel_time);
-    free_and_zero(ue->nr_srs_info->srs_estimated_channel_time_shifted);
+    free_and_zero(ue->nr_csi_info->csi_rs_generated_signal);
+    for (int slot=0; slot<fp->slots_per_frame; slot++) {
+      for (int symb=0; symb<fp->symbols_per_slot; symb++) {
+        free_and_zero(ue->nr_csi_info->nr_gold_csi_rs[slot][symb]);
+      }
+      free_and_zero(ue->nr_csi_info->nr_gold_csi_rs[slot]);
+    }
+    free_and_zero(ue->nr_csi_info->nr_gold_csi_rs);
+    free_and_zero(ue->nr_csi_info);
+
     free_and_zero(ue->nr_srs_info);
 
+    free_and_zero(ue->csiim_vars[gNB_id]);
+    free_and_zero(ue->csirs_vars[gNB_id]);
     free_and_zero(ue->srs_vars[gNB_id]);
 
     free_and_zero(ue->pbch_vars[gNB_id]);
@@ -547,7 +539,7 @@ void term_nr_ue_transport(PHY_VARS_NR_UE *ue)
       for (int k = 0; k < RX_NB_TH_MAX; k++) {
         free_nr_ue_dlsch(&ue->dlsch[k][i][j], N_RB_DL);
         if (j==0)
-          free_nr_ue_ulsch(&ue->ulsch[k][i], N_RB_DL);
+          free_nr_ue_ulsch(&ue->ulsch[k][i], N_RB_DL, &ue->frame_parms);
       }
     }
 
@@ -565,17 +557,17 @@ void init_nr_ue_transport(PHY_VARS_NR_UE *ue) {
   for (int i = 0; i < NUMBER_OF_CONNECTED_gNB_MAX; i++) {
     for (int j=0; j<num_codeword; j++) {
       for (int k=0; k<RX_NB_TH_MAX; k++) {
-        AssertFatal((ue->dlsch[k][i][j]  = new_nr_ue_dlsch(1,NR_MAX_DLSCH_HARQ_PROCESSES,NSOFT,MAX_LDPC_ITERATIONS,ue->frame_parms.N_RB_DL))!=NULL,"Can't get ue dlsch structures\n");
+        AssertFatal((ue->dlsch[k][i][j]  = new_nr_ue_dlsch(1,NR_MAX_DLSCH_HARQ_PROCESSES,NSOFT,ue->max_ldpc_iterations,ue->frame_parms.N_RB_DL))!=NULL,"Can't get ue dlsch structures\n");
         LOG_D(PHY,"dlsch[%d][%d][%d] => %p\n",k,i,j,ue->dlsch[k][i][j]);
         if (j==0) {
-          AssertFatal((ue->ulsch[k][i] = new_nr_ue_ulsch(ue->frame_parms.N_RB_UL, NR_MAX_ULSCH_HARQ_PROCESSES))!=NULL,"Can't get ue ulsch structures\n");
+          AssertFatal((ue->ulsch[k][i] = new_nr_ue_ulsch(ue->frame_parms.N_RB_UL, NR_MAX_ULSCH_HARQ_PROCESSES,&ue->frame_parms))!=NULL,"Can't get ue ulsch structures\n");
           LOG_D(PHY,"ulsch[%d][%d] => %p\n",k,i,ue->ulsch[k][i]);
         }
       }
     }
 
-    ue->dlsch_SI[i]  = new_nr_ue_dlsch(1,1,NSOFT,MAX_LDPC_ITERATIONS,ue->frame_parms.N_RB_DL);
-    ue->dlsch_ra[i]  = new_nr_ue_dlsch(1,1,NSOFT,MAX_LDPC_ITERATIONS,ue->frame_parms.N_RB_DL);
+    ue->dlsch_SI[i]  = new_nr_ue_dlsch(1,1,NSOFT,ue->max_ldpc_iterations,ue->frame_parms.N_RB_DL);
+    ue->dlsch_ra[i]  = new_nr_ue_dlsch(1,1,NSOFT,ue->max_ldpc_iterations,ue->frame_parms.N_RB_DL);
     ue->transmission_mode[i] = ue->frame_parms.nb_antenna_ports_gNB==1 ? 1 : 2;
   }
 
diff --git a/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c b/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
index c867292942f..9327fe9fe89 100644
--- a/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
+++ b/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
@@ -41,10 +41,10 @@ extern int16_t *ul_ref_sigs_rx[30][2][34];
 
 int32_t lte_ul_channel_estimation(LTE_DL_FRAME_PARMS *frame_parms,
                                   L1_rxtx_proc_t *proc,
-                        				  LTE_eNB_ULSCH_t * ulsch,
-				                          int32_t **ul_ch_estimates,
-				                          int32_t **ul_ch_estimates_time,
-				                          int32_t **rxdataF_ext,
+				  LTE_eNB_ULSCH_t * ulsch,
+				  int32_t **ul_ch_estimates,
+				  int32_t **ul_ch_estimates_time,
+				  int32_t **rxdataF_ext,
                                   module_id_t UE_id,
                                   unsigned char l,
                                   unsigned char Ns) {
@@ -88,7 +88,7 @@ int32_t lte_ul_channel_estimation(LTE_DL_FRAME_PARMS *frame_parms,
   }
 
   uint16_t N_rb_alloc = ulsch->harq_processes[harq_pid]->nb_rb;
-  int32_t tmp_estimates[N_rb_alloc*12] __attribute__((aligned(16)));
+  int32_t tmp_estimates[N_rb_alloc*12] __attribute__((aligned(32)));
   Msc_RS = N_rb_alloc*12;
   cyclic_shift = (frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift +
                   ulsch->harq_processes[harq_pid]->n_DMRS2 +
@@ -334,14 +334,14 @@ int32_t lte_ul_channel_estimation(LTE_DL_FRAME_PARMS *frame_parms,
             current_phase2 = cmin(abs(current_phase2),127);
             //          msg("sym: %d, current_phase1: %d, ru: %d + j%d, current_phase2: %d, ru: %d + j%d\n",k,current_phase1,ru1[2*current_phase1],ru1[2*current_phase1+1],current_phase2,ru2[2*current_phase2],ru2[2*current_phase2+1]);
             // rotate channel estimates by estimated phase
-            rotate_cpx_vector((int16_t *) ul_ch1,
-                              &ru1[2*current_phase1],
-                              (int16_t *) &ul_ch_estimates[aa][frame_parms->N_RB_UL*12*k],
+            rotate_cpx_vector((c16_t *) ul_ch1,
+                              (c16_t *)&ru1[2*current_phase1],
+                              (c16_t *) &ul_ch_estimates[aa][frame_parms->N_RB_UL*12*k],
                               Msc_RS,
                               15);
-            rotate_cpx_vector((int16_t *) ul_ch2,
-                              &ru2[2*current_phase2],
-                              (int16_t *) &tmp_estimates[0],
+            rotate_cpx_vector((c16_t *) ul_ch2,
+                              (c16_t *)&ru2[2*current_phase2],
+                              (c16_t *) tmp_estimates,
                               Msc_RS,
                               15);
             // Combine the two rotated estimates
@@ -657,14 +657,14 @@ int32_t lte_ul_channel_estimation_RRU(LTE_DL_FRAME_PARMS *frame_parms,
           current_phase2 = cmin(abs(current_phase2),127);
           //          msg("sym: %d, current_phase1: %d, ru: %d + j%d, current_phase2: %d, ru: %d + j%d\n",k,current_phase1,ru1[2*current_phase1],ru1[2*current_phase1+1],current_phase2,ru2[2*current_phase2],ru2[2*current_phase2+1]);
           // rotate channel estimates by estimated phase
-          rotate_cpx_vector((int16_t *) ul_ch1,
-                            &ru1[2*current_phase1],
-                            (int16_t *) &ul_ch_estimates[aa][frame_parms->N_RB_UL*12*k],
+          rotate_cpx_vector((c16_t *) ul_ch1,
+                            (c16_t *) &ru1[2*current_phase1],
+                            (c16_t *) &ul_ch_estimates[aa][frame_parms->N_RB_UL*12*k],
                             Msc_RS,
                             15);
-          rotate_cpx_vector((int16_t *) ul_ch2,
-                            &ru2[2*current_phase2],
-                            (int16_t *) &tmp_estimates[0],
+          rotate_cpx_vector((c16_t *) ul_ch2,
+                            (c16_t *) &ru2[2*current_phase2],
+                            (c16_t *) &tmp_estimates[0],
                             Msc_RS,
                             15);
           // Combine the two rotated estimates
diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c
index 1bbe9eb39a2..dc73a56568e 100644
--- a/openair1/PHY/LTE_TRANSPORT/dci_tools.c
+++ b/openair1/PHY/LTE_TRANSPORT/dci_tools.c
@@ -1997,7 +1997,7 @@ int get_narrowband_index(int N_RB_UL,int rb) {
 void fill_ulsch(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_ulsch_pdu *ulsch_pdu,int frame,int subframe) {
   uint8_t harq_pid;
   //uint8_t UE_id;
-  boolean_t new_ulsch = (find_ulsch(ulsch_pdu->ulsch_pdu_rel8.rnti,eNB,SEARCH_EXIST)==-1) ? TRUE : FALSE;
+  const bool new_ulsch = find_ulsch(ulsch_pdu->ulsch_pdu_rel8.rnti,eNB,SEARCH_EXIST) == -1;
   //AssertFatal((UE_id=find_ulsch(ulsch_pdu->ulsch_pdu_rel8.rnti,eNB,SEARCH_EXIST_OR_FREE))>=0,
   //        "No existing/free UE ULSCH for rnti %x\n",ulsch_pdu->ulsch_pdu_rel8.rnti);
   LTE_eNB_ULSCH_t *ulsch=eNB->ulsch[UE_id];
@@ -2063,7 +2063,7 @@ void fill_ulsch(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_ulsch_pdu *ulsch_pdu
 
   if ((ulsch->harq_processes[harq_pid]->status == SCH_IDLE) ||
       (ulsch->harq_processes[harq_pid]->ndi    != ulsch_pdu->ulsch_pdu_rel8.new_data_indication) ||
-      (new_ulsch == TRUE)) {
+      (new_ulsch == true)) {
     ulsch->harq_processes[harq_pid]->status        = ACTIVE;
     ulsch->harq_processes[harq_pid]->TBS           = ulsch_pdu->ulsch_pdu_rel8.size<<3;
     ulsch->harq_processes[harq_pid]->Msc_initial   = 12*ulsch_pdu->ulsch_pdu_rel8.number_of_resource_blocks;
diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools_common.c b/openair1/PHY/LTE_TRANSPORT/dci_tools_common.c
index 64e74ebfbf8..0addfdf14c7 100644
--- a/openair1/PHY/LTE_TRANSPORT/dci_tools_common.c
+++ b/openair1/PHY/LTE_TRANSPORT/dci_tools_common.c
@@ -532,9 +532,12 @@ uint32_t conv_1C_RIV(int32_t rballoc,uint32_t N_RB_DL) {
 
 }
 
+// FIXME: this function is compting PRB outside the range, so I FORCED in the range
+// I can't understand the 3GPP spec, see below note
 uint32_t get_prb(int N_RB_DL,int odd_slot,int vrb,int Ngap) {
 
   int offset;
+  int ret=-1;
 
   switch (N_RB_DL) {
 
@@ -545,16 +548,16 @@ uint32_t get_prb(int N_RB_DL,int odd_slot,int vrb,int Ngap) {
     switch (vrb) {
     case 0:  // even: 0->0, 1->2, odd: 0->3, 1->5
     case 1:
-      return ((3*odd_slot) + 2*(vrb&3))%6;
+      ret=  ((3*odd_slot) + 2*(vrb&3))%6;
       break;
     case 2:  // even: 2->3, 3->5, odd: 2->0, 3->2
     case 3:
-      return ((3*odd_slot) + 2*(vrb&3) + 5)%6;
+      ret=  ((3*odd_slot) + 2*(vrb&3) + 5)%6;
       break;
     case 4:  // even: 4->1, odd: 4->4
-      return ((3*odd_slot) + 1)%6;
+      ret=  ((3*odd_slot) + 1)%6;
     case 5:  // even: 5->4, odd: 5->1
-      return ((3*odd_slot) + 4)%6;
+      ret=  ((3*odd_slot) + 4)%6;
       break;
     }
     break;
@@ -562,88 +565,90 @@ uint32_t get_prb(int N_RB_DL,int odd_slot,int vrb,int Ngap) {
   case 15:
     if (vrb<12) {
       if ((vrb&3) < 2)     // even: 0->0, 1->4, 4->1, 5->5, 8->2, 9->6 odd: 0->7, 1->11
-  return(((7*odd_slot) + 4*(vrb&3) + (vrb>>2))%14) + 14*(vrb/14);
+  ret= (((7*odd_slot) + 4*(vrb&3) + (vrb>>2))%14) + 14*(vrb/14);
       else if (vrb < 12) // even: 2->7, 3->11, 6->8, 7->12, 10->9, 11->13
-  return (((7*odd_slot) + 4*(vrb&3) + (vrb>>2) +13 )%14) + 14*(vrb/14);
+  ret=  (((7*odd_slot) + 4*(vrb&3) + (vrb>>2) +13 )%14) + 14*(vrb/14);
     }
     if (vrb==12)
-      return (3+(7*odd_slot)) % 14;
+      ret=  (3+(7*odd_slot)) % 14;
     if (vrb==13)
-      return (10+(7*odd_slot)) % 14;
-    return 14;
+      ret=  (10+(7*odd_slot)) % 14;
+    ret=  14;
     break;
 
+    // Formula in TS 36.211, chap 6.2.3.2
+    // Fix me: returns a PRB number > 24 when vrb is 24
   case 25:
-    return (((12*odd_slot) + 6*(vrb&3) + (vrb>>2))%24) + 24*(vrb/24);
+    ret=  (((12*odd_slot) + 6*(vrb&3) + (vrb>>2))%24) + 24*(vrb/24);
     break;
 
   case 50: // P=3
     if (Ngap==0) {
       // Nrow=12,Nnull=2,NVRBDL=46,Ngap1= 27
       if (vrb>=23)
-  offset=4;
+        offset=4;
       else
-  offset=0;
+        offset=0;
       if (vrb<44) {
-  if ((vrb&3)>=2)
-    return offset+((23*odd_slot) + 12*(vrb&3) + (vrb>>2) + 45)%46;
-  else
-    return offset+((23*odd_slot) + 12*(vrb&3) + (vrb>>2))%46;
+        if ((vrb&3)>=2)
+    ret=  offset+((23*odd_slot) + 12*(vrb&3) + (vrb>>2) + 45)%46;
+        else
+    ret=  offset+((23*odd_slot) + 12*(vrb&3) + (vrb>>2))%46;
       }
       if (vrb==44)  // even: 44->11, odd: 45->34
-  return offset+((23*odd_slot) + 22-12+1);
+        ret=  offset+((23*odd_slot) + 22-12+1);
       if (vrb==45)  // even: 45->10, odd: 45->33
-  return offset+((23*odd_slot) + 22+12);
+        ret=  offset+((23*odd_slot) + 22+12);
       if (vrb==46)
-  return offset+46+((23*odd_slot) + 23-12+1) % 46;
+        ret=  offset+46+((23*odd_slot) + 23-12+1) % 46;
       if (vrb==47)
-  return offset+46+((23*odd_slot) + 23+12) % 46;
+        ret=  offset+46+((23*odd_slot) + 23+12) % 46;
       if (vrb==48)
-  return offset+46+((23*odd_slot) + 23-12+1) % 46;
+        ret=  offset+46+((23*odd_slot) + 23-12+1) % 46;
       if (vrb==49)
-  return offset+46+((23*odd_slot) + 23+12) % 46;
+        ret=  offset+46+((23*odd_slot) + 23+12) % 46;
     }
     else {
       // Nrow=6,Nnull=6,NVRBDL=18,Ngap1= 27
       if (vrb>=9)
-  offset=18;
+        offset=18;
       else
-  offset=0;
+        offset=0;
 
       if (vrb<12) {
-  if ((vrb&3)>=2)
-    return offset+((9*odd_slot) + 6*(vrb&3) + (vrb>>2) + 17)%18;
-  else
-    return offset+((9*odd_slot) + 6*(vrb&3) + (vrb>>2))%18;
+        if ((vrb&3)>=2)
+          ret=  offset+((9*odd_slot) + 6*(vrb&3) + (vrb>>2) + 17)%18;
+        else
+          ret=  offset+((9*odd_slot) + 6*(vrb&3) + (vrb>>2))%18;
       }
       else {
-  return offset+((9*odd_slot) + 12*(vrb&1)+(vrb>>1) )%18 + 18*(vrb/18);
+        ret=  offset+((9*odd_slot) + 12*(vrb&1)+(vrb>>1) )%18 + 18*(vrb/18);
       }
     }
     break;
   case 75:
     // Ngap1 = 32, NVRBRL=64, P=4, Nrow= 16, Nnull=0
     if (Ngap ==0) {
-      return ((32*odd_slot) + 16*(vrb&3) + (vrb>>2))%64 + (vrb/64);
+      ret=  ((32*odd_slot) + 16*(vrb&3) + (vrb>>2))%64 + (vrb/64);
     } else {
       // Ngap2 = 16, NVRBDL=32, Nrow=8, Nnull=0
-      return ((16*odd_slot) + 8*(vrb&3) + (vrb>>2))%32 + (vrb/32);
+      ret=  ((16*odd_slot) + 8*(vrb&3) + (vrb>>2))%32 + (vrb/32);
     }
     break;
   case 100:
     // Ngap1 = 48, NVRBDL=96, Nrow=24, Nnull=0
     if (Ngap ==0) {
-      return ((48*odd_slot) + 24*(vrb&3) + (vrb>>2))%96 + (vrb/96);
+      ret=  ((48*odd_slot) + 24*(vrb&3) + (vrb>>2))%96 + (vrb/96);
     } else {
       // Ngap2 = 16, NVRBDL=32, Nrow=8, Nnull=0
-      return ((16*odd_slot) + 8*(vrb&3) + (vrb>>2))%32 + (vrb/32);
+      ret=  ((16*odd_slot) + 8*(vrb&3) + (vrb>>2))%32 + (vrb/32);
     }
     break;
   default:
     LOG_E(PHY,"Unknown N_RB_DL %d\n",N_RB_DL);
-    return 0;
+    ret=  0;
   }
-  return 0;
+  return ret%N_RB_DL;
 
 }
 
@@ -677,7 +682,7 @@ void generate_RIV_tables(void)
 
       //      printf("RIV %d (%d) : first_rb %d NBRB %d\n",RIV,localRIV2alloc_LUT25[RIV],RBstart,Lcrbs);
       localRIV2alloc_LUT6[RIV] = alloc0;
-      distRIV2alloc_even_LUT6[RIV]  = allocdist0_0_even;
+      distRIV2alloc_even_LUT6[RIV] = allocdist0_0_even;
       distRIV2alloc_odd_LUT6[RIV]  = allocdist0_0_odd;
       RIV2nb_rb_LUT6[RIV]      = Lcrbs;
       RIV2first_rb_LUT6[RIV]   = RBstart;
@@ -693,15 +698,14 @@ void generate_RIV_tables(void)
       nVRB = Lcrbs-1+RBstart;
       //printf("RBstart %d, len %d --> ",RBstart,Lcrbs);
       alloc0     |= (1<<nVRB);
-      allocdist0_0_even |= (1<<get_prb(25,0,nVRB,0));
-      allocdist0_0_odd  |= (1<<get_prb(25,1,nVRB,0));
+      allocdist0_0_even |= 1U << get_prb(25, 0, nVRB, 0);
+      allocdist0_0_odd  |= 1U << get_prb(25, 1, nVRB, 0);
 
       //printf("alloc 0 %x, allocdist0_even %x, allocdist0_odd %x\n",alloc0,allocdist0_0_even,allocdist0_0_odd);
       RIV=computeRIV(25,RBstart,Lcrbs);
 
       if (RIV>RIV_max25)
-        RIV_max25 = RIV;;
-
+        RIV_max25 = RIV;
 
       localRIV2alloc_LUT25[RIV]      = alloc0;
       distRIV2alloc_even_LUT25[RIV]  = allocdist0_0_even;
@@ -730,37 +734,37 @@ void generate_RIV_tables(void)
 
 
       if (nVRB<32)
-        alloc0 |= (1<<nVRB);
+        alloc0 |= 1U << nVRB;
       else
-        alloc1 |= (1<<(nVRB-32));
+        alloc1 |= 1U << (nVRB - 32);
 
       // Distributed Gap1, even slot
       nVRB_even_dist = get_prb(50,0,nVRB,0);
       if (nVRB_even_dist<32)
-        allocdist0_0_even |= (1<<nVRB_even_dist);
+        allocdist0_0_even |= 1U << nVRB_even_dist;
       else
-        allocdist1_0_even |= (1<<(nVRB_even_dist-32));
+        allocdist1_0_even |= 1U << (nVRB_even_dist - 32);
 
       // Distributed Gap1, odd slot
       nVRB_odd_dist = get_prb(50,1,nVRB,0);
       if (nVRB_odd_dist<32)
-        allocdist0_0_odd |= (1<<nVRB_odd_dist);
+        allocdist0_0_odd |= (1U <<nVRB_odd_dist);
       else
-        allocdist1_0_odd |= (1<<(nVRB_odd_dist-32));
+        allocdist1_0_odd |= (1U <<(nVRB_odd_dist-32));
 
       // Distributed Gap2, even slot
       nVRB_even_dist = get_prb(50,0,nVRB,1);
       if (nVRB_even_dist<32)
-        allocdist0_1_even |= (1<<nVRB_even_dist);
+        allocdist0_1_even |= 1U << nVRB_even_dist;
       else
-        allocdist1_1_even |= (1<<(nVRB_even_dist-32));
+        allocdist1_1_even |= 1U << (nVRB_even_dist - 32);
 
       // Distributed Gap2, odd slot
       nVRB_odd_dist = get_prb(50,1,nVRB,1);
       if (nVRB_odd_dist<32)
-        allocdist0_1_odd |= (1<<nVRB_odd_dist);
+        allocdist0_1_odd |= 1U << nVRB_odd_dist;
       else
-        allocdist1_1_odd |= (1<<(nVRB_odd_dist-32));
+        allocdist1_1_odd |= 1U << (nVRB_odd_dist - 32);
 
       RIV=computeRIV(50,RBstart,Lcrbs);
 
@@ -811,13 +815,13 @@ void generate_RIV_tables(void)
       nVRB = Lcrbs-1+RBstart;
 
       if (nVRB<32)
-        alloc0 |= (1<<nVRB);
+        alloc0 |= 1U << nVRB;
       else if (nVRB<64)
-        alloc1 |= (1<<(nVRB-32));
+        alloc1 |= 1U << (nVRB - 32);
       else if (nVRB<96)
-        alloc2 |= (1<<(nVRB-64));
+        alloc2 |= 1U << (nVRB - 64);
       else
-        alloc3 |= (1<<(nVRB-96));
+        alloc3 |= 1U << (nVRB - 96);
 
       // Distributed Gap1, even slot
       nVRB_even_dist = get_prb(100,0,nVRB,0);
@@ -825,15 +829,14 @@ void generate_RIV_tables(void)
 //      if ((RBstart==0) && (Lcrbs<=8))
 //  printf("nVRB %d => nVRB_even_dist %d\n",nVRB,nVRB_even_dist);
 
-
       if (nVRB_even_dist<32)
-        allocdist0_0_even |= (1<<nVRB_even_dist);
+        allocdist0_0_even |= 1U << nVRB_even_dist;
       else if (nVRB_even_dist<64)
-        allocdist1_0_even |= (1<<(nVRB_even_dist-32));
+        allocdist1_0_even |= 1U << (nVRB_even_dist - 32);
       else if (nVRB_even_dist<96)
-  allocdist2_0_even |= (1<<(nVRB_even_dist-64));
+        allocdist2_0_even |= 1U << (nVRB_even_dist - 64);
       else
-  allocdist3_0_even |= (1<<(nVRB_even_dist-96));
+        allocdist3_0_even |= 1U << (nVRB_even_dist - 96);
 /*      if ((RBstart==0) && (Lcrbs<=8))
   printf("rballoc =>(%08x.%08x.%08x.%08x)\n",
          allocdist0_0_even,
@@ -845,38 +848,37 @@ void generate_RIV_tables(void)
       // Distributed Gap1, odd slot
       nVRB_odd_dist = get_prb(100,1,nVRB,0);
       if (nVRB_odd_dist<32)
-        allocdist0_0_odd |= (1<<nVRB_odd_dist);
+        allocdist0_0_odd |= 1U << nVRB_odd_dist;
       else if (nVRB_odd_dist<64)
-        allocdist1_0_odd |= (1<<(nVRB_odd_dist-32));
+        allocdist1_0_odd |= 1U << (nVRB_odd_dist - 32);
       else if (nVRB_odd_dist<96)
-  allocdist2_0_odd |= (1<<(nVRB_odd_dist-64));
+        allocdist2_0_odd |= 1U << (nVRB_odd_dist - 64);
       else
-  allocdist3_0_odd |= (1<<(nVRB_odd_dist-96));
+        allocdist3_0_odd |= 1U << (nVRB_odd_dist - 96);
 
 
       // Distributed Gap2, even slot
       nVRB_even_dist = get_prb(100,0,nVRB,1);
       if (nVRB_even_dist<32)
-        allocdist0_1_even |= (1<<nVRB_even_dist);
+        allocdist0_1_even |= 1U << nVRB_even_dist;
       else if (nVRB_even_dist<64)
-        allocdist1_1_even |= (1<<(nVRB_even_dist-32));
+        allocdist1_1_even |= 1U << (nVRB_even_dist - 32);
       else if (nVRB_even_dist<96)
-  allocdist2_1_even |= (1<<(nVRB_even_dist-64));
+        allocdist2_1_even |= 1U << (nVRB_even_dist - 64);
       else
-  allocdist3_1_even |= (1<<(nVRB_even_dist-96));
+        allocdist3_1_even |= 1U << (nVRB_even_dist - 96);
 
 
       // Distributed Gap2, odd slot
       nVRB_odd_dist = get_prb(100,1,nVRB,1);
       if (nVRB_odd_dist<32)
-        allocdist0_1_odd |= (1<<nVRB_odd_dist);
+        allocdist0_1_odd |= 1U << nVRB_odd_dist;
       else if (nVRB_odd_dist<64)
-        allocdist1_1_odd |= (1<<(nVRB_odd_dist-32));
+        allocdist1_1_odd |= 1U << (nVRB_odd_dist - 32);
       else if (nVRB_odd_dist<96)
-  allocdist2_1_odd |= (1<<(nVRB_odd_dist-64));
+        allocdist2_1_odd |= 1U << (nVRB_odd_dist - 64);
       else
-  allocdist3_1_odd |= (1<<(nVRB_odd_dist-96));
-
+        allocdist3_1_odd |= 1U << (nVRB_odd_dist - 96);
 
       RIV=computeRIV(100,RBstart,Lcrbs);
 
diff --git a/openair1/PHY/LTE_TRANSPORT/defs_NB_IoT.h b/openair1/PHY/LTE_TRANSPORT/defs_NB_IoT.h
index 3574ba67405..d90216c3e6a 100644
--- a/openair1/PHY/LTE_TRANSPORT/defs_NB_IoT.h
+++ b/openair1/PHY/LTE_TRANSPORT/defs_NB_IoT.h
@@ -509,7 +509,7 @@ typedef struct {
   /// Position of first CCE of the dci
   int                   firstCCE;
   /// flag to indicate that this is a RA response
-  boolean_t      ra_flag;
+  bool                  ra_flag;
   /// rnti
   rnti_t                rnti;
   /// Format
diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c b/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
index 3ccbd8ca35a..13109d8f5a1 100644
--- a/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
+++ b/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
@@ -288,7 +288,7 @@ static void TPencode(void * arg) {
   LTE_DL_eNB_HARQ_t *hadlsch=rdata->dlsch->harq_processes[harq_pid];
   
   if ( rdata-> round == 0) {
-    uint8_t tmp[96+12+3+3*6144];
+    uint8_t tmp[96+12+3+3*6144] __attribute__((aligned(32)));
     memset(tmp,LTE_NULL, TURBO_SIMD_SOFTBITS);
     start_meas(rdata->te_stats);
     encoder(rdata->input,
diff --git a/openair1/PHY/LTE_UE_TRANSPORT/dci_tools_ue.c b/openair1/PHY/LTE_UE_TRANSPORT/dci_tools_ue.c
index 088e2c0a5e2..b5e5b490a35 100644
--- a/openair1/PHY/LTE_UE_TRANSPORT/dci_tools_ue.c
+++ b/openair1/PHY/LTE_UE_TRANSPORT/dci_tools_ue.c
@@ -64,6 +64,12 @@ extern uint16_t beta_cqi[16];
 extern uint16_t beta_ri[16];
 extern uint16_t beta_ack[16];
 
+static int errorRB(int rb, char * table, int line) {
+  LOG_E(PHY,"Received %d rb, impossble in table %s, at line %d\n", rb, table, line);
+  return 0;
+}
+
+#define rbAllocCheck(RBalL, TabLe) (RBalL) > sizeof(TabLe)/sizeof(*TabLe) ? errorRB(RBalL, #TabLe, __LINE__) : TabLe[RBalL]
 void extract_dci1A_info(uint8_t N_RB_DL, frame_type_t frame_type, void *dci_pdu, DCI_INFO_EXTRACTED_t *pdci_info_extarcted)
 {
     uint8_t harq_pid=0;
@@ -974,28 +980,28 @@ int check_dci_format1_1a_coherency(DCI_format_t dci_format,
     {
         switch (N_RB_DL) {
         case 6:
-            NPRB     = RIV2nb_rb_LUT6[rballoc];//NPRB;
+            NPRB     = rbAllocCheck(rballoc, RIV2nb_rb_LUT6);
             if(rah)
               RIV_max  = RIV_max6;
             else
               RIV_max  = 0x3F;
             break;
         case 25:
-            NPRB     = RIV2nb_rb_LUT25[rballoc];//NPRB;
+            NPRB     =  rbAllocCheck(rballoc,RIV2nb_rb_LUT25);
             if(rah)
               RIV_max  = RIV_max25;
             else
               RIV_max  = 0x1FFF;
             break;
         case 50:
-            NPRB     = RIV2nb_rb_LUT50[rballoc];//NPRB;
+            NPRB     =  rbAllocCheck(rballoc,RIV2nb_rb_LUT50);
             if(rah)
               RIV_max  = RIV_max50;
             else
               RIV_max  = 0x1FFFF;
             break;
         case 100:
-            NPRB     = RIV2nb_rb_LUT100[rballoc];//NPRB;
+            NPRB     =  rbAllocCheck(rballoc,RIV2nb_rb_LUT100);
             if(rah)
               RIV_max  = RIV_max100;
             else
@@ -1034,9 +1040,14 @@ int check_dci_format1_1a_coherency(DCI_format_t dci_format,
             // this is an eNB issue
             // retransmisison but old and new TBS are different !!!
             // work around, consider it as a new transmission
-            LOG_E(PHY,"Format1A Retransmission but TBS are different: consider it as new transmission !!! \n");
+            LOG_E(PHY,
+                  "Format1A Retransmission but TBS are different: consider it as new transmission !!!, round %d, mcs 1 %d, NPRB %d \n",
+                  pdlsch0_harq->round,
+                  mcs1,
+                  NPRB);
             pdlsch0_harq->round = 0;
             //return(0); // ?? to cross check
+	  return(0); // ?? to cross check
         }
     }
 
diff --git a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c
index 0b665737a7b..8f5e33d6e00 100644
--- a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c
+++ b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c
@@ -41,7 +41,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <linux/version.h>
-#if RHEL_RELEASE_CODE >= 1796
+#if defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= 1796 && RHEL_RELEASE_CODE != 2403
   #include <lapacke/lapacke_utils.h>
   #include <lapacke/lapacke.h>
 #else
diff --git a/openair1/PHY/LTE_UE_TRANSPORT/linear_preprocessing_rec.c b/openair1/PHY/LTE_UE_TRANSPORT/linear_preprocessing_rec.c
index 7d063e326ef..83c74389cf2 100644
--- a/openair1/PHY/LTE_UE_TRANSPORT/linear_preprocessing_rec.c
+++ b/openair1/PHY/LTE_UE_TRANSPORT/linear_preprocessing_rec.c
@@ -14,7 +14,7 @@ data storage. */
 #include <cblas.h>
 #include <string.h>
 #include <linux/version.h>
-#if RHEL_RELEASE_CODE >= 1796
+#if defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= 1796 && RHEL_RELEASE_CODE != 2403
 #include <lapacke/lapacke_utils.h>
 #include <lapacke/lapacke.h>
 #else
diff --git a/openair1/PHY/LTE_UE_TRANSPORT/transport_proto_ue.h b/openair1/PHY/LTE_UE_TRANSPORT/transport_proto_ue.h
index f5b8c6b64a0..36da4ccab0e 100644
--- a/openair1/PHY/LTE_UE_TRANSPORT/transport_proto_ue.h
+++ b/openair1/PHY/LTE_UE_TRANSPORT/transport_proto_ue.h
@@ -1272,14 +1272,6 @@ uint32_t get_TBS_DL(uint8_t mcs, uint16_t nb_rb);
     @return Transport block size */
 uint32_t get_TBS_UL(uint8_t mcs, uint16_t nb_rb);
 
-/* \brief Return bit-map of resource allocation for a given DCI rballoc (RIV format) and vrb type
-   @param N_RB_DL number of PRB on DL
-   @param indicator for even/odd slot
-   @param vrb vrb index
-   @param Ngap Gap indicator
-*/
-uint32_t get_prb(int N_RB_DL,int odd_slot,int vrb,int Ngap);
-
 /* \brief Return prb for a given vrb index
    @param vrb_type VRB type (0=localized,1=distributed)
    @param rb_alloc_dci rballoc field from DCI
diff --git a/openair1/PHY/LTE_UE_TRANSPORT/transport_ue.h b/openair1/PHY/LTE_UE_TRANSPORT/transport_ue.h
index b4ae44f6eab..5f8763414ef 100644
--- a/openair1/PHY/LTE_UE_TRANSPORT/transport_ue.h
+++ b/openair1/PHY/LTE_UE_TRANSPORT/transport_ue.h
@@ -90,7 +90,7 @@ typedef struct {
   /// Redundancy-version of the current sub-frame
   uint8_t rvidx;
   /// Turbo-code outputs (36-212 V8.6 2009-03, p.12
-  uint8_t d[MAX_NUM_ULSCH_SEGMENTS][(96+3+(3*6144))];
+  uint8_t *d[MAX_NUM_ULSCH_SEGMENTS];
   /// Sub-block interleaver outputs (36-212 V8.6 2009-03, p.16-17)
   uint8_t w[MAX_NUM_ULSCH_SEGMENTS][3*6144];
   /// Number of code segments (for definition see 36-212 V8.6 2009-03, p.9)
diff --git a/openair1/PHY/LTE_UE_TRANSPORT/ulsch_coding.c b/openair1/PHY/LTE_UE_TRANSPORT/ulsch_coding.c
index ae3ebbce9dc..c04ec160aa1 100644
--- a/openair1/PHY/LTE_UE_TRANSPORT/ulsch_coding.c
+++ b/openair1/PHY/LTE_UE_TRANSPORT/ulsch_coding.c
@@ -71,6 +71,7 @@ void free_ue_ulsch(LTE_UE_ULSCH_t *ulsch) {
         for (r=0; r<MAX_NUM_ULSCH_SEGMENTS; r++) {
           if (ulsch->harq_processes[i]->c[r]) {
             free16(ulsch->harq_processes[i]->c[r],((r==0)?8:0) + 3+768);
+            free16(ulsch->harq_processes[i]->d[r],0);
             ulsch->harq_processes[i]->c[r] = NULL;
           }
         }
@@ -86,7 +87,7 @@ void free_ue_ulsch(LTE_UE_ULSCH_t *ulsch) {
 
 LTE_UE_ULSCH_t *new_ue_ulsch(unsigned char N_RB_UL, uint8_t abstraction_flag) {
   LTE_UE_ULSCH_t *ulsch;
-  unsigned char exit_flag = 0,i,j,r;
+  unsigned char exit_flag = 0;
   unsigned char bw_scaling =1;
 
   switch (N_RB_UL) {
@@ -113,7 +114,7 @@ LTE_UE_ULSCH_t *new_ue_ulsch(unsigned char N_RB_UL, uint8_t abstraction_flag) {
     memset(ulsch,0,sizeof(LTE_UE_ULSCH_t));
     ulsch->Mlimit = 4;
 
-    for (i=0; i<8; i++) {
+    for (int i=0; i<8; i++) {
       ulsch->harq_processes[i] = (LTE_UL_UE_HARQ_t *)malloc16(sizeof(LTE_UL_UE_HARQ_t));
 
       //      printf("ulsch->harq_processes[%d] %p\n",i,ulsch->harq_processes[i]);
@@ -129,15 +130,11 @@ LTE_UE_ULSCH_t *new_ue_ulsch(unsigned char N_RB_UL, uint8_t abstraction_flag) {
         }
 
         if (abstraction_flag==0) {
-          for (r=0; r<MAX_NUM_ULSCH_SEGMENTS; r++) {
-            ulsch->harq_processes[i]->c[r] = (unsigned char *)malloc16(((r==0)?8:0) + 3+768); // account for filler in first segment and CRCs for multiple segment case
-
-            if (ulsch->harq_processes[i]->c[r])
-              memset(ulsch->harq_processes[i]->c[r],0,((r==0)?8:0) + 3+768);
-            else {
-              LOG_E(PHY,"Can't get c\n");
-              exit_flag=2;
-            }
+          for (int r=0; r<MAX_NUM_ULSCH_SEGMENTS; r++) {
+            ulsch->harq_processes[i]->c[r] = malloc16_clear(((r==0)?8:0) + 3+768); // account for filler in first segment and CRCs for multiple segment case
+            AssertFatal(ulsch->harq_processes[i]->c[r], "");
+            ulsch->harq_processes[i]->d[r] = malloc16_clear(96+3+(3*6144));
+            AssertFatal(ulsch->harq_processes[i]->d[r], "");
           }
         }
 
@@ -148,15 +145,7 @@ LTE_UE_ULSCH_t *new_ue_ulsch(unsigned char N_RB_UL, uint8_t abstraction_flag) {
         exit_flag=3;
       }
     }
-
-    if ((abstraction_flag == 0) && (exit_flag==0)) {
-      for (i=0; i<8; i++)
-        for (j=0; j<96; j++)
-          for (r=0; r<MAX_NUM_ULSCH_SEGMENTS; r++)
-            ulsch->harq_processes[i]->d[r][j] = LTE_NULL;
-
-      return(ulsch);
-    } else if (abstraction_flag==1)
+    if (!exit_flag)
       return(ulsch);
   }
 
@@ -191,7 +180,7 @@ uint32_t ulsch_encoding(uint8_t *a,
   uint32_t Qprime_ACK=0,Qprime_CQI=0,Qprime_RI=0,len_ACK=0,len_RI=0;
   //  uint32_t E;
   uint8_t ack_parity;
-  uint32_t i,q,j,iprime,j2;
+  uint32_t q,j,iprime,j2;
   uint16_t o_RCC;
   uint8_t o_flip[8];
   uint32_t wACK_idx;
@@ -327,6 +316,8 @@ uint32_t ulsch_encoding(uint8_t *a,
 #endif
         //  offset=0;
         start_meas(te_stats);
+        for (int z=0; z<96; z++)
+            ulsch->harq_processes[harq_pid]->d[r][z] = LTE_NULL;
         encoder(ulsch->harq_processes[harq_pid]->c[r],
                 Kr>>3,
                 &ulsch->harq_processes[harq_pid]->d[r][96],
@@ -539,8 +530,6 @@ uint32_t ulsch_encoding(uint8_t *a,
                          ulsch->q);
   }
 
-  i=0;
-
   //  Do RI coding
   if (ulsch->O_RI == 1) {
     switch (Q_m) {
@@ -691,7 +680,7 @@ uint32_t ulsch_encoding(uint8_t *a,
 
   j=0;
 
-  for (i=0; i<Qprime_RI; i++) {
+  for (int i=0; i<Qprime_RI; i++) {
     r = Rmux_prime - 1 - (i>>2);
 
     for (q=0; q<Q_m; q++)  {
@@ -725,7 +714,7 @@ uint32_t ulsch_encoding(uint8_t *a,
   }
   */
 
-  for (i=0; i<Qprime_CQI; i++) {
+  for (int i=0; i<Qprime_CQI; i++) {
     while (y[Q_m*j] != LTE_NULL) j++;
 
     for (q=0; q<Q_m; q++) {
@@ -788,7 +777,7 @@ uint32_t ulsch_encoding(uint8_t *a,
 
   j=0;
 
-  for (i=0; i<Qprime_ACK; i++) {
+  for (int i=0; i<Qprime_ACK; i++) {
     r = Rmux_prime - 1 - (i>>2);
 
     for (q=0; q<Q_m; q++) {
@@ -808,7 +797,7 @@ uint32_t ulsch_encoding(uint8_t *a,
 
   switch (Q_m) {
     case 2:
-      for (i=0; i<Cmux; i++)
+      for (int i=0; i<Cmux; i++)
         for (r=0; r<Rmux_prime; r++) {
           yptr=&y[((r*Cmux)+i)<<1];
           ulsch->h[j++] = *yptr++;
@@ -818,7 +807,7 @@ uint32_t ulsch_encoding(uint8_t *a,
       break;
 
     case 4:
-      for (i=0; i<Cmux; i++)
+      for (int i=0; i<Cmux; i++)
         for (r=0; r<Rmux_prime; r++) {
           yptr = &y[((r*Cmux)+i)<<2];
           ulsch->h[j++] = *yptr++;
@@ -830,7 +819,7 @@ uint32_t ulsch_encoding(uint8_t *a,
       break;
 
     case 6:
-      for (i=0; i<Cmux; i++)
+      for (int i=0; i<Cmux; i++)
         for (r=0; r<Rmux_prime; r++) {
           yptr = &y[((r*Cmux)+i)*6];
           ulsch->h[j++] = *yptr++;
diff --git a/openair1/PHY/MODULATION/nr_modulation.c b/openair1/PHY/MODULATION/nr_modulation.c
index b1a108f2475..1b5c4f4af0a 100644
--- a/openair1/PHY/MODULATION/nr_modulation.c
+++ b/openair1/PHY/MODULATION/nr_modulation.c
@@ -226,10 +226,11 @@ void nr_modulation(uint32_t *in,
     i *= 24;
     bit_cnt = i * 8;
     while (bit_cnt < length) {
-      x = *((uint32_t*)(in_bytes+i));
-      x1 = x&4095;
+      uint32_t xx;
+      memcpy(&xx, in_bytes+i, sizeof(xx));
+      x1 = xx & 4095;
       out64[j++] = nr_64qam_mod_table[x1];
-      x1 = (x>>12)&4095;
+      x1 = (xx >> 12) & 4095;
       out64[j++] = nr_64qam_mod_table[x1];
       i += 3;
       bit_cnt += 24;
@@ -618,20 +619,20 @@ void init_symbol_rotation(NR_DL_FRAME_PARMS *fp) {
 
     double f0 = f[ll];
     double Ncpm1 = Ncp0;
-    int16_t *symbol_rotation = fp->symbol_rotation[ll];
+    c16_t *symbol_rotation = fp->symbol_rotation[ll];
 
     double tl = 0;
     double poff = 2 * M_PI * ((Ncp0 * Tc)) * f0;
     double exp_re = cos(poff);
     double exp_im = sin(-poff);
-    symbol_rotation[0] = (int16_t)floor(exp_re * 32767);
-    symbol_rotation[1] = (int16_t)floor(exp_im * 32767);
+    symbol_rotation[0].r = (int16_t)floor(exp_re * 32767);
+    symbol_rotation[0].i = (int16_t)floor(exp_im * 32767);
     LOG_I(PHY, "Doing symbol rotation calculation for gNB TX/RX, f0 %f Hz, Nsymb %d\n", f0, nsymb);
     LOG_I(PHY, "Symbol rotation %d/%d => (%d,%d)\n",
       0,
       nsymb,
-      symbol_rotation[0],
-      symbol_rotation[1]);
+      symbol_rotation[0].r,
+      symbol_rotation[0].i);
 
     for (int l = 1; l < nsymb; l++) {
 
@@ -646,15 +647,15 @@ void init_symbol_rotation(NR_DL_FRAME_PARMS *fp) {
       poff = 2 * M_PI * (tl + (Ncp * Tc)) * f0;
       exp_re = cos(poff);
       exp_im = sin(-poff);
-      symbol_rotation[l<<1] = (int16_t)floor(exp_re * 32767);
-      symbol_rotation[1 + (l<<1)] = (int16_t)floor(exp_im * 32767);
+      symbol_rotation[l].r = (int16_t)floor(exp_re * 32767);
+      symbol_rotation[l].i = (int16_t)floor(exp_im * 32767);
 
       LOG_I(PHY, "Symbol rotation %d/%d => tl %f (%d,%d) (%f)\n",
         l,
         nsymb,
         tl,
-        symbol_rotation[l<<1],
-        symbol_rotation[1 + (l<<1)],
+        symbol_rotation[l].r,
+        symbol_rotation[l].i,
         (poff / 2 / M_PI) - floor(poff / 2 / M_PI));
 
       Ncpm1 = Ncp;
@@ -665,17 +666,18 @@ void init_symbol_rotation(NR_DL_FRAME_PARMS *fp) {
 
 void init_timeshift_rotation(NR_DL_FRAME_PARMS *fp)
 {
+  const int sample_offset = fp->nb_prefix_samples / fp->ofdm_offset_divisor;
   for (int i = 0; i < fp->ofdm_symbol_size; i++) {
-    double poff = -i * 2.0 * M_PI * 144.0 / 2048.0 / fp->ofdm_offset_divisor;
+    double poff = -i * 2.0 * M_PI * sample_offset / fp->ofdm_symbol_size;
     double exp_re = cos(poff);
     double exp_im = sin(-poff);
-    fp->timeshift_symbol_rotation[i*2] = (int16_t)round(exp_re * 32767);
-    fp->timeshift_symbol_rotation[i*2+1] = (int16_t)round(exp_im * 32767);
+    fp->timeshift_symbol_rotation[i].r = (int16_t)round(exp_re * 32767);
+    fp->timeshift_symbol_rotation[i].i = (int16_t)round(exp_im * 32767);
 
     if (i < 10)
       LOG_I(PHY,"Timeshift symbol rotation %d => (%d,%d) %f\n",i,
-            fp->timeshift_symbol_rotation[i*2],
-            fp->timeshift_symbol_rotation[i*2+1],
+            fp->timeshift_symbol_rotation[i].r,
+            fp->timeshift_symbol_rotation[i].i,
             poff);
   }
 }
diff --git a/openair1/PHY/MODULATION/ofdm_mod.c b/openair1/PHY/MODULATION/ofdm_mod.c
index a2e565b61eb..4eaabe39b96 100644
--- a/openair1/PHY/MODULATION/ofdm_mod.c
+++ b/openair1/PHY/MODULATION/ofdm_mod.c
@@ -46,18 +46,18 @@ void normal_prefix_mod(int32_t *txdataF,int32_t *txdata,uint8_t nsymb,LTE_DL_FRA
 
   
   PHY_ofdm_mod(txdataF,        // input
-	       txdata,         // output
-	       frame_parms->ofdm_symbol_size,                
+               txdata,         // output
+               frame_parms->ofdm_symbol_size,                
 
-	       1,                 // number of symbols
-	       frame_parms->nb_prefix_samples0,               // number of prefix samples
-	       CYCLIC_PREFIX);
+               1,                 // number of symbols
+               frame_parms->nb_prefix_samples0,               // number of prefix samples
+               CYCLIC_PREFIX);
   PHY_ofdm_mod(txdataF+frame_parms->ofdm_symbol_size,        // input
-	       txdata+OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES0,         // output
-	       frame_parms->ofdm_symbol_size,                
-	       nsymb-1,
-	       frame_parms->nb_prefix_samples,               // number of prefix samples
-	       CYCLIC_PREFIX);
+               txdata+OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES0,         // output
+               frame_parms->ofdm_symbol_size,                
+               nsymb-1,
+               frame_parms->nb_prefix_samples,               // number of prefix samples
+               CYCLIC_PREFIX);
   
 
   
@@ -345,14 +345,14 @@ void do_OFDM_mod(int32_t **txdataF, int32_t **txdata, uint32_t frame,uint16_t ne
 }
 
 void apply_nr_rotation(NR_DL_FRAME_PARMS *fp,
-		       int16_t* trxdata,
-		       int slot,
-		       int first_symbol,
-		       int nsymb,
-		       int length) {
+                       int16_t* trxdata,
+                       int slot,
+                       int first_symbol,
+                       int nsymb,
+                       int length) {
   int symb_offset = (slot%fp->slots_per_subframe)*fp->symbols_per_slot;
 
-  int16_t *symbol_rotation = fp->symbol_rotation[0];
+  c16_t *symbol_rotation = fp->symbol_rotation[0];
 
   for (int sidx=0;sidx<nsymb;sidx++) {
 
@@ -361,14 +361,14 @@ void apply_nr_rotation(NR_DL_FRAME_PARMS *fp,
       slot,
       sidx + first_symbol + symb_offset,
       length,
-      symbol_rotation[2 * (sidx + first_symbol + symb_offset)],
-      symbol_rotation[1 + 2 * (sidx + first_symbol + symb_offset)]);
+      symbol_rotation[sidx + first_symbol + symb_offset].r,
+      symbol_rotation[sidx + first_symbol + symb_offset].i);
 
-    rotate_cpx_vector(trxdata + (sidx * length * 2),
-                      &symbol_rotation[2 * (sidx + first_symbol + symb_offset)],
-                      trxdata + (sidx * length * 2),
+    rotate_cpx_vector(((c16_t*) trxdata) + sidx * length,
+                      symbol_rotation + sidx + first_symbol + symb_offset,
+                      ((c16_t*) trxdata) + sidx * length,
                       length,
                       15);
   }
 }
-		       
+                       
diff --git a/openair1/PHY/MODULATION/slot_fep_nr.c b/openair1/PHY/MODULATION/slot_fep_nr.c
index 232ddffd269..548db21878e 100644
--- a/openair1/PHY/MODULATION/slot_fep_nr.c
+++ b/openair1/PHY/MODULATION/slot_fep_nr.c
@@ -34,53 +34,6 @@
 #define LOG_I(A,B...) printf(A)
 #endif*/
 
-dft_size_idx_t get_dft_size_idx(uint16_t ofdm_symbol_size)
-{
-  switch (ofdm_symbol_size) {
-  case 128:
-    return DFT_128;
-
-  case 256:
-    return DFT_256;
-
-  case 384:
-    return DFT_384;
-
-  case 512:
-    return DFT_512;
-
-  case 768:
-    return DFT_768;
-
-  case 1024:
-    return DFT_1024;
-
-  case 1536:
-    return DFT_1536;
-
-  case 2048:
-    return DFT_2048;
-
-  case 3072:
-    return DFT_3072;
-
-  case 4096:
-    return DFT_4096;
-
-  case 6144:
-    return DFT_6144;
-
-  case 8192:
-    return DFT_8192;
-
-  default:
-    printf("unsupported ofdm symbol size \n");
-    assert(0);
-  }
-
-  return DFT_SIZE_IDXTABLESIZE;
-}
-
 int nr_slot_fep(PHY_VARS_NR_UE *ue,
                 UE_nr_rxtx_proc_t *proc,
                 unsigned char symbol,
@@ -102,7 +55,7 @@ int nr_slot_fep(PHY_VARS_NR_UE *ue,
     nb_prefix_samples0 = frame_parms->nb_prefix_samples;
   }
 
-  dft_size_idx_t dftsize = get_dft_size_idx(frame_parms->ofdm_symbol_size);
+  dft_size_idx_t dftsize = get_dft(frame_parms->ofdm_symbol_size);
   // This is for misalignment issues
   int32_t tmp_dft_in[8192] __attribute__ ((aligned (32)));
 
@@ -145,25 +98,25 @@ int nr_slot_fep(PHY_VARS_NR_UE *ue,
     stop_meas(&ue->rx_dft_stats);
 
     int symb_offset = (Ns%frame_parms->slots_per_subframe)*frame_parms->symbols_per_slot;
-    int32_t rot2 = ((uint32_t*)frame_parms->symbol_rotation[0])[symbol+symb_offset];
-    ((int16_t*)&rot2)[1]=-((int16_t*)&rot2)[1];
+    c16_t rot2 = frame_parms->symbol_rotation[0][symbol+symb_offset];
+    rot2.i=-rot2.i;
 
 #ifdef DEBUG_FEP
     //  if (ue->frame <100)
     printf("slot_fep: slot %d, symbol %d rx_offset %u, rotation symbol %d %d.%d\n", Ns,symbol, rx_offset,
-	   symbol+symb_offset,((int16_t*)&rot2)[0],((int16_t*)&rot2)[1]);
+	   symbol+symb_offset,rot2.r,rot2.i);
 #endif
 
-    rotate_cpx_vector((int16_t *)&common_vars->common_vars_rx_data_per_thread[proc->thread_id].rxdataF[aa][frame_parms->ofdm_symbol_size*symbol],
-		      (int16_t*)&rot2,
-		      (int16_t *)&common_vars->common_vars_rx_data_per_thread[proc->thread_id].rxdataF[aa][frame_parms->ofdm_symbol_size*symbol],
+    rotate_cpx_vector((c16_t *)&common_vars->common_vars_rx_data_per_thread[proc->thread_id].rxdataF[aa][frame_parms->ofdm_symbol_size*symbol],
+		      &rot2,
+		      (c16_t *)&common_vars->common_vars_rx_data_per_thread[proc->thread_id].rxdataF[aa][frame_parms->ofdm_symbol_size*symbol],
 		      frame_parms->ofdm_symbol_size,
 		      15);
 
-    int16_t *shift_rot = frame_parms->timeshift_symbol_rotation;
+    c16_t *shift_rot = frame_parms->timeshift_symbol_rotation;
 
     multadd_cpx_vector((int16_t *)&common_vars->common_vars_rx_data_per_thread[proc->thread_id].rxdataF[aa][frame_parms->ofdm_symbol_size*symbol],
-          shift_rot,
+          (int16_t *)shift_rot,
           (int16_t *)&common_vars->common_vars_rx_data_per_thread[proc->thread_id].rxdataF[aa][frame_parms->ofdm_symbol_size*symbol],
           1,
           frame_parms->ofdm_symbol_size,
@@ -201,7 +154,7 @@ int nr_slot_fep_init_sync(PHY_VARS_NR_UE *ue,
   }
   unsigned int frame_length_samples = frame_parms->samples_per_frame;
 
-  dft_size_idx_t dftsize = get_dft_size_idx(frame_parms->ofdm_symbol_size);
+  dft_size_idx_t dftsize = get_dft(frame_parms->ofdm_symbol_size);
   // This is for misalignment issues
   int32_t tmp_dft_in[8192] __attribute__ ((aligned (32)));
 
@@ -261,18 +214,18 @@ int nr_slot_fep_init_sync(PHY_VARS_NR_UE *ue,
     stop_meas(&ue->rx_dft_stats);
 
     int symb_offset = (Ns%frame_parms->slots_per_subframe)*frame_parms->symbols_per_slot;
-    int32_t rot2 = ((uint32_t*)frame_parms->symbol_rotation[0])[symbol + symb_offset];
-    ((int16_t*)&rot2)[1]=-((int16_t*)&rot2)[1];
+    c16_t rot2 = frame_parms->symbol_rotation[0][symbol + symb_offset];
+    rot2.i=-rot2.i;
 
 #ifdef DEBUG_FEP
     //  if (ue->frame <100)
     printf("slot_fep: slot %d, symbol %d rx_offset %u, rotation symbol %d %d.%d\n", Ns,symbol, rx_offset,
-	   symbol+symb_offset,((int16_t*)&rot2)[0],((int16_t*)&rot2)[1]);
+	   symbol+symb_offset,rot2.r,rot2.i);
 #endif
 
-    rotate_cpx_vector((int16_t *)&common_vars->common_vars_rx_data_per_thread[proc->thread_id].rxdataF[aa][frame_parms->ofdm_symbol_size*symbol],
-		      (int16_t*)&rot2,
-		      (int16_t *)&common_vars->common_vars_rx_data_per_thread[proc->thread_id].rxdataF[aa][frame_parms->ofdm_symbol_size*symbol],
+    rotate_cpx_vector((c16_t *)&common_vars->common_vars_rx_data_per_thread[proc->thread_id].rxdataF[aa][frame_parms->ofdm_symbol_size*symbol],
+		      &rot2,
+		      (c16_t *)&common_vars->common_vars_rx_data_per_thread[proc->thread_id].rxdataF[aa][frame_parms->ofdm_symbol_size*symbol],
 		      frame_parms->ofdm_symbol_size,
 		      15);
   }
@@ -295,7 +248,7 @@ int nr_slot_fep_ul(NR_DL_FRAME_PARMS *frame_parms,
   unsigned int nb_prefix_samples  = frame_parms->nb_prefix_samples;
   unsigned int nb_prefix_samples0 = frame_parms->nb_prefix_samples0;
   
-  dft_size_idx_t dftsize = get_dft_size_idx(frame_parms->ofdm_symbol_size);
+  dft_size_idx_t dftsize = get_dft(frame_parms->ofdm_symbol_size);
   // This is for misalignment issues
   int32_t tmp_dft_in[8192] __attribute__ ((aligned (32)));
 
@@ -357,19 +310,19 @@ void apply_nr_rotation_ul(NR_DL_FRAME_PARMS *frame_parms,
 
   for (int symbol=first_symbol;symbol<nsymb;symbol++) {
     
-    uint32_t rot2 = ((uint32_t*)frame_parms->symbol_rotation[1])[symbol + symb_offset];
-    ((int16_t*)&rot2)[1]=-((int16_t*)&rot2)[1];
-    LOG_D(PHY,"slot %d, symb_offset %d rotating by %d.%d\n",slot,symb_offset,((int16_t*)&rot2)[0],((int16_t*)&rot2)[1]);
-    rotate_cpx_vector((int16_t *)&rxdataF[soffset+(frame_parms->ofdm_symbol_size*symbol)],
-		      (int16_t*)&rot2,
-		      (int16_t *)&rxdataF[soffset+(frame_parms->ofdm_symbol_size*symbol)],
+    c16_t rot2 = frame_parms->symbol_rotation[1][symbol + symb_offset];
+    rot2.i=-rot2.i;
+    LOG_D(PHY,"slot %d, symb_offset %d rotating by %d.%d\n",slot,symb_offset,rot2.r,rot2.i);
+    rotate_cpx_vector((c16_t *)&rxdataF[soffset+(frame_parms->ofdm_symbol_size*symbol)],
+		      &rot2,
+		      (c16_t *)&rxdataF[soffset+(frame_parms->ofdm_symbol_size*symbol)],
 		      length,
 		      15);
 
-    int16_t *shift_rot = frame_parms->timeshift_symbol_rotation;
+    c16_t *shift_rot = frame_parms->timeshift_symbol_rotation;
 
     multadd_cpx_vector((int16_t *)&rxdataF[soffset+(frame_parms->ofdm_symbol_size*symbol)],
-          shift_rot,
+          (int16_t *)shift_rot,
           (int16_t *)&rxdataF[soffset+(frame_parms->ofdm_symbol_size*symbol)],
           1,
           length,
diff --git a/openair1/PHY/NR_ESTIMATION/nr_measurements_gNB.c b/openair1/PHY/NR_ESTIMATION/nr_measurements_gNB.c
index fb56322e544..c527c3fc9df 100644
--- a/openair1/PHY/NR_ESTIMATION/nr_measurements_gNB.c
+++ b/openair1/PHY/NR_ESTIMATION/nr_measurements_gNB.c
@@ -67,6 +67,49 @@ int nr_est_timing_advance_pusch(PHY_VARS_gNB* gNB, int UE_id)
   return max_pos - sync_pos;
 }
 
+int nr_est_timing_advance_srs(const NR_DL_FRAME_PARMS *frame_parms,
+                              const int32_t srs_estimated_channel_time[][frame_parms->ofdm_symbol_size]) {
+  int timing_advance = 0;
+  int max_val = 0;
+
+  for (int i = 0; i < frame_parms->ofdm_symbol_size; i++) {
+    int temp = 0;
+    for (int aa = 0; aa < frame_parms->nb_antennas_rx; aa++) {
+      int Re = ((c16_t*)srs_estimated_channel_time[aa])[i].r;
+      int Im = ((c16_t*)srs_estimated_channel_time[aa])[i].i;
+      temp += (Re*Re/2) + (Im*Im/2);
+    }
+    if (temp > max_val) {
+      timing_advance = i;
+      max_val = temp;
+    }
+  }
+
+  if (timing_advance > frame_parms->ofdm_symbol_size/2) {
+    timing_advance = timing_advance - frame_parms->ofdm_symbol_size;
+  }
+
+  // Scale the 16 factor in N_TA calculation in 38.213 section 4.2 according to the used FFT size
+  const uint16_t bw_scaling = frame_parms->ofdm_symbol_size >> 7;
+
+  // do some integer rounding to improve TA accuracy
+  int sync_pos_rounded;
+  if (timing_advance > 0) {
+    sync_pos_rounded = timing_advance + (bw_scaling >> 1) - 1;
+  } else {
+    sync_pos_rounded = timing_advance - (bw_scaling >> 1) + 1;
+  }
+
+  int timing_advance_update = sync_pos_rounded / bw_scaling;
+
+  // put timing advance command in 0..63 range
+  timing_advance_update += 31;
+
+  if (timing_advance_update < 0)  timing_advance_update = 0;
+  if (timing_advance_update > 63) timing_advance_update = 63;
+
+  return timing_advance_update;
+}
 
 void dump_nr_I0_stats(FILE *fd,PHY_VARS_gNB *gNB) {
 
@@ -108,9 +151,9 @@ void gNB_I0_measurements(PHY_VARS_gNB *gNB,int slot, int first_symb,int num_symb
   NR_gNB_COMMON *common_vars = &gNB->common_vars;
   PHY_MEASUREMENTS_gNB *measurements = &gNB->measurements;
   int rb, nb_symb[275]={0};
-   
+
   memset(measurements->n0_subband_power, 0, sizeof(measurements->n0_subband_power));
-    
+
   for (int s=first_symb;s<(first_symb+num_symb);s++) {
     for (rb=0; rb<frame_parms->N_RB_UL; rb++) {
       if (s==first_symb /*&& ((gNB->rb_mask_ul[s][rb>>5]&(1<<(rb&31))) == 0)*/) {
@@ -119,13 +162,13 @@ void gNB_I0_measurements(PHY_VARS_gNB *gNB,int slot, int first_symb,int num_symb
            measurements->n0_subband_power[aarx][rb]=0;   
       }
       int offset0 = (slot&3)*(frame_parms->symbols_per_slot * frame_parms->ofdm_symbol_size) + (frame_parms->first_carrier_offset + (rb*12))%frame_parms->ofdm_symbol_size;
-      if ((gNB->rb_mask_ul[s][rb>>5]&(1<<(rb&31))) == 0) {  // check that rb was not used in this subframe
+      if ((gNB->rb_mask_ul[s][rb >> 5] & (1U << (rb & 31))) == 0) {  // check that rb was not used in this subframe
         nb_symb[rb]++;          
         for (int aarx=0; aarx<frame_parms->nb_antennas_rx; aarx++) {
           int offset = offset0 + (s*frame_parms->ofdm_symbol_size);
           int32_t *ul_ch  = &common_vars->rxdataF[aarx][offset];
           int len = 12;
-          if (((frame_parms->N_RB_UL&1) == 1) && 
+          if (((frame_parms->N_RB_UL&1) == 1) &&
               (rb==(frame_parms->N_RB_UL>>1))) {
             len=6;
           }
diff --git a/openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c b/openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
index 4a6f8ef9af1..e5c1ca37d82 100644
--- a/openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
+++ b/openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
@@ -86,12 +86,13 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
 
   int pilot[3280] __attribute__((aligned(16)));
   unsigned char aarx;
-  unsigned short k;
+  unsigned short k0;
   unsigned int pilot_cnt,re_cnt;
   int16_t ch[2],ch_r[2],ch_l[2],*pil,*rxF,*ul_ch;
   int16_t *fl,*fm,*fr,*fml,*fmr,*fmm,*fdcl,*fdcr,*fdclh,*fdcrh;
   int ch_offset,symbol_offset ;
   int32_t **ul_ch_estimates_time =  gNB->pusch_vars[ul_id]->ul_ch_estimates_time;
+  int chest_freq = gNB->chest_freq;
   __m128i *ul_ch_128;
 
 #ifdef DEBUG_CH
@@ -112,18 +113,18 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
 
   symbol_offset = gNB->frame_parms.ofdm_symbol_size*symbol;
 
-  k = bwp_start_subcarrier;
+  k0 = bwp_start_subcarrier;
   int re_offset;
 
   uint16_t nb_rb_pusch = pusch_pdu->rb_size;
 
-  LOG_D(PHY, "In %s: ch_offset %d, soffset %d, symbol_offset %d OFDM size %d, Ns = %d, k = %d symbol %d\n",
+  LOG_D(PHY, "In %s: ch_offset %d, soffset %d, symbol_offset %d, OFDM size %d, Ns = %d, k0 = %d, symbol %d\n",
         __FUNCTION__,
         ch_offset, soffset,
         symbol_offset,
         gNB->frame_parms.ofdm_symbol_size,
         Ns,
-        k,
+        k0,
         symbol);
 
   switch (nushift) {
@@ -146,7 +147,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
          fr = filt8_r1;
          fmm = filt8_mm1;
          fml = filt8_ml1;
-         fmr = filt8_m1;
+         fmr = filt8_mm1;
          fdcl = filt8_dcl1;
          fdcr = filt8_dcr1;
          fdclh = filt8_dcl1_h;
@@ -169,10 +170,8 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
     gNB->pusch_gold_init[pusch_pdu->scid] = pusch_pdu->ul_dmrs_scrambling_id;
     nr_gold_pusch(gNB, pusch_pdu->scid, pusch_pdu->ul_dmrs_scrambling_id);
   }
-
-  // transform precoding = 1 means disabled
-  if (pusch_pdu->transform_precoding == 1) {
-    nr_pusch_dmrs_rx(gNB, Ns, gNB->nr_gold_pusch_dmrs[pusch_pdu->scid][Ns][symbol], &pilot[0], 1000, 0, nb_rb_pusch,
+  if (pusch_pdu->transform_precoding == transformPrecoder_disabled) {
+    nr_pusch_dmrs_rx(gNB, Ns, gNB->nr_gold_pusch_dmrs[pusch_pdu->scid][Ns][symbol], &pilot[0], (1000+p), 0, nb_rb_pusch,
                      (pusch_pdu->bwp_start + pusch_pdu->rb_start)*NR_NB_SC_PER_RB, pusch_pdu->dmrs_config_type);
   }
   else {  // if transform precoding or SC-FDMA is enabled in Uplink
@@ -208,214 +207,81 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
   }
 #endif
 
-  for (aarx=0; aarx<gNB->frame_parms.nb_antennas_rx; aarx++) {
+  uint8_t b_shift = pusch_pdu->nrOfLayers == 1;
 
-    re_offset = k;   /* Initializing the Resource element offset for each Rx antenna */
+  for (aarx=0; aarx<gNB->frame_parms.nb_antennas_rx; aarx++) {
 
     pil   = (int16_t *)&pilot[0];
-    rxF   = (int16_t *)&rxdataF[aarx][(soffset+symbol_offset+k+nushift)];
+    rxF   = (int16_t *)&rxdataF[aarx][(soffset + symbol_offset + k0 + nushift)];
     ul_ch = (int16_t *)&ul_ch_estimates[p*gNB->frame_parms.nb_antennas_rx+aarx][ch_offset];
-    re_offset = k;
+    re_offset = k0;
 
     memset(ul_ch,0,4*(gNB->frame_parms.ofdm_symbol_size));
 
 #ifdef DEBUG_PUSCH
     LOG_I(PHY, "In %s symbol_offset %d, nushift %d\n", __FUNCTION__, symbol_offset, nushift);
     LOG_I(PHY, "In %s ch est pilot addr %p, N_RB_UL %d\n", __FUNCTION__, &pilot[0], gNB->frame_parms.N_RB_UL);
-    LOG_I(PHY, "In %s bwp_start_subcarrier %d, k %d, first_carrier %d, nb_rb_pusch %d\n", __FUNCTION__, bwp_start_subcarrier, k, gNB->frame_parms.first_carrier_offset, nb_rb_pusch);
+    LOG_I(PHY, "In %s bwp_start_subcarrier %d, k0 %d, first_carrier %d, nb_rb_pusch %d\n", __FUNCTION__, bwp_start_subcarrier, k0, gNB->frame_parms.first_carrier_offset, nb_rb_pusch);
     LOG_I(PHY, "In %s rxF addr %p p %d\n", __FUNCTION__, rxF, p);
     LOG_I(PHY, "In %s ul_ch addr %p nushift %d\n", __FUNCTION__, ul_ch, nushift);
 #endif
-    //if ((gNB->frame_parms.N_RB_UL&1)==0) {
 
-    if (pusch_pdu->dmrs_config_type == pusch_dmrs_type1 && gNB->prb_interpolation == 0){
+    if (pusch_pdu->dmrs_config_type == pusch_dmrs_type1 && chest_freq == 0){
       LOG_D(PHY,"PUSCH estimation DMRS type 1, Freq-domain interpolation");
-      // Treat first 2 pilots specially (left edge)
-      ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
-      ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
 
-#ifdef DEBUG_PUSCH
-      LOG_I(PHY, "In %s ch 0 %d\n", __FUNCTION__, ((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1]));
-      LOG_I(PHY, "In %s pilot 0 : rxF - > (%d,%d) (%d)  ch -> (%d,%d) (%d), pil -> (%d,%d) \n",
-        __FUNCTION__,
-        rxF[0],
-        rxF[1],
-        dBc(rxF[0],rxF[1]),
-        ch[0],
-        ch[1],
-        dBc(ch[0],ch[1]),
-        pil[0],
-        pil[1]);
-      LOG_I(PHY, "In %s data 0 : rxF - > (%d,%d) (%d)\n", __FUNCTION__, rxF[2], rxF[3], dBc(rxF[2],rxF[3]));
-#endif
+      // For configuration type 1: k = 4*n + 2*k' + delta,
+      // where k' is 0 or 1, and delta is in Table 6.4.1.1.3-1 from TS 38.211
 
-      multadd_real_vector_complex_scalar(fl,
-                                         ch,
-                                         ul_ch,
-                                         8);
-      pil += 2;
-      re_offset = (re_offset+2) % gNB->frame_parms.ofdm_symbol_size;
-      rxF   = (int16_t *)&rxdataF[aarx][(soffset+symbol_offset+nushift+re_offset)];
-      //for (int i= 0; i<8; i++)
-      //printf("ul_ch addr %p %d\n", ul_ch+i, *(ul_ch+i));
+      pilot_cnt = 0;
+      int delta = nr_pusch_dmrs_delta(pusch_dmrs_type1, p);
 
-      ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
-      ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
+      for (int n = 0; n < 3*nb_rb_pusch; n++) {
 
-#ifdef DEBUG_PUSCH
-      LOG_I(PHY, "In %s pilot 1 : rxF - > (%d,%d) (%d) ch -> (%d,%d) (%d), pil -> (%d,%d) \n",
-        __FUNCTION__,
-        rxF[0],
-        rxF[1],
-        dBc(rxF[0],rxF[1]),
-        ch[0],
-        ch[1],
-        dBc(ch[0],ch[1]),
-        pil[0],
-        pil[1]);
-      LOG_I(PHY, "In %s data 1 : rxF - > (%d,%d) (%d)\n",
-        __FUNCTION__,
-        rxF[2],
-        rxF[3],
-        dBc(rxF[2],rxF[3]));
-#endif
-
-      multadd_real_vector_complex_scalar(fml,
-                                         ch,
-                                         ul_ch,
-                                         8);
-      pil += 2;
-      re_offset = (re_offset+2) % gNB->frame_parms.ofdm_symbol_size;
-      rxF   = (int16_t *)&rxdataF[aarx][(soffset+symbol_offset+nushift+re_offset)];
-      //printf("ul_ch addr %p\n",ul_ch);
-      
-      ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
-      ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
+        // LS estimation
+        ch[0] = 0;
+        ch[1] = 0;
+        for (int k_line = 0; k_line <= 1; k_line++) {
+          re_offset = (k0 + (n << 2) + (k_line << 1) + delta) % gNB->frame_parms.ofdm_symbol_size;
+          rxF = (int16_t *) &rxdataF[aarx][(soffset + symbol_offset + re_offset)];
+          ch[0] += (int16_t) (((int32_t) pil[0] * rxF[0] - (int32_t) pil[1] * rxF[1]) >> (15+b_shift));
+          ch[1] += (int16_t) (((int32_t) pil[0] * rxF[1] + (int32_t) pil[1] * rxF[0]) >> (15+b_shift));
+          pil += 2;
+        }
 
+        // Channel interpolation
+        for (int k_line = 0; k_line <= 1; k_line++) {
 #ifdef DEBUG_PUSCH
-      LOG_I(PHY, "In %s pilot 2 : rxF - > (%d,%d) (%d) ch -> (%d,%d) (%d), pil -> (%d,%d) \n",
-        __FUNCTION__,
-        rxF[0],
-        rxF[1],
-        dBc(rxF[0],rxF[1]),
-        ch[0],
-        ch[1],
-        dBc(ch[0],ch[1]),
-        pil[0],
-        pil[1]);
-      LOG_I(PHY, "In %s data 2 : rxF - > (%d,%d) (%d)\n",
-        __FUNCTION__,
-        rxF[2],
-        rxF[3],
-        dBc(rxF[2],rxF[3]));
+          re_offset = (k0 + (n << 2) + (k_line << 1)) % gNB->frame_parms.ofdm_symbol_size;
+          rxF = (int16_t *) &rxdataF[aarx][(soffset + symbol_offset + re_offset)];
+          printf("pilot %4u: pil -> (%6d,%6d), rxF -> (%4d,%4d), ch -> (%4d,%4d)\n",
+                 pilot_cnt, pil[0], pil[1], rxF[0], rxF[1], ch[0], ch[1]);
+          //printf("data %4u: rxF -> (%4d,%4d) (%2d)\n",pilot_cnt, rxF[2], rxF[3], dBc(rxF[2], rxF[3]));
 #endif
-
-      multadd_real_vector_complex_scalar(fmm,
-                                         ch,
-                                         ul_ch,
-                                         8);
-
-      //for (int i= 0; i<16; i++)
-      //printf("ul_ch addr %p %d\n", ul_ch+i, *(ul_ch+i));
-
-      pil += 2;
-      re_offset = (re_offset+2) % gNB->frame_parms.ofdm_symbol_size;
-      rxF   = (int16_t *)&rxdataF[aarx][(soffset+symbol_offset+nushift+re_offset)];
-      ul_ch+=8;
-
-      for (pilot_cnt=3; pilot_cnt<(6*nb_rb_pusch-3); pilot_cnt += 2) {
-
-        ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
-        ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
-
-  #ifdef DEBUG_PUSCH
-        printf("pilot %u : rxF - > (%d,%d) (%d) ch -> (%d,%d) (%d), pil -> (%d,%d) \n",pilot_cnt,rxF[0],rxF[1],dBc(rxF[0],rxF[1]),ch[0],ch[1],dBc(ch[0],ch[1]),pil[0],pil[1]);
-	printf("data %u : rxF - > (%d,%d) (%d)\n",pilot_cnt,rxF[2],rxF[3],dBc(rxF[2],rxF[3]));
-  #endif
-        multadd_real_vector_complex_scalar(fml,
-                                           ch,
-                                           ul_ch,
-                                           8);
-        pil += 2;
-        re_offset = (re_offset+2) % gNB->frame_parms.ofdm_symbol_size;
-        rxF   = (int16_t *)&rxdataF[aarx][(soffset+symbol_offset+nushift+re_offset)];
-        //printf("ul_ch addr %p\n",ul_ch);
-
-        ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
-        ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
-
-  #ifdef DEBUG_PUSCH
-        printf("pilot %u : rxF - > (%d,%d) (%d) ch -> (%d,%d) (%d), pil -> (%d,%d) \n",pilot_cnt+1,rxF[0],rxF[1],dBc(rxF[0],rxF[1]),ch[0],ch[1],dBc(ch[0],ch[1]),pil[0],pil[1]);
-	printf("data %u : rxF - > (%d,%d) (%d)\n",pilot_cnt+1,rxF[2],rxF[3],dBc(rxF[2],rxF[3]));
-  #endif
-        multadd_real_vector_complex_scalar(fmm,
-                                           ch,
-                                           ul_ch,
-                                           8);
-
-        //for (int i= 0; i<16; i++)
-        //printf("ul_ch addr %p %d\n", ul_ch+i, *(ul_ch+i));
-
-        pil += 2;
-        re_offset = (re_offset+2) % gNB->frame_parms.ofdm_symbol_size;
-        rxF   = (int16_t *)&rxdataF[aarx][soffset+(symbol_offset+nushift+re_offset)];
-        ul_ch+=8;
+          if (pilot_cnt == 0) {
+            multadd_real_vector_complex_scalar(fl, ch, ul_ch, 8);
+          } else if (pilot_cnt == 1) {
+            multadd_real_vector_complex_scalar(fml, ch, ul_ch, 8);
+          } else if (pilot_cnt == (6*nb_rb_pusch-2)) {
+            multadd_real_vector_complex_scalar(fmr, ch, ul_ch, 8);
+            ul_ch+=8;
+          } else if (pilot_cnt == (6*nb_rb_pusch-1)) {
+            multadd_real_vector_complex_scalar(fr, ch, ul_ch, 8);
+          } else if (pilot_cnt%2 == 0) {
+            multadd_real_vector_complex_scalar(fmm, ch, ul_ch, 8);
+            ul_ch+=8;
+          } else {
+            multadd_real_vector_complex_scalar(fm, ch, ul_ch, 8);
+          }
+          pilot_cnt++;
+        }
       }
-      
-      // Treat first 2 pilots specially (right edge)
-      ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
-      ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
-#ifdef DEBUG_PUSCH
-      printf("pilot %u : rxF - > (%d,%d) (%d) ch -> (%d,%d) (%d), pil -> (%d,%d) \n",pilot_cnt,rxF[0],rxF[1],dBc(rxF[0],rxF[1]),ch[0],ch[1],dBc(ch[0],ch[1]),pil[0],pil[1]);
-      printf("data %u : rxF - > (%d,%d) (%d)\n",pilot_cnt,rxF[2],rxF[3],dBc(rxF[2],rxF[3]));
-#endif
-      multadd_real_vector_complex_scalar(fm,
-                                         ch,
-                                         ul_ch,
-                                         8);
-                                         
-      //for (int i= 0; i<8; i++)
-      //printf("ul_ch addr %p %d\n", ul_ch+i, *(ul_ch+i));
-
-      pil += 2;
-      re_offset = (re_offset+2) % gNB->frame_parms.ofdm_symbol_size;
-      rxF   = (int16_t *)&rxdataF[aarx][soffset+(symbol_offset+nushift+re_offset)];
-             
-      ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
-      ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
-#ifdef DEBUG_PUSCH
-      printf("ch 0 %d\n",((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1]));
-      printf("pilot %u : rxF - > (%d,%d) (%d) ch -> (%d,%d) (%d), pil -> (%d,%d) \n",pilot_cnt+1,rxF[0],rxF[1],dBc(rxF[0],rxF[1]),ch[0],ch[1],dBc(ch[0],ch[1]),pil[0],pil[1]);
-      printf("data %u : rxF - > (%d,%d) (%d)\n",pilot_cnt+1,rxF[2],rxF[3],dBc(rxF[2],rxF[3]));
-#endif
-      multadd_real_vector_complex_scalar(fmr,
-                                         ch,
-                                         ul_ch,
-                                         8);
-                                         
-      pil += 2;
-      re_offset = (re_offset+2) % gNB->frame_parms.ofdm_symbol_size;
-      rxF   = (int16_t *)&rxdataF[aarx][soffset+(symbol_offset+nushift+re_offset)];
-      ul_ch+=8;
-      
-      ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
-      ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
-#ifdef DEBUG_PUSCH
-      printf("pilot %u: rxF - > (%d,%d) (%d) ch -> (%d,%d) (%d), pil -> (%d,%d) \n",pilot_cnt+2,rxF[0],rxF[1],dBc(rxF[0],rxF[1]),ch[0],ch[1],dBc(ch[0],ch[1]),pil[0],pil[1]);
-      printf("data %u : rxF - > (%d,%d) (%d)\n",pilot_cnt+2,rxF[2],rxF[3],dBc(rxF[2],rxF[3]));
-#endif
-      multadd_real_vector_complex_scalar(fr,
-                                         ch,
-                                         ul_ch,
-                                         8);
-
 
       // check if PRB crosses DC and improve estimates around DC
       if ((bwp_start_subcarrier < gNB->frame_parms.ofdm_symbol_size) && (bwp_start_subcarrier+nb_rb_pusch*12 >= gNB->frame_parms.ofdm_symbol_size)) {
         ul_ch = (int16_t *)&ul_ch_estimates[p*gNB->frame_parms.nb_antennas_rx+aarx][ch_offset];
         uint16_t idxDC = 2*(gNB->frame_parms.ofdm_symbol_size - bwp_start_subcarrier);
         uint16_t idxPil = idxDC/2;
-        re_offset = k;
+        re_offset = k0;
         pil = (int16_t *)&pilot[0];
         pil += (idxPil-2);
         ul_ch += (idxDC-4);
@@ -428,10 +294,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
         // for proper allignment of SIMD vectors
         if((gNB->frame_parms.N_RB_UL&1)==0) {
 
-          multadd_real_vector_complex_scalar(fdcl,
-                                             ch,
-                                             ul_ch-4,
-                                             8);
+          multadd_real_vector_complex_scalar(fdcl, ch, ul_ch-4, 8);
         
           pil += 4;
           re_offset = (re_offset+4) % gNB->frame_parms.ofdm_symbol_size;
@@ -439,16 +302,11 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
           ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
           ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
         
-          multadd_real_vector_complex_scalar(fdcr,
-                                             ch,
-                                             ul_ch-4,
-                                             8);
-        }
-        else {
-          multadd_real_vector_complex_scalar(fdclh,
-                                             ch,
-                                             ul_ch,
-                                             8);
+          multadd_real_vector_complex_scalar(fdcr, ch, ul_ch-4, 8);
+
+        } else {
+
+          multadd_real_vector_complex_scalar(fdclh, ch, ul_ch, 8);
         
           pil += 4;
           re_offset = (re_offset+4) % gNB->frame_parms.ofdm_symbol_size;
@@ -456,23 +314,22 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
           ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
           ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
         
-          multadd_real_vector_complex_scalar(fdcrh,
-                                             ch,
-                                             ul_ch,
-                                             8);
+          multadd_real_vector_complex_scalar(fdcrh, ch, ul_ch, 8);
         }
       }
+
 #ifdef DEBUG_PUSCH
       ul_ch = (int16_t *)&ul_ch_estimates[p*gNB->frame_parms.nb_antennas_rx+aarx][ch_offset];
       for(uint16_t idxP=0; idxP<ceil((float)nb_rb_pusch*12/8); idxP++) {
+        printf("(%3d)\t",idxP);
         for(uint8_t idxI=0; idxI<16; idxI += 2) {
           printf("%d\t%d\t",ul_ch[idxP*16+idxI],ul_ch[idxP*16+idxI+1]);
         }
-        printf("%d\n",idxP);
+        printf("\n");
       }
 #endif    
     }
-    else if (pusch_pdu->dmrs_config_type == pusch_dmrs_type2 && gNB->prb_interpolation == 0) { //pusch_dmrs_type2  |p_r,p_l,d,d,d,d,p_r,p_l,d,d,d,d|
+    else if (pusch_pdu->dmrs_config_type == pusch_dmrs_type2 && chest_freq == 0) { //pusch_dmrs_type2  |p_r,p_l,d,d,d,d,p_r,p_l,d,d,d,d|
       LOG_D(PHY,"PUSCH estimation DMRS type 2, Freq-domain interpolation");
       // Treat first DMRS specially (left edge)
 
@@ -808,6 +665,10 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
       ch[0] = ch_0 / 4;
       ch[1] = ch_1 / 4;
 
+#if NO_INTERP
+      for (int i=0;i<12;i++) ((int32_t*)ul_ch)[i] = *(int32_t*)ch;
+      ul_ch+=24;
+#else
       multadd_real_vector_complex_scalar(filt8_avlip0,
                                          ch,
                                          ul_ch,
@@ -825,6 +686,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
                                          ul_ch,
                                          8);
       ul_ch -= 24;
+#endif
 
       for (pilot_cnt=4; pilot_cnt<4*(nb_rb_pusch-1); pilot_cnt += 4) {
 
@@ -859,6 +721,10 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
         ch[0] = ch_0 / 4;
         ch[1] = ch_1 / 4;
 
+#if NO_INTERP
+        for (int i=0;i<12;i++) ((int32_t*)ul_ch)[i] = *(int32_t*)ch;
+        ul_ch+=24;
+#else
         ul_ch[6] += (ch[0] * 1365)>>15; // 1/12*16384
         ul_ch[7] += (ch[1] * 1365)>>15; // 1/12*16384
 
@@ -880,6 +746,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
                                            ul_ch,
                                            8);
         ul_ch -= 16;
+#endif
       }
       // Last PRB
       ch_0 = ((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15;
@@ -913,6 +780,10 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
       ch[0] = ch_0 / 4;
       ch[1] = ch_1 / 4;
 
+#if NO_INTERP
+      for (int i=0;i<12;i++) ((int32_t*)ul_ch)[i] = *(int32_t*)ch;
+      ul_ch+=24;
+#else
       ul_ch[6] += (ch[0] * 1365)>>15; // 1/12*16384
       ul_ch[7] += (ch[1] * 1365)>>15; // 1/12*16384
 
@@ -927,6 +798,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
                                          ch,
                                          ul_ch,
                                          8);
+#endif
     }
 #ifdef DEBUG_PUSCH
     ul_ch = (int16_t *)&ul_ch_estimates[p*gNB->frame_parms.nb_antennas_rx+aarx][ch_offset];
@@ -982,7 +854,6 @@ void nr_pusch_ptrs_processing(PHY_VARS_gNB *gNB,
                               uint32_t nb_re_pusch)
 {
   //#define DEBUG_UL_PTRS 1
-  int16_t *phase_per_symbol = NULL;
   int32_t *ptrs_re_symbol   = NULL;
   int8_t   ret = 0;
 
@@ -999,20 +870,20 @@ void nr_pusch_ptrs_processing(PHY_VARS_gNB *gNB,
   uint8_t  *ptrsReOffset    = &rel15_ul->pusch_ptrs.ptrs_ports_list[0].ptrs_re_offset;
   /* loop over antennas */
   for (int aarx=0; aarx<frame_parms->nb_antennas_rx; aarx++) {
-    phase_per_symbol = (int16_t*)gNB->pusch_vars[ulsch_id]->ptrs_phase_per_slot[aarx];
+    c16_t *phase_per_symbol = (c16_t*)gNB->pusch_vars[ulsch_id]->ptrs_phase_per_slot[aarx];
     ptrs_re_symbol = &gNB->pusch_vars[ulsch_id]->ptrs_re_per_slot;
     *ptrs_re_symbol = 0;
-    phase_per_symbol[(2*symbol)+1] = 0; // Imag
+    phase_per_symbol[symbol].i = 0; 
     /* set DMRS estimates to 0 angle with magnitude 1 */
     if(is_dmrs_symbol(symbol,*dmrsSymbPos)) {
       /* set DMRS real estimation to 32767 */
-      phase_per_symbol[2*symbol]=(int16_t)((1<<15)-1); // 32767
+      phase_per_symbol[symbol].r=INT16_MAX; // 32767
 #ifdef DEBUG_UL_PTRS
-      printf("[PHY][PTRS]: DMRS Symbol %d -> %4d + j*%4d\n", symbol, phase_per_symbol[2*symbol],phase_per_symbol[(2*symbol)+1]);
+      printf("[PHY][PTRS]: DMRS Symbol %d -> %4d + j*%4d\n", symbol, phase_per_symbol[symbol].r,phase_per_symbol[symbol].i);
 #endif
     }
     else {// real ptrs value is set to 0
-      phase_per_symbol[2*symbol] = 0; // Real
+      phase_per_symbol[symbol].r = 0; 
     }
 
     if(symbol == *startSymbIndex) {
@@ -1033,12 +904,11 @@ void nr_pusch_ptrs_processing(PHY_VARS_gNB *gNB,
       /*------------------------------------------------------------------------------------------------------- */
       nr_ptrs_cpe_estimation(*K_ptrs,*ptrsReOffset,*dmrsConfigType,*nb_rb,
                              rel15_ul->rnti,
-                             (int16_t *)&gNB->pusch_vars[ulsch_id]->ul_ch_ptrs_estimates_ext[aarx][symbol*nb_re_pusch],
                              nr_tti_rx,
                              symbol,frame_parms->ofdm_symbol_size,
                              (int16_t*)&gNB->pusch_vars[ulsch_id]->rxdataF_comp[aarx][(symbol * nb_re_pusch)],
                              gNB->nr_gold_pusch_dmrs[rel15_ul->scid][nr_tti_rx][symbol],
-                             &phase_per_symbol[2* symbol],
+                             (int16_t*)&phase_per_symbol[symbol],
                              ptrs_re_symbol);
     }
     /* For last OFDM symbol at each antenna perform interpolation and compensation for the slot*/
@@ -1048,7 +918,7 @@ void nr_pusch_ptrs_processing(PHY_VARS_gNB *gNB,
       /*------------------------------------------------------------------------------------------------------- */
       /* If L-PTRS is > 0 then we need interpolation */
       if(*L_ptrs > 0) {
-        ret = nr_ptrs_process_slot(*dmrsSymbPos, *ptrsSymbPos, phase_per_symbol, *startSymbIndex, *nbSymb);
+        ret = nr_ptrs_process_slot(*dmrsSymbPos, *ptrsSymbPos, (int16_t*)phase_per_symbol, *startSymbIndex, *nbSymb);
         if(ret != 0) {
           LOG_W(PHY,"[PTRS] Compensation is skipped due to error in PTRS slot processing !!\n");
         }
@@ -1067,11 +937,11 @@ void nr_pusch_ptrs_processing(PHY_VARS_gNB *gNB,
         /* Skip rotation if the slot processing is wrong */
         if((!is_dmrs_symbol(i,*dmrsSymbPos)) && (ret == 0)) {
 #ifdef DEBUG_UL_PTRS
-          printf("[PHY][UL][PTRS]: Rotate Symbol %2d with  %d + j* %d\n", i, phase_per_symbol[2* i],phase_per_symbol[(2* i) +1]);
+          printf("[PHY][UL][PTRS]: Rotate Symbol %2d with  %d + j* %d\n", i, phase_per_symbol[i].r,phase_per_symbol[i].i);
 #endif
-          rotate_cpx_vector((int16_t*)&gNB->pusch_vars[ulsch_id]->rxdataF_comp[aarx][(i * rel15_ul->rb_size * NR_NB_SC_PER_RB)],
-                            &phase_per_symbol[2* i],
-                            (int16_t*)&gNB->pusch_vars[ulsch_id]->rxdataF_comp[aarx][(i * rel15_ul->rb_size * NR_NB_SC_PER_RB)],
+          rotate_cpx_vector((c16_t*)&gNB->pusch_vars[ulsch_id]->rxdataF_comp[aarx][(i * rel15_ul->rb_size * NR_NB_SC_PER_RB)],
+                            &phase_per_symbol[i],
+                            (c16_t*)&gNB->pusch_vars[ulsch_id]->rxdataF_comp[aarx][(i * rel15_ul->rb_size * NR_NB_SC_PER_RB)],
                             ((*nb_rb) * NR_NB_SC_PER_RB), 15);
         }// if not DMRS Symbol
       }// symbol loop
@@ -1079,9 +949,9 @@ void nr_pusch_ptrs_processing(PHY_VARS_gNB *gNB,
   }//Antenna loop
 }
 
-uint32_t calc_power(uint16_t *x, uint32_t size) {
-  uint64_t sum_x = 0;
-  uint64_t sum_x2 = 0;
+uint32_t calc_power(const int16_t *x, const uint32_t size) {
+  int64_t sum_x = 0;
+  int64_t sum_x2 = 0;
   for(int k = 0; k<size; k++) {
     sum_x = sum_x + x[k];
     sum_x2 = sum_x2 + x[k]*x[k];
@@ -1089,28 +959,34 @@ uint32_t calc_power(uint16_t *x, uint32_t size) {
   return sum_x2/size - (sum_x/size)*(sum_x/size);
 }
 
-int nr_srs_channel_estimation(PHY_VARS_gNB *gNB,
-                              int frame,
-                              int slot,
-                              nfapi_nr_srs_pdu_t *srs_pdu,
-                              nr_srs_info_t *nr_srs_info,
-                              int32_t *srs_generated_signal,
-                              int32_t **srs_received_signal,
-                              int32_t **srs_estimated_channel_freq,
-                              int32_t **srs_estimated_channel_time,
-                              int32_t **srs_estimated_channel_time_shifted,
-                              uint32_t *noise_power) {
+int nr_srs_channel_estimation(const PHY_VARS_gNB *gNB,
+                              const int frame,
+                              const int slot,
+                              const nfapi_nr_srs_pdu_t *srs_pdu,
+                              const nr_srs_info_t *nr_srs_info,
+                              const int32_t *srs_generated_signal,
+                              int32_t srs_received_signal[][gNB->frame_parms.ofdm_symbol_size*(1<<srs_pdu->num_symbols)],
+                              int32_t srs_ls_estimated_channel[][gNB->frame_parms.ofdm_symbol_size*(1<<srs_pdu->num_symbols)],
+                              int32_t srs_estimated_channel_freq[][gNB->frame_parms.ofdm_symbol_size*(1<<srs_pdu->num_symbols)],
+                              int32_t srs_estimated_channel_time[][gNB->frame_parms.ofdm_symbol_size],
+                              int32_t srs_estimated_channel_time_shifted[][gNB->frame_parms.ofdm_symbol_size],
+                              uint32_t *signal_power,
+                              uint32_t *noise_power_per_rb,
+                              uint32_t *noise_power,
+                              int8_t *snr_per_rb,
+                              int8_t *snr) {
 
   if(nr_srs_info->sc_list_length == 0) {
     LOG_E(NR_PHY, "(%d.%d) nr_srs_info was not generated yet!\n", frame, slot);
     return -1;
   }
 
-  NR_DL_FRAME_PARMS *frame_parms = &gNB->frame_parms;
-  int32_t **srs_ls_estimated_channel = nr_srs_info->srs_ls_estimated_channel;
+  const NR_DL_FRAME_PARMS *frame_parms = &gNB->frame_parms;
 
-  uint16_t noise_real[frame_parms->nb_antennas_rx*nr_srs_info->sc_list_length];
-  uint16_t noise_imag[frame_parms->nb_antennas_rx*nr_srs_info->sc_list_length];
+  int16_t ch_real[frame_parms->nb_antennas_rx*nr_srs_info->sc_list_length];
+  int16_t ch_imag[frame_parms->nb_antennas_rx*nr_srs_info->sc_list_length];
+  int16_t noise_real[frame_parms->nb_antennas_rx*nr_srs_info->sc_list_length];
+  int16_t noise_imag[frame_parms->nb_antennas_rx*nr_srs_info->sc_list_length];
 
   int16_t ls_estimated[2];
 
@@ -1123,11 +999,11 @@ int nr_srs_channel_estimation(PHY_VARS_gNB *gNB,
 
     for(int sc_idx = 0; sc_idx < nr_srs_info->sc_list_length; sc_idx++) {
 
-      int16_t generated_real = srs_generated_signal[nr_srs_info->sc_list[sc_idx]] & 0xFFFF;
-      int16_t generated_imag = (srs_generated_signal[nr_srs_info->sc_list[sc_idx]] >> 16) & 0xFFFF;
+      int16_t generated_real = ((c16_t*)srs_generated_signal)[nr_srs_info->sc_list[sc_idx]].r;
+      int16_t generated_imag = ((c16_t*)srs_generated_signal)[nr_srs_info->sc_list[sc_idx]].i;
 
-      int16_t received_real = srs_received_signal[ant][nr_srs_info->sc_list[sc_idx]] & 0xFFFF;
-      int16_t received_imag = (srs_received_signal[ant][nr_srs_info->sc_list[sc_idx]] >> 16) & 0xFFFF;
+      int16_t received_real = ((c16_t*)srs_received_signal[ant])[nr_srs_info->sc_list[sc_idx]].r;
+      int16_t received_imag = ((c16_t*)srs_received_signal[ant])[nr_srs_info->sc_list[sc_idx]].i;
 
       // We know that nr_srs_info->srs_generated_signal_bits bits are enough to represent the generated_real and generated_imag.
       // So we only need a nr_srs_info->srs_generated_signal_bits shift to ensure that the result fits into 16 bits.
@@ -1198,8 +1074,10 @@ int nr_srs_channel_estimation(PHY_VARS_gNB *gNB,
 
     // Compute noise
     for(int sc_idx = 0; sc_idx < nr_srs_info->sc_list_length; sc_idx++) {
-      noise_real[ant*nr_srs_info->sc_list_length + sc_idx] = abs((int16_t)((srs_ls_estimated_channel[ant][nr_srs_info->sc_list[sc_idx]]-srs_estimated_channel_freq[ant][nr_srs_info->sc_list[sc_idx]]) & 0xFFFF));
-      noise_imag[ant*nr_srs_info->sc_list_length + sc_idx] = abs((int16_t)(((srs_ls_estimated_channel[ant][nr_srs_info->sc_list[sc_idx]]-srs_estimated_channel_freq[ant][nr_srs_info->sc_list[sc_idx]]) >> 16) & 0xFFFF));
+      ch_real[ant*nr_srs_info->sc_list_length + sc_idx] = ((c16_t*)srs_estimated_channel_freq[ant])[nr_srs_info->sc_list[sc_idx]].r;
+      ch_imag[ant*nr_srs_info->sc_list_length + sc_idx] = ((c16_t*)srs_estimated_channel_freq[ant])[nr_srs_info->sc_list[sc_idx]].i;
+      noise_real[ant*nr_srs_info->sc_list_length + sc_idx] = abs(((c16_t*)srs_ls_estimated_channel[ant])[nr_srs_info->sc_list[sc_idx]].r - ch_real[ant*nr_srs_info->sc_list_length + sc_idx]);
+      noise_imag[ant*nr_srs_info->sc_list_length + sc_idx] = abs(((c16_t*)srs_ls_estimated_channel[ant])[nr_srs_info->sc_list[sc_idx]].i - ch_imag[ant*nr_srs_info->sc_list_length + sc_idx]);
     }
 
     // Convert to time domain
@@ -1216,11 +1094,74 @@ int nr_srs_channel_estimation(PHY_VARS_gNB *gNB,
            (gNB->frame_parms.ofdm_symbol_size>>1)*sizeof(int32_t));
   }
 
+  // Compute signal power
+  *signal_power = calc_power(ch_real,frame_parms->nb_antennas_rx*nr_srs_info->sc_list_length)
+                  + calc_power(ch_imag,frame_parms->nb_antennas_rx*nr_srs_info->sc_list_length);
+
+#ifdef SRS_DEBUG
+  LOG_I(NR_PHY,"signal_power = %u\n", *signal_power);
+#endif
+
+  if (*signal_power == 0) {
+    LOG_W(NR_PHY, "Received SRS signal power is 0\n");
+    return -1;
+  }
+
+  // Compute noise power
+
+  const uint8_t signal_power_bits = log2_approx(*signal_power);
+  const uint8_t factor_bits = signal_power_bits < 32 ? 32 - signal_power_bits : 0; // 32 due to input of dB_fixed(uint32_t x)
+  const int32_t factor_dB = dB_fixed(1<<factor_bits);
+
+  const uint64_t subcarrier_offset = frame_parms->first_carrier_offset + srs_pdu->bwp_start*12;
+  const uint8_t srs_symbols_per_rb = srs_pdu->comb_size == 0 ? 6 : 3;
+  const uint8_t n_noise_est = frame_parms->nb_antennas_rx * srs_symbols_per_rb;
+  uint8_t count_estimates = 0;
+  uint64_t sum_re = 0;
+  uint64_t sum_re2 = 0;
+  uint64_t sum_im = 0;
+  uint64_t sum_im2 = 0;
+
+  for (int sc_idx = 0; sc_idx < nr_srs_info->sc_list_length; sc_idx++) {
+
+    int subcarrier0 = nr_srs_info->sc_list[sc_idx]-subcarrier_offset;
+    if(subcarrier0 < 0) {
+      subcarrier0 = subcarrier0 + frame_parms->ofdm_symbol_size;
+    }
+    int rb = subcarrier0/NR_NB_SC_PER_RB;
+
+    for (int ant = 0; ant < frame_parms->nb_antennas_rx; ant++) {
+
+      sum_re = sum_re + noise_real[ant*nr_srs_info->sc_list_length+sc_idx];
+      sum_re2 = sum_re2 + noise_real[ant*nr_srs_info->sc_list_length+sc_idx]*noise_real[ant*nr_srs_info->sc_list_length+sc_idx];
+      sum_im = sum_im + noise_imag[ant*nr_srs_info->sc_list_length+sc_idx];
+      sum_im2 = sum_im2 + noise_imag[ant*nr_srs_info->sc_list_length+sc_idx]*noise_imag[ant*nr_srs_info->sc_list_length+sc_idx];
+
+      count_estimates++;
+      if (count_estimates == n_noise_est) {
+        noise_power_per_rb[rb] = max(sum_re2 / n_noise_est - (sum_re / n_noise_est) * (sum_re / n_noise_est) +
+                                     sum_im2 / n_noise_est - (sum_im / n_noise_est) * (sum_im / n_noise_est), 1);
+        snr_per_rb[rb] = dB_fixed((int32_t)((*signal_power<<factor_bits)/noise_power_per_rb[rb])) - factor_dB;
+        count_estimates = 0;
+        sum_re = 0;
+        sum_re2 = 0;
+        sum_im = 0;
+        sum_im2 = 0;
+
+#ifdef SRS_DEBUG
+        LOG_I(NR_PHY,"noise_power_per_rb[%i] = %i, snr_per_rb[%i] = %i dB\n", rb, noise_power_per_rb[rb], rb, snr_per_rb[rb]);
+#endif
+
+      }
+    }
+  }
+
   *noise_power = calc_power(noise_real,frame_parms->nb_antennas_rx*nr_srs_info->sc_list_length)
                   + calc_power(noise_imag,frame_parms->nb_antennas_rx*nr_srs_info->sc_list_length);
 
+  *snr = dB_fixed((int32_t)((*signal_power<<factor_bits)/(*noise_power))) - factor_dB;
+
 #ifdef SRS_DEBUG
-  uint64_t subcarrier_offset = frame_parms->first_carrier_offset + srs_pdu->bwp_start*12;
   uint8_t R = srs_pdu->comb_size == 0 ? 2 : 4;
   for (int ant = 0; ant < frame_parms->nb_antennas_rx; ant++) {
     for(int sc_idx = 0; sc_idx < nr_srs_info->sc_list_length; sc_idx++) {
@@ -1248,7 +1189,7 @@ int nr_srs_channel_estimation(PHY_VARS_gNB *gNB,
 
     }
   }
-  LOG_I(NR_PHY,"noise_power = %u\n", *noise_power);
+  LOG_I(NR_PHY,"noise_power = %u, SNR = %i dB\n", *noise_power, *snr);
 #endif
 
   return 0;
diff --git a/openair1/PHY/NR_ESTIMATION/nr_ul_estimation.h b/openair1/PHY/NR_ESTIMATION/nr_ul_estimation.h
index a01106adb54..b0ed3662eac 100644
--- a/openair1/PHY/NR_ESTIMATION/nr_ul_estimation.h
+++ b/openair1/PHY/NR_ESTIMATION/nr_ul_estimation.h
@@ -55,6 +55,9 @@ void nr_gnb_measurements(PHY_VARS_gNB *gNB, uint8_t ulsch_id, unsigned char harq
 
 int nr_est_timing_advance_pusch(PHY_VARS_gNB* phy_vars_gNB, int UE_id);
 
+int nr_est_timing_advance_srs(const NR_DL_FRAME_PARMS *frame_parms,
+                              const int32_t srs_estimated_channel_time[][frame_parms->ofdm_symbol_size]);
+
 void nr_pusch_ptrs_processing(PHY_VARS_gNB *gNB,
                               NR_DL_FRAME_PARMS *frame_parms,
                               nfapi_nr_pusch_pdu_t *rel15_ul,
@@ -63,15 +66,20 @@ void nr_pusch_ptrs_processing(PHY_VARS_gNB *gNB,
                               unsigned char symbol,
                               uint32_t nb_re_pusch);
 
-int nr_srs_channel_estimation(PHY_VARS_gNB *gNB,
-                              int frame,
-                              int slot,
-                              nfapi_nr_srs_pdu_t *srs_pdu,
-                              nr_srs_info_t *nr_srs_info,
-                              int32_t *srs_generated_signal,
-                              int32_t **srs_received_signal,
-                              int32_t **srs_estimated_channel_freq,
-                              int32_t **srs_estimated_channel_time,
-                              int32_t **srs_estimated_channel_time_shifted,
-                              uint32_t *noise_power);
+int nr_srs_channel_estimation(const PHY_VARS_gNB *gNB,
+                              const int frame,
+                              const int slot,
+                              const nfapi_nr_srs_pdu_t *srs_pdu,
+                              const nr_srs_info_t *nr_srs_info,
+                              const int32_t *srs_generated_signal,
+                              int32_t srs_received_signal[][gNB->frame_parms.ofdm_symbol_size*(1<<srs_pdu->num_symbols)],
+                              int32_t srs_ls_estimated_channel[][gNB->frame_parms.ofdm_symbol_size*(1<<srs_pdu->num_symbols)],
+                              int32_t srs_estimated_channel_freq[][gNB->frame_parms.ofdm_symbol_size*(1<<srs_pdu->num_symbols)],
+                              int32_t srs_estimated_channel_time[][gNB->frame_parms.ofdm_symbol_size],
+                              int32_t srs_estimated_channel_time_shifted[][gNB->frame_parms.ofdm_symbol_size],
+                              uint32_t *signal_power,
+                              uint32_t *noise_power_per_rb,
+                              uint32_t *noise_power,
+                              int8_t *snr_per_rb,
+                              int8_t *snr);
 #endif
diff --git a/openair1/PHY/NR_REFSIG/dmrs_nr.c b/openair1/PHY/NR_REFSIG/dmrs_nr.c
index 2e270318f82..1fd502a93e1 100644
--- a/openair1/PHY/NR_REFSIG/dmrs_nr.c
+++ b/openair1/PHY/NR_REFSIG/dmrs_nr.c
@@ -295,74 +295,6 @@ uint16_t get_dmrs_freq_idx_ul(uint16_t n, uint8_t k_prime, uint8_t delta, uint8_
 
 #define CHECK_DMRS_PBCH_SEQUENCE
 
-void generate_dmrs_pbch(uint32_t dmrs_pbch_bitmap[DMRS_PBCH_I_SSB][DMRS_PBCH_N_HF][DMRS_BITMAP_SIZE], uint16_t Nid_cell)
-{
-  uint32_t cinit;
-  int i_ssb;
-  int n_hf;
-  int _i_ssb;
-
-#ifdef CHECK_DMRS_PBCH_SEQUENCE
-
-  uint32_t dmrs_bitmap[DMRS_PBCH_I_SSB][DMRS_PBCH_N_HF][DMRS_BITMAP_SIZE];
-  uint32_t *dmrs_sequence =  calloc(CELL_DMRS_LENGTH, sizeof(uint32_t));
-  if (dmrs_sequence == NULL) {
-    msg("Fatal error: memory allocation problem \n");
-  	assert(0);
-  }
-  else
-  {
-    printf("Check of demodulation reference signal of pbch sequence \n");
-  }
-
-#endif
-
-  /* for each slot number */
-  for (i_ssb = 0; i_ssb<DMRS_PBCH_I_SSB; i_ssb++) {
-
-    /* for each ofdm position */
-    for (n_hf=0; n_hf<DMRS_PBCH_N_HF; n_hf++) {
-
-      _i_ssb = i_ssb + 4*n_hf;
-
-      cinit = (((_i_ssb + 1)*((Nid_cell>>4) + 1))<<11) + ((_i_ssb + 1)<<6) + (Nid_cell%4);
-
-      pseudo_random_sequence_optimised(DMRS_BITMAP_SIZE, &(dmrs_pbch_bitmap[i_ssb][n_hf][0]), cinit);
-
-#ifdef CHECK_DMRS_PBCH_SEQUENCE
-
-      /* it allows checking generated with standard generation code */
-      pseudo_random_sequence(DMRS_BITMAP_SIZE*sizeof(uint32_t), dmrs_sequence, cinit);
-
-      int j = 0;
-      int k = 0;
-
-      /* format for getting bitmap from uint32_t */
-      for (int i=0; i<DMRS_BITMAP_SIZE; i++) {
-    	dmrs_bitmap[i_ssb][n_hf][i] = 0;
-    	/* convert to bitmap */
-      	for (; j < k + 32; j++) {
-          dmrs_bitmap[i_ssb][n_hf][i] |= (dmrs_sequence[j]<<j);
-      	}
-      	k = j;
-      }
-
-      for (int i=0; i<DMRS_BITMAP_SIZE; i++) {
-        if (dmrs_pbch_bitmap[i_ssb][n_hf][i] != dmrs_bitmap[i_ssb][n_hf][i]) {
-          printf("Error in gold sequence computation for ns %d l %d and index %i : 0x%x 0x%x \n", i_ssb, n_hf, i, dmrs_pbch_bitmap[i_ssb][n_hf][i], dmrs_bitmap[i_ssb][n_hf][i]);
-      	  assert(0);
-        }
-      }
-
-#endif
-
-    }
-  }
-
-#ifdef CHECK_DMRS_PBCH_SEQUENCE
-  free(dmrs_sequence);
-#endif
-}
 /* return the position of next dmrs symbol in a slot */
 int8_t get_next_dmrs_symbol_in_slot(uint16_t  ul_dmrs_symb_pos, uint8_t counter, uint8_t end_symbol)
 {
@@ -406,3 +338,81 @@ int8_t get_valid_dmrs_idx_for_channel_est(uint16_t  dmrs_symb_pos, uint8_t count
   }
   return symbIdx;
 }
+
+/* perform averaging of channel estimates and store result in first symbol buffer */
+void nr_chest_time_domain_avg(NR_DL_FRAME_PARMS *frame_parms,
+                              int **ch_est,
+                              uint8_t num_symbols,
+                              uint8_t start_symbol,
+                              uint16_t dmrs_bitmap,
+                              uint16_t num_rbs)
+{
+  __m128i *ul_ch128_0;
+  __m128i *ul_ch128_1;
+  int16_t *ul_ch16_0;
+  int total_symbols = start_symbol + num_symbols;
+  int num_dmrs_symb = get_dmrs_symbols_in_slot(dmrs_bitmap, total_symbols);
+  int first_dmrs_symb = get_next_dmrs_symbol_in_slot(dmrs_bitmap, start_symbol, total_symbols);
+  AssertFatal(first_dmrs_symb > -1, "No DMRS symbol present in this slot\n");
+  for (int aarx = 0; aarx < frame_parms->nb_antennas_rx; aarx++) {
+    for (int symb = first_dmrs_symb+1; symb < total_symbols; symb++) {
+      ul_ch128_0 = (__m128i *)&ch_est[aarx][first_dmrs_symb*frame_parms->ofdm_symbol_size];
+      if ((dmrs_bitmap >> symb) & 0x01) {
+        ul_ch128_1 = (__m128i *)&ch_est[aarx][symb*frame_parms->ofdm_symbol_size];
+        for (int rbIdx = 0; rbIdx < num_rbs; rbIdx++) {
+          ul_ch128_0[0] = _mm_adds_epi16(ul_ch128_0[0], ul_ch128_1[0]);
+          ul_ch128_0[1] = _mm_adds_epi16(ul_ch128_0[1], ul_ch128_1[1]);
+          ul_ch128_0[2] = _mm_adds_epi16(ul_ch128_0[2], ul_ch128_1[2]);
+          ul_ch128_0 += 3;
+          ul_ch128_1 += 3;
+        }
+      }
+    }
+    ul_ch128_0 = (__m128i *)&ch_est[aarx][first_dmrs_symb*frame_parms->ofdm_symbol_size];
+    if (num_dmrs_symb == 2) {
+      for (int rbIdx = 0; rbIdx < num_rbs; rbIdx++) {
+        ul_ch128_0[0] = _mm_srai_epi16(ul_ch128_0[0], 1);
+        ul_ch128_0[1] = _mm_srai_epi16(ul_ch128_0[1], 1);
+        ul_ch128_0[2] = _mm_srai_epi16(ul_ch128_0[2], 1);
+        ul_ch128_0 += 3;
+      }
+    } else if (num_dmrs_symb == 4) {
+      for (int rbIdx = 0; rbIdx < num_rbs; rbIdx++) {
+        ul_ch128_0[0] = _mm_srai_epi16(ul_ch128_0[0], 2);
+        ul_ch128_0[1] = _mm_srai_epi16(ul_ch128_0[1], 2);
+        ul_ch128_0[2] = _mm_srai_epi16(ul_ch128_0[2], 2);
+        ul_ch128_0 += 3;
+      }
+    } else if (num_dmrs_symb == 3) {
+      ul_ch16_0 = (int16_t *)&ch_est[aarx][first_dmrs_symb*frame_parms->ofdm_symbol_size];
+      for (int rbIdx = 0; rbIdx < num_rbs; rbIdx++) {
+        ul_ch16_0[0] /= 3;
+        ul_ch16_0[1] /= 3;
+        ul_ch16_0[2] /= 3;
+        ul_ch16_0[3] /= 3;
+        ul_ch16_0[4] /= 3;
+        ul_ch16_0[5] /= 3;
+        ul_ch16_0[6] /= 3;
+        ul_ch16_0[7] /= 3;
+        ul_ch16_0[8] /= 3;
+        ul_ch16_0[9] /= 3;
+        ul_ch16_0[10] /= 3;
+        ul_ch16_0[11] /= 3;
+        ul_ch16_0[12] /= 3;
+        ul_ch16_0[13] /= 3;
+        ul_ch16_0[14] /= 3;
+        ul_ch16_0[15] /= 3;
+        ul_ch16_0[16] /= 3;
+        ul_ch16_0[17] /= 3;
+        ul_ch16_0[18] /= 3;
+        ul_ch16_0[19] /= 3;
+        ul_ch16_0[20] /= 3;
+        ul_ch16_0[21] /= 3;
+        ul_ch16_0[22] /= 3;
+        ul_ch16_0[23] /= 3;
+        ul_ch16_0 += 24;
+      }
+    } else AssertFatal((num_dmrs_symb < 5) && (num_dmrs_symb > 0), "Illegal number of DMRS symbols in the slot\n");
+  }
+}
+
diff --git a/openair1/PHY/NR_REFSIG/dmrs_nr.h b/openair1/PHY/NR_REFSIG/dmrs_nr.h
index b9e9ca6f0dc..1297a0cc2ff 100644
--- a/openair1/PHY/NR_REFSIG/dmrs_nr.h
+++ b/openair1/PHY/NR_REFSIG/dmrs_nr.h
@@ -53,7 +53,6 @@
 
 int pseudo_random_sequence(int M_PN, uint32_t *c, uint32_t cinit);
 void lte_gold_new(LTE_DL_FRAME_PARMS *frame_parms, uint32_t lte_gold_table[20][2][14], uint16_t Nid_cell);
-void generate_dmrs_pbch(uint32_t dmrs_pbch_bitmap[DMRS_PBCH_I_SSB][DMRS_PBCH_N_HF][DMRS_BITMAP_SIZE], uint16_t Nid_cell);
 uint16_t get_dmrs_freq_idx_ul(uint16_t n, uint8_t k_prime, uint8_t delta, uint8_t dmrs_type);
 
 uint8_t allowed_xlsch_re_in_dmrs_symbol(uint16_t k,
@@ -66,6 +65,12 @@ void nr_gen_ref_conj_symbols(uint32_t *in, uint32_t length, int16_t *output, uin
 int8_t get_next_dmrs_symbol_in_slot(uint16_t  ul_dmrs_symb_pos, uint8_t counter, uint8_t end_symbol);
 uint8_t get_dmrs_symbols_in_slot(uint16_t l_prime_mask,  uint16_t nb_symb);
 int8_t get_valid_dmrs_idx_for_channel_est(uint16_t  dmrs_symb_pos, uint8_t counter);
+void nr_chest_time_domain_avg(NR_DL_FRAME_PARMS *frame_parms,
+                              int **ch_est,
+                              uint8_t num_symbols,
+                              uint8_t start_symbol,
+                              uint16_t dmrs_bitmap,
+                              uint16_t num_rbs);
 
 static inline uint8_t is_dmrs_symbol(uint8_t l, uint16_t dmrsSymbMask ) { return ((dmrsSymbMask >> l) & 0x1); }
 #undef EXTERN
diff --git a/openair1/PHY/NR_REFSIG/nr_dmrs_rx.c b/openair1/PHY/NR_REFSIG/nr_dmrs_rx.c
index 920b78eac2b..4f089562f6c 100644
--- a/openair1/PHY/NR_REFSIG/nr_dmrs_rx.c
+++ b/openair1/PHY/NR_REFSIG/nr_dmrs_rx.c
@@ -39,9 +39,11 @@
 #include "nr_refsig.h"
 #include "PHY/defs_gNB.h"
 
-/*Table 7.4.1.1.2-1/2 from 38.211 */
+// Table 6.4.1.1.3-1/2 from TS 38.211
+int delta1[8] = {0, 0, 1, 1, 0, 0, 1, 1};
 int wf1[8][2] = {{1,1},{1,-1},{1,1},{1,-1},{1,1},{1,-1},{1,1},{1,-1}};
 int wt1[8][2] = {{1,1},{1,1},{1,1},{1,1},{1,-1},{1,-1},{1,-1},{1,-1}};
+int delta2[12] = {0, 0, 2, 2, 4, 4, 0, 0, 2, 2, 4, 4};
 int wf2[12][2] = {{1,1},{1,-1},{1,1},{1,-1},{1,1},{1,-1},{1,1},{1,-1},{1,1},{1,-1},{1,1},{1,-1}};
 int wt2[12][2] = {{1,1},{1,1},{1,1},{1,1},{1,1},{1,1},{1,-1},{1,-1},{1,-1},{1,-1},{1,-1},{1,-1}};
 
@@ -49,6 +51,13 @@ int wt2[12][2] = {{1,1},{1,1},{1,1},{1,1},{1,1},{1,1},{1,-1},{1,-1},{1,-1},{1,-1
 short nr_rx_mod_table[14]  = {0,0,23170,-23170,-23170,23170,23170,-23170,23170,23170,-23170,-23170,-23170,23170};
 short nr_rx_nmod_table[14] = {0,0,-23170,23170,23170,-23170,-23170,23170,-23170,-23170,23170,23170,23170,-23170};
 
+int nr_pusch_dmrs_delta(uint8_t dmrs_config_type, unsigned short p) {
+  if (dmrs_config_type == pusch_dmrs_type1) {
+    return delta1[p];
+  } else {
+    return delta2[p];
+  }
+}
 
 int nr_pusch_dmrs_rx(PHY_VARS_gNB *gNB,
                      unsigned int Ns,
diff --git a/openair1/PHY/NR_REFSIG/nr_gold.c b/openair1/PHY/NR_REFSIG/nr_gold.c
index 1073982909f..46bb03487a0 100644
--- a/openair1/PHY/NR_REFSIG/nr_gold.c
+++ b/openair1/PHY/NR_REFSIG/nr_gold.c
@@ -45,7 +45,6 @@ void nr_init_pbch_dmrs(PHY_VARS_gNB* gNB)
 
       for (uint8_t n=0; n<NR_PBCH_DMRS_LENGTH_DWORD; n++) {
         gNB->nr_gold_pbch_dmrs[n_hf][l][n] = lte_gold_generic(&x1, &x2, reset);
-        //printf("%d \n",gNB->nr_gold_pbch_dmrs[n_hf][l][n]); 
         reset = 0;
       }
 
@@ -126,31 +125,6 @@ void nr_gold_pusch(PHY_VARS_gNB* gNB, int nscid, uint32_t nid) {
 }
 
 
-void nr_init_csi_rs(PHY_VARS_gNB* gNB, uint32_t Nid)
-{
-  NR_DL_FRAME_PARMS *fp = &gNB->frame_parms;
-  uint32_t ***csi_rs = gNB->nr_gold_csi_rs;
-  uint32_t x1, x2;
-  uint8_t reset;
-  int csi_dmrs_init_length =  ((fp->N_RB_DL<<4)>>5)+1;
-
-  for (uint8_t slot=0; slot<fp->slots_per_frame; slot++) {
-    for (uint8_t symb=0; symb<fp->symbols_per_slot; symb++) {
-
-      reset = 1;
-      x2 = ((1<<10) * (fp->symbols_per_slot*slot+symb+1) * ((Nid<<1)+1) + (Nid));
-
-      for (uint32_t n=0; n<csi_dmrs_init_length; n++) {
-        csi_rs[slot][symb][n] = lte_gold_generic(&x1, &x2, reset);
-        reset = 0;
-      }
-    }  
-  }
-
-}
-
-
-
 void nr_init_prs(PHY_VARS_gNB* gNB)
 {
   unsigned int x1, x2;
@@ -184,4 +158,3 @@ void nr_init_prs(PHY_VARS_gNB* gNB)
     }
   }
 }
-
diff --git a/openair1/PHY/NR_REFSIG/nr_refsig.h b/openair1/PHY/NR_REFSIG/nr_refsig.h
index 24be0021766..fd89f122ce9 100644
--- a/openair1/PHY/NR_REFSIG/nr_refsig.h
+++ b/openair1/PHY/NR_REFSIG/nr_refsig.h
@@ -45,10 +45,12 @@ void nr_init_prs(PHY_VARS_gNB* gNB);
  */
 void nr_init_pdcch_dmrs(PHY_VARS_gNB* gNB, uint32_t Nid);
 void nr_init_pdsch_dmrs(PHY_VARS_gNB* gNB, uint8_t nscid, uint32_t Nid);
-void nr_init_csi_rs(PHY_VARS_gNB* gNB, uint32_t Nid);
+void nr_init_csi_rs(const NR_DL_FRAME_PARMS *fp, uint32_t ***csi_rs, uint32_t Nid);
 
 void nr_gold_pusch(PHY_VARS_gNB* gNB, int nscid, uint32_t nid);
 
+int nr_pusch_dmrs_delta(uint8_t dmrs_config_type, unsigned short p);
+
 int nr_pusch_dmrs_rx(PHY_VARS_gNB *gNB,
                      unsigned int Ns,
                      unsigned int *nr_gold_pusch,
diff --git a/openair1/PHY/NR_REFSIG/pss_nr.h b/openair1/PHY/NR_REFSIG/pss_nr.h
index c65ca3799d6..b78a89b12c8 100644
--- a/openair1/PHY/NR_REFSIG/pss_nr.h
+++ b/openair1/PHY/NR_REFSIG/pss_nr.h
@@ -120,8 +120,6 @@ EXTERN time_stats_t generic_time[TIME_LAST];
 
 /************** FUNCTION ******************************************/
 
-idft_size_idx_t get_idft(int ofdm_symbol_size);
-dft_size_idx_t get_dft(int ofdm_symbol_size);
 void init_context_synchro_nr(NR_DL_FRAME_PARMS *frame_parms_ue);
 void free_context_synchro_nr(void);
 void init_context_pss_nr(NR_DL_FRAME_PARMS *frame_parms_ue);
diff --git a/openair1/PHY/NR_REFSIG/ptrs_nr.c b/openair1/PHY/NR_REFSIG/ptrs_nr.c
index 68134eb02dd..5df4a25656f 100644
--- a/openair1/PHY/NR_REFSIG/ptrs_nr.c
+++ b/openair1/PHY/NR_REFSIG/ptrs_nr.c
@@ -230,7 +230,6 @@ int8_t get_next_estimate_in_slot(uint16_t  ptrsSymbPos,uint16_t  dmrsSymbPos, ui
  *                dmrsConfigType: DMRS configuration type
  *                nb_rb         : No. of resource blocks
  *                rnti          : RNTI
- *                ptrs_ch_p     : pointer to ptrs channel structure
  *                Ns            :
  *                symbol        : OFDM symbol
  *              ofdm_symbol_size: OFDM Symbol Size
@@ -249,7 +248,6 @@ void nr_ptrs_cpe_estimation(uint8_t K_ptrs,
                             uint8_t dmrsConfigType,
                             uint16_t nb_rb,
                             uint16_t rnti,
-                            int16_t *ptrs_ch_p,
                             unsigned char Ns,
                             unsigned char symbol,
                             uint16_t ofdm_symbol_size,
@@ -269,6 +267,7 @@ void nr_ptrs_cpe_estimation(uint8_t K_ptrs,
   }
   uint16_t              sc_per_symbol    = (nb_rb + K_ptrs - 1)/K_ptrs;
   c16_t      ptrs_p[(1 + sc_per_symbol/4)*4];
+  c16_t      ptrs_ch_p[(1 + sc_per_symbol/4)*4];
   c16_t      dmrs_comp_p[(1 + sc_per_symbol/4)*4];
   double                abs              = 0.0;
   double                real             = 0.0;
@@ -306,13 +305,13 @@ void nr_ptrs_cpe_estimation(uint8_t K_ptrs,
   *ptrs_sc = re_cnt;
 
   /*Multiple compensated data with conj of PTRS */
-  mult_cpx_vector((int16_t*)dmrs_comp_p, (int16_t*)ptrs_p, ptrs_ch_p,(1 + sc_per_symbol/4)*4,15); // 2^15 shifted
+  mult_cpx_vector((int16_t*)dmrs_comp_p, (int16_t*)ptrs_p, (int16_t*)ptrs_ch_p, (1 + sc_per_symbol/4)*4, 15); // 2^15 shifted
 
   /* loop over all ptrs sub carriers in a symbol */
   /* sum the error vector */
   for(int i = 0;i < sc_per_symbol; i++) {
-    real+= ptrs_ch_p[(2*i)];
-    imag+= ptrs_ch_p[(2*i)+1];
+    real += ptrs_ch_p[i].r;
+    imag += ptrs_ch_p[i].i;
   }
 #ifdef DEBUG_PTRS
   alpha = atan(imag/real);
diff --git a/openair1/PHY/NR_REFSIG/ptrs_nr.h b/openair1/PHY/NR_REFSIG/ptrs_nr.h
index 41acde0d064..f46c5c7aeec 100644
--- a/openair1/PHY/NR_REFSIG/ptrs_nr.h
+++ b/openair1/PHY/NR_REFSIG/ptrs_nr.h
@@ -96,7 +96,6 @@ void nr_ptrs_cpe_estimation(uint8_t K_ptrs,
                             uint8_t dmrsConfigType,
                             uint16_t nb_rb,
                             uint16_t rnti,
-                            int16_t *ptrs_ch_p,
                             unsigned char Ns,
                             unsigned char symbol,
                             uint16_t ofdm_symbol_size,
diff --git a/openair1/PHY/NR_REFSIG/refsig_defs_ue.h b/openair1/PHY/NR_REFSIG/refsig_defs_ue.h
index 3033ee488e1..9667105be94 100644
--- a/openair1/PHY/NR_REFSIG/refsig_defs_ue.h
+++ b/openair1/PHY/NR_REFSIG/refsig_defs_ue.h
@@ -68,6 +68,7 @@ void nr_init_pusch_dmrs(PHY_VARS_NR_UE* ue,
                         uint16_t N_n_scid,
                         uint8_t n_scid);
 
+void nr_init_csi_rs(const NR_DL_FRAME_PARMS *fp, uint32_t ***csi_rs, uint32_t Nid);
 void init_nr_gold_prs(PHY_VARS_NR_UE* ue);
 
 #endif
diff --git a/openair1/PHY/NR_REFSIG/ss_pbch_nr.h b/openair1/PHY/NR_REFSIG/ss_pbch_nr.h
index 44f8549258c..5572604e555 100644
--- a/openair1/PHY/NR_REFSIG/ss_pbch_nr.h
+++ b/openair1/PHY/NR_REFSIG/ss_pbch_nr.h
@@ -80,8 +80,6 @@
 /* see TS 38211 7.4.1.4 Demodulation reference signals for PBCH */
 #define  DMRS_PBCH_I_SSB              (8)         /* maximum index value for SSB/PBCH which can have alength of L=4 or L=8 */
 #define  DMRS_PBCH_N_HF               (2)         /* half frame indication - 0 for first part of frame and 1 for second part of frame */
-#define  DMRS_ALIGNMENT_32_BIT        (20)        /* it is just for ensuring a 32 bits alignment for storing dmrs pbch into a 32 bits map */
-#define  DMRS_BITMAP_SIZE             ((DMRS_PBCH_NUMBER-DMRS_ALIGNMENT_32_BIT)/32)   /* size is divided by 32 (to get bitmap on uint32) DMRS_PBCH_NUMBER should be a multiple of 32 */
 
 #endif /* SS_PBCH_NR_H */
 
diff --git a/openair1/PHY/NR_TRANSPORT/dlsch_pdu_rel15.time_alloc_list_flag b/openair1/PHY/NR_TRANSPORT/dlsch_pdu_rel15.time_alloc_list_flag
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/openair1/PHY/NR_TRANSPORT/dlsch_pdu_rel15.time_allocation_type b/openair1/PHY/NR_TRANSPORT/dlsch_pdu_rel15.time_allocation_type
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/openair1/PHY/NR_TRANSPORT/nr_csi_rs.c b/openair1/PHY/NR_TRANSPORT/nr_csi_rs.c
index 694617c4441..0a1619f3e06 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_csi_rs.c
+++ b/openair1/PHY/NR_TRANSPORT/nr_csi_rs.c
@@ -27,20 +27,61 @@
 //#define NR_CSIRS_DEBUG
 
 
-void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
-                        int16_t amp,
-                        nfapi_nr_dl_tti_csi_rs_pdu_rel15_t csi_params,
-                        int slot){
-
-  NR_DL_FRAME_PARMS frame_parms=gNB->frame_parms;
-  int32_t **txdataF = gNB->common_vars.txdataF;
-  int txdataF_offset = slot*frame_parms.samples_per_slot_wCP;
-  uint32_t **gold_csi_rs = gNB->nr_gold_csi_rs[slot];
+void nr_init_csi_rs(const NR_DL_FRAME_PARMS *fp, uint32_t ***csi_rs, uint32_t Nid) {
+  uint32_t x1, x2;
+  uint8_t reset;
+  int csi_dmrs_init_length =  ((fp->N_RB_DL<<4)>>5)+1;
+  for (uint8_t slot=0; slot<fp->slots_per_frame; slot++) {
+    for (uint8_t symb=0; symb<fp->symbols_per_slot; symb++) {
+      reset = 1;
+      x2 = ((1<<10) * (fp->symbols_per_slot*slot+symb+1) * ((Nid<<1)+1) + (Nid));
+      for (uint32_t n=0; n<csi_dmrs_init_length; n++) {
+        csi_rs[slot][symb][n] = lte_gold_generic(&x1, &x2, reset);
+        reset = 0;
+      }
+    }
+  }
+}
+
+void nr_generate_csi_rs(const NR_DL_FRAME_PARMS *frame_parms,
+                        int32_t **dataF,
+                        const int16_t amp,
+                        nr_csi_info_t *nr_csi_info,
+                        const nfapi_nr_dl_tti_csi_rs_pdu_rel15_t *csi_params,
+                        const int slot,
+                        uint8_t *N_cdm_groups,
+                        uint8_t *CDM_group_size,
+                        uint8_t *k_prime,
+                        uint8_t *l_prime,
+                        uint8_t *N_ports,
+                        uint8_t *j_cdm,
+                        uint8_t *k_overline,
+                        uint8_t *l_overline) {
+
+#ifdef NR_CSIRS_DEBUG
+  LOG_I(NR_PHY, "csi_params->subcarrier_spacing = %i\n", csi_params->subcarrier_spacing);
+  LOG_I(NR_PHY, "csi_params->cyclic_prefix = %i\n", csi_params->cyclic_prefix);
+  LOG_I(NR_PHY, "csi_params->start_rb = %i\n", csi_params->start_rb);
+  LOG_I(NR_PHY, "csi_params->nr_of_rbs = %i\n", csi_params->nr_of_rbs);
+  LOG_I(NR_PHY, "csi_params->csi_type = %i (0:TRS, 1:CSI-RS NZP, 2:CSI-RS ZP)\n", csi_params->csi_type);
+  LOG_I(NR_PHY, "csi_params->row = %i\n", csi_params->row);
+  LOG_I(NR_PHY, "csi_params->freq_domain = %i\n", csi_params->freq_domain);
+  LOG_I(NR_PHY, "csi_params->symb_l0 = %i\n", csi_params->symb_l0);
+  LOG_I(NR_PHY, "csi_params->symb_l1 = %i\n", csi_params->symb_l1);
+  LOG_I(NR_PHY, "csi_params->cdm_type = %i\n", csi_params->cdm_type);
+  LOG_I(NR_PHY, "csi_params->freq_density = %i (0: dot5 (even RB), 1: dot5 (odd RB), 2: one, 3: three)\n", csi_params->freq_density);
+  LOG_I(NR_PHY, "csi_params->scramb_id = %i\n", csi_params->scramb_id);
+  LOG_I(NR_PHY, "csi_params->power_control_offset = %i\n", csi_params->power_control_offset);
+  LOG_I(NR_PHY, "csi_params->power_control_offset_ss = %i\n", csi_params->power_control_offset_ss);
+#endif
+
+  int dataF_offset = slot*frame_parms->samples_per_slot_wCP;
+  uint32_t **nr_gold_csi_rs = nr_csi_info->nr_gold_csi_rs[slot];
   //*8(max allocation per RB)*2(QPSK))
-  int csi_rs_length =  frame_parms.N_RB_DL<<4;
-  int16_t mod_csi[frame_parms.symbols_per_slot][csi_rs_length>>1] __attribute__((aligned(16)));;
-  uint16_t b = csi_params.freq_domain;
-  uint16_t n, csi_bw, csi_start, p, k, l, mprime, na, kpn, csi_length;
+  int csi_rs_length =  frame_parms->N_RB_DL<<4;
+  int16_t mod_csi[frame_parms->symbols_per_slot][csi_rs_length>>1] __attribute__((aligned(16)));
+  uint16_t b = csi_params->freq_domain;
+  uint16_t n, p, k, l, mprime, na, kpn;
   uint8_t size, ports, kprime, lprime, i, gs;
   uint8_t j[16], k_n[6], koverline[16], loverline[16];
   int found = 0;
@@ -48,16 +89,17 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
   uint8_t fi = 0;
   double rho, alpha;
   uint32_t beta = amp;
+  nr_csi_info->csi_rs_generated_signal_bits = log2_approx(amp);
 
   AssertFatal(b!=0, "Invalid CSI frequency domain mapping: no bit selected in bitmap\n");
 
   // if the scrambling id is not the one previously used to initialize we need to re-initialize the rs
-  if (csi_params.scramb_id != gNB->csi_gold_init) {
-    gNB->csi_gold_init = csi_params.scramb_id;
-    nr_init_csi_rs(gNB, csi_params.scramb_id);
+  if (csi_params->scramb_id != nr_csi_info->csi_gold_init) {
+    nr_csi_info->csi_gold_init = csi_params->scramb_id;
+    nr_init_csi_rs(frame_parms, nr_csi_info->nr_gold_csi_rs, csi_params->scramb_id);
   }
 
-  switch (csi_params.row) {
+  switch (csi_params->row) {
   // implementation of table 7.4.1.5.3-1 of 38.211
   // lprime and kprime are the max value of l' and k'
   case 1:
@@ -75,7 +117,7 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
     }
     for (i=0; i<size; i++) {
       j[i] = 0;
-      loverline[i] = csi_params.symb_l0;
+      loverline[i] = csi_params->symb_l0;
       koverline[i] = k_n[0] + (i<<2);
     }
     break;
@@ -95,7 +137,7 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
     }
     for (i=0; i<size; i++) {
       j[i] = 0;
-      loverline[i] = csi_params.symb_l0;
+      loverline[i] = csi_params->symb_l0;
       koverline[i] = k_n[0];
     }
     break;
@@ -115,7 +157,7 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
     }
     for (i=0; i<size; i++) {
       j[i] = 0;
-      loverline[i] = csi_params.symb_l0;
+      loverline[i] = csi_params->symb_l0;
       koverline[i] = k_n[0];
     }
     break;
@@ -135,7 +177,7 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
     }
     for (i=0; i<size; i++) {
       j[i] = i;
-      loverline[i] = csi_params.symb_l0;
+      loverline[i] = csi_params->symb_l0;
       koverline[i] = k_n[0] + (i<<1);
     }
     break;
@@ -155,7 +197,7 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
     }
     for (i=0; i<size; i++) {
       j[i] = i;
-      loverline[i] = csi_params.symb_l0 + i;
+      loverline[i] = csi_params->symb_l0 + i;
       koverline[i] = k_n[0];
     }
     break;
@@ -174,7 +216,7 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
     }
     for (i=0; i<size; i++) {
       j[i] = i;
-      loverline[i] = csi_params.symb_l0;
+      loverline[i] = csi_params->symb_l0;
       koverline[i] = k_n[i];
     }
     break;
@@ -193,7 +235,7 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
     }
     for (i=0; i<size; i++) {
       j[i] = i;
-      loverline[i] = csi_params.symb_l0 + (i>>1);
+      loverline[i] = csi_params->symb_l0 + (i>>1);
       koverline[i] = k_n[i%2];
     }
     break;
@@ -212,7 +254,7 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
     }
     for (i=0; i<size; i++) {
       j[i] = i;
-      loverline[i] = csi_params.symb_l0;
+      loverline[i] = csi_params->symb_l0;
       koverline[i] = k_n[i];
     }
     break;
@@ -231,7 +273,7 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
     }
     for (i=0; i<size; i++) {
       j[i] = i;
-      loverline[i] = csi_params.symb_l0;
+      loverline[i] = csi_params->symb_l0;
       koverline[i] = k_n[i];
     }
     break;
@@ -250,7 +292,7 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
     }
     for (i=0; i<size; i++) {
       j[i] = i;
-      loverline[i] = csi_params.symb_l0;
+      loverline[i] = csi_params->symb_l0;
       koverline[i] = k_n[i];
     }
     break;
@@ -269,7 +311,7 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
     }
     for (i=0; i<size; i++) {
       j[i] = i;
-      loverline[i] = csi_params.symb_l0 + (i>>2);
+      loverline[i] = csi_params->symb_l0 + (i>>2);
       koverline[i] = k_n[i%4];
     }
     break;
@@ -288,7 +330,7 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
     }
     for (i=0; i<size; i++) {
       j[i] = i;
-      loverline[i] = csi_params.symb_l0;
+      loverline[i] = csi_params->symb_l0;
       koverline[i] = k_n[i];
     }
     break;
@@ -308,9 +350,9 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
     for (i=0; i<size; i++) {
       j[i] = i;
       if (i<6)
-        loverline[i] = csi_params.symb_l0 + i/3;
+        loverline[i] = csi_params->symb_l0 + i/3;
       else
-        loverline[i] = csi_params.symb_l1 + i/9;
+        loverline[i] = csi_params->symb_l1 + i/9;
       koverline[i] = k_n[i%3];
     }
     break;
@@ -330,9 +372,9 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
     for (i=0; i<size; i++) {
       j[i] = i;
       if (i<3)
-        loverline[i] = csi_params.symb_l0;
+        loverline[i] = csi_params->symb_l0;
       else
-        loverline[i] = csi_params.symb_l1;
+        loverline[i] = csi_params->symb_l1;
       koverline[i] = k_n[i%3];
     }
     break;
@@ -351,7 +393,7 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
     }
     for (i=0; i<size; i++) {
       j[i] = i;
-      loverline[i] = csi_params.symb_l0;
+      loverline[i] = csi_params->symb_l0;
       koverline[i] = k_n[i];
     }
     break;
@@ -371,9 +413,9 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
     for (i=0; i<size; i++) {
       j[i] = i;
       if (i<8)
-        loverline[i] = csi_params.symb_l0 + (i>>2);
+        loverline[i] = csi_params->symb_l0 + (i>>2);
       else
-        loverline[i] = csi_params.symb_l1 + (i/12);
+        loverline[i] = csi_params->symb_l1 + (i/12);
       koverline[i] = k_n[i%4];
     }
     break;
@@ -393,9 +435,9 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
     for (i=0; i<size; i++) {
       j[i] = i;
       if (i<4)
-        loverline[i] = csi_params.symb_l0;
+        loverline[i] = csi_params->symb_l0;
       else
-        loverline[i] = csi_params.symb_l1;
+        loverline[i] = csi_params->symb_l1;
       koverline[i] = k_n[i%4];
     }
     break;
@@ -414,17 +456,17 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
     }
     for (i=0; i<size; i++) {
       j[i] = i;
-      loverline[i] = csi_params.symb_l0;
+      loverline[i] = csi_params->symb_l0;
       koverline[i] = k_n[i];
     }
     break;
 
   default:
-    AssertFatal(0==1, "Row %d is not valid for CSI Table 7.4.1.5.3-1\n", csi_params.row);
+    AssertFatal(0==1, "Row %d is not valid for CSI Table 7.4.1.5.3-1\n", csi_params->row);
   }
 
 #ifdef NR_CSIRS_DEBUG
-  printf(" row %d, n. of ports %d\n k' ",csi_params.row,ports);
+  printf(" row %d, n. of ports %d\n k' ",csi_params->row,ports);
   for (kp=0; kp<=kprime; kp++)
     printf("%d, ",kp);
   printf("l' ");
@@ -441,7 +483,7 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
 
 
   // setting the frequency density from its index
-  switch (csi_params.freq_density) {
+  switch (csi_params->freq_density) {
   
   case 0:
     rho = 0.5;
@@ -473,7 +515,7 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
 #endif
 
   // CDM group size from CDM type index
-  switch (csi_params.cdm_type) {
+  switch (csi_params->cdm_type) {
   
   case 0:
     gs = 1;
@@ -495,39 +537,31 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
     AssertFatal(0==1, "Invalid cdm type index for CSI\n");
   }
 
-  // according to 38.214 5.2.2.3.1 last paragraph
-  if (csi_params.start_rb<csi_params.bwp_start)
-    csi_start = csi_params.bwp_start;
-  else 
-    csi_start = csi_params.start_rb;
-  if (csi_params.nr_of_rbs > (csi_params.bwp_start+csi_params.bwp_size-csi_start))
-    csi_bw = csi_params.bwp_start+csi_params.bwp_size-csi_start;
-  else
-    csi_bw = csi_params.nr_of_rbs;
-
+  uint16_t csi_length;
   if (rho < 1) {
-    if (csi_params.freq_density == 0)
-      csi_length = (((csi_bw + csi_start)>>1)<<kprime)<<1;
-    else
-      csi_length = ((((csi_bw + csi_start)>>1)<<kprime)+1)<<1;
+    if (csi_params->freq_density == 0) {
+      csi_length = (((csi_params->start_rb + csi_params->nr_of_rbs)>>1)<<kprime)<<1;
+    } else {
+      csi_length = ((((csi_params->start_rb + csi_params->nr_of_rbs)>>1)<<kprime)+1)<<1;
+    }
+  } else {
+    csi_length = (((uint16_t) rho*(csi_params->start_rb + csi_params->nr_of_rbs))<<kprime)<<1;
   }
-  else
-    csi_length = (((uint16_t) rho*(csi_bw + csi_start))<<kprime)<<1;
 
 #ifdef NR_CSIRS_DEBUG
-    printf(" start rb %d, n. rbs %d, csi length %d\n",csi_start,csi_bw,csi_length);
+    printf(" start rb %d, nr of rbs %d, csi length %d\n", csi_params->start_rb, csi_params->nr_of_rbs, csi_length);
 #endif
 
 
   // TRS
-  if (csi_params.csi_type == 0) {
+  if (csi_params->csi_type == 0) {
     // ???
   }
 
   // NZP CSI RS
-  if (csi_params.csi_type == 1) {
+  if (csi_params->csi_type == 1) {
     // assuming amp is the amplitude of SSB channels
-    switch (csi_params.power_control_offset_ss) {
+    switch (csi_params->power_control_offset_ss) {
     case 0:
       beta = (amp*ONE_OVER_SQRT2_Q15)>>15;
       break;
@@ -545,30 +579,30 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
     }
 
     for (lp=0; lp<=lprime; lp++){
-      symb = csi_params.symb_l0;
-      nr_modulation(gold_csi_rs[symb+lp], csi_length, DMRS_MOD_ORDER, mod_csi[symb+lp]);
-      if ((csi_params.row == 5) || (csi_params.row == 7) || (csi_params.row == 11) || (csi_params.row == 13) || (csi_params.row == 16))
-        nr_modulation(gold_csi_rs[symb+1], csi_length, DMRS_MOD_ORDER, mod_csi[symb+1]);
-      if ((csi_params.row == 14) || (csi_params.row == 13) || (csi_params.row == 16) || (csi_params.row == 17)) {
-        symb = csi_params.symb_l1;
-        nr_modulation(gold_csi_rs[symb+lp], csi_length, DMRS_MOD_ORDER, mod_csi[symb+lp]);
-        if ((csi_params.row == 13) || (csi_params.row == 16))
-          nr_modulation(gold_csi_rs[symb+1], csi_length, DMRS_MOD_ORDER, mod_csi[symb+1]);
+      symb = csi_params->symb_l0;
+      nr_modulation(nr_gold_csi_rs[symb+lp], csi_length, DMRS_MOD_ORDER, mod_csi[symb+lp]);
+      if ((csi_params->row == 5) || (csi_params->row == 7) || (csi_params->row == 11) || (csi_params->row == 13) || (csi_params->row == 16))
+        nr_modulation(nr_gold_csi_rs[symb+1], csi_length, DMRS_MOD_ORDER, mod_csi[symb+1]);
+      if ((csi_params->row == 14) || (csi_params->row == 13) || (csi_params->row == 16) || (csi_params->row == 17)) {
+        symb = csi_params->symb_l1;
+        nr_modulation(nr_gold_csi_rs[symb+lp], csi_length, DMRS_MOD_ORDER, mod_csi[symb+lp]);
+        if ((csi_params->row == 13) || (csi_params->row == 16))
+          nr_modulation(nr_gold_csi_rs[symb+1], csi_length, DMRS_MOD_ORDER, mod_csi[symb+1]);
       }
     }
   }
 
-  uint16_t start_sc = frame_parms.first_carrier_offset;
+  uint16_t start_sc = frame_parms->first_carrier_offset;
 
   // resource mapping according to 38.211 7.4.1.5.3
-  for (n=csi_start; n<(csi_start+csi_bw); n++) {
-   if ( (csi_params.freq_density > 1) || (csi_params.freq_density == (n%2))) {  // for freq density 0.5 checks if even or odd RB
+  for (n=csi_params->start_rb; n<(csi_params->start_rb+csi_params->nr_of_rbs); n++) {
+   if ( (csi_params->freq_density > 1) || (csi_params->freq_density == (n%2))) {  // for freq density 0.5 checks if even or odd RB
     for (int ji=0; ji<size; ji++) { // loop over CDM groups
       for (int s=0 ; s<gs; s++)  { // loop over each CDM group size
         p = s+j[ji]*gs; // port index
         for (kp=0; kp<=kprime; kp++) { // loop over frequency resource elements within a group
-          k = (start_sc+(n*NR_NB_SC_PER_RB)+koverline[ji]+kp)%(frame_parms.ofdm_symbol_size);  // frequency index of current resource element
-          // wf according to tables 7.4.5.3-2 to 7.4.5.3-5 
+          k = (start_sc+(n*NR_NB_SC_PER_RB)+koverline[ji]+kp)%(frame_parms->ofdm_symbol_size);  // frequency index of current resource element
+          // wf according to tables 7.4.5.3-2 to 7.4.5.3-5
           if (kp == 0)
             wf = 1;
           else
@@ -591,24 +625,46 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
               else
                 wt = -1;
             }
+
             // ZP CSI RS
-            if (csi_params.csi_type == 2) {
-              ((int16_t*)txdataF[p])[((l*frame_parms.ofdm_symbol_size + k)<<1)+(2*txdataF_offset)] = 0;
-              ((int16_t*)txdataF[p])[((l*frame_parms.ofdm_symbol_size + k)<<1)+1+(2*txdataF_offset)] = 0;
+            if (csi_params->csi_type == 2) {
+              ((int16_t*)dataF[p])[((l*frame_parms->ofdm_symbol_size + k)<<1)+(2*dataF_offset)] = 0;
+              ((int16_t*)dataF[p])[((l*frame_parms->ofdm_symbol_size + k)<<1)+1+(2*dataF_offset)] = 0;
             }
             else {
-              ((int16_t*)txdataF[p])[((l*frame_parms.ofdm_symbol_size + k)<<1)+(2*txdataF_offset)] = (beta*wt*wf*mod_csi[l][mprime<<1]) >> 15;
-              ((int16_t*)txdataF[p])[((l*frame_parms.ofdm_symbol_size + k)<<1)+1+(2*txdataF_offset)] = (beta*wt*wf*mod_csi[l][(mprime<<1) + 1]) >> 15;
+              ((int16_t*)dataF[p])[((l*frame_parms->ofdm_symbol_size + k)<<1)+(2*dataF_offset)] = (beta*wt*wf*mod_csi[l][mprime<<1]) >> 15;
+              ((int16_t*)dataF[p])[((l*frame_parms->ofdm_symbol_size + k)<<1)+1+(2*dataF_offset)] = (beta*wt*wf*mod_csi[l][(mprime<<1) + 1]) >> 15;
             }
 #ifdef NR_CSIRS_DEBUG
-            printf("l,k (%d %d)  seq. index %d \t port %d \t (%d,%d)\n",l,k,mprime,p+3000,
-                   ((int16_t*)txdataF[p])[((l*frame_parms.ofdm_symbol_size + k)<<1)+(2*txdataF_offset)],
-                   ((int16_t*)txdataF[p])[((l*frame_parms.ofdm_symbol_size + k)<<1)+1+(2*txdataF_offset)]);
+            printf("l,k (%d,%d)  seq. index %d \t port %d \t (%d,%d)\n",l,k,mprime,p+3000,
+                   ((int16_t*)dataF[p])[((l*frame_parms->ofdm_symbol_size + k)<<1)+(2*dataF_offset)],
+                   ((int16_t*)dataF[p])[((l*frame_parms->ofdm_symbol_size + k)<<1)+1+(2*dataF_offset)]);
 #endif
           }
         }
-      }    
+      }
     }
    }
-  } 
+  }
+  if (N_cdm_groups) *N_cdm_groups = size;
+  if (CDM_group_size) *CDM_group_size = gs;
+  if (k_prime) *k_prime = kprime;
+  if (l_prime) *l_prime = lprime;
+  if (N_ports) *N_ports = ports;
+  if (j_cdm) memcpy(j_cdm,j,16*sizeof(uint8_t));
+  if (k_overline) memcpy(k_overline,koverline,16*sizeof(uint8_t));
+  if (l_overline) memcpy(l_overline,loverline,16*sizeof(uint8_t));
+
+#ifdef NR_CSIRS_DEBUG
+  if (N_ports) LOG_I(NR_PHY, "nr_csi_info->N_ports = %d\n", *N_ports);
+  if (N_cdm_groups) LOG_I(NR_PHY, "nr_csi_info->N_cdm_groups = %d\n", *N_cdm_groups);
+  if (CDM_group_size) LOG_I(NR_PHY, "nr_csi_info->CDM_group_size = %d\n", *CDM_group_size);
+  if (k_prime) LOG_I(NR_PHY, "nr_csi_info->kprime = %d\n", *k_prime);
+  if (l_prime) LOG_I(NR_PHY, "nr_csi_info->lprime = %d\n", *l_prime);
+  if (N_cdm_groups) {
+    for(int ji=0; ji<*N_cdm_groups; ji++) {
+      LOG_I(NR_PHY, "(CDM group %d) j = %d, koverline = %d, loverline = %d\n", ji, j[ji], koverline[ji], loverline[ji]);
+    }
+  }
+#endif
 }
diff --git a/openair1/PHY/NR_TRANSPORT/nr_dci.c b/openair1/PHY/NR_TRANSPORT/nr_dci.c
index ffbe850fdd1..dc1ed47e0ff 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_dci.c
+++ b/openair1/PHY/NR_TRANSPORT/nr_dci.c
@@ -73,7 +73,6 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
                      NR_DL_FRAME_PARMS *frame_parms,
                      int slot) {
 
-  int16_t mod_dmrs[NR_MAX_CSET_DURATION][NR_MAX_PDCCH_DMRS_LENGTH>>1] __attribute__((aligned(16))); // 3 for the max coreset duration
   uint16_t cset_start_sc;
   uint8_t cset_start_symb, cset_nsymb;
   int k,l,k_prime,dci_idx, dmrs_idx;
@@ -82,13 +81,14 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
     
   int rb_offset;
   int n_rb;
-
   // compute rb_offset and n_prb based on frequency allocation
   nr_cce_t cce_list[MAX_DCI_CORESET][NR_MAX_PDCCH_AGG_LEVEL];
-  nr_fill_cce_list(cce_list,0,pdcch_pdu_rel15);
+  nr_fill_cce_list(cce_list, pdcch_pdu_rel15);
   get_coreset_rballoc(pdcch_pdu_rel15->FreqDomainResource,&n_rb,&rb_offset);
   cset_start_sc = frame_parms->first_carrier_offset + (pdcch_pdu_rel15->BWPStart + rb_offset) * NR_NB_SC_PER_RB;
 
+  int16_t mod_dmrs[pdcch_pdu_rel15->StartSymbolIndex+pdcch_pdu_rel15->DurationSymbols][(n_rb+rb_offset)*6] __attribute__((aligned(16))); // 3 for the max coreset duration
+
   for (int d=0;d<pdcch_pdu_rel15->numDlDci;d++) {
     /*The coreset is initialised
      * in frequency: the first subcarrier is obtained by adding the first CRB overlapping the SSB and the rb_offset for coreset 0
@@ -111,22 +111,23 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
     // DMRS length is per OFDM symbol
     uint32_t dmrs_length = n_rb*6; //2(QPSK)*3(per RB)*6(REG per CCE)
     uint32_t encoded_length = dci_pdu->AggregationLevel*108; //2(QPSK)*9(per RB)*6(REG per CCE)
-    LOG_D(PHY, "DL_DCI : rb_offset %d, nb_rb %d, DMRS length per symbol %d\t DCI encoded length %d (precoder_granularity %d,reg_mapping %d),Scrambling_Id %d,ScramblingRNTI %x,PayloadSizeBits %d\n",
-          rb_offset, n_rb,dmrs_length, encoded_length,pdcch_pdu_rel15->precoderGranularity,pdcch_pdu_rel15->CceRegMappingType,
-          dci_pdu->ScramblingId,dci_pdu->ScramblingRNTI,dci_pdu->PayloadSizeBits);
+    if (dci_pdu->RNTI != 0xFFFF)
+      LOG_D(PHY, "DL_DCI : rb_offset %d, nb_rb %d, DMRS length per symbol %d\t DCI encoded length %d (precoder_granularity %d, reg_mapping %d), Scrambling_Id %d, ScramblingRNTI %x, PayloadSizeBits %d\n",
+            rb_offset, n_rb,dmrs_length, encoded_length,pdcch_pdu_rel15->precoderGranularity,pdcch_pdu_rel15->CceRegMappingType,
+            dci_pdu->ScramblingId,dci_pdu->ScramblingRNTI,dci_pdu->PayloadSizeBits);
     dmrs_length += rb_offset*6; // To accommodate more DMRS symbols in case of rb offset
       
     /// DMRS QPSK modulation
     for (int symb=cset_start_symb; symb<cset_start_symb + pdcch_pdu_rel15->DurationSymbols; symb++) {
-      
+
       nr_modulation(gold_pdcch_dmrs[symb], dmrs_length, DMRS_MOD_ORDER, mod_dmrs[symb]); //Qm = 2 as DMRS is QPSK modulated
       
 #ifdef DEBUG_PDCCH_DMRS
-       if(dci_pdu->RNTI!=0xFFFF) {      
-         for (int i=0; i<dmrs_length>>1; i++)
-	   printf("symb %d i %d %p gold seq 0x%08x mod_dmrs %d %d\n", symb, i,
-	          &gold_pdcch_dmrs[symb][i>>5],gold_pdcch_dmrs[symb][i>>5], mod_dmrs[symb][i<<1], mod_dmrs[symb][(i<<1)+1] );
-       }
+      if(dci_pdu->RNTI!=0xFFFF) {
+        for (int i=0; i<dmrs_length>>1; i++)
+          printf("symb %d i %d %p gold seq 0x%08x mod_dmrs %d %d\n", symb, i,
+                 &gold_pdcch_dmrs[symb][i>>5],gold_pdcch_dmrs[symb][i>>5], mod_dmrs[symb][i<<1], mod_dmrs[symb][(i<<1)+1]);
+      }
 #endif
     }
     
@@ -178,8 +179,10 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
 
     // Get cce_list indices by reg_idx in ascending order
     int reg_list_index = 0;
+    int N_regs = n_rb*pdcch_pdu_rel15->DurationSymbols; // nb of REGs per coreset
+    int N_cces = N_regs / NR_NB_REG_PER_CCE; // nb of cces in coreset
     int reg_list_order[NR_MAX_PDCCH_AGG_LEVEL] = {};
-    for (int p = 0; p < NR_MAX_PDCCH_AGG_LEVEL; p++) {
+    for (int p = 0; p < N_cces; p++) {
       for(int p2 = 0; p2 < dci_pdu->AggregationLevel; p2++) {
         if(cce_list[d][p2].reg_list[0].reg_idx == p * NR_NB_REG_PER_CCE) {
           reg_list_order[reg_list_index] = p2;
@@ -191,24 +194,25 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
 
     /*Mapping the encoded DCI along with the DMRS */
     for(int symbol_idx = 0; symbol_idx < pdcch_pdu_rel15->DurationSymbols; symbol_idx++) {
-      for (int cce_count = 0; cce_count < dci_pdu->AggregationLevel; cce_count+=pdcch_pdu_rel15->DurationSymbols) {
+      for (int cce_count = 0; cce_count < dci_pdu->AggregationLevel; cce_count++) {
 
         int8_t cce_idx = reg_list_order[cce_count];
 
-        for (int reg_in_cce_idx = 0; reg_in_cce_idx < NR_NB_REG_PER_CCE; reg_in_cce_idx++) {
+        for (int reg_in_cce_idx = 0; reg_in_cce_idx < NR_NB_REG_PER_CCE; reg_in_cce_idx+=pdcch_pdu_rel15->DurationSymbols) {
 
           k = cset_start_sc + cce_list[d][cce_idx].reg_list[reg_in_cce_idx].start_sc_idx;
-
+          LOG_D(PHY,"CCE %d REG %d k %d\n",cce_idx,reg_in_cce_idx+symbol_idx,k);
           if (k >= frame_parms->ofdm_symbol_size)
             k -= frame_parms->ofdm_symbol_size;
 
           l = cset_start_symb + symbol_idx;
 
           // dmrs index depends on reference point for k according to 38.211 7.4.1.3.2
+          int eff_reg_idx = cce_list[d][cce_idx].reg_list[reg_in_cce_idx].reg_idx/pdcch_pdu_rel15->DurationSymbols;
           if (pdcch_pdu_rel15->CoreSetType == NFAPI_NR_CSET_CONFIG_PDCCH_CONFIG)
-            dmrs_idx = (cce_list[d][cce_idx].reg_list[reg_in_cce_idx].reg_idx) * 3;
+            dmrs_idx = eff_reg_idx * 3;
           else
-            dmrs_idx = (cce_list[d][cce_idx].reg_list[reg_in_cce_idx].reg_idx + rb_offset) * 3;
+            dmrs_idx = (eff_reg_idx + rb_offset) * 3;
 
           k_prime = 0;
 
@@ -262,7 +266,6 @@ void nr_generate_dci_top(processingData_L1tx_t *msgTx,
                          int16_t amp,
                          NR_DL_FRAME_PARMS *frame_parms) {
 
-
   for (int i=0; i<msgTx->num_ul_pdcch; i++)
     nr_generate_dci(msgTx->gNB,&msgTx->ul_pdcch_pdu[i].pdcch_pdu.pdcch_pdu_rel15,txdataF,amp,frame_parms,slot);
   for (int i=0; i<msgTx->num_dl_pdcch; i++)
diff --git a/openair1/PHY/NR_TRANSPORT/nr_dci.h b/openair1/PHY/NR_TRANSPORT/nr_dci.h
index 490a8b52868..0bf6932bb50 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_dci.h
+++ b/openair1/PHY/NR_TRANSPORT/nr_dci.h
@@ -55,6 +55,6 @@ void nr_fill_ul_dci(PHY_VARS_gNB *gNB,
 		    int slot,
 		    nfapi_nr_ul_dci_request_pdus_t *pdcch_pdu);
 
-void nr_fill_cce_list(nr_cce_t cce_list[MAX_DCI_CORESET][NR_MAX_PDCCH_AGG_LEVEL], uint8_t m,nfapi_nr_dl_tti_pdcch_pdu_rel15_t *pdcch_pdu_rel15);
+void nr_fill_cce_list(nr_cce_t cce_list[MAX_DCI_CORESET][NR_MAX_PDCCH_AGG_LEVEL], nfapi_nr_dl_tti_pdcch_pdu_rel15_t *pdcch_pdu_rel15);
 
 #endif //__PHY_NR_TRANSPORT_DCI__H
diff --git a/openair1/PHY/NR_TRANSPORT/nr_dci_tools.c b/openair1/PHY/NR_TRANSPORT/nr_dci_tools.c
index 8d5eb4a6607..e9d3010ce7c 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_dci_tools.c
+++ b/openair1/PHY/NR_TRANSPORT/nr_dci_tools.c
@@ -37,89 +37,8 @@
 
 #include "nr_dlsch.h"
 
-/*
-  Original version to keep code for Y that needs to be moved to MAC
-
-void nr_fill_cce_list(PHY_VARS_gNB *gNB, uint16_t n_shift, uint8_t m) {
-
-  nr_cce_t* cce;
-  nr_reg_t* reg;
-  nfapi_nr_dl_config_pdcch_pdu_rel15_t* pdcch_pdu = gNB->pdcch_pdu.pdcch;
-
-  uint8_t L = dci_alloc->L;
-  uint8_t bsize = pdcch_params->reg_bundle_size;
-  uint8_t R = pdcch_params->interleaver_size;
-  uint16_t N_reg = pdcch_params->n_rb * pdcch_params->n_symb;
-  uint16_t Y, N_cce, M_s_max, n_CI=0, tmp, C=0;
-  uint16_t n_RNTI = (pdcch_params->search_space_type == NFAPI_NR_SEARCH_SPACE_TYPE_UE_SPECIFIC)? pdcch_params->rnti:0;
-  uint32_t A[3]={39827,39829,39839};
-
-  if (pdcch_params->config_type == NFAPI_NR_CSET_CONFIG_MIB_SIB1)
-    AssertFatal(L>=4, "Invalid aggregation level for SIB1 configured PDCCH %d\n", L);
-
-  N_cce = N_reg / NR_NB_REG_PER_CCE;
-  //Max number of candidates per aggregation level -- SIB1 configured search space only
-  M_s_max = (L==4)?4:(L==8)?2:1;
-
-  if (pdcch_params->search_space_type == NFAPI_NR_SEARCH_SPACE_TYPE_COMMON)
-    Y = 0;
-  else { //NFAPI_NR_SEARCH_SPACE_TYPE_UE_SPECIFIC
-    Y = (A[0]*n_RNTI)%65537; // Candidate 0, antenna port 0
-  }
-
-  if (pdcch_params->cr_mapping_type == NFAPI_NR_CCE_REG_MAPPING_INTERLEAVED) {
-	  uint16_t assertFatalCond = (N_reg%(bsize*R));
-	  AssertFatal(assertFatalCond == 0,"CCE to REG interleaving: Invalid configuration leading to non integer C (N_reg %us, bsize %d R %d)\n",N_reg, bsize, R);
-	  C = N_reg/(bsize*R);
-  }
-
-  tmp = L * (( Y + (m*N_cce)/(L*M_s_max) + n_CI ) % CEILIDIV(N_cce,L));
-
-  LOG_D(PHY, "CCE list generation for candidate %d: bundle size %d ilv size %d tmp %d\n", m, bsize, R, tmp);
-  for (uint8_t cce_idx=0; cce_idx<L; cce_idx++) {
-    cce = &dci_alloc->cce_list[cce_idx];
-    cce->cce_idx = tmp + cce_idx;
-    LOG_D(PHY, "cce_idx %d\n", cce->cce_idx);
-
-    if (pdcch_params->cr_mapping_type == NFAPI_NR_CCE_REG_MAPPING_INTERLEAVED) {
-      LOG_D(PHY, "Interleaved CCE to REG mapping\n");
-      uint8_t j = cce->cce_idx, j_prime;
-      uint8_t r,c,idx;
-
-      for (uint8_t bundle_idx=0; bundle_idx<NR_NB_REG_PER_CCE/bsize; bundle_idx++) {
-        j_prime = 6*j/bsize + bundle_idx;
-        r = j_prime%R;
-        c = (j_prime-r)/R;
-        idx = (r*C + c + n_shift)%(N_reg/bsize);
-        LOG_D(PHY, "bundle idx = %d \n j = %d \t j_prime = %d \t r = %d \t c = %d\n", idx, j , j_prime, r, c);
-
-        for (uint8_t reg_idx=0; reg_idx<bsize; reg_idx++) {
-          reg = &cce->reg_list[reg_idx];
-          reg->reg_idx = bsize*idx + reg_idx;
-          reg->start_sc_idx = (reg->reg_idx/pdcch_params->n_symb) * NR_NB_SC_PER_RB;
-          reg->symb_idx = reg->reg_idx % pdcch_params->n_symb;
-          LOG_D(PHY, "reg %d symbol %d start subcarrier %d\n", reg->reg_idx, reg->symb_idx, reg->start_sc_idx);
-        }
-      }
-    }
-    else { // NFAPI_NR_CCE_REG_MAPPING_NON_INTERLEAVED
-      LOG_D(PHY, "Non interleaved CCE to REG mapping\n");
-      for (uint8_t reg_idx=0; reg_idx<NR_NB_REG_PER_CCE; reg_idx++) {
-        reg = &cce->reg_list[reg_idx];
-        reg->reg_idx = cce->cce_idx*NR_NB_REG_PER_CCE + reg_idx;
-        reg->start_sc_idx = (reg->reg_idx/pdcch_params->n_symb) * NR_NB_SC_PER_RB;
-        reg->symb_idx = reg->reg_idx % pdcch_params->n_symb;
-        LOG_D(PHY, "reg %d symbol %d start subcarrier %d\n", reg->reg_idx, reg->symb_idx, reg->start_sc_idx);
-      }
-
-    }
 
-  }
-}
-
-*/
-
-void nr_fill_cce_list(nr_cce_t cce_list[MAX_DCI_CORESET][NR_MAX_PDCCH_AGG_LEVEL], uint8_t m,  nfapi_nr_dl_tti_pdcch_pdu_rel15_t *pdcch_pdu_rel15) {
+void nr_fill_cce_list(nr_cce_t cce_list[MAX_DCI_CORESET][NR_MAX_PDCCH_AGG_LEVEL], nfapi_nr_dl_tti_pdcch_pdu_rel15_t *pdcch_pdu_rel15) {
 
   nr_cce_t* cce;
   nr_reg_t* reg;
@@ -128,71 +47,51 @@ void nr_fill_cce_list(nr_cce_t cce_list[MAX_DCI_CORESET][NR_MAX_PDCCH_AGG_LEVEL]
   int R = pdcch_pdu_rel15->InterleaverSize;
   int n_shift = pdcch_pdu_rel15->ShiftIndex;
 
-
   //Max number of candidates per aggregation level -- SIB1 configured search space only
 
-
   int n_rb,rb_offset;
 
   get_coreset_rballoc(pdcch_pdu_rel15->FreqDomainResource,&n_rb,&rb_offset);
 
-
-  int N_reg = n_rb;
-  int C=-1;
-
-  AssertFatal(N_reg > 0,"N_reg cannot be 0\n");
-
   for (int d=0;d<pdcch_pdu_rel15->numDlDci;d++) {
+
     int  L = pdcch_pdu_rel15->dci_pdu[d].AggregationLevel;
+    int dur = pdcch_pdu_rel15->DurationSymbols;
+    int N_regs = n_rb*dur; // nb of REGs per coreset
+    AssertFatal(N_regs > 0,"N_reg cannot be 0\n");
 
     if (pdcch_pdu_rel15->CoreSetType == NFAPI_NR_CSET_CONFIG_MIB_SIB1)
       AssertFatal(L>=4, "Invalid aggregation level for SIB1 configured PDCCH %d\n", L);
-    
+
+    int C = 0;
+
     if (pdcch_pdu_rel15->CceRegMappingType == NFAPI_NR_CCE_REG_MAPPING_INTERLEAVED) {
-      uint16_t assertFatalCond = (N_reg%(bsize*R));
-      AssertFatal(assertFatalCond == 0,"CCE to REG interleaving: Invalid configuration leading to non integer C (N_reg %us, bsize %d R %d)\n",N_reg, bsize, R);
-      C = N_reg/(bsize*R);
+      uint16_t assertFatalCond = (N_regs%(bsize*R));
+      AssertFatal(assertFatalCond == 0,"CCE to REG interleaving: Invalid configuration leading to non integer C (N_reg %us, bsize %d R %d)\n",N_regs, bsize, R);
+      C = N_regs/(bsize*R);
     }
-    
-    if (pdcch_pdu_rel15->dci_pdu[d].RNTI != 0xFFFF) LOG_D(PHY, "CCE list generation for candidate %d: bundle size %d ilv size %d CceIndex %d\n", m, bsize, R, pdcch_pdu_rel15->dci_pdu[d].CceIndex);
+
+    if (pdcch_pdu_rel15->dci_pdu[d].RNTI != 0xFFFF)
+      LOG_D(PHY, "CCE list generation for candidate %d: bundle size %d ilv size %d CceIndex %d\n", d, bsize, R, pdcch_pdu_rel15->dci_pdu[d].CceIndex);
+
     for (uint8_t cce_idx=0; cce_idx<L; cce_idx++) {
       cce = &cce_list[d][cce_idx];
       cce->cce_idx = pdcch_pdu_rel15->dci_pdu[d].CceIndex + cce_idx;
       LOG_D(PHY, "cce_idx %d\n", cce->cce_idx);
-      
-      if (pdcch_pdu_rel15->CceRegMappingType == NFAPI_NR_CCE_REG_MAPPING_INTERLEAVED) {
-	LOG_D(PHY, "Interleaved CCE to REG mapping\n");
-	uint8_t j = cce->cce_idx, j_prime;
-	uint8_t r,c,idx;
-	
-	for (uint8_t bundle_idx=0; bundle_idx<NR_NB_REG_PER_CCE/bsize; bundle_idx++) {
-	  j_prime = 6*j/bsize + bundle_idx;
-	  r = j_prime%R;
-	  c = (j_prime-r)/R;
-	  idx = (r*C + c + n_shift)%(N_reg/bsize);
-	  LOG_D(PHY, "bundle idx = %d \n j = %d \t j_prime = %d \t r = %d \t c = %d\n", idx, j , j_prime, r, c);
-	  
-	  for (uint8_t reg_idx=0; reg_idx<bsize; reg_idx++) {
-	    reg = &cce->reg_list[reg_idx];
-	    reg->reg_idx = bsize*idx + reg_idx;
-	    reg->start_sc_idx = reg->reg_idx * NR_NB_SC_PER_RB;
-	    reg->symb_idx = 0;
-	    LOG_D(PHY, "reg %d symbol %d start subcarrier %d\n", reg->reg_idx, reg->symb_idx, reg->start_sc_idx);
-	  }
-	}
-      }
-      else { // NFAPI_NR_CCE_REG_MAPPING_NON_INTERLEAVED
-	LOG_D(PHY, "Non interleaved CCE to REG mapping\n");
-	for (uint8_t reg_idx=0; reg_idx<NR_NB_REG_PER_CCE; reg_idx++) {
+
+      uint8_t j = cce->cce_idx;
+      for (int k=6*j/bsize; k<(6*j/bsize+6/bsize); k++) { // loop over REG bundles
+
+        int f = cce_to_reg_interleaving(R, k, n_shift, C, bsize, N_regs);
+
+	for (uint8_t reg_idx=0; reg_idx<bsize; reg_idx++) {
 	  reg = &cce->reg_list[reg_idx];
-	  reg->reg_idx = cce->cce_idx*NR_NB_REG_PER_CCE + reg_idx;
-	  reg->start_sc_idx = reg->reg_idx * NR_NB_SC_PER_RB;
-	  reg->symb_idx = 0;
+	  reg->reg_idx = bsize*f + reg_idx;
+	  reg->start_sc_idx = (reg->reg_idx/dur) * NR_NB_SC_PER_RB;
+	  reg->symb_idx = reg_idx%dur;
 	  LOG_D(PHY, "reg %d symbol %d start subcarrier %d\n", reg->reg_idx, reg->symb_idx, reg->start_sc_idx);
 	}
-	
       }
-      
     }
   }
 }
diff --git a/openair1/PHY/NR_TRANSPORT/nr_dlsch.c b/openair1/PHY/NR_TRANSPORT/nr_dlsch.c
index d975c1d38bf..30dbc39185c 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_dlsch.c
+++ b/openair1/PHY/NR_TRANSPORT/nr_dlsch.c
@@ -38,6 +38,7 @@
 #include "PHY/NR_REFSIG/ptrs_nr.h"
 #include "common/utils/LOG/vcd_signal_dumper.h"
 #include "common/utils/nr/nr_common.h"
+#include "executables/softmodem-common.h"
 
 //#define DEBUG_DLSCH
 //#define DEBUG_DLSCH_MAPPING
@@ -122,7 +123,6 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
                           rel15->dlDmrsSymbPos);
       n_ptrs = (rel15->rbSize + rel15->PTRSFreqDensity - 1)/rel15->PTRSFreqDensity;
     }
-    int16_t mod_ptrs[n_ptrs<<1] __attribute__ ((aligned(16)));
 
     /// CRC, coding, interleaving and rate matching
     AssertFatal(harq->pdu!=NULL,"harq->pdu is null\n");
@@ -153,6 +153,9 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
     printf("\n");
 #endif
 
+    if (IS_SOFTMODEM_DLSIM)
+      memcpy(harq->f, output, encoded_length);
+
     for (int q=0; q<rel15->NrOfCodewords; q++) {
       /// scrambling
       start_meas(dlsch_scrambling_stats);
@@ -214,6 +217,7 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
 #endif
 
     stop_meas(&gNB->dlsch_layer_mapping_stats); 
+
     /// Resource mapping
     
     // Non interleaved VRB to PRB mapping
@@ -235,6 +239,7 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
     for (int nl=0; nl<rel15->nrOfLayers; nl++) {
 
       int dmrs_port = get_dmrs_port(nl,rel15->dmrsPorts);
+
       // DMRS params for this dmrs port
       get_Wt(Wt, dmrs_port, dmrs_Type);
       get_Wf(Wf, dmrs_port, dmrs_Type);
@@ -296,12 +301,14 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
 
         /* calculate if current symbol is PTRS symbols */
         ptrs_idx = 0;
-
+        int16_t *mod_ptrs = NULL;
         if(rel15->pduBitmap & 0x1) {
           ptrs_symbol = is_ptrs_symbol(l,dlPtrsSymPos);
           if(ptrs_symbol) {
             /* PTRS QPSK Modulation for each OFDM symbol in a slot */
             LOG_D(PHY,"Doing ptrs modulation for symbol %d, n_ptrs %d\n",l,n_ptrs);
+            int16_t mod_ptrsBuf[n_ptrs<<1] __attribute__ ((aligned(16)));
+            mod_ptrs =mod_ptrsBuf;
             nr_modulation(pdsch_dmrs[l][rel15->SCID], (n_ptrs<<1), DMRS_MOD_ORDER, mod_ptrs);
           }
         }
@@ -312,7 +319,8 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
           for (int i=0; i<rel15->rbSize*NR_NB_SC_PER_RB; i++) {
             /* check if cuurent RE is PTRS RE*/
             is_ptrs_re = 0;
-            if (ptrs_symbol)
+            /* check for PTRS symbol and set flag for PTRS RE */
+            if(ptrs_symbol){
               is_ptrs_re = is_ptrs_subcarrier(k,
                                               rel15->rnti,
                                               nl,
@@ -322,6 +330,7 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
                                               rel15->PTRSReOffset,
                                               start_sc,
                                               frame_parms->ofdm_symbol_size);
+            }
             /* Map DMRS Symbol */
             if ( (dmrs_symbol_map & (1 << l)) &&
                  (k == ((start_sc+get_dmrs_freq_idx(n, k_prime, delta, dmrs_Type))%(frame_parms->ofdm_symbol_size)))) {
@@ -337,6 +346,7 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
               k_prime&=1;
               n+=(k_prime)?0:1;
             }
+            /* Map PTRS Symbol */
             else if(is_ptrs_re){
               txdataF_precoding[nl][((l*frame_parms->ofdm_symbol_size + k)<<1)    ] = (beta_ptrs*amp*mod_ptrs[ptrs_idx<<1]) >> 15;
               txdataF_precoding[nl][((l*frame_parms->ofdm_symbol_size + k)<<1) + 1] = (beta_ptrs*amp*mod_ptrs[(ptrs_idx<<1) + 1])>> 15;
diff --git a/openair1/PHY/NR_TRANSPORT/nr_dlsch.h b/openair1/PHY/NR_TRANSPORT/nr_dlsch.h
index daa4ed17230..bdf681c21d3 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_dlsch.h
+++ b/openair1/PHY/NR_TRANSPORT/nr_dlsch.h
@@ -49,11 +49,6 @@ void nr_get_rbg_parms(NR_BWP_PARMS* bwp, uint8_t config_type);
 
 void nr_get_rbg_list(uint32_t bitmap, uint8_t n_rbg, uint8_t* rbg_list);
 
-
-uint8_t nr_get_Qm(uint8_t Imcs, uint8_t table_idx);
-
-uint32_t nr_get_code_rate(uint8_t Imcs, uint8_t table_idx);
-
 void nr_pdsch_codeword_scrambling(uint8_t *in,
                                   uint32_t size,
                                   uint8_t q,
diff --git a/openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c b/openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
index f7abc2a513c..8672f3ae29a 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
+++ b/openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
@@ -69,6 +69,10 @@ void free_gNB_dlsch(NR_gNB_DLSCH_t **dlschptr,
     free16(harq->b, a_segments * 1056);
     harq->b = NULL;
   }
+  if (harq->f) {
+    free16(harq->f, N_RB * NR_SYMBOLS_PER_SLOT * NR_NB_SC_PER_RB * 8 * NR_MAX_NB_LAYERS);
+    harq->f = NULL;
+  }
   for (int r = 0; r < a_segments; r++) {
     free(harq->c[r]);
     harq->c[r] = NULL;
@@ -119,7 +123,6 @@ NR_gNB_DLSCH_t *new_gNB_dlsch(NR_DL_FRAME_PARMS *frame_parms,
   bzero(dlsch,sizeof(NR_gNB_DLSCH_t));
   dlsch->Kmimo = Kmimo;
   dlsch->Mdlharq = Mdlharq;
-  dlsch->Mlimit = 4;
   dlsch->Nsoft = Nsoft;
 
   int txdataf_size = frame_parms->N_RB_DL*NR_SYMBOLS_PER_SLOT*NR_NB_SC_PER_RB*8; // max pdsch encoded length for each layer
@@ -177,6 +180,10 @@ NR_gNB_DLSCH_t *new_gNB_dlsch(NR_DL_FRAME_PARMS *frame_parms,
     bzero(harq->c[r], 8448);
   }
 
+  harq->f = malloc16(N_RB * NR_SYMBOLS_PER_SLOT * NR_NB_SC_PER_RB * 8 * NR_MAX_NB_LAYERS);
+  AssertFatal(harq->f, "cannot allocate harq->f\n");
+  bzero(harq->f, N_RB * NR_SYMBOLS_PER_SLOT * NR_NB_SC_PER_RB * 8 * NR_MAX_NB_LAYERS);
+
   return(dlsch);
 }
 
@@ -240,19 +247,12 @@ void ldpc8blocks( void *p) {
           impp->F,
           Kr-impp->F-2*(*impp->Zc),
           mod_order,nb_rb,rel15->nrOfLayers);
-    // for tbslbrm calculation according to 5.4.2.1 of 38.212
-    uint8_t Nl = 4;
-
-    if (rel15->nrOfLayers < Nl)
-      Nl = rel15->nrOfLayers;
 
-    uint32_t Tbslbrm = nr_compute_tbslbrm(rel15->mcsTable[0],nb_rb,Nl);
-    uint8_t Ilbrm = 1;
+    uint32_t Tbslbrm = rel15->maintenance_parms_v3.tbSizeLbrmBytes;
 
     uint8_t e[E];
     bzero (e, E);
-    nr_rate_matching_ldpc(Ilbrm,
-                          Tbslbrm,
+    nr_rate_matching_ldpc(Tbslbrm,
                           impp->BG,
                           *impp->Zc,
                           impp->d[rr],
@@ -313,12 +313,11 @@ int nr_dlsch_encoding(PHY_VARS_gNB *gNB,
   unsigned int crc=1;
   nfapi_nr_dl_tti_pdsch_pdu_rel15_t *rel15 = &harq->pdsch_pdu.pdsch_pdu_rel15;
   impp.Zc = &harq->Z;
-  float Coderate = 0.0;
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_DLSCH_ENCODING, VCD_FUNCTION_IN);
   uint32_t A = rel15->TBSize[0]<<3;
   unsigned char *a=harq->pdu;
   if ( rel15->rnti != SI_RNTI)
-    trace_NRpdu(DIRECTION_DOWNLINK, a, rel15->TBSize[0], 0, WS_C_RNTI, rel15->rnti, frame, slot,0, 0);
+    trace_NRpdu(DIRECTION_DOWNLINK, a, rel15->TBSize[0], WS_C_RNTI, rel15->rnti, frame, slot,0, 0);
 
   NR_gNB_SCH_STATS_t *stats=NULL;
   int first_free=-1;
@@ -376,10 +375,9 @@ int nr_dlsch_encoding(PHY_VARS_gNB *gNB,
     memcpy(harq->b, a, (A / 8) + 3); // using 3 bytes to mimic the case of 24 bit crc
   }
 
-  if (rel15->targetCodeRate[0]<1000)
-    Coderate = (float)rel15->targetCodeRate[0] /(float) 1024;
-  else  // to scale for mcs 20 and 26 in table 5.1.3.1-2 which are decimal and input 2* in nr_tbs_tools
-    Coderate = (float)rel15->targetCodeRate[0] /(float) 2048;
+  // target_code_rate is in 0.1 units
+  float Coderate = (float) rel15->targetCodeRate[0] / 10240.0f;
+  LOG_D(PHY,"DLSCH Coderate %f\n",Coderate);
 
   if ((A <=292) || ((A<=3824) && (Coderate <= 0.6667)) || Coderate <= 0.25)
     impp.BG = 2;
diff --git a/openair1/PHY/NR_TRANSPORT/nr_pbch.c b/openair1/PHY/NR_TRANSPORT/nr_pbch.c
index fc7df464960..278c2dfd58c 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_pbch.c
+++ b/openair1/PHY/NR_TRANSPORT/nr_pbch.c
@@ -35,6 +35,7 @@
 #include "PHY/NR_TRANSPORT/nr_transport_proto.h"
 #include "PHY/LTE_REFSIG/lte_refsig.h"
 #include "PHY/sse_intrin.h"
+#include "executables/softmodem-common.h"
 
 //#define DEBUG_PBCH
 //#define DEBUG_PBCH_ENCODING
@@ -248,6 +249,9 @@ int nr_generate_pbch(nfapi_nr_dl_tti_ssb_pdu *ssb_pdu,
   for (int i=0; i<NR_PBCH_PDU_BITS; i++)
     pbch->pbch_a |= ((pbch_pdu[i>>3]>>(7-(i&7)))&1)<<i;
 
+  // NSA to signal no coreset0
+  const int ssb_sc_offset = get_softmodem_params()->sa ? config->ssb_table.ssb_subcarrier_offset.value : 31;
+
   #ifdef DEBUG_PBCH_ENCODING
   for (int i=0; i<3; i++)
     printf("pbch_pdu[%d]: 0x%02x\n", i, pbch_pdu[i]);
@@ -265,7 +269,7 @@ int nr_generate_pbch(nfapi_nr_dl_tti_ssb_pdu *ssb_pdu,
     for (int i=0; i<3; i++)
       pbch->pbch_a |= ((ssb_index>>(5-i))&1)<<(29+i); // resp. 6th, 5th and 4th bits of ssb_index
   else
-    pbch->pbch_a |= ((config->ssb_table.ssb_subcarrier_offset.value>>4)&1)<<29; //MSB of k_SSB (bit index 4)
+    pbch->pbch_a |= ((ssb_sc_offset>>4)&1)<<29; //MSB of k_SSB (bit index 4)
 
   LOG_D(PHY,"After extra byte: pbch_a = 0x%08x\n",pbch->pbch_a);
 
diff --git a/openair1/PHY/NR_TRANSPORT/nr_prach.c b/openair1/PHY/NR_TRANSPORT/nr_prach.c
index b12a58526d9..eb012532ce6 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_prach.c
+++ b/openair1/PHY/NR_TRANSPORT/nr_prach.c
@@ -175,11 +175,19 @@ void rx_nr_prach_ru(RU_t *ru,
   int msg1_frequencystart   = ru->config.prach_config.num_prach_fd_occasions_list[numRA].k1.value;
 
   int sample_offset_slot;
-  if (!(slot%(fp->slots_per_subframe/2)))
-    sample_offset_slot = (prachStartSymbol==0?0:fp->ofdm_symbol_size*prachStartSymbol+fp->nb_prefix_samples0+fp->nb_prefix_samples*(prachStartSymbol-1));
-  else
-    sample_offset_slot = (prachStartSymbol==0?0:prachStartSymbol*(fp->ofdm_symbol_size+fp->nb_prefix_samples));
-  //to be checked for mu=0;
+  if (prachStartSymbol == 0) {
+    sample_offset_slot = 0;
+  } else if (fp->slots_per_subframe == 1) {
+    if (prachStartSymbol <= 7)
+      sample_offset_slot = (fp->ofdm_symbol_size + fp->nb_prefix_samples) * (prachStartSymbol - 1) + (fp->ofdm_symbol_size + fp->nb_prefix_samples0);
+    else
+      sample_offset_slot = (fp->ofdm_symbol_size + fp->nb_prefix_samples) * (prachStartSymbol - 2) + (fp->ofdm_symbol_size + fp->nb_prefix_samples0) * 2;
+  } else {
+    if (!(slot%(fp->slots_per_subframe/2)))
+      sample_offset_slot = (fp->ofdm_symbol_size + fp->nb_prefix_samples) * (prachStartSymbol - 1) + (fp->ofdm_symbol_size + fp->nb_prefix_samples0);
+    else
+      sample_offset_slot = (fp->ofdm_symbol_size + fp->nb_prefix_samples) * prachStartSymbol;
+  }
 
   LOG_D(PHY,"frame %d, slot %d: doing rx_nr_prach_ru for format %d, numRA %d, prachStartSymbol %d, prachOccasion %d\n",frame,slot,prachFormat,numRA,prachStartSymbol,prachOccasion);
 
@@ -193,89 +201,167 @@ void rx_nr_prach_ru(RU_t *ru,
     prach[aa] = (int16_t*)&ru->common.rxdata[aa][fp->get_samples_slot_timestamp(slot2,fp,0)+sample_offset_slot-ru->N_TA_offset];
   } 
 
-  idft_size_idx_t dftsize;
-  int dftlen=0;
+  int reps;
+  int Ncp;
+  int dftlen;
   int mu = fp->numerology_index;
-  int Ncp = 0;
-  int16_t *prach2;
 
   if (prach_sequence_length == 0) {
     LOG_D(PHY,"PRACH (ru %d) in %d.%d, format %d, msg1_frequencyStart %d\n",
 	  ru->idx,frame,slot2,prachFormat,msg1_frequencystart);
-    AssertFatal(prachFormat<4,"Illegal prach format %d for length 839\n",prachFormat);
     switch (prachFormat) {
     case 0:
+      reps = 1;
       Ncp = 3168;
+      dftlen = 24576;
       break;
-      
+
     case 1:
+      reps = 2;
       Ncp = 21024;
+      dftlen = 24576;
       break;
-      
+
     case 2:
+      reps = 4;
       Ncp = 4688;
+      dftlen = 24576;
       break;
-      
+
     case 3:
+      reps = 4;
       Ncp = 3168;
+      dftlen = 6144;
+      break;
+
+    default:
+      AssertFatal(1==0, "Illegal prach format %d for length 839\n", prachFormat);
       break;
-      
     }
   }
   else {
     LOG_D(PHY,"PRACH (ru %d) in %d.%d, format %s, msg1_frequencyStart %d,startSymbol %d\n",
 	  ru->idx,frame,slot,prachfmt[prachFormat],msg1_frequencystart,prachStartSymbol);
-
     switch (prachFormat) {
     case 4: //A1
-      Ncp = 288/(1<<mu);
+      reps = 2;
+      Ncp = 288 >> mu;
       break;
-      
+
     case 5: //A2
-      Ncp = 576/(1<<mu);
+      reps = 4;
+      Ncp = 576 >> mu;
       break;
-      
+
     case 6: //A3
-      Ncp = 864/(1<<mu);
+      reps = 6;
+      Ncp = 864 >> mu;
       break;
-      
+
     case 7: //B1
-      Ncp = 216/(1<<mu);
-    break;
-    
+      reps = 2;
+      Ncp = 216 >> mu;
+      break;
+
     /*
     // B2 and B3 do not exist in FAPI
     case 4: //B2
-      Ncp = 360/(1<<mu);
+      reps = 4;
+      Ncp = 360 >> mu;
       break;
-      
+
     case 5: //B3
-      Ncp = 504/(1<<mu);
+      reps = 6;
+      Ncp = 504 >> mu;
       break;
     */
+
     case 8: //B4
-      Ncp = 936/(1<<mu);
+      reps = 12;
+      Ncp = 936 >> mu;
       break;
-      
+
     case 9: //C0
-      Ncp = 1240/(1<<mu);
+      reps = 1;
+      Ncp = 1240 >> mu;
       break;
-      
+
     case 10: //C2
-      Ncp = 2048/(1<<mu);
+      reps = 4;
+      Ncp = 2048 >> mu;
       break;
-      
+
     default:
       AssertFatal(1==0,"unknown prach format %x\n",prachFormat);
       break;
     }
+    dftlen = 2048 >> mu;
+  }
+
+  //actually what we should be checking here is how often the current prach crosses a 0.5ms boundary. I am not quite sure for which paramter set this would be the case, so I will ignore it for now and just check if the prach starts on a 0.5ms boundary
+  if(fp->numerology_index == 0) {
+    if (prachStartSymbol == 0 || prachStartSymbol == 7)
+      Ncp += 16;
+  }
+  else {
+    if (slot%(fp->slots_per_subframe/2)==0 && prachStartSymbol == 0)
+      Ncp += 16;
   }
+
+  switch(fp->samples_per_subframe) {
+  case 7680:
+    // 5 MHz @ 7.68 Ms/s
+    Ncp >>= 2;
+    dftlen >>= 2;
+    break;
+
+  case 15360:
+    // 10, 15 MHz @ 15.36 Ms/s
+    Ncp >>= 1;
+    dftlen >>= 1;
+    break;
+
+  case 30720:
+    // 20, 25, 30 MHz @ 30.72 Ms/s
+    Ncp = Ncp;
+    dftlen = dftlen;
+    break;
+
+  case 46080:
+    // 40 MHz @ 46.08 Ms/s
+    Ncp = (Ncp*3)/2;
+    dftlen = (dftlen*3)/2;
+    break;
+
+  case 61440:
+    // 40, 50, 60 MHz @ 61.44 Ms/s
+    Ncp <<= 1;
+    dftlen <<= 1;
+    break;
+
+  case 92160:
+    // 50, 60, 70, 80, 90 MHz @ 92.16 Ms/s
+    Ncp *= 3;
+    dftlen *= 3;
+    break;
+
+  case 122880:
+    // 70, 80, 90, 100 MHz @ 122.88 Ms/s
+    Ncp <<= 2;
+    dftlen <<= 2;
+    break;
+
+  default:
+    AssertFatal(1==0,"sample rate %f MHz not supported for numerology %d\n", fp->samples_per_subframe / 1000.0, mu);
+  }
+
+  const idft_size_idx_t dftsize = get_dft(dftlen);
+
   // Do forward transform
   if (LOG_DEBUGFLAG(PRACH)) {
-    LOG_D(PHY,"rx_prach: Doing PRACH FFT for nb_rx:%d Ncp:%d\n",ru->nb_rx, Ncp);
+    LOG_D(PHY, "rx_prach: Doing PRACH FFT for nb_rx:%d Ncp:%d dftlen:%d\n", ru->nb_rx, Ncp, dftlen);
   }
 
-  
 
   // Note: Assumes PUSCH SCS @ 30 kHz, take values for formats 0-2 and adjust for others below
   int kbar = 1;
@@ -299,357 +385,13 @@ void rx_nr_prach_ru(RU_t *ru,
   k*=K;
   k+=kbar;
 
-  int reps=1;
-
   for (int aa=0; aa<ru->nb_rx; aa++) {
     AssertFatal(prach[aa]!=NULL,"prach[%d] is null\n",aa);
 
     // do DFT
-    if (mu==1) {
-      switch(fp->samples_per_subframe) {
-        case 15360:
-          // 10, 15 MHz @ 15.36 Ms/s
-          prach2 = prach[aa] + (1*Ncp); // Ncp is for 30.72 Ms/s, so divide by 2 to bring to 15.36 Ms/s and multiply by 2 for I/Q
-          if (prach_sequence_length == 0) {
-            if (prachFormat == 0 || prachFormat == 1 || prachFormat == 2) {
-              dftlen=12288;
-              dft(DFT_12288,prach2,rxsigF[aa],1);
-            }
-            if (prachFormat == 1 || prachFormat == 2) {
-              dft(DFT_12288,prach2+24576,rxsigF[aa]+24576,1);
-              reps++;
-            }
-            if (prachFormat == 2) {
-              dft(DFT_12288,prach2+(24576*2),rxsigF[aa]+(24576*2),1);
-              dft(DFT_12288,prach2+(24576*3),rxsigF[aa]+(24576*3),1);
-              reps+=2;
-            }
-            if (prachFormat == 3) {
-              dftlen=3072;
-              for (int i=0;i<4;i++) dft(DFT_3072,prach2+(i*3072*2),rxsigF[aa]+(i*3072*2),1);
-              reps=4;
-            }
-          } else { // 839 sequence
-            if (prachStartSymbol == 0) prach2+=16; // 8 samples @ 15.36 Ms/s in first symbol of each half subframe (15/30 kHz only)
-
-            dftlen=512;
-            dft(DFT_512,prach2,rxsigF[aa],1);
-            if (prachFormat != 9/*C0*/) {
-              dft(DFT_512,prach2+1024,rxsigF[aa]+1024,1);
-              reps++;
-            }
-            if (prachFormat == 5/*A2*/ || prachFormat == 6/*A3*/|| prachFormat == 8/*B4*/ || prachFormat == 10/*C2*/) {
-              dft(DFT_512,prach2+1024*2,rxsigF[aa]+1024*2,1);
-              dft(DFT_512,prach2+1024*3,rxsigF[aa]+1024*3,1);
-              reps+=2;
-            }
-            if (prachFormat == 6/*A3*/ || prachFormat == 8/*B4*/) {
-              dft(DFT_512,prach2+1024*4,rxsigF[aa]+1024*4,1);
-              dft(DFT_512,prach2+1024*5,rxsigF[aa]+1024*5,1);
-              reps+=2;
-            }
-            if (prachFormat == 8/*B4*/) {
-              for (int i=6;i<12;i++) dft(DFT_512,prach2+(1024*i),rxsigF[aa]+(1024*i),1);
-              reps+=6;
-            }
-          }
-          break;
-
-        case 30720:
-          // 20, 25, 30 MHz @ 30.72 Ms/s
-          prach2 = prach[aa] + (2*Ncp); // Ncp is for 30.72 Ms/s, so just multiply by 2 for I/Q
-          if (prach_sequence_length == 0) {
-            if (prachFormat == 0 || prachFormat == 1 || prachFormat == 2) {
-              dftlen=24576;
-              dft(DFT_24576,prach2,rxsigF[aa],1);
-            }
-            if (prachFormat == 1 || prachFormat == 2) {
-              dft(DFT_24576,prach2+49152,rxsigF[aa]+49152,1);
-              reps++;
-            }
-            if (prachFormat == 2) {
-              dft(DFT_24576,prach2+(49152*2),rxsigF[aa]+(49152*2),1);
-              dft(DFT_24576,prach2+(49152*3),rxsigF[aa]+(49152*3),1);
-              reps+=2;
-            }
-            if (prachFormat == 3) {
-              dftlen=6144;
-              for (int i=0;i<4;i++) dft(DFT_6144,prach2+(i*6144*2),rxsigF[aa]+(i*6144*2),1);
-              reps=4;
-            }
-          } else { // 839 sequence
-            if (prachStartSymbol == 0) prach2+=32; // 16 samples @ 30.72 Ms/s in first symbol of each half subframe (15/30 kHz only)
-
-            dftlen=1024;
-            dft(DFT_1024,prach2,rxsigF[aa],1);
-            if (prachFormat != 9/*C0*/) {
-              dft(DFT_1024,prach2+2048,rxsigF[aa]+2048,1);
-              reps++;
-            }
-            if (prachFormat == 5/*A2*/ || prachFormat == 6/*A3*/|| prachFormat == 8/*B4*/ || prachFormat == 10/*C2*/) {
-              dft(DFT_1024,prach2+2048*2,rxsigF[aa]+2048*2,1);
-              dft(DFT_1024,prach2+2048*3,rxsigF[aa]+2048*3,1);
-              reps+=2;
-            }
-            if (prachFormat == 6/*A3*/ || prachFormat == 8/*B4*/) {
-              dft(DFT_1024,prach2+2048*4,rxsigF[aa]+2048*4,1);
-              dft(DFT_1024,prach2+2048*5,rxsigF[aa]+2048*5,1);
-              reps+=2;
-            }
-            if (prachFormat == 8/*B4*/) {
-              for (int i=6;i<12;i++) dft(DFT_1024,prach2+(2048*i),rxsigF[aa]+(2048*i),1);
-              reps+=6;
-            }
-          }
-          break;
-
-        case 61440:
-          // 40, 50, 60 MHz @ 61.44 Ms/s
-          prach2 = prach[aa] + (4*Ncp); // Ncp is for 30.72 Ms/s, so multiply by 2 for I/Q, and 2 to bring to 61.44 Ms/s
-          if (prach_sequence_length == 0) {
-            if (prachFormat == 0 || prachFormat == 1 || prachFormat == 2) {
-              dftlen=49152;
-              dft(DFT_49152,prach2,rxsigF[aa],1);
-            }
-            if (prachFormat == 1 || prachFormat == 2) {
-              dft(DFT_49152,prach2+98304,rxsigF[aa]+98304,1);
-              reps++;
-            }
-            if (prachFormat == 2) {
-              dft(DFT_49152,prach2+(98304*2),rxsigF[aa]+(98304*2),1);
-              dft(DFT_49152,prach2+(98304*3),rxsigF[aa]+(98304*3),1);
-              reps+=2;
-            }
-            if (prachFormat == 3) {
-              dftlen=12288;
-              for (int i=0;i<4;i++) dft(DFT_12288,prach2+(i*12288*2),rxsigF[aa]+(i*12288*2),1);
-              reps=4;
-            }
-          } else { // 839 sequence
-            if (prachStartSymbol == 0) prach2+=64; // 32 samples @ 61.44 Ms/s in first symbol of each half subframe (15/30 kHz only)
-
-            dftlen=2048;
-            dft(DFT_2048,prach2,rxsigF[aa],1);
-            if (prachFormat != 9/*C0*/) {
-              dft(DFT_2048,prach2+4096,rxsigF[aa]+4096,1);
-              reps++;
-            }
-            if (prachFormat == 5/*A2*/ || prachFormat == 6/*A3*/|| prachFormat == 8/*B4*/ || prachFormat == 10/*C2*/) {
-              dft(DFT_2048,prach2+4096*2,rxsigF[aa]+4096*2,1);
-              dft(DFT_2048,prach2+4096*3,rxsigF[aa]+4096*3,1);
-              reps+=2;
-            }
-            if (prachFormat == 6/*A3*/ || prachFormat == 8/*B4*/) {
-              dft(DFT_2048,prach2+4096*4,rxsigF[aa]+4096*4,1);
-              dft(DFT_2048,prach2+4096*5,rxsigF[aa]+4096*5,1);
-              reps+=2;
-            }
-            if (prachFormat == 8/*B4*/) {
-              for (int i=6;i<12;i++) dft(DFT_2048,prach2+(4096*i),rxsigF[aa]+(4096*i),1);
-              reps+=6;
-            }
-          }
-          break;
-
-        case 46080:
-          // 40 MHz @ 46.08 Ms/s
-          prach2 = prach[aa] + (3*Ncp); // 46.08 is 1.5 * 30.72, times 2 for I/Q
-          if (prach_sequence_length == 0) {
-            if (prachFormat == 0 || prachFormat == 1 || prachFormat == 2) {
-              dftlen=36864;
-              dft(DFT_36864,prach2,rxsigF[aa],1);
-            }
-            if (prachFormat == 1 || prachFormat == 2) {
-              dft(DFT_36864,prach2+73728,rxsigF[aa]+73728,1);
-              reps++;
-            }
-            if (prachFormat == 2) {
-              dft(DFT_36864,prach2+(73728*2),rxsigF[aa]+(73728*2),1);
-              dft(DFT_36864,prach2+(73728*3),rxsigF[aa]+(73728*3),1);
-              reps+=2;
-            }
-            if (prachFormat == 3) {
-              dftlen=9216;
-              for (int i=0;i<4;i++) dft(DFT_9216,prach2+(i*9216*2),rxsigF[aa]+(i*9216*2),1);
-              reps=4;
-            }
-          } else { // 839 sequence
-            if (prachStartSymbol == 0) prach2+=48; // 24 samples @ 46.08 Ms/s in first symbol of each half subframe (15/30 kHz only)
-
-            dftlen=1536;
-            dft(DFT_1536,prach2,rxsigF[aa],1);
-            if (prachFormat != 9/*C0*/) {
-              dft(DFT_1536,prach2+3072,rxsigF[aa]+3072,1);
-              reps++;
-            }
-            if (prachFormat == 5/*A2*/ || prachFormat == 6/*A3*/|| prachFormat == 8/*B4*/ || prachFormat == 10/*C2*/) {
-              dft(DFT_1536,prach2+3072*2,rxsigF[aa]+3072*2,1);
-              dft(DFT_1536,prach2+3072*3,rxsigF[aa]+3072*3,1);
-              reps+=2;
-            }
-            if (prachFormat == 6/*A3*/ || prachFormat == 8/*B4*/) {
-              dft(DFT_1536,prach2+3072*4,rxsigF[aa]+3072*4,1);
-              dft(DFT_1536,prach2+3072*5,rxsigF[aa]+3072*5,1);
-              reps+=2;
-            }
-            if (prachFormat == 8/*B4*/) {
-              for (int i=6;i<12;i++) dft(DFT_1536,prach2+(3072*i),rxsigF[aa]+(3072*i),1);
-              reps+=6;
-            }
-          }
-          break;
-
-        case 122880:
-          // 70, 80, 90, 100 MHz @ 122.88 Ms/s
-          prach2 = prach[aa] + (8*Ncp);
-          if (prach_sequence_length == 0) {
-            if (prachFormat == 0 || prachFormat == 1 || prachFormat == 2) {
-              dftlen=98304;
-              dft(DFT_98304,prach2,rxsigF[aa],1);
-            }
-            if (prachFormat == 1 || prachFormat == 2) {
-              dft(DFT_98304,prach2+196608,rxsigF[aa]+196608,1);
-              reps++;
-            }
-            if (prachFormat == 2) {
-              dft(DFT_98304,prach2+(196608*2),rxsigF[aa]+(196608*2),1);
-              dft(DFT_98304,prach2+(196608*3),rxsigF[aa]+(196608*3),1);
-              reps+=2;
-            }
-            if (prachFormat == 3) {
-              dftlen=24576;
-              for (int i=0;i<4;i++) dft(DFT_24576,prach2+(i*2*24576),rxsigF[aa]+(i*2*24576),1);
-              reps=4;
-            }
-          } else { // 839 sequence
-            if (prachStartSymbol == 0) prach2+=128; // 64 samples @ 122.88 Ms/s in first symbol of each half subframe (15/30 kHz only)
-
-            dftlen=4096;
-            dft(DFT_4096,prach2,rxsigF[aa],1);
-            if (prachFormat != 9/*C0*/) {
-              dft(DFT_4096,prach2+8192,rxsigF[aa]+8192,1);
-              reps++;
-            }
-
-            if (prachFormat == 5/*A2*/ || prachFormat == 6/*A3*/|| prachFormat == 8/*B4*/ || prachFormat == 10/*C2*/) {
-              dft(DFT_4096,prach2+8192*2,rxsigF[aa]+8192*2,1);
-              dft(DFT_4096,prach2+8192*3,rxsigF[aa]+8192*3,1);
-              reps+=2;
-            }
-            if (prachFormat == 6/*A3*/ || prachFormat == 8/*B4*/) {
-              dft(DFT_4096,prach2+8192*4,rxsigF[aa]+8192*4,1);
-              dft(DFT_4096,prach2+8192*5,rxsigF[aa]+8192*5,1);
-              reps+=2;
-            }
-            if (prachFormat == 8/*B4*/) {
-              for (int i=6;i<12;i++) dft(DFT_4096,prach2+(8192*i),rxsigF[aa]+(8192*i),1);
-              reps+=6;
-            }
-          }
-          break;
-
-        case 92160:
-          // 80, 90 MHz @ 92.16 Ms/s
-          prach2 = prach[aa] + (6*Ncp);
-          if (prach_sequence_length == 0) {
-            if (prachFormat == 0 || prachFormat == 1 || prachFormat == 2) {
-              dftlen=73728;
-              dft(DFT_73728,prach2,rxsigF[aa],1);
-            }
-            if (prachFormat == 1 || prachFormat == 2) {
-              dft(DFT_73728,prach2+147456,rxsigF[aa]+147456,1);
-              reps++;
-            }
-            if (prachFormat == 2) {
-              dft(DFT_73728,prach2+(147456*2),rxsigF[aa]+(147456*2),1);
-              dft(DFT_73728,prach2+(147456*3),rxsigF[aa]+(147456*3),1);
-              reps+=2;
-            }
-            if (prachFormat == 3) {
-              dftlen=18432;
-              for (int i=0;i<4;i++) dft(DFT_18432,prach2+(i*2*18432),rxsigF[aa]+(i*2*18432),1);
-              reps=4;
-            }
-          } else {
-            if (prachStartSymbol == 0) prach2+=96; // 64 samples @ 122.88 Ms/s in first symbol of each half subframe (15/30 kHz only)
-
-            dftlen=3072;
-            dft(DFT_3072,prach2,rxsigF[aa],1);
-            if (prachFormat != 9/*C0*/) {
-              dft(DFT_3072,prach2+6144,rxsigF[aa]+6144,1);
-              reps++;
-            }
-
-            if (prachFormat == 5/*A2*/ || prachFormat == 6/*A3*/|| prachFormat == 8/*B4*/ || prachFormat == 10/*C2*/) {
-              dft(DFT_3072,prach2+6144*2,rxsigF[aa]+6144*2,1);
-              dft(DFT_3072,prach2+6144*3,rxsigF[aa]+6144*3,1);
-              reps+=2;
-            }
-            if (prachFormat == 6/*A3*/ || prachFormat == 8/*B4*/) {
-              dft(DFT_3072,prach2+6144*4,rxsigF[aa]+6144*4,1);
-              dft(DFT_3072,prach2+6144*5,rxsigF[aa]+6144*5,1);
-              reps+=2;
-            }
-            if (prachFormat == 8/*B4*/) {
-              for (int i=6;i<12;i++) dft(DFT_3072,prach2+(6144*i),rxsigF[aa]+(6144*i),1);
-              reps+=6;
-            }
-          }
-          break;
-        default:
-          AssertFatal(1==0,"sample_rate %f MHz not support for NR PRACH yet\n", fp->samples_per_subframe / 1000.0);
-      }
-    }
-    else if (mu==3) {
-      if (fp->threequarter_fs) {
-	AssertFatal(1==0,"3/4 sampling not supported for numerology %d\n",mu);
-      }
-      if (prach_sequence_length == 0) {
-	AssertFatal(1==0,"long prach not supported for numerology %d\n",mu);
-      }
-      if (fp->N_RB_UL == 32) {
-	prach2 = prach[aa] + (Ncp<<2); // Ncp is for 30.72 Ms/s, so multiply by 2 for I/Q, and 2 for 61.44Msps
-	if (slot%(fp->slots_per_subframe/2)==0 && prachStartSymbol == 0)
-	  prach2+=64; // 32 samples @ 61.44 Ms/s in first symbol of each half subframe
-	dftlen=512;
-	dftsize = DFT_512;
-      }
-      else if (fp->N_RB_UL == 66) {
-	prach2 = prach[aa] + (Ncp<<3); // Ncp is for 30.72 Ms/s, so multiply by 4 for I/Q, and 2 for 122.88Msps
-	if (slot%(fp->slots_per_subframe/2)==0 && prachStartSymbol == 0)
-	  prach2+=128; // 64 samples @ 122.88 Ms/s in first symbol of each half subframe 
-	dftlen=1024;
-	dftsize = DFT_1024;
-      }
-      else {
-	AssertFatal(1==0,"N_RB_UL %d not support for numerology %d\n",fp->N_RB_UL,mu);
-      }
-      
-      dft(dftsize,prach2,rxsigF[aa],1);
-      if (prachFormat != 9/*C0*/) {
-	dft(dftsize,prach2+dftlen*2,rxsigF[aa]+dftlen*2,1);
-	reps++;
-      }
-	  
-      if (prachFormat == 5/*A2*/ || prachFormat == 6/*A3*/|| prachFormat == 8/*B4*/ || prachFormat == 10/*C2*/) {     
-	dft(dftsize,prach2+dftlen*4,rxsigF[aa]+dftlen*4,1);
-	dft(dftsize,prach2+dftlen*6,rxsigF[aa]+dftlen*6,1);
-	reps+=2;
-      } 
-      if (prachFormat == 6/*A3*/ || prachFormat == 8/*B4*/) {     
-	dft(dftsize,prach2+dftlen*8,rxsigF[aa]+dftlen*8,1);
-	dft(dftsize,prach2+dftlen*10,rxsigF[aa]+dftlen*10,1);
-	reps+=2;
-      } 
-      if (prachFormat == 8/*B4*/) {
-	for (int i=6;i<12;i++)
-	  dft(dftsize,prach2+(dftlen*2*i),rxsigF[aa]+(dftlen*2*i),1);
-	reps+=6;
-      }
-    }
-    else {
-      AssertFatal(1==0,"Numerology not supported\n");
-    }
+    int16_t *prach2 = prach[aa] + (2*Ncp); // times 2 for complex samples
+    for (int i = 0; i < reps; i++)
+      dft(dftsize, prach2 + 2*dftlen*i, rxsigF[aa] + 2*dftlen*i, 1);
 
     //LOG_M("ru_rxsigF_tmp.m","rxsFtmp", rxsigF[aa], dftlen*2*reps, 1, 1);
 
diff --git a/openair1/PHY/NR_TRANSPORT/nr_scrambling.c b/openair1/PHY/NR_TRANSPORT/nr_scrambling.c
index 4bbecfd994d..8a49a7ffe0d 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_scrambling.c
+++ b/openair1/PHY/NR_TRANSPORT/nr_scrambling.c
@@ -52,6 +52,7 @@ void nr_codeword_scrambling(uint8_t *in,
     ((uint16_t*)&in32)[0] = _mm_movemask_epi8(_mm_slli_epi16(in128[0],7));
     ((uint16_t*)&in32)[1] = _mm_movemask_epi8(_mm_slli_epi16(in128[1],7));
     out[i]=(in32^s);
+    LOG_D(PHY,"in[%d] %x => %x\n",i,in32,out[i]);
     s=lte_gold_generic(&x1, &x2, 0);
   }
 //#elsif defined(__arm__) || defined(__aarch64)
diff --git a/openair1/PHY/NR_TRANSPORT/nr_transport_common_proto.h b/openair1/PHY/NR_TRANSPORT/nr_transport_common_proto.h
index 2daf2af1fb8..74d19bf6f61 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_transport_common_proto.h
+++ b/openair1/PHY/NR_TRANSPORT/nr_transport_common_proto.h
@@ -60,14 +60,6 @@ uint32_t nr_get_G(uint16_t nb_rb, uint16_t nb_symb_sch, uint8_t nb_re_dmrs, uint
 
 uint32_t nr_get_E(uint32_t G, uint8_t C, uint8_t Qm, uint8_t Nl, uint8_t r);
 
-uint8_t nr_get_Qm_ul(uint8_t Imcs, uint8_t table_idx);
-
-uint8_t nr_get_Qm_dl(uint8_t Imcs, uint8_t table_idx);
-
-uint32_t nr_get_code_rate_ul(uint8_t Imcs, uint8_t table_idx);
-
-uint32_t nr_get_code_rate_dl(uint8_t Imcs, uint8_t table_idx);
-
 void compute_nr_prach_seq(uint8_t short_sequence,
                           uint8_t num_sequences,
                           uint8_t rootSequenceIndex,
diff --git a/openair1/PHY/NR_TRANSPORT/nr_transport_proto.h b/openair1/PHY/NR_TRANSPORT/nr_transport_proto.h
index d22f3fe2c4f..0b81f5322df 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_transport_proto.h
+++ b/openair1/PHY/NR_TRANSPORT/nr_transport_proto.h
@@ -144,21 +144,22 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB,
     @param nb_rb_pusch The number of RBs allocated (used for Resource Allocation Type 1 in NR)
     @param frame_parms, Pointer to frame descriptor structure
 */
-void nr_ulsch_extract_rbs_single(int32_t **rxdataF,
-                                 NR_gNB_PUSCH *pusch_vars,
-                                 int slot,
-                                 unsigned char symbol,
-                                 uint8_t is_dmrs_symbol,
-                                 nfapi_nr_pusch_pdu_t *pusch_pdu,
-                                 NR_DL_FRAME_PARMS *frame_parms);
+void nr_ulsch_extract_rbs(int32_t **rxdataF,
+                          NR_gNB_PUSCH *pusch_vars,
+                          int slot,
+                          unsigned char symbol,
+                          uint8_t is_dmrs_symbol,
+                          nfapi_nr_pusch_pdu_t *pusch_pdu,
+                          NR_DL_FRAME_PARMS *frame_parms);
 
 void nr_ulsch_scale_channel(int32_t **ul_ch_estimates_ext,
                             NR_DL_FRAME_PARMS *frame_parms,
                             NR_gNB_ULSCH_t *ulsch_gNB,
-                            uint8_t symbol,
-                            uint8_t start_symbol,
-                            uint16_t nb_rb,
-                            pusch_dmrs_type_t pusch_dmrs_type);
+                            uint8_t symbol, 
+                            uint8_t is_dmrs_symbol,                           
+                            uint32_t len,
+                            uint8_t nrOfLayers,
+                            uint16_t nb_rb);
 
 /** \brief This function computes the average channel level over all allocated RBs and antennas (TX/RX) in order to compute output shift for compensated signal
     @param ul_ch_estimates_ext Channel estimates in allocated RBs
@@ -192,9 +193,10 @@ void nr_ulsch_channel_compensation(int **rxdataF_ext,
                                 int **ul_ch_mag,
                                 int **ul_ch_magb,
                                 int **rxdataF_comp,
-                                int **rho,
+                                int ***rho,
                                 NR_DL_FRAME_PARMS *frame_parms,
                                 unsigned char symbol,
+                                int length,
                                 uint8_t is_dmrs_symbol,
                                 unsigned char mod_order,
                                 uint8_t  nrOfLayers,
@@ -262,8 +264,8 @@ void nr_ulsch_64qam_llr(int32_t *rxdataF_comp,
     @param mod_order modulation order
 */
 void nr_ulsch_compute_llr(int32_t *rxdataF_comp,
-                          int32_t **ul_ch_mag,
-                          int32_t **ul_ch_magb,
+                          int32_t *ul_ch_mag,
+                          int32_t *ul_ch_magb,
                           int16_t  *ulsch_llr,
                           uint32_t nb_rb,
                           uint32_t nb_re,
@@ -336,17 +338,27 @@ int nr_get_srs_signal(PHY_VARS_gNB *gNB,
                       int slot,
                       nfapi_nr_srs_pdu_t *srs_pdu,
                       nr_srs_info_t *nr_srs_info,
-                      int32_t **srs_received_signal);
+                      int32_t srs_received_signal[][gNB->frame_parms.ofdm_symbol_size*(1<<srs_pdu->num_symbols)]);
 
 void init_prach_list(PHY_VARS_gNB *gNB);
 void init_prach_ru_list(RU_t *ru);
 void free_nr_ru_prach_entry(RU_t *ru, int prach_id);
 uint8_t get_nr_prach_duration(uint8_t prach_format);
 
-void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
-                        int16_t amp,
-                        nfapi_nr_dl_tti_csi_rs_pdu_rel15_t csi_params,
-                        int slot);
+void nr_generate_csi_rs(const NR_DL_FRAME_PARMS *frame_parms,
+                        int32_t **dataF,
+                        const int16_t amp,
+                        nr_csi_info_t *nr_csi_info,
+                        const nfapi_nr_dl_tti_csi_rs_pdu_rel15_t *csi_params,
+                        const int slot,
+                        uint8_t *N_cdm_groups,
+                        uint8_t *CDM_group_size,
+                        uint8_t *k_prime,
+                        uint8_t *l_prime,
+                        uint8_t *N_ports,
+                        uint8_t *j_cdm,
+                        uint8_t *k_overline,
+                        uint8_t *l_overline);
 
 void free_nr_prach_entry(PHY_VARS_gNB *gNB, int prach_id);
 
diff --git a/openair1/PHY/NR_TRANSPORT/nr_ulsch.c b/openair1/PHY/NR_TRANSPORT/nr_ulsch.c
index 3e3137739e2..e56a4607e2d 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_ulsch.c
+++ b/openair1/PHY/NR_TRANSPORT/nr_ulsch.c
@@ -68,12 +68,20 @@ void nr_fill_ulsch(PHY_VARS_gNB *gNB,
   ulsch->rnti = ulsch_pdu->rnti;
   //ulsch->rnti_type;
   ulsch->harq_mask |= 1<<harq_pid;
-  ulsch->harq_process_id[slot] = harq_pid;
 
-  ulsch->harq_processes[harq_pid]->frame=frame;
-  ulsch->harq_processes[harq_pid]->slot=slot;
-  ulsch->harq_processes[harq_pid]->handled= 0;
-  ulsch->harq_processes[harq_pid]->status= NR_ACTIVE;
+  NR_UL_gNB_HARQ_t *harq = ulsch->harq_processes[harq_pid];
+  harq->frame=frame;
+  harq->slot=slot;
+  harq->handled = 0;
+  harq->status= NR_ACTIVE;
+  harq->new_rx = harq->ndi != ulsch_pdu->pusch_data.new_data_indicator;
+  if (harq->new_rx) {
+    harq->ndi = ulsch_pdu->pusch_data.new_data_indicator;
+    harq->round = 0;
+  } else {
+    harq->round++;
+  }
+
   memcpy((void*)&ulsch->harq_processes[harq_pid]->ulsch_pdu, (void*)ulsch_pdu, sizeof(nfapi_nr_pusch_pdu_t));
 
   LOG_D(PHY,"Initializing nFAPI for ULSCH, UE %d, harq_pid %d\n",ulsch_id,harq_pid);
@@ -85,6 +93,33 @@ void nr_ulsch_unscrambling(int16_t* llr, uint32_t size, uint32_t Nid, uint32_t n
   nr_codeword_unscrambling(llr, size, 0, Nid, n_RNTI);
 }
 
+void nr_ulsch_layer_demapping(int16_t *llr_cw,
+				     uint8_t Nl,
+				     uint8_t mod_order,
+				     uint32_t length,
+				     int16_t **llr_layers) 
+{
+
+  switch (Nl) {
+    case 1:
+      memcpy((void*)llr_cw, (void*)llr_layers[0], (length)*sizeof(int16_t));
+      break;
+    case 2:
+    case 3:
+    case 4:
+      for (int i=0; i<(length/Nl/mod_order); i++) {
+        for (int l=0; l<Nl; l++) {
+          for (int m=0; m<mod_order; m++) {
+            llr_cw[i*Nl*mod_order+l*mod_order+m] = llr_layers[l][i*mod_order+m];
+          }
+        }
+      }
+      break;
+  default:
+  AssertFatal(0, "Not supported number of layers %d\n", Nl);
+  }
+}
+
 void dump_pusch_stats(FILE *fd,PHY_VARS_gNB *gNB) {
 
   for (int i=0;i<gNB->number_of_nr_ulsch_max;i++) {
diff --git a/openair1/PHY/NR_TRANSPORT/nr_ulsch.h b/openair1/PHY/NR_TRANSPORT/nr_ulsch.h
index 0791fd2bbc6..c7229bc5d07 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_ulsch.h
+++ b/openair1/PHY/NR_TRANSPORT/nr_ulsch.h
@@ -71,6 +71,12 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
 
 void nr_ulsch_unscrambling(int16_t* llr, uint32_t size, uint32_t Nid, uint32_t n_RNTI);
 
+void nr_ulsch_layer_demapping(int16_t *llr_cw,
+				     uint8_t Nl,
+				     uint8_t mod_order,
+				     uint32_t length,
+				     int16_t **llr_layers); 
+
 void nr_ulsch_procedures(PHY_VARS_gNB *gNB,
                          int frame_rx,
                          int slot_rx,
diff --git a/openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c b/openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
index 39f14b05f89..ef5c0c069e0 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
+++ b/openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
@@ -57,8 +57,7 @@
 void free_gNB_ulsch(NR_gNB_ULSCH_t **ulschptr, uint16_t N_RB_UL)
 {
 
-  int i,r;
-  uint16_t a_segments = MAX_NUM_NR_ULSCH_SEGMENTS;  //number of segments to be allocated
+  uint16_t a_segments = MAX_NUM_NR_ULSCH_SEGMENTS_PER_LAYER*NR_MAX_NB_LAYERS;  //number of segments to be allocated
   NR_gNB_ULSCH_t *ulsch = *ulschptr;
 
   if (N_RB_UL != 273) {
@@ -66,17 +65,18 @@ void free_gNB_ulsch(NR_gNB_ULSCH_t **ulschptr, uint16_t N_RB_UL)
     a_segments = a_segments/273 +1;
   }
 
-  for (i=0; i<NR_MAX_ULSCH_HARQ_PROCESSES; i++) {
+  for (int i=0; i<NR_MAX_ULSCH_HARQ_PROCESSES; i++) {
     if (ulsch->harq_processes[i]) {
       if (ulsch->harq_processes[i]->b) {
         free_and_zero(ulsch->harq_processes[i]->b);
         ulsch->harq_processes[i]->b = NULL;
       }
-      for (r=0; r<a_segments; r++) {
+      for (int r=0; r<a_segments; r++) {
         free_and_zero(ulsch->harq_processes[i]->c[r]);
         free_and_zero(ulsch->harq_processes[i]->d[r]);
-        free_and_zero(ulsch->harq_processes[i]->w[r]);
       }
+      free_and_zero(ulsch->harq_processes[i]->c);
+      free_and_zero(ulsch->harq_processes[i]->d);
       free_and_zero(ulsch->harq_processes[i]);
       ulsch->harq_processes[i] = NULL;
     }
@@ -90,7 +90,7 @@ NR_gNB_ULSCH_t *new_gNB_ulsch(uint8_t max_ldpc_iterations, uint16_t N_RB_UL)
 
   NR_gNB_ULSCH_t *ulsch;
   uint8_t i,r;
-  uint16_t a_segments = MAX_NUM_NR_ULSCH_SEGMENTS;  //number of segments to be allocated
+  uint16_t a_segments = MAX_NUM_NR_ULSCH_SEGMENTS_PER_LAYER*NR_MAX_NB_LAYERS;  //number of segments to be allocated
 
   if (N_RB_UL != 273) {
     a_segments = a_segments*N_RB_UL;
@@ -101,16 +101,16 @@ NR_gNB_ULSCH_t *new_gNB_ulsch(uint8_t max_ldpc_iterations, uint16_t N_RB_UL)
   ulsch = (NR_gNB_ULSCH_t *)malloc16_clear(sizeof(NR_gNB_ULSCH_t));
 
   ulsch->max_ldpc_iterations = max_ldpc_iterations;
-  ulsch->Mlimit = 4;
 
   for (i=0; i<NR_MAX_ULSCH_HARQ_PROCESSES; i++) {
 
     ulsch->harq_processes[i] = (NR_UL_gNB_HARQ_t *)malloc16_clear(sizeof(NR_UL_gNB_HARQ_t));
     ulsch->harq_processes[i]->b = (uint8_t*)malloc16_clear(ulsch_bytes);
+    ulsch->harq_processes[i]->c = (uint8_t**)malloc16_clear(a_segments*sizeof(uint8_t *));
+    ulsch->harq_processes[i]->d = (int16_t**)malloc16_clear(a_segments*sizeof(int16_t *));
     for (r=0; r<a_segments; r++) {
       ulsch->harq_processes[i]->c[r] = (uint8_t*)malloc16_clear(8448*sizeof(uint8_t));
       ulsch->harq_processes[i]->d[r] = (int16_t*)malloc16_clear((68*384)*sizeof(int16_t));
-      ulsch->harq_processes[i]->w[r] = (int16_t*)malloc16_clear((3*(6144+64))*sizeof(int16_t));
     }
   }
 
@@ -135,10 +135,8 @@ void clean_gNB_ulsch(NR_gNB_ULSCH_t *ulsch)
     ulsch->rnti_type = 0;
     ulsch->cyclicShift = 0;
     ulsch->cooperation_flag = 0;
-    ulsch->Mlimit = 0;
     ulsch->max_ldpc_iterations = 0;
     ulsch->last_iteration_cnt = 0;
-    for (i=0;i<NR_MAX_SLOTS_PER_FRAME;i++) ulsch->harq_process_id[i] = 0;
 
     for (i=0; i<NR_MAX_ULSCH_HARQ_PROCESSES; i++) {
       if (ulsch->harq_processes[i]){
@@ -168,8 +166,6 @@ void clean_gNB_ulsch(NR_gNB_ULSCH_t *ulsch)
         ulsch->harq_processes[i]->C=0;
         /// Pointers to code blocks after LDPC coding (38.212 V15.4.0 section 5.3.2)
         //int16_t *d[MAX_NUM_NR_ULSCH_SEGMENTS];
-        /// LDPC processing buffer
-        //t_nrLDPC_procBuf* p_nrLDPC_procBuf[MAX_NUM_NR_ULSCH_SEGMENTS];
         ulsch->harq_processes[i]->Z=0;
         /// code blocks after bit selection in rate matching for LDPC code (38.212 V15.4.0 section 5.4.2.1)
         //int16_t e[MAX_NUM_NR_ULSCH_SEGMENTS][3*8448];
@@ -234,7 +230,6 @@ void nr_processULSegment(void* arg) {
   int rv_index = rdata->rv_index;
   int r_offset = rdata->r_offset;
   uint8_t kc = rdata->Kc;
-  uint32_t Tbslbrm = rdata->Tbslbrm;
   short* ulsch_llr = rdata->ulsch_llr;
   int max_ldpc_iterations = p_decoderParms->numMaxIter;
   int8_t llrProcBuf[OAI_UL_LDPC_MAX_NUM_LLR] __attribute__ ((aligned(32)));
@@ -244,8 +239,6 @@ void nr_processULSegment(void* arg) {
 
   __m128i *pv = (__m128i*)&z;
   __m128i *pl = (__m128i*)&l;
-  
-  uint8_t  Ilbrm    = 0;
 
   Kr = ulsch_harq->K;
   Kr_bytes = Kr>>3;
@@ -262,9 +255,12 @@ void nr_processULSegment(void* arg) {
 
   //////////////////////////// ulsch_llr =====> ulsch_harq->e //////////////////////////////
 
+  /// code blocks after bit selection in rate matching for LDPC code (38.212 V15.4.0 section 5.4.2.1)
+  int16_t harq_e[3*8448];
+
   nr_deinterleaving_ldpc(E,
                          Qm,
-                         ulsch_harq->e[r],
+                         harq_e,
                          ulsch_llr+r_offset);
 
   //for (int i =0; i<16; i++)
@@ -273,16 +269,7 @@ void nr_processULSegment(void* arg) {
   stop_meas(&phy_vars_gNB->ulsch_deinterleaving_stats);
 
 
-  /*LOG_D(PHY,"HARQ_PID %d Rate Matching Segment %d (coded bits %d,unpunctured/repeated bits %d, TBS %d, mod_order %d, nb_rb %d, Nl %d, rv %d, round %d)...\n",
-        harq_pid,r, G,
-        Kr*3,
-        ulsch_harq->TBS,
-        Qm,
-        nb_rb,
-        n_layers,
-        pusch_pdu->pusch_data.rv_index,
-        ulsch_harq->round);*/
-  //////////////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////////////////////////
 
 
   //////////////////////////////////////////////////////////////////////////////////////////
@@ -293,12 +280,11 @@ void nr_processULSegment(void* arg) {
 
   //start_meas(&phy_vars_gNB->ulsch_rate_unmatching_stats);
 
-  if (nr_rate_matching_ldpc_rx(Ilbrm,
-                               Tbslbrm,
+  if (nr_rate_matching_ldpc_rx(rdata->tbslbrm,
                                p_decoderParms->BG,
                                p_decoderParms->Z,
                                ulsch_harq->d[r],
-                               ulsch_harq->e[r],
+                               harq_e,
                                ulsch_harq->C,
                                rv_index,
                                ulsch_harq->new_rx,
@@ -361,13 +347,13 @@ void nr_processULSegment(void* arg) {
 
   if (check_crc((uint8_t*)llrProcBuf,length_dec,ulsch_harq->F,crc_type)) {
 #ifdef PRINT_CRC_CHECK
-      LOG_I(PHY, "Segment %d CRC OK, iterations %d/%d\n",r,no_iteration_ldpc,max_ldpc_iterations);
+      LOG_I(PHY,"Segment %d CRC OK, iterations %d/%d\n",r,no_iteration_ldpc,max_ldpc_iterations);
 #endif
     rdata->decodeIterations = no_iteration_ldpc;
     if (rdata->decodeIterations > p_decoderParms->numMaxIter) rdata->decodeIterations--;
   } else {
 #ifdef PRINT_CRC_CHECK
-      LOG_I(PHY, "CRC NOK\n");
+      LOG_I(PHY,"CRC NOK\n");
 #endif
     rdata->decodeIterations = max_ldpc_iterations + 1;
   }
@@ -394,7 +380,6 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
   uint32_t r_offset;
   uint32_t offset;
   int kc;
-  int Tbslbrm;
   int E;
 
 #ifdef PRINT_CRC_CHECK
@@ -419,13 +404,10 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
     
   phy_vars_gNB->nbDecode = 0;
   harq_process->processedSegments = 0;
-
-  double   Coderate = 0.0;
   
   // ------------------------------------------------------------------
   uint16_t nb_rb          = pusch_pdu->rb_size;
   uint8_t Qm              = pusch_pdu->qam_mod_order;
-  uint16_t R              = pusch_pdu->target_code_rate;
   uint8_t mcs             = pusch_pdu->mcs_index;
   uint8_t n_layers        = pusch_pdu->nrOfLayers;
   // ------------------------------------------------------------------
@@ -454,13 +436,12 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
 
   A   = (harq_process->TBS)<<3;
 
-  LOG_D(NR_PHY, "ULSCH Decoding, harq_pid %d TBS %d G %d mcs %d Nl %d nb_rb %d, Qm %d, n_layers %d, Coderate %d\n", harq_pid, A, G, mcs, n_layers, nb_rb, Qm, n_layers, R);
+  // target_code_rate is in 0.1 units
+  float Coderate = (float) pusch_pdu->target_code_rate / 10240.0f;
+
+  LOG_D(PHY,"ULSCH Decoding, harq_pid %d TBS %d G %d mcs %d Nl %d nb_rb %d, Qm %d, Coderate %f RV %d round %d\n",
+        harq_pid, A, G, mcs, n_layers, nb_rb, Qm, Coderate, pusch_pdu->pusch_data.rv_index, harq_process->round);
 
-  if (R<1024)
-    Coderate = (float) R /(float) 1024;
-  else
-    Coderate = (float) R /(float) 2048;
-  
   if ((A <=292) || ((A<=3824) && (Coderate <= 0.6667)) || Coderate <= 0.25){
     p_decParams->BG = 2;
     kc = 52;
@@ -539,7 +520,6 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
   if (!frame%100)
     printf("K %d C %d Z %d \n", harq_process->K, harq_process->C, harq_process->Z);
 #endif
-  Tbslbrm = nr_compute_tbslbrm(0,nb_rb,n_layers);
 
   p_decParams->Z = harq_process->Z;
 
@@ -549,7 +529,7 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
 
   r_offset = 0;
 
-  uint16_t a_segments = MAX_NUM_NR_ULSCH_SEGMENTS;  //number of segments to be allocated
+  uint16_t a_segments = MAX_NUM_NR_ULSCH_SEGMENTS_PER_LAYER*n_layers;  //number of segments to be allocated
 
   if (nb_rb != 273) {
     a_segments = a_segments*nb_rb;
@@ -590,10 +570,10 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
     rdata->r_offset = r_offset;
     rdata->Kr_bytes = Kr_bytes;
     rdata->rv_index = pusch_pdu->pusch_data.rv_index;
-    rdata->Tbslbrm = Tbslbrm;
     rdata->offset = offset;
     rdata->ulsch = ulsch;
     rdata->ulsch_id = ULSCH_id;
+    rdata->tbslbrm = pusch_pdu->maintenance_parms_v3.tbSizeLbrmBytes;
     pushTpool(phy_vars_gNB->threadPool,req);
     phy_vars_gNB->nbDecode++;
     LOG_D(PHY,"Added a block to decode, in pipe: %d\n",phy_vars_gNB->nbDecode);
diff --git a/openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c b/openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
index 44f4dd8bfc1..4b8315e1ce4 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
+++ b/openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
@@ -302,36 +302,32 @@ void nr_idft(int32_t *z, uint32_t Msc_PUSCH)
 }
 
 
-void nr_ulsch_extract_rbs_single(int32_t **rxdataF,
-                                 NR_gNB_PUSCH *pusch_vars,
-                                 int slot,
-                                 unsigned char symbol,
-                                 uint8_t is_dmrs_symbol,
-                                 nfapi_nr_pusch_pdu_t *pusch_pdu,
-                                 NR_DL_FRAME_PARMS *frame_parms)
-{
+void nr_ulsch_extract_rbs(int32_t **rxdataF,
+                          NR_gNB_PUSCH *pusch_vars,
+                          int slot,
+                          unsigned char symbol,
+                          uint8_t is_dmrs_symbol,
+                          nfapi_nr_pusch_pdu_t *pusch_pdu,
+                          NR_DL_FRAME_PARMS *frame_parms) {
 
   unsigned short start_re, re, nb_re_pusch;
-  unsigned char aarx;
+  unsigned char aarx, aatx;
   uint32_t rxF_ext_index = 0;
   uint32_t ul_ch0_ext_index = 0;
   uint32_t ul_ch0_index = 0;
-  uint8_t k_prime;
-  uint16_t n;
   int16_t *rxF,*rxF_ext;
   int *ul_ch0,*ul_ch0_ext;
-  uint8_t delta = 0;
   int soffset = (slot&3)*frame_parms->symbols_per_slot*frame_parms->ofdm_symbol_size;
-#ifdef DEBUG_RB_EXT
 
+#ifdef DEBUG_RB_EXT
   printf("--------------------symbol = %d-----------------------\n", symbol);
   printf("--------------------ch_ext_index = %d-----------------------\n", symbol*NR_NB_SC_PER_RB * pusch_pdu->rb_size);
-
 #endif
 
-  uint8_t is_dmrs_re;
+  uint8_t is_data_re;
   start_re = (frame_parms->first_carrier_offset + (pusch_pdu->rb_start + pusch_pdu->bwp_start) * NR_NB_SC_PER_RB)%frame_parms->ofdm_symbol_size;
   nb_re_pusch = NR_NB_SC_PER_RB * pusch_pdu->rb_size;
+
 #ifdef __AVX2__
   int nb_re_pusch2 = nb_re_pusch + (nb_re_pusch&7);
 #else
@@ -340,62 +336,64 @@ void nr_ulsch_extract_rbs_single(int32_t **rxdataF,
 
   for (aarx = 0; aarx < frame_parms->nb_antennas_rx; aarx++) {
 
-    rxF       = (int16_t *)&rxdataF[aarx][soffset+(symbol * frame_parms->ofdm_symbol_size)];
-    rxF_ext   = (int16_t *)&pusch_vars->rxdataF_ext[aarx][symbol * nb_re_pusch2]; // [hna] rxdataF_ext isn't contiguous in order to solve an alignment problem ib llr computation in case of mod_order = 4, 6
-
-    ul_ch0     = &pusch_vars->ul_ch_estimates[aarx][pusch_vars->dmrs_symbol*frame_parms->ofdm_symbol_size]; // update channel estimates if new dmrs symbol are available
-
-    ul_ch0_ext = &pusch_vars->ul_ch_estimates_ext[aarx][symbol*nb_re_pusch2];
-
-    n = 0;
-    k_prime = 0;
-    rxF_ext_index = 0;
-    ul_ch0_ext_index = 0;
-    ul_ch0_index = 0;
-
+    rxF = (int16_t *)&rxdataF[aarx][soffset+(symbol * frame_parms->ofdm_symbol_size)];
+    rxF_ext = (int16_t *)&pusch_vars->rxdataF_ext[aarx][symbol * nb_re_pusch2]; // [hna] rxdataF_ext isn't contiguous in order to solve an alignment problem ib llr computation in case of mod_order = 4, 6
+    
     if (is_dmrs_symbol == 0) {
-      //
-      //rxF[ ((start_re + re)*2)      % (frame_parms->ofdm_symbol_size*2)]);
       if (start_re + nb_re_pusch <= frame_parms->ofdm_symbol_size) {
-        memcpy1((void*)rxF_ext,
-                (void*)&rxF[start_re*2],
-                nb_re_pusch*sizeof(int32_t));
+        memcpy1((void*)rxF_ext, (void*)&rxF[start_re*2], nb_re_pusch*sizeof(int32_t));
       } else {
-	int neg_length = frame_parms->ofdm_symbol_size-start_re;
-	int pos_length = nb_re_pusch-neg_length;
-
-	memcpy1((void*)rxF_ext,(void*)&rxF[start_re*2],neg_length*sizeof(int32_t));
-	memcpy1((void*)&rxF_ext[2*neg_length],(void*)rxF,pos_length*sizeof(int32_t));
+        int neg_length = frame_parms->ofdm_symbol_size-start_re;
+        int pos_length = nb_re_pusch-neg_length;
+        memcpy1((void*)rxF_ext,(void*)&rxF[start_re*2],neg_length*sizeof(int32_t));
+        memcpy1((void*)&rxF_ext[2*neg_length],(void*)rxF,pos_length*sizeof(int32_t));
       }
-      memcpy1((void*)ul_ch0_ext,(void*)ul_ch0,nb_re_pusch*sizeof(int32_t));
-    }
-    else {
-      for (re = 0; re < nb_re_pusch; re++) {
 
-        is_dmrs_re = (re == get_dmrs_freq_idx_ul(n, k_prime, delta, pusch_pdu->dmrs_config_type));
+      for (aatx = 0; aatx < pusch_pdu->nrOfLayers; aatx++) {
+        ul_ch0 = &pusch_vars->ul_ch_estimates[aatx*frame_parms->nb_antennas_rx+aarx][pusch_vars->dmrs_symbol*frame_parms->ofdm_symbol_size]; // update channel estimates if new dmrs symbol are available
+        ul_ch0_ext = &pusch_vars->ul_ch_estimates_ext[aatx*frame_parms->nb_antennas_rx+aarx][symbol*nb_re_pusch2];
+        memcpy1((void*)ul_ch0_ext,(void*)ul_ch0,nb_re_pusch*sizeof(int32_t));
+      }
 
-#ifdef DEBUG_RB_EXT
-        printf("re = %d, kprime %d, n %d, is_dmrs_symbol = %d, symbol = %d\n", re, k_prime, n, is_dmrs_symbol, symbol);
-#endif
+    } else {
 
-        /* save only data and respective channel estimates */
-        if (is_dmrs_re == 0) {
-          rxF_ext[rxF_ext_index]     = (rxF[ ((start_re + re)*2)      % (frame_parms->ofdm_symbol_size*2)]);
-          rxF_ext[rxF_ext_index + 1] = (rxF[(((start_re + re)*2) + 1) % (frame_parms->ofdm_symbol_size*2)]);
-          ul_ch0_ext[ul_ch0_ext_index] = ul_ch0[ul_ch0_index];
+      for (aatx = 0; aatx < pusch_pdu->nrOfLayers; aatx++) {
+        ul_ch0 = &pusch_vars->ul_ch_estimates[aatx*frame_parms->nb_antennas_rx+aarx][pusch_vars->dmrs_symbol*frame_parms->ofdm_symbol_size]; // update channel estimates if new dmrs symbol are available
+        ul_ch0_ext = &pusch_vars->ul_ch_estimates_ext[aatx*frame_parms->nb_antennas_rx+aarx][symbol*nb_re_pusch2];
+
+        rxF_ext_index = 0;
+        ul_ch0_ext_index = 0;
+        ul_ch0_index = 0;
+        for (re = 0; re < nb_re_pusch; re++) {
+          uint16_t k = start_re + re;
+          is_data_re = allowed_xlsch_re_in_dmrs_symbol(k, start_re, frame_parms->ofdm_symbol_size, pusch_pdu->num_dmrs_cdm_grps_no_data, pusch_pdu->dmrs_config_type);
+          if (++k >= frame_parms->ofdm_symbol_size) {
+            k -= frame_parms->ofdm_symbol_size;
+          }
 
-#ifdef DEBUG_RB_EXT
-          printf("dmrs symb %d: rxF_ext[%d] = (%d,%d), ul_ch0_ext[%d] = (%d,%d)\n",
+          #ifdef DEBUG_RB_EXT
+          printf("re = %d, is_dmrs_symbol = %d, symbol = %d\n", re, is_dmrs_symbol, symbol);
+          #endif
+
+          // save only data and respective channel estimates
+          if (is_data_re == 1) {
+            if (aatx == 0) {
+              rxF_ext[rxF_ext_index]     = (rxF[ ((start_re + re)*2)      % (frame_parms->ofdm_symbol_size*2)]);
+              rxF_ext[rxF_ext_index + 1] = (rxF[(((start_re + re)*2) + 1) % (frame_parms->ofdm_symbol_size*2)]);
+              rxF_ext_index +=2;
+            }
+          
+            ul_ch0_ext[ul_ch0_ext_index] = ul_ch0[ul_ch0_index];
+            ul_ch0_ext_index++;
+
+            #ifdef DEBUG_RB_EXT
+            printf("dmrs symb %d: rxF_ext[%d] = (%d,%d), ul_ch0_ext[%d] = (%d,%d)\n",
                  is_dmrs_symbol,rxF_ext_index>>1, rxF_ext[rxF_ext_index],rxF_ext[rxF_ext_index+1],
                  ul_ch0_ext_index,  ((int16_t*)&ul_ch0_ext[ul_ch0_ext_index])[0],  ((int16_t*)&ul_ch0_ext[ul_ch0_ext_index])[1]);
-#endif
-          ul_ch0_ext_index++;
-          rxF_ext_index +=2;
-        } else {
-          n += k_prime;
-          k_prime ^= 1;
+            #endif          
+          } 
+          ul_ch0_index++;
         }
-        ul_ch0_index++;
       }
     }
   }
@@ -406,16 +404,19 @@ void nr_ulsch_scale_channel(int **ul_ch_estimates_ext,
                             NR_gNB_ULSCH_t *ulsch_gNB,
                             uint8_t symbol,
                             uint8_t is_dmrs_symbol,
-                            unsigned short nb_rb,
-                            pusch_dmrs_type_t pusch_dmrs_type)
+                            uint32_t len,
+                            uint8_t nrOfLayers,
+                            unsigned short nb_rb)
 {
 
 #if defined(__x86_64__)||defined(__i386__)
 
   short rb, ch_amp;
-  unsigned char aarx;
+  unsigned char aarx,aatx;
   __m128i *ul_ch128, ch_amp128;
 
+  uint32_t nb_rb_0 = len/12 + ((len%12)?1:0);
+
   // Determine scaling amplitude based the symbol
 
   ch_amp = 1024*8; //((pilots) ? (ulsch_gNB->sqrt_rho_b) : (ulsch_gNB->sqrt_rho_a));
@@ -431,35 +432,22 @@ void nr_ulsch_scale_channel(int **ul_ch_estimates_ext,
   int off = 0;
 #endif
 
-  for (aarx=0; aarx < frame_parms->nb_antennas_rx; aarx++) {
-
-      ul_ch128 = (__m128i *)&ul_ch_estimates_ext[aarx][symbol*(off+(nb_rb*NR_NB_SC_PER_RB))];
-
-      if (is_dmrs_symbol==1){
-        if (pusch_dmrs_type == pusch_dmrs_type1)
-          nb_rb = nb_rb>>1;
-        else
-          nb_rb = (2*nb_rb)/3;
-      }
-
-      for (rb=0;rb<nb_rb;rb++) {
-
+  for (aatx = 0; aatx < nrOfLayers; aatx++) {
+    for (aarx=0; aarx < frame_parms->nb_antennas_rx; aarx++) {
+      ul_ch128 = (__m128i *)&ul_ch_estimates_ext[aatx*frame_parms->nb_antennas_rx+aarx][symbol*(off+(nb_rb*NR_NB_SC_PER_RB))];
+      for (rb=0;rb < nb_rb_0;rb++) {
         ul_ch128[0] = _mm_mulhi_epi16(ul_ch128[0], ch_amp128);
         ul_ch128[0] = _mm_slli_epi16(ul_ch128[0], 3);
 
         ul_ch128[1] = _mm_mulhi_epi16(ul_ch128[1], ch_amp128);
         ul_ch128[1] = _mm_slli_epi16(ul_ch128[1], 3);
 
-        if (is_dmrs_symbol) {
-          ul_ch128+=2;
-        } else {
-          ul_ch128[2] = _mm_mulhi_epi16(ul_ch128[2], ch_amp128);
-          ul_ch128[2] = _mm_slli_epi16(ul_ch128[2], 3);
-          ul_ch128+=3;
-
-        }
+        ul_ch128[2] = _mm_mulhi_epi16(ul_ch128[2], ch_amp128);
+        ul_ch128[2] = _mm_slli_epi16(ul_ch128[2], 3);
+        ul_ch128+=3;
       }
     }
+  }
 #endif
 }
 
@@ -481,6 +469,8 @@ void nr_ulsch_channel_level(int **ul_ch_estimates_ext,
 
   int16_t x = factor2(len);
   int16_t y = (len)>>x;
+  
+  uint32_t nb_rb_0 = len/12 + ((len%12)?1:0);
 
 #ifdef __AVX2__
   int off = ((nb_rb&1) == 1)? 4:0;
@@ -488,14 +478,14 @@ void nr_ulsch_channel_level(int **ul_ch_estimates_ext,
   int off = 0;
 #endif
 
-  for (aatx = 0; aatx < nrOfLayers; aatx++)
+  for (aatx = 0; aatx < nrOfLayers; aatx++) {
     for (aarx = 0; aarx < frame_parms->nb_antennas_rx; aarx++) {
       //clear average level
       avg128U = _mm_setzero_si128();
 
       ul_ch128=(__m128i *)&ul_ch_estimates_ext[aatx*frame_parms->nb_antennas_rx+aarx][symbol*(off+(nb_rb*12))];
 
-      for (rb = 0; rb < len/12; rb++) {
+      for (rb = 0; rb < nb_rb_0; rb++) {
         avg128U = _mm_add_epi32(avg128U, _mm_srai_epi32(_mm_madd_epi16(ul_ch128[0], ul_ch128[0]), x));
         avg128U = _mm_add_epi32(avg128U, _mm_srai_epi32(_mm_madd_epi16(ul_ch128[1], ul_ch128[1]), x));
         avg128U = _mm_add_epi32(avg128U, _mm_srai_epi32(_mm_madd_epi16(ul_ch128[2], ul_ch128[2]), x));
@@ -506,8 +496,8 @@ void nr_ulsch_channel_level(int **ul_ch_estimates_ext,
                                                     ((int32_t*)&avg128U)[1] +
                                                     ((int32_t*)&avg128U)[2] +
                                                     ((int32_t*)&avg128U)[3]) / y;
-
     }
+  }
 
   _mm_empty();
   _m_empty();
@@ -520,7 +510,7 @@ void nr_ulsch_channel_level(int **ul_ch_estimates_ext,
   int16x4_t *ul_ch128;
 
   symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
-
+  uint32_t nb_rb_0 = len/12 + ((len%12)?1:0);
   for (aatx=0; aatx<nrOfLayers; aatx++) {
     for (aarx=0; aarx<frame_parms->nb_antennas_rx; aarx++) {
       //clear average level
@@ -529,7 +519,7 @@ void nr_ulsch_channel_level(int **ul_ch_estimates_ext,
 
       ul_ch128 = (int16x4_t *)&ul_ch_estimates_ext[aatx*frame_parms->nb_antennas_rx+aarx][symbol*frame_parms->N_RB_UL*12];
 
-      for (rb = 0; rb < nb_rb; rb++) {
+      for (rb = 0; rb < nb_rb_0; rb++) {
         //  printf("rb %d : ",rb);
         //  print_shorts("ch",&ul_ch128[0]);
         avg128U = vqaddq_s32(avg128U, vmull_s16(ul_ch128[0], ul_ch128[0]));
@@ -568,14 +558,20 @@ void nr_ulsch_channel_level(int **ul_ch_estimates_ext,
 #endif
 }
 
+
+
+//==============================================================================================
+// Pre-processing for LLR computation
+//==============================================================================================
 void nr_ulsch_channel_compensation(int **rxdataF_ext,
                                    int **ul_ch_estimates_ext,
                                    int **ul_ch_mag,
                                    int **ul_ch_magb,
                                    int **rxdataF_comp,
-                                   int **rho,
+                                   int ***rho,
                                    NR_DL_FRAME_PARMS *frame_parms,
                                    unsigned char symbol,
+                                   int length,
                                    uint8_t is_dmrs_symbol,
                                    unsigned char mod_order,
                                    uint8_t  nrOfLayers,
@@ -591,22 +587,21 @@ void nr_ulsch_channel_compensation(int **rxdataF_ext,
 #ifdef DEBUG_CH_COMP
   int16_t *rxF, *ul_ch;
   int prnt_idx;
-
-  for (int ant=0; ant<frame_parms->nb_antennas_rx; ant++) {
-    rxF   = (int16_t *)&rxdataF_ext[ant][symbol*(off+(nb_rb*12))];
-    ul_ch = (int16_t *)&ul_ch_estimates_ext[ant][symbol*(off+(nb_rb*12))];
-
-    printf("--------------------symbol = %d, mod_order = %d, output_shift = %d-----------------------\n", symbol, mod_order, output_shift);
-    printf("----------------Before compensation------------------\n");
-
-    for (prnt_idx=0;prnt_idx<12*5*2;prnt_idx+=2){
-
-      printf("rxF[%d] = (%d,%d)\n", prnt_idx>>1, rxF[prnt_idx],rxF[prnt_idx+1]);
-      printf("ul_ch[%d] = (%d,%d)\n", prnt_idx>>1, ul_ch[prnt_idx],ul_ch[prnt_idx+1]);
-
+  for (int nl=0; nl<nrOfLayers; nl++) {
+    for (int aarx = 0; aarx < frame_parms->nb_antennas_rx; aarx++) {
+      rxF = (int16_t *) &rxdataF_ext[aarx][symbol * (off + (nb_rb * 12))];
+      ul_ch = (int16_t *) &ul_ch_estimates_ext[nl * frame_parms->nb_antennas_rx + aarx][symbol * (off + (nb_rb * 12))];
+
+      printf("--------symbol = %d, mod_order = %d, output_shift = %d, layer %i, antenna rx = %d -----------\n",
+             symbol, mod_order, output_shift, nl, aarx);
+      printf("----------------Before compensation------------------\n");
+
+      for (prnt_idx = 0; prnt_idx < 12 * 5 * 2; prnt_idx += 2) {
+        printf("rxF[%d] = (%d,%d)\n", prnt_idx >> 1, rxF[prnt_idx], rxF[prnt_idx + 1]);
+        printf("ul_ch[%d] = (%d,%d)\n", prnt_idx >> 1, ul_ch[prnt_idx], ul_ch[prnt_idx + 1]);
+      }
     }
   }
-
 #endif
 
 #ifdef DEBUG_CH_MAG
@@ -637,20 +632,20 @@ void nr_ulsch_channel_compensation(int **rxdataF_ext,
   __m128i mmtmpD0,mmtmpD1,mmtmpD2,mmtmpD3,QAM_amp128={0},QAM_amp128b={0};
   QAM_amp128b = _mm_setzero_si128();
 
+  uint32_t nb_rb_0 = length/12 + ((length%12)?1:0);
   for (aatx=0; aatx<nrOfLayers; aatx++) {
-
     if (mod_order == 4) {
       QAM_amp128 = _mm_set1_epi16(QAM16_n1);  // 2/sqrt(10)
       QAM_amp128b = _mm_setzero_si128();
-    } else if (mod_order == 6) {
+    } 
+    else if (mod_order == 6) {
       QAM_amp128  = _mm_set1_epi16(QAM64_n1); //
       QAM_amp128b = _mm_set1_epi16(QAM64_n2);
     }
 
     //    printf("comp: rxdataF_comp %p, symbol %d\n",rxdataF_comp[0],symbol);
 
-    for (aarx=0; aarx<frame_parms->nb_antennas_rx; aarx++) {
-
+    for (aarx=0; aarx<frame_parms->nb_antennas_rx; aarx++)  {
       ul_ch128          = (__m128i *)&ul_ch_estimates_ext[aatx*frame_parms->nb_antennas_rx+aarx][symbol*(off+(nb_rb*12))];
       ul_ch_mag128      = (__m128i *)&ul_ch_mag[aatx*frame_parms->nb_antennas_rx+aarx][symbol*(off+(nb_rb*12))];
       ul_ch_mag128b     = (__m128i *)&ul_ch_magb[aatx*frame_parms->nb_antennas_rx+aarx][symbol*(off+(nb_rb*12))];
@@ -658,7 +653,7 @@ void nr_ulsch_channel_compensation(int **rxdataF_ext,
       rxdataF_comp128   = (__m128i *)&rxdataF_comp[aatx*frame_parms->nb_antennas_rx+aarx][symbol*(off+(nb_rb*12))];
 
 
-      for (rb=0; rb<nb_rb; rb++) {
+      for (rb=0; rb<nb_rb_0; rb++) {
         if (mod_order>2) {
           // get channel amplitude if not QPSK
 
@@ -679,6 +674,8 @@ void nr_ulsch_channel_compensation(int **rxdataF_ext,
           ul_ch_mag128[0] = _mm_mulhi_epi16(ul_ch_mag128[0],QAM_amp128);
           ul_ch_mag128[0] = _mm_slli_epi16(ul_ch_mag128[0],1);
 
+          ul_ch_mag128b[0] = _mm_mulhi_epi16(ul_ch_mag128b[0],QAM_amp128b);
+          ul_ch_mag128b[0] = _mm_slli_epi16(ul_ch_mag128b[0],1);
           // print_ints("ch: = ",(int32_t*)&mmtmpD0);
           // print_shorts("QAM_amp:",(int16_t*)&QAM_amp128);
           // print_shorts("mag:",(int16_t*)&ul_ch_mag128[0]);
@@ -687,30 +684,24 @@ void nr_ulsch_channel_compensation(int **rxdataF_ext,
           ul_ch_mag128b[1] = ul_ch_mag128[1];
           ul_ch_mag128[1] = _mm_mulhi_epi16(ul_ch_mag128[1],QAM_amp128);
           ul_ch_mag128[1] = _mm_slli_epi16(ul_ch_mag128[1],1);
+          
+          ul_ch_mag128b[1] = _mm_mulhi_epi16(ul_ch_mag128b[1],QAM_amp128b);
+          ul_ch_mag128b[1] = _mm_slli_epi16(ul_ch_mag128b[1],1);
 
-          if (is_dmrs_symbol==0) {
-            mmtmpD0 = _mm_madd_epi16(ul_ch128[2],ul_ch128[2]);
-            mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift);
-            mmtmpD1 = _mm_packs_epi32(mmtmpD0,mmtmpD0);
+          mmtmpD0 = _mm_madd_epi16(ul_ch128[2],ul_ch128[2]);
+          mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift);
+          mmtmpD1 = _mm_packs_epi32(mmtmpD0,mmtmpD0);
 
-            ul_ch_mag128[2] = _mm_unpacklo_epi16(mmtmpD1,mmtmpD1);
-            ul_ch_mag128b[2] = ul_ch_mag128[2];
+          ul_ch_mag128[2] = _mm_unpacklo_epi16(mmtmpD1,mmtmpD1);
+          ul_ch_mag128b[2] = ul_ch_mag128[2];
 
-            ul_ch_mag128[2] = _mm_mulhi_epi16(ul_ch_mag128[2],QAM_amp128);
-            ul_ch_mag128[2] = _mm_slli_epi16(ul_ch_mag128[2],1);
-          }
+          ul_ch_mag128[2] = _mm_mulhi_epi16(ul_ch_mag128[2],QAM_amp128);
+          ul_ch_mag128[2] = _mm_slli_epi16(ul_ch_mag128[2],1);
 
-          ul_ch_mag128b[0] = _mm_mulhi_epi16(ul_ch_mag128b[0],QAM_amp128b);
-          ul_ch_mag128b[0] = _mm_slli_epi16(ul_ch_mag128b[0],1);
 
+          ul_ch_mag128b[2] = _mm_mulhi_epi16(ul_ch_mag128b[2],QAM_amp128b);
+          ul_ch_mag128b[2] = _mm_slli_epi16(ul_ch_mag128b[2],1);
 
-          ul_ch_mag128b[1] = _mm_mulhi_epi16(ul_ch_mag128b[1],QAM_amp128b);
-          ul_ch_mag128b[1] = _mm_slli_epi16(ul_ch_mag128b[1],1);
-
-          if (is_dmrs_symbol==0) {
-            ul_ch_mag128b[2] = _mm_mulhi_epi16(ul_ch_mag128b[2],QAM_amp128b);
-            ul_ch_mag128b[2] = _mm_slli_epi16(ul_ch_mag128b[2],1);
-          }
         }
 
         // multiply by conjugated channel
@@ -755,117 +746,153 @@ void nr_ulsch_channel_compensation(int **rxdataF_ext,
         //  print_shorts("ch:",ul_ch128+1);
         //  print_shorts("pack:",rxdataF_comp128+1);
 
-        if (is_dmrs_symbol==0) {
-          // multiply by conjugated channel
-          mmtmpD0 = _mm_madd_epi16(ul_ch128[2],rxdataF128[2]);
-          // mmtmpD0 contains real part of 4 consecutive outputs (32-bit)
-          mmtmpD1 = _mm_shufflelo_epi16(ul_ch128[2],_MM_SHUFFLE(2,3,0,1));
-          mmtmpD1 = _mm_shufflehi_epi16(mmtmpD1,_MM_SHUFFLE(2,3,0,1));
-          mmtmpD1 = _mm_sign_epi16(mmtmpD1,*(__m128i*)conjugate);
-          mmtmpD1 = _mm_madd_epi16(mmtmpD1,rxdataF128[2]);
-          // mmtmpD1 contains imag part of 4 consecutive outputs (32-bit)
-          mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift);
-          mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift);
-          mmtmpD2 = _mm_unpacklo_epi32(mmtmpD0,mmtmpD1);
-          mmtmpD3 = _mm_unpackhi_epi32(mmtmpD0,mmtmpD1);
-
-          rxdataF_comp128[2] = _mm_packs_epi32(mmtmpD2,mmtmpD3);
-          //  print_shorts("rx:",rxdataF128+2);
-          //  print_shorts("ch:",ul_ch128+2);
-          //        print_shorts("pack:",rxdataF_comp128+2);
-
-          ul_ch128+=3;
-          ul_ch_mag128+=3;
-          ul_ch_mag128b+=3;
-          rxdataF128+=3;
-          rxdataF_comp128+=3;
-        } else { // we have a smaller PUSCH in symbols with pilots so skip last group of 4 REs and increment less
-          ul_ch128+=2;
-          ul_ch_mag128+=2;
-          ul_ch_mag128b+=2;
-          rxdataF128+=2;
-          rxdataF_comp128+=2;
-        }
-
-      }
-    }
-  }
-
-  if (rho) {
-
-    for (aarx=0; aarx<frame_parms->nb_antennas_rx; aarx++) {
-      rho128        = (__m128i *)&rho[aarx][symbol*frame_parms->N_RB_UL*12];
-      ul_ch128      = (__m128i *)&ul_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_UL*12];
-      ul_ch128_2    = (__m128i *)&ul_ch_estimates_ext[2+aarx][symbol*frame_parms->N_RB_UL*12];
-
-      for (rb=0; rb<nb_rb; rb++) {
         // multiply by conjugated channel
-        mmtmpD0 = _mm_madd_epi16(ul_ch128[0],ul_ch128_2[0]);
-        //  print_ints("re",&mmtmpD0);
-
-        // mmtmpD0 contains real part of 4 consecutive outputs (32-bit)
-        mmtmpD1 = _mm_shufflelo_epi16(ul_ch128[0],_MM_SHUFFLE(2,3,0,1));
-        mmtmpD1 = _mm_shufflehi_epi16(mmtmpD1,_MM_SHUFFLE(2,3,0,1));
-        mmtmpD1 = _mm_sign_epi16(mmtmpD1,*(__m128i*)&conjugate[0]);
-        //  print_ints("im",&mmtmpD1);
-        mmtmpD1 = _mm_madd_epi16(mmtmpD1,ul_ch128_2[0]);
-        // mmtmpD1 contains imag part of 4 consecutive outputs (32-bit)
-        mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift);
-        //  print_ints("re(shift)",&mmtmpD0);
-        mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift);
-        //  print_ints("im(shift)",&mmtmpD1);
-        mmtmpD2 = _mm_unpacklo_epi32(mmtmpD0,mmtmpD1);
-        mmtmpD3 = _mm_unpackhi_epi32(mmtmpD0,mmtmpD1);
-        //        print_ints("c0",&mmtmpD2);
-        //  print_ints("c1",&mmtmpD3);
-        rho128[0] = _mm_packs_epi32(mmtmpD2,mmtmpD3);
-
-        //print_shorts("rx:",ul_ch128_2);
-        //print_shorts("ch:",ul_ch128);
-        //print_shorts("pack:",rho128);
-
-        // multiply by conjugated channel
-        mmtmpD0 = _mm_madd_epi16(ul_ch128[1],ul_ch128_2[1]);
-        // mmtmpD0 contains real part of 4 consecutive outputs (32-bit)
-        mmtmpD1 = _mm_shufflelo_epi16(ul_ch128[1],_MM_SHUFFLE(2,3,0,1));
-        mmtmpD1 = _mm_shufflehi_epi16(mmtmpD1,_MM_SHUFFLE(2,3,0,1));
-        mmtmpD1 = _mm_sign_epi16(mmtmpD1,*(__m128i*)conjugate);
-        mmtmpD1 = _mm_madd_epi16(mmtmpD1,ul_ch128_2[1]);
-        // mmtmpD1 contains imag part of 4 consecutive outputs (32-bit)
-        mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift);
-        mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift);
-        mmtmpD2 = _mm_unpacklo_epi32(mmtmpD0,mmtmpD1);
-        mmtmpD3 = _mm_unpackhi_epi32(mmtmpD0,mmtmpD1);
-
-
-        rho128[1] =_mm_packs_epi32(mmtmpD2,mmtmpD3);
-        //print_shorts("rx:",ul_ch128_2+1);
-        //print_shorts("ch:",ul_ch128+1);
-        //print_shorts("pack:",rho128+1);
-        // multiply by conjugated channel
-        mmtmpD0 = _mm_madd_epi16(ul_ch128[2],ul_ch128_2[2]);
+        mmtmpD0 = _mm_madd_epi16(ul_ch128[2],rxdataF128[2]);
         // mmtmpD0 contains real part of 4 consecutive outputs (32-bit)
         mmtmpD1 = _mm_shufflelo_epi16(ul_ch128[2],_MM_SHUFFLE(2,3,0,1));
         mmtmpD1 = _mm_shufflehi_epi16(mmtmpD1,_MM_SHUFFLE(2,3,0,1));
         mmtmpD1 = _mm_sign_epi16(mmtmpD1,*(__m128i*)conjugate);
-        mmtmpD1 = _mm_madd_epi16(mmtmpD1,ul_ch128_2[2]);
+        mmtmpD1 = _mm_madd_epi16(mmtmpD1,rxdataF128[2]);
         // mmtmpD1 contains imag part of 4 consecutive outputs (32-bit)
         mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift);
         mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift);
         mmtmpD2 = _mm_unpacklo_epi32(mmtmpD0,mmtmpD1);
         mmtmpD3 = _mm_unpackhi_epi32(mmtmpD0,mmtmpD1);
 
-        rho128[2] = _mm_packs_epi32(mmtmpD2,mmtmpD3);
-        //print_shorts("rx:",ul_ch128_2+2);
+        rxdataF_comp128[2] = _mm_packs_epi32(mmtmpD2,mmtmpD3);
+        //print_shorts("rx:",rxdataF128+2);
         //print_shorts("ch:",ul_ch128+2);
-        //print_shorts("pack:",rho128+2);
+        //print_shorts("pack:",rxdataF_comp128+2);
 
         ul_ch128+=3;
-        ul_ch128_2+=3;
-        rho128+=3;
-
+        ul_ch_mag128+=3;
+        ul_ch_mag128b+=3;
+        rxdataF128+=3;
+        rxdataF_comp128+=3;
       }
+    }
+  }
 
+  if (rho) {
+    //we compute the Tx correlation matrix for each Rx antenna
+    //As an example the 2x2 MIMO case requires
+    //rho[aarx][nb_aatx*nb_aatx] = [cov(H_aarx_0,H_aarx_0) cov(H_aarx_0,H_aarx_1)
+    //                              cov(H_aarx_1,H_aarx_0) cov(H_aarx_1,H_aarx_1)], aarx=0,...,nb_antennas_rx-1
+
+    int avg_rho_re[frame_parms->nb_antennas_rx][nrOfLayers*nrOfLayers];
+    int avg_rho_im[frame_parms->nb_antennas_rx][nrOfLayers*nrOfLayers];
+
+    for (aarx=0; aarx < frame_parms->nb_antennas_rx; aarx++) {
+      for (aatx=0; aatx < nrOfLayers; aatx++) {
+        for (int atx=0; atx< nrOfLayers; atx++) {
+
+          avg_rho_re[aarx][aatx*nrOfLayers+atx] = 0;
+          avg_rho_im[aarx][aatx*nrOfLayers+atx] = 0;
+          rho128        = (__m128i *)&rho[aarx][aatx*nrOfLayers+atx][symbol*(off+(nb_rb*12))];
+          ul_ch128      = (__m128i *)&ul_ch_estimates_ext[aatx*frame_parms->nb_antennas_rx+aarx][symbol*(off+(nb_rb*12))];
+          ul_ch128_2    = (__m128i *)&ul_ch_estimates_ext[atx*frame_parms->nb_antennas_rx+aarx][symbol*(off+(nb_rb*12))];
+
+          for (rb=0; rb<nb_rb_0; rb++) {
+            // multiply by conjugated channel
+            mmtmpD0 = _mm_madd_epi16(ul_ch128[0],ul_ch128_2[0]);
+            //  print_ints("re",&mmtmpD0);
+
+            // mmtmpD0 contains real part of 4 consecutive outputs (32-bit)
+            mmtmpD1 = _mm_shufflelo_epi16(ul_ch128[0],_MM_SHUFFLE(2,3,0,1));
+            mmtmpD1 = _mm_shufflehi_epi16(mmtmpD1,_MM_SHUFFLE(2,3,0,1));
+            mmtmpD1 = _mm_sign_epi16(mmtmpD1,*(__m128i*)&conjugate[0]);
+            //  print_ints("im",&mmtmpD1);
+            mmtmpD1 = _mm_madd_epi16(mmtmpD1,ul_ch128_2[0]);
+            // mmtmpD1 contains imag part of 4 consecutive outputs (32-bit)
+            mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift);
+            //  print_ints("re(shift)",&mmtmpD0);
+            mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift);
+            //  print_ints("im(shift)",&mmtmpD1);
+            mmtmpD2 = _mm_unpacklo_epi32(mmtmpD0,mmtmpD1);
+            mmtmpD3 = _mm_unpackhi_epi32(mmtmpD0,mmtmpD1);
+            //        print_ints("c0",&mmtmpD2);
+            //  print_ints("c1",&mmtmpD3);
+            rho128[0] = _mm_packs_epi32(mmtmpD2,mmtmpD3);
+
+            //print_shorts("rx:",ul_ch128_2);
+            //print_shorts("ch:",ul_ch128);
+            //print_shorts("pack:",rho128);
+
+            avg_rho_re[aarx][aatx*nrOfLayers+atx] +=(((int16_t*)&rho128[0])[0]+
+              ((int16_t*)&rho128[0])[2] +
+              ((int16_t*)&rho128[0])[4] +
+              ((int16_t*)&rho128[0])[6])/16;//
+
+            avg_rho_im[aarx][aatx*nrOfLayers+atx] +=(((int16_t*)&rho128[0])[1]+
+              ((int16_t*)&rho128[0])[3] +
+              ((int16_t*)&rho128[0])[5] +
+              ((int16_t*)&rho128[0])[7])/16;//
+            // multiply by conjugated channel
+            mmtmpD0 = _mm_madd_epi16(ul_ch128[1],ul_ch128_2[1]);
+            // mmtmpD0 contains real part of 4 consecutive outputs (32-bit)
+            mmtmpD1 = _mm_shufflelo_epi16(ul_ch128[1],_MM_SHUFFLE(2,3,0,1));
+            mmtmpD1 = _mm_shufflehi_epi16(mmtmpD1,_MM_SHUFFLE(2,3,0,1));
+            mmtmpD1 = _mm_sign_epi16(mmtmpD1,*(__m128i*)conjugate);
+            mmtmpD1 = _mm_madd_epi16(mmtmpD1,ul_ch128_2[1]);
+            // mmtmpD1 contains imag part of 4 consecutive outputs (32-bit)
+            mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift);
+            mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift);
+            mmtmpD2 = _mm_unpacklo_epi32(mmtmpD0,mmtmpD1);
+            mmtmpD3 = _mm_unpackhi_epi32(mmtmpD0,mmtmpD1);
+            rho128[1] =_mm_packs_epi32(mmtmpD2,mmtmpD3);
+            //print_shorts("rx:",ul_ch128_2+1);
+            //print_shorts("ch:",ul_ch128+1);
+            //print_shorts("pack:",rho128+1);
+
+            // multiply by conjugated channel
+            avg_rho_re[aarx][aatx*nrOfLayers+atx] +=(((int16_t*)&rho128[1])[0]+
+              ((int16_t*)&rho128[1])[2] +
+              ((int16_t*)&rho128[1])[4] +
+              ((int16_t*)&rho128[1])[6])/16;
+
+            avg_rho_im[aarx][aatx*nrOfLayers+atx] +=(((int16_t*)&rho128[1])[1]+
+              ((int16_t*)&rho128[1])[3] +
+              ((int16_t*)&rho128[1])[5] +
+              ((int16_t*)&rho128[1])[7])/16;
+
+            mmtmpD0 = _mm_madd_epi16(ul_ch128[2],ul_ch128_2[2]);
+            // mmtmpD0 contains real part of 4 consecutive outputs (32-bit)
+            mmtmpD1 = _mm_shufflelo_epi16(ul_ch128[2],_MM_SHUFFLE(2,3,0,1));
+            mmtmpD1 = _mm_shufflehi_epi16(mmtmpD1,_MM_SHUFFLE(2,3,0,1));
+            mmtmpD1 = _mm_sign_epi16(mmtmpD1,*(__m128i*)conjugate);
+            mmtmpD1 = _mm_madd_epi16(mmtmpD1,ul_ch128_2[2]);
+            // mmtmpD1 contains imag part of 4 consecutive outputs (32-bit)
+            mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift);
+            mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift);
+            mmtmpD2 = _mm_unpacklo_epi32(mmtmpD0,mmtmpD1);
+            mmtmpD3 = _mm_unpackhi_epi32(mmtmpD0,mmtmpD1);
+
+            rho128[2] = _mm_packs_epi32(mmtmpD2,mmtmpD3);
+            //print_shorts("rx:",ul_ch128_2+2);
+            //print_shorts("ch:",ul_ch128+2);
+            //print_shorts("pack:",rho128+2);
+            avg_rho_re[aarx][aatx*nrOfLayers+atx] +=(((int16_t*)&rho128[2])[0]+
+              ((int16_t*)&rho128[2])[2] +
+              ((int16_t*)&rho128[2])[4] +
+              ((int16_t*)&rho128[2])[6])/16;
+
+            avg_rho_im[aarx][aatx*nrOfLayers+atx] +=(((int16_t*)&rho128[2])[1]+
+              ((int16_t*)&rho128[2])[3] +
+              ((int16_t*)&rho128[2])[5] +
+              ((int16_t*)&rho128[2])[7])/16;
+
+            ul_ch128+=3;
+            ul_ch128_2+=3;
+            rho128+=3;
+          }
+          if (is_dmrs_symbol==1) {
+            //measurements->rx_correlation[0][0][aarx] = signal_energy(&rho[aarx][aatx*nb_aatx+atx][symbol*nb_rb*12],rb*12);
+            avg_rho_re[aarx][aatx*nrOfLayers+atx] = 16*avg_rho_re[aarx][aatx*nrOfLayers+atx]/(nb_rb*12);
+            avg_rho_im[aarx][aatx*nrOfLayers+atx] = 16*avg_rho_im[aarx][aatx*nrOfLayers+atx]/(nb_rb*12);
+            //printf("rho[rx]%d tx%d tx%d = Re: %d Im: %d\n",aarx, aatx,atx, avg_rho_re[aarx][aatx*nb_aatx+atx], avg_rho_im[aarx][aatx*nb_aatx+atx]);
+          }
+        }
+      }
     }
   }
 
@@ -1070,19 +1097,17 @@ void nr_ulsch_channel_compensation(int **rxdataF_ext,
 
 
 #ifdef DEBUG_CH_COMP
+  for (int nl2=0; nl2<nrOfLayers; nl2++) {
+    for (int aarx2=0; aarx2<frame_parms->nb_antennas_rx; aarx2++) {
+      rxF   = (int16_t *)&rxdataF_comp[nl2*frame_parms->nb_antennas_rx+aarx2][(symbol*(off+(nb_rb*12)))];
 
-  for (int ant=0; ant<frame_parms->nb_antennas_rx; ant++) {
-    rxF   = (int16_t *)&rxdataF_comp[ant][(symbol*(off+(nb_rb*12)))];
-
-    printf("----------------After compansation------------------\n");
-
-    for (prnt_idx=0;prnt_idx<12*5*2;prnt_idx+=2){
-
-      printf("rxF[%d] = (%d,%d)\n", prnt_idx>>1, rxF[prnt_idx],rxF[prnt_idx+1]);
+      printf("--------After compansation, layer %i, antenna rx %i----------\n", nl2, aarx2);
 
+      for (prnt_idx=0;prnt_idx<12*5*2;prnt_idx+=2){
+        printf("rxF[%d] = (%d,%d)\n", prnt_idx>>1, rxF[prnt_idx],rxF[prnt_idx+1]);
+      }
     }
   }
-
 #endif
 
 #ifdef DEBUG_CH_MAG
@@ -1105,19 +1130,23 @@ void nr_ulsch_channel_compensation(int **rxdataF_ext,
 }
 
 void nr_ulsch_detection_mrc(NR_DL_FRAME_PARMS *frame_parms,
-			    int32_t **rxdataF_comp,
-			    int32_t **ul_ch_mag,
-			    int32_t **ul_ch_magb,
-			    uint8_t symbol,
-			    uint16_t nb_rb) {
+                int32_t **rxdataF_comp,
+                int32_t **ul_ch_mag,
+                int32_t **ul_ch_magb,
+                int32_t ***rho,                
+                uint8_t  nrOfLayers,
+                uint8_t symbol,
+                uint16_t nb_rb,
+                int length) {
   int n_rx = frame_parms->nb_antennas_rx;
 #if defined(__x86_64__) || defined(__i386__)
-  __m128i *rxdataF_comp128[1+n_rx],*ul_ch_mag128[1+n_rx],*ul_ch_mag128b[1+n_rx];
+  __m128i *rxdataF_comp128[2],*ul_ch_mag128[2],*ul_ch_mag128b[2];
 #elif defined(__arm__)
   int16x8_t *rxdataF_comp128_0,*ul_ch_mag128_0,*ul_ch_mag128_0b;
   int16x8_t *rxdataF_comp128_1,*ul_ch_mag128_1,*ul_ch_mag128_1b;
 #endif
   int32_t i;
+  uint32_t nb_rb_0 = length/12 + ((length%12)?1:0);
 
 #ifdef __AVX2__
   int off = ((nb_rb&1) == 1)? 4:0;
@@ -1125,23 +1154,30 @@ void nr_ulsch_detection_mrc(NR_DL_FRAME_PARMS *frame_parms,
   int off = 0;
 #endif
 
-  if (frame_parms->nb_antennas_rx>1) {
-#if defined(__x86_64__) || defined(__i386__)
-    int nb_re = nb_rb*12;
-    for (int aa=0;aa<frame_parms->nb_antennas_rx;aa++) {
-      rxdataF_comp128[aa]   = (__m128i *)&rxdataF_comp[aa][(symbol*(nb_re + off))];
-      ul_ch_mag128[aa]      = (__m128i *)&ul_ch_mag[aa][(symbol*(nb_re + off))];
-      ul_ch_mag128b[aa]     = (__m128i *)&ul_ch_magb[aa][(symbol*(nb_re + off))];
-    }
-    for (int aa=1;aa<frame_parms->nb_antennas_rx;aa++) {      
-      // MRC on each re of rb, both on MF output and magnitude (for 16QAM/64QAM llr computation)
-      for (i=0; i<nb_rb*3; i++) {
-	rxdataF_comp128[0][i] = _mm_adds_epi16(rxdataF_comp128[0][i],rxdataF_comp128[aa][i]);
-	ul_ch_mag128[0][i]    = _mm_adds_epi16(ul_ch_mag128[0][i], ul_ch_mag128[aa][i]);
-	ul_ch_mag128b[0][i]   = _mm_adds_epi16(ul_ch_mag128b[0][i],ul_ch_mag128b[aa][i]);
+  if (n_rx > 1) {
+    #if defined(__x86_64__) || defined(__i386__)
+    for (int aatx=0; aatx<nrOfLayers; aatx++) {
+      int nb_re = nb_rb*12;
+
+      rxdataF_comp128[0]   = (__m128i *)&rxdataF_comp[aatx*frame_parms->nb_antennas_rx][(symbol*(nb_re + off))];
+      ul_ch_mag128[0]      = (__m128i *)&ul_ch_mag[aatx*frame_parms->nb_antennas_rx][(symbol*(nb_re + off))];
+      ul_ch_mag128b[0]     = (__m128i *)&ul_ch_magb[aatx*frame_parms->nb_antennas_rx][(symbol*(nb_re + off))];
+
+      for (int aa=1;aa < n_rx;aa++) {
+        rxdataF_comp128[1]   = (__m128i *)&rxdataF_comp[aatx*frame_parms->nb_antennas_rx+aa][(symbol*(nb_re + off))];
+        ul_ch_mag128[1]      = (__m128i *)&ul_ch_mag[aatx*frame_parms->nb_antennas_rx+aa][(symbol*(nb_re + off))];
+        ul_ch_mag128b[1]     = (__m128i *)&ul_ch_magb[aatx*frame_parms->nb_antennas_rx+aa][(symbol*(nb_re + off))];
+      
+        // MRC on each re of rb, both on MF output and magnitude (for 16QAM/64QAM llr computation)
+        for (i=0; i<nb_rb_0*3; i++) {
+            rxdataF_comp128[0][i] = _mm_adds_epi16(rxdataF_comp128[0][i],rxdataF_comp128[1][i]);
+            ul_ch_mag128[0][i]    = _mm_adds_epi16(ul_ch_mag128[0][i],ul_ch_mag128[1][i]);
+            ul_ch_mag128b[0][i]   = _mm_adds_epi16(ul_ch_mag128b[0][i],ul_ch_mag128b[1][i]);
+            //rxdataF_comp128[0][i] = _mm_add_epi16(rxdataF_comp128_0[i],(*(__m128i *)&jitterc[0]));
+        }
       }
     }
-#elif defined(__arm__)
+    #elif defined(__arm__)
     rxdataF_comp128_0   = (int16x8_t *)&rxdataF_comp[0][symbol*frame_parms->N_RB_DL*12];
     rxdataF_comp128_1   = (int16x8_t *)&rxdataF_comp[1][symbol*frame_parms->N_RB_DL*12];
     ul_ch_mag128_0      = (int16x8_t *)&ul_ch_mag[0][symbol*frame_parms->N_RB_DL*12];
@@ -1156,7 +1192,7 @@ void nr_ulsch_detection_mrc(NR_DL_FRAME_PARMS *frame_parms,
       ul_ch_mag128_0b[i]   = vhaddq_s16(ul_ch_mag128_0b[i],ul_ch_mag128_1b[i]);
       rxdataF_comp128_0[i] = vqaddq_s16(rxdataF_comp128_0[i],(*(int16x8_t *)&jitterc[0]));
     }
-#endif
+    #endif
   }
 
 #if defined(__x86_64__) || defined(__i386__)
@@ -1165,6 +1201,696 @@ void nr_ulsch_detection_mrc(NR_DL_FRAME_PARMS *frame_parms,
 #endif
 }
 
+/* Zero Forcing Rx function: nr_det_HhH()
+ *
+ *
+ * */
+void nr_ulsch_det_HhH(int32_t *after_mf_00,//a
+                int32_t *after_mf_01,//b
+                int32_t *after_mf_10,//c
+                int32_t *after_mf_11,//d
+                int32_t *det_fin,//1/ad-bc
+                unsigned short nb_rb,
+                unsigned char symbol,
+                int32_t shift)
+{
+  int16_t nr_conjug2[8]__attribute__((aligned(16))) = {1,-1,1,-1,1,-1,1,-1} ;
+  unsigned short rb;
+  __m128i *after_mf_00_128,*after_mf_01_128, *after_mf_10_128, *after_mf_11_128, ad_re_128, bc_re_128; //ad_im_128, bc_im_128;
+  __m128i *det_fin_128, det_re_128; //det_im_128, tmp_det0, tmp_det1;
+
+  after_mf_00_128 = (__m128i *)after_mf_00;
+  after_mf_01_128 = (__m128i *)after_mf_01;
+  after_mf_10_128 = (__m128i *)after_mf_10;
+  after_mf_11_128 = (__m128i *)after_mf_11;
+
+  det_fin_128 = (__m128i *)det_fin;
+
+  for (rb=0; rb<3*nb_rb; rb++) {
+
+    //complex multiplication (I_a+jQ_a)(I_d+jQ_d) = (I_aI_d - Q_aQ_d) + j(Q_aI_d + I_aQ_d)
+    //The imag part is often zero, we compute only the real part
+    ad_re_128 = _mm_sign_epi16(after_mf_00_128[0],*(__m128i*)&nr_conjug2[0]);
+    ad_re_128 = _mm_madd_epi16(ad_re_128,after_mf_11_128[0]); //Re: I_a0*I_d0 - Q_a1*Q_d1
+    //ad_im_128 = _mm_shufflelo_epi16(after_mf_00_128[0],_MM_SHUFFLE(2,3,0,1));//permutes IQs for the low 64 bits as [I_a0 Q_a1 I_a2 Q_a3]_64bits to [Q_a1 I_a0 Q_a3 I_a2]_64bits
+    //ad_im_128 = _mm_shufflehi_epi16(ad_im_128,_MM_SHUFFLE(2,3,0,1));//permutes IQs for the high 64 bits as [I_a0 Q_a1 I_a2 Q_a3]_64bits to [Q_a1 I_a0 Q_a3 I_a2]_64bits
+    //ad_im_128 = _mm_madd_epi16(ad_im_128,after_mf_11_128[0]);//Im: (Q_aI_d + I_aQ_d)
+
+    //complex multiplication (I_b+jQ_b)(I_c+jQ_c) = (I_bI_c - Q_bQ_c) + j(Q_bI_c + I_bQ_c)
+    //The imag part is often zero, we compute only the real part
+    bc_re_128 = _mm_sign_epi16(after_mf_01_128[0],*(__m128i*)&nr_conjug2[0]);
+    bc_re_128 = _mm_madd_epi16(bc_re_128,after_mf_10_128[0]); //Re: I_b0*I_c0 - Q_b1*Q_c1
+    //bc_im_128 = _mm_shufflelo_epi16(after_mf_01_128[0],_MM_SHUFFLE(2,3,0,1));//permutes IQs for the low 64 bits as [I_b0 Q_b1 I_b2 Q_b3]_64bits to [Q_b1 I_b0 Q_b3 I_b2]_64bits
+    //bc_im_128 = _mm_shufflehi_epi16(bc_im_128,_MM_SHUFFLE(2,3,0,1));//permutes IQs for the high 64 bits as [I_b0 Q_b1 I_b2 Q_b3]_64bits to [Q_b1 I_b0 Q_b3 I_b2]_64bits
+    //bc_im_128 = _mm_madd_epi16(bc_im_128,after_mf_10_128[0]);//Im: (Q_bI_c + I_bQ_c)
+
+    det_re_128 = _mm_sub_epi32(ad_re_128, bc_re_128);
+    //det_im_128 = _mm_sub_epi32(ad_im_128, bc_im_128);
+
+    //det in Q30 format
+    det_fin_128[0] = _mm_abs_epi32(det_re_128);
+
+
+#ifdef DEBUG_DLSCH_DEMOD
+     printf("\n Computing det_HhH_inv \n");
+     //print_ints("det_re_128:",(int32_t*)&det_re_128);
+     //print_ints("det_im_128:",(int32_t*)&det_im_128);
+     print_ints("det_fin_128:",(int32_t*)&det_fin_128[0]);
+#endif
+    det_fin_128+=1;
+    after_mf_00_128+=1;
+    after_mf_01_128+=1;
+    after_mf_10_128+=1;
+    after_mf_11_128+=1;
+  }
+  _mm_empty();
+  _m_empty();
+}
+
+/* Zero Forcing Rx function: nr_inv_comp_muli
+ * Complex number multi: z = x*y
+ *                         = (x_re*y_re - x_im*y_im) + j(x_im*y_re + x_re*y_im)
+ * */
+__m128i nr_ulsch_inv_comp_muli(__m128i input_x,
+                         __m128i input_y)
+{
+  int16_t nr_conjug2[8]__attribute__((aligned(16))) = {1,-1,1,-1,1,-1,1,-1} ;
+
+  __m128i xy_re_128, xy_im_128;
+  __m128i output_z, tmp_z0, tmp_z1;
+
+  // complex multiplication (x_re + jx_im)*(y_re + jy_im) = (x_re*y_re - x_im*y_im) + j(x_im*y_re + x_re*y_im)
+
+  // the real part
+  xy_re_128 = _mm_sign_epi16(input_x,*(__m128i*)&nr_conjug2[0]);
+  xy_re_128 = _mm_madd_epi16(xy_re_128,input_y); //Re: (x_re*y_re - x_im*y_im)
+
+  // the imag part
+  xy_im_128 = _mm_shufflelo_epi16(input_x,_MM_SHUFFLE(2,3,0,1));//permutes IQs for the low 64 bits as [I_a0 Q_a1 I_a2 Q_a3]_64bits to [Q_a1 I_a0 Q_a3 I_a2]_64bits
+  xy_im_128 = _mm_shufflehi_epi16(xy_im_128,_MM_SHUFFLE(2,3,0,1));//permutes IQs for the high 64 bits as [I_a0 Q_a1 I_a2 Q_a3]_64bits to [Q_a1 I_a0 Q_a3 I_a2]_64bits
+  xy_im_128 = _mm_madd_epi16(xy_im_128,input_y);//Im: (x_im*y_re + x_re*y_im)
+
+  //convert back to Q15 before packing
+  xy_re_128 = _mm_srai_epi32(xy_re_128,4);//(2^15/64*2*16)
+  xy_im_128 = _mm_srai_epi32(xy_im_128,4);
+
+  tmp_z0  = _mm_unpacklo_epi32(xy_re_128,xy_im_128);
+  //print_ints("unpack lo:",&tmp_z0[0]);
+  tmp_z1  = _mm_unpackhi_epi32(xy_re_128,xy_im_128);
+  //print_ints("unpack hi:",&tmp_z1[0]);
+  output_z = _mm_packs_epi32(tmp_z0,tmp_z1);
+
+  _mm_empty();
+  _m_empty();
+  return(output_z);
+}
+
+/* Zero Forcing Rx function: nr_conjch0_mult_ch1()
+ *
+ *
+ * */
+void nr_ulsch_conjch0_mult_ch1(int *ch0,
+                         int *ch1,
+                         int32_t *ch0conj_ch1,
+                         unsigned short nb_rb,
+                         unsigned char output_shift0)
+{
+  //This function is used to compute multiplications in H_hermitian * H matrix
+  short nr_conjugate[8]__attribute__((aligned(16))) = {-1,1,-1,1,-1,1,-1,1};
+  unsigned short rb;
+  __m128i *dl_ch0_128,*dl_ch1_128, *ch0conj_ch1_128, mmtmpD0,mmtmpD1,mmtmpD2,mmtmpD3;
+
+  dl_ch0_128 = (__m128i *)ch0;
+  dl_ch1_128 = (__m128i *)ch1;
+
+  ch0conj_ch1_128 = (__m128i *)ch0conj_ch1;
+
+  for (rb=0; rb<3*nb_rb; rb++) {
+
+    mmtmpD0 = _mm_madd_epi16(dl_ch0_128[0],dl_ch1_128[0]);
+    mmtmpD1 = _mm_shufflelo_epi16(dl_ch0_128[0],_MM_SHUFFLE(2,3,0,1));
+    mmtmpD1 = _mm_shufflehi_epi16(mmtmpD1,_MM_SHUFFLE(2,3,0,1));
+    mmtmpD1 = _mm_sign_epi16(mmtmpD1,*(__m128i*)&nr_conjugate[0]);
+    mmtmpD1 = _mm_madd_epi16(mmtmpD1,dl_ch1_128[0]);
+    mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift0);
+    mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift0);
+    mmtmpD2 = _mm_unpacklo_epi32(mmtmpD0,mmtmpD1);
+    mmtmpD3 = _mm_unpackhi_epi32(mmtmpD0,mmtmpD1);
+
+    ch0conj_ch1_128[0] = _mm_packs_epi32(mmtmpD2,mmtmpD3);
+
+    /*printf("\n Computing conjugates \n");
+    print_shorts("ch0:",(int16_t*)&dl_ch0_128[0]);
+    print_shorts("ch1:",(int16_t*)&dl_ch1_128[0]);
+    print_shorts("pack:",(int16_t*)&ch0conj_ch1_128[0]);*/
+
+    dl_ch0_128+=1;
+    dl_ch1_128+=1;
+    ch0conj_ch1_128+=1;
+  }
+  _mm_empty();
+  _m_empty();
+}
+__m128i nr_ulsch_comp_muli_sum(__m128i input_x,
+                         __m128i input_y,
+                         __m128i input_w,
+                         __m128i input_z,
+                         __m128i det)
+{
+  int16_t nr_conjug2[8]__attribute__((aligned(16))) = {1,-1,1,-1,1,-1,1,-1} ;
+
+  __m128i xy_re_128, xy_im_128, wz_re_128, wz_im_128;
+  __m128i output, tmp_z0, tmp_z1;
+
+  // complex multiplication (x_re + jx_im)*(y_re + jy_im) = (x_re*y_re - x_im*y_im) + j(x_im*y_re + x_re*y_im)
+  // the real part
+  xy_re_128 = _mm_sign_epi16(input_x,*(__m128i*)&nr_conjug2[0]);
+  xy_re_128 = _mm_madd_epi16(xy_re_128,input_y); //Re: (x_re*y_re - x_im*y_im)
+
+  // the imag part
+  xy_im_128 = _mm_shufflelo_epi16(input_x,_MM_SHUFFLE(2,3,0,1));//permutes IQs for the low 64 bits as [I_a0 Q_a1 I_a2 Q_a3]_64bits to [Q_a1 I_a0 Q_a3 I_a2]_64bits
+  xy_im_128 = _mm_shufflehi_epi16(xy_im_128,_MM_SHUFFLE(2,3,0,1));//permutes IQs for the high 64 bits as [I_a0 Q_a1 I_a2 Q_a3]_64bits to [Q_a1 I_a0 Q_a3 I_a2]_64bits
+  xy_im_128 = _mm_madd_epi16(xy_im_128,input_y);//Im: (x_im*y_re + x_re*y_im)
+
+  // complex multiplication (w_re + jw_im)*(z_re + jz_im) = (w_re*z_re - w_im*z_im) + j(w_im*z_re + w_re*z_im)
+  // the real part
+  wz_re_128 = _mm_sign_epi16(input_w,*(__m128i*)&nr_conjug2[0]);
+  wz_re_128 = _mm_madd_epi16(wz_re_128,input_z); //Re: (w_re*z_re - w_im*z_im)
+
+  // the imag part
+  wz_im_128 = _mm_shufflelo_epi16(input_w,_MM_SHUFFLE(2,3,0,1));//permutes IQs for the low 64 bits as [I_a0 Q_a1 I_a2 Q_a3]_64bits to [Q_a1 I_a0 Q_a3 I_a2]_64bits
+  wz_im_128 = _mm_shufflehi_epi16(wz_im_128,_MM_SHUFFLE(2,3,0,1));//permutes IQs for the high 64 bits as [I_a0 Q_a1 I_a2 Q_a3]_64bits to [Q_a1 I_a0 Q_a3 I_a2]_64bits
+  wz_im_128 = _mm_madd_epi16(wz_im_128,input_z);//Im: (w_im*z_re + w_re*z_im)
+
+
+  xy_re_128 = _mm_sub_epi32(xy_re_128, wz_re_128);
+  xy_im_128 = _mm_sub_epi32(xy_im_128, wz_im_128);
+  //print_ints("rx_re:",(int32_t*)&xy_re_128[0]);
+  //print_ints("rx_Img:",(int32_t*)&xy_im_128[0]);
+  //divide by matrix det and convert back to Q15 before packing
+  int sum_det =0;
+  for (int k=0; k<4;k++) {
+    sum_det += ((((int *)&det[0])[k])>>2);
+    //printf("det_%d = %d log2 =%d \n",k,(((int *)&det[0])[k]),log2_approx(((int *)&det[0])[k]));
+    }
+
+  xy_re_128 = _mm_slli_epi32(xy_re_128,5);
+  xy_re_128 = _mm_srai_epi32(xy_re_128,log2_approx(sum_det));
+  xy_re_128 = _mm_slli_epi32(xy_re_128,5);
+
+  xy_im_128 = _mm_slli_epi32(xy_im_128,5);
+  xy_im_128 = _mm_srai_epi32(xy_im_128,log2_approx(sum_det));
+  xy_im_128 = _mm_slli_epi32(xy_im_128,5);
+
+  tmp_z0  = _mm_unpacklo_epi32(xy_re_128,xy_im_128);
+  //print_ints("unpack lo:",&tmp_z0[0]);
+  tmp_z1  = _mm_unpackhi_epi32(xy_re_128,xy_im_128);
+  //print_ints("unpack hi:",&tmp_z1[0]);
+  output = _mm_packs_epi32(tmp_z0,tmp_z1);
+
+  _mm_empty();
+  _m_empty();
+  return(output);
+}
+/* Zero Forcing Rx function: nr_construct_HhH_elements()
+ *
+ *
+ * */
+void nr_ulsch_construct_HhH_elements(int *conjch00_ch00,
+                               int *conjch01_ch01,
+                               int *conjch11_ch11,
+                               int *conjch10_ch10,//
+                               int *conjch20_ch20,
+                               int *conjch21_ch21,
+                               int *conjch30_ch30,
+                               int *conjch31_ch31,
+                               int *conjch00_ch01,//00_01
+                               int *conjch01_ch00,//01_00
+                               int *conjch10_ch11,//10_11
+                               int *conjch11_ch10,//11_10
+                               int *conjch20_ch21,
+                               int *conjch21_ch20,
+                               int *conjch30_ch31,
+                               int *conjch31_ch30,
+                               int32_t *after_mf_00,
+                               int32_t *after_mf_01,
+                               int32_t *after_mf_10,
+                               int32_t *after_mf_11,
+                               unsigned short nb_rb,
+                               unsigned char symbol)
+{
+  //This function is used to construct the (H_hermitian * H matrix) matrix elements
+  unsigned short rb;
+  __m128i *conjch00_ch00_128, *conjch01_ch01_128, *conjch11_ch11_128, *conjch10_ch10_128;
+  __m128i *conjch20_ch20_128, *conjch21_ch21_128, *conjch30_ch30_128, *conjch31_ch31_128;
+  __m128i *conjch00_ch01_128, *conjch01_ch00_128, *conjch10_ch11_128, *conjch11_ch10_128;
+  __m128i *conjch20_ch21_128, *conjch21_ch20_128, *conjch30_ch31_128, *conjch31_ch30_128;
+  __m128i *after_mf_00_128, *after_mf_01_128, *after_mf_10_128, *after_mf_11_128;
+
+  conjch00_ch00_128 = (__m128i *)conjch00_ch00;
+  conjch01_ch01_128 = (__m128i *)conjch01_ch01;
+  conjch11_ch11_128 = (__m128i *)conjch11_ch11;
+  conjch10_ch10_128 = (__m128i *)conjch10_ch10;
+
+  conjch20_ch20_128 = (__m128i *)conjch20_ch20;
+  conjch21_ch21_128 = (__m128i *)conjch21_ch21;
+  conjch30_ch30_128 = (__m128i *)conjch30_ch30;
+  conjch31_ch31_128 = (__m128i *)conjch31_ch31;
+
+  conjch00_ch01_128 = (__m128i *)conjch00_ch01;
+  conjch01_ch00_128 = (__m128i *)conjch01_ch00;
+  conjch10_ch11_128 = (__m128i *)conjch10_ch11;
+  conjch11_ch10_128 = (__m128i *)conjch11_ch10;
+
+  conjch20_ch21_128 = (__m128i *)conjch20_ch21;
+  conjch21_ch20_128 = (__m128i *)conjch21_ch20;
+  conjch30_ch31_128 = (__m128i *)conjch30_ch31;
+  conjch31_ch30_128 = (__m128i *)conjch31_ch30;
+
+  after_mf_00_128 = (__m128i *)after_mf_00;
+  after_mf_01_128 = (__m128i *)after_mf_01;
+  after_mf_10_128 = (__m128i *)after_mf_10;
+  after_mf_11_128 = (__m128i *)after_mf_11;
+
+  for (rb=0; rb<3*nb_rb; rb++) {
+
+    after_mf_00_128[0] =_mm_adds_epi16(conjch00_ch00_128[0],conjch10_ch10_128[0]);//00_00 + 10_10
+    if (conjch20_ch20 != NULL) after_mf_00_128[0] =_mm_adds_epi16(after_mf_00_128[0],conjch20_ch20_128[0]);
+    if (conjch30_ch30 != NULL) after_mf_00_128[0] =_mm_adds_epi16(after_mf_00_128[0],conjch30_ch30_128[0]);
+
+    after_mf_11_128[0] =_mm_adds_epi16(conjch01_ch01_128[0], conjch11_ch11_128[0]); //01_01 + 11_11
+    if (conjch21_ch21 != NULL) after_mf_11_128[0] =_mm_adds_epi16(after_mf_11_128[0],conjch21_ch21_128[0]);
+    if (conjch31_ch31 != NULL) after_mf_11_128[0] =_mm_adds_epi16(after_mf_11_128[0],conjch31_ch31_128[0]);
+
+    after_mf_01_128[0] =_mm_adds_epi16(conjch00_ch01_128[0], conjch10_ch11_128[0]);//00_01 + 10_11
+    if (conjch20_ch21 != NULL) after_mf_01_128[0] =_mm_adds_epi16(after_mf_01_128[0],conjch20_ch21_128[0]);
+    if (conjch30_ch31 != NULL) after_mf_01_128[0] =_mm_adds_epi16(after_mf_01_128[0],conjch30_ch31_128[0]);
+
+    after_mf_10_128[0] =_mm_adds_epi16(conjch01_ch00_128[0], conjch11_ch10_128[0]);//01_00 + 11_10
+    if (conjch21_ch20 != NULL) after_mf_10_128[0] =_mm_adds_epi16(after_mf_10_128[0],conjch21_ch20_128[0]);
+    if (conjch31_ch30 != NULL) after_mf_10_128[0] =_mm_adds_epi16(after_mf_10_128[0],conjch31_ch30_128[0]);
+
+#ifdef DEBUG_DLSCH_DEMOD
+    if ((rb<=30))
+    {
+      printf(" \n construct_HhH_elements \n");
+      print_shorts("after_mf_00_128:",(int16_t*)&after_mf_00_128[0]);
+      print_shorts("after_mf_01_128:",(int16_t*)&after_mf_01_128[0]);
+      print_shorts("after_mf_10_128:",(int16_t*)&after_mf_10_128[0]);
+      print_shorts("after_mf_11_128:",(int16_t*)&after_mf_11_128[0]);
+    }
+#endif
+    conjch00_ch00_128+=1;
+    conjch10_ch10_128+=1;
+    conjch01_ch01_128+=1;
+    conjch11_ch11_128+=1;
+
+    if (conjch20_ch20 != NULL) conjch20_ch20_128+=1;
+    if (conjch21_ch21 != NULL) conjch21_ch21_128+=1;
+    if (conjch30_ch30 != NULL) conjch30_ch30_128+=1;
+    if (conjch31_ch31 != NULL) conjch31_ch31_128+=1;
+
+    conjch00_ch01_128+=1;
+    conjch01_ch00_128+=1;
+    conjch10_ch11_128+=1;
+    conjch11_ch10_128+=1;
+
+    if (conjch20_ch21 != NULL) conjch20_ch21_128+=1;
+    if (conjch21_ch20 != NULL) conjch21_ch20_128+=1;
+    if (conjch30_ch31 != NULL) conjch30_ch31_128+=1;
+    if (conjch31_ch30 != NULL) conjch31_ch30_128+=1;
+
+    after_mf_00_128 += 1;
+    after_mf_01_128 += 1;
+    after_mf_10_128 += 1;
+    after_mf_11_128 += 1;
+  }
+  _mm_empty();
+  _m_empty();
+}
+
+/* Zero Forcing Rx function: nr_ulsch_zero_forcing_rx_2layers()
+ *
+ *
+ * */
+uint8_t nr_ulsch_zero_forcing_rx_2layers(int **rxdataF_comp,
+                                   int **ul_ch_mag,
+                                   int **ul_ch_magb,                                   
+                                   int **ul_ch_estimates_ext,
+                                   unsigned short nb_rb,
+                                   unsigned char n_rx,
+                                   unsigned char mod_order,
+                                   int shift,
+                                   unsigned char symbol,
+                                   int length)
+{
+  int *ch00, *ch01, *ch10, *ch11;
+  int *ch20, *ch30, *ch21, *ch31;
+  uint32_t nb_rb_0 = length/12 + ((length%12)?1:0);
+
+  #ifdef __AVX2__
+  int off = ((nb_rb&1) == 1)? 4:0;
+  #else
+  int off = 0;
+  #endif
+
+  /* we need at least alignment to 16 bytes, let's put 32 to be sure
+   * (maybe not necessary but doesn't hurt)
+   */
+  int32_t conjch00_ch01[12*nb_rb] __attribute__((aligned(32)));
+  int32_t conjch01_ch00[12*nb_rb] __attribute__((aligned(32)));
+  int32_t conjch10_ch11[12*nb_rb] __attribute__((aligned(32)));
+  int32_t conjch11_ch10[12*nb_rb] __attribute__((aligned(32)));
+  int32_t conjch00_ch00[12*nb_rb] __attribute__((aligned(32)));
+  int32_t conjch01_ch01[12*nb_rb] __attribute__((aligned(32)));
+  int32_t conjch10_ch10[12*nb_rb] __attribute__((aligned(32)));
+  int32_t conjch11_ch11[12*nb_rb] __attribute__((aligned(32)));
+  int32_t conjch20_ch20[12*nb_rb] __attribute__((aligned(32)));
+  int32_t conjch21_ch21[12*nb_rb] __attribute__((aligned(32)));
+  int32_t conjch30_ch30[12*nb_rb] __attribute__((aligned(32)));
+  int32_t conjch31_ch31[12*nb_rb] __attribute__((aligned(32)));
+  int32_t conjch20_ch21[12*nb_rb] __attribute__((aligned(32)));
+  int32_t conjch30_ch31[12*nb_rb] __attribute__((aligned(32)));
+  int32_t conjch21_ch20[12*nb_rb] __attribute__((aligned(32)));
+  int32_t conjch31_ch30[12*nb_rb] __attribute__((aligned(32)));
+
+  int32_t af_mf_00[12*nb_rb] __attribute__((aligned(32)));
+  int32_t af_mf_01[12*nb_rb] __attribute__((aligned(32)));
+  int32_t af_mf_10[12*nb_rb] __attribute__((aligned(32)));
+  int32_t af_mf_11[12*nb_rb] __attribute__((aligned(32)));
+  int32_t determ_fin[12*nb_rb] __attribute__((aligned(32)));
+
+  switch (n_rx) {
+    case 2://
+      ch00 = (int *)&ul_ch_estimates_ext[0][symbol*(off+nb_rb*12)];
+      ch01 = (int *)&ul_ch_estimates_ext[2][symbol*(off+nb_rb*12)];
+      ch10 = (int *)&ul_ch_estimates_ext[1][symbol*(off+nb_rb*12)];
+      ch11 = (int *)&ul_ch_estimates_ext[3][symbol*(off+nb_rb*12)];
+      ch20 = NULL;
+      ch21 = NULL;
+      ch30 = NULL;
+      ch31 = NULL;
+      break;
+
+    case 4://
+      ch00 = (int *)&ul_ch_estimates_ext[0][symbol*(off+nb_rb*12)];
+      ch01 = (int *)&ul_ch_estimates_ext[4][symbol*(off+nb_rb*12)];
+      ch10 = (int *)&ul_ch_estimates_ext[1][symbol*(off+nb_rb*12)];
+      ch11 = (int *)&ul_ch_estimates_ext[5][symbol*(off+nb_rb*12)];
+      ch20 = (int *)&ul_ch_estimates_ext[2][symbol*(off+nb_rb*12)];
+      ch21 = (int *)&ul_ch_estimates_ext[6][symbol*(off+nb_rb*12)];
+      ch30 = (int *)&ul_ch_estimates_ext[3][symbol*(off+nb_rb*12)];
+      ch31 = (int *)&ul_ch_estimates_ext[7][symbol*(off+nb_rb*12)];
+      break;
+
+    default:
+      return -1;
+      break;
+  }
+
+  /* 1- Compute the rx channel matrix after compensation: (1/2^log2_max)x(H_herm x H)
+   * for n_rx = 2
+   * |conj_H_00       conj_H_10|    | H_00         H_01|   |(conj_H_00xH_00+conj_H_10xH_10)   (conj_H_00xH_01+conj_H_10xH_11)|
+   * |                         |  x |                  | = |                                                                 |
+   * |conj_H_01       conj_H_11|    | H_10         H_11|   |(conj_H_01xH_00+conj_H_11xH_10)   (conj_H_01xH_01+conj_H_11xH_11)|
+   *
+   */
+
+  if (n_rx>=2){
+    // (1/2^log2_maxh)*conj_H_00xH_00: (1/(64*2))conjH_00*H_00*2^15
+    nr_ulsch_conjch0_mult_ch1(ch00,
+                        ch00,
+                        conjch00_ch00,
+                        nb_rb_0,
+                        shift);
+    // (1/2^log2_maxh)*conj_H_10xH_10: (1/(64*2))conjH_10*H_10*2^15
+    nr_ulsch_conjch0_mult_ch1(ch10,
+                        ch10,
+                        conjch10_ch10,
+                        nb_rb_0,
+                        shift);
+    // conj_H_00xH_01
+    nr_ulsch_conjch0_mult_ch1(ch00,
+                        ch01,
+                        conjch00_ch01,
+                        nb_rb_0,
+                        shift); // this shift is equal to the channel level log2_maxh
+    // conj_H_10xH_11
+    nr_ulsch_conjch0_mult_ch1(ch10,
+                        ch11,
+                        conjch10_ch11,
+                        nb_rb_0,
+                        shift);
+    // conj_H_01xH_01
+    nr_ulsch_conjch0_mult_ch1(ch01,
+                        ch01,
+                        conjch01_ch01,
+                        nb_rb_0,
+                        shift);
+    // conj_H_11xH_11
+    nr_ulsch_conjch0_mult_ch1(ch11,
+                        ch11,
+                        conjch11_ch11,
+                        nb_rb_0,
+                        shift);
+    // conj_H_01xH_00
+    nr_ulsch_conjch0_mult_ch1(ch01,
+                        ch00,
+                        conjch01_ch00,
+                        nb_rb_0,
+                        shift);
+    // conj_H_11xH_10
+    nr_ulsch_conjch0_mult_ch1(ch11,
+                        ch10,
+                        conjch11_ch10,
+                        nb_rb_0,
+                        shift);
+  }
+  if (n_rx==4){
+    // (1/2^log2_maxh)*conj_H_20xH_20: (1/(64*2*16))conjH_20*H_20*2^15
+    nr_ulsch_conjch0_mult_ch1(ch20,
+                        ch20,
+                        conjch20_ch20,
+                        nb_rb_0,
+                        shift);
+
+    // (1/2^log2_maxh)*conj_H_30xH_30: (1/(64*2*4))conjH_30*H_30*2^15
+    nr_ulsch_conjch0_mult_ch1(ch30,
+                        ch30,
+                        conjch30_ch30,
+                        nb_rb_0,
+                        shift);
+
+    // (1/2^log2_maxh)*conj_H_20xH_20: (1/(64*2))conjH_20*H_20*2^15
+    nr_ulsch_conjch0_mult_ch1(ch20,
+                        ch21,
+                        conjch20_ch21,
+                        nb_rb_0,
+                        shift);
+
+    nr_ulsch_conjch0_mult_ch1(ch30,
+                        ch31,
+                        conjch30_ch31,
+                        nb_rb_0,
+                        shift);
+
+    nr_ulsch_conjch0_mult_ch1(ch21,
+                        ch21,
+                        conjch21_ch21,
+                        nb_rb_0,
+                        shift);
+
+    nr_ulsch_conjch0_mult_ch1(ch31,
+                        ch31,
+                        conjch31_ch31,
+                        nb_rb_0,
+                        shift);
+
+    // (1/2^log2_maxh)*conj_H_20xH_20: (1/(64*2))conjH_20*H_20*2^15
+    nr_ulsch_conjch0_mult_ch1(ch21,
+                        ch20,
+                        conjch21_ch20,
+                        nb_rb_0,
+                        shift);
+
+    nr_ulsch_conjch0_mult_ch1(ch31,
+                        ch30,
+                        conjch31_ch30,
+                        nb_rb_0,
+                        shift);
+
+    nr_ulsch_construct_HhH_elements(conjch00_ch00,
+                              conjch01_ch01,
+                              conjch11_ch11,
+                              conjch10_ch10,//
+                              conjch20_ch20,
+                              conjch21_ch21,
+                              conjch30_ch30,
+                              conjch31_ch31,
+                              conjch00_ch01,
+                              conjch01_ch00,
+                              conjch10_ch11,
+                              conjch11_ch10,//
+                              conjch20_ch21,
+                              conjch21_ch20,
+                              conjch30_ch31,
+                              conjch31_ch30,
+                              af_mf_00,
+                              af_mf_01,
+                              af_mf_10,
+                              af_mf_11,
+                              nb_rb_0,
+                              symbol);
+  }
+  if (n_rx==2){
+    nr_ulsch_construct_HhH_elements(conjch00_ch00,
+                              conjch01_ch01,
+                              conjch11_ch11,
+                              conjch10_ch10,//
+                              NULL,
+                              NULL,
+                              NULL,
+                              NULL,
+                              conjch00_ch01,
+                              conjch01_ch00,
+                              conjch10_ch11,
+                              conjch11_ch10,//
+                              NULL,
+                              NULL,
+                              NULL,
+                              NULL,
+                              af_mf_00,
+                              af_mf_01,
+                              af_mf_10,
+                              af_mf_11,
+                              nb_rb_0,
+                              symbol);
+  }
+  //det_HhH = ad -bc
+  nr_ulsch_det_HhH(af_mf_00,//a
+             af_mf_01,//b
+             af_mf_10,//c
+             af_mf_11,//d
+             determ_fin,
+             nb_rb_0,
+             symbol,
+             shift);
+  /* 2- Compute the channel matrix inversion **********************************
+   *
+     *    |(conj_H_00xH_00+conj_H_10xH_10)   (conj_H_00xH_01+conj_H_10xH_11)|
+     * A= |                                                                 |
+     *    |(conj_H_01xH_00+conj_H_11xH_10)   (conj_H_01xH_01+conj_H_11xH_11)|
+     *
+     *
+     *
+     *inv(A) =(1/det)*[d  -b
+     *                 -c  a]
+     *
+     *
+     **************************************************************************/
+  __m128i *rxdataF_comp128_0,*rxdataF_comp128_1,*ul_ch_mag128_0=NULL,*ul_ch_mag128b_0=NULL,*determ_fin_128;//*dl_ch_mag128_1,*dl_ch_mag128b_1,*dl_ch_mag128r_1
+  __m128i mmtmpD0,mmtmpD1,mmtmpD2,mmtmpD3;
+  __m128i *after_mf_a_128,*after_mf_b_128, *after_mf_c_128, *after_mf_d_128;
+  __m128i QAM_amp128={0},QAM_amp128b={0};
+
+  determ_fin_128      = (__m128i *)&determ_fin[0];
+
+  rxdataF_comp128_0   = (__m128i *)&rxdataF_comp[0][symbol*(off+nb_rb*12)];//aatx=0 @ aarx =0
+  rxdataF_comp128_1   = (__m128i *)&rxdataF_comp[n_rx][symbol*(off+nb_rb*12)];//aatx=1 @ aarx =0
+
+  after_mf_a_128 = (__m128i *)af_mf_00;
+  after_mf_b_128 = (__m128i *)af_mf_01;
+  after_mf_c_128 = (__m128i *)af_mf_10;
+  after_mf_d_128 = (__m128i *)af_mf_11;
+
+  if (mod_order>2) {
+    if (mod_order == 4) {
+      QAM_amp128 = _mm_set1_epi16(QAM16_n1);  //2/sqrt(10)
+      QAM_amp128b = _mm_setzero_si128();
+    } else if (mod_order == 6) {
+      QAM_amp128  = _mm_set1_epi16(QAM64_n1); //4/sqrt{42}
+      QAM_amp128b = _mm_set1_epi16(QAM64_n2); //2/sqrt{42}
+    } 
+    ul_ch_mag128_0      = (__m128i *)&ul_ch_mag[0][symbol*(off+nb_rb*12)];
+    ul_ch_mag128b_0     = (__m128i *)&ul_ch_magb[0][symbol*(off+nb_rb*12)];
+  }
+
+  for (int rb=0; rb<3*nb_rb_0; rb++) {
+    if (mod_order>2) {
+      int sum_det =0;
+      for (int k=0; k<4;k++) {
+        sum_det += ((((int *)&determ_fin_128[0])[k])>>2);
+        //printf("det_%d = %d\n",k,sum_det);
+        }
+
+      mmtmpD2 = _mm_slli_epi32(determ_fin_128[0],5);
+      mmtmpD2 = _mm_srai_epi32(mmtmpD2,log2_approx(sum_det));
+      mmtmpD2 = _mm_slli_epi32(mmtmpD2,5);
+
+      mmtmpD3 = _mm_unpacklo_epi32(mmtmpD2,mmtmpD2);
+
+      mmtmpD2 = _mm_unpackhi_epi32(mmtmpD2,mmtmpD2);
+
+      mmtmpD2 = _mm_packs_epi32(mmtmpD3,mmtmpD2);
+
+      ul_ch_mag128_0[0] = mmtmpD2;
+      ul_ch_mag128b_0[0] = mmtmpD2;
+
+      ul_ch_mag128_0[0] = _mm_mulhi_epi16(ul_ch_mag128_0[0],QAM_amp128);
+      ul_ch_mag128_0[0] = _mm_slli_epi16(ul_ch_mag128_0[0],1);
+
+      ul_ch_mag128b_0[0] = _mm_mulhi_epi16(ul_ch_mag128b_0[0],QAM_amp128b);
+      ul_ch_mag128b_0[0] = _mm_slli_epi16(ul_ch_mag128b_0[0],1);
+
+      //print_shorts("mag layer 1:",(int16_t*)&dl_ch_mag128_0[0]);
+      //print_shorts("mag layer 2:",(int16_t*)&dl_ch_mag128_1[0]);
+      //print_shorts("magb layer 1:",(int16_t*)&dl_ch_mag128b_0[0]);
+      //print_shorts("magb layer 2:",(int16_t*)&dl_ch_mag128b_1[0]);
+      //print_shorts("magr layer 1:",(int16_t*)&dl_ch_mag128r_0[0]);
+      //print_shorts("magr layer 2:",(int16_t*)&dl_ch_mag128r_1[0]);
+    }
+    // multiply by channel Inv
+    //rxdataF_zf128_0 = rxdataF_comp128_0*d - b*rxdataF_comp128_1
+    //rxdataF_zf128_1 = rxdataF_comp128_1*a - c*rxdataF_comp128_0
+    //printf("layer_1 \n");
+    mmtmpD0 = nr_ulsch_comp_muli_sum(rxdataF_comp128_0[0],
+                               after_mf_d_128[0],
+                               rxdataF_comp128_1[0],
+                               after_mf_b_128[0],
+                               determ_fin_128[0]);
+
+    //printf("layer_2 \n");
+    mmtmpD1 = nr_ulsch_comp_muli_sum(rxdataF_comp128_1[0],
+                               after_mf_a_128[0],
+                               rxdataF_comp128_0[0],
+                               after_mf_c_128[0],
+                               determ_fin_128[0]);
+
+    rxdataF_comp128_0[0] = mmtmpD0;
+    rxdataF_comp128_1[0] = mmtmpD1;
+#ifdef DEBUG_DLSCH_DEMOD
+    printf("\n Rx signal after ZF l%d rb%d\n",symbol,rb);
+    print_shorts(" Rx layer 1:",(int16_t*)&rxdataF_comp128_0[0]);
+    print_shorts(" Rx layer 2:",(int16_t*)&rxdataF_comp128_1[0]);
+#endif
+    determ_fin_128 += 1;
+    ul_ch_mag128_0 += 1;
+    ul_ch_mag128b_0 += 1;    
+    rxdataF_comp128_0 += 1;
+    rxdataF_comp128_1 += 1;
+    after_mf_a_128 += 1;
+    after_mf_b_128 += 1;
+    after_mf_c_128 += 1;
+    after_mf_d_128 += 1;
+  }
+  _mm_empty();
+  _m_empty();
+   return(0);
+}
+
+//==============================================================================================
+
+/* Main Function */
 int nr_rx_pusch(PHY_VARS_gNB *gNB,
                 uint8_t ulsch_id,
                 uint32_t frame,
@@ -1186,7 +1912,10 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB,
   bwp_start_subcarrier = ((rel15_ul->rb_start + rel15_ul->bwp_start)*NR_NB_SC_PER_RB + frame_parms->first_carrier_offset) % frame_parms->ofdm_symbol_size;
   LOG_D(PHY,"pusch %d.%d : bwp_start_subcarrier %d, rb_start %d, first_carrier_offset %d\n", frame,slot,bwp_start_subcarrier, rel15_ul->rb_start, frame_parms->first_carrier_offset);
   LOG_D(PHY,"pusch %d.%d : ul_dmrs_symb_pos %x\n",frame,slot,rel15_ul->ul_dmrs_symb_pos);
-
+  LOG_D(PHY,"ulsch RX %x : start_rb %d nb_rb %d mcs %d Nl %d Tpmi %d bwp_start %d start_sc %d start_symbol %d num_symbols %d cdmgrpsnodata %d num_dmrs %d dmrs_ports %d\n",
+          rel15_ul->rnti,rel15_ul->rb_start,rel15_ul->rb_size,rel15_ul->mcs_index,
+          rel15_ul->nrOfLayers,0,rel15_ul->bwp_start,0,rel15_ul->start_symbol_index,rel15_ul->nr_of_symbols,
+          rel15_ul->num_dmrs_cdm_grps_no_data,rel15_ul->ul_dmrs_symb_pos,rel15_ul->dmrs_ports);
   //----------------------------------------------------------
   //--------------------- Channel estimation ---------------------
   //----------------------------------------------------------
@@ -1194,11 +1923,13 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB,
   for(uint8_t symbol = rel15_ul->start_symbol_index; symbol < (rel15_ul->start_symbol_index + rel15_ul->nr_of_symbols); symbol++) {
     uint8_t dmrs_symbol_flag = (rel15_ul->ul_dmrs_symb_pos >> symbol) & 0x01;
     LOG_D(PHY, "symbol %d, dmrs_symbol_flag :%d\n", symbol, dmrs_symbol_flag);
+    
     if (dmrs_symbol_flag == 1) {
       if (gNB->pusch_vars[ulsch_id]->dmrs_symbol == INVALID_VALUE)
         gNB->pusch_vars[ulsch_id]->dmrs_symbol = symbol;
 
-      for (int nl=0; nl<rel15_ul->nrOfLayers; nl++)
+      for (int nl=0; nl<rel15_ul->nrOfLayers; nl++) {
+        
         nr_pusch_channel_estimation(gNB,
                                     slot,
                                     get_dmrs_port(nl,rel15_ul->dmrs_ports),
@@ -1206,6 +1937,7 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB,
                                     ulsch_id,
                                     bwp_start_subcarrier,
                                     rel15_ul);
+      }
 
       nr_gnb_measurements(gNB, ulsch_id, harq_pid, symbol,rel15_ul->nrOfLayers);
 
@@ -1214,9 +1946,11 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB,
           gNB->pusch_vars[ulsch_id]->ulsch_power[aarx] = 0;
           gNB->pusch_vars[ulsch_id]->ulsch_noise_power[aarx] = 0;
         }
-        gNB->pusch_vars[ulsch_id]->ulsch_power[aarx] += signal_energy_nodc(
-            &gNB->pusch_vars[ulsch_id]->ul_ch_estimates[aarx][symbol * frame_parms->ofdm_symbol_size],
+        for (aatx = 0; aatx < rel15_ul->nrOfLayers; aatx++) {
+          gNB->pusch_vars[ulsch_id]->ulsch_power[aarx] += signal_energy_nodc(
+            &gNB->pusch_vars[ulsch_id]->ul_ch_estimates[aatx*gNB->frame_parms.nb_antennas_rx+aarx][symbol * frame_parms->ofdm_symbol_size],
             rel15_ul->rb_size * 12);
+        }
         for (int rb = 0; rb < rel15_ul->rb_size; rb++) {
           gNB->pusch_vars[ulsch_id]->ulsch_noise_power[aarx] +=
               gNB->measurements.n0_subband_power[aarx][rel15_ul->bwp_start + rel15_ul->rb_start + rb] /
@@ -1229,6 +1963,17 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB,
       }
     }
   }
+
+  if (gNB->chest_time == 1) { // averaging time domain channel estimates
+    nr_chest_time_domain_avg(frame_parms,
+                             gNB->pusch_vars[ulsch_id]->ul_ch_estimates,
+                             rel15_ul->nr_of_symbols,
+                             rel15_ul->start_symbol_index,
+                             rel15_ul->ul_dmrs_symb_pos,
+                             rel15_ul->rb_size);
+
+    gNB->pusch_vars[ulsch_id]->dmrs_symbol = get_next_dmrs_symbol_in_slot(rel15_ul->ul_dmrs_symb_pos, rel15_ul->start_symbol_index, rel15_ul->nr_of_symbols);
+  }
   stop_meas(&gNB->ulsch_channel_estimation_stats);
 
 #ifdef __AVX2__
@@ -1244,7 +1989,8 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB,
       if ((rel15_ul->ul_dmrs_symb_pos >> ((symbol + 1) % frame_parms->symbols_per_slot)) & 0x01)
         AssertFatal(1==0,"Double DMRS configuration is not yet supported\n");
 
-      gNB->pusch_vars[ulsch_id]->dmrs_symbol = symbol;
+      if (gNB->chest_time == 0) // Non averaging time domain channel estimates
+        gNB->pusch_vars[ulsch_id]->dmrs_symbol = symbol;
 
       if (rel15_ul->dmrs_config_type == 0) {
         // if no data in dmrs cdm group is 1 only even REs have no data
@@ -1254,7 +2000,8 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB,
       else {
         nb_re_pusch = rel15_ul->rb_size *(12 - (rel15_ul->num_dmrs_cdm_grps_no_data*4));
       }
-    } else {
+    } 
+    else {
       nb_re_pusch = rel15_ul->rb_size * NR_NB_SC_PER_RB;
     }
 
@@ -1265,15 +2012,14 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB,
     //--------------------- RBs extraction ---------------------
     //----------------------------------------------------------
     if (nb_re_pusch > 0) {
-
       start_meas(&gNB->ulsch_rbs_extraction_stats);
-      nr_ulsch_extract_rbs_single(gNB->common_vars.rxdataF,
-                                  gNB->pusch_vars[ulsch_id],
-                                  slot,
-                                  symbol,
-                                  dmrs_symbol_flag,
-                                  rel15_ul,
-                                  frame_parms);
+      nr_ulsch_extract_rbs(gNB->common_vars.rxdataF,
+                           gNB->pusch_vars[ulsch_id],
+                           slot,
+                           symbol,
+                           dmrs_symbol_flag,
+                           rel15_ul,
+                           frame_parms);
       stop_meas(&gNB->ulsch_rbs_extraction_stats);
 
       //----------------------------------------------------------
@@ -1284,8 +2030,9 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB,
                             gNB->ulsch[ulsch_id],
                             symbol,
                             dmrs_symbol_flag,
-                            rel15_ul->rb_size,
-                            rel15_ul->dmrs_config_type);
+                            nb_re_pusch,
+                            rel15_ul->nrOfLayers,
+                            rel15_ul->rb_size);
 
       if (gNB->pusch_vars[ulsch_id]->cl_done==0) {
         nr_ulsch_channel_level(gNB->pusch_vars[ulsch_id]->ul_ch_estimates_ext,
@@ -1319,6 +2066,7 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB,
                                     (rel15_ul->nrOfLayers>1) ? gNB->pusch_vars[ulsch_id]->rho : NULL,
                                     frame_parms,
                                     symbol,
+                                    nb_re_pusch,
                                     dmrs_symbol_flag,
                                     rel15_ul->qam_mod_order,
                                     rel15_ul->nrOfLayers,
@@ -1331,19 +2079,32 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB,
                              gNB->pusch_vars[ulsch_id]->rxdataF_comp,
                              gNB->pusch_vars[ulsch_id]->ul_ch_mag0,
                              gNB->pusch_vars[ulsch_id]->ul_ch_magb0,
+                             (rel15_ul->nrOfLayers>1) ? gNB->pusch_vars[ulsch_id]->rho : NULL,
+                             rel15_ul->nrOfLayers,
                              symbol,
-                             rel15_ul->rb_size);
+                             rel15_ul->rb_size,
+                             nb_re_pusch);
+                 
+      if (rel15_ul->nrOfLayers == 2)//Apply zero forcing for 2 Tx layers
+        nr_ulsch_zero_forcing_rx_2layers(gNB->pusch_vars[ulsch_id]->rxdataF_comp,
+                                   gNB->pusch_vars[ulsch_id]->ul_ch_mag0,
+                                   gNB->pusch_vars[ulsch_id]->ul_ch_magb0,                                   
+                                   gNB->pusch_vars[ulsch_id]->ul_ch_estimates_ext,
+                                   rel15_ul->rb_size,
+                                   frame_parms->nb_antennas_rx,
+                                   rel15_ul->qam_mod_order,
+                                   gNB->pusch_vars[ulsch_id]->log2_maxh,
+                                   symbol,
+                                   nb_re_pusch);
       stop_meas(&gNB->ulsch_mrc_stats);
 
-      // transform precoding = 0 means enabled
-      if (rel15_ul->transform_precoding == 0) {
-
-      #ifdef __AVX2__
+      if (rel15_ul->transform_precoding == transformPrecoder_enabled) {
+         #ifdef __AVX2__
         // For odd number of resource blocks need byte alignment to multiple of 8
         int nb_re_pusch2 = nb_re_pusch + (nb_re_pusch&7);
-      #else
+        #else
         int nb_re_pusch2 = nb_re_pusch;
-      #endif
+        #endif
 
         // perform IDFT operation on the compensated rxdata if transform precoding is enabled
         nr_idft(&gNB->pusch_vars[ulsch_id]->rxdataF_comp[0][symbol * nb_re_pusch2], nb_re_pusch);
@@ -1374,14 +2135,16 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB,
       /*--------------------  LLRs computation  -------------------------------------------------------------*/
       /*-----------------------------------------------------------------------------------------------------*/
       start_meas(&gNB->ulsch_llr_stats);
-      nr_ulsch_compute_llr(&gNB->pusch_vars[ulsch_id]->rxdataF_comp[0][symbol * (off + rel15_ul->rb_size * NR_NB_SC_PER_RB)],
-                           gNB->pusch_vars[ulsch_id]->ul_ch_mag0,
-                           gNB->pusch_vars[ulsch_id]->ul_ch_magb0,
-                           &gNB->pusch_vars[ulsch_id]->llr[rxdataF_ext_offset * rel15_ul->qam_mod_order],
-                           rel15_ul->rb_size,
-                           gNB->pusch_vars[ulsch_id]->ul_valid_re_per_slot[symbol],
-                           symbol,
-                           rel15_ul->qam_mod_order);
+      for (aatx=0; aatx < rel15_ul->nrOfLayers; aatx++) {
+        nr_ulsch_compute_llr(&gNB->pusch_vars[ulsch_id]->rxdataF_comp[aatx*frame_parms->nb_antennas_rx][symbol * (off + rel15_ul->rb_size * NR_NB_SC_PER_RB)],
+                             gNB->pusch_vars[ulsch_id]->ul_ch_mag0[aatx*frame_parms->nb_antennas_rx],
+                             gNB->pusch_vars[ulsch_id]->ul_ch_magb0[aatx*frame_parms->nb_antennas_rx],
+                             &gNB->pusch_vars[ulsch_id]->llr_layers[aatx][rxdataF_ext_offset * rel15_ul->qam_mod_order],
+                             rel15_ul->rb_size,
+                             gNB->pusch_vars[ulsch_id]->ul_valid_re_per_slot[symbol],
+                             symbol,
+                             rel15_ul->qam_mod_order);
+      }
       stop_meas(&gNB->ulsch_llr_stats);
       rxdataF_ext_offset += gNB->pusch_vars[ulsch_id]->ul_valid_re_per_slot[symbol];
     }
diff --git a/openair1/PHY/NR_TRANSPORT/nr_ulsch_llr_computation.c b/openair1/PHY/NR_TRANSPORT/nr_ulsch_llr_computation.c
index bf96a761060..f6eefe846ac 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_ulsch_llr_computation.c
+++ b/openair1/PHY/NR_TRANSPORT/nr_ulsch_llr_computation.c
@@ -44,19 +44,19 @@ void nr_ulsch_qpsk_llr(int32_t *rxdataF_comp,
                       uint32_t nb_re,
                       uint8_t  symbol)
 {
-  uint32_t *rxF   = (uint32_t*)rxdataF_comp;
-  uint32_t *llr32 = (uint32_t*)ulsch_llr;
+  c16_t *rxF   = (c16_t *)rxdataF_comp;
+  c16_t *llr32 = (c16_t *)ulsch_llr;
 
   if (!llr32) {
     LOG_E(PHY,"nr_ulsch_qpsk_llr: llr is null, symbol %d, llr32 = %p\n",symbol, llr32);
   }
-  /*
-  for (i = 0; i < nb_re; i++) {
-    *llr32 = *rxF;
+  for (int i = 0; i < nb_re; i++) {
+    //*llr32 = *rxF;
+    llr32->r = rxF->r >> 3;
+    llr32->i = rxF->i >> 3;
     rxF++;
     llr32++;
-    }*/
-  memcpy1((void*)llr32,(void*)rxF,nb_re<<2);
+  }
 }
 
 //----------------------------------------------------------------------------------------------
@@ -64,7 +64,7 @@ void nr_ulsch_qpsk_llr(int32_t *rxdataF_comp,
 //----------------------------------------------------------------------------------------------
 
 void nr_ulsch_16qam_llr(int32_t *rxdataF_comp,
-                        int32_t **ul_ch_mag,
+                        int32_t *ul_ch_mag,
                         int16_t  *ulsch_llr,
                         uint32_t nb_rb,
                         uint32_t nb_re,
@@ -110,12 +110,12 @@ void nr_ulsch_16qam_llr(int32_t *rxdataF_comp,
 
 #if defined(__x86_64__) || defined(__i386__)
 #ifdef __AVX2__
-    ch_mag = (__m256i*)&ul_ch_mag[0][(symbol*(off+(nb_rb*12)))];
+    ch_mag = (__m256i*)&ul_ch_mag[(symbol*(off+(nb_rb*12)))];
 #else
-    ch_mag = (__m128i*)&ul_ch_mag[0][(symbol*(off+(nb_rb*12)))];
+    ch_mag = (__m128i*)&ul_ch_mag[(symbol*(off+(nb_rb*12)))];
 #endif
 #elif defined(__arm__)
-  ch_mag = (int16x8_t*)&ul_ch_mag[0][(symbol*nb_rb*12)];
+  ch_mag = (int16x8_t*)&ul_ch_mag[(symbol*nb_rb*12)];
 #endif
 
 #ifdef __AVX2__
@@ -231,8 +231,8 @@ void nr_ulsch_16qam_llr(int32_t *rxdataF_comp,
 //----------------------------------------------------------------------------------------------
 
 void nr_ulsch_64qam_llr(int32_t *rxdataF_comp,
-                        int32_t **ul_ch_mag,
-                        int32_t **ul_ch_magb,
+                        int32_t *ul_ch_mag,
+                        int32_t *ul_ch_magb,
                         int16_t  *ulsch_llr,
                         uint32_t nb_rb,
                         uint32_t nb_re,
@@ -265,15 +265,15 @@ void nr_ulsch_64qam_llr(int32_t *rxdataF_comp,
 
 #if defined(__x86_64__) || defined(__i386__)
 #ifdef __AVX2__
-  ch_mag = (__m256i*)&ul_ch_mag[0][(symbol*(off+(nb_rb*12)))];
-  ch_magb = (__m256i*)&ul_ch_magb[0][(symbol*(off+(nb_rb*12)))];
+  ch_mag = (__m256i*)&ul_ch_mag[(symbol*(off+(nb_rb*12)))];
+  ch_magb = (__m256i*)&ul_ch_magb[(symbol*(off+(nb_rb*12)))];
 #else
-  ch_mag = (__m128i*)&ul_ch_mag[0][(symbol*nb_rb*12)];
-  ch_magb = (__m128i*)&ul_ch_magb[0][(symbol*nb_rb*12)];
+  ch_mag = (__m128i*)&ul_ch_mag[(symbol*nb_rb*12)];
+  ch_magb = (__m128i*)&ul_ch_magb[(symbol*nb_rb*12)];
 #endif
 #elif defined(__arm__)
-  ch_mag = (int16x8_t*)&ul_ch_mag[0][(symbol*nb_rb*12)];
-  ch_magb = (int16x8_t*)&ul_ch_magb[0][(symbol*nb_rb*12)];
+  ch_mag = (int16x8_t*)&ul_ch_mag[(symbol*nb_rb*12)];
+  ch_magb = (int16x8_t*)&ul_ch_magb[(symbol*nb_rb*12)];
 #endif
 
 #ifdef __AVX2__
@@ -471,8 +471,8 @@ void nr_ulsch_64qam_llr(int32_t *rxdataF_comp,
 
 
 void nr_ulsch_compute_llr(int32_t *rxdataF_comp,
-                          int32_t **ul_ch_mag,
-                          int32_t **ul_ch_magb,
+                          int32_t *ul_ch_mag,
+                          int32_t *ul_ch_magb,
                           int16_t *ulsch_llr,
                           uint32_t nb_rb,
                           uint32_t nb_re,
diff --git a/openair1/PHY/NR_TRANSPORT/pucch_rx.c b/openair1/PHY/NR_TRANSPORT/pucch_rx.c
index fa177b98f50..85461df4414 100644
--- a/openair1/PHY/NR_TRANSPORT/pucch_rx.c
+++ b/openair1/PHY/NR_TRANSPORT/pucch_rx.c
@@ -190,7 +190,7 @@ void nr_decode_pucch0(PHY_VARS_gNB *gNB,
 	      pucch_pdu->bit_len_harq,pucch_pdu->sr_flag);
 
   NR_gNB_UCI_STATS_t *uci_stats=NULL;
-  NR_gNB_UCI_STATS_t *first_uci_stats=NULL;
+  NR_gNB_UCI_STATS_t *first_uci_stats = gNB->uci_stats;
   for (int i=0;i<NUMBER_OF_NR_UCI_STATS_MAX;i++)
      if (gNB->uci_stats[i].rnti == pucch_pdu->rnti) {
         uci_stats = &gNB->uci_stats[i];
@@ -278,16 +278,30 @@ void nr_decode_pucch0(PHY_VARS_gNB *gNB,
   uint8_t maxpos=0;
   uint8_t index=0;
 
+  int nb_re_pucch = 12*pucch_pdu->prb_size;  // prb size is 1
+  int32_t rp[frame_parms->nb_antennas_rx][pucch_pdu->nr_of_symbols][nb_re_pucch],*tmp_rp;
+
   for (int l=0; l<pucch_pdu->nr_of_symbols; l++) {
     l2 = l+pucch_pdu->start_symbol_index;
+
     re_offset[l] = (12*prb_offset[l]) + frame_parms->first_carrier_offset;
     if (re_offset[l]>= frame_parms->ofdm_symbol_size)
       re_offset[l]-=frame_parms->ofdm_symbol_size;
-  
-    AssertFatal(re_offset[l]+12 < frame_parms->ofdm_symbol_size,"pucch straddles DC carrier, handle this!\n");
+
     for (int aa=0;aa<frame_parms->nb_antennas_rx;aa++) {
-      c16_t *r=(c16_t*)&rxdataF[aa][soffset+(l2*frame_parms->ofdm_symbol_size)+re_offset[l]];
-      for (n=0;n<12;n++) {
+      tmp_rp = &rxdataF[aa][soffset + l2*frame_parms->ofdm_symbol_size];
+      if(re_offset[l] + nb_re_pucch > frame_parms->ofdm_symbol_size) {
+        int neg_length = frame_parms->ofdm_symbol_size-re_offset[l];
+        int pos_length = nb_re_pucch-neg_length;
+        memcpy1((void*)rp[aa][l],(void*)&tmp_rp[re_offset[l]],neg_length*sizeof(int32_t));
+        memcpy1((void*)&rp[aa][l][neg_length],(void*)tmp_rp,pos_length*sizeof(int32_t));
+      }
+      else
+        memcpy1((void*)rp[aa][l],(void*)&tmp_rp[re_offset[l]],nb_re_pucch*sizeof(int32_t));
+
+      c16_t *r = (c16_t*)&rp[aa][l];
+
+      for (n=0;n<nb_re_pucch;n++) {
         xr[aa][l][n].r = (int32_t)x_re[l][n] * r[n].r + (int32_t)x_im[l][n] * r[n].i;
         xr[aa][l][n].i = (int32_t)x_re[l][n] * r[n].i - (int32_t)x_im[l][n] * r[n].r;
 #ifdef DEBUG_NR_PUCCH_RX
@@ -317,8 +331,8 @@ void nr_decode_pucch0(PHY_VARS_gNB *gNB,
           corr[aa][l].r += xr[aa][l][n].r * idft12_re[seq_index][n] + xr[aa][l][n].i * idft12_im[seq_index][n];
           corr[aa][l].i += xr[aa][l][n].r * idft12_im[seq_index][n] - xr[aa][l][n].i * idft12_re[seq_index][n];
         }
-	corr[aa][l].r >>= 31;
-	corr[aa][l].i >>= 31;
+        corr[aa][l].r >>= 31;
+        corr[aa][l].i >>= 31;
       }
     }
     LOG_D(PHY,"PUCCH IDFT[%d/%d] = (%ld,%ld)=>%f\n",
@@ -385,9 +399,7 @@ void nr_decode_pucch0(PHY_VARS_gNB *gNB,
 		   gNB->measurements.n0_subband_power_tot_dB[prb_offset[1]]);
   int SNRtimes10,sigenergy=0;
   for (int aa=0;aa<frame_parms->nb_antennas_rx;aa++)
-    sigenergy += signal_energy_nodc(&rxdataF[aa][soffset+
-                                                 (pucch_pdu->start_symbol_index*frame_parms->ofdm_symbol_size)+
-                                                 re_offset[0]],12);
+    sigenergy += signal_energy_nodc(rp[aa][0],12);
   SNRtimes10 = xrtmag_dBtimes10-(10*max_n0);
   int cqi;
   if (SNRtimes10 < -640) cqi=0;
@@ -1545,7 +1557,7 @@ void nr_decode_pucch2(PHY_VARS_gNB *gNB,
 #ifdef DEBUG_NR_PUCCH_RX
     printf("cw_ML %d, metric %d dB\n",cw_ML,corr_dB);
 #endif
-    LOG_D(PHY,"slot %d PUCCH2 cw_ML %d, metric %d dB\n",slot,cw_ML,corr_dB);
+    LOG_D(PHY,"slot %d PUCCH2 cw_ML %d, metric %d dB\n", slot, cw_ML, corr_dB);
 
     decodedPayload[0]=(uint64_t)cw_ML;
   }
diff --git a/openair1/PHY/NR_TRANSPORT/srs_rx.c b/openair1/PHY/NR_TRANSPORT/srs_rx.c
index 2d7aefdee08..39c3846db59 100644
--- a/openair1/PHY/NR_TRANSPORT/srs_rx.c
+++ b/openair1/PHY/NR_TRANSPORT/srs_rx.c
@@ -98,7 +98,7 @@ int nr_get_srs_signal(PHY_VARS_gNB *gNB,
                       int slot,
                       nfapi_nr_srs_pdu_t *srs_pdu,
                       nr_srs_info_t *nr_srs_info,
-                      int32_t **srs_received_signal) {
+                      int32_t srs_received_signal[][gNB->frame_parms.ofdm_symbol_size*(1<<srs_pdu->num_symbols)]) {
 
   if(nr_srs_info->sc_list_length == 0) {
     LOG_E(NR_PHY, "(%d.%d) nr_srs_info was not generated yet!\n", frame, slot);
@@ -113,6 +113,7 @@ int nr_get_srs_signal(PHY_VARS_gNB *gNB,
   uint64_t symbol_offset = (n_symbols+l0)*frame_parms->ofdm_symbol_size;
 
   int32_t *rx_signal;
+  bool no_srs_signal = true;
   for (int ant = 0; ant < frame_parms->nb_antennas_rx; ant++) {
 
     memset(srs_received_signal[ant], 0, frame_parms->ofdm_symbol_size*sizeof(int32_t));
@@ -121,6 +122,10 @@ int nr_get_srs_signal(PHY_VARS_gNB *gNB,
     for(int sc_idx = 0; sc_idx < nr_srs_info->sc_list_length; sc_idx++) {
       srs_received_signal[ant][nr_srs_info->sc_list[sc_idx]] = rx_signal[nr_srs_info->sc_list[sc_idx]];
 
+      if (rx_signal[nr_srs_info->sc_list[sc_idx]] != 0) {
+        no_srs_signal = false;
+      }
+
 #ifdef SRS_DEBUG
       uint64_t subcarrier_offset = frame_parms->first_carrier_offset + srs_pdu->bwp_start*12;
       int subcarrier_log = nr_srs_info->sc_list[sc_idx]-subcarrier_offset;
@@ -140,5 +145,11 @@ int nr_get_srs_signal(PHY_VARS_gNB *gNB,
 #endif
     }
   }
-  return 0;
+
+  if (no_srs_signal) {
+    LOG_W(NR_PHY, "No SRS signal\n");
+    return -1;
+  } else {
+    return 0;
+  }
 }
\ No newline at end of file
diff --git a/openair1/PHY/NR_UE_ESTIMATION/filt16a_32.c b/openair1/PHY/NR_UE_ESTIMATION/filt16a_32.c
index 7fb73627798..5e2fc853873 100644
--- a/openair1/PHY/NR_UE_ESTIMATION/filt16a_32.c
+++ b/openair1/PHY/NR_UE_ESTIMATION/filt16a_32.c
@@ -120,7 +120,7 @@ short filt16a_m3_dc[16] = {
 -9831,-6554,-3277,0,3276,6553,9830,16384,12288,8192,4096,0,0,0,0,0};
 
 short filt16a_1[16] = {
-16384,16384,16384,16384,16384,16384,16384,16384,16384,16384,16384,16384};
+16384,16384,16384,16384,16384,16384,16384,16384,16384,16384,16384,16384,0,0,0,0};
 
 short filt16a_2l0[16] = {
 16384,12288,8192,4096,-4096,0,0,0,0,0,0,0,0,0,0,0};
@@ -190,10 +190,10 @@ short filt8_mm1[8]= {
 0,0,0,0,8192,16384,8192,0};
 
 short filt8_dcl1[8]= {
-0,0,0,16384,12288,8192,4096,0};
+0,0,16384,12288,8192,4096,0,0};
 
 short filt8_dcr1[8]= {
-0,0,0,0,4096,8192,12288,16384};
+0,0,0,4096,8192,12288,16384,0};
 
 short filt8_dcl1_h[8]= {
 0,16384,12288,8192,4096,0,0,0};
@@ -309,4 +309,17 @@ short filt16_middle4[16] = {
     4096,8192,8192,8192,8192,8192,8192,8192,4096,0,0,0,0,0,0,0};
 
 short filt16_end[16] = {
-    4096,8192,8192,8192,12288,16384,16384,16384,0,0,0,0,0,0,0,0};
\ No newline at end of file
+    4096,8192,8192,8192,12288,16384,16384,16384,0,0,0,0,0,0,0,0};
+
+// CSI-RS
+short filt24_start[24] = {
+    12288,11605,10923,10240,9557,8875,8192,7509,6827,6144,5461,4779,
+    0,0,0,0,0,0,0,0,0,0,0,0};
+
+short filt24_end[24] = {
+    4096,4779,5461,6144,6827,7509,8192,8875,9557,10240,10923,11605,
+    16384,16384,16384,16384,16384,16384,16384,16384,16384,16384,16384,16384};
+
+short filt24_middle[24] = {
+    4096,4779,5461,6144,6827,7509,8192,8875,9557,10240,10923,11605,
+    12288,11605,10923,10240,9557,8875,8192,7509,6827,6144,5461,4779};
diff --git a/openair1/PHY/NR_UE_ESTIMATION/filt16a_32.h b/openair1/PHY/NR_UE_ESTIMATION/filt16a_32.h
index f88bef56a0a..3bc802ce7a4 100644
--- a/openair1/PHY/NR_UE_ESTIMATION/filt16a_32.h
+++ b/openair1/PHY/NR_UE_ESTIMATION/filt16a_32.h
@@ -211,4 +211,10 @@ extern short filt8_end[8];
 extern short filt16_start[16];
 extern short filt16_middle4[16];
 extern short filt16_end[16];
+
+/*CSI-RS*/
+extern short filt24_start[24];
+extern short filt24_end[24];
+extern short filt24_middle[24];
+
 #endif
diff --git a/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c b/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
index 9756f1105f3..76eb901c876 100644
--- a/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
+++ b/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
@@ -567,6 +567,8 @@ int nr_prs_channel_estimation(uint8_t gNB_id,
   return(0);
 }
 
+#define CH_INTERP 0
+#define NO_INTERP 1
 
 /* Generic function to find the peak of channel estimation buffer */
 void peak_estimator(int32_t *buffer, int32_t buf_len, int32_t *peak_idx, int32_t *peak_val)
@@ -1029,7 +1031,7 @@ int nr_pdcch_channel_estimation(PHY_VARS_NR_UE *ue,
   unsigned char aarx;
   unsigned short k;
   unsigned int pilot_cnt;
-  int16_t ch[2],*pil,*rxF,*dl_ch,*fl,*fm,*fr;
+  int16_t ch[2],*pil,*rxF,*dl_ch;
   int ch_offset,symbol_offset;
 
   int **rxdataF=ue->common_vars.common_vars_rx_data_per_thread[proc->thread_id].rxdataF;
@@ -1044,9 +1046,11 @@ int nr_pdcch_channel_estimation(PHY_VARS_NR_UE *ue,
          proc->thread_id, gNB_id,ch_offset,ue->frame_parms.ofdm_symbol_size,ue->frame_parms.Ncp,Ns,symbol);
 #endif
 
-  fl = filt16a_l1;
-  fm = filt16a_m1;
-  fr = filt16a_r1;
+#if CH_INTERP
+  int16_t *fl = filt16a_l1;
+  int16_t *fm = filt16a_m1;
+  int16_t *fr = filt16a_r1;
+#endif
 
   // checking if re-initialization of scrambling IDs is needed (should be done here but scrambling ID for PDCCH is not taken from RRC)
   if (scrambling_id != ue->scramblingID_pdcch){
@@ -1075,6 +1079,7 @@ int nr_pdcch_channel_estimation(PHY_VARS_NR_UE *ue,
 
     printf("dl_ch addr %p\n",dl_ch);
 #endif
+  #if CH_INTERP
     //    if ((ue->frame_parms.N_RB_DL&1)==0) {
     // Treat first 2 pilots specially (left edge)
     ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
@@ -1203,6 +1208,33 @@ int nr_pdcch_channel_estimation(PHY_VARS_NR_UE *ue,
       rxF += 8;
       k   += 4;
     }
+  #else //ELSE CH_INTERP
+    int ch_sum[2] = {0, 0};
+
+    for (pilot_cnt = 0; pilot_cnt < 3*nb_rb_coreset; pilot_cnt++) {
+      if (k >= ue->frame_parms.ofdm_symbol_size) {
+        k  -= ue->frame_parms.ofdm_symbol_size;
+        rxF = (int16_t *)&rxdataF[aarx][(symbol_offset+k+1)];
+      }
+#ifdef DEBUG_PDCCH
+      printf("pilot[%d] = (%d, %d)\trxF[%d] = (%d, %d)\n", pilot_cnt, pil[0], pil[1], k+1, rxF[0], rxF[1]);
+#endif
+      ch_sum[0] += (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
+      ch_sum[1] += (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
+      pil += 2;
+      rxF += 8;
+      k   += 4;
+
+      if (pilot_cnt % 3 == 2) {
+        ch[0] = ch_sum[0] / 3;
+        ch[1] = ch_sum[1] / 3;
+        multadd_real_vector_complex_scalar(filt16a_1, ch, dl_ch, 16);
+        dl_ch += 24;
+        ch_sum[0] = 0;
+        ch_sum[1] = 0;
+      }
+    }
+  #endif //END CH_INTERP
 
 
     //}
@@ -1235,7 +1267,7 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
   int ch_offset,symbol_offset;
 
   uint8_t nushift;
-  int **dl_ch_estimates  =ue->pdsch_vars[proc->thread_id][gNB_id]->dl_ch_estimates;
+  int **dl_ch_estimates = ue->pdsch_vars[proc->thread_id][gNB_id]->dl_ch_estimates;
   int **rxdataF=ue->common_vars.common_vars_rx_data_per_thread[proc->thread_id].rxdataF;
 
   ch_offset     = ue->frame_parms.ofdm_symbol_size*symbol;
@@ -1245,7 +1277,7 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
   k = bwp_start_subcarrier;
   int re_offset = k;
 
-#ifdef DEBUG_CH
+#ifdef DEBUG_PDSCH
   printf("PDSCH Channel Estimation : ThreadId %d, gNB_id %d ch_offset %d, symbol_offset %d OFDM size %d, Ncp=%d, Ns=%d, k=%d symbol %d\n",proc->thread_id, gNB_id,ch_offset,symbol_offset,ue->frame_parms.ofdm_symbol_size,
          ue->frame_parms.Ncp,Ns,k, symbol);
 #endif
@@ -1360,7 +1392,7 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
     printf("rxF addr %p p %d\n", rxF,p);
     printf("dl_ch addr %p nushift %d\n",dl_ch,nushift);
 #endif
-    if (config_type == NFAPI_NR_DMRS_TYPE1 && ue->prb_interpolation == 0) {
+    if (config_type == NFAPI_NR_DMRS_TYPE1 && ue->chest_freq == 0) {
 
       // Treat first 2 pilots specially (left edge)
       ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
@@ -1537,7 +1569,7 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
                      8);
         }
       }
-    } else if (config_type == NFAPI_NR_DMRS_TYPE2 && ue->prb_interpolation == 0){ //pdsch_dmrs_type2  |dmrs_r,dmrs_l,0,0,0,0,dmrs_r,dmrs_l,0,0,0,0|
+    } else if (config_type == NFAPI_NR_DMRS_TYPE2 && ue->chest_freq == 0){ //pdsch_dmrs_type2  |dmrs_r,dmrs_l,0,0,0,0,dmrs_r,dmrs_l,0,0,0,0|
 
       // Treat first 4 pilots specially (left edge)
       ch_l[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
@@ -1797,6 +1829,10 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
       ch[0] = ch_0 / 6;
       ch[1] = ch_1 / 6;
 
+#if NO_INTERP
+      for (int i=0;i<12;i++) ((int32_t*)dl_ch)[i] = *(int32_t*)ch;
+      dl_ch+=24;
+#else
       multadd_real_vector_complex_scalar(filt8_avlip0,
                                          ch,
                                          dl_ch,
@@ -1814,6 +1850,7 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
                                          dl_ch,
                                          8);
       dl_ch -= 24;
+#endif
 
       for (pilot_cnt=6; pilot_cnt<6*(nb_rb_pdsch-1); pilot_cnt += 6) {
 
@@ -1861,6 +1898,11 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
 
         ch[0] = ch_0 / 6;
         ch[1] = ch_1 / 6;
+
+#if NO_INTERP
+        for (int i=0;i<12;i++) ((int32_t*)dl_ch)[i] = *(int32_t*)ch;
+        dl_ch+=24;
+#else
         dl_ch[6] += (ch[0] * 1365)>>15; // 1/12*16384
         dl_ch[7] += (ch[1] * 1365)>>15; // 1/12*16384
 
@@ -1882,6 +1924,7 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
                                            dl_ch,
                                            8);
         dl_ch -= 16;
+#endif
       }
       ch_0 = ((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15;
       ch_1 = ((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15;
@@ -1928,6 +1971,10 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
       ch[0] = ch_0 / 6;
       ch[1] = ch_1 / 6;
 
+#if NO_INTERP
+      for (int i=0;i<12;i++) ((int32_t*)dl_ch)[i] = *(int32_t*)ch;
+      dl_ch+=24;
+#else
       dl_ch[6] += (ch[0] * 1365)>>15; // 1/12*16384
       dl_ch[7] += (ch[1] * 1365)>>15; // 1/12*16384
 
@@ -1942,6 +1989,7 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
                                          ch,
                                          dl_ch,
                                          8);
+#endif
     }
     else  { // this is case without frequency-domain linear interpolation, just take average of LS channel estimates of 4 DMRS REs and use a common value for the whole PRB
       int32_t ch_0, ch_1;
@@ -1977,6 +2025,10 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
       ch[0] = ch_0 / 4;
       ch[1] = ch_1 / 4;
 
+#if NO_INTERP
+      for (int i=0;i<12;i++) ((int32_t*)dl_ch)[i] = *(int32_t*)ch;
+      dl_ch+=24;
+#else
       multadd_real_vector_complex_scalar(filt8_avlip0,
                                          ch,
                                          dl_ch,
@@ -1994,6 +2046,7 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
                                          dl_ch,
                                          8);
       dl_ch -= 24;
+#endif
 
       for (pilot_cnt=4; pilot_cnt<4*(nb_rb_pdsch-1); pilot_cnt += 4) {
         int32_t ch_0, ch_1;
@@ -2029,6 +2082,10 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
         ch[0] = ch_0 / 4;
         ch[1] = ch_1 / 4;
 
+#if NO_INTERP
+        for (int i=0;i<12;i++) ((int32_t*)dl_ch)[i] = *(int32_t*)ch;
+        dl_ch+=24;
+#else
         dl_ch[6] += (ch[0] * 1365)>>15; // 1/12*16384
         dl_ch[7] += (ch[1] * 1365)>>15; // 1/12*16384
 
@@ -2050,6 +2107,7 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
                                            dl_ch,
                                            8);
         dl_ch -= 16;
+#endif
       }
 
       ch_0 = ((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15;
@@ -2083,6 +2141,10 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
       ch[0] = ch_0 / 4;
       ch[1] = ch_1 / 4;
 
+#if NO_INTERP
+      for (int i=0;i<12;i++) ((int32_t*)dl_ch)[i] = *(int32_t*)ch;
+      dl_ch+=24;
+#else
       dl_ch[6] += (ch[0] * 1365)>>15; // 1/12*16384
       dl_ch[7] += (ch[1] * 1365)>>15; // 1/12*16384
 
@@ -2097,6 +2159,7 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
                                          ch,
                                          dl_ch,
                                          8);
+#endif
     }
 #ifdef DEBUG_PDSCH
     dl_ch = (int16_t *)&dl_ch_estimates[p*ue->frame_parms.nb_antennas_rx+aarx][ch_offset];
@@ -2147,7 +2210,6 @@ void nr_pdsch_ptrs_processing(PHY_VARS_NR_UE *ue,
                               RX_type_t rx_type)
 {
   //#define DEBUG_DL_PTRS 1
-  int16_t *phase_per_symbol = NULL;
   int32_t *ptrs_re_symbol = NULL;
   int8_t   ret = 0;
   /* harq specific variables */
@@ -2191,20 +2253,20 @@ void nr_pdsch_ptrs_processing(PHY_VARS_NR_UE *ue,
   }
   /* loop over antennas */
   for (int aarx=0; aarx<frame_parms->nb_antennas_rx; aarx++) {
-    phase_per_symbol = (int16_t*)pdsch_vars[gNB_id]->ptrs_phase_per_slot[aarx];
+    c16_t *phase_per_symbol = (c16_t*)pdsch_vars[gNB_id]->ptrs_phase_per_slot[aarx];
     ptrs_re_symbol = (int32_t*)pdsch_vars[gNB_id]->ptrs_re_per_slot[aarx];
     ptrs_re_symbol[symbol] = 0;
-    phase_per_symbol[(2*symbol)+1] = 0; // Imag
+    phase_per_symbol[symbol].i = 0; // Imag
     /* set DMRS estimates to 0 angle with magnitude 1 */
     if(is_dmrs_symbol(symbol,*dmrsSymbPos)) {
       /* set DMRS real estimation to 32767 */
-      phase_per_symbol[2*symbol]=(int16_t)((1<<15)-1); // 32767
+      phase_per_symbol[symbol].r=INT16_MAX; // 32767
 #ifdef DEBUG_DL_PTRS
-      printf("[PHY][PTRS]: DMRS Symbol %d -> %4d + j*%4d\n", symbol, phase_per_symbol[2*symbol],phase_per_symbol[(2*symbol)+1]);
+      printf("[PHY][PTRS]: DMRS Symbol %d -> %4d + j*%4d\n", symbol, phase_per_symbol[symbol].r,phase_per_symbol[symbol].i);
 #endif
     }
     else { // real ptrs value is set to 0
-      phase_per_symbol[2*symbol] = 0; // Real
+      phase_per_symbol[symbol].r = 0; // Real
     }
 
     if(dlsch0_harq->status == ACTIVE) {
@@ -2226,12 +2288,11 @@ void nr_pdsch_ptrs_processing(PHY_VARS_NR_UE *ue,
         /*------------------------------------------------------------------------------------------------------- */
         nr_ptrs_cpe_estimation(*K_ptrs,*ptrsReOffset,*dmrsConfigType,*nb_rb,
                                rnti,
-                               (int16_t *)&pdsch_vars[gNB_id]->dl_ch_ptrs_estimates_ext[aarx][symbol*nb_re_pdsch],
                                nr_slot_rx,
                                symbol,frame_parms->ofdm_symbol_size,
                                (int16_t*)&pdsch_vars[gNB_id]->rxdataF_comp0[aarx][(symbol * nb_re_pdsch)],
                                ue->nr_gold_pdsch[gNB_id][nr_slot_rx][symbol][0],
-                               &phase_per_symbol[2* symbol],
+                               (int16_t*)&phase_per_symbol[symbol],
                                &ptrs_re_symbol[symbol]);
       }
     }// HARQ 0
@@ -2243,7 +2304,7 @@ void nr_pdsch_ptrs_processing(PHY_VARS_NR_UE *ue,
       /*------------------------------------------------------------------------------------------------------- */
       /* If L-PTRS is > 0 then we need interpolation */
       if(*L_ptrs > 0) {
-        ret = nr_ptrs_process_slot(*dmrsSymbPos, *ptrsSymbPos, phase_per_symbol, *startSymbIndex, *nbSymb);
+        ret = nr_ptrs_process_slot(*dmrsSymbPos, *ptrsSymbPos, (int16_t*)phase_per_symbol, *startSymbIndex, *nbSymb);
         if(ret != 0) {
           LOG_W(PHY,"[PTRS] Compensation is skipped due to error in PTRS slot processing !!\n");
         }
@@ -2262,11 +2323,11 @@ void nr_pdsch_ptrs_processing(PHY_VARS_NR_UE *ue,
         /* Skip rotation if the slot processing is wrong */
         if((!is_dmrs_symbol(i,*dmrsSymbPos)) && (ret == 0)) {
 #ifdef DEBUG_DL_PTRS
-          printf("[PHY][DL][PTRS]: Rotate Symbol %2d with  %d + j* %d\n", i, phase_per_symbol[2* i],phase_per_symbol[(2* i) +1]);
+          printf("[PHY][DL][PTRS]: Rotate Symbol %2d with  %d + j* %d\n", i, phase_per_symbol[i].r,phase_per_symbol[i].i);
 #endif
-          rotate_cpx_vector((int16_t*)&pdsch_vars[gNB_id]->rxdataF_comp0[aarx][(i * (*nb_rb) * NR_NB_SC_PER_RB)],
-                            &phase_per_symbol[2* i],
-                            (int16_t*)&pdsch_vars[gNB_id]->rxdataF_comp0[aarx][(i * (*nb_rb) * NR_NB_SC_PER_RB)],
+          rotate_cpx_vector((c16_t*)&pdsch_vars[gNB_id]->rxdataF_comp0[aarx][(i * (*nb_rb) * NR_NB_SC_PER_RB)],
+                            &phase_per_symbol[i],
+                            (c16_t*)&pdsch_vars[gNB_id]->rxdataF_comp0[aarx][(i * (*nb_rb) * NR_NB_SC_PER_RB)],
                             ((*nb_rb) * NR_NB_SC_PER_RB), 15);
         }// if not DMRS Symbol
       }// symbol loop
diff --git a/openair1/PHY/NR_UE_TRANSPORT/csi_rx.c b/openair1/PHY/NR_UE_TRANSPORT/csi_rx.c
new file mode 100644
index 00000000000..43944b2fa87
--- /dev/null
+++ b/openair1/PHY/NR_UE_TRANSPORT/csi_rx.c
@@ -0,0 +1,969 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+/***********************************************************************
+*
+* FILENAME    :  csi_rx.c
+*
+* MODULE      :
+*
+* DESCRIPTION :  function to receive the channel state information
+*
+************************************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "executables/nr-softmodem-common.h"
+#include "nr_transport_proto_ue.h"
+#include "PHY/phy_extern_nr_ue.h"
+#include "common/utils/nr/nr_common.h"
+#include "PHY/NR_TRANSPORT/nr_transport_proto.h"
+#include "PHY/NR_UE_ESTIMATION/filt16a_32.h"
+
+// 10*log10(pow(2,30))
+#define pow_2_30_dB 90
+
+//#define NR_CSIRS_DEBUG
+//#define NR_CSIIM_DEBUG
+
+void nr_det_A_MF_2x2(int32_t *a_mf_00,
+                     int32_t *a_mf_01,
+                     int32_t *a_mf_10,
+                     int32_t *a_mf_11,
+                     int32_t *det_fin,
+                     const unsigned short nb_rb) {
+
+  int16_t nr_conjug2[8]__attribute__((aligned(16))) = {1,-1,1,-1,1,-1,1,-1} ;
+
+  __m128i ad_re_128, bc_re_128, det_re_128;
+
+  __m128i *a_mf_00_128 = (__m128i *)a_mf_00;
+  __m128i *a_mf_01_128 = (__m128i *)a_mf_01;
+  __m128i *a_mf_10_128 = (__m128i *)a_mf_10;
+  __m128i *a_mf_11_128 = (__m128i *)a_mf_11;
+  __m128i *det_fin_128 = (__m128i *)det_fin;
+
+  for (int rb = 0; rb<3*nb_rb; rb++) {
+
+    //complex multiplication (I_a+jQ_a)(I_d+jQ_d) = (I_aI_d - Q_aQ_d) + j(Q_aI_d + I_aQ_d)
+    //The imag part is often zero, we compute only the real part
+    ad_re_128 = _mm_sign_epi16(a_mf_00_128[0],*(__m128i*)&nr_conjug2[0]);
+    ad_re_128 = _mm_madd_epi16(ad_re_128,a_mf_11_128[0]); //Re: I_a0*I_d0 - Q_a1*Q_d1
+
+    //complex multiplication (I_b+jQ_b)(I_c+jQ_c) = (I_bI_c - Q_bQ_c) + j(Q_bI_c + I_bQ_c)
+    //The imag part is often zero, we compute only the real part
+    bc_re_128 = _mm_sign_epi16(a_mf_01_128[0],*(__m128i*)&nr_conjug2[0]);
+    bc_re_128 = _mm_madd_epi16(bc_re_128,a_mf_10_128[0]); //Re: I_b0*I_c0 - Q_b1*Q_c1
+
+    det_re_128 = _mm_sub_epi32(ad_re_128, bc_re_128);
+
+    //det in Q30 format
+    det_fin_128[0] = _mm_abs_epi32(det_re_128);
+
+    det_fin_128+=1;
+    a_mf_00_128+=1;
+    a_mf_01_128+=1;
+    a_mf_10_128+=1;
+    a_mf_11_128+=1;
+  }
+  _mm_empty();
+  _m_empty();
+}
+
+void nr_squared_matrix_element(int32_t *a,
+                               int32_t *a_sq,
+                               const unsigned short nb_rb) {
+  __m128i *a_128 = (__m128i *)a;
+  __m128i *a_sq_128 = (__m128i *)a_sq;
+  for (int rb=0; rb<3*nb_rb; rb++) {
+    a_sq_128[0] = _mm_madd_epi16(a_128[0], a_128[0]);
+    a_sq_128+=1;
+    a_128+=1;
+  }
+  _mm_empty();
+  _m_empty();
+}
+
+void nr_numer_2x2(int32_t *a_00_sq,
+                  int32_t *a_01_sq,
+                  int32_t *a_10_sq,
+                  int32_t *a_11_sq,
+                  int32_t *num_fin,
+                  const unsigned short nb_rb) {
+  __m128i *a_00_sq_128 = (__m128i *)a_00_sq;
+  __m128i *a_01_sq_128 = (__m128i *)a_01_sq;
+  __m128i *a_10_sq_128 = (__m128i *)a_10_sq;
+  __m128i *a_11_sq_128 = (__m128i *)a_11_sq;
+  __m128i *num_fin_128 = (__m128i *)num_fin;
+  for (int rb=0; rb<3*nb_rb; rb++) {
+    __m128i sq_a_plus_sq_d_128 = _mm_add_epi32(a_00_sq_128[0], a_11_sq_128[0]);
+    __m128i sq_b_plus_sq_c_128 = _mm_add_epi32(a_01_sq_128[0], a_10_sq_128[0]);
+    num_fin_128[0] = _mm_add_epi32(sq_a_plus_sq_d_128, sq_b_plus_sq_c_128);
+    num_fin_128+=1;
+    a_00_sq_128+=1;
+    a_01_sq_128+=1;
+    a_10_sq_128+=1;
+    a_11_sq_128+=1;
+  }
+  _mm_empty();
+  _m_empty();
+}
+
+bool is_csi_rs_in_symbol(const fapi_nr_dl_config_csirs_pdu_rel15_t csirs_config_pdu, const int symbol) {
+
+  bool ret = false;
+
+  // 38.211-Table 7.4.1.5.3-1: CSI-RS locations within a slot
+  switch(csirs_config_pdu.row){
+    case 1:
+    case 2:
+    case 3:
+    case 4:
+    case 6:
+    case 9:
+      if(symbol == csirs_config_pdu.symb_l0) {
+        ret = true;
+      }
+      break;
+    case 5:
+    case 7:
+    case 8:
+    case 10:
+    case 11:
+    case 12:
+      if(symbol == csirs_config_pdu.symb_l0 || symbol == (csirs_config_pdu.symb_l0+1) ) {
+        ret = true;
+      }
+      break;
+    case 13:
+    case 14:
+    case 16:
+    case 17:
+      if(symbol == csirs_config_pdu.symb_l0 || symbol == (csirs_config_pdu.symb_l0+1) ||
+          symbol == csirs_config_pdu.symb_l1 || symbol == (csirs_config_pdu.symb_l1+1)) {
+        ret = true;
+      }
+      break;
+    case 15:
+    case 18:
+      if(symbol == csirs_config_pdu.symb_l0 || symbol == (csirs_config_pdu.symb_l0+1) || symbol == (csirs_config_pdu.symb_l0+2) ) {
+        ret = true;
+      }
+      break;
+    default:
+      AssertFatal(0==1, "Row %d is not valid for CSI Table 7.4.1.5.3-1\n", csirs_config_pdu.row);
+  }
+
+  return ret;
+}
+
+int nr_get_csi_rs_signal(const PHY_VARS_NR_UE *ue,
+                         const UE_nr_rxtx_proc_t *proc,
+                         const fapi_nr_dl_config_csirs_pdu_rel15_t *csirs_config_pdu,
+                         const nr_csi_info_t *nr_csi_info,
+                         const uint8_t N_cdm_groups,
+                         const uint8_t CDM_group_size,
+                         const uint8_t k_prime,
+                         const uint8_t l_prime,
+                         const uint8_t *j_cdm,
+                         const uint8_t *k_overline,
+                         const uint8_t *l_overline,
+                         int32_t csi_rs_received_signal[][ue->frame_parms.samples_per_slot_wCP],
+                         uint32_t *rsrp,
+                         int *rsrp_dBm) {
+
+  int32_t **rxdataF  =  ue->common_vars.common_vars_rx_data_per_thread[proc->thread_id].rxdataF;
+  const NR_DL_FRAME_PARMS *frame_parms = &ue->frame_parms;
+  uint16_t meas_count = 0;
+  uint32_t rsrp_sum = 0;
+
+  for (int ant_rx = 0; ant_rx < frame_parms->nb_antennas_rx; ant_rx++) {
+
+    for (int rb = csirs_config_pdu->start_rb; rb < (csirs_config_pdu->start_rb+csirs_config_pdu->nr_of_rbs); rb++) {
+
+      // for freq density 0.5 checks if even or odd RB
+      if(csirs_config_pdu->freq_density <= 1 && csirs_config_pdu->freq_density != (rb % 2)) {
+        continue;
+      }
+
+      for (int cdm_id = 0; cdm_id < N_cdm_groups; cdm_id++) {
+        for (int s = 0; s < CDM_group_size; s++)  {
+
+          // loop over frequency resource elements within a group
+          for (int kp = 0; kp <= k_prime; kp++) {
+
+            uint16_t k = (frame_parms->first_carrier_offset + (rb*NR_NB_SC_PER_RB)+k_overline[cdm_id] + kp) % frame_parms->ofdm_symbol_size;
+
+            // loop over time resource elements within a group
+            for (int lp = 0; lp <= l_prime; lp++) {
+              uint16_t symb = lp + l_overline[cdm_id];
+              uint64_t symbol_offset = symb*frame_parms->ofdm_symbol_size;
+              c16_t *rx_signal = (c16_t*)&rxdataF[ant_rx][symbol_offset];
+              c16_t *rx_csi_rs_signal = (c16_t*)&csi_rs_received_signal[ant_rx][symbol_offset];
+              rx_csi_rs_signal[k].r = rx_signal[k].r;
+              rx_csi_rs_signal[k].i = rx_signal[k].i;
+
+              rsrp_sum += (((int32_t)(rx_csi_rs_signal[k].r)*rx_csi_rs_signal[k].r) +
+                           ((int32_t)(rx_csi_rs_signal[k].i)*rx_csi_rs_signal[k].i));
+
+              meas_count++;
+
+#ifdef NR_CSIRS_DEBUG
+              int dataF_offset = proc->nr_slot_rx*ue->frame_parms.samples_per_slot_wCP;
+              uint16_t port_tx = s+j_cdm[cdm_id]*CDM_group_size;
+              c16_t *tx_csi_rs_signal = (c16_t*)&nr_csi_info->csi_rs_generated_signal[port_tx][symbol_offset+dataF_offset];
+              LOG_I(NR_PHY, "l,k (%2d,%4d) |\tport_tx %d (%4d,%4d)\tant_rx %d (%4d,%4d)\n",
+                    symb,
+                    k,
+                    port_tx+3000,
+                    tx_csi_rs_signal[k].r,
+                    tx_csi_rs_signal[k].i,
+                    ant_rx,
+                    rx_csi_rs_signal[k].r,
+                    rx_csi_rs_signal[k].i);
+#endif
+            }
+          }
+        }
+      }
+    }
+  }
+
+
+  *rsrp = rsrp_sum/meas_count;
+  *rsrp_dBm = dB_fixed(*rsrp) + 30 - pow_2_30_dB
+      - ((int)openair0_cfg[0].rx_gain[0] - (int)openair0_cfg[0].rx_gain_offset[0]) - dB_fixed(ue->frame_parms.ofdm_symbol_size);
+
+#ifdef NR_CSIRS_DEBUG
+  LOG_I(NR_PHY, "RSRP = %i (%i dBm)\n", *rsrp, *rsrp_dBm);
+#endif
+
+  return 0;
+}
+
+uint32_t calc_power_csirs(const uint16_t *x, const fapi_nr_dl_config_csirs_pdu_rel15_t *csirs_config_pdu) {
+  uint64_t sum_x = 0;
+  uint64_t sum_x2 = 0;
+  uint16_t size = 0;
+  for (int rb = csirs_config_pdu->start_rb; rb < (csirs_config_pdu->start_rb+csirs_config_pdu->nr_of_rbs); rb++) {
+    if (csirs_config_pdu->freq_density <= 1 && csirs_config_pdu->freq_density != (rb % 2)) {
+      continue;
+    }
+    sum_x = sum_x + x[rb-csirs_config_pdu->start_rb];
+    sum_x2 = sum_x2 + x[rb]*x[rb-csirs_config_pdu->start_rb];
+    size++;
+  }
+  return sum_x2/size - (sum_x/size)*(sum_x/size);
+}
+
+int nr_csi_rs_channel_estimation(const PHY_VARS_NR_UE *ue,
+                                 const UE_nr_rxtx_proc_t *proc,
+                                 const fapi_nr_dl_config_csirs_pdu_rel15_t *csirs_config_pdu,
+                                 const nr_csi_info_t *nr_csi_info,
+                                 const int32_t **csi_rs_generated_signal,
+                                 const int32_t csi_rs_received_signal[][ue->frame_parms.samples_per_slot_wCP],
+                                 const uint8_t N_cdm_groups,
+                                 const uint8_t CDM_group_size,
+                                 const uint8_t k_prime,
+                                 const uint8_t l_prime,
+                                 const uint8_t N_ports,
+                                 const uint8_t *j_cdm,
+                                 const uint8_t *k_overline,
+                                 const uint8_t *l_overline,
+                                 int32_t csi_rs_ls_estimated_channel[][N_ports][ue->frame_parms.ofdm_symbol_size],
+                                 int32_t csi_rs_estimated_channel_freq[][N_ports][ue->frame_parms.ofdm_symbol_size],
+                                 int16_t *log2_re,
+                                 int16_t *log2_maxh,
+                                 uint32_t *noise_power) {
+
+  const NR_DL_FRAME_PARMS *frame_parms = &ue->frame_parms;
+  const int dataF_offset = proc->nr_slot_rx*ue->frame_parms.samples_per_slot_wCP;
+  *noise_power = 0;
+  int maxh = 0;
+  int count = 0;
+
+  for (int ant_rx = 0; ant_rx < frame_parms->nb_antennas_rx; ant_rx++) {
+
+    /// LS channel estimation
+
+    for(uint16_t port_tx = 0; port_tx<N_ports; port_tx++) {
+      memset(csi_rs_ls_estimated_channel[ant_rx][port_tx], 0, frame_parms->ofdm_symbol_size*sizeof(int32_t));
+    }
+
+    for (int rb = csirs_config_pdu->start_rb; rb < (csirs_config_pdu->start_rb+csirs_config_pdu->nr_of_rbs); rb++) {
+
+      // for freq density 0.5 checks if even or odd RB
+      if(csirs_config_pdu->freq_density <= 1 && csirs_config_pdu->freq_density != (rb % 2)) {
+        continue;
+      }
+
+      for (int cdm_id = 0; cdm_id < N_cdm_groups; cdm_id++) {
+        for (int s = 0; s < CDM_group_size; s++)  {
+
+          uint16_t port_tx = s+j_cdm[cdm_id]*CDM_group_size;
+
+          // loop over frequency resource elements within a group
+          for (int kp = 0; kp <= k_prime; kp++) {
+
+            uint16_t kinit = (frame_parms->first_carrier_offset + rb*NR_NB_SC_PER_RB) % frame_parms->ofdm_symbol_size;
+            uint16_t k = kinit + k_overline[cdm_id] + kp;
+
+            // loop over time resource elements within a group
+            for (int lp = 0; lp <= l_prime; lp++) {
+              uint16_t symb = lp + l_overline[cdm_id];
+              uint64_t symbol_offset = symb*frame_parms->ofdm_symbol_size;
+              c16_t *tx_csi_rs_signal = (c16_t*)&csi_rs_generated_signal[port_tx][symbol_offset+dataF_offset];
+              c16_t *rx_csi_rs_signal = (c16_t*)&csi_rs_received_signal[ant_rx][symbol_offset];
+              c16_t *csi_rs_ls_estimated_channel16 = (c16_t*)&csi_rs_ls_estimated_channel[ant_rx][port_tx][0];
+
+              int16_t csi_rs_ls_estimated_channel_re = (int16_t)(((int32_t)tx_csi_rs_signal[k].r*rx_csi_rs_signal[k].r + (int32_t)tx_csi_rs_signal[k].i*rx_csi_rs_signal[k].i)>>nr_csi_info->csi_rs_generated_signal_bits);
+              int16_t csi_rs_ls_estimated_channel_im = (int16_t)(((int32_t)tx_csi_rs_signal[k].r*rx_csi_rs_signal[k].i - (int32_t)tx_csi_rs_signal[k].i*rx_csi_rs_signal[k].r)>>nr_csi_info->csi_rs_generated_signal_bits);
+
+              // This is not just the LS estimation for each (k,l), but also the sum of the different contributions
+              // for the sake of optimizing the memory used.
+              csi_rs_ls_estimated_channel16[kinit].r += csi_rs_ls_estimated_channel_re;
+              csi_rs_ls_estimated_channel16[kinit].i += csi_rs_ls_estimated_channel_im;
+            }
+          }
+        }
+      }
+    }
+
+#ifdef NR_CSIRS_DEBUG
+    for(int symb = 0; symb < NR_SYMBOLS_PER_SLOT; symb++) {
+      if(!is_csi_rs_in_symbol(*csirs_config_pdu,symb)) {
+        continue;
+      }
+      for(int k = 0; k<frame_parms->ofdm_symbol_size; k++) {
+        LOG_I(NR_PHY, "l,k (%2d,%4d) | ", symb, k);
+        for(uint16_t port_tx = 0; port_tx<N_ports; port_tx++) {
+          uint64_t symbol_offset = symb*frame_parms->ofdm_symbol_size;
+          c16_t *tx_csi_rs_signal = (c16_t*)&csi_rs_generated_signal[port_tx][symbol_offset+dataF_offset];
+          c16_t *rx_csi_rs_signal = (c16_t*)&csi_rs_received_signal[ant_rx][symbol_offset];
+          c16_t *csi_rs_ls_estimated_channel16 = (c16_t*)&csi_rs_ls_estimated_channel[ant_rx][port_tx][0];
+          printf("port_tx %d --> ant_rx %d, tx (%4d,%4d), rx (%4d,%4d), ls (%4d,%4d) | ",
+                 port_tx+3000, ant_rx,
+                 tx_csi_rs_signal[k].r, tx_csi_rs_signal[k].i,
+                 rx_csi_rs_signal[k].r, rx_csi_rs_signal[k].i,
+                 csi_rs_ls_estimated_channel16[k].r, csi_rs_ls_estimated_channel16[k].i);
+        }
+        printf("\n");
+      }
+    }
+#endif
+
+    /// Channel interpolation
+
+    for(uint16_t port_tx = 0; port_tx<N_ports; port_tx++) {
+      memset(csi_rs_estimated_channel_freq[ant_rx][port_tx], 0, frame_parms->ofdm_symbol_size*sizeof(int32_t));
+    }
+
+    for (int rb = csirs_config_pdu->start_rb; rb < (csirs_config_pdu->start_rb+csirs_config_pdu->nr_of_rbs); rb++) {
+
+      // for freq density 0.5 checks if even or odd RB
+      if(csirs_config_pdu->freq_density <= 1 && csirs_config_pdu->freq_density != (rb % 2)) {
+        continue;
+      }
+
+      count++;
+
+      uint16_t k = (frame_parms->first_carrier_offset + rb*NR_NB_SC_PER_RB) % frame_parms->ofdm_symbol_size;
+      for(uint16_t port_tx = 0; port_tx<N_ports; port_tx++) {
+        int16_t *csi_rs_ls_estimated_channel16 = (int16_t*)&csi_rs_ls_estimated_channel[ant_rx][port_tx][k];
+        int16_t *csi_rs_estimated_channel16 = (int16_t *)&csi_rs_estimated_channel_freq[ant_rx][port_tx][k];
+        if( (k == 0) || (k == frame_parms->first_carrier_offset) ) { // Start of OFDM symbol case or first occupied subcarrier case
+          multadd_real_vector_complex_scalar(filt24_start, csi_rs_ls_estimated_channel16, csi_rs_estimated_channel16, 24);
+        } else if( ( (k + NR_NB_SC_PER_RB) >= frame_parms->ofdm_symbol_size) ||
+                   (rb == (csirs_config_pdu->start_rb+csirs_config_pdu->nr_of_rbs-1)) ) { // End of OFDM symbol case or Last occupied subcarrier case
+          multadd_real_vector_complex_scalar(filt24_end, csi_rs_ls_estimated_channel16, csi_rs_estimated_channel16 - 3*sizeof(uint64_t), 24);
+        } else { // Middle case
+          multadd_real_vector_complex_scalar(filt24_middle, csi_rs_ls_estimated_channel16, csi_rs_estimated_channel16 - 3*sizeof(uint64_t), 24);
+        }
+      }
+    }
+
+    /// Power noise estimation
+    uint16_t noise_real[frame_parms->nb_antennas_rx][N_ports][csirs_config_pdu->nr_of_rbs];
+    uint16_t noise_imag[frame_parms->nb_antennas_rx][N_ports][csirs_config_pdu->nr_of_rbs];
+    for (int rb = csirs_config_pdu->start_rb; rb < (csirs_config_pdu->start_rb+csirs_config_pdu->nr_of_rbs); rb++) {
+      if (csirs_config_pdu->freq_density <= 1 && csirs_config_pdu->freq_density != (rb % 2)) {
+        continue;
+      }
+      uint16_t k = (frame_parms->first_carrier_offset + rb*NR_NB_SC_PER_RB) % frame_parms->ofdm_symbol_size;
+      for(uint16_t port_tx = 0; port_tx<N_ports; port_tx++) {
+        c16_t *csi_rs_ls_estimated_channel16 = (c16_t*)&csi_rs_ls_estimated_channel[ant_rx][port_tx][k];
+        c16_t *csi_rs_estimated_channel16 = (c16_t *)&csi_rs_estimated_channel_freq[ant_rx][port_tx][k];
+        noise_real[ant_rx][port_tx][rb-csirs_config_pdu->start_rb] = abs(csi_rs_ls_estimated_channel16->r-csi_rs_estimated_channel16->r);
+        noise_imag[ant_rx][port_tx][rb-csirs_config_pdu->start_rb] = abs(csi_rs_ls_estimated_channel16->i-csi_rs_estimated_channel16->i);
+        maxh = cmax3(maxh, abs(csi_rs_estimated_channel16->r), abs(csi_rs_estimated_channel16->i));
+      }
+    }
+    for(uint16_t port_tx = 0; port_tx<N_ports; port_tx++) {
+      *noise_power += (calc_power_csirs(noise_real[ant_rx][port_tx], csirs_config_pdu) + calc_power_csirs(noise_imag[ant_rx][port_tx],csirs_config_pdu));
+    }
+
+#ifdef NR_CSIRS_DEBUG
+    for(int k = 0; k<frame_parms->ofdm_symbol_size; k++) {
+      int rb = k >= frame_parms->first_carrier_offset ?
+               (k - frame_parms->first_carrier_offset)/NR_NB_SC_PER_RB :
+               (k + frame_parms->ofdm_symbol_size - frame_parms->first_carrier_offset)/NR_NB_SC_PER_RB;
+      LOG_I(NR_PHY, "(k = %4d) |\t", k);
+      for(uint16_t port_tx = 0; port_tx<N_ports; port_tx++) {
+        c16_t *csi_rs_ls_estimated_channel16 = (c16_t*)&csi_rs_ls_estimated_channel[ant_rx][port_tx][0];
+        c16_t *csi_rs_estimated_channel16 = (c16_t *)&csi_rs_estimated_channel_freq[ant_rx][port_tx][0];
+        printf("Channel port_tx %d --> ant_rx %d : ls (%4d,%4d), int (%4d,%4d), noise (%4d,%4d) | ",
+               port_tx+3000, ant_rx,
+               csi_rs_ls_estimated_channel16[k].r, csi_rs_ls_estimated_channel16[k].i,
+               csi_rs_estimated_channel16[k].r, csi_rs_estimated_channel16[k].i,
+               rb >= csirs_config_pdu->start_rb+csirs_config_pdu->nr_of_rbs ? 0 : noise_real[ant_rx][port_tx][rb-csirs_config_pdu->start_rb],
+               rb >= csirs_config_pdu->start_rb+csirs_config_pdu->nr_of_rbs ? 0 : noise_imag[ant_rx][port_tx][rb-csirs_config_pdu->start_rb]);
+      }
+      printf("\n");
+    }
+#endif
+
+  }
+
+  *noise_power /= (frame_parms->nb_antennas_rx*N_ports);
+  *log2_maxh = log2_approx(maxh-1);
+  *log2_re = log2_approx(count-1);
+
+#ifdef NR_CSIRS_DEBUG
+  LOG_I(NR_PHY, "Noise power estimation based on CSI-RS: %i\n", *noise_power);
+#endif
+
+  return 0;
+}
+
+int nr_csi_rs_ri_estimation(const PHY_VARS_NR_UE *ue,
+                            const fapi_nr_dl_config_csirs_pdu_rel15_t *csirs_config_pdu,
+                            const nr_csi_info_t *nr_csi_info,
+                            const uint8_t N_ports,
+                            int32_t csi_rs_estimated_channel_freq[][N_ports][ue->frame_parms.ofdm_symbol_size],
+                            const int16_t log2_maxh,
+                            uint8_t *rank_indicator) {
+
+  const NR_DL_FRAME_PARMS *frame_parms = &ue->frame_parms;
+  const int16_t cond_dB_threshold = 5;
+  int count = 0;
+  *rank_indicator = 0;
+
+  if (ue->frame_parms.nb_antennas_rx == 1 || N_ports == 1) {
+    return 0;
+  } else if( !(ue->frame_parms.nb_antennas_rx == 2 && N_ports == 2) ) {
+    LOG_W(NR_PHY, "Rank indicator computation is not implemented for %i x %i system\n",
+          ue->frame_parms.nb_antennas_rx, N_ports);
+    return -1;
+  }
+
+  /* Example 2x2: Hh x H =
+  *            | conjch00 conjch10 | x | ch00 ch01 | = | conjch00*ch00+conjch10*ch10 conjch00*ch01+conjch10*ch11 |
+  *            | conjch01 conjch11 |   | ch10 ch11 |   | conjch01*ch00+conjch11*ch10 conjch01*ch01+conjch11*ch11 |
+  */
+
+  int32_t csi_rs_estimated_conjch_ch[frame_parms->nb_antennas_rx][N_ports][frame_parms->nb_antennas_rx][N_ports][frame_parms->ofdm_symbol_size] __attribute__((aligned(32)));
+  int32_t csi_rs_estimated_A_MF[N_ports][N_ports][frame_parms->ofdm_symbol_size] __attribute__((aligned(32)));
+  int32_t csi_rs_estimated_A_MF_sq[N_ports][N_ports][frame_parms->ofdm_symbol_size] __attribute__((aligned(32)));
+  int32_t csi_rs_estimated_determ_fin[frame_parms->ofdm_symbol_size] __attribute__((aligned(32)));
+  int32_t csi_rs_estimated_numer_fin[frame_parms->ofdm_symbol_size] __attribute__((aligned(32)));
+
+  const uint8_t sum_shift = 1; // log2(2x2) = 2, which is a shift of 1 bit
+  
+  for (int rb = csirs_config_pdu->start_rb; rb < (csirs_config_pdu->start_rb+csirs_config_pdu->nr_of_rbs); rb++) {
+
+    if (csirs_config_pdu->freq_density <= 1 && csirs_config_pdu->freq_density != (rb % 2)) {
+      continue;
+    }
+    uint16_t k = (frame_parms->first_carrier_offset + rb*NR_NB_SC_PER_RB) % frame_parms->ofdm_symbol_size;
+
+    for (int ant_rx_conjch = 0; ant_rx_conjch < frame_parms->nb_antennas_rx; ant_rx_conjch++) {
+      for(uint16_t port_tx_conjch = 0; port_tx_conjch < N_ports; port_tx_conjch++) {
+        for (int ant_rx_ch = 0; ant_rx_ch < frame_parms->nb_antennas_rx; ant_rx_ch++) {
+          for(uint16_t port_tx_ch = 0; port_tx_ch < N_ports; port_tx_ch++) {
+
+            // conjch x ch computation
+            nr_conjch0_mult_ch1(&csi_rs_estimated_channel_freq[ant_rx_conjch][port_tx_conjch][k],
+                                &csi_rs_estimated_channel_freq[ant_rx_ch][port_tx_ch][k],
+                                &csi_rs_estimated_conjch_ch[ant_rx_conjch][port_tx_conjch][ant_rx_ch][port_tx_ch][k],
+                                1,
+                                log2_maxh);
+
+            // construct Hh x H elements
+            if(ant_rx_conjch == ant_rx_ch) {
+              nr_a_sum_b((__m128i *)&csi_rs_estimated_A_MF[port_tx_conjch][port_tx_ch][k],
+                         (__m128i *)&csi_rs_estimated_conjch_ch[ant_rx_conjch][port_tx_conjch][ant_rx_ch][port_tx_ch][k],
+                         1);
+            }
+          }
+        }
+      }
+    }
+
+    // compute the determinant of A_MF (denominator)
+    nr_det_A_MF_2x2(&csi_rs_estimated_A_MF[0][0][k],
+                    &csi_rs_estimated_A_MF[0][1][k],
+                    &csi_rs_estimated_A_MF[1][0][k],
+                    &csi_rs_estimated_A_MF[1][1][k],
+                    &csi_rs_estimated_determ_fin[k],
+                    1);
+
+    // compute the square of A_MF (numerator)
+    nr_squared_matrix_element(&csi_rs_estimated_A_MF[0][0][k], &csi_rs_estimated_A_MF_sq[0][0][k], 1);
+    nr_squared_matrix_element(&csi_rs_estimated_A_MF[0][1][k], &csi_rs_estimated_A_MF_sq[0][1][k], 1);
+    nr_squared_matrix_element(&csi_rs_estimated_A_MF[1][0][k], &csi_rs_estimated_A_MF_sq[1][0][k], 1);
+    nr_squared_matrix_element(&csi_rs_estimated_A_MF[1][1][k], &csi_rs_estimated_A_MF_sq[1][1][k], 1);
+    nr_numer_2x2(&csi_rs_estimated_A_MF_sq[0][0][k],
+                 &csi_rs_estimated_A_MF_sq[0][1][k],
+                 &csi_rs_estimated_A_MF_sq[1][0][k],
+                 &csi_rs_estimated_A_MF_sq[1][1][k],
+                 &csi_rs_estimated_numer_fin[k],
+                 1);
+
+#ifdef NR_CSIRS_DEBUG
+    for(uint16_t port_tx_conjch = 0; port_tx_conjch < N_ports; port_tx_conjch++) {
+      for(uint16_t port_tx_ch = 0; port_tx_ch < N_ports; port_tx_ch++) {
+        c16_t *csi_rs_estimated_A_MF_k = (c16_t *) &csi_rs_estimated_A_MF[port_tx_conjch][port_tx_ch][k];
+        LOG_I(NR_PHY, "(%i) csi_rs_estimated_A_MF[%i][%i] = (%i, %i)\n",
+              k, port_tx_conjch, port_tx_ch, csi_rs_estimated_A_MF_k->r, csi_rs_estimated_A_MF_k->i);
+        c16_t *csi_rs_estimated_A_MF_sq_k = (c16_t *) &csi_rs_estimated_A_MF_sq[port_tx_conjch][port_tx_ch][k];
+        LOG_I(NR_PHY, "(%i) csi_rs_estimated_A_MF_sq[%i][%i] = (%i, %i)\n",
+              k, port_tx_conjch, port_tx_ch, csi_rs_estimated_A_MF_sq_k->r, csi_rs_estimated_A_MF_sq_k->i);
+      }
+    }
+    LOG_I(NR_PHY, "(%i) csi_rs_estimated_determ_fin = %i\n", k, csi_rs_estimated_determ_fin[k]);
+    LOG_I(NR_PHY, "(%i) csi_rs_estimated_numer_fin = %i\n", k, csi_rs_estimated_numer_fin[k]>>sum_shift);
+#endif
+
+    // compute the conditional number
+    for (int sc_idx=0; sc_idx < NR_NB_SC_PER_RB; sc_idx++) {
+      int8_t csi_rs_estimated_denum_db = dB_fixed(csi_rs_estimated_determ_fin[k + sc_idx]);
+      int8_t csi_rs_estimated_numer_db = dB_fixed(csi_rs_estimated_numer_fin[k + sc_idx]>>sum_shift);
+      int8_t cond_db = csi_rs_estimated_numer_db - csi_rs_estimated_denum_db;
+
+#ifdef NR_CSIRS_DEBUG
+      LOG_I(NR_PHY, "csi_rs_estimated_denum_db = %i\n", csi_rs_estimated_denum_db);
+      LOG_I(NR_PHY, "csi_rs_estimated_numer_db = %i\n", csi_rs_estimated_numer_db);
+      LOG_I(NR_PHY, "cond_db = %i\n", cond_db);
+#endif
+
+      if (cond_db < cond_dB_threshold) {
+        count++;
+      } else {
+        count--;
+      }
+    }
+  }
+
+  // conditional number is lower than cond_dB_threshold in half on more REs
+  if (count > 0) {
+    *rank_indicator = 1;
+  }
+
+#ifdef NR_CSIRS_DEBUG
+  LOG_I(NR_PHY, "count = %i\n", count);
+  LOG_I(NR_PHY, "rank = %i\n", (*rank_indicator)+1);
+#endif
+
+  return 0;
+}
+
+int nr_csi_rs_pmi_estimation(const PHY_VARS_NR_UE *ue,
+                             const fapi_nr_dl_config_csirs_pdu_rel15_t *csirs_config_pdu,
+                             const nr_csi_info_t *nr_csi_info,
+                             const uint8_t N_ports,
+                             const int32_t csi_rs_estimated_channel_freq[][N_ports][ue->frame_parms.ofdm_symbol_size],
+                             const uint32_t interference_plus_noise_power,
+                             const uint8_t rank_indicator,
+                             const int16_t log2_re,
+                             uint8_t *i1,
+                             uint8_t *i2,
+                             uint32_t *precoded_sinr_dB) {
+
+  const NR_DL_FRAME_PARMS *frame_parms = &ue->frame_parms;
+  memset(i1,0,3*sizeof(uint8_t));
+  i2[0] = 0;
+
+  // i1 is a three-element vector in the form of [i11 i12 i13], when CodebookType is specified as 'Type1SinglePanel'.
+  // Note that i13 is not applicable when the number of transmission layers is one of {1, 5, 6, 7, 8}.
+  // i2, for 'Type1SinglePanel' codebook type, it is a scalar when PMIMode is specified as 'wideband', and when PMIMode
+  // is specified as 'subband' or when PRGSize, the length of the i2 vector equals to the number of subbands or PRGs.
+  // Note that when the number of CSI-RS ports is 2, the applicable codebook type is 'Type1SinglePanel'. In this case,
+  // the precoding matrix is obtained by a single index (i2 field here) based on TS 38.214 Table 5.2.2.2.1-1.
+  // The first column is applicable if the UE is reporting a Rank = 1, whereas the second column is applicable if the
+  // UE is reporting a Rank = 2.
+
+  if(N_ports == 1 || interference_plus_noise_power == 0) {
+    return 0;
+  }
+
+  if(rank_indicator == 0 || rank_indicator == 1) {
+
+    int32_t sum_re[4] = {0};
+    int32_t sum_im[4] = {0};
+    int32_t sum2_re[4] = {0};
+    int32_t sum2_im[4] = {0};
+    int32_t tested_precoded_sinr[4] = {0};
+
+    for (int rb = csirs_config_pdu->start_rb; rb < (csirs_config_pdu->start_rb+csirs_config_pdu->nr_of_rbs); rb++) {
+
+      if (csirs_config_pdu->freq_density <= 1 && csirs_config_pdu->freq_density != (rb % 2)) {
+        continue;
+      }
+      uint16_t k = (frame_parms->first_carrier_offset + rb * NR_NB_SC_PER_RB) % frame_parms->ofdm_symbol_size;
+
+      for (int ant_rx = 0; ant_rx < frame_parms->nb_antennas_rx; ant_rx++) {
+
+        c16_t *csi_rs_estimated_channel_p0 = (c16_t *) &csi_rs_estimated_channel_freq[ant_rx][0][k];
+        c16_t *csi_rs_estimated_channel_p1 = (c16_t *) &csi_rs_estimated_channel_freq[ant_rx][1][k];
+
+        // H_p0 + 1*H_p1 = (H_p0_re + H_p1_re) + 1j*(H_p0_im + H_p1_im)
+        sum_re[0] += (csi_rs_estimated_channel_p0->r+csi_rs_estimated_channel_p1->r);
+        sum_im[0] += (csi_rs_estimated_channel_p0->i+csi_rs_estimated_channel_p1->i);
+        sum2_re[0] += ((csi_rs_estimated_channel_p0->r+csi_rs_estimated_channel_p1->r)*(csi_rs_estimated_channel_p0->r+csi_rs_estimated_channel_p1->r))>>log2_re;
+        sum2_im[0] += ((csi_rs_estimated_channel_p0->i+csi_rs_estimated_channel_p1->i)*(csi_rs_estimated_channel_p0->i+csi_rs_estimated_channel_p1->i))>>log2_re;
+
+        // H_p0 + 1j*H_p1 = (H_p0_re - H_p1_im) + 1j*(H_p0_im + H_p1_re)
+        sum_re[1] += (csi_rs_estimated_channel_p0->r-csi_rs_estimated_channel_p1->i);
+        sum_im[1] += (csi_rs_estimated_channel_p0->i+csi_rs_estimated_channel_p1->r);
+        sum2_re[1] += ((csi_rs_estimated_channel_p0->r-csi_rs_estimated_channel_p1->i)*(csi_rs_estimated_channel_p0->r-csi_rs_estimated_channel_p1->i))>>log2_re;
+        sum2_im[1] += ((csi_rs_estimated_channel_p0->i+csi_rs_estimated_channel_p1->r)*(csi_rs_estimated_channel_p0->i+csi_rs_estimated_channel_p1->r))>>log2_re;
+
+        // H_p0 - 1*H_p1 = (H_p0_re - H_p1_re) + 1j*(H_p0_im - H_p1_im)
+        sum_re[2] += (csi_rs_estimated_channel_p0->r-csi_rs_estimated_channel_p1->r);
+        sum_im[2] += (csi_rs_estimated_channel_p0->i-csi_rs_estimated_channel_p1->i);
+        sum2_re[2] += ((csi_rs_estimated_channel_p0->r-csi_rs_estimated_channel_p1->r)*(csi_rs_estimated_channel_p0->r-csi_rs_estimated_channel_p1->r))>>log2_re;
+        sum2_im[2] += ((csi_rs_estimated_channel_p0->i-csi_rs_estimated_channel_p1->i)*(csi_rs_estimated_channel_p0->i-csi_rs_estimated_channel_p1->i))>>log2_re;
+
+        // H_p0 - 1j*H_p1 = (H_p0_re + H_p1_im) + 1j*(H_p0_im - H_p1_re)
+        sum_re[3] += (csi_rs_estimated_channel_p0->r+csi_rs_estimated_channel_p1->i);
+        sum_im[3] += (csi_rs_estimated_channel_p0->i-csi_rs_estimated_channel_p1->r);
+        sum2_re[3] += ((csi_rs_estimated_channel_p0->r+csi_rs_estimated_channel_p1->i)*(csi_rs_estimated_channel_p0->r+csi_rs_estimated_channel_p1->i))>>log2_re;
+        sum2_im[3] += ((csi_rs_estimated_channel_p0->i-csi_rs_estimated_channel_p1->r)*(csi_rs_estimated_channel_p0->i-csi_rs_estimated_channel_p1->r))>>log2_re;
+      }
+    }
+
+    // We should perform >>nr_csi_info->log2_re here for all terms, but since sum2_re and sum2_im can be high values,
+    // we performed this above.
+    for(int p = 0; p<4; p++) {
+      int32_t power_re = sum2_re[p] - (sum_re[p]>>log2_re)*(sum_re[p]>>log2_re);
+      int32_t power_im = sum2_im[p] - (sum_im[p]>>log2_re)*(sum_im[p]>>log2_re);
+      tested_precoded_sinr[p] = (power_re+power_im)/(int32_t)interference_plus_noise_power;
+    }
+
+    if(rank_indicator == 0) {
+      for(int tested_i2 = 0; tested_i2 < 4; tested_i2++) {
+        if(tested_precoded_sinr[tested_i2] > tested_precoded_sinr[i2[0]]) {
+          i2[0] = tested_i2;
+        }
+      }
+      *precoded_sinr_dB = dB_fixed(tested_precoded_sinr[i2[0]]);
+    } else {
+      i2[0] = tested_precoded_sinr[0]+tested_precoded_sinr[2] > tested_precoded_sinr[1]+tested_precoded_sinr[3] ? 0 : 1;
+      *precoded_sinr_dB = dB_fixed((tested_precoded_sinr[i2[0]] + tested_precoded_sinr[i2[0]+2])>>1);
+    }
+
+  } else {
+    LOG_W(NR_PHY, "PMI computation is not implemented for rank indicator %i\n", rank_indicator+1);
+    return -1;
+  }
+
+  return 0;
+}
+
+int nr_csi_rs_cqi_estimation(const uint32_t precoded_sinr,
+                             uint8_t *cqi) {
+
+  *cqi = 0;
+
+  // Default SINR table for an AWGN channel for SISO scenario, considering 0.1 BLER condition and TS 38.214 Table 5.2.2.1-2
+  if(precoded_sinr>0 && precoded_sinr<=2) {
+    *cqi = 4;
+  } else if(precoded_sinr==3) {
+    *cqi = 5;
+  } else if(precoded_sinr>3 && precoded_sinr<=5) {
+    *cqi = 6;
+  } else if(precoded_sinr>5 && precoded_sinr<=7) {
+    *cqi = 7;
+  } else if(precoded_sinr>7 && precoded_sinr<=9) {
+    *cqi = 8;
+  } else if(precoded_sinr==10) {
+    *cqi = 9;
+  } else if(precoded_sinr>10 && precoded_sinr<=12) {
+    *cqi = 10;
+  } else if(precoded_sinr>12 && precoded_sinr<=15) {
+    *cqi = 11;
+  } else if(precoded_sinr==16) {
+    *cqi = 12;
+  } else if(precoded_sinr>16 && precoded_sinr<=18) {
+    *cqi = 13;
+  } else if(precoded_sinr==19) {
+    *cqi = 14;
+  } else if(precoded_sinr>19) {
+    *cqi = 15;
+  }
+
+  return 0;
+}
+
+int nr_csi_im_power_estimation(const PHY_VARS_NR_UE *ue,
+                               const UE_nr_rxtx_proc_t *proc,
+                               const fapi_nr_dl_config_csiim_pdu_rel15_t *csiim_config_pdu,
+                               uint32_t *interference_plus_noise_power) {
+
+  int32_t **rxdataF = ue->common_vars.common_vars_rx_data_per_thread[proc->thread_id].rxdataF;
+  const NR_DL_FRAME_PARMS *frame_parms = &ue->frame_parms;
+
+  const uint16_t end_rb = csiim_config_pdu->start_rb + csiim_config_pdu->nr_of_rbs > csiim_config_pdu->bwp_size ?
+                          csiim_config_pdu->bwp_size : csiim_config_pdu->start_rb + csiim_config_pdu->nr_of_rbs;
+
+  int32_t count = 0;
+  int32_t sum_re = 0;
+  int32_t sum_im = 0;
+  int32_t sum2_re = 0;
+  int32_t sum2_im = 0;
+
+  int l_csiim[4] = {-1, -1, -1, -1};
+
+  for(int symb_idx = 0; symb_idx < 4; symb_idx++) {
+
+    uint8_t symb = csiim_config_pdu->l_csiim[symb_idx];
+    bool done = false;
+    for (int symb_idx2 = 0; symb_idx2 < symb_idx; symb_idx2++) {
+      if (l_csiim[symb_idx2] == symb) {
+        done = true;
+      }
+    }
+
+    if (done) {
+      continue;
+    }
+
+    l_csiim[symb_idx] = symb;
+    uint64_t symbol_offset = symb*frame_parms->ofdm_symbol_size;
+
+    for (int ant_rx = 0; ant_rx < frame_parms->nb_antennas_rx; ant_rx++) {
+
+      c16_t *rx_signal = (c16_t*)&rxdataF[ant_rx][symbol_offset];
+
+      for (int rb = csiim_config_pdu->start_rb; rb < end_rb; rb++) {
+
+        uint16_t sc0_offset = (frame_parms->first_carrier_offset + rb*NR_NB_SC_PER_RB) % frame_parms->ofdm_symbol_size;
+
+        for (int sc_idx = 0; sc_idx<4; sc_idx++) {
+
+          uint16_t sc = sc0_offset + csiim_config_pdu->k_csiim[sc_idx];
+
+#ifdef NR_CSIIM_DEBUG
+          LOG_I(NR_PHY, "(ant_rx %i, sc %i) real %i, imag %i\n", ant_rx, rb, rx_signal[sc].r, rx_signal[sc].i);
+#endif
+
+          sum_re += rx_signal[sc].r;
+          sum_im += rx_signal[sc].i;
+          sum2_re += rx_signal[sc].r*rx_signal[sc].r;
+          sum2_im += rx_signal[sc].i*rx_signal[sc].i;
+          count++;
+        }
+      }
+    }
+  }
+
+  int32_t power_re = sum2_re/count - (sum_re/count)*(sum_re/count);
+  int32_t power_im = sum2_im/count - (sum_im/count)*(sum_im/count);
+
+  *interference_plus_noise_power = power_re + power_im;
+
+#ifdef NR_CSIIM_DEBUG
+  LOG_I(NR_PHY, "interference_plus_noise_power based on CSI-IM = %i\n", *interference_plus_noise_power);
+#endif
+
+  return 0;
+}
+
+int nr_ue_csi_im_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t gNB_id) {
+
+  if(!ue->csiim_vars[gNB_id]->active) {
+    return -1;
+  }
+
+  const fapi_nr_dl_config_csiim_pdu_rel15_t *csiim_config_pdu = (fapi_nr_dl_config_csiim_pdu_rel15_t*)&ue->csiim_vars[gNB_id]->csiim_config_pdu;
+
+#ifdef NR_CSIIM_DEBUG
+  LOG_I(NR_PHY, "csiim_config_pdu->bwp_size = %i\n", csiim_config_pdu->bwp_size);
+  LOG_I(NR_PHY, "csiim_config_pdu->bwp_start = %i\n", csiim_config_pdu->bwp_start);
+  LOG_I(NR_PHY, "csiim_config_pdu->subcarrier_spacing = %i\n", csiim_config_pdu->subcarrier_spacing);
+  LOG_I(NR_PHY, "csiim_config_pdu->start_rb = %i\n", csiim_config_pdu->start_rb);
+  LOG_I(NR_PHY, "csiim_config_pdu->nr_of_rbs = %i\n", csiim_config_pdu->nr_of_rbs);
+  LOG_I(NR_PHY, "csiim_config_pdu->k_csiim = %i.%i.%i.%i\n", csiim_config_pdu->k_csiim[0], csiim_config_pdu->k_csiim[1], csiim_config_pdu->k_csiim[2], csiim_config_pdu->k_csiim[3]);
+  LOG_I(NR_PHY, "csiim_config_pdu->l_csiim = %i.%i.%i.%i\n", csiim_config_pdu->l_csiim[0], csiim_config_pdu->l_csiim[1], csiim_config_pdu->l_csiim[2], csiim_config_pdu->l_csiim[3]);
+#endif
+
+  nr_csi_im_power_estimation(ue, proc, csiim_config_pdu, &ue->nr_csi_info->interference_plus_noise_power);
+  ue->nr_csi_info->csi_im_meas_computed = true;
+
+  return 0;
+}
+
+int nr_ue_csi_rs_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t gNB_id) {
+
+  if(!ue->csirs_vars[gNB_id]->active) {
+    return -1;
+  }
+
+  const fapi_nr_dl_config_csirs_pdu_rel15_t *csirs_config_pdu = (fapi_nr_dl_config_csirs_pdu_rel15_t*)&ue->csirs_vars[gNB_id]->csirs_config_pdu;
+
+#ifdef NR_CSIRS_DEBUG
+  LOG_I(NR_PHY, "csirs_config_pdu->subcarrier_spacing = %i\n", csirs_config_pdu->subcarrier_spacing);
+  LOG_I(NR_PHY, "csirs_config_pdu->cyclic_prefix = %i\n", csirs_config_pdu->cyclic_prefix);
+  LOG_I(NR_PHY, "csirs_config_pdu->start_rb = %i\n", csirs_config_pdu->start_rb);
+  LOG_I(NR_PHY, "csirs_config_pdu->nr_of_rbs = %i\n", csirs_config_pdu->nr_of_rbs);
+  LOG_I(NR_PHY, "csirs_config_pdu->csi_type = %i (0:TRS, 1:CSI-RS NZP, 2:CSI-RS ZP)\n", csirs_config_pdu->csi_type);
+  LOG_I(NR_PHY, "csirs_config_pdu->row = %i\n", csirs_config_pdu->row);
+  LOG_I(NR_PHY, "csirs_config_pdu->freq_domain = %i\n", csirs_config_pdu->freq_domain);
+  LOG_I(NR_PHY, "csirs_config_pdu->symb_l0 = %i\n", csirs_config_pdu->symb_l0);
+  LOG_I(NR_PHY, "csirs_config_pdu->symb_l1 = %i\n", csirs_config_pdu->symb_l1);
+  LOG_I(NR_PHY, "csirs_config_pdu->cdm_type = %i\n", csirs_config_pdu->cdm_type);
+  LOG_I(NR_PHY, "csirs_config_pdu->freq_density = %i (0: dot5 (even RB), 1: dot5 (odd RB), 2: one, 3: three)\n", csirs_config_pdu->freq_density);
+  LOG_I(NR_PHY, "csirs_config_pdu->scramb_id = %i\n", csirs_config_pdu->scramb_id);
+  LOG_I(NR_PHY, "csirs_config_pdu->power_control_offset = %i\n", csirs_config_pdu->power_control_offset);
+  LOG_I(NR_PHY, "csirs_config_pdu->power_control_offset_ss = %i\n", csirs_config_pdu->power_control_offset_ss);
+#endif
+
+  const NR_DL_FRAME_PARMS *frame_parms = &ue->frame_parms;
+  int32_t csi_rs_received_signal[frame_parms->nb_antennas_rx][frame_parms->samples_per_slot_wCP];
+  uint8_t N_cdm_groups = 0;
+  uint8_t CDM_group_size = 0;
+  uint8_t k_prime = 0;
+  uint8_t l_prime = 0;
+  uint8_t N_ports = 0;
+  uint8_t j_cdm[16];
+  uint8_t k_overline[16];
+  uint8_t l_overline[16];
+  int16_t log2_re = 0;
+  int16_t log2_maxh = 0;
+  uint32_t rsrp = 0;
+  int rsrp_dBm = 0;
+  uint32_t noise_power = 0;
+  uint8_t rank_indicator = 0;
+  uint32_t precoded_sinr_dB = 0;
+  uint8_t cqi = 0;
+  uint8_t i1[3];
+  uint8_t i2[1];
+
+  nr_generate_csi_rs(frame_parms,
+                     ue->nr_csi_info->csi_rs_generated_signal,
+                     AMP,
+                     ue->nr_csi_info,
+                     (nfapi_nr_dl_tti_csi_rs_pdu_rel15_t *) csirs_config_pdu,
+                     proc->nr_slot_rx,
+                     &N_cdm_groups,
+                     &CDM_group_size,
+                     &k_prime,
+                     &l_prime,
+                     &N_ports,
+                     j_cdm,
+                     k_overline,
+                     l_overline);
+
+  int32_t csi_rs_ls_estimated_channel[frame_parms->nb_antennas_rx][N_ports][frame_parms->ofdm_symbol_size];
+  int32_t csi_rs_estimated_channel_freq[frame_parms->nb_antennas_rx][N_ports][frame_parms->ofdm_symbol_size];
+
+  nr_get_csi_rs_signal(ue,
+                       proc,
+                       csirs_config_pdu,
+                       ue->nr_csi_info,
+                       N_cdm_groups,
+                       CDM_group_size,
+                       k_prime,
+                       l_prime,
+                       j_cdm,
+                       k_overline,
+                       l_overline,
+                       csi_rs_received_signal,
+                       &rsrp,
+                       &rsrp_dBm);
+
+  nr_csi_rs_channel_estimation(ue,
+                               proc,
+                               csirs_config_pdu,
+                               ue->nr_csi_info,
+                               (const int32_t **) ue->nr_csi_info->csi_rs_generated_signal,
+                               csi_rs_received_signal,
+                               N_cdm_groups,
+                               CDM_group_size,
+                               k_prime,
+                               l_prime,
+                               N_ports,
+                               j_cdm,
+                               k_overline,
+                               l_overline,
+                               csi_rs_ls_estimated_channel,
+                               csi_rs_estimated_channel_freq,
+                               &log2_re,
+                               &log2_maxh,
+                               &noise_power);
+
+  nr_csi_rs_ri_estimation(ue,
+                          csirs_config_pdu,
+                          ue->nr_csi_info,
+                          N_ports,
+                          csi_rs_estimated_channel_freq,
+                          log2_maxh,
+                          &rank_indicator);
+
+  nr_csi_rs_pmi_estimation(ue,
+                           csirs_config_pdu,
+                           ue->nr_csi_info,
+                           N_ports,
+                           csi_rs_estimated_channel_freq,
+                           ue->nr_csi_info->csi_im_meas_computed ? ue->nr_csi_info->interference_plus_noise_power : noise_power,
+                           rank_indicator,
+                           log2_re,
+                           i1,
+                           i2,
+                           &precoded_sinr_dB);
+
+  nr_csi_rs_cqi_estimation(precoded_sinr_dB, &cqi);
+
+  LOG_I(NR_PHY, "RSRP = %i dBm, RI = %i, i1 = %i.%i.%i, i2 = %i, SINR = %i dB, CQI = %i\n",
+        rsrp_dBm, rank_indicator+1, i1[0], i1[1], i1[2], i2[0], precoded_sinr_dB, cqi);
+
+  // Send CSI measurements to MAC
+  fapi_nr_csirs_measurements_t csirs_measurements;
+  csirs_measurements.rsrp = rsrp;
+  csirs_measurements.rsrp_dBm = rsrp_dBm;
+  csirs_measurements.rank_indicator = rank_indicator;
+  csirs_measurements.i1 = *i1;
+  csirs_measurements.i2 = *i2;
+  csirs_measurements.cqi = cqi;
+  nr_downlink_indication_t dl_indication;
+  fapi_nr_rx_indication_t *rx_ind = calloc(sizeof(*rx_ind),1);
+  nr_fill_dl_indication(&dl_indication, NULL, rx_ind, proc, ue, gNB_id, NULL);
+  nr_fill_rx_indication(rx_ind, FAPI_NR_CSIRS_IND, gNB_id, ue, NULL, NULL, 1, proc, (void *)&csirs_measurements);
+  if (ue->if_inst && ue->if_inst->dl_indication) {
+    ue->if_inst->dl_indication(&dl_indication, NULL);
+  } else {
+    free(rx_ind);
+  }
+
+  return 0;
+}
diff --git a/openair1/PHY/NR_UE_TRANSPORT/dci_nr.c b/openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
index 308d033fbee..68a0ec56d8f 100644
--- a/openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
+++ b/openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
@@ -142,7 +142,8 @@ static void nr_pdcch_demapping_deinterleaving(uint32_t *llr,
 
   int B_rb = reg_bundle_size_L/coreset_time_dur; // nb of RBs occupied by each REG bundle
   int num_bundles_per_cce = 6/reg_bundle_size_L;
-  int max_bundles = NR_MAX_PDCCH_AGG_LEVEL*num_bundles_per_cce;
+  int n_cce = N_regs/6;
+  int max_bundles = n_cce*num_bundles_per_cce;
   int f_bundle_j_list[max_bundles];
 
   // for each bundle
@@ -359,10 +360,7 @@ void nr_pdcch_extract_rbs_single(int32_t **rxdataF,
    * According to this equations, DM-RS PDCCH are mapped on k where k%12==1 || k%12==5 || k%12==9
    *
    */
-  // the bitmap coreset_frq_domain contains 45 bits
-#define CORESET_FREQ_DOMAIN_BITMAP_SIZE   45
-  // each bit is associated to 6 RBs
-#define BIT_TO_NBR_RB_CORESET_FREQ_DOMAIN  6
+
 #define NBR_RE_PER_RB_WITH_DMRS           12
   // after removing the 3 DMRS RE, the RB contains 9 RE with PDCCH
 #define NBR_RE_PER_RB_WITHOUT_DMRS         9
@@ -920,7 +918,7 @@ uint8_t nr_dci_decoding_procedure(PHY_VARS_NR_UE *ue,
               proc->frame_rx, proc->nr_slot_rx,n_rnti,nr_dci_format_string[rel15->dci_format_options[k]],CCEind,dci_length,*(unsigned long long*)dci_estimation);
         uint16_t mb = nr_dci_false_detection(dci_estimation,tmp_e,L*108,n_rnti, NR_POLAR_DCI_MESSAGE_TYPE, dci_length, L);
         ue->dci_thres = (ue->dci_thres + mb) / 2;
-        if (mb > (ue->dci_thres+20)) {
+        if (mb > (ue->dci_thres+30)) {
           LOG_W(PHY,"DCI false positive. Dropping DCI index %d. Mismatched bits: %d/%d. Current DCI threshold: %d\n",j,mb,L*108,ue->dci_thres);
           continue;
         }
diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c b/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
index 95d2cd95779..1635c8bba9c 100644
--- a/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
+++ b/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
@@ -140,7 +140,6 @@ NR_UE_DLSCH_t *new_nr_ue_dlsch(uint8_t Kmimo,uint8_t Mdlharq,uint32_t Nsoft,uint
     dlsch->Mdlharq = Mdlharq;
     dlsch->number_harq_processes_for_pdsch = Mdlharq;
     dlsch->Nsoft = Nsoft;
-    dlsch->Mlimit = 4;
     dlsch->max_ldpc_iterations = max_ldpc_iterations;
 
     for (int i=0; i<Mdlharq; i++) {
@@ -222,7 +221,6 @@ bool nr_ue_postDecode(PHY_VARS_NR_UE *phy_vars_ue, notifiedFIFO_elt_t *req, bool
       //LOG_D(PHY,"[UE %d] DLSCH: Setting ACK for nr_slot_rx %d TBS %d mcs %d nb_rb %d harq_process->round %d\n",
       //      phy_vars_ue->Mod_id,nr_slot_rx,harq_process->TBS,harq_process->mcs,harq_process->nb_rb, harq_process->round);
       harq_process->status = SCH_IDLE;
-      harq_process->DLround  = 0;
       harq_process->ack = 1;
 
       //LOG_D(PHY,"[UE %d] DLSCH: Setting ACK for SFN/SF %d/%d (pid %d, status %d, round %d, TBS %d, mcs %d)\n",
@@ -237,11 +235,6 @@ bool nr_ue_postDecode(PHY_VARS_NR_UE *phy_vars_ue, notifiedFIFO_elt_t *req, bool
       //LOG_D(PHY,"[UE %d] DLSCH: Setting NAK for SFN/SF %d/%d (pid %d, status %d, round %d, TBS %d, mcs %d) Kr %d r %d harq_process->round %d\n",
       //      phy_vars_ue->Mod_id, frame, nr_slot_rx, harq_pid,harq_process->status, harq_process->round,harq_process->TBS,harq_process->mcs,Kr,r,harq_process->round);
       harq_process->ack = 0;
-      if (harq_process->DLround >= dlsch->Mlimit) {
-        harq_process->status = SCH_IDLE;
-        harq_process->DLround  = 0;
-        phy_vars_ue->dl_stats[4]++;
-      }
 
       //if(is_crnti) {
       //  LOG_D(PHY,"[UE %d] DLSCH: Setting NACK for nr_slot_rx %d (pid %d, pid status %d, round %d/Max %d, TBS %d)\n",
@@ -289,8 +282,6 @@ void nr_processDLSegment(void* arg) {
   __m128i *pv = (__m128i*)&z;
   __m128i *pl = (__m128i*)&l;
 
-  uint8_t Ilbrm = 1;
-
   Kr = harq_process->K; // [hna] overwrites this line "Kr = p_decParams->Z*kb"
   Kr_bytes = Kr>>3;
   K_bits_F = Kr-harq_process->F;
@@ -323,8 +314,7 @@ void nr_processDLSegment(void* arg) {
         harq_process->round); */
   //VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_RATE_MATCHING, VCD_FUNCTION_IN);
 
-  if (nr_rate_matching_ldpc_rx(Ilbrm,
-                               Tbslbrm,
+  if (nr_rate_matching_ldpc_rx(Tbslbrm,
                                p_decoderParms->BG,
                                p_decoderParms->Z,
                                harq_process->d[r],
@@ -433,8 +423,7 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
                            uint16_t nb_symb_sch,
                            uint8_t nr_slot_rx,
                            uint8_t harq_pid,
-                           uint8_t is_crnti,
-                           uint8_t llr8_flag) {
+                           uint8_t is_crnti) {
   uint32_t A,E;
   uint32_t G;
   uint32_t ret,offset;
@@ -451,9 +440,7 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
   phy_vars_ue->dl_stats[harq_process->DLround]++;
   LOG_D(PHY,"Round %d RV idx %d\n",harq_process->DLround,harq_process->rvidx);
   uint8_t kc;
-  uint32_t Tbslbrm;// = 950984;
   uint16_t nb_rb;// = 30;
-  double Coderate;// = 0.0;
   uint8_t dmrs_Type = harq_process->dmrsConfigType;
   AssertFatal(dmrs_Type == 0 || dmrs_Type == 1, "Illegal dmrs_type %d\n", dmrs_Type);
   uint8_t nb_re_dmrs;
@@ -502,22 +489,17 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
   }
   */
   nb_rb = harq_process->nb_rb;
-  harq_process->trials[harq_process->DLround]++;
-  uint16_t nb_rb_oh = 0; // it was not computed at UE side even before and set to 0 in nr_compute_tbs
-  harq_process->TBS = nr_compute_tbs(harq_process->Qm,harq_process->R,nb_rb,nb_symb_sch,nb_re_dmrs*dmrs_length, nb_rb_oh, 0, harq_process->Nl);
   A = harq_process->TBS;
   ret = dlsch->max_ldpc_iterations + 1;
   dlsch->last_iteration_cnt = ret;
   harq_process->G = nr_get_G(nb_rb, nb_symb_sch, nb_re_dmrs, dmrs_length, harq_process->Qm,harq_process->Nl);
   G = harq_process->G;
 
-  LOG_D(PHY,"%d.%d DLSCH Decoding, harq_pid %d TBS %d (%d) G %d nb_re_dmrs %d length dmrs %d mcs %d Nl %d nb_symb_sch %d nb_rb %d\n",
-        frame,nr_slot_rx,harq_pid,A,A/8,G, nb_re_dmrs, dmrs_length, harq_process->mcs, harq_process->Nl, nb_symb_sch,nb_rb);
+  // target_code_rate is in 0.1 units
+  float Coderate = (float) harq_process->R / 10240.0f;
 
-  if ((harq_process->R)<1024)
-    Coderate = (float) (harq_process->R) /(float) 1024;
-  else
-    Coderate = (float) (harq_process->R) /(float) 2048;
+  LOG_D(PHY,"%d.%d DLSCH Decoding, harq_pid %d TBS %d (%d) G %d nb_re_dmrs %d length dmrs %d mcs %d Nl %d nb_symb_sch %d nb_rb %d Qm %d Coderate %f\n",
+        frame,nr_slot_rx,harq_pid,A,A/8,G, nb_re_dmrs, dmrs_length, harq_process->mcs, harq_process->Nl, nb_symb_sch, nb_rb, harq_process->Qm, Coderate);
 
   if ((A <=292) || ((A <= NR_MAX_PDSCH_TBS) && (Coderate <= 0.6667)) || Coderate <= 0.25) {
     p_decParams->BG = 2;
@@ -567,10 +549,6 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
     if (LOG_DEBUGFLAG(DEBUG_DLSCH_DECOD) && (!frame%100))
       LOG_I(PHY,"K %d C %d Z %d nl %d \n", harq_process->K, harq_process->C, p_decParams->Z, harq_process->Nl);
   }
-  if ((harq_process->Nl)<4)
-    Tbslbrm = nr_compute_tbslbrm(harq_process->mcs_table,nb_rb,harq_process->Nl);
-  else
-    Tbslbrm = nr_compute_tbslbrm(harq_process->mcs_table,nb_rb,4);
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_SEGMENTATION, VCD_FUNCTION_OUT);
   p_decParams->Z = harq_process->Z;
@@ -621,7 +599,7 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
     rdata->r_offset = r_offset;
     rdata->Kr_bytes = Kr_bytes;
     rdata->rv_index = harq_process->rvidx;
-    rdata->Tbslbrm = Tbslbrm;
+    rdata->Tbslbrm = harq_process->tbslbrm;
     rdata->offset = offset;
     rdata->dlsch = dlsch;
     rdata->dlsch_id = 0;
diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c b/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
index 9cedc333569..6728f0260c0 100644
--- a/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
+++ b/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
@@ -260,13 +260,6 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
     return -1;
   }
 
-  dlsch0_harq->Qm = nr_get_Qm_dl(dlsch[0]->harq_processes[harq_pid]->mcs, dlsch[0]->harq_processes[harq_pid]->mcs_table);
-  dlsch0_harq->R = nr_get_code_rate_dl(dlsch[0]->harq_processes[harq_pid]->mcs, dlsch[0]->harq_processes[harq_pid]->mcs_table);
-  if (dlsch0_harq->Qm == 0 || dlsch0_harq->R == 0) {
-    LOG_W(MAC, "Invalid code rate or Mod order, likely due to unexpected DL DCI.\n");
-      return -1;
-  }
-
   #ifdef DEBUG_HARQ
     printf("[DEMOD] MIMO mode = %d\n", dlsch0_harq->mimo_mode);
     printf("[DEMOD] cw for TB0 = %d, cw for TB1 = %d\n", codeword_TB0, codeword_TB1);
@@ -326,7 +319,8 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
                        dlsch0_harq->n_dmrs_cdm_groups,
                        dlsch0_harq->Nl,
                        frame_parms,
-                       dlsch0_harq->dlDmrsSymbPos);
+                       dlsch0_harq->dlDmrsSymbPos,
+                       ue->chest_time);
   stop_meas(&ue->generic_stat_bis[proc->thread_id][slot]);
   if (cpumeas(CPUMEAS_GETSTATE))
     LOG_D(PHY, "[AbsSFN %u.%d] Slot%d Symbol %d type %d: Pilot/Data extraction %5.2f \n",
@@ -472,88 +466,87 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
   if (cpumeas(CPUMEAS_GETSTATE))
     LOG_D(PHY, "[AbsSFN %u.%d] Slot%d Symbol %d: Channel Combine and zero forcing %5.2f \n",frame,nr_slot_rx,slot,symbol,ue->generic_stat_bis[proc->thread_id][slot].p_time/(cpuf*1000.0));
 
-    start_meas(&ue->generic_stat_bis[proc->thread_id][slot]);
+  start_meas(&ue->generic_stat_bis[proc->thread_id][slot]);
   /* Store the valid DL RE's */
-    pdsch_vars[gNB_id]->dl_valid_re[symbol-1] = nb_re_pdsch;
+  pdsch_vars[gNB_id]->dl_valid_re[symbol-1] = nb_re_pdsch;
 
-    if(dlsch0_harq->status == ACTIVE) {
-      startSymbIdx = dlsch0_harq->start_symbol;
-      nbSymb = dlsch0_harq->nb_symbols;
-      pduBitmap = dlsch0_harq->pduBitmap;
-    }
-    if(dlsch1_harq) {
-      startSymbIdx = dlsch1_harq->start_symbol;
-      nbSymb = dlsch1_harq->nb_symbols;
-      pduBitmap = dlsch1_harq->pduBitmap;
-    }
+  if(dlsch0_harq->status == ACTIVE) {
+    startSymbIdx = dlsch0_harq->start_symbol;
+    nbSymb = dlsch0_harq->nb_symbols;
+    pduBitmap = dlsch0_harq->pduBitmap;
+  }
+  if(dlsch1_harq) {
+    startSymbIdx = dlsch1_harq->start_symbol;
+    nbSymb = dlsch1_harq->nb_symbols;
+    pduBitmap = dlsch1_harq->pduBitmap;
+  }
 
-    /* Check for PTRS bitmap and process it respectively */
-    if((pduBitmap & 0x1) && (type == PDSCH)) {
-      nr_pdsch_ptrs_processing(ue,
-                               pdsch_vars,
-                               frame_parms,
-                               dlsch0_harq,
-                               dlsch1_harq,
-                               gNB_id,
-                               nr_slot_rx,
-                               symbol,
-                               (nb_rb_pdsch*12),
-                               dlsch[0]->rnti,rx_type);
-      pdsch_vars[gNB_id]->dl_valid_re[symbol-1] -= pdsch_vars[gNB_id]->ptrs_re_per_slot[0][symbol];
-    }
+  /* Check for PTRS bitmap and process it respectively */
+  if((pduBitmap & 0x1) && (type == PDSCH)) {
+    nr_pdsch_ptrs_processing(ue,
+			     pdsch_vars,
+			     frame_parms,
+			     dlsch0_harq,
+			     dlsch1_harq,
+			     gNB_id,
+			     nr_slot_rx,
+			     symbol,
+			     (nb_rb_pdsch*12),
+			     dlsch[0]->rnti,rx_type);
+    pdsch_vars[gNB_id]->dl_valid_re[symbol-1] -= pdsch_vars[gNB_id]->ptrs_re_per_slot[0][symbol];
+  }
 
-    /* at last symbol in a slot calculate LLR's for whole slot */
-    if(symbol == (startSymbIdx + nbSymb -1)) {
-      for(uint8_t i =startSymbIdx; i < (startSymbIdx+nbSymb);i++) {
-        /* re evaluating the first symbol flag as LLR's are done in symbol loop  */
-        if(i == startSymbIdx && i < 3) {
-          first_symbol_flag =1;
-        }
-        else {
-          first_symbol_flag=0;
-        }
-        /* Calculate LLR's for each symbol */
-        nr_dlsch_llr(pdsch_vars, frame_parms,
-                     rxdataF_comp_ptr, dl_ch_mag_ptr,
-                     dlsch0_harq, dlsch1_harq,
-                     rx_type, harq_pid,
-                     gNB_id, gNB_id_i,
-                     first_symbol_flag,
-                     i, nb_rb_pdsch,
-                     codeword_TB0, codeword_TB1,
-                     pdsch_vars[gNB_id]->dl_valid_re[i-1],
-                     nr_slot_rx, beamforming_mode);
+  /* at last symbol in a slot calculate LLR's for whole slot */
+  if(symbol == (startSymbIdx + nbSymb -1)) {
+    for(uint8_t i =startSymbIdx; i < (startSymbIdx+nbSymb);i++) {
+      /* re evaluating the first symbol flag as LLR's are done in symbol loop  */
+      if(i == startSymbIdx && i < 3) {
+	first_symbol_flag =1;
       }
-
-      int dmrs_type = dlsch[0]->harq_processes[harq_pid]->dmrsConfigType;
-      uint8_t nb_re_dmrs;
-      uint16_t dmrs_len = get_num_dmrs(dlsch[0]->harq_processes[harq_pid]->dlDmrsSymbPos);
-      if (dmrs_type==NFAPI_NR_DMRS_TYPE1) {
-        nb_re_dmrs = 6*dlsch[0]->harq_processes[harq_pid]->n_dmrs_cdm_groups;
-      } else {
-        nb_re_dmrs = 4*dlsch[0]->harq_processes[harq_pid]->n_dmrs_cdm_groups;
+      else {
+	first_symbol_flag=0;
       }
-      dlsch[0]->harq_processes[harq_pid]->G = nr_get_G(dlsch[0]->harq_processes[harq_pid]->nb_rb,
-                                                       dlsch[0]->harq_processes[harq_pid]->nb_symbols,
-                                                       nb_re_dmrs,
-                                                       dmrs_len,
-                                                       dlsch[0]->harq_processes[harq_pid]->Qm,
-                                                       dlsch[0]->harq_processes[harq_pid]->Nl);
-      nr_dlsch_layer_demapping(pdsch_vars[gNB_id]->llr,
-                               dlsch[0]->harq_processes[harq_pid]->Nl,
-                               dlsch[0]->harq_processes[harq_pid]->Qm,
-                               dlsch[0]->harq_processes[harq_pid]->G,
-                               codeword_TB0,
-                               codeword_TB1,
-                               pdsch_vars[gNB_id]->layer_llr);
+      /* Calculate LLR's for each symbol */
+      nr_dlsch_llr(pdsch_vars, frame_parms,
+		   rxdataF_comp_ptr, dl_ch_mag_ptr,
+		   dlsch0_harq, dlsch1_harq,
+		   rx_type, harq_pid,
+		   gNB_id, gNB_id_i,
+		   first_symbol_flag,
+		   i, nb_rb_pdsch,
+		   codeword_TB0, codeword_TB1,
+		   pdsch_vars[gNB_id]->dl_valid_re[i-1],
+		   nr_slot_rx, beamforming_mode);
+    }
 
+    int dmrs_type = dlsch[0]->harq_processes[harq_pid]->dmrsConfigType;
+    uint8_t nb_re_dmrs;
+    uint16_t dmrs_len = get_num_dmrs(dlsch[0]->harq_processes[harq_pid]->dlDmrsSymbPos);
+    if (dmrs_type==NFAPI_NR_DMRS_TYPE1) {
+      nb_re_dmrs = 6*dlsch[0]->harq_processes[harq_pid]->n_dmrs_cdm_groups;
+    } else {
+      nb_re_dmrs = 4*dlsch[0]->harq_processes[harq_pid]->n_dmrs_cdm_groups;
     }
+    dlsch[0]->harq_processes[harq_pid]->G = nr_get_G(dlsch[0]->harq_processes[harq_pid]->nb_rb,
+						     dlsch[0]->harq_processes[harq_pid]->nb_symbols,
+						     nb_re_dmrs,
+						     dmrs_len,
+						     dlsch[0]->harq_processes[harq_pid]->Qm,
+						     dlsch[0]->harq_processes[harq_pid]->Nl);
+    nr_dlsch_layer_demapping(pdsch_vars[gNB_id]->llr,
+			     dlsch[0]->harq_processes[harq_pid]->Nl,
+			     dlsch[0]->harq_processes[harq_pid]->Qm,
+			     dlsch[0]->harq_processes[harq_pid]->G,
+			     codeword_TB0,
+			     codeword_TB1,
+			     pdsch_vars[gNB_id]->layer_llr);
+  }
 
-    stop_meas(&ue->generic_stat_bis[proc->thread_id][slot]);
-    if (cpumeas(CPUMEAS_GETSTATE))
-      LOG_D(PHY, "[AbsSFN %u.%d] Slot%d Symbol %d: LLR Computation  %5.2f \n",frame,nr_slot_rx,slot,symbol,ue->generic_stat_bis[proc->thread_id][slot].p_time/(cpuf*1000.0));
+  stop_meas(&ue->generic_stat_bis[proc->thread_id][slot]);
+  if (cpumeas(CPUMEAS_GETSTATE))
+    LOG_D(PHY, "[AbsSFN %u.%d] Slot%d Symbol %d: LLR Computation  %5.2f \n",frame,nr_slot_rx,slot,symbol,ue->generic_stat_bis[proc->thread_id][slot].p_time/(cpuf*1000.0));
 
-// Please keep it: useful for debugging
+  // Please keep it: useful for debugging
 #ifdef DEBUG_PDSCH_RX
   char filename[50];
   uint8_t aa = 0;
@@ -1617,7 +1610,8 @@ unsigned short nr_dlsch_extract_rbs_single(int **rxdataF,
                                            unsigned short nb_rb_pdsch,
                                            uint8_t n_dmrs_cdm_groups,
                                            NR_DL_FRAME_PARMS *frame_parms,
-                                           uint16_t dlDmrsSymbPos)
+                                           uint16_t dlDmrsSymbPos,
+                                           int chest_time_type)
 {
   if (config_type == NFAPI_NR_DMRS_TYPE1) {
     AssertFatal(n_dmrs_cdm_groups == 1 || n_dmrs_cdm_groups == 2,
@@ -1628,7 +1622,12 @@ unsigned short nr_dlsch_extract_rbs_single(int **rxdataF,
   }
 
   const unsigned short start_re = (frame_parms->first_carrier_offset + start_rb * NR_NB_SC_PER_RB) % frame_parms->ofdm_symbol_size;
-  const int8_t validDmrsEst     = get_valid_dmrs_idx_for_channel_est(dlDmrsSymbPos, symbol);
+  int8_t validDmrsEst;
+
+  if (chest_time_type == 0)
+    validDmrsEst = get_valid_dmrs_idx_for_channel_est(dlDmrsSymbPos,symbol);
+  else
+    validDmrsEst = get_next_dmrs_symbol_in_slot(dlDmrsSymbPos,0,14); // get first dmrs symbol index
 
   for (unsigned char aarx = 0; aarx < frame_parms->nb_antennas_rx; aarx++) {
 
@@ -1715,7 +1714,8 @@ void nr_dlsch_extract_rbs(int **rxdataF,
                           uint8_t n_dmrs_cdm_groups,
                           uint8_t Nl,
                           NR_DL_FRAME_PARMS *frame_parms,
-                          uint16_t dlDmrsSymbPos)
+                          uint16_t dlDmrsSymbPos,
+                          int chest_time_type)
 {
 
   unsigned short k,rb;
@@ -1733,7 +1733,10 @@ void nr_dlsch_extract_rbs(int **rxdataF,
     nushift = (n_dmrs_cdm_groups -1)<<1;//delta in Table 7.4.1.1.2-2
   }
 
-  validDmrsEst = get_valid_dmrs_idx_for_channel_est(dlDmrsSymbPos,symbol);
+  if (chest_time_type == 0)
+    validDmrsEst = get_valid_dmrs_idx_for_channel_est(dlDmrsSymbPos,symbol);
+  else
+    validDmrsEst = get_next_dmrs_symbol_in_slot(dlDmrsSymbPos,0,14); // get first dmrs symbol index
 
   for (aarx=0; aarx<frame_parms->nb_antennas_rx; aarx++) {
 
@@ -2600,7 +2603,7 @@ static int nr_dlsch_llr(NR_UE_PDSCH **pdsch_vars,
   }
 
   if (dlsch1_harq) {
-    switch (nr_get_Qm_dl(dlsch1_harq->mcs,dlsch1_harq->mcs_table)) {
+    switch (dlsch1_harq->Qm) {
     case 2 :
       if (rx_type==rx_standard) {
         nr_dlsch_qpsk_llr(frame_parms,
diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_llr_computation.c b/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_llr_computation.c
index 7c75884fa6b..ca15a5b5be8 100644
--- a/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_llr_computation.c
+++ b/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_llr_computation.c
@@ -638,11 +638,10 @@ int nr_dlsch_qpsk_llr(NR_DL_FRAME_PARMS *frame_parms,
                    uint8_t beamforming_mode)
 {
 
-  uint32_t *rxF = (uint32_t *)&rxdataF_comp[((int32_t)symbol*nb_rb*12)];
-  uint32_t *llr32;
+  c16_t *rxF   = (c16_t *)&rxdataF_comp[((int32_t)symbol*nb_rb*12)];
+  c16_t *llr32 = (c16_t *)dlsch_llr;
   int i;
 
-  llr32 = (uint32_t*)dlsch_llr;
   if (!llr32) {
     LOG_E(PHY,"nr_dlsch_qpsk_llr: llr is null, symbol %d, llr32=%p\n",symbol, llr32);
     return(-1);
@@ -656,8 +655,10 @@ int nr_dlsch_qpsk_llr(NR_DL_FRAME_PARMS *frame_parms,
              llr32);
   */
   for (i=0; i<len; i++) {
-    *llr32 = *rxF;
-     //printf("dlsch_qpsk_llr %d : (%d,%d)\n",i,((int16_t*)llr32)[0],((int16_t*)llr32)[1]);
+    //*llr32 = *rxF;
+    llr32->r = rxF->r >> 3;
+    llr32->i = rxF->i >> 3;
+    //printf("dlsch_qpsk_llr %d : (%d,%d)\n", i, llr32->r, llr32->i);
     rxF++;
     llr32++;
   }
diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c b/openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
index e248ce87cb2..ea7bde5377f 100644
--- a/openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
+++ b/openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
@@ -362,6 +362,8 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc,
           nr_gold_pdsch(ue, i, ue->scramblingID_dlsch[i]);
         }
 
+        nr_init_csi_rs(fp, ue->nr_csi_info->nr_gold_csi_rs, fp->Nid_cell);
+
         // initialize the pusch dmrs
         for (int i=0; i<NR_NB_NSCID; i++) {
           ue->scramblingID_ulsch[i]=fp->Nid_cell;
diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_prach.c b/openair1/PHY/NR_UE_TRANSPORT/nr_prach.c
index 4927fe37a25..8437b8f8f37 100644
--- a/openair1/PHY/NR_UE_TRANSPORT/nr_prach.c
+++ b/openair1/PHY/NR_UE_TRANSPORT/nr_prach.c
@@ -67,7 +67,7 @@ int32_t generate_nr_prach(PHY_VARS_NR_UE *ue, uint8_t gNB_id, int frame, uint8_t
   uint8_t Mod_id, fd_occasion, preamble_index, restricted_set, not_found;
   uint16_t rootSequenceIndex, prach_fmt_id, NCS, *prach_root_sequence_map, preamble_offset = 0;
   uint16_t preamble_shift = 0, preamble_index0, n_shift_ra, n_shift_ra_bar, d_start=INT16_MAX, numshift, N_ZC, u, offset, offset2, first_nonzero_root_idx;
-  int16_t prach_tmp[98304*2*4] __attribute__((aligned(32)));
+  int16_t prach_tmp[(4688+4*24576)*4*2] __attribute__((aligned(32)));
 
   int16_t Ncp = 0, amp, *prach, *prach2, *prachF, *Xu;
   int32_t Xu_re, Xu_im;
@@ -102,10 +102,19 @@ int32_t generate_nr_prach(PHY_VARS_NR_UE *ue, uint8_t gNB_id, int frame, uint8_t
                        nrUE_config->prach_config.num_prach_fd_occasions_list[fd_occasion].prach_root_sequence_index,
                        ue->X_u);
 
-  if (slot % (fp->slots_per_subframe / 2) == 0)
-    sample_offset_slot = (prachStartSymbol==0?0:fp->ofdm_symbol_size*prachStartSymbol+fp->nb_prefix_samples0+fp->nb_prefix_samples*(prachStartSymbol-1));
-  else
-    sample_offset_slot = (fp->ofdm_symbol_size + fp->nb_prefix_samples) * prachStartSymbol;
+  if (prachStartSymbol == 0) {
+    sample_offset_slot = 0;
+  } else if (fp->slots_per_subframe == 1) {
+    if (prachStartSymbol <= 7)
+      sample_offset_slot = (fp->ofdm_symbol_size + fp->nb_prefix_samples) * (prachStartSymbol - 1) + (fp->ofdm_symbol_size + fp->nb_prefix_samples0);
+    else
+      sample_offset_slot = (fp->ofdm_symbol_size + fp->nb_prefix_samples) * (prachStartSymbol - 2) + (fp->ofdm_symbol_size + fp->nb_prefix_samples0) * 2;
+  } else {
+    if (slot % (fp->slots_per_subframe / 2) == 0)
+      sample_offset_slot = (fp->ofdm_symbol_size + fp->nb_prefix_samples) * (prachStartSymbol - 1) + (fp->ofdm_symbol_size + fp->nb_prefix_samples0);
+    else
+      sample_offset_slot = (fp->ofdm_symbol_size + fp->nb_prefix_samples) * prachStartSymbol;
+  }
 
   prach_start = fp->get_samples_slot_timestamp(slot, fp, 0) + sample_offset_slot;
 
@@ -232,897 +241,254 @@ int32_t generate_nr_prach(PHY_VARS_NR_UE *ue, uint8_t gNB_id, int frame, uint8_t
         preamble_offset,
         first_nonzero_root_idx);
 
-  Xu = (int16_t*)ue->X_u[preamble_offset-first_nonzero_root_idx];
-
-  #if defined (PRACH_WRITE_OUTPUT_DEBUG)
-    LOG_M("X_u.m", "X_u", (int16_t*)ue->X_u[preamble_offset-first_nonzero_root_idx], N_ZC, 1, 1);
-  #endif
-
-  /********************************************************
-   *
-   * In function init_prach_tables:
-   * to compute quantized roots of unity ru(n) = 32767 * exp j*[ (2 * PI * n) / N_ZC ]
-   *
-   * In compute_prach_seq:
-   * to calculate Xu = DFT xu = xu (inv_u*k) * Xu[0] (This is a Zadoff-Chou sequence property: DFT ZC sequence is another ZC sequence)
-   *
-   * In generate_prach:
-   * to do the cyclic-shifted DFT by multiplying Xu[k] * ru[k*preamble_shift] as:
-   * If X[k] = DFT x(n) -> X_shifted[k] = DFT x(n+preamble_shift) = X[k] * exp -j*[ (2*PI*k*preamble_shift) / N_ZC ]
-   *
-   *********************************************************/
-
-  if (mu==1) {
-    switch(fp->samples_per_subframe) {
-    case 15360:
-      // 10, 15 MHz @ 15.36 Ms/s
-      if (prach_sequence_length == 0) {
-        if (prach_fmt_id == 0 || prach_fmt_id == 1 || prach_fmt_id == 2)
-          dftlen = 12288;
-        if (prach_fmt_id == 3)
-          dftlen = 3072;
-      } else { // 839 sequence
-        dftlen = 512;
-      }
-      break;
-
-    case 30720:
-      // 20, 25, 30 MHz @ 30.72 Ms/s
-      if (prach_sequence_length == 0) {
-        if (prach_fmt_id == 0 || prach_fmt_id == 1 || prach_fmt_id == 2)
-          dftlen = 24576;
-        if (prach_fmt_id == 3)
-          dftlen = 6144;
-      } else { // 839 sequence
-        dftlen = 1024;
-      }
-      break;
-
-    case 46080:
-      // 40 MHz @ 46.08 Ms/s
-      if (prach_sequence_length == 0) {
-        if (prach_fmt_id == 0 || prach_fmt_id == 1 || prach_fmt_id == 2)
-          dftlen = 36864;
-        if (prach_fmt_id == 3)
-          dftlen = 9216;
-      } else { // 839 sequence
-        dftlen = 1536;
-      }
-      break;
-
-    case 61440:
-      // 40, 50, 60 MHz @ 61.44 Ms/s
-      if (prach_sequence_length == 0) {
-        if (prach_fmt_id == 0 || prach_fmt_id == 1 || prach_fmt_id == 2)
-          dftlen = 49152;
-        if (prach_fmt_id == 3)
-          dftlen = 12288;
-      } else { // 839 sequence
-        dftlen = 2048;
-      }
-      break;
-
-    case 92160:
-      // 50, 60, 70, 80, 90 MHz @ 92.16 Ms/s
-      if (prach_sequence_length == 0) {
-        if (prach_fmt_id == 0 || prach_fmt_id == 1 || prach_fmt_id == 2)
-          dftlen = 73728;
-        if (prach_fmt_id == 3)
-          dftlen = 18432;
-      } else { // 839 sequence
-        dftlen = 3072;
-      }
-      break;
-
-    case 122880:
-      // 70, 80, 90, 100 MHz @ 122.88 Ms/s
-      if (prach_sequence_length == 0) {
-        if (prach_fmt_id == 0 || prach_fmt_id == 1 || prach_fmt_id == 2)
-          dftlen = 98304;
-        if (prach_fmt_id == 3)
-          dftlen = 24576;
-      } else { // 839 sequence
-        dftlen = 4096;
-      }
-      break;
-
-    default:
-      AssertFatal(1==0,"sample rate %f MHz not supported for numerology %d\n", fp->samples_per_subframe / 1000.0, mu);
-    }
-  }
-  else if (mu==3) {
-    if (fp->threequarter_fs) 
-      AssertFatal(1==0,"3/4 sampling not supported for numerology %d\n",mu);
-    
-    if (prach_sequence_length == 0) 
-	AssertFatal(1==0,"long prach not supported for numerology %d\n",mu);
-
-    if (fp->N_RB_UL == 32) 
-      dftlen=512;
-    else if (fp->N_RB_UL == 66) 
-      dftlen=1024;
-    else 
-      AssertFatal(1==0,"N_RB_UL %d not support for numerology %d\n",fp->N_RB_UL,mu);
-  }
-
-
-  for (offset=0,offset2=0; offset<N_ZC; offset++,offset2+=preamble_shift) {
-
-    if (offset2 >= N_ZC)
-      offset2 -= N_ZC;
-
-    Xu_re = (((int32_t)Xu[offset<<1]*amp)>>15);
-    Xu_im = (((int32_t)Xu[1+(offset<<1)]*amp)>>15);
-    prachF[k++]= ((Xu_re*nr_ru[offset2<<1]) - (Xu_im*nr_ru[1+(offset2<<1)]))>>15;
-    prachF[k++]= ((Xu_im*nr_ru[offset2<<1]) + (Xu_re*nr_ru[1+(offset2<<1)]))>>15;
-
-    if (k==dftlen) k=0;
-  }
-
-  #if defined (PRACH_WRITE_OUTPUT_DEBUG)
-    LOG_M("prachF.m", "prachF", &prachF[1804], 1024, 1, 1);
-    LOG_M("Xu.m", "Xu", Xu, N_ZC, 1, 1);
-  #endif
-
+  // Ncp and dftlen here is given in terms of T_s wich is 30.72MHz sampling
   if (prach_sequence_length == 0) {
-
-    AssertFatal(prach_fmt_id < 4, "Illegal PRACH format %d for sequence length 839\n", prach_fmt_id);
-
-    // Ncp here is given in terms of T_s wich is 30.72MHz sampling
     switch (prach_fmt_id) {
     case 0:
       Ncp = 3168;
+      dftlen = 24576;
       break;
+
     case 1:
       Ncp = 21024;
+      dftlen = 24576;
       break;
+
     case 2:
       Ncp = 4688;
+      dftlen = 24576;
       break;
+
     case 3:
       Ncp = 3168;
+      dftlen = 6144;
       break;
-    }
 
+    default:
+      AssertFatal(1==0, "Illegal PRACH format %d for sequence length 839\n", prach_fmt_id);
+      break;
+    }
   } else {
-
     switch (prach_fmt_id) {
     case 4: //A1
-      Ncp = 288/(1<<mu);
+      Ncp = 288 >> mu;
       break;
+
     case 5: //A2
-      Ncp = 576/(1<<mu);
+      Ncp = 576 >> mu;
       break;
+
     case 6: //A3
-      Ncp = 864/(1<<mu);
+      Ncp = 864 >> mu;
       break;
+
     case 7: //B1
-      Ncp = 216/(1<<mu);
-    break;
+      Ncp = 216 >> mu;
+      break;
+
     /*
     case 4: //B2
-      Ncp = 360/(1<<mu);
+      Ncp = 360 >> mu;
       break;
+
     case 5: //B3
-      Ncp = 504/(1<<mu);
+      Ncp = 504 >> mu;
       break;
     */
+
     case 8: //B4
-      Ncp = 936/(1<<mu);
+      Ncp = 936 >> mu;
       break;
+
     case 9: //C0
-      Ncp = 1240/(1<<mu);
+      Ncp = 1240 >> mu;
       break;
+
     case 10: //C2
-      Ncp = 2048/(1<<mu);
+      Ncp = 2048 >> mu;
       break;
+
     default:
       AssertFatal(1==0,"Unknown PRACH format ID %d\n", prach_fmt_id);
       break;
     }
+    dftlen = 2048 >> mu;
   }
 
-  #ifdef NR_PRACH_DEBUG
-    LOG_D(PHY, "PRACH [UE %d] Ncp %d, dftlen %d \n", Mod_id, Ncp, dftlen);
-  #endif
-
   //actually what we should be checking here is how often the current prach crosses a 0.5ms boundary. I am not quite sure for which paramter set this would be the case, so I will ignore it for now and just check if the prach starts on a 0.5ms boundary
-  uint8_t  use_extended_prach_prefix = 0;
   if(fp->numerology_index == 0) {
     if (prachStartSymbol == 0 || prachStartSymbol == 7)
-      use_extended_prach_prefix = 1;
+      Ncp += 16;
   }
   else {
     if (slot%(fp->slots_per_subframe/2)==0 && prachStartSymbol == 0)
-      use_extended_prach_prefix = 1;
+      Ncp += 16;
   }
 
-  if (mu == 3) {
-    switch (fp->samples_per_subframe) {
-    case 61440: // 32 PRB case, 61.44 Msps
-      Ncp<<=1; //to account for 61.44Mbps
-      // This is after cyclic prefix 
-      prach2 = prach+(Ncp<<1); //times 2 for complex samples
-      if (prach_sequence_length == 0)
-	AssertFatal(1==0,"no long PRACH for this PRACH size %d\n",fp->N_RB_UL);
-      else {
-	if (use_extended_prach_prefix) 
-          Ncp+=32;  // 16*kappa, kappa=2 for 61.44Msps
-	prach2 = prach+(Ncp<<1); //times 2 for complex samples
-        if (prach_fmt_id == 4 || prach_fmt_id == 7 || prach_fmt_id == 9) {
-          idft(IDFT_512,prachF,prach2,1);
-          // here we have |empty | Prach512 |
-          if (prach_fmt_id != 9) {
-            memmove(prach2+(512<<1),prach2,(512<<2));
-            prach_len = (512*2)+Ncp;
-          }
-          else prach_len = (512*1)+Ncp;
-          memmove(prach,prach+(512<<1),(Ncp<<2));
-          // here we have |Prefix | Prach512 | Prach512 (if ! 0xc0)  |
-        } else if (prach_fmt_id == 5) { // 6x512
-          idft(IDFT_512,prachF,prach2,1);
-          // here we have |empty | Prach512 |
-          memmove(prach2+(512<<1),prach2,(512<<2));
-          // here we have |empty | Prach512 | Prach512| empty512 | empty512 |
-          memmove(prach2+(512<<2),prach2,(512<<3));
-          // here we have |empty | Prach512 | Prach512| Prach512 | Prach512 |
-          memmove(prach,prach+(512<<1),(Ncp<<2));
-          // here we have |Prefix | Prach512 |
-          prach_len = (512*4)+Ncp;
-        } else if (prach_fmt_id == 6) { // 6x512
-          idft(IDFT_512,prachF,prach2,1);
-          // here we have |empty | Prach512 |
-          memmove(prach2+(512<<1),prach2,(512<<2));
-          // here we have |empty | Prach512 | Prach512| empty512 | empty512 | empty512 | empty512
-          memmove(prach2+(512<<2),prach2,(512<<3));
-          // here we have |empty | Prach512 | Prach512| Prach512 | Prach512 | empty512 | empty512
-          memmove(prach2+(512<<3),prach2,(512<<3));
-          // here we have |empty | Prach512 | Prach512| Prach512 | Prach512 | Prach512 | Prach512
-          memmove(prach,prach+(512<<1),(Ncp<<2));
-          // here we have |Prefix | Prach512 |
-          prach_len = (512*6)+Ncp;
-        } else if (prach_fmt_id == 8) { // 12x512
-          idft(IDFT_512,prachF,prach2,1);
-          // here we have |empty | Prach512 |
-          memmove(prach2+(512<<1),prach2,(512<<2));
-          // here we have |empty | Prach512 | Prach512| empty512 | empty512 | empty512 | empty512
-          memmove(prach2+(512<<2),prach2,(512<<3));
-          // here we have |empty | Prach512 | Prach512| Prach512 | Prach512 | empty512 | empty512
-          memmove(prach2+(512<<3),prach2,(512<<3));
-          // here we have |empty | Prach512 | Prach512| Prach512 | Prach512 | Prach512 | Prach512
-          memmove(prach2+(512<<1)*6,prach2,(512<<2)*6);
-          // here we have |empty | Prach512 | Prach512| Prach512 | Prach512 | Prach512 | Prach512 | Prach512 | Prach512| Prach512 | Prach512 | Prach512 | Prach512|
-          memmove(prach,prach+(512<<1),(Ncp<<2));
-          // here we have |Prefix | Prach512 | Prach512| Prach512 | Prach512 | Prach512 | Prach512 | Prach512 | Prach512| Prach512 | Prach512 | Prach512 | Prach512|
-          prach_len = (512*12)+Ncp;
-	}		
-      }
-      break;
+  switch(fp->samples_per_subframe) {
+  case 7680:
+    // 5 MHz @ 7.68 Ms/s
+    Ncp >>= 2;
+    dftlen >>= 2;
+    break;
 
-    case 122880: // 66 PRB case, 122.88 Msps
-      Ncp<<=2; //to account for 122.88Mbps
-      // This is after cyclic prefix 
-      prach2 = prach+(Ncp<<1); //times 2 for complex samples
-      if (prach_sequence_length == 0)
-	AssertFatal(1==0,"no long PRACH for this PRACH size %d\n",fp->N_RB_UL);
-      else {
-	if (use_extended_prach_prefix) 
-          Ncp+=64;  // 16*kappa, kappa=4 for 122.88Msps
-	prach2 = prach+(Ncp<<1); //times 2 for complex samples
-        if (prach_fmt_id == 4 || prach_fmt_id == 7 || prach_fmt_id == 9) {
-          idft(IDFT_1024,prachF,prach2,1);
-          // here we have |empty | Prach1024 |
-          if (prach_fmt_id != 9) {
-            memmove(prach2+(1024<<1),prach2,(1024<<2));
-            prach_len = (1024*2)+Ncp;
-          }
-          else prach_len = (1024*1)+Ncp;
-          memmove(prach,prach+(1024<<1),(Ncp<<2));
-          // here we have |Prefix | Prach1024 | Prach1024 (if ! 0xc0)  |
-        } else if (prach_fmt_id == 5) { // 6x1024
-          idft(IDFT_1024,prachF,prach2,1);
-          // here we have |empty | Prach1024 |
-          memmove(prach2+(1024<<1),prach2,(1024<<2));
-          // here we have |empty | Prach1024 | Prach1024| empty1024 | empty1024 |
-          memmove(prach2+(1024<<2),prach2,(1024<<3));
-          // here we have |empty | Prach1024 | Prach1024| Prach1024 | Prach1024 |
-          memmove(prach,prach+(1024<<1),(Ncp<<2));
-          // here we have |Prefix | Prach1024 |
-          prach_len = (1024*4)+Ncp;
-        } else if (prach_fmt_id == 6) { // 6x1024
-          idft(IDFT_1024,prachF,prach2,1);
-          // here we have |empty | Prach1024 |
-          memmove(prach2+(1024<<1),prach2,(1024<<2));
-          // here we have |empty | Prach1024 | Prach1024| empty1024 | empty1024 | empty1024 | empty1024
-          memmove(prach2+(1024<<2),prach2,(1024<<3));
-          // here we have |empty | Prach1024 | Prach1024| Prach1024 | Prach1024 | empty1024 | empty1024
-          memmove(prach2+(1024<<3),prach2,(1024<<3));
-          // here we have |empty | Prach1024 | Prach1024| Prach1024 | Prach1024 | Prach1024 | Prach1024
-          memmove(prach,prach+(1024<<1),(Ncp<<2));
-          // here we have |Prefix | Prach1024 |
-          prach_len = (1024*6)+Ncp;
-        } else if (prach_fmt_id == 8) { // 12x1024
-          idft(IDFT_1024,prachF,prach2,1);
-          // here we have |empty | Prach1024 |
-          memmove(prach2+(1024<<1),prach2,(1024<<2));
-          // here we have |empty | Prach1024 | Prach1024| empty1024 | empty1024 | empty1024 | empty1024
-          memmove(prach2+(1024<<2),prach2,(1024<<3));
-          // here we have |empty | Prach1024 | Prach1024| Prach1024 | Prach1024 | empty1024 | empty1024
-          memmove(prach2+(1024<<3),prach2,(1024<<3));
-          // here we have |empty | Prach1024 | Prach1024| Prach1024 | Prach1024 | Prach1024 | Prach1024
-          memmove(prach2+(1024<<1)*6,prach2,(1024<<2)*6);
-          // here we have |empty | Prach1024 | Prach1024| Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024| Prach1024 | Prach1024 | Prach1024 | Prach1024|
-          memmove(prach,prach+(1024<<1),(Ncp<<2));
-          // here we have |Prefix | Prach1024 | Prach1024| Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024| Prach1024 | Prach1024 | Prach1024 | Prach1024|
-          prach_len = (1024*12)+Ncp;
-	}	
-      }
-      break;
+  case 15360:
+    // 10, 15 MHz @ 15.36 Ms/s
+    Ncp >>= 1;
+    dftlen >>= 1;
+    break;
 
-    default:
-      AssertFatal(1==0,"sample rate %f MHz not supported for numerology %d\n", fp->samples_per_subframe / 1000.0, mu);
-    }
-  } else if (mu == 1) {
-    switch (fp->samples_per_subframe) {
-    case 15360: // full sampling @ 15.36 Ms/s
-      Ncp = Ncp/2; // to account for 15.36 Ms/s
-      // This is after cyclic prefix
-      prach2 = prach+(2*Ncp); // times 2 for complex samples
-      if (prach_sequence_length == 0){
-        if (prach_fmt_id == 0) { // 24576 samples @ 30.72 Ms/s, 12288 samples @ 15.36 Ms/s
-          idft(IDFT_12288,prachF,prach2,1);
-          // here we have | empty  | Prach12288 |
-          memmove(prach,prach+(12288<<1),(Ncp<<2));
-          // here we have | Prefix | Prach12288 |
-          prach_len = 12288+Ncp;
-        } else if (prach_fmt_id == 1) { // 24576 samples @ 30.72 Ms/s, 12288 samples @ 15.36 Ms/s
-          idft(IDFT_12288,prachF,prach2,1);
-          // here we have | empty  | Prach12288 | empty12288 |
-          memmove(prach2+(12288<<1),prach2,(12288<<2));
-          // here we have | empty  | Prach12288 | Prach12288 |
-          memmove(prach,prach+(12288<<2),(Ncp<<2));
-          // here we have | Prefix | Prach12288 | Prach12288 |
-          prach_len = (12288*2)+Ncp;
-        } else if (prach_fmt_id == 2) { // 24576 samples @ 30.72 Ms/s, 12288 samples @ 15.36 Ms/s
-          idft(IDFT_12288,prachF,prach2,1);
-          // here we have | empty  | Prach12288 | empty12288 | empty12288 | empty12288 |
-          memmove(prach2+(12288<<1),prach2,(12288<<2));
-          // here we have | empty  | Prach12288 | Prach12288 | empty12288 | empty12288 |
-          memmove(prach2+(12288<<2),prach2,(12288<<3));
-          // here we have | empty  | Prach12288 | Prach12288 | Prach12288 | Prach12288 |
-          memmove(prach,prach+(12288<<3),(Ncp<<2));
-          // here we have | Prefix | Prach12288 | Prach12288 | Prach12288 | Prach12288 |
-          prach_len = (12288*4)+Ncp;
-        } else if (prach_fmt_id == 3) { // 6144 samples @ 30.72 Ms/s, 3072 samples @ 15.36 Ms/s
-          idft(IDFT_3072,prachF,prach2,1);
-          // here we have | empty  | Prach3072 | empty3072 | empty3072 | empty3072 |
-          memmove(prach2+(3072<<1),prach2,(3072<<2));
-          // here we have | empty  | Prach3072 | Prach3072 | empty3072 | empty3072 |
-          memmove(prach2+(3072<<2),prach2,(3072<<3));
-          // here we have | empty  | Prach3072 | Prach3072 | Prach3072 | Prach3072 |
-          memmove(prach,prach+(3072<<3),(Ncp<<2));
-          // here we have | Prefix | Prach3072 | Prach3072 | Prach3072 | Prach3072 |
-          prach_len = (3072*4)+Ncp;
-        }
-      } else { // short PRACH sequence
-	if (use_extended_prach_prefix)
-	  Ncp += 8; // 16*kappa, kappa=0.5 for 15.36 Ms/s
-	prach2 = prach+(2*Ncp); // times 2 for complex samples
-        if (prach_fmt_id == 9) {
-          idft(IDFT_512,prachF,prach2,1);
-          // here we have | empty  | Prach512 |
-          memmove(prach,prach+(512<<1),(Ncp<<2));
-          // here we have | Prefix | Prach512 |
-          prach_len = (512*1)+Ncp;
-        } else if (prach_fmt_id == 4 || prach_fmt_id == 7) {
-          idft(IDFT_512,prachF,prach2,1);
-          // here we have | empty  | Prach512 | empty512 |
-          memmove(prach2+(512<<1),prach2,(512<<2));
-          // here we have | empty  | Prach512 | Prach512 |
-          memmove(prach,prach+(512<<1),(Ncp<<2));
-          // here we have | Prefix | Prach512 | Prach512 |
-          prach_len = (512*2)+Ncp;
-        } else if (prach_fmt_id == 5) { // 4x512
-          idft(IDFT_512,prachF,prach2,1);
-          // here we have | empty  | Prach512 | empty512 | empty512 | empty512 |
-          memmove(prach2+(512<<1),prach2,(512<<2));
-          // here we have | empty  | Prach512 | Prach512 | empty512 | empty512 |
-          memmove(prach2+(512<<2),prach2,(512<<3));
-          // here we have | empty  | Prach512 | Prach512 | Prach512 | Prach512 |
-          memmove(prach,prach+(512<<1),(Ncp<<2));
-          // here we have | Prefix | Prach512 | Prach512 | Prach512 | Prach512 |
-          prach_len = (512*4)+Ncp;
-        } else if (prach_fmt_id == 6) { // 6x512
-          idft(IDFT_512,prachF,prach2,1);
-          // here we have | empty  | Prach512 | empty512 | empty512 | empty512 | empty512 | empty512 |
-          memmove(prach2+(512<<1),prach2,(512<<2));
-          // here we have | empty  | Prach512 | Prach512 | empty512 | empty512 | empty512 | empty512 |
-          memmove(prach2+(512<<2),prach2,(512<<3));
-          // here we have | empty  | Prach512 | Prach512 | Prach512 | Prach512 | empty512 | empty512 |
-          memmove(prach2+(512<<3),prach2,(512<<3));
-          // here we have | empty  | Prach512 | Prach512 | Prach512 | Prach512 | Prach512 | Prach512 |
-          memmove(prach,prach+(512<<1),(Ncp<<2));
-          // here we have | Prefix | Prach512 | Prach512 | Prach512 | Prach512 | Prach512 | Prach512 |
-          prach_len = (512*6)+Ncp;
-        } else if (prach_fmt_id == 8) { // 12x512
-          idft(IDFT_512,prachF,prach2,1);
-          // here we have | empty  | Prach512 | empty512 | empty512 | empty512 | empty512 | empty512 | empty512 | empty512 | empty512 | empty512 | empty512 | empty512 |
-          memmove(prach2+(512<<1),prach2,(512<<2));
-          // here we have | empty  | Prach512 | Prach512 | empty512 | empty512 | empty512 | empty512 | empty512 | empty512 | empty512 | empty512 | empty512 | empty512 |
-          memmove(prach2+(512<<2),prach2,(512<<3));
-          // here we have | empty  | Prach512 | Prach512 | Prach512 | Prach512 | empty512 | empty512 | empty512 | empty512 | empty512 | empty512 | empty512 | empty512 |
-          memmove(prach2+(512<<3),prach2,(512<<3));
-          // here we have | empty  | Prach512 | Prach512 | Prach512 | Prach512 | Prach512 | Prach512 | empty512 | empty512 | empty512 | empty512 | empty512 | empty512 |
-          memmove(prach2+(512<<1)*6,prach2,(512<<2)*6);
-          // here we have | empty  | Prach512 | Prach512 | Prach512 | Prach512 | Prach512 | Prach512 | Prach512 | Prach512 | Prach512 | Prach512 | Prach512 | Prach512 |
-          memmove(prach,prach+(512<<1),(Ncp<<2));
-          // here we have | Prefix | Prach512 | Prach512 | Prach512 | Prach512 | Prach512 | Prach512 | Prach512 | Prach512 | Prach512 | Prach512 | Prach512 | Prach512 |
-          prach_len = (512*12)+Ncp;
-        }
-      }
-      break;
+  case 30720:
+    // 20, 25, 30 MHz @ 30.72 Ms/s
+    Ncp = Ncp;
+    dftlen = dftlen;
+    break;
 
-    case 30720: // full sampling @ 30.72 Ms/s
-      Ncp = Ncp*1; // to account for 30.72 Ms/s
-      // This is after cyclic prefix
-      prach2 = prach+(2*Ncp); // times 2 for complex samples
-      if (prach_sequence_length == 0){
-        if (prach_fmt_id == 0) { // 24576 samples @ 30.72 Ms/s
-          idft(IDFT_24576,prachF,prach2,1);
-          // here we have | empty  | Prach24576 |
-          memmove(prach,prach+(24576<<1),(Ncp<<2));
-          // here we have | Prefix | Prach24576 |
-          prach_len = 24576+Ncp;
-        } else if (prach_fmt_id == 1) { // 24576 samples @ 30.72 Ms/s
-          idft(IDFT_24576,prachF,prach2,1);
-          // here we have | empty  | Prach24576 | empty24576 |
-          memmove(prach2+(24576<<1),prach2,(24576<<2));
-          // here we have | empty  | Prach24576 | Prach24576 |
-          memmove(prach,prach+(24576<<2),(Ncp<<2));
-          // here we have | Prefix | Prach24576 | Prach24576 |
-          prach_len = (24576*2)+Ncp;
-        } else if (prach_fmt_id == 2) { // 24576 samples @ 30.72 Ms/s
-          idft(IDFT_24576,prachF,prach2,1);
-          // here we have | empty  | Prach24576 | empty24576 | empty24576 | empty24576 |
-          memmove(prach2+(24576<<1),prach2,(24576<<2));
-          // here we have | empty  | Prach24576 | Prach24576 | empty24576 | empty24576 |
-          memmove(prach2+(24576<<2),prach2,(24576<<3));
-          // here we have | empty  | Prach24576 | Prach24576 | Prach24576 | Prach24576 |
-          memmove(prach,prach+(24576<<3),(Ncp<<2));
-          // here we have | Prefix | Prach24576 | Prach24576 | Prach24576 | Prach24576 |
-          prach_len = (24576*4)+Ncp;
-        } else if (prach_fmt_id == 3) { // 6144 samples @ 30.72 Ms/s
-          idft(IDFT_6144,prachF,prach2,1);
-          // here we have | empty  | Prach6144 | empty6144 | empty6144 | empty6144 |
-          memmove(prach2+(6144<<1),prach2,(6144<<2));
-          // here we have | empty  | Prach6144 | Prach6144 | empty6144 | empty6144 |
-          memmove(prach2+(6144<<2),prach2,(6144<<3));
-          // here we have | empty  | Prach6144 | Prach6144 | Prach6144 | Prach6144 |
-          memmove(prach,prach+(6144<<3),(Ncp<<2));
-          // here we have | Prefix | Prach6144 | Prach6144 | Prach6144 | Prach6144 |
-          prach_len = (6144*4)+Ncp;
-        }
-      } else { // short PRACH sequence
-	if (use_extended_prach_prefix)
-	  Ncp += 16; // 16*kappa, kappa=1 for 30.72Msps
-	prach2 = prach+(2*Ncp); // times 2 for complex samples
-        if (prach_fmt_id == 9) {
-          idft(IDFT_1024,prachF,prach2,1);
-          // here we have | empty  | Prach1024 |
-          memmove(prach,prach+(1024<<1),(Ncp<<2));
-          // here we have | Prefix | Prach1024 |
-          prach_len = (1024*1)+Ncp;
-        } else if (prach_fmt_id == 4 || prach_fmt_id == 7) {
-          idft(IDFT_1024,prachF,prach2,1);
-          // here we have | empty  | Prach1024 | empty1024 |
-          memmove(prach2+(1024<<1),prach2,(1024<<2));
-          // here we have | empty  | Prach1024 | Prach1024 |
-          memmove(prach,prach+(1024<<1),(Ncp<<2));
-          // here we have | Prefix | Prach1024 | Prach1024 |
-          prach_len = (1024*2)+Ncp;
-        } else if (prach_fmt_id == 5) { // 4x1024
-          idft(IDFT_1024,prachF,prach2,1);
-          // here we have | empty  | Prach1024 | empty1024 | empty1024 | empty1024 |
-          memmove(prach2+(1024<<1),prach2,(1024<<2));
-          // here we have | empty  | Prach1024 | Prach1024 | empty1024 | empty1024 |
-          memmove(prach2+(1024<<2),prach2,(1024<<3));
-          // here we have | empty  | Prach1024 | Prach1024 | Prach1024 | Prach1024 |
-          memmove(prach,prach+(1024<<1),(Ncp<<2));
-          // here we have | Prefix | Prach1024 | Prach1024 | Prach1024 | Prach1024 |
-          prach_len = (1024*4)+Ncp;
-        } else if (prach_fmt_id == 6) { // 6x1024
-          idft(IDFT_1024,prachF,prach2,1);
-          // here we have | empty  | Prach1024 | empty1024 | empty1024 | empty1024 | empty1024 | empty1024 |
-          memmove(prach2+(1024<<1),prach2,(1024<<2));
-          // here we have | empty  | Prach1024 | Prach1024 | empty1024 | empty1024 | empty1024 | empty1024 |
-          memmove(prach2+(1024<<2),prach2,(1024<<3));
-          // here we have | empty  | Prach1024 | Prach1024 | Prach1024 | Prach1024 | empty1024 | empty1024 |
-          memmove(prach2+(1024<<3),prach2,(1024<<3));
-          // here we have | empty  | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 |
-          memmove(prach,prach+(1024<<1),(Ncp<<2));
-          // here we have | Prefix | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 |
-          prach_len = (1024*6)+Ncp;
-        } else if (prach_fmt_id == 8) { // 12x1024
-          idft(IDFT_1024,prachF,prach2,1);
-          // here we have | empty  | Prach1024 | empty1024 | empty1024 | empty1024 | empty1024 | empty1024 | empty1024 | empty1024 | empty1024 | empty1024 | empty1024 | empty1024 |
-          memmove(prach2+(1024<<1),prach2,(1024<<2));
-          // here we have | empty  | Prach1024 | Prach1024 | empty1024 | empty1024 | empty1024 | empty1024 | empty1024 | empty1024 | empty1024 | empty1024 | empty1024 | empty1024 |
-          memmove(prach2+(1024<<2),prach2,(1024<<3));
-          // here we have | empty  | Prach1024 | Prach1024 | Prach1024 | Prach1024 | empty1024 | empty1024 | empty1024 | empty1024 | empty1024 | empty1024 | empty1024 | empty1024 |
-          memmove(prach2+(1024<<3),prach2,(1024<<3));
-          // here we have | empty  | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 | empty1024 | empty1024 | empty1024 | empty1024 | empty1024 | empty1024 |
-          memmove(prach2+(1024<<1)*6,prach2,(1024<<2)*6);
-          // here we have | empty  | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 |
-          memmove(prach,prach+(1024<<1),(Ncp<<2));
-          // here we have | Prefix | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 | Prach1024 |
-          prach_len = (1024*12)+Ncp;
-        }
-      }
-      break;
+  case 46080:
+    // 40 MHz @ 46.08 Ms/s
+    Ncp = (Ncp*3)/2;
+    dftlen = (dftlen*3)/2;
+    break;
 
-    case 61440: // full sampling @ 61.44 Ms/s
-      Ncp = Ncp*2; // to account for 61.44 Ms/s
-      // This is after cyclic prefix 
-      prach2 = prach+(Ncp<<1); //times 2 for complex samples
-      if (prach_sequence_length == 0){
-        if (prach_fmt_id == 0) { //24576 samples @ 30.72 Ms/s, 49152 samples @ 61.44 Ms/s
-          idft(IDFT_49152,prachF,prach2,1);
-          // here we have |empty | Prach49152|
-          memmove(prach,prach+(49152<<1),(Ncp<<2));
-          // here we have |Prefix | Prach49152|
-          prach_len = 49152+Ncp;
-        } else if (prach_fmt_id == 1) { //24576 samples @ 30.72 Ms/s, 49152 samples @ 61.44 Ms/s
-          idft(IDFT_49152,prachF,prach2,1);
-          memmove(prach2+(49152<<1),prach2,(49152<<2));
-          // here we have |empty | Prach49152 | Prach49152|
-          memmove(prach,prach+(49152<<2),(Ncp<<2));
-          // here we have |Prefix | Prach49152 | Prach49152|
-          prach_len = (49152*2)+Ncp;
-        } else if (prach_fmt_id == 2) { //24576 samples @ 30.72 Ms/s, 49152 samples @ 61.44 Ms/s
-          idft(IDFT_49152,prachF,prach2,1);
-          memmove(prach2+(49152<<1),prach2,(49152<<2));
-          // here we have |empty | Prach49152 | Prach49152| empty49152 | empty49152
-          memmove(prach2+(49152<<2),prach2,(49152<<3));
-          // here we have |empty | Prach49152 | Prach49152| Prach49152 | Prach49152
-          memmove(prach,prach+(49152<<3),(Ncp<<2));
-          // here we have |Prefix | Prach49152 | Prach49152| Prach49152 | Prach49152
-          prach_len = (49152*4)+Ncp;
-        } else if (prach_fmt_id == 3) { // 6144 samples @ 30.72 Ms/s, 12288 samples @ 61.44 Ms/s
-          idft(IDFT_12288,prachF,prach2,1);
-          memmove(prach2+(12288<<1),prach2,(12288<<2));
-          // here we have |empty | Prach12288 | Prach12288| empty12288 | empty12288
-          memmove(prach2+(12288<<2),prach2,(12288<<3));
-          // here we have |empty | Prach12288 | Prach12288| Prach12288 | Prach12288
-          memmove(prach,prach+(12288<<3),(Ncp<<2));
-          // here we have |Prefix | Prach12288 | Prach12288| Prach12288 | Prach12288
-          prach_len = (12288*4)+Ncp;
-        }
-      } else { // short PRACH sequence
-	if (use_extended_prach_prefix) 
-	  Ncp+=32; // 16*kappa, kappa=2 for 61.44Msps 
-	prach2 = prach+(Ncp<<1); //times 2 for complex samples
-        if (prach_fmt_id == 4 || prach_fmt_id == 7 || prach_fmt_id == 9) {
-          idft(IDFT_2048,prachF,prach2,1);
-          // here we have |empty | Prach2048 |
-          if (prach_fmt_id != 9) {
-            memmove(prach2+(2048<<1),prach2,(2048<<2));
-            prach_len = (2048*2)+Ncp;
-          }
-          else prach_len = (2048*1)+Ncp;
-          memmove(prach,prach+(2048<<1),(Ncp<<2));
-          // here we have |Prefix | Prach2048 | Prach2048 (if ! 0xc0)  |
-        } else if (prach_fmt_id == 5) { // 6x2048
-          idft(IDFT_2048,prachF,prach2,1);
-          // here we have |empty | Prach2048 |
-          memmove(prach2+(2048<<1),prach2,(2048<<2));
-          // here we have |empty | Prach2048 | Prach2048| empty2048 | empty2048 |
-          memmove(prach2+(2048<<2),prach2,(2048<<3));
-          // here we have |empty | Prach2048 | Prach2048| Prach2048 | Prach2048 |
-          memmove(prach,prach+(2048<<1),(Ncp<<2));
-          // here we have |Prefix | Prach2048 |
-          prach_len = (2048*4)+Ncp;
-        } else if (prach_fmt_id == 6) { // 6x2048
-          idft(IDFT_2048,prachF,prach2,1);
-          // here we have |empty | Prach2048 |
-          memmove(prach2+(2048<<1),prach2,(2048<<2));
-          // here we have |empty | Prach2048 | Prach2048| empty2048 | empty2048 | empty2048 | empty2048
-          memmove(prach2+(2048<<2),prach2,(2048<<3));
-          // here we have |empty | Prach2048 | Prach2048| Prach2048 | Prach2048 | empty2048 | empty2048
-          memmove(prach2+(2048<<3),prach2,(2048<<3));
-          // here we have |empty | Prach2048 | Prach2048| Prach2048 | Prach2048 | Prach2048 | Prach2048
-          memmove(prach,prach+(2048<<1),(Ncp<<2));
-          // here we have |Prefix | Prach2048 |
-          prach_len = (2048*6)+Ncp;
-        } else if (prach_fmt_id == 8) { // 12x2048
-          idft(IDFT_2048,prachF,prach2,1);
-          // here we have |empty | Prach2048 |
-          memmove(prach2+(2048<<1),prach2,(2048<<2));
-          // here we have |empty | Prach2048 | Prach2048| empty2048 | empty2048 | empty2048 | empty2048
-          memmove(prach2+(2048<<2),prach2,(2048<<3));
-          // here we have |empty | Prach2048 | Prach2048| Prach2048 | Prach2048 | empty2048 | empty2048
-          memmove(prach2+(2048<<3),prach2,(2048<<3));
-          // here we have |empty | Prach2048 | Prach2048| Prach2048 | Prach2048 | Prach2048 | Prach2048
-          memmove(prach2+(2048<<1)*6,prach2,(2048<<2)*6);
-          // here we have |empty | Prach2048 | Prach2048| Prach2048 | Prach2048 | Prach2048 | Prach2048 | Prach2048 | Prach2048| Prach2048 | Prach2048 | Prach2048 | Prach2048|
-          memmove(prach,prach+(2048<<1),(Ncp<<2));
-          // here we have |Prefix | Prach2048 | Prach2048| Prach2048 | Prach2048 | Prach2048 | Prach2048 | Prach2048 | Prach2048| Prach2048 | Prach2048 | Prach2048 | Prach2048|
-          prach_len = (2048*12)+Ncp;
-        }
-      }
-      break;
+  case 61440:
+    // 40, 50, 60 MHz @ 61.44 Ms/s
+    Ncp <<= 1;
+    dftlen <<= 1;
+    break;
 
-    case 46080: // threequarter sampling @ 46.08 Ms/s
-      Ncp = (Ncp*3)/2;
-      prach2 = prach+(Ncp<<1);
-      if (prach_sequence_length == 0){
-        if (prach_fmt_id == 0) {
-          idft(IDFT_36864,prachF,prach2,1);
-          // here we have |empty | Prach73728|
-          memmove(prach,prach+(36864<<1),(Ncp<<2));
-          // here we have |Prefix | Prach73728|
-          prach_len = (36864*1)+Ncp;
-        } else if (prach_fmt_id == 1) {
-          idft(IDFT_36864,prachF,prach2,1);
-          memmove(prach2+(36864<<1),prach2,(36864<<2));
-          // here we have |empty | Prach73728 | Prach73728|
-          memmove(prach,prach+(36864<<2),(Ncp<<2));
-          // here we have |Prefix | Prach73728 | Prach73728|
-          prach_len = (36864*2)+Ncp;
-        } else if (prach_fmt_id == 2) {
-          idft(IDFT_36864,prachF,prach2,1);
-          memmove(prach2+(36864<<1),prach2,(36864<<2));
-          // here we have |empty | Prach73728 | Prach73728| empty73728 | empty73728
-          memmove(prach2+(36864<<2),prach2,(36864<<3));
-          // here we have |empty | Prach73728 | Prach73728| Prach73728 | Prach73728
-          memmove(prach,prach+(36864<<3),(Ncp<<2));
-          // here we have |Prefix | Prach73728 | Prach73728| Prach73728 | Prach73728
-          prach_len = (36864*4)+Ncp;
-        } else if (prach_fmt_id == 3) {
-          idft(IDFT_9216,prachF,prach2,1);
-          memmove(prach2+(9216<<1),prach2,(9216<<2));
-          // here we have |empty | Prach9216 | Prach9216| empty9216 | empty9216
-          memmove(prach2+(9216<<2),prach2,(9216<<3));
-          // here we have |empty | Prach9216 | Prach9216| Prach9216 | Prach9216
-          memmove(prach,prach+(9216<<3),(Ncp<<2));
-          // here we have |Prefix | Prach9216 | Prach9216| Prach9216 | Prach9216
-          prach_len = (9216*4)+Ncp;
-        }
-      } else { // short sequence
-	if (use_extended_prach_prefix) 
-	  Ncp+=24; // 16*kappa, kappa=1.5 for 46.08Msps 
-	prach2 = prach+(Ncp<<1); //times 2 for complex samples
-        if (prach_fmt_id == 4 || prach_fmt_id == 7 || prach_fmt_id == 9) {
-          idft(IDFT_1536,prachF,prach2,1);
-          // here we have |empty | Prach1536 |
-          if (prach_fmt_id != 9) {
-            memmove(prach2+(1536<<1),prach2,(1536<<2));
-            prach_len = (1536*2)+Ncp;
-          }	else prach_len = (1536*1)+Ncp;
-
-          memmove(prach,prach+(1536<<1),(Ncp<<2));
-          // here we have |Prefix | Prach1536 | Prach1536 (if ! 0xc0) |
-
-        } else if (prach_fmt_id == 5) { // 6x1536
-          idft(IDFT_1536,prachF,prach2,1);
-          // here we have |empty | Prach1536 |
-          memmove(prach2+(1536<<1),prach2,(1536<<2));
-          // here we have |empty | Prach1536 | Prach1536| empty1536 | empty1536 |
-          memmove(prach2+(1536<<2),prach2,(1536<<3));
-          // here we have |empty | Prach1536 | Prach1536| Prach1536 | Prach1536 |
-          memmove(prach,prach+(1536<<1),(Ncp<<2));
-          // here we have |Prefix | Prach1536 |
-          prach_len = (1536*4)+Ncp;
-        } else if (prach_fmt_id == 6) { // 6x1536
-          idft(IDFT_1536,prachF,prach2,1);
-          // here we have |empty | Prach1536 |
-          memmove(prach2+(1536<<1),prach2,(1536<<2));
-          // here we have |empty | Prach1536 | Prach1536| empty1536 | empty1536 | empty1536 | empty1536
-          memmove(prach2+(1536<<2),prach2,(1536<<3));
-          // here we have |empty | Prach1536 | Prach1536| Prach1536 | Prach1536 | empty1536 | empty1536
-          memmove(prach2+(1536<<3),prach2,(1536<<3));
-          // here we have |empty | Prach1536 | Prach1536| Prach1536 | Prach1536 | Prach1536 | Prach1536
-          memmove(prach,prach+(1536<<1),(Ncp<<2));
-          // here we have |Prefix | Prach1536 |
-          prach_len = (1536*6)+Ncp;
-        } else if (prach_fmt_id == 8) { // 12x1536
-          idft(IDFT_1536,prachF,prach2,1);
-          // here we have |empty | Prach1536 |
-          memmove(prach2+(1536<<1),prach2,(1536<<2));
-          // here we have |empty | Prach1536 | Prach1536| empty1536 | empty1536 | empty1536 | empty1536
-          memmove(prach2+(1536<<2),prach2,(1536<<3));
-          // here we have |empty | Prach1536 | Prach1536| Prach1536 | Prach1536 | empty1536 | empty1536
-          memmove(prach2+(1536<<3),prach2,(1536<<3));
-          // here we have |empty | Prach1536 | Prach1536| Prach1536 | Prach1536 | Prach1536 | Prach1536
-          memmove(prach2+(1536<<1)*6,prach2,(1536<<2)*6);
-          // here we have |empty | Prach1536 | Prach1536| Prach1536 | Prach1536 | Prach1536 | Prach1536 | Prach1536 | Prach1536| Prach1536 | Prach1536 | Prach1536 | Prach1536|
-          memmove(prach,prach+(1536<<1),(Ncp<<2));
-          // here we have |Prefix | Prach1536 | Prach1536| Prach1536 | Prach1536 | Prach1536 | Prach1536 | Prach1536 | Prach1536| Prach1536 | Prach1536 | Prach1536 | Prach1536|
-          prach_len = (1536*12)+Ncp;
-        }
-      }
-      break;
+  case 92160:
+    // 50, 60, 70, 80, 90 MHz @ 92.16 Ms/s
+    Ncp *= 3;
+    dftlen *= 3;
+    break;
 
-    case 122880: // full sampling @ 122.88 Ms/s
-      Ncp<<=2; //to account for 122.88Mbps
-      // This is after cyclic prefix
-      prach2 = prach+(Ncp<<1); //times 2 for complex samples
-      if (prach_sequence_length == 0){
-        if (prach_fmt_id == 0) { //24576 samples @ 30.72 Ms/s, 98304 samples @ 122.88 Ms/s
-          idft(IDFT_98304,prachF,prach2,1);
-          // here we have |empty | Prach98304|
-          memmove(prach,prach+(98304<<1),(Ncp<<2));
-          // here we have |Prefix | Prach98304|
-          prach_len = (98304*1)+Ncp;
-        } else if (prach_fmt_id == 1) {
-          idft(IDFT_98304,prachF,prach2,1);
-          memmove(prach2+(98304<<1),prach2,(98304<<2));
-          // here we have |empty | Prach98304 | Prach98304|
-          memmove(prach,prach+(98304<<2),(Ncp<<2));
-          // here we have |Prefix | Prach98304 | Prach98304|
-          prach_len = (98304*2)+Ncp;
-        } else if (prach_fmt_id == 2) {
-          idft(IDFT_98304,prachF,prach2,1);
-          memmove(prach2+(98304<<1),prach2,(98304<<2));
-          // here we have |empty | Prach98304 | Prach98304| empty98304 | empty98304
-          memmove(prach2+(98304<<2),prach2,(98304<<3));
-          // here we have |empty | Prach98304 | Prach98304| Prach98304 | Prach98304
-          memmove(prach,prach+(98304<<3),(Ncp<<2));
-          // here we have |Prefix | Prach98304 | Prach98304| Prach98304 | Prach98304
-          prach_len = (98304*4)+Ncp;
-        } else if (prach_fmt_id == 3) { // 4x6144, Ncp 3168
-          idft(IDFT_24576,prachF,prach2,1);
-          memmove(prach2+(24576<<1),prach2,(24576<<2));
-          // here we have |empty | Prach24576 | Prach24576| empty24576 | empty24576
-          memmove(prach2+(24576<<2),prach2,(24576<<3));
-          // here we have |empty | Prach24576 | Prach24576| Prach24576 | Prach24576
-          memmove(prach,prach+(24576<<3),(Ncp<<2));
-          // here we have |Prefix | Prach24576 | Prach24576| Prach24576 | Prach24576
-          prach_len = (24576*4)+Ncp;
-        }
-      } else { // short sequence
-	if (use_extended_prach_prefix) 
-          Ncp+=64; // 16*kappa, kappa=4 for 122.88Msps
-	prach2 = prach+(Ncp<<1); //times 2 for complex samples
-        if (prach_fmt_id == 4 || prach_fmt_id == 7 || prach_fmt_id == 9) {
-          idft(IDFT_4096,prachF,prach2,1);
-          // here we have |empty | Prach4096 |
-          if (prach_fmt_id != 9) {
-            memmove(prach2+(4096<<1),prach2,(4096<<2));
-            prach_len = (4096*2)+Ncp; 
-          }	else 	prach_len = (4096*1)+Ncp;
-          memmove(prach,prach+(4096<<1),(Ncp<<2));
-          // here we have |Prefix | Prach4096 | Prach4096 (if ! 0xc0) |
-        } else if (prach_fmt_id == 5) { // 4x4096
-          idft(IDFT_4096,prachF,prach2,1);
-          // here we have |empty | Prach4096 |
-          memmove(prach2+(4096<<1),prach2,(4096<<2));
-          // here we have |empty | Prach4096 | Prach4096| empty4096 | empty4096 |
-          memmove(prach2+(4096<<2),prach2,(4096<<3));
-          // here we have |empty | Prach4096 | Prach4096| Prach4096 | Prach4096 |
-          memmove(prach,prach+(4096<<1),(Ncp<<2));
-          // here we have |Prefix | Prach4096 |
-          prach_len = (4096*4)+Ncp;
-        } else if (prach_fmt_id == 6) { // 6x4096
-          idft(IDFT_4096,prachF,prach2,1);
-          // here we have |empty | Prach4096 |
-          memmove(prach2+(4096<<1),prach2,(4096<<2));
-          // here we have |empty | Prach4096 | Prach4096| empty4096 | empty4096 | empty4096 | empty4096
-          memmove(prach2+(4096<<2),prach2,(4096<<3));
-          // here we have |empty | Prach4096 | Prach4096| Prach4096 | Prach4096 | empty4096 | empty4096
-          memmove(prach2+(4096<<3),prach2,(4096<<3));
-          // here we have |empty | Prach4096 | Prach4096| Prach4096 | Prach4096 | Prach4096 | Prach4096
-          memmove(prach,prach+(4096<<1),(Ncp<<2));
-          // here we have |Prefix | Prach4096 |
-          prach_len = (4096*6)+Ncp;
-        } else if (prach_fmt_id == 8) { // 12x4096
-          idft(IDFT_4096,prachF,prach2,1);
-          // here we have |empty | Prach4096 |
-          memmove(prach2+(4096<<1),prach2,(4096<<2));
-          // here we have |empty | Prach4096 | Prach4096| empty4096 | empty4096 | empty4096 | empty4096
-          memmove(prach2+(4096<<2),prach2,(4096<<3));
-          // here we have |empty | Prach4096 | Prach4096| Prach4096 | Prach4096 | empty4096 | empty4096
-          memmove(prach2+(4096<<3),prach2,(4096<<3));
-          // here we have |empty | Prach4096 | Prach4096| Prach4096 | Prach4096 | Prach4096 | Prach4096
-          memmove(prach2+(4096<<1)*6,prach2,(4096<<2)*6);
-          // here we have |empty | Prach4096 | Prach4096| Prach4096 | Prach4096 | Prach4096 | Prach4096 | Prach4096 | Prach4096| Prach4096 | Prach4096 | Prach4096 | Prach4096|
-          memmove(prach,prach+(4096<<1),(Ncp<<2));
-          // here we have |Prefix | Prach4096 | Prach4096| Prach4096 | Prach4096 | Prach4096 | Prach4096 | Prach4096 | Prach4096| Prach4096 | Prach4096 | Prach4096 | Prach4096|
-          prach_len = (4096*12)+Ncp;
-        }
-      }
-      break;
+  case 122880:
+    // 70, 80, 90, 100 MHz @ 122.88 Ms/s
+    Ncp <<= 2;
+    dftlen <<= 2;
+    break;
 
-    case 92160: // three quarter sampling @ 92.16 Ms/s
-      Ncp = (Ncp*3); //to account for 92.16 Msps
-      prach2 = prach+(Ncp<<1); //times 2 for complex samples
-      if (prach_sequence_length == 0){
-        if (prach_fmt_id == 0) {
-          idft(IDFT_73728,prachF,prach2,1);
-          // here we have |empty | Prach73728|
-          memmove(prach,prach+(73728<<1),(Ncp<<2));
-          // here we have |Prefix | Prach73728|
-          prach_len = (73728*1)+Ncp;
-        } else if (prach_fmt_id == 1) {
-          idft(IDFT_73728,prachF,prach2,1);
-          memmove(prach2+(73728<<1),prach2,(73728<<2));
-          // here we have |empty | Prach73728 | Prach73728|
-          memmove(prach,prach+(73728<<2),(Ncp<<2));
-          // here we have |Prefix | Prach73728 | Prach73728|
-          prach_len = (73728*2)+Ncp;
-        } if (prach_fmt_id == 2) {
-          idft(IDFT_73728,prachF,prach2,1);
-          memmove(prach2+(73728<<1),prach2,(73728<<2));
-          // here we have |empty | Prach73728 | Prach73728| empty73728 | empty73728
-          memmove(prach2+(73728<<2),prach2,(73728<<3));
-          // here we have |empty | Prach73728 | Prach73728| Prach73728 | Prach73728
-          memmove(prach,prach+(73728<<3),(Ncp<<2));
-          // here we have |Prefix | Prach73728 | Prach73728| Prach73728 | Prach73728
-          prach_len = (73728*4)+Ncp;
-        } else if (prach_fmt_id == 3) {
-          idft(IDFT_18432,prachF,prach2,1);
-          memmove(prach2+(18432<<1),prach2,(18432<<2));
-          // here we have |empty | Prach18432 | Prach18432| empty18432 | empty18432
-          memmove(prach2+(18432<<2),prach2,(18432<<3));
-          // here we have |empty | Prach18432 | Prach18432| Prach18432 | Prach18432
-          memmove(prach,prach+(18432<<3),(Ncp<<2));
-          // here we have |Prefix | Prach18432 | Prach18432| Prach18432 | Prach18432
-          prach_len = (18432*4)+Ncp;
-        }
-      } else { // short sequence
-	if (use_extended_prach_prefix) 
-          Ncp+=48; // 16*kappa, kappa=3 for 92.16Msps 
-	prach2 = prach+(Ncp<<1); //times 2 for complex samples
-	if (prach_fmt_id == 4 || prach_fmt_id == 7 || prach_fmt_id == 9) {
-          idft(IDFT_3072,prachF,prach2,1);
-          // here we have |empty | Prach3072 |
-          if (prach_fmt_id != 9) {
-            memmove(prach2+(3072<<1),prach2,(3072<<2));
-            prach_len = (3072*2)+Ncp;
-          } else 	  prach_len = (3072*1)+Ncp;
-	  memmove(prach,prach+(3072<<1),(Ncp<<2));
-	  // here we have |Prefix | Prach3072 | Prach3072 (if ! 0xc0) |
-        } else if (prach_fmt_id == 6) { // 6x3072
-          idft(IDFT_3072,prachF,prach2,1);
-          // here we have |empty | Prach3072 |
-          memmove(prach2+(3072<<1),prach2,(3072<<2));
-          // here we have |empty | Prach3072 | Prach3072| empty3072 | empty3072 | empty3072 | empty3072
-          memmove(prach2+(3072<<2),prach2,(3072<<3));
-          // here we have |empty | Prach3072 | Prach3072| Prach3072 | Prach3072 | empty3072 | empty3072
-          memmove(prach2+(3072<<3),prach2,(3072<<3));
-          // here we have |empty | Prach3072 | Prach3072| Prach3072 | Prach3072 | Prach3072 | Prach3072
-          memmove(prach,prach+(3072<<1),(Ncp<<2));
-          // here we have |Prefix | Prach3072 |
-          prach_len = (3072*6)+Ncp;
-        } else if (prach_fmt_id == 5) { // 4x3072
-          idft(IDFT_3072,prachF,prach2,1);
-          // here we have |empty | Prach3072 |
-          memmove(prach2+(3072<<1),prach2,(3072<<2));
-          // here we have |empty | Prach3072 | Prach3072| empty3072 | empty3072 |
-          memmove(prach2+(3072<<2),prach2,(3072<<3));
-          // here we have |empty | Prach3072 | Prach3072| Prach3072 | Prach3072 |
-          memmove(prach,prach+(3072<<1),(Ncp<<2));
-          // here we have |Prefix | Prach3072 |
-          prach_len = (3072*4)+Ncp;
-        } else if (prach_fmt_id == 6) { // 12x3072
-          idft(IDFT_3072,prachF,prach2,1);
-          // here we have |empty | Prach3072 |
-          memmove(prach2+(3072<<1),prach2,(3072<<2));
-          // here we have |empty | Prach3072 | Prach3072| empty3072 | empty3072 | empty3072 | empty3072
-          memmove(prach2+(3072<<2),prach2,(3072<<3));
-          // here we have |empty | Prach3072 | Prach3072| Prach3072 | Prach3072 | empty3072 | empty3072
-          memmove(prach2+(3072<<3),prach2,(3072<<3));
-          // here we have |empty | Prach3072 | Prach3072| Prach3072 | Prach3072 | Prach3072 | Prach3072
-          memmove(prach2+(3072<<1)*6,prach2,(3072<<2)*6);
-          // here we have |empty | Prach3072 | Prach3072| Prach3072 | Prach3072 | Prach3072 | Prach3072 | Prach3072 | Prach3072| Prach3072 | Prach3072 | Prach3072 | Prach3072|
-          memmove(prach,prach+(3072<<1),(Ncp<<2));
-          // here we have |Prefix | Prach3072 | Prach3072| Prach3072 | Prach3072 | Prach3072 | Prach3072 | Prach3072 | Prach3072| Prach3072 | Prach3072 | Prach3072 | Prach3072|
-          prach_len = (3072*12)+Ncp;
-        }
-      }
-      break;
+  default:
+    AssertFatal(1==0,"sample rate %f MHz not supported for numerology %d\n", fp->samples_per_subframe / 1000.0, mu);
+  }
 
-    default:
-      AssertFatal(1==0,"sample rate %f MHz not supported for numerology %d\n", fp->samples_per_subframe / 1000.0, mu);
+  #ifdef NR_PRACH_DEBUG
+    LOG_I(PHY, "PRACH [UE %d] Ncp %d, dftlen %d \n", Mod_id, Ncp, dftlen);
+  #endif
+
+  /********************************************************
+   *
+   * In function init_prach_tables:
+   * to compute quantized roots of unity ru(n) = 32767 * exp j*[ (2 * PI * n) / N_ZC ]
+   *
+   * In compute_prach_seq:
+   * to calculate Xu = DFT xu = xu (inv_u*k) * Xu[0] (This is a Zadoff-Chou sequence property: DFT ZC sequence is another ZC sequence)
+   *
+   * In generate_prach:
+   * to do the cyclic-shifted DFT by multiplying Xu[k] * ru[k*preamble_shift] as:
+   * If X[k] = DFT x(n) -> X_shifted[k] = DFT x(n+preamble_shift) = X[k] * exp -j*[ (2*PI*k*preamble_shift) / N_ZC ]
+   *
+   *********************************************************/
+
+  Xu = (int16_t*)ue->X_u[preamble_offset-first_nonzero_root_idx];
+
+  #if defined (PRACH_WRITE_OUTPUT_DEBUG)
+    LOG_M("X_u.m", "X_u", (int16_t*)ue->X_u[preamble_offset-first_nonzero_root_idx], N_ZC, 1, 1);
+  #endif
+
+  for (offset=0,offset2=0; offset<N_ZC; offset++,offset2+=preamble_shift) {
+
+    if (offset2 >= N_ZC)
+      offset2 -= N_ZC;
+
+    Xu_re = (((int32_t)Xu[offset<<1]*amp)>>15);
+    Xu_im = (((int32_t)Xu[1+(offset<<1)]*amp)>>15);
+    prachF[k++]= ((Xu_re*nr_ru[offset2<<1]) - (Xu_im*nr_ru[1+(offset2<<1)]))>>15;
+    prachF[k++]= ((Xu_im*nr_ru[offset2<<1]) + (Xu_re*nr_ru[1+(offset2<<1)]))>>15;
+
+    if (k==dftlen) k=0;
+  }
+
+  #if defined (PRACH_WRITE_OUTPUT_DEBUG)
+    LOG_M("prachF.m", "prachF", &prachF[1804], 1024, 1, 1);
+    LOG_M("Xu.m", "Xu", Xu, N_ZC, 1, 1);
+  #endif
+
+  // This is after cyclic prefix
+  prach2 = prach+(2*Ncp); // times 2 for complex samples
+  const idft_size_idx_t idft_size = get_idft(dftlen);
+  idft(idft_size, prachF, prach, 1);
+  memmove(prach2, prach, (dftlen<<2));
+
+  if (prach_sequence_length == 0) {
+    if (prach_fmt_id == 0) {
+      // here we have | empty  | Prach |
+      memcpy(prach, prach+(dftlen<<1), (Ncp<<2));
+      // here we have | Prefix | Prach |
+      prach_len = dftlen+Ncp;
+    } else if (prach_fmt_id == 1) {
+      // here we have | empty  | Prach | empty |
+      memcpy(prach2+(dftlen<<1), prach2, (dftlen<<2));
+      // here we have | empty  | Prach | Prach |
+      memcpy(prach, prach+(dftlen<<2), (Ncp<<2));
+      // here we have | Prefix | Prach | Prach |
+      prach_len = (dftlen*2)+Ncp;
+    } else if (prach_fmt_id == 2 || prach_fmt_id == 3) {
+      // here we have | empty  | Prach | empty | empty | empty |
+      memcpy(prach2+(dftlen<<1), prach2, (dftlen<<2));
+      // here we have | empty  | Prach | Prach | empty | empty |
+      memcpy(prach2+(dftlen<<2), prach2, (dftlen<<3));
+      // here we have | empty  | Prach | Prach | Prach | Prach |
+      memcpy(prach, prach+(dftlen<<3), (Ncp<<2));
+      // here we have | Prefix | Prach | Prach | Prach | Prach |
+      prach_len = (dftlen*4)+Ncp;
+    }
+  } else { // short PRACH sequence
+    if (prach_fmt_id == 9) {
+      // here we have | empty  | Prach |
+      memcpy(prach, prach+(dftlen<<1), (Ncp<<2));
+      // here we have | Prefix | Prach |
+      prach_len = (dftlen*1)+Ncp;
+    } else if (prach_fmt_id == 4 || prach_fmt_id == 7) {
+      // here we have | empty  | Prach | empty |
+      memcpy(prach2+(dftlen<<1), prach2, (dftlen<<2));
+      // here we have | empty  | Prach | Prach |
+      memcpy(prach, prach+(dftlen<<1), (Ncp<<2));
+      // here we have | Prefix | Prach | Prach |
+      prach_len = (dftlen*2)+Ncp;
+    } else if (prach_fmt_id == 5) { // 4xdftlen
+      // here we have | empty  | Prach | empty | empty | empty |
+      memcpy(prach2+(dftlen<<1), prach2, (dftlen<<2));
+      // here we have | empty  | Prach | Prach | empty | empty |
+      memcpy(prach2+(dftlen<<2), prach2, (dftlen<<3));
+      // here we have | empty  | Prach | Prach | Prach | Prach |
+      memcpy(prach, prach+(dftlen<<1), (Ncp<<2));
+      // here we have | Prefix | Prach | Prach | Prach | Prach |
+      prach_len = (dftlen*4)+Ncp;
+    } else if (prach_fmt_id == 6) { // 6xdftlen
+      // here we have | empty  | Prach | empty | empty | empty | empty | empty |
+      memcpy(prach2+(dftlen<<1), prach2, (dftlen<<2));
+      // here we have | empty  | Prach | Prach | empty | empty | empty | empty |
+      memcpy(prach2+(dftlen<<2), prach2, (dftlen<<3));
+      // here we have | empty  | Prach | Prach | Prach | Prach | empty | empty |
+      memcpy(prach2+(dftlen<<3), prach2, (dftlen<<3));
+      // here we have | empty  | Prach | Prach | Prach | Prach | Prach | Prach |
+      memcpy(prach, prach+(dftlen<<1), (Ncp<<2));
+      // here we have | Prefix | Prach | Prach | Prach | Prach | Prach | Prach |
+      prach_len = (dftlen*6)+Ncp;
+    } else if (prach_fmt_id == 8) { // 12xdftlen
+      // here we have | empty  | Prach | empty | empty | empty | empty | empty | empty | empty | empty | empty | empty | empty |
+      memcpy(prach2+(dftlen<<1), prach2, (dftlen<<2));
+      // here we have | empty  | Prach | Prach | empty | empty | empty | empty | empty | empty | empty | empty | empty | empty |
+      memcpy(prach2+(dftlen<<2), prach2, (dftlen<<3));
+      // here we have | empty  | Prach | Prach | Prach | Prach | empty | empty | empty | empty | empty | empty | empty | empty |
+      memcpy(prach2+(dftlen<<3), prach2, (dftlen<<3));
+      // here we have | empty  | Prach | Prach | Prach | Prach | Prach | Prach | empty | empty | empty | empty | empty | empty |
+      memcpy(prach2+(dftlen<<1)*6, prach2, (dftlen<<2)*6);
+      // here we have | empty  | Prach | Prach | Prach | Prach | Prach | Prach | Prach | Prach | Prach | Prach | Prach | Prach |
+      memcpy(prach, prach+(dftlen<<1), (Ncp<<2));
+      // here we have | Prefix | Prach | Prach | Prach | Prach | Prach | Prach | Prach | Prach | Prach | Prach | Prach | Prach |
+      prach_len = (dftlen*12)+Ncp;
     }
   }
 
diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h b/openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
index 72fa255955b..6d99ac9b8c2 100644
--- a/openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
+++ b/openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
@@ -63,10 +63,12 @@ void free_nr_ue_dlsch(NR_UE_DLSCH_t **dlsch, uint16_t N_RB_DL);
 */
 NR_UE_DLSCH_t *new_nr_ue_dlsch(uint8_t Kmimo,uint8_t Mdlharq,uint32_t Nsoft,uint8_t max_turbo_iterations,uint16_t N_RB_DL);
 
+void free_nr_ue_ulsch(NR_UE_ULSCH_t **ulschptr,
+                      uint16_t N_RB_UL,
+                      NR_DL_FRAME_PARMS* frame_parms);
 
-void free_nr_ue_ulsch(NR_UE_ULSCH_t **ulsch, uint16_t N_RB_UL);
 
-NR_UE_ULSCH_t *new_nr_ue_ulsch(uint16_t N_RB_UL, int number_of_harq_pids);
+NR_UE_ULSCH_t *new_nr_ue_ulsch(uint16_t N_RB_UL, int number_of_harq_pids, NR_DL_FRAME_PARMS* frame_parms);
 
 /** \brief This function computes the LLRs for ML (max-logsum approximation) dual-stream QPSK/QPSK reception.
     @param stream0_in Input from channel compensated (MR combined) stream 0
@@ -707,7 +709,8 @@ unsigned short nr_dlsch_extract_rbs_single(int **rxdataF,
                                         unsigned short nb_rb_pdsch,
                                         uint8_t n_dmrs_cdm_groups,
                                         NR_DL_FRAME_PARMS *frame_parms,
-                                        uint16_t dlDmrsSymbPos);
+                                        uint16_t dlDmrsSymbPos,
+                                        int chest_time_type);
 
 /** \fn dlsch_extract_rbs_multiple(int32_t **rxdataF,
     int32_t **dl_ch_estimates,
@@ -745,7 +748,8 @@ void nr_dlsch_extract_rbs(int **rxdataF,
                                         uint8_t n_dmrs_cdm_groups,
                                         uint8_t Nl,
                                         NR_DL_FRAME_PARMS *frame_parms,
-                                        uint16_t dlDmrsSymbPos);
+                                        uint16_t dlDmrsSymbPos,
+                                        int chest_time_type);
 
 /** \fn dlsch_extract_rbs_TM7(int32_t **rxdataF,
     int32_t **dl_bf_ch_estimates,
@@ -851,10 +855,6 @@ void construct_HhH_elements(int *ch0conj_ch0,
                          int32_t *after_mf_11,
                          unsigned short nb_rb);
 
-void squared_matrix_element(int32_t *Hh_h_00,
-                            int32_t *Hh_h_00_sq,
-                            unsigned short nb_rb);
-
 void dlsch_channel_level_TM34_meas(int *ch00,
                                    int *ch01,
                                    int *ch10,
@@ -881,19 +881,15 @@ void nr_dlsch_detection_mrc(int **rxdataF_comp,
                             unsigned short nb_rb,
                             int length);
 
-void det_HhH(int32_t *after_mf_00,
-             int32_t *after_mf_01,
-             int32_t *after_mf_10,
-             int32_t *after_mf_11,
-             int32_t *det_fin_128,
-             unsigned short nb_rb);
+void nr_conjch0_mult_ch1(int *ch0,
+                         int *ch1,
+                         int32_t *ch0conj_ch1,
+                         unsigned short nb_rb,
+                         unsigned char output_shift0);
 
-void numer(int32_t *Hh_h_00_sq,
-           int32_t *Hh_h_01_sq,
-           int32_t *Hh_h_10_sq,
-           int32_t *Hh_h_11_sq,
-           int32_t *num_fin,
-           unsigned short nb_rb);
+void nr_a_sum_b(__m128i *input_x,
+                __m128i *input_y,
+                unsigned short nb_rb);
 
 uint8_t rank_estimation_tm3_tm4(int *dl_ch_estimates_00,
                                 int *dl_ch_estimates_01,
@@ -1011,8 +1007,7 @@ uint32_t  nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
                          uint16_t nb_symb_sch,
                          uint8_t nr_slot_rx,
                          uint8_t harq_pid,
-                         uint8_t is_crnti,
-                         uint8_t llr8_flag);
+                         uint8_t is_crnti);
 
 int nr_ulsch_encoding(PHY_VARS_NR_UE *ue,
                      NR_UE_ULSCH_t *ulsch,
diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_transport_ue.h b/openair1/PHY/NR_UE_TRANSPORT/nr_transport_ue.h
index 4086f60f02e..96f31a1624b 100644
--- a/openair1/PHY/NR_UE_TRANSPORT/nr_transport_ue.h
+++ b/openair1/PHY/NR_UE_TRANSPORT/nr_transport_ue.h
@@ -84,9 +84,9 @@ typedef struct {
   /// Pointer to the payload + CRC 
   uint8_t *b;
   /// Pointers to transport block segments
-  uint8_t *c[MAX_NUM_NR_ULSCH_SEGMENTS];
+  uint8_t **c;
   /// LDPC-code outputs
-  uint8_t *d[MAX_NUM_NR_ULSCH_SEGMENTS];
+  uint8_t **d;
   /// LDPC-code outputs (TS 36.212 V15.4.0, Sec 5.3.2 p. 17)
   uint8_t *e;
   /// Rate matching (Interleaving) outputs (TS 36.212 V15.4.0, Sec 5.4.2.2 p. 30)
@@ -161,15 +161,13 @@ typedef struct {
   //uint8_t num_cba_dci[10];
   /// allocated CBA RNTI
   //uint16_t cba_rnti[4];//NUM_MAX_CBA_GROUP];
-  /// UL max-harq-retransmission
-  uint16_t Mlimit;
 } NR_UE_ULSCH_t;
 
 typedef struct {
   /// Indicator of first reception
   uint8_t first_rx;
   /// Last Ndi received for this process on DCI (used for C-RNTI only)
-  uint8_t DCINdi;
+  uint8_t Ndi;
   /// DLSCH status flag indicating
   SCH_status_t status;
   /// Transport block size
@@ -241,10 +239,6 @@ typedef struct {
   vrb_t vrb_type;
   /// downlink power offset field
   uint8_t dl_power_off;
-  /// trials per round statistics
-  uint32_t trials[8];
-  /// error statistics per round
-  uint32_t errors[8];
   /// codeword this transport block is mapped to
   uint8_t codeword;
   /// HARQ-ACKs
@@ -260,6 +254,7 @@ typedef struct {
   uint16_t ptrs_symbols;
   // PTRS symbol index, to be updated every PTRS symbol within a slot.
   uint8_t ptrs_symbol_index;
+  uint32_t tbslbrm;
   uint8_t nscid;
   uint16_t dlDmrsScramblingId;
   /// PDU BITMAP 
@@ -310,9 +305,7 @@ typedef struct {
   /// Maximum number of LDPC iterations
   uint8_t max_ldpc_iterations;
   /// number of iterations used in last turbo decoding
-  uint8_t last_iteration_cnt;  
-  /// Maximum number of HARQ rounds 
-  uint8_t Mlimit;
+  uint8_t last_iteration_cnt;
 } NR_UE_DLSCH_t;
 
 typedef enum {format0_0,
@@ -341,7 +334,7 @@ typedef struct {
   /// Position of first CCE of the dci
   int firstCCE;
   /// flag to indicate that this is a RA response
-  boolean_t ra_flag;
+  bool ra_flag;
   /// rnti
   rnti_t rnti;
   /// rnti type
diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_ue_rf_helpers.c b/openair1/PHY/NR_UE_TRANSPORT/nr_ue_rf_helpers.c
index d3f362b90cc..80b803779dc 100644
--- a/openair1/PHY/NR_UE_TRANSPORT/nr_ue_rf_helpers.c
+++ b/openair1/PHY/NR_UE_TRANSPORT/nr_ue_rf_helpers.c
@@ -67,7 +67,7 @@ void nr_rf_card_config_gain(openair0_config_t *openair0_cfg,
     openair0_cfg->autocal[i] = 1;
 
     if (i < openair0_cfg->rx_num_channels) {
-      LOG_I(PHY, "HW: Configuring channel %d (rf_chain %d): setting tx_gain %f, rx_gain %f\n",
+      LOG_I(PHY, "HW: Configuring channel %d (rf_chain %d): setting tx_gain %.0f, rx_gain %.0f\n",
         i,
         rf_chain,
         openair0_cfg->tx_gain[i],
@@ -103,11 +103,12 @@ void nr_rf_card_config_freq(openair0_config_t *openair0_cfg,
     openair0_cfg->autocal[i] = 1;
 
     if (i < openair0_cfg->rx_num_channels) {
-      LOG_I(PHY, "HW: Configuring channel %d (rf_chain %d): setting tx_freq %f Hz, rx_freq %f Hz\n",
+      LOG_I(PHY, "HW: Configuring channel %d (rf_chain %d): setting tx_freq %.0f Hz, rx_freq %.0f Hz, tune_offset %.0f\n",
         i,
         rf_chain,
         openair0_cfg->tx_freq[i],
-        openair0_cfg->rx_freq[i]);
+        openair0_cfg->rx_freq[i],
+        openair0_cfg->tune_offset);
     }
 
   }
diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c b/openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
index 87ba2090e7c..ef952b01529 100644
--- a/openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
+++ b/openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
@@ -43,10 +43,10 @@
 
 //#define DEBUG_ULSCH_CODING
 
-void free_nr_ue_ulsch(NR_UE_ULSCH_t **ulschptr, uint16_t N_RB_UL)
+void free_nr_ue_ulsch(NR_UE_ULSCH_t **ulschptr,
+                      uint16_t N_RB_UL,
+                      NR_DL_FRAME_PARMS* frame_parms) {
 
-{
-  int i, r;
   NR_UE_ULSCH_t *ulsch = *ulschptr;
 
   if (ulsch) {
@@ -54,15 +54,15 @@ void free_nr_ue_ulsch(NR_UE_ULSCH_t **ulschptr, uint16_t N_RB_UL)
     printf("Freeing ulsch %p\n",ulsch);
 #endif
 
-  uint16_t a_segments = MAX_NUM_NR_ULSCH_SEGMENTS;  //number of segments to be allocated
-
-  if (N_RB_UL != 273) {
-    a_segments = a_segments*N_RB_UL;
-    a_segments = a_segments/273 +1;
-  }  
+    int max_layers = (frame_parms->nb_antennas_tx<NR_MAX_NB_LAYERS) ? frame_parms->nb_antennas_tx : NR_MAX_NB_LAYERS;
+    uint16_t a_segments = MAX_NUM_NR_ULSCH_SEGMENTS_PER_LAYER*max_layers;  //number of segments to be allocated
 
+    if (N_RB_UL != 273) {
+      a_segments = a_segments*N_RB_UL;
+      a_segments = a_segments/273 +1;
+    }
 
-    for (i=0; i<NR_MAX_ULSCH_HARQ_PROCESSES; i++) {
+    for (int i=0; i<NR_MAX_ULSCH_HARQ_PROCESSES; i++) {
       if (ulsch->harq_processes[i]) {
 
         if (ulsch->harq_processes[i]->a) {
@@ -81,7 +81,7 @@ void free_nr_ue_ulsch(NR_UE_ULSCH_t **ulschptr, uint16_t N_RB_UL)
           free16(ulsch->harq_processes[i]->f,14*N_RB_UL*12*8);
           ulsch->harq_processes[i]->f = NULL;
         }
-        for (r=0; r<a_segments; r++) {
+        for (int r=0; r<a_segments; r++) {
           if (ulsch->harq_processes[i]->c[r]) {
             free16(ulsch->harq_processes[i]->c[r],((r==0)?8:0) + 3+768);
             ulsch->harq_processes[i]->c[r] = NULL;
@@ -94,6 +94,15 @@ void free_nr_ue_ulsch(NR_UE_ULSCH_t **ulschptr, uint16_t N_RB_UL)
 
         }
 
+        if (ulsch->harq_processes[i]->c) {
+          free16(ulsch->harq_processes[i]->c,a_segments);
+          ulsch->harq_processes[i]->c = NULL;
+        }
+        if (ulsch->harq_processes[i]->d) {
+          free16(ulsch->harq_processes[i]->d,a_segments);
+          ulsch->harq_processes[i]->d = NULL;
+        }
+
         free16(ulsch->harq_processes[i],sizeof(NR_UL_UE_HARQ_t));
         ulsch->harq_processes[i] = NULL;
       }
@@ -101,13 +110,13 @@ void free_nr_ue_ulsch(NR_UE_ULSCH_t **ulschptr, uint16_t N_RB_UL)
     free16(ulsch,sizeof(NR_UE_ULSCH_t));
     *ulschptr = NULL;
   }
-
 }
 
 
-NR_UE_ULSCH_t *new_nr_ue_ulsch(uint16_t N_RB_UL, int number_of_harq_pids)
-{
-  uint16_t a_segments = MAX_NUM_NR_ULSCH_SEGMENTS;  //number of segments to be allocated
+NR_UE_ULSCH_t *new_nr_ue_ulsch(uint16_t N_RB_UL, int number_of_harq_pids, NR_DL_FRAME_PARMS* frame_parms) {
+
+  int max_layers = (frame_parms->nb_antennas_tx<NR_MAX_NB_LAYERS) ? frame_parms->nb_antennas_tx : NR_MAX_NB_LAYERS;
+  uint16_t a_segments = MAX_NUM_NR_ULSCH_SEGMENTS_PER_LAYER*max_layers;  //number of segments to be allocated
 
   if (N_RB_UL != 273) {
     a_segments = a_segments*N_RB_UL;
@@ -121,10 +130,6 @@ NR_UE_ULSCH_t *new_nr_ue_ulsch(uint16_t N_RB_UL, int number_of_harq_pids)
   memset(ulsch, 0, sizeof(*ulsch));
 
   ulsch->number_harq_processes_for_pusch = NR_MAX_ULSCH_HARQ_PROCESSES;
-  ulsch->Mlimit = 4; // maximum harq retransmissions
-
-  //for (i=0; i<10; i++)
-    //ulsch->harq_ids[i] = 0;
 
   for (int i = 0; i < number_of_harq_pids; i++) {
 
@@ -140,6 +145,8 @@ NR_UE_ULSCH_t *new_nr_ue_ulsch(uint16_t N_RB_UL, int number_of_harq_pids)
     DevAssert(ulsch->harq_processes[i]->b);
     bzero(ulsch->harq_processes[i]->b,ulsch_bytes);
 
+    ulsch->harq_processes[i]->c = malloc16(a_segments*sizeof(uint8_t *));
+    ulsch->harq_processes[i]->d = malloc16(a_segments*sizeof(uint16_t *));
     for (int r = 0; r < a_segments; r++) {
       // account for filler in first segment and CRCs for multiple segment case
       ulsch->harq_processes[i]->c[r] = malloc16(8448);
@@ -171,8 +178,8 @@ int nr_ulsch_encoding(PHY_VARS_NR_UE *ue,
                       NR_UE_ULSCH_t *ulsch,
                       NR_DL_FRAME_PARMS* frame_parms,
                       uint8_t harq_pid,
-                      unsigned int G)
-{
+                      unsigned int G) {
+
   start_meas(&ue->ulsch_encoding_stats);
 
 /////////////////////////parameters and variables initialization/////////////////////////
@@ -181,23 +188,22 @@ int nr_ulsch_encoding(PHY_VARS_NR_UE *ue,
   unsigned int crc = 1;
   NR_UL_UE_HARQ_t *harq_process = ulsch->harq_processes[harq_pid];
   uint16_t nb_rb = harq_process->pusch_pdu.rb_size;
-  uint32_t A = harq_process->pusch_pdu.pusch_data.tb_size*8;
+  uint32_t A = harq_process->pusch_pdu.pusch_data.tb_size<<3;
   uint32_t *pz = &harq_process->Z;
-  uint8_t mod_order = nr_get_Qm_ul(harq_process->pusch_pdu.mcs_index, harq_process->pusch_pdu.mcs_table);
-  uint16_t R = nr_get_code_rate_ul(harq_process->pusch_pdu.mcs_index, harq_process->pusch_pdu.mcs_table);
+  uint8_t mod_order = harq_process->pusch_pdu.qam_mod_order;
   uint16_t Kr=0;
   uint32_t r_offset=0;
   uint32_t F=0;
-  uint8_t Ilbrm = 0;
-  uint32_t Tbslbrm = 950984; //max tbs
-  float Coderate = 0.0;
+  // target_code_rate is in 0.1 units
+  float Coderate = (float) harq_process->pusch_pdu.target_code_rate / 10240.0f;
+
 ///////////
 /////////////////////////////////////////////////////////////////////////////////////////  
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_NR_UE_ULSCH_ENCODING, VCD_FUNCTION_IN);
 
   LOG_D(NR_PHY, "ulsch coding nb_rb %d, Nl = %d\n", nb_rb, harq_process->pusch_pdu.nrOfLayers);
-  LOG_D(NR_PHY, "ulsch coding A %d G %d mod_order %d\n", A, G, mod_order);
+  LOG_D(NR_PHY, "ulsch coding A %d G %d mod_order %d Coderate %f\n", A, G, mod_order, Coderate);
   LOG_D(NR_PHY, "harq_pid %d harq_process->ndi %d, pusch_data.new_data_indicator %d\n",
         harq_pid,harq_process->ndi,harq_process->pusch_pdu.pusch_data.new_data_indicator);
 
@@ -217,6 +223,8 @@ int nr_ulsch_encoding(PHY_VARS_NR_UE *ue,
     printf("\n");
    */ 
 
+    int max_payload_bytes = MAX_NUM_NR_ULSCH_SEGMENTS_PER_LAYER*harq_process->pusch_pdu.nrOfLayers*1056;
+
     if (A > 3824) {
       // Add 24-bit crc (polynomial A) to payload
       crc = crc24a(harq_process->a,A)>>8;
@@ -228,7 +236,7 @@ int nr_ulsch_encoding(PHY_VARS_NR_UE *ue,
 
       harq_process->B = A+24;
 
-      AssertFatal((A/8)+4 <= MAX_NR_ULSCH_PAYLOAD_BYTES,"A %d is too big (A/8+4 = %d > %d)\n",A,(A/8)+4,MAX_NR_ULSCH_PAYLOAD_BYTES);
+      AssertFatal((A/8)+4 <= max_payload_bytes,"A %d is too big (A/8+4 = %d > %d)\n",A,(A/8)+4,max_payload_bytes);
 
       memcpy(harq_process->b,harq_process->a,(A/8)+4);
     }
@@ -242,7 +250,7 @@ int nr_ulsch_encoding(PHY_VARS_NR_UE *ue,
 
       harq_process->B = A+16;
 
-      AssertFatal((A/8)+3 <= MAX_NR_ULSCH_PAYLOAD_BYTES,"A %d is too big (A/8+3 = %d > %d)\n",A,(A/8)+3,MAX_NR_ULSCH_PAYLOAD_BYTES);
+      AssertFatal((A/8)+3 <= max_payload_bytes,"A %d is too big (A/8+3 = %d > %d)\n",A,(A/8)+3,max_payload_bytes);
 
       memcpy(harq_process->b,harq_process->a,(A/8)+3);  // using 3 bytes to mimic the case of 24 bit crc
     }
@@ -252,11 +260,6 @@ int nr_ulsch_encoding(PHY_VARS_NR_UE *ue,
 ///////////////////////// b---->| block segmentation |---->c /////////////////////////
 ///////////
 
-    if (R<1024)
-      Coderate = (float) R /(float) 1024;
-    else
-      Coderate = (float) R /(float) 2048;
-
     if ((A <=292) || ((A<=3824) && (Coderate <= 0.6667)) || Coderate <= 0.25){
       harq_process->BG = 2;
     }
@@ -302,7 +305,7 @@ int nr_ulsch_encoding(PHY_VARS_NR_UE *ue,
       printf("start ldpc encoder segment %d/%d\n",r,harq_process->C);
       printf("input %d %d %d %d %d \n", harq_process->c[r][0], harq_process->c[r][1], harq_process->c[r][2],harq_process->c[r][3], harq_process->c[r][4]);
       for (int cnt =0 ; cnt < 22*(*pz)/8; cnt ++){
-      printf("%d ", harq_process->c[r][cnt]);
+        printf("%d ", harq_process->c[r][cnt]);
       }
       printf("\n");
 
@@ -376,12 +379,9 @@ int nr_ulsch_encoding(PHY_VARS_NR_UE *ue,
 
     uint32_t E = nr_get_E(G, harq_process->C, mod_order, harq_process->pusch_pdu.nrOfLayers, r);
 
-    Tbslbrm = nr_compute_tbslbrm(0,nb_rb,harq_process->pusch_pdu.nrOfLayers);
-
     VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_NR_RATE_MATCHING_LDPC, VCD_FUNCTION_IN);
     start_meas(&ue->ulsch_rate_matching_stats);
-    if (nr_rate_matching_ldpc(Ilbrm,
-                              Tbslbrm,
+    if (nr_rate_matching_ldpc(0,
                               harq_process->BG,
                               *pz,
                               harq_process->d[r],
diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c b/openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
index bab0c75aff1..eaeffd08099 100644
--- a/openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
+++ b/openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
@@ -38,6 +38,7 @@
 #include "PHY/MODULATION/nr_modulation.h"
 #include "PHY/MODULATION/modulation_common.h"
 #include "common/utils/assertions.h"
+#include "common/utils/nr/nr_common.h"
 #include "common/utils/LOG/vcd_signal_dumper.h"
 #include "PHY/NR_TRANSPORT/nr_transport_common_proto.h"
 #include "PHY/NR_TRANSPORT/nr_sch_dmrs.h"
@@ -114,15 +115,14 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
 
   LOG_D(PHY,"nr_ue_ulsch_procedures hard_id %d %d.%d\n",harq_pid,frame,slot);
 
-  uint32_t available_bits;
-  int32_t **txdataF;
   int8_t Wf[2], Wt[2];
   int l_prime[2], delta;
   uint8_t nb_dmrs_re_per_rb;
-  int ap, i;
+  int i;
   int sample_offsetF, N_RE_prime;
 
   NR_DL_FRAME_PARMS *frame_parms = &UE->frame_parms;
+  int32_t **txdataF = UE->common_vars.txdataF;
 
   int      N_PRB_oh = 0; // higher layer (RRC) parameter xOverhead in PUSCH-ServingCellConfig
   uint16_t number_dmrs_symbols = 0;
@@ -155,9 +155,8 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
 
   nb_dmrs_re_per_rb = ((dmrs_type == pusch_dmrs_type1) ? 6:4)*cdm_grps_no_data;
 
-  LOG_D(PHY,"ulsch %x : start_rb %d bwp_start %d start_sc %d start_symbol %d num_symbols %d cdmgrpsnodata %d num_dmrs %d dmrs_re_per_rb %d\n",
-        rnti,start_rb,pusch_pdu->bwp_start,start_sc,start_symbol,number_of_symbols,cdm_grps_no_data,number_dmrs_symbols,nb_dmrs_re_per_rb);
-
+  LOG_D(PHY,"ulsch TX %x : start_rb %d nb_rb %d mod_order %d Nl %d Tpmi %d bwp_start %d start_sc %d start_symbol %d num_symbols %d cdmgrpsnodata %d num_dmrs %d dmrs_re_per_rb %d\n",
+        rnti,start_rb,nb_rb,mod_order,Nl,pusch_pdu->Tpmi,pusch_pdu->bwp_start,start_sc,start_symbol,number_of_symbols,cdm_grps_no_data,number_dmrs_symbols,nb_dmrs_re_per_rb);
   // TbD num_of_mod_symbols is set but never used
   N_RE_prime = NR_NB_SC_PER_RB*number_of_symbols - nb_dmrs_re_per_rb*number_dmrs_symbols - N_PRB_oh;
   harq_process_ul_ue->num_of_mod_symbols = N_RE_prime*nb_rb;
@@ -172,7 +171,7 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
   trace_NRpdu(DIRECTION_UPLINK,
               harq_process_ul_ue->a,
               harq_process_ul_ue->pusch_pdu.pusch_data.tb_size,
-              0, WS_C_RNTI, rnti, frame, slot, 0, 0);
+              WS_C_RNTI, rnti, frame, slot, 0, 0);
 
   if (nr_ulsch_encoding(UE, ulsch_ue, frame_parms, harq_pid, G) == -1)
     return;
@@ -184,7 +183,7 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
   /////////////////////////ULSCH scrambling/////////////////////////
   ///////////
 
-  available_bits = G;
+  uint32_t available_bits = G;
   uint32_t scrambled_output[(available_bits>>5)+1];
   memset(scrambled_output, 0, ((available_bits>>5)+1)*sizeof(uint32_t));
 
@@ -201,7 +200,7 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
   /////////////////////////ULSCH modulation/////////////////////////
   ///////////
 
-  int max_num_re = number_of_symbols*nb_rb*NR_NB_SC_PER_RB;
+  int max_num_re = Nl*number_of_symbols*nb_rb*NR_NB_SC_PER_RB;
   int32_t d_mod[max_num_re] __attribute__ ((aligned(16)));
 
   nr_modulation(scrambled_output, // assume one codeword for the moment
@@ -209,7 +208,6 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
                 mod_order,
                 (int16_t *)d_mod);
 
-
     
   ///////////
   ////////////////////////////////////////////////////////////////////////
@@ -284,8 +282,7 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
   /// Transform-coded "y"-sequences (for definition see 38-211 V15.3.0 2018-09, subsection 6.3.1.4)
   int32_t y[max_num_re] __attribute__ ((aligned(16)));
 
-  // if  transform precoding is enbaled (value 0)
-  if (pusch_pdu->transform_precoding == 0) {
+  if (pusch_pdu->transform_precoding == transformPrecoder_enabled) {
 
     uint32_t nb_re_pusch=nb_rb * NR_NB_SC_PER_RB;
     uint32_t y_offset = 0;
@@ -315,20 +312,20 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
       LOG_D(PHY,"Transform precoding being done on data- symbol: %d, nb_re_pusch: %d, y_offset: %d\n", l, nb_re_pusch, y_offset);
 
 #ifdef DEBUG_PUSCH_MAPPING
-        printf("NR_ULSCH_UE: y_offset %d\t nb_re_pusch %d \t Symbol %d \t nb_rb %d \n",
-               y_offset, nb_re_pusch, l, nb_rb);
+      printf("NR_ULSCH_UE: y_offset %d\t nb_re_pusch %d \t Symbol %d \t nb_rb %d \n",
+             y_offset, nb_re_pusch, l, nb_rb);
 #endif
     }
 
 #ifdef DEBUG_DFT_IDFT
-    int32_t debug_symbols[max_num_re] __attribute__ ((aligned(16)));
+    int32_t debug_symbols[MAX_NUM_NR_RE] __attribute__ ((aligned(16)));
     int offset = 0;
     printf("NR_ULSCH_UE: available_bits: %d, mod_order: %d", available_bits,mod_order);
 
     for (int ll = 0; ll < (available_bits/mod_order); ll++) {
-      debug_symbols[ll] = y[ll];
+        debug_symbols[ll] = ulsch_ue->y[ll];     
     }
-
+      
     printf("NR_ULSCH_UE: numSym: %d, num_dmrs_sym: %d", number_of_symbols,number_dmrs_symbols);
     for (int ll = 0; ll < (number_of_symbols-number_dmrs_symbols); ll++) {
       nr_idft(&debug_symbols[offset], nb_re_pusch);
@@ -341,32 +338,33 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
 #endif
 
   }
-  else
-    memcpy(y, tx_layers[0], (available_bits/mod_order)*sizeof(int32_t));
   
-  for (int nl = 0; nl < Nl; nl++)
-    free_and_zero(tx_layers[nl]);
-  free_and_zero(tx_layers);
+  ///////////
+  ////////////////////////////////////////////////////////////////////////
+
+
 
   /////////////////////////ULSCH RE mapping/////////////////////////
   ///////////
 
-  txdataF = UE->common_vars.txdataF;
-
-  for (ap=0; ap< Nl; ap++) {
+  int encoded_length = frame_parms->N_RB_UL*14*NR_NB_SC_PER_RB*mod_order*Nl;
+  int16_t **tx_precoding = (int16_t **)malloc16_clear(Nl*sizeof(int16_t *));
+  for (int nl=0; nl<Nl; nl++)
+    tx_precoding[nl] = (int16_t *)malloc16_clear((encoded_length<<1)*sizeof(int16_t));
 
+  for (int nl=0; nl < Nl; nl++) {
     uint8_t k_prime = 0;
     uint16_t m = 0;
-
     
 #ifdef DEBUG_PUSCH_MAPPING
     printf("NR_ULSCH_UE: Value of CELL ID %d /t, u %d \n", frame_parms->Nid_cell, u);
 #endif
 
-    // DMRS params for this ap
-    get_Wt(Wt, ap, dmrs_type);
-    get_Wf(Wf, ap, dmrs_type);
-    delta = get_delta(ap, dmrs_type);
+    int dmrs_port = get_dmrs_port(nl,pusch_pdu->dmrs_ports);
+    // DMRS params for this dmrs port
+    get_Wt(Wt, dmrs_port, dmrs_type);
+    get_Wf(Wf, dmrs_port, dmrs_type);
+    delta = get_delta(dmrs_port, dmrs_type);
 
     for (int l=start_symbol; l<start_symbol+number_of_symbols; l++) {
 
@@ -379,8 +377,7 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
       if ((ul_dmrs_symb_pos >> l) & 0x01) {
         is_dmrs_sym = 1;
 
-        // transform precoding disabled (value 1)
-        if (pusch_pdu->transform_precoding == 1){
+        if (pusch_pdu->transform_precoding == transformPrecoder_disabled){
         
           if (dmrs_type == pusch_dmrs_type1)
             dmrs_idx = (pusch_pdu->bwp_start + start_rb)*6;
@@ -396,7 +393,7 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
         }
       } else if (pusch_pdu->pdu_bit_map & PUSCH_PDU_BITMAP_PUSCH_PTRS) {
 
-        AssertFatal(pusch_pdu->transform_precoding == 1, "PTRS NOT SUPPORTED IF TRANSFORM PRECODING IS ENABLED\n");
+        AssertFatal(pusch_pdu->transform_precoding == transformPrecoder_disabled, "PTRS NOT SUPPORTED IF TRANSFORM PRECODING IS ENABLED\n");
 
         if(is_ptrs_symbol(l, ulsch_ue->ptrs_symbols)) {
           is_ptrs_sym = 1;
@@ -405,7 +402,6 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
       }
 
       for (i=0; i< nb_rb*NR_NB_SC_PER_RB; i++) {
-
         uint8_t is_dmrs = 0;
         uint8_t is_ptrs = 0;
 
@@ -417,7 +413,7 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
         } else if (is_ptrs_sym) {
           is_ptrs = is_ptrs_subcarrier(k,
                                        rnti,
-                                       ap,
+                                       nl,
                                        dmrs_type,
                                        K_ptrs,
                                        nb_rb,
@@ -428,67 +424,146 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
 
         if (is_dmrs == 1) {
           // if transform precoding is enabled
-          if (pusch_pdu->transform_precoding == 0) {
-
-            ((int16_t*)txdataF[ap])[(sample_offsetF)<<1] = (Wt[l_prime[0]]*Wf[k_prime]*AMP*dmrs_seq[2*dmrs_idx]) >> 15;
-            ((int16_t*)txdataF[ap])[((sample_offsetF)<<1) + 1] = (Wt[l_prime[0]]*Wf[k_prime]*AMP*dmrs_seq[(2*dmrs_idx) + 1]) >> 15;
-
+          if (pusch_pdu->transform_precoding == transformPrecoder_enabled) {
+            ((int16_t*)tx_precoding[nl])[(sample_offsetF)<<1] = (Wt[l_prime[0]]*Wf[k_prime]*AMP*dmrs_seq[2*dmrs_idx]) >> 15;
+            ((int16_t*)tx_precoding[nl])[((sample_offsetF)<<1) + 1] = (Wt[l_prime[0]]*Wf[k_prime]*AMP*dmrs_seq[(2*dmrs_idx) + 1]) >> 15;
           } else {
-
-            ((int16_t*)txdataF[ap])[(sample_offsetF)<<1] = (Wt[l_prime[0]]*Wf[k_prime]*AMP*mod_dmrs[dmrs_idx<<1]) >> 15;
-            ((int16_t*)txdataF[ap])[((sample_offsetF)<<1) + 1] = (Wt[l_prime[0]]*Wf[k_prime]*AMP*mod_dmrs[(dmrs_idx<<1) + 1]) >> 15;
-
+            ((int16_t*)tx_precoding[nl])[(sample_offsetF)<<1] = (Wt[l_prime[0]]*Wf[k_prime]*AMP*mod_dmrs[dmrs_idx<<1]) >> 15;
+            ((int16_t*)tx_precoding[nl])[((sample_offsetF)<<1) + 1] = (Wt[l_prime[0]]*Wf[k_prime]*AMP*mod_dmrs[(dmrs_idx<<1) + 1]) >> 15;
           }
 
 #ifdef DEBUG_PUSCH_MAPPING
-          printf("dmrs_idx %d\t l %d \t k %d \t k_prime %d \t n %d \t dmrs: %d %d\n",
-                 dmrs_idx, l, k, k_prime, n, ((int16_t*)txdataF[ap])[(sample_offsetF)<<1],
-                 ((int16_t*)txdataF[ap])[((sample_offsetF)<<1) + 1]);
+          printf("DMRS: Layer: %d\t, dmrs_idx %d\t l %d \t k %d \t k_prime %d \t n %d \t dmrs: %d %d\n",
+                 nl, dmrs_idx, l, k, k_prime, n, ((int16_t*)tx_precoding[nl])[(sample_offsetF)<<1],
+                 ((int16_t*)tx_precoding[nl])[((sample_offsetF)<<1) + 1]);
 #endif
 
-
           dmrs_idx++;
           k_prime++;
           k_prime&=1;
           n+=(k_prime)?0:1;
-
+      
         }  else if (is_ptrs == 1) {
-
-          ((int16_t*)txdataF[ap])[(sample_offsetF)<<1] = (beta_ptrs*AMP*mod_ptrs[ptrs_idx<<1]) >> 15;
-          ((int16_t*)txdataF[ap])[((sample_offsetF)<<1) + 1] = (beta_ptrs*AMP*mod_ptrs[(ptrs_idx<<1) + 1]) >> 15;
-
+          ((int16_t*)tx_precoding[nl])[(sample_offsetF)<<1] = (beta_ptrs*AMP*mod_ptrs[ptrs_idx<<1]) >> 15;
+          ((int16_t*)tx_precoding[nl])[((sample_offsetF)<<1) + 1] = (beta_ptrs*AMP*mod_ptrs[(ptrs_idx<<1) + 1]) >> 15;
           ptrs_idx++;
-
         } else if (!is_dmrs_sym || allowed_xlsch_re_in_dmrs_symbol(k, start_sc, frame_parms->ofdm_symbol_size, cdm_grps_no_data, dmrs_type)) {
-
-          ((int16_t*)txdataF[ap])[(sample_offsetF)<<1]       = ((int16_t *) y)[m<<1];
-          ((int16_t*)txdataF[ap])[((sample_offsetF)<<1) + 1] = ((int16_t *) y)[(m<<1) + 1];
+          if (pusch_pdu->transform_precoding == transformPrecoder_disabled) {
+            ((int16_t*)tx_precoding[nl])[(sample_offsetF)<<1]       = ((int16_t *)tx_layers[nl])[m<<1];
+            ((int16_t*)tx_precoding[nl])[((sample_offsetF)<<1) + 1] = ((int16_t *)tx_layers[nl])[(m<<1) + 1];
+          }
+          else {
+            ((int16_t*)tx_precoding[nl])[(sample_offsetF)<<1]       = ((int16_t *) y)[m<<1];
+            ((int16_t*)tx_precoding[nl])[((sample_offsetF)<<1) + 1] = ((int16_t *) y)[(m<<1) + 1];
+          }
 
 #ifdef DEBUG_PUSCH_MAPPING
-          printf("m %d\t l %d \t k %d \t txdataF: %d %d\n",
-                 m, l, k, ((int16_t*)txdataF[ap])[(sample_offsetF)<<1],
-                 ((int16_t*)txdataF[ap])[((sample_offsetF)<<1) + 1]);
+          printf("DATA: layer %d\t m %d\t l %d \t k %d \t tx_precoding: %d %d\n",
+                 nl, m, l, k, ((int16_t*)tx_precoding[nl])[(sample_offsetF)<<1],
+                 ((int16_t*)tx_precoding[nl])[((sample_offsetF)<<1) + 1]);
 #endif
 
           m++;
 
         } else {
-
-          ((int16_t*)txdataF[ap])[(sample_offsetF)<<1]       = 0;
-          ((int16_t*)txdataF[ap])[((sample_offsetF)<<1) + 1] = 0;
-
+          ((int16_t*)tx_precoding[nl])[(sample_offsetF)<<1]       = 0;
+          ((int16_t*)tx_precoding[nl])[((sample_offsetF)<<1) + 1] = 0;
         }
 
         if (++k >= frame_parms->ofdm_symbol_size)
           k -= frame_parms->ofdm_symbol_size;
-      }
-    }
-  }
+      } //for (i=0; i< nb_rb*NR_NB_SC_PER_RB; i++) 
+    }//for (l=start_symbol; l<start_symbol+number_of_symbols; l++)
+  }//for (nl=0; nl < Nl; nl++)
+
+
+
+  /////////////////////////ULSCH precoding/////////////////////////
+  ///////////
+  ///Layer Precoding and Antenna port mapping
+  // tx_layers 0-3 are mapped on antenna ports
+  // The precoding info is supported by nfapi such as num_prgs, prg_size, prgs_list and pm_idx
+  // The same precoding matrix is applied on prg_size RBs, Thus
+  //        pmi = prgs_list[rbidx/prg_size].pm_idx, rbidx =0,...,rbSize-1
+  // The Precoding matrix:
+  for (int ap=0; ap<frame_parms->nb_antennas_tx; ap++) {
+    for (int l=start_symbol; l<start_symbol+number_of_symbols; l++) {
+      uint16_t k = start_sc;
+
+      for (int rb=0; rb<nb_rb; rb++) {
+        //get pmi info
+        uint8_t pmi=pusch_pdu->Tpmi;
+          
+        if (pmi == 0) {//unitary Precoding
+          if(ap< pusch_pdu->nrOfLayers)
+            memcpy((void*)&txdataF[ap][l*frame_parms->ofdm_symbol_size  + k],
+                   (void*)&tx_precoding[ap][2*(l*frame_parms->ofdm_symbol_size + k)],
+                   NR_NB_SC_PER_RB*sizeof(int32_t));
+          else
+            memset((void*)&txdataF[ap][l*frame_parms->ofdm_symbol_size + k],
+                   0,
+                   NR_NB_SC_PER_RB*sizeof(int32_t));
+
+          k += NR_NB_SC_PER_RB;
+          if (k >= frame_parms->ofdm_symbol_size) {
+            k -= frame_parms->ofdm_symbol_size;
+          }
+        }
+        else {
+          //get the precoding matrix weights:
+          char *W_prec;
+          switch (frame_parms->nb_antennas_tx) {
+            case 1://1 antenna port
+              W_prec = nr_W_1l_2p[pmi][ap];
+              break;
+            case 2://2 antenna ports
+              if (pusch_pdu->nrOfLayers == 1)//1 layer
+                W_prec = nr_W_1l_2p[pmi][ap];
+              else//2 layers
+                W_prec = nr_W_2l_2p[pmi][ap];
+              break;
+            case 4://4 antenna ports
+              if (pusch_pdu->nrOfLayers == 1)//1 layer
+                W_prec = nr_W_1l_4p[pmi][ap];
+              else if (pusch_pdu->nrOfLayers == 2)//2 layers
+                W_prec = nr_W_2l_4p[pmi][ap];
+              else if (pusch_pdu->nrOfLayers == 3)//3 layers
+                W_prec = nr_W_3l_4p[pmi][ap];
+              else//4 layers
+                W_prec = nr_W_4l_4p[pmi][ap];
+              break;
+            default:
+              LOG_D(PHY,"Precoding 1,2, or 4 antenna ports are currently supported\n");
+              W_prec = nr_W_1l_2p[pmi][ap];
+              break;
+          }
+
+          for (int i=0; i<NR_NB_SC_PER_RB; i++) {
+            int32_t re_offset = l*frame_parms->ofdm_symbol_size + k;
+            int32_t precodatatx_F = nr_layer_precoder(tx_precoding, W_prec, pusch_pdu->nrOfLayers, re_offset);
+            ((int16_t*)txdataF[ap])[(re_offset<<1)] = ((int16_t *) &precodatatx_F)[0];
+            ((int16_t*)txdataF[ap])[(re_offset<<1) + 1] = ((int16_t *) &precodatatx_F)[1];
+                            
+            if (++k >= frame_parms->ofdm_symbol_size) {
+              k -= frame_parms->ofdm_symbol_size;
+            }
+          }
+        }
+      } //RB loop
+    } // symbol loop
+  }// port loop
 
   NR_UL_UE_HARQ_t *harq_process_ulsch=NULL;
   harq_process_ulsch = UE->ulsch[thread_id][gNB_id]->harq_processes[harq_pid];
   harq_process_ulsch->status = SCH_IDLE;
 
+  for (int nl = 0; nl < Nl; nl++) {
+    free_and_zero(tx_layers[nl]);
+    free_and_zero(tx_precoding[nl]);
+  }
+  free_and_zero(tx_layers);
+  free_and_zero(tx_precoding);
+
   ///////////
   ////////////////////////////////////////////////////////////////////////
 
@@ -498,7 +573,7 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
 uint8_t nr_ue_pusch_common_procedures(PHY_VARS_NR_UE *UE,
                                       uint8_t slot,
                                       NR_DL_FRAME_PARMS *frame_parms,
-                                      uint8_t Nl) {
+                                      uint8_t n_antenna_ports) {
 
   int tx_offset, ap;
   int32_t **txdata;
@@ -520,25 +595,23 @@ uint8_t nr_ue_pusch_common_procedures(PHY_VARS_NR_UE *UE,
   txdataF = UE->common_vars.txdataF;
 
   int symb_offset = (slot%frame_parms->slots_per_subframe)*frame_parms->symbols_per_slot;
-  for(ap = 0; ap < Nl; ap++) {
+  for(ap = 0; ap < n_antenna_ports; ap++) {
     for (int s=0;s<NR_NUMBER_OF_SYMBOLS_PER_SLOT;s++){
-
-      LOG_D(PHY,"In %s: rotating txdataF symbol %d (%d) => (%d.%d)\n",
-        __FUNCTION__,
-        s,
-        s + symb_offset,
-        frame_parms->symbol_rotation[1][2 * (s + symb_offset)],
-        frame_parms->symbol_rotation[1][1 + (2 * (s + symb_offset))]);
-
-      rotate_cpx_vector((int16_t *)&txdataF[ap][frame_parms->ofdm_symbol_size * s],
-                        &frame_parms->symbol_rotation[1][2 * (s + symb_offset)],
-                        (int16_t *)&txdataF[ap][frame_parms->ofdm_symbol_size * s],
+      c16_t rot=((c16_t*)frame_parms->symbol_rotation[1])[s + symb_offset];
+      LOG_D(PHY,"rotating txdataF symbol %d (%d) => (%d.%d)\n",
+	    s,
+	    s + symb_offset,
+	    rot.r, rot.i);
+
+      rotate_cpx_vector((c16_t *)&txdataF[ap][frame_parms->ofdm_symbol_size * s],
+                        &rot,
+                        (c16_t *)&txdataF[ap][frame_parms->ofdm_symbol_size * s],
                         frame_parms->ofdm_symbol_size,
                         15);
     }
   }
 
-  for (ap = 0; ap < Nl; ap++) {
+  for (ap = 0; ap < n_antenna_ports; ap++) {
     if (frame_parms->Ncp == 1) { // extended cyclic prefix
       PHY_ofdm_mod(txdataF[ap],
                    &txdata[ap][tx_offset],
diff --git a/openair1/PHY/NR_UE_TRANSPORT/pss_nr.c b/openair1/PHY/NR_UE_TRANSPORT/pss_nr.c
index 52f9e67b251..d2034f3abf4 100644
--- a/openair1/PHY/NR_UE_TRANSPORT/pss_nr.c
+++ b/openair1/PHY/NR_UE_TRANSPORT/pss_nr.c
@@ -48,138 +48,8 @@
 #include "PHY/NR_REFSIG/sss_nr.h"
 #include "PHY/NR_UE_TRANSPORT/cic_filter_nr.h"
 
-/*******************************************************************
-*
-* NAME :         get_idft
-*
-* PARAMETERS :   size of ofdm symbol
-*
-* RETURN :       index pointing to the dft func in the dft library
-*
-* DESCRIPTION :  get idft function depending of ofdm size
-*
-*********************************************************************/
-
 //#define DBG_PSS_NR
 
-idft_size_idx_t get_idft(int ofdm_symbol_size)
-{
-  
- 
-  switch (ofdm_symbol_size) {
-    case 128:
-      return IDFT_128;
-      break;
-
-    case 256:
-      return IDFT_256;
-      break;
-
-    case 512:
-      return IDFT_512;
-      break;
-
-    case 768:
-      return IDFT_768;
-      break;
-
-    case 1024:
-      return IDFT_1024;
-      break;
-
-    case 1536:
-      return IDFT_1536;
-      break;
-
-    case 2048:
-      return IDFT_2048;
-      break;
-
-    case 3072:
-      return IDFT_3072;
-      break;
-
-    case 4096:
-      return IDFT_4096;
-      break;
-
-    case 8192:
-      return IDFT_8192;
-      break;
-
-    default:
-      printf("function get_idft : unsupported ofdm symbol size \n");
-      assert(0);
-      break;
- }
- return IDFT_SIZE_IDXTABLESIZE; // never reached and will trigger assertion in idft function
-}
-
-/*******************************************************************
-*
-* NAME :         get_dft
-*
-* PARAMETERS :   size of ofdm symbol
-*
-* RETURN :       function for discrete fourier transform
-*
-* DESCRIPTION :  get dft function depending of ofdm size
-*
-*********************************************************************/
-
-dft_size_idx_t get_dft(int ofdm_symbol_size)
-{
-
-
-  switch (ofdm_symbol_size) {
-    case 128:
-      return DFT_128;
-      break;
-
-    case 256:
-      return DFT_256;
-      break;
-
-    case 384:
-      return DFT_384;
-      break;
-
-    case 512:
-      return DFT_512;
-      break;
-
-    case 768:
-      return DFT_768;
-      break;
-
-    case 1024:
-      return DFT_1024;
-      break;
-
-    case 1536:
-      return DFT_1536;
-      break;
-
-    case 2048:
-      return DFT_2048;
-      break;
-
-    case 4096:
-      return DFT_4096;
-      break;
-
-    case 8192:
-      return DFT_8192;
-      break;
-
-    default:
-      printf("function get_dft : unsupported ofdm symbol size \n");
-      assert(0);
-      break;
- }
- return DFT_SIZE_IDXTABLESIZE; // never reached and will trigger assertion in idft function;
-}
-
 /*******************************************************************
 *
 * NAME :         generate_pss_nr
diff --git a/openair1/PHY/TOOLS/calibration_scope.c b/openair1/PHY/TOOLS/calibration_scope.c
index da1acb51757..d3397b033f1 100644
--- a/openair1/PHY/TOOLS/calibration_scope.c
+++ b/openair1/PHY/TOOLS/calibration_scope.c
@@ -34,7 +34,7 @@ typedef struct OAIgraph {
   int h;
   int waterFallh;
   double *waterFallAvg;
-  boolean_t initDone;
+  bool initDone;
   int iteration;
   void (*funct) (struct OAIgraph *graph, calibData_t *);
 } OAIgraph_t;
@@ -159,7 +159,7 @@ static void oai_xygraph_getbuff(OAIgraph_t *graph, float **x, float **y, int len
   *y=old_y;
 }
 
-static void oai_xygraph(OAIgraph_t *graph, float *x, float *y, int len, int layer, boolean_t NoAutoScale) {
+static void oai_xygraph(OAIgraph_t *graph, float *x, float *y, int len, int layer, bool NoAutoScale) {
   fl_redraw_object(graph->graph);
 
   if ( NoAutoScale && graph->iteration%NoAutoScale == 0) {
diff --git a/openair1/PHY/TOOLS/cmult_sv.c b/openair1/PHY/TOOLS/cmult_sv.c
index dc57964ca52..a9d502b9eb1 100644
--- a/openair1/PHY/TOOLS/cmult_sv.c
+++ b/openair1/PHY/TOOLS/cmult_sv.c
@@ -144,207 +144,10 @@ void multadd_real_four_symbols_vector_complex_scalar(int16_t *x,
   _m_empty();
 
 }
-
-/*
-int rotate_cpx_vector(int16_t *x,
-                      int16_t *alpha,
-                      int16_t *y,
-                      uint32_t N,
-                      uint16_t output_shift,
-                      uint8_t format)
-{
-  // Multiply elementwise two complex vectors of N elements
-  // x        - input 1    in the format  |Re0  Im0 Re0 Im0|,......,|Re(N-1)  Im(N-1) Re(N-1) Im(N-1)|
-  //            We assume x1 with a dynamic of 15 bit maximum
-  //
-  // alpha      - input 2    in the format  |Re0 Im0|
-  //            We assume x2 with a dynamic of 15 bit maximum
-  //
-  // y        - output     in the format  |Re0  Im0 Re0 Im0|,......,|Re(N-1)  Im(N-1) Re(N-1) Im(N-1)|
-  //
-  // N        - the size f the vectors (this function does N cpx mpy. WARNING: N>=4;
-  //
-  // output_shift - shift at output to return in Q1.15
-  // format - 0 means alpha is in shuffled format, 1 means x is in shuffled format
-
-  uint32_t i;                 // loop counter
-
-  register __m128i m0,m1;
-
-
-
-  __m128i *x_128;
-  __m128i *y_128;
-
-
-  shift = _mm_cvtsi32_si128(output_shift);
-  x_128 = (__m128i *)&x[0];
-
-  if (format==0) {  // alpha is in shuffled format for complex multiply
-    ((int16_t *)&alpha_128)[0] = alpha[0];
-    ((int16_t *)&alpha_128)[1] = -alpha[1];
-    ((int16_t *)&alpha_128)[2] = alpha[1];
-    ((int16_t *)&alpha_128)[3] = alpha[0];
-    ((int16_t *)&alpha_128)[4] = alpha[0];
-    ((int16_t *)&alpha_128)[5] = -alpha[1];
-    ((int16_t *)&alpha_128)[6] = alpha[1];
-    ((int16_t *)&alpha_128)[7] = alpha[0];
-  } else { // input is in shuffled format for complex multiply
-    ((int16_t *)&alpha_128)[0] = alpha[0];
-    ((int16_t *)&alpha_128)[1] = alpha[1];
-    ((int16_t *)&alpha_128)[2] = alpha[0];
-    ((int16_t *)&alpha_128)[3] = alpha[1];
-    ((int16_t *)&alpha_128)[4] = alpha[0];
-    ((int16_t *)&alpha_128)[5] = alpha[1];
-    ((int16_t *)&alpha_128)[6] = alpha[0];
-    ((int16_t *)&alpha_128)[7] = alpha[1];
-  }
-
-  y_128 = (__m128i *)&y[0];
-
-  //  _mm_empty();
-  //  return(0);
-
-  // we compute 4 cpx multiply for each loop
-  for(i=0; i<(N>>3); i++) {
-
-    m0 = _mm_madd_epi16(x_128[0],alpha_128); //pmaddwd_r2r(mm1,mm0);         // 1- compute x1[0]*x2[0]
-    m0 = _mm_sra_epi32(m0,shift);        // 1- shift right by shift in order to  compensate for the input amplitude
-    m1=m0;
-    m0 = _mm_packs_epi32(m1,m0);        // 1- pack in a 128 bit register [re im re im]
-    y_128[0] = _mm_unpacklo_epi32(m0,m0);        // 1- pack in a 128 bit register [re im re im]
-    m0 = _mm_madd_epi16(x_128[1],alpha_128); //pmaddwd_r2r(mm1,mm0);         // 1- compute x1[0]*x2[0]
-    m0 = _mm_sra_epi32(m0,shift);        // 1- shift right by shift in order to  compensate for the input amplitude
-    m1 = m0;
-    m1 = _mm_packs_epi32(m1,m0);        // 1- pack in a 128 bit register [re im re im]
-    y_128[1] = _mm_unpacklo_epi32(m1,m1);        // 1- pack in a 128 bit register [re im re im]
-    m0 = _mm_madd_epi16(x_128[2],alpha_128); //pmaddwd_r2r(mm1,mm0);         // 1- compute x1[0]*x2[0]
-    m0 = _mm_sra_epi32(m0,shift);        // 1- shift right by shift in order to  compensate for the input amplitude
-    m1 = m0;
-    m1 = _mm_packs_epi32(m1,m0);        // 1- pack in a 128 bit register [re im re im]
-    y_128[2] = _mm_unpacklo_epi32(m1,m1);        // 1- pack in a 128 bit register [re im re im]
-    m0 = _mm_madd_epi16(x_128[3],alpha_128); //pmaddwd_r2r(mm1,mm0);         // 1- compute x1[0]*x2[0]
-    m0 = _mm_sra_epi32(m0,shift);        // 1- shift right by shift in order to  compensate for the input amplitude
-    m1 = m0;
-    m1 = _mm_packs_epi32(m1,m0);        // 1- pack in a 128 bit register [re im re im]
-    y_128[3] = _mm_unpacklo_epi32(m1,m1);        // 1- pack in a 128 bit register [re im re im]
-    if (format==1) {  // Put output in proper format (Re,-Im,Im,Re), shuffle = (0,1,3,2) = 0x1e
-
-      y_128[0] = _mm_shufflelo_epi16(y_128[0],0x1e);
-      y_128[0] = _mm_shufflehi_epi16(y_128[0],0x1e);
-      ((int16_t*)&y_128[0])[1] = -((int16_t*)&y_128[0])[1];
-      ((int16_t*)&y_128[0])[5] = -((int16_t*)&y_128[0])[5];
-      y_128[1] = _mm_shufflelo_epi16(y_128[1],0x1e);
-      y_128[1] = _mm_shufflehi_epi16(y_128[1],0x1e);
-      ((int16_t*)&y_128[1])[1] = -((int16_t*)&y_128[1])[1];
-      ((int16_t*)&y_128[1])[5] = -((int16_t*)&y_128[1])[5];
-      y_128[2] = _mm_shufflelo_epi16(y_128[2],0x1e);
-      y_128[2] = _mm_shufflehi_epi16(y_128[2],0x1e);
-      ((int16_t*)&y_128[2])[1] = -((int16_t*)&y_128[2])[1];
-      ((int16_t*)&y_128[2])[5] = -((int16_t*)&y_128[2])[5];
-      y_128[3] = _mm_shufflelo_epi16(y_128[3],0x1e);
-      y_128[3] = _mm_shufflehi_epi16(y_128[3],0x1e);
-      ((int16_t*)&y_128[3])[1] = -((int16_t*)&y_128[3])[1];
-      ((int16_t*)&y_128[3])[5] = -((int16_t*)&y_128[3])[5];
-    }
-
-
-    x_128+=4;
-    y_128 +=4;
-  }
-
-
-  _mm_empty();
-  _m_empty();
-
-  return(0);
-}
-
-int rotate_cpx_vector2(int16_t *x,
-                       int16_t *alpha,
-                       int16_t *y,
-                       uint32_t N,
-                       uint16_t output_shift,
-                       uint8_t format)
-{
-  // Multiply elementwise two complex vectors of N elements
-  // x        - input 1    in the format  |Re0  Im0 Re0 Im0|,......,|Re(N-1)  Im(N-1) Re(N-1) Im(N-1)|
-  //            We assume x1 with a dynamic of 15 bit maximum
-  //
-  // alpha      - input 2    in the format  |Re0 Im0|
-  //            We assume x2 with a dynamic of 15 bit maximum
-  //
-  // y        - output     in the format  |Re0  Im0 Re0 Im0|,......,|Re(N-1)  Im(N-1) Re(N-1) Im(N-1)|
-  //
-  // N        - the size f the vectors (this function does N cpx mpy. WARNING: N>=4;
-  //
-  // log2_amp - increase the output amplitude by a factor 2^log2_amp (default is 0)
-  //            WARNING: log2_amp>0 can cause overflow!!
-
-  uint32_t i;                 // loop counter
-
-  register __m128i m0,m1;
-
-
-  __m128i *x_128;
-  __m128i *y_128;
-
-
-  shift = _mm_cvtsi32_si128(output_shift);
-  x_128 = (__m128i *)&x[0];
-
-  if (format==0) {  // alpha is in shuffled format for complex multiply
-    ((int16_t *)&alpha_128)[0] = alpha[0];
-    ((int16_t *)&alpha_128)[1] = -alpha[1];
-    ((int16_t *)&alpha_128)[2] = alpha[1];
-    ((int16_t *)&alpha_128)[3] = alpha[0];
-    ((int16_t *)&alpha_128)[4] = alpha[0];
-    ((int16_t *)&alpha_128)[5] = -alpha[1];
-    ((int16_t *)&alpha_128)[6] = alpha[1];
-    ((int16_t *)&alpha_128)[7] = alpha[0];
-  } else { // input is in shuffled format for complex multiply
-    ((int16_t *)&alpha_128)[0] = alpha[0];
-    ((int16_t *)&alpha_128)[1] = alpha[1];
-    ((int16_t *)&alpha_128)[2] = alpha[0];
-    ((int16_t *)&alpha_128)[3] = alpha[1];
-    ((int16_t *)&alpha_128)[4] = alpha[0];
-    ((int16_t *)&alpha_128)[5] = alpha[1];
-    ((int16_t *)&alpha_128)[6] = alpha[0];
-    ((int16_t *)&alpha_128)[7] = alpha[1];
-  }
-
-  y_128 = (__m128i *)&y[0];
-
-  // we compute 4 cpx multiply for each loop
-  for(i=0; i<(N>>1); i++) {
-
-
-    m0 = _mm_madd_epi16(x_128[i],alpha_128); //pmaddwd_r2r(mm1,mm0);         // 1- compute x1[0]*x2[0]
-    m0 = _mm_sra_epi32(m0,shift);        // 1- shift right by shift in order to  compensate for the input amplitude
-    m1=m0;
-    m1 = _mm_packs_epi32(m1,m0);        // 1- pack in a 128 bit register [re im re im]
-    y_128[i] = _mm_unpacklo_epi32(m1,m1);        // 1- pack in a 128 bit register [re im re im]
-    if (format==1) {  // Put output in proper format (Re,-Im,Im,Re), shuffle = (0,1,3,2) = 0x1e
-
-      y_128[i] = _mm_shufflelo_epi16(y_128[i],0x1e);
-      y_128[i] = _mm_shufflehi_epi16(y_128[i],0x1e);
-      ((int16_t*)&y_128[i])[1] = -((int16_t*)&y_128[i])[1];
-      ((int16_t*)&y_128[i])[5] = -((int16_t*)&y_128[i])[5];
-    }
-  }
-
-
-  _mm_empty();
-  _m_empty();
-
-
-  return(0);
-}
-*/
-
-int rotate_cpx_vector(int16_t *x,
-                      int16_t *alpha,
-                      int16_t *y,
+#ifdef __AVX2__
+void rotate_cpx_vector(c16_t *x,
+                      c16_t *alpha,
+                      c16_t *y,
                       uint32_t N,
                       uint16_t output_shift)
 {
@@ -372,28 +175,28 @@ int rotate_cpx_vector(int16_t *x,
   __m128i shift = _mm_cvtsi32_si128(output_shift);
   register simd_q15_t m0,m1,m2,m3;
 
-  ((int16_t *)&alpha_128)[0] = alpha[0];
-  ((int16_t *)&alpha_128)[1] = -alpha[1];
-  ((int16_t *)&alpha_128)[2] = alpha[1];
-  ((int16_t *)&alpha_128)[3] = alpha[0];
-  ((int16_t *)&alpha_128)[4] = alpha[0];
-  ((int16_t *)&alpha_128)[5] = -alpha[1];
-  ((int16_t *)&alpha_128)[6] = alpha[1];
-  ((int16_t *)&alpha_128)[7] = alpha[0];
+  ((int16_t *)&alpha_128)[0] = alpha->r;
+  ((int16_t *)&alpha_128)[1] = -alpha->i;
+  ((int16_t *)&alpha_128)[2] = alpha->i;
+  ((int16_t *)&alpha_128)[3] = alpha->r;
+  ((int16_t *)&alpha_128)[4] = alpha->r;
+  ((int16_t *)&alpha_128)[5] = -alpha->i;
+  ((int16_t *)&alpha_128)[6] = alpha->i;
+  ((int16_t *)&alpha_128)[7] = alpha->r;
 #elif defined(__arm__)
   int32x4_t shift;
   int32x4_t ab_re0,ab_re1,ab_im0,ab_im1,re32,im32;
   int16_t reflip[8]  __attribute__((aligned(16))) = {1,-1,1,-1,1,-1,1,-1};
   int32x4x2_t xtmp;
 
-  ((int16_t *)&alpha_128)[0] = alpha[0];
-  ((int16_t *)&alpha_128)[1] = alpha[1];
-  ((int16_t *)&alpha_128)[2] = alpha[0];
-  ((int16_t *)&alpha_128)[3] = alpha[1];
-  ((int16_t *)&alpha_128)[4] = alpha[0];
-  ((int16_t *)&alpha_128)[5] = alpha[1];
-  ((int16_t *)&alpha_128)[6] = alpha[0];
-  ((int16_t *)&alpha_128)[7] = alpha[1];
+  ((int16_t *)&alpha_128)[0] = alpha->r;
+  ((int16_t *)&alpha_128)[1] = alpha->i;
+  ((int16_t *)&alpha_128)[2] = alpha->r;
+  ((int16_t *)&alpha_128)[3] = alpha->i;
+  ((int16_t *)&alpha_128)[4] = alpha->r;
+  ((int16_t *)&alpha_128)[5] = alpha->i;
+  ((int16_t *)&alpha_128)[6] = alpha->r;
+  ((int16_t *)&alpha_128)[7] = alpha->i;
   int16x8_t bflip = vrev32q_s16(alpha_128);
   int16x8_t bconj = vmulq_s16(alpha_128,*(int16x8_t *)reflip);
   shift = vdupq_n_s32(-output_shift);
@@ -439,9 +242,9 @@ int rotate_cpx_vector(int16_t *x,
   _mm_empty();
   _m_empty();
 
-  return(0);
+  return;
 }
-
+#endif
 /*
 int mult_vector32_scalar(int16_t *x1,
                          int x2,
@@ -536,7 +339,7 @@ main ()
   int16_t input[256] __attribute__((aligned(16)));
   int16_t input2[256] __attribute__((aligned(16)));
   int16_t output[256] __attribute__((aligned(16)));
-  int16_t alpha[2];
+  c16_t alpha;
 
   int i;
 
@@ -574,8 +377,8 @@ main ()
   input2[14] = 1000;
   input2[15] = 2000;
 
-  alpha[0]=32767;
-  alpha[1]=0;
+  alpha->r=32767;
+  alpha->i=0;
 
   //mult_cpx_vector(input,input2,output,L,0);
   rotate_cpx_vector_norep(input,alpha,input,L,15);
diff --git a/openair1/PHY/TOOLS/lte_ue_scope.c b/openair1/PHY/TOOLS/lte_ue_scope.c
index 9b3f65d7d13..2c45437cdfa 100644
--- a/openair1/PHY/TOOLS/lte_ue_scope.c
+++ b/openair1/PHY/TOOLS/lte_ue_scope.c
@@ -51,9 +51,9 @@ void reset_stats(FL_OBJECT *button, long arg) {
   int i,j,k;
   PHY_VARS_eNB *phy_vars_eNB = RC.eNB[0][0];
 
-  for (i=0; i<NUMBER_OF_DLSCH_MAX; i++) {
-    for (k=0; k<8; k++) { //harq_processes
-      for (j=0; j<phy_vars_eNB->dlsch[i][0]->Mlimit; j++) {
+  for (i=0; i<NUMBER_OF_UE_MAX; i++) {
+    for (k=0; k<NUMBER_OF_DLSCH_MAX; k++) { //harq_processes
+      for (j=0; j<phy_vars_eNB->dlsch[k][0]->Mlimit; j++) {
         phy_vars_eNB->UE_stats[i].dlsch_NAK[k][j]=0;
         phy_vars_eNB->UE_stats[i].dlsch_ACK[k][j]=0;
         phy_vars_eNB->UE_stats[i].dlsch_trials[k][j]=0;
diff --git a/openair1/PHY/TOOLS/nr_phy_scope.c b/openair1/PHY/TOOLS/nr_phy_scope.c
index 723813fbb62..d4b28361d24 100644
--- a/openair1/PHY/TOOLS/nr_phy_scope.c
+++ b/openair1/PHY/TOOLS/nr_phy_scope.c
@@ -60,7 +60,7 @@ typedef struct OAIgraph {
   int h;
   int waterFallh;
   double *waterFallAvg;
-  boolean_t initDone;
+  bool initDone;
   int iteration;
   void (*gNBfunct) (struct OAIgraph *graph, scopeData_t *p, int UE_id);
   void (*nrUEfunct)(scopeGraphData_t **data, struct OAIgraph *graph, PHY_VARS_NR_UE *phy_vars_ue, int eNB_id, int UE_id);
@@ -208,7 +208,7 @@ static void oai_xygraph_getbuff(OAIgraph_t *graph, float **x, float **y, int len
   *y=old_y;
 }
 
-static void oai_xygraph(OAIgraph_t *graph, float *x, float *y, int len, int layer, boolean_t NoAutoScale) {
+static void oai_xygraph(OAIgraph_t *graph, float *x, float *y, int len, int layer, bool NoAutoScale) {
   fl_redraw_object(graph->graph);
 
   if ( NoAutoScale && graph->iteration%NoAutoScale == 0) {
diff --git a/openair1/PHY/TOOLS/tools_defs.h b/openair1/PHY/TOOLS/tools_defs.h
index f272e513c2a..a539b9d7719 100644
--- a/openair1/PHY/TOOLS/tools_defs.h
+++ b/openair1/PHY/TOOLS/tools_defs.h
@@ -33,8 +33,11 @@
 extern "C" {
 #endif
 
+#include <stdio.h>
 #include <stdint.h>
+#include <assert.h>
 #include "PHY/sse_intrin.h"
+#include "common/utils/assertions.h"
 
 #define CEILIDIV(a,b) ((a+b-1)/b)
 #define ROUNDIDIV(a,b) (((a<<1)+b)/(b<<1))
@@ -102,15 +105,6 @@ void multadd_complex_vector_real_scalar(int16_t *x,
                                         uint8_t zero_flag,
                                         uint32_t N);
 
-int rotate_cpx_vector(int16_t *x,
-                      int16_t *alpha,
-                      int16_t *y,
-                      uint32_t N,
-                      uint16_t output_shift);
-
-
-
-
 /*!\fn void init_fft(uint16_t size,uint8_t logsize,uint16_t *rev)
 \brief Initialize the FFT engine for a given size
 @param size Size of the FFT
@@ -319,6 +313,65 @@ typedef enum dft_size_idx {
 
 #define SZ_iENUM(Sz) IDFT_ ## Sz,
 
+/*******************************************************************
+*
+* NAME :         get_dft
+*
+* PARAMETERS :   size of ofdm symbol
+*
+* RETURN :       function for discrete fourier transform
+*
+* DESCRIPTION :  get dft function depending of ofdm size
+*
+*********************************************************************/
+static inline
+dft_size_idx_t get_dft(int ofdm_symbol_size)
+{
+  switch (ofdm_symbol_size) {
+    case 128:
+      return DFT_128;
+    case 256:
+      return DFT_256;
+    case 512:
+      return DFT_512;
+    case 1024:
+      return DFT_1024;
+    case 1536:
+      return DFT_1536;
+    case 2048:
+      return DFT_2048;
+    case 3072:
+      return DFT_3072;
+    case 4096:
+      return DFT_4096;
+    case 6144:
+      return DFT_6144;
+    case 8192:
+      return DFT_8192;
+    case 9216:
+      return DFT_9216;
+    case 12288:
+      return DFT_12288;
+    case 18432:
+      return DFT_18432;
+    case 24576:
+      return DFT_24576;
+    case 36864:
+      return DFT_36864;
+    case 49152:
+      return DFT_49152;
+    case 73728:
+      return DFT_73728;
+    case 98304:
+      return DFT_98304;
+    default:
+      printf("function get_dft : unsupported ofdm symbol size \n");
+      assert(0);
+      break;
+ }
+ return DFT_SIZE_IDXTABLESIZE; // never reached and will trigger assertion in idft function;
+}
+
 typedef enum idft_size_idx {
   FOREACH_IDFTSZ(SZ_iENUM)
   IDFT_SIZE_IDXTABLESIZE
@@ -344,9 +397,67 @@ struct {
 
 #endif
 
+/*******************************************************************
+*
+* NAME :         get_idft
+*
+* PARAMETERS :   size of ofdm symbol
+*
+* RETURN :       index pointing to the dft func in the dft library
+*
+* DESCRIPTION :  get idft function depending of ofdm size
+*
+*********************************************************************/
+static inline
+idft_size_idx_t get_idft(int ofdm_symbol_size)
+{
+  switch (ofdm_symbol_size) {
+    case 128:
+      return IDFT_128;
+    case 256:
+      return IDFT_256;
+    case 512:
+      return IDFT_512;
+    case 1024:
+      return IDFT_1024;
+    case 1536:
+      return IDFT_1536;
+    case 2048:
+      return IDFT_2048;
+    case 3072:
+      return IDFT_3072;
+    case 4096:
+      return IDFT_4096;
+    case 6144:
+      return IDFT_6144;
+    case 8192:
+      return IDFT_8192;
+    case 9216:
+      return IDFT_9216;
+    case 12288:
+      return IDFT_12288;
+    case 18432:
+      return IDFT_18432;
+    case 24576:
+      return IDFT_24576;
+    case 36864:
+      return IDFT_36864;
+    case 49152:
+      return IDFT_49152;
+    case 73728:
+      return IDFT_73728;
+    case 98304:
+      return IDFT_98304;
+    default:
+      printf("function get_idft : unsupported ofdm symbol size \n");
+      assert(0);
+      break;
+ }
+ return IDFT_SIZE_IDXTABLESIZE; // never reached and will trigger assertion in idft function
+}
 
 
-/*!\fn int32_t rotate_cpx_vector(int16_t *x,int16_t *alpha,int16_t *y,uint32_t N,uint16_t output_shift)
+/*!\fn int32_t rotate_cpx_vector(c16_t *x,c16_t *alpha,c16_t *y,uint32_t N,uint16_t output_shift)
 This function performs componentwise multiplication of a vector with a complex scalar.
 @param x Vector input (Q1.15)  in the format  |Re0  Im0|,......,|Re(N-1) Im(N-1)|
 @param alpha Scalar input (Q1.15) in the format  |Re0 Im0|
@@ -356,11 +467,11 @@ This function performs componentwise multiplication of a vector with a complex s
 
 The function implemented is : \f$\mathbf{y} = \alpha\mathbf{x}\f$
 */
-int32_t rotate_cpx_vector(int16_t *x,
-                          int16_t *alpha,
-                          int16_t *y,
-                          uint32_t N,
-                          uint16_t output_shift);
+void rotate_cpx_vector(c16_t *x,
+                       c16_t *alpha,
+                       c16_t *y,
+                       uint32_t N,
+                       uint16_t output_shift);
 
 
 //cadd_sv.c
diff --git a/openair1/PHY/defs_common.h b/openair1/PHY/defs_common.h
index d13fe260deb..c93e3a7de9c 100644
--- a/openair1/PHY/defs_common.h
+++ b/openair1/PHY/defs_common.h
@@ -754,7 +754,7 @@ typedef struct {
   /// Position of first CCE of the dci
   int firstCCE;
   /// flag to indicate that this is a RA response
-  boolean_t ra_flag;
+  bool ra_flag;
   /// rnti
   rnti_t rnti;
   /// harq_pid
@@ -775,7 +775,7 @@ typedef struct {
   /// Position of first CCE of the dci
   int firstCCE;
   /// flag to indicate that this is a RA response
-  boolean_t ra_flag;
+  bool ra_flag;
   /// rnti
   rnti_t rnti;
   /// Format
@@ -806,7 +806,7 @@ typedef struct {
   /// Position of first CCE of the dci
   int firstCCE;
   /// flag to indicate that this is a RA response
-  boolean_t ra_flag;
+  bool ra_flag;
   /// rnti
   rnti_t rnti;
   /// Format
@@ -907,7 +907,7 @@ typedef enum {no_relay=1,unicast_relay_type1,unicast_relay_type2, multicast_rela
 
 
 
-#define MCS_COUNT 28
+#define MCS_COUNT 29
 #define MCS_TABLE_LENGTH_MAX 64
 
 
diff --git a/openair1/PHY/defs_gNB.h b/openair1/PHY/defs_gNB.h
index 0b9fd8564ec..bc93b5820a1 100644
--- a/openair1/PHY/defs_gNB.h
+++ b/openair1/PHY/defs_gNB.h
@@ -48,7 +48,6 @@
 #define MAX_NUM_RU_PER_gNB MAX_NUM_RU_PER_eNB
 #define MAX_PUCCH0_NID 8
 
-
 typedef struct {
   int nb_id;
   int Nid[MAX_PUCCH0_NID];
@@ -97,6 +96,8 @@ typedef struct {
   uint32_t subframe;
   /// MIMO mode for this DLSCH
   MIMO_mode_t mimo_mode;
+  /// Interleaver outputs
+  uint8_t *f;
   /// LDPC lifting size
   uint32_t Z;
 } NR_DL_gNB_HARQ_t;
@@ -187,8 +188,6 @@ typedef struct {
   uint8_t codebook_index;
   /// Maximum number of HARQ processes
   uint8_t Mdlharq;
-  /// Maximum number of HARQ rounds
-  uint8_t Mlimit;
   /// MIMO transmission mode indicator for this sub-frame
   uint8_t Kmimo;
   /// Nsoft parameter related to UE Category
@@ -277,7 +276,7 @@ typedef struct {
   /// The payload + CRC (24 bits) in bits (38.212 V15.4.0 section 5.1)
   uint32_t B;
   /// Pointers to code blocks after code block segmentation and CRC attachment (38.212 V15.4.0 section 5.2.2)
-  uint8_t *c[MAX_NUM_NR_ULSCH_SEGMENTS];
+  uint8_t **c;
   /// Number of bits in each code block (38.212 V15.4.0 section 5.2.2)
   uint32_t K;
   /// Number of "Filler" bits added in the code block segmentation (38.212 V15.4.0 section 5.2.2)
@@ -285,11 +284,9 @@ typedef struct {
   /// Number of code blocks after code block segmentation (38.212 V15.4.0 section 5.2.2)
   uint32_t C;
   /// Pointers to code blocks after LDPC coding (38.212 V15.4.0 section 5.3.2)
-  int16_t *d[MAX_NUM_NR_ULSCH_SEGMENTS];
+  int16_t **d;
   /// LDPC lifting size (38.212 V15.4.0 table 5.3.2-1)
   uint32_t Z;
-  /// code blocks after bit selection in rate matching for LDPC code (38.212 V15.4.0 section 5.4.2.1)
-  int16_t e[MAX_NUM_NR_ULSCH_SEGMENTS][3*8448];
   /// Number of bits in each code block after rate matching for LDPC code (38.212 V15.4.0 section 5.4.2.1)
   uint32_t E;
   /// Number of segments processed so far
@@ -344,8 +341,6 @@ typedef struct {
   int16_t q_RI[MAX_RI_PAYLOAD];
   /// Temporary h sequence to flag PUSCH_x/PUSCH_y symbols which are not scrambled
   uint8_t h[MAX_NUM_CHANNEL_BITS];
-  /// soft bits for each received segment ("w"-sequence)(for definition see 36-212 V8.6 2009-03, p.15)
-  int16_t *w[MAX_NUM_NR_ULSCH_SEGMENTS];
   //////////////////////////////////////////////////////////////
 } NR_UL_gNB_HARQ_t;
 
@@ -353,8 +348,6 @@ typedef struct {
 typedef struct {
   /// Pointers to 16 HARQ processes for the ULSCH
   NR_UL_gNB_HARQ_t *harq_processes[NR_MAX_ULSCH_HARQ_PROCESSES];
-  /// Current HARQ process id
-  int harq_process_id[NR_MAX_SLOTS_PER_FRAME];
   /// HARQ process mask, indicates which processes are currently active
   uint16_t harq_mask;
   /// ACK/NAK Bundling flag
@@ -381,8 +374,6 @@ typedef struct {
   uint8_t cyclicShift;
   /// for cooperative communication
   uint8_t cooperation_flag;
-  /// Maximum number of HARQ rounds
-  uint8_t Mlimit;
   /// Maximum number of LDPC iterations
   uint8_t max_ldpc_iterations;
   /// number of iterations used in last LDPC decoding
@@ -438,10 +429,6 @@ typedef struct {
   /// - first index: rx antenna id [0..nb_antennas_rx[
   /// - second index: ? [0..2*ofdm_symbol_size[
   int32_t **rxdataF_ext;
-  /// \brief Holds the received data in the frequency domain for the allocated RBs in normal format.
-  /// - first index: rx antenna id [0..nb_antennas_rx[
-  /// - second index (definition from phy_init_lte_eNB()): ? [0..12*N_RB_UL*frame_parms->symbols_per_tti[
-  int32_t **rxdataF_ext2;
   /// \brief Hold the channel estimates in time domain based on DRS.
   /// - first index: rx antenna id [0..nb_antennas_rx[
   /// - second index: ? [0..4*ofdm_symbol_size[
@@ -454,14 +441,6 @@ typedef struct {
   /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx
   /// - second index: ? [0..12*N_RB_UL*frame_parms->symbols_per_tti[
   int32_t **ul_ch_estimates_ext;
-  /// \brief Hold the PTRS phase estimates in frequency domain.
-  /// - first index: rx antenna id [0..nb_antennas_rx[
-  /// - second index: ? [0..12*N_RB_UL*frame_parms->symbols_per_tti[
-  int32_t **ul_ch_ptrs_estimates;
-  /// \brief Uplink phase estimates extracted in PRBS.
-  /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx
-  /// - second index: ? [0..12*N_RB_UL*frame_parms->symbols_per_tti[
-  int32_t **ul_ch_ptrs_estimates_ext;
   /// \brief Holds the compensated signal.
   /// - first index: rx antenna id [0..nb_antennas_rx[
   /// - second index: ? [0..12*N_RB_UL*frame_parms->symbols_per_tti[
@@ -477,7 +456,7 @@ typedef struct {
   /// \brief Cross-correlation of two UE signals.
   /// - first index: rx antenna [0..nb_antennas_rx[
   /// - second index: symbol [0..]
-  int32_t **rho;
+  int32_t ***rho;
   /// \f$\log_2(\max|H_i|^2)\f$
   int16_t log2_maxh;
   /// \brief Magnitude of Uplink Channel first layer (16QAM level/First 64QAM level).
@@ -507,6 +486,10 @@ typedef struct {
   /// \brief llr values.
   /// - first index: ? [0..1179743] (hard coded)
   int16_t *llr;
+  /// \brief llr values per layer.
+  /// - first index: ? [0..3] (hard coded)
+  /// - first index: ? [0..1179743] (hard coded)
+  int16_t **llr_layers;
   /// DMRS symbol index, to be updated every DMRS symbol within a slot.
   uint8_t dmrs_symbol;
   // PTRS symbol index, to be updated every PTRS symbol within a slot.
@@ -782,6 +765,9 @@ typedef struct PHY_VARS_gNB_s {
   /// SRS variables
   nr_srs_info_t *nr_srs_info[NUMBER_OF_NR_SRS_MAX];
 
+  /// CSI variables
+  nr_csi_info_t *nr_csi_info;
+
   uint8_t pbch_configured;
   char gNB_generate_rar;
 
@@ -813,12 +799,9 @@ typedef struct PHY_VARS_gNB_s {
   // Mask of occupied RBs, per symbol and PRB
   uint32_t rb_mask_ul[14][9];
 
-  /// CSI  RS sequence
-  uint32_t ***nr_gold_csi_rs;
-
   /// PRS sequence
   uint32_t ****nr_gold_prs;
-  
+
   /// Indicator set to 0 after first SR
   uint8_t first_sr[NUMBER_OF_NR_SR_MAX];
 
@@ -848,14 +831,17 @@ typedef struct PHY_VARS_gNB_s {
   int              **dl_precoder_SgNB[3];
   char             log2_maxp; /// holds the maximum channel/precoder coefficient
 
-  int  prb_interpolation;
+  int max_ldpc_iterations;
+  /// indicate the channel estimation technique in time domain
+  int chest_time;
+  /// indicate the channel estimation technique in freq domain
+  int chest_freq;
 
   /// if ==0 enables phy only test mode
   int mac_enabled;
   /// counter to average prach energh over first 100 prach opportunities
   int prach_energy_counter;
 
-  int csi_gold_init;
   int pdcch_gold_init;
   int pdsch_gold_init[2];
   int pusch_gold_init[2];
@@ -945,8 +931,8 @@ typedef struct LDPCDecode_s {
   int segment_r;
   int r_offset;
   int offset;
-  int Tbslbrm;
   int decodeIterations;
+  uint32_t tbslbrm;
 } ldpcDecode_t;
 
 struct ldpcReqId {
diff --git a/openair1/PHY/defs_nr_UE.h b/openair1/PHY/defs_nr_UE.h
index 2991a4b9566..61b84cfe042 100644
--- a/openair1/PHY/defs_nr_UE.h
+++ b/openair1/PHY/defs_nr_UE.h
@@ -279,10 +279,6 @@ typedef struct {
   /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx
   /// - second index: ? [0..168*N_RB_DL[
   int32_t **dl_ch_estimates_ext;
-  /// \brief Downlink channel estimates extracted in PRBS.
-  /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx
-  /// - second index: ? [0..168*N_RB_DL[
-  int32_t **dl_ch_ptrs_estimates_ext;
   /// \brief Downlink beamforming channel estimates in frequency domain.
   /// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx
   /// - second index: samples? [0..symbols_per_tti*(ofdm_symbol_size+LTE_CE_FILTER_LENGTH)[
@@ -611,6 +607,16 @@ typedef struct {
   fapi_nr_ul_config_prach_pdu prach_pdu;
 } NR_UE_PRACH;
 
+typedef struct {
+  bool active;
+  fapi_nr_dl_config_csiim_pdu_rel15_t csiim_config_pdu;
+} NR_UE_CSI_IM;
+
+typedef struct {
+  bool active;
+  fapi_nr_dl_config_csirs_pdu_rel15_t csirs_config_pdu;
+} NR_UE_CSI_RS;
+
 typedef struct {
   bool active;
   fapi_nr_ul_config_srs_pdu srs_config_pdu;
@@ -724,6 +730,8 @@ typedef struct {
   NR_UE_PBCH      *pbch_vars[NUMBER_OF_CONNECTED_gNB_MAX];
   NR_UE_PDCCH     *pdcch_vars[RX_NB_TH_MAX][NUMBER_OF_CONNECTED_gNB_MAX];
   NR_UE_PRACH     *prach_vars[NUMBER_OF_CONNECTED_gNB_MAX];
+  NR_UE_CSI_IM    *csiim_vars[NUMBER_OF_CONNECTED_gNB_MAX];
+  NR_UE_CSI_RS    *csirs_vars[NUMBER_OF_CONNECTED_gNB_MAX];
   NR_UE_SRS       *srs_vars[NUMBER_OF_CONNECTED_gNB_MAX];
   NR_UE_PUCCH     *pucch_vars[RX_NB_TH_MAX][NUMBER_OF_CONNECTED_gNB_MAX];
   NR_UE_DLSCH_t   *dlsch[RX_NB_TH_MAX][NUMBER_OF_CONNECTED_gNB_MAX][NR_MAX_NB_LAYERS>4 ? 2:1]; // two RxTx Threads
@@ -783,11 +791,10 @@ typedef struct {
   
   uint32_t X_u[64][839];
 
-
-  uint32_t perfect_ce;
   // flag to activate PRB based averaging of channel estimates
   // when off, defaults to frequency domain interpolation
-  int prb_interpolation;
+  int chest_freq;
+  int chest_time;
   int generate_ul_signal[NUMBER_OF_CONNECTED_gNB_MAX];
 
   UE_NR_SCAN_INFO_t scan_info[NB_BANDS_MAX];
@@ -875,6 +882,8 @@ typedef struct {
   /// N0 (used for abstraction)
   double N0;
 
+  uint8_t max_ldpc_iterations;
+
   /// PDSCH Varaibles
   PDSCH_CONFIG_DEDICATED pdsch_config_dedicated[NUMBER_OF_CONNECTED_gNB_MAX];
 
@@ -887,6 +896,9 @@ typedef struct {
   /// SRS variables
   nr_srs_info_t *nr_srs_info;
 
+  /// CSI variables
+  nr_csi_info_t *nr_csi_info;
+
   //#if defined(UPGRADE_RAT_NR)
 #if 1
   SystemInformationBlockType1_nr_t systemInformationBlockType1_nr;
@@ -984,8 +996,8 @@ typedef struct {
   SLIST_HEAD(ral_thresholds_gen_poll_s, ral_threshold_phy_t) ral_thresholds_gen_polled[RAL_LINK_PARAM_GEN_MAX];
   SLIST_HEAD(ral_thresholds_lte_poll_s, ral_threshold_phy_t) ral_thresholds_lte_polled[RAL_LINK_PARAM_LTE_MAX];
 #endif
-  
-  int dl_stats[5];
+  int dl_errors;
+  int dl_stats[8];
   void* scopeData;
 } PHY_VARS_NR_UE;
 
diff --git a/openair1/PHY/defs_nr_common.h b/openair1/PHY/defs_nr_common.h
index 71360623bfc..d102858a579 100644
--- a/openair1/PHY/defs_nr_common.h
+++ b/openair1/PHY/defs_nr_common.h
@@ -43,6 +43,7 @@
 #define nr_slot_t lte_subframe_t
 
 #define MAX_NUM_SUBCARRIER_SPACING 5
+#define NR_MAX_OFDM_SYMBOL_SIZE 4096
 
 #define NR_NB_SC_PER_RB 12
 #define NR_NB_REG_PER_CCE 6
@@ -85,16 +86,21 @@
 #define NR_MAX_CSET_DURATION 3
 
 #define NR_MAX_NB_RBG 18
+
 #define NR_MAX_NB_LAYERS 4 // 8
+#define NR_MAX_NB_PORTS 32
+
 #define NR_MAX_NB_HARQ_PROCESSES 16
 
 #define NR_MAX_PDSCH_TBS 3824
 #define NR_MAX_SIB_LENGTH 2976 // 3GPP TS 38.331 section 5.2.1 - The physical layer imposes a limit to the maximum size a SIB can take. The maximum SIB1 or SI message size is 2976 bits.
 
-#define MAX_NUM_NR_DLSCH_SEGMENTS_PER_LAYER 34
+#define MAX_NUM_NR_DLSCH_SEGMENTS_PER_LAYER 36
+
+#define MAX_NUM_NR_ULSCH_SEGMENTS_PER_LAYER 34
 
-#define MAX_NUM_NR_ULSCH_SEGMENTS 34
-#define MAX_NR_ULSCH_PAYLOAD_BYTES (MAX_NUM_NR_ULSCH_SEGMENTS*1056)
+#define MAX_NUM_NR_CHANNEL_BITS (4*14*273*12*8)  // 14 symbols, 273 RB
+#define MAX_NUM_NR_RE (4*14*273*12)
 
 #define MAX_NUM_NR_SRS_SYMBOLS 4
 
@@ -242,17 +248,20 @@ typedef struct {
 
 typedef struct {
   uint16_t sc_list_length;
-  uint16_t *sc_list;
+  uint16_t sc_list[6*273];
   uint8_t srs_generated_signal_bits;
-  int32_t *srs_generated_signal;
-  int32_t **srs_received_signal;
-  int32_t **srs_ls_estimated_channel;
-  int32_t **srs_estimated_channel_freq;
-  int32_t **srs_estimated_channel_time;
-  int32_t **srs_estimated_channel_time_shifted;
-  uint32_t *noise_power;
+  int32_t srs_generated_signal[OFDM_SYMBOL_SIZE_SAMPLES_MAX * MAX_NUM_NR_SRS_SYMBOLS];
 } nr_srs_info_t;
 
+typedef struct {
+  uint16_t csi_gold_init;
+  uint32_t ***nr_gold_csi_rs;
+  uint8_t csi_rs_generated_signal_bits;
+  int32_t **csi_rs_generated_signal;
+  bool csi_im_meas_computed;
+  uint32_t interference_plus_noise_power;
+} nr_csi_info_t;
+
 typedef struct NR_DL_FRAME_PARMS NR_DL_FRAME_PARMS;
 
 typedef uint32_t (*get_samples_per_slot_t)(int slot, NR_DL_FRAME_PARMS* fp);
@@ -341,10 +350,10 @@ struct NR_DL_FRAME_PARMS {
   lte_prefix_type_t Ncp;
   /// sequence which is computed based on carrier frequency and numerology to rotate/derotate each OFDM symbol according to Section 5.3 in 38.211
   /// First dimension is for the direction of the link (0 DL, 1 UL)
-  int16_t symbol_rotation[2][224*2];
+  c16_t symbol_rotation[2][224];
   /// sequence used to compensate the phase rotation due to timeshifted OFDM symbols
   /// First dimenstion is for different CP lengths
-  int16_t timeshift_symbol_rotation[4096*2] __attribute__ ((aligned (16)));
+  c16_t timeshift_symbol_rotation[4096*2] __attribute__ ((aligned (16)));
   /// shift of pilot position in one RB
   uint8_t nushift;
   /// SRS configuration from TS 38.331 RRC
diff --git a/openair1/SCHED/ru_procedures.c b/openair1/SCHED/ru_procedures.c
index dc84279a961..443b1c79897 100644
--- a/openair1/SCHED/ru_procedures.c
+++ b/openair1/SCHED/ru_procedures.c
@@ -71,9 +71,9 @@
 #include "common/utils/system.h"
 
 #include <time.h>
-
-extern int oai_exit;
-
+#include "openair1/SCHED/sched_common_extern.h"
+#include "targets/RT/USER/lte-softmodem.h"
+#include "common/ran_context.h"
 
 void feptx0(RU_t *ru,
             int slot)
@@ -616,9 +616,11 @@ void init_fep_thread(RU_t *ru,
 }
 
 
-extern void kill_fep_thread(RU_t *ru)
+void kill_fep_thread(RU_t *ru)
 {
   RU_proc_t *proc = &ru->proc;
+  if (proc->pthread_fep == 0)
+    return;
   pthread_mutex_lock( &proc->mutex_fep );
   proc->instance_cnt_fep         = 0;
   pthread_cond_signal(&proc->cond_fep);
@@ -630,9 +632,11 @@ extern void kill_fep_thread(RU_t *ru)
 }
 
 
-extern void kill_feptx_thread(RU_t *ru)
+void kill_feptx_thread(RU_t *ru)
 {
   RU_proc_t *proc = &ru->proc;
+  if (proc->pthread_feptx == 0)
+    return;
   pthread_mutex_lock( &proc->mutex_feptx );
   proc->instance_cnt_feptx         = 0;
   pthread_cond_signal(&proc->cond_feptx);
diff --git a/openair1/SCHED/sched_common_extern.h b/openair1/SCHED/sched_common_extern.h
index b5edc6f38e3..2236c5f31dc 100644
--- a/openair1/SCHED/sched_common_extern.h
+++ b/openair1/SCHED/sched_common_extern.h
@@ -29,4 +29,6 @@
 extern int16_t hundred_times_delta_TF[100];
 extern uint16_t hundred_times_log10_NPRB[100];
 
+void kill_fep_thread(RU_t *ru);
+
 #endif /*__SCHED_EXTERN_H__ */
diff --git a/openair1/SCHED_NR/fapi_nr_l1.c b/openair1/SCHED_NR/fapi_nr_l1.c
index 48728ba44ad..5c08a0f479f 100644
--- a/openair1/SCHED_NR/fapi_nr_l1.c
+++ b/openair1/SCHED_NR/fapi_nr_l1.c
@@ -251,7 +251,6 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO){
 
     if (number_dl_pdu>0)
       oai_nfapi_dl_tti_req(DL_req);
-
   }
   stop_meas(&gNB->schedule_response_stats);
 }
diff --git a/openair1/SCHED_NR/nr_ru_procedures.c b/openair1/SCHED_NR/nr_ru_procedures.c
index b90f14a129d..3d5e4a0ce4d 100644
--- a/openair1/SCHED_NR/nr_ru_procedures.c
+++ b/openair1/SCHED_NR/nr_ru_procedures.c
@@ -526,7 +526,8 @@ void nr_fep0(RU_t *ru, int first_half) {
     end_symbol = NR_SYMBOLS_PER_SLOT;
   }
 
-  LOG_D(PHY,"In fep0 for slot = %d, first_half = %d, start_symbol = %d, end_symbol = %d\n", proc->tti_rx, first_half, start_symbol, end_symbol);
+  LOG_D(PHY,"In fep0 for slot = %d, first_half = %d, start_symbol = %d, end_symbol = %d, nb_antennas_rx = %d,N_TA_offset = %d\n", 
+        proc->tti_rx, first_half, start_symbol, end_symbol,fp->nb_antennas_rx,ru->N_TA_offset);
   //  printf("fep0: slot %d\n",slot);
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX+proc->tti_rx, 1);
diff --git a/openair1/SCHED_NR/phy_procedures_nr_gNB.c b/openair1/SCHED_NR/phy_procedures_nr_gNB.c
index ffbedf3da72..2e3a5dd58bf 100644
--- a/openair1/SCHED_NR/phy_procedures_nr_gNB.c
+++ b/openair1/SCHED_NR/phy_procedures_nr_gNB.c
@@ -45,24 +45,12 @@
 #include "intertask_interface.h"
 
 //#define DEBUG_RXDATA
+//#define SRS_IND_DEBUG
 
 uint8_t SSB_Table[38]={0,2,4,6,8,10,12,14,254,254,16,18,20,22,24,26,28,30,254,254,32,34,36,38,40,42,44,46,254,254,48,50,52,54,56,58,60,62};
 
 extern uint8_t nfapi_mode;
 
-void nr_set_ssb_first_subcarrier(nfapi_nr_config_request_scf_t *cfg, NR_DL_FRAME_PARMS *fp) {
-
-  uint8_t sco = 0;
-  if (((fp->freq_range == nr_FR1) && (cfg->ssb_table.ssb_subcarrier_offset.value<24)) ||
-      ((fp->freq_range == nr_FR2) && (cfg->ssb_table.ssb_subcarrier_offset.value<12)) ) {
-    if (fp->freq_range == nr_FR1)
-      sco = cfg->ssb_table.ssb_subcarrier_offset.value>>cfg->ssb_config.scs_common.value;
-  }
-
-  fp->ssb_start_subcarrier = (12 * cfg->ssb_table.ssb_offset_point_a.value + sco);
-  LOG_D(PHY, "SSB first subcarrier %d (%d,%d)\n", fp->ssb_start_subcarrier,cfg->ssb_table.ssb_offset_point_a.value,sco);
-}
-
 void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame,int slot,nfapi_nr_dl_tti_ssb_pdu ssb_pdu) {
 
   NR_DL_FRAME_PARMS *fp=&gNB->frame_parms;
@@ -84,7 +72,12 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame,int slot,nfapi_nr_
   int ssb_start_symbol_abs = nr_get_ssb_start_symbol(fp,ssb_index); // computing the starting symbol for current ssb
   ssb_start_symbol = ssb_start_symbol_abs % fp->symbols_per_slot;  // start symbol wrt slot
 
-  nr_set_ssb_first_subcarrier(cfg, fp);  // setting the first subcarrier
+  // setting the first subcarrier
+  const int scs = cfg->ssb_config.scs_common.value;
+  const int prb_offset = (fp->freq_range == nr_FR1) ? ssb_pdu.ssb_pdu_rel15.ssbOffsetPointA>>scs : ssb_pdu.ssb_pdu_rel15.ssbOffsetPointA>>(scs-2);
+  const int sc_offset = (fp->freq_range == nr_FR1) ? ssb_pdu.ssb_pdu_rel15.SsbSubcarrierOffset>>scs : ssb_pdu.ssb_pdu_rel15.SsbSubcarrierOffset;
+  fp->ssb_start_subcarrier = (12 * prb_offset + sc_offset);
+  LOG_D(PHY, "SSB first subcarrier %d (%d,%d)\n", fp->ssb_start_subcarrier, prb_offset, sc_offset);
 
   LOG_D(PHY,"SS TX: frame %d, slot %d, start_symbol %d\n",frame,slot, ssb_start_symbol);
   nr_generate_pss(&txdataF[0][txdataF_offset], AMP, ssb_start_symbol, cfg, fp);
@@ -192,8 +185,8 @@ void phy_procedures_gNB_TX(processingData_L1tx_t *msgTx,
     NR_gNB_CSIRS_t *csirs = &msgTx->csirs_pdu[i];
     if (csirs->active == 1) {
       LOG_D(PHY, "CSI-RS generation started in frame %d.%d\n",frame,slot);
-      nfapi_nr_dl_tti_csi_rs_pdu_rel15_t csi_params = csirs->csirs_pdu.csi_rs_pdu_rel15;
-      nr_generate_csi_rs(gNB, AMP, csi_params, slot);
+      nfapi_nr_dl_tti_csi_rs_pdu_rel15_t *csi_params = &csirs->csirs_pdu.csi_rs_pdu_rel15;
+      nr_generate_csi_rs(&gNB->frame_parms, gNB->common_vars.txdataF, AMP, gNB->nr_csi_info, csi_params, slot, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
       csirs->active = 0;
     }
   }
@@ -267,13 +260,6 @@ void nr_postDecode(PHY_VARS_gNB *gNB, notifiedFIFO_elt_t *req) {
 	          ulsch_harq->ulsch_pdu.rb_size,
 	          ulsch_harq->TBS,
 	          r);
-      ulsch_harq->round++;
-      if (ulsch_harq->round >= ulsch->Mlimit) {
-        ulsch_harq->status = SCH_IDLE;
-        ulsch_harq->round  = 0;
-        ulsch_harq->handled  = 0;
-        ulsch->harq_mask &= ~(1 << rdata->harq_pid);
-      }
       ulsch_harq->handled  = 1;
 
       LOG_D(PHY, "ULSCH %d in error\n",rdata->ulsch_id);
@@ -364,6 +350,14 @@ void nr_ulsch_procedures(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx, int ULSCH
 	number_dmrs_symbols, // number of dmrs symbols irrespective of single or double symbol dmrs
 	pusch_pdu->qam_mod_order,
 	pusch_pdu->nrOfLayers);
+
+
+  nr_ulsch_layer_demapping(gNB->pusch_vars[ULSCH_id]->llr,
+                           pusch_pdu->nrOfLayers,
+                           pusch_pdu->qam_mod_order,
+                           G,
+                           gNB->pusch_vars[ULSCH_id]->llr_layers);
+             
   //----------------------------------------------------------
   //------------------- ULSCH unscrambling -------------------
   //----------------------------------------------------------
@@ -430,17 +424,8 @@ void nr_fill_indication(PHY_VARS_gNB *gNB, int frame, int slot_rx, int ULSCH_id,
   if (timing_advance_update > 63) timing_advance_update = 63;
 
   if (crc_flag == 0) LOG_D(PHY, "%d.%d : Received PUSCH : Estimated timing advance PUSCH is  = %d, timing_advance_update is %d \n", frame,slot_rx,sync_pos,timing_advance_update);
-  else if (harq_process->round>0 || dtx_flag == 0) { // increment round if crc_flag == 1 and not(dtx_flag ==1 and round==0)
-      harq_process->round++;
-      if (harq_process->round >= ulsch->Mlimit) {
-        harq_process->status = SCH_IDLE;
-        harq_process->round  = 0;
-        harq_process->handled  = 0;
-        ulsch->harq_mask &= ~(1 << harq_pid);
-      }
-  }
-  // estimate UL_CQI for MAC
 
+  // estimate UL_CQI for MAC
   int SNRtimes10 = dB_fixed_x10(gNB->pusch_vars[ULSCH_id]->ulsch_power_tot) -
                    dB_fixed_x10(gNB->pusch_vars[ULSCH_id]->ulsch_noise_power_tot);
 
@@ -590,7 +575,7 @@ void fill_ul_rb_mask(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) {
               LOG_D(PHY,"symbol %d Filling rb_mask_ul rb_size %d\n",symbol,ulsch_harq->ulsch_pdu.rb_size);
               for (rb=0; rb<ulsch_harq->ulsch_pdu.rb_size; rb++) {
                 rb2 = rb+ulsch_harq->ulsch_pdu.rb_start+ulsch_harq->ulsch_pdu.bwp_start;
-                gNB->rb_mask_ul[symbol][rb2>>5] |= (1<<(rb2&31));
+                gNB->rb_mask_ul[symbol][rb2 >> 5] |= 1U << (rb2 & 31);
               }
             }
           }
@@ -642,10 +627,38 @@ void phy_procedures_gNB_common_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx)
 
 }
 
+int fill_srs_reported_symbol_list(nfapi_nr_srs_indication_reported_symbol_t *reported_symbol_list,
+                                  const nfapi_nr_srs_pdu_t *srs_pdu,
+                                  const int N_RB_UL,
+                                  const int8_t *snr_per_rb,
+                                  const int srs_est) {
+
+  reported_symbol_list->num_rbs = srs_bandwidth_config[srs_pdu->config_index][srs_pdu->bandwidth_index][0];
+
+  if (!reported_symbol_list->rb_list) {
+    reported_symbol_list->rb_list = (nfapi_nr_srs_indication_reported_symbol_resource_block_t*) calloc(1, N_RB_UL*sizeof(nfapi_nr_srs_indication_reported_symbol_resource_block_t));
+  }
+
+  for(int rb = 0; rb < reported_symbol_list->num_rbs; rb++) {
+    if (srs_est<0) {
+      reported_symbol_list->rb_list[rb].rb_snr = 0xFF;
+    } else if (snr_per_rb[rb] < -64) {
+      reported_symbol_list->rb_list[rb].rb_snr = 0;
+    } else if (snr_per_rb[rb] > 63) {
+      reported_symbol_list->rb_list[rb].rb_snr = 0xFE;
+    } else {
+      reported_symbol_list->rb_list[rb].rb_snr = (snr_per_rb[rb] + 64)<<1;
+    }
+  }
+
+  return 0;
+}
+
 int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) {
   /* those variables to log T_GNB_PHY_PUCCH_PUSCH_IQ only when we try to decode */
   int pucch_decode_done = 0;
   int pusch_decode_done = 0;
+  int pusch_DTX = 0;
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_gNB_UESPEC_RX,1);
   LOG_D(PHY,"phy_procedures_gNB_uespec_RX frame %d, slot %d\n",frame_rx,slot_rx);
@@ -785,7 +798,8 @@ int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) {
           if (no_sig) {
             LOG_D(PHY, "PUSCH not detected in frame %d, slot %d\n", frame_rx, slot_rx);
             nr_fill_indication(gNB, frame_rx, slot_rx, ULSCH_id, harq_pid, 1,1);
-            return 1;
+            pusch_DTX++;
+            continue;
           }
           gNB->pusch_vars[ULSCH_id]->ulsch_power_tot=0;
           gNB->pusch_vars[ULSCH_id]->ulsch_noise_power_tot=0;
@@ -803,10 +817,15 @@ int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) {
                    dB_fixed_x10(gNB->pusch_vars[ULSCH_id]->ulsch_power_tot),
                    dB_fixed_x10(gNB->pusch_vars[ULSCH_id]->ulsch_noise_power_tot),gNB->pusch_thres);
              gNB->pusch_vars[ULSCH_id]->ulsch_power_tot = gNB->pusch_vars[ULSCH_id]->ulsch_noise_power_tot;
-             nr_fill_indication(gNB,frame_rx, slot_rx, ULSCH_id, harq_pid, 1,1);
              gNB->pusch_vars[ULSCH_id]->DTX=1;
              if (stats) stats->DTX++;
-             return 1;
+             if (!get_softmodem_params()->phy_test) {
+               /* in case of phy_test mode, we still want to decode to measure execution time. 
+                  Therefore, we don't yet call nr_fill_indication, it will be called later */
+               nr_fill_indication(gNB,frame_rx, slot_rx, ULSCH_id, harq_pid, 1,1);
+               pusch_DTX++;
+               continue;
+             }
           } else {
             LOG_D(PHY, "PUSCH detected in %d.%d (%d,%d,%d)\n",frame_rx,slot_rx,
                   dB_fixed_x10(gNB->pusch_vars[ULSCH_id]->ulsch_power_tot),
@@ -836,29 +855,88 @@ int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) {
 
         LOG_D(NR_PHY, "(%d.%d) gNB is waiting for SRS, id = %i\n", frame_rx, slot_rx, i);
 
+        NR_DL_FRAME_PARMS *frame_parms = &gNB->frame_parms;
         nfapi_nr_srs_pdu_t *srs_pdu = &srs->srs_pdu;
+        uint8_t N_symb_SRS = 1<<srs_pdu->num_symbols;
+        int32_t srs_received_signal[frame_parms->nb_antennas_rx][frame_parms->ofdm_symbol_size*N_symb_SRS];
+        int32_t srs_ls_estimated_channel[frame_parms->nb_antennas_rx][frame_parms->ofdm_symbol_size*N_symb_SRS];
+        int32_t srs_estimated_channel_freq[frame_parms->nb_antennas_rx][frame_parms->ofdm_symbol_size*N_symb_SRS] __attribute__ ((aligned(32)));
+        int32_t srs_estimated_channel_time[frame_parms->nb_antennas_rx][frame_parms->ofdm_symbol_size] __attribute__ ((aligned(32)));
+        int32_t srs_estimated_channel_time_shifted[frame_parms->nb_antennas_rx][frame_parms->ofdm_symbol_size];
+        uint32_t noise_power_per_rb[srs_pdu->bwp_size];
+        int8_t snr_per_rb[srs_pdu->bwp_size];
+        uint32_t signal_power;
+        uint32_t noise_power;
+        int8_t snr;
 
         // At least currently, the configuration is constant, so it is enough to generate the sequence just once.
         if(gNB->nr_srs_info[i]->sc_list_length == 0) {
-          generate_srs_nr(srs_pdu, &gNB->frame_parms, gNB->nr_srs_info[i]->srs_generated_signal, gNB->nr_srs_info[i], AMP, frame_rx, slot_rx);
+          generate_srs_nr(srs_pdu, frame_parms, gNB->nr_srs_info[i]->srs_generated_signal, gNB->nr_srs_info[i], AMP, frame_rx, slot_rx);
         }
 
-        nr_get_srs_signal(gNB,frame_rx,slot_rx,srs_pdu, gNB->nr_srs_info[i], gNB->nr_srs_info[i]->srs_received_signal);
-
-        nr_srs_channel_estimation(gNB,frame_rx,slot_rx,srs_pdu,
-                                  gNB->nr_srs_info[i],
-                                  gNB->nr_srs_info[i]->srs_generated_signal,
-                                  gNB->nr_srs_info[i]->srs_received_signal,
-                                  gNB->nr_srs_info[i]->srs_estimated_channel_freq,
-                                  gNB->nr_srs_info[i]->srs_estimated_channel_time,
-                                  gNB->nr_srs_info[i]->srs_estimated_channel_time_shifted,
-                                  gNB->nr_srs_info[i]->noise_power);
+        const int srs_est = nr_get_srs_signal(gNB,frame_rx,slot_rx, srs_pdu, gNB->nr_srs_info[i], srs_received_signal);
+
+        if (srs_est >= 0) {
+          nr_srs_channel_estimation(gNB,
+                                    frame_rx,
+                                    slot_rx,
+                                    srs_pdu,
+                                    gNB->nr_srs_info[i],
+                                    gNB->nr_srs_info[i]->srs_generated_signal,
+                                    srs_received_signal,
+                                    srs_ls_estimated_channel,
+                                    srs_estimated_channel_freq,
+                                    srs_estimated_channel_time,
+                                    srs_estimated_channel_time_shifted,
+                                    &signal_power,
+                                    noise_power_per_rb,
+                                    &noise_power,
+                                    snr_per_rb,
+                                    &snr);
+        }
 
         T(T_GNB_PHY_UL_FREQ_CHANNEL_ESTIMATE, T_INT(0), T_INT(srs_pdu->rnti), T_INT(frame_rx), T_INT(0), T_INT(0),
-          T_BUFFER(gNB->nr_srs_info[i]->srs_estimated_channel_freq[0], gNB->frame_parms.ofdm_symbol_size*sizeof(int32_t)));
+          T_BUFFER(srs_estimated_channel_freq[0], frame_parms->ofdm_symbol_size*sizeof(int32_t)));
 
         T(T_GNB_PHY_UL_TIME_CHANNEL_ESTIMATE, T_INT(0), T_INT(srs_pdu->rnti), T_INT(frame_rx), T_INT(0), T_INT(0),
-          T_BUFFER(gNB->nr_srs_info[i]->srs_estimated_channel_time_shifted[0], gNB->frame_parms.ofdm_symbol_size*sizeof(int32_t)));
+          T_BUFFER(srs_estimated_channel_time_shifted[0], frame_parms->ofdm_symbol_size*sizeof(int32_t)));
+
+        const uint16_t num_srs = gNB->UL_INFO.srs_ind.number_of_pdus;
+        gNB->UL_INFO.srs_ind.pdu_list = &gNB->srs_pdu_list[0];
+        gNB->UL_INFO.srs_ind.sfn = frame_rx;
+        gNB->UL_INFO.srs_ind.slot = slot_rx;
+        gNB->srs_pdu_list[num_srs].handle = srs_pdu->handle;
+        gNB->srs_pdu_list[num_srs].rnti = srs_pdu->rnti;
+        gNB->srs_pdu_list[num_srs].timing_advance = srs_est >= 0 ? nr_est_timing_advance_srs(frame_parms,
+                                                                                             srs_estimated_channel_time) : 0xFFFF;
+        gNB->srs_pdu_list[num_srs].num_symbols = 1<<srs_pdu->num_symbols;
+        gNB->srs_pdu_list[num_srs].wide_band_snr = srs_est >= 0 ? (snr + 64)<<1 : 0xFF; // 0xFF will be set if this field is invalid
+        gNB->srs_pdu_list[num_srs].num_reported_symbols = 1<<srs_pdu->num_symbols;
+        if(!gNB->srs_pdu_list[num_srs].reported_symbol_list) {
+          gNB->srs_pdu_list[num_srs].reported_symbol_list = (nfapi_nr_srs_indication_reported_symbol_t*) calloc(1, gNB->srs_pdu_list[num_srs].num_reported_symbols*sizeof(nfapi_nr_srs_indication_reported_symbol_t));
+        }
+        fill_srs_reported_symbol_list(&gNB->srs_pdu_list[num_srs].reported_symbol_list[0],
+                                      srs_pdu,
+                                      frame_parms->N_RB_UL,
+                                      snr_per_rb,
+                                      srs_est);
+
+        gNB->UL_INFO.srs_ind.number_of_pdus += 1;
+
+#ifdef SRS_IND_DEBUG
+        LOG_I(NR_PHY, "gNB->UL_INFO.srs_ind.sfn = %i\n", gNB->UL_INFO.srs_ind.sfn);
+        LOG_I(NR_PHY, "gNB->UL_INFO.srs_ind.slot = %i\n", gNB->UL_INFO.srs_ind.slot);
+        LOG_I(NR_PHY, "gNB->srs_pdu_list[%i].rnti = 0x%04x\n", num_srs, gNB->srs_pdu_list[num_srs].rnti);
+        LOG_I(NR_PHY, "gNB->srs_pdu_list[%i].timing_advance = %i\n", num_srs, gNB->srs_pdu_list[num_srs].timing_advance);
+        LOG_I(NR_PHY, "gNB->srs_pdu_list[%i].num_symbols = %i\n", num_srs, gNB->srs_pdu_list[num_srs].num_symbols);
+        LOG_I(NR_PHY, "gNB->srs_pdu_list[%i].wide_band_snr = %i\n", num_srs, gNB->srs_pdu_list[num_srs].wide_band_snr);
+        LOG_I(NR_PHY, "gNB->srs_pdu_list[%i].num_reported_symbols = %i\n", num_srs, gNB->srs_pdu_list[num_srs].num_reported_symbols);
+        LOG_I(NR_PHY, "gNB->srs_pdu_list[%i].reported_symbol_list[0].num_rbs = %i\n", num_srs, gNB->srs_pdu_list[num_srs].reported_symbol_list[0].num_rbs);
+        for(int rb = 0; rb < gNB->srs_pdu_list[num_srs].reported_symbol_list[0].num_rbs; rb++) {
+          LOG_I(NR_PHY, "gNB->srs_pdu_list[%i].reported_symbol_list[0].rb_list[%3i].rb_snr = %i\n",
+                num_srs, rb, gNB->srs_pdu_list[num_srs].reported_symbol_list[0].rb_list[rb].rb_snr);
+        }
+#endif
 
         srs->active = 0;
       }
@@ -866,15 +944,11 @@ int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) {
   }
 
   stop_meas(&gNB->phy_proc_rx);
-  // figure out a better way to choose slot_rx, 19 is ok for a particular TDD configuration with 30kHz SCS
-  if ((frame_rx&127) == 0 && slot_rx==19) {
-    LOG_I(NR_PHY, "Number of bad PUCCH received: %lu\n", gNB->bad_pucch);
-  }
 
   if (pucch_decode_done || pusch_decode_done) {
     T(T_GNB_PHY_PUCCH_PUSCH_IQ, T_INT(frame_rx), T_INT(slot_rx), T_BUFFER(&gNB->common_vars.rxdataF[0][0], gNB->frame_parms.symbols_per_slot * gNB->frame_parms.ofdm_symbol_size * 4));
   }
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_gNB_UESPEC_RX,0);
-  return 0;
+  return pusch_DTX;
 }
diff --git a/openair1/SCHED_NR_UE/defs.h b/openair1/SCHED_NR_UE/defs.h
index 9bcf659eac8..fa354d22843 100644
--- a/openair1/SCHED_NR_UE/defs.h
+++ b/openair1/SCHED_NR_UE/defs.h
@@ -373,6 +373,7 @@ int get_tx_harq_id(NR_UE_ULSCH_t *ulsch, int slot_tx);
 
 int is_pbch_in_slot(fapi_nr_config_request_t *config, int frame, int slot, NR_DL_FRAME_PARMS *fp);
 int is_ssb_in_slot(fapi_nr_config_request_t *config, int frame, int slot, NR_DL_FRAME_PARMS *fp);
+bool is_csi_rs_in_symbol(fapi_nr_dl_config_csirs_pdu_rel15_t csirs_config_pdu, int symbol);
 
 /*! \brief This function prepares the dl indication to pass to the MAC
     @param
@@ -404,7 +405,7 @@ void nr_fill_rx_indication(fapi_nr_rx_indication_t *rx_ind,
                            NR_UE_DLSCH_t *dlsch1,
                            uint16_t n_pdus,
                            UE_nr_rxtx_proc_t *proc,
-			   void * typeSpecific);
+                           void *typeSpecific);
 
 bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
                             UE_nr_rxtx_proc_t *proc,
@@ -427,6 +428,9 @@ int nr_ue_pdcch_procedures(uint8_t gNB_id,
                            NR_UE_PDCCH_CONFIG *phy_pdcch_config,
                            int n_ss);
 
+int nr_ue_csi_im_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t gNB_id);
+
+int nr_ue_csi_rs_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t gNB_id);
 
 #endif
 
diff --git a/openair1/SCHED_NR_UE/fapi_nr_ue_l1.c b/openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
index 51b34fb9baa..f4c863bb408 100644
--- a/openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
+++ b/openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
@@ -44,7 +44,7 @@
 
 extern PHY_VARS_NR_UE ***PHY_vars_UE_g;
 
-const char *dl_pdu_type[]={"DCI", "DLSCH", "RA_DLSCH", "SI_DLSCH", "P_DLSCH"};
+const char *dl_pdu_type[]={"DCI", "DLSCH", "RA_DLSCH", "SI_DLSCH", "P_DLSCH", "CSI_RS", "CSI_IM"};
 const char *ul_pdu_type[]={"PRACH", "PUCCH", "PUSCH", "SRS"};
 queue_t nr_rx_ind_queue;
 queue_t nr_crc_ind_queue;
@@ -315,6 +315,10 @@ void configure_dlsch(NR_UE_DLSCH_t *dlsch0,
   dlsch0_harq->mcs = dlsch_config_pdu->mcs;
   dlsch0_harq->rvidx = dlsch_config_pdu->rv;
   dlsch0->g_pucch = dlsch_config_pdu->accumulated_delta_PUCCH;
+  dlsch0_harq->R = dlsch_config_pdu->targetCodeRate;
+  dlsch0_harq->Qm = dlsch_config_pdu->qamModOrder;
+  dlsch0_harq->TBS = dlsch_config_pdu->TBS;
+  dlsch0_harq->tbslbrm = dlsch_config_pdu->tbslbrm;
   dlsch0_harq->nscid = dlsch_config_pdu->nscid;
   dlsch0_harq->dlDmrsScramblingId = dlsch_config_pdu->dlDmrsScramblingId;
   //get nrOfLayers from DCI info
@@ -341,6 +345,7 @@ void configure_dlsch(NR_UE_DLSCH_t *dlsch0,
   LOG_D(MAC, ">>>> \tdlsch0->g_pucch = %d\tdlsch0_harq.mcs = %d\n", dlsch0->g_pucch, dlsch0_harq->mcs);
 }
 
+
 int8_t nr_ue_scheduled_response(nr_scheduled_response_t *scheduled_response){
 
   bool found = false;
@@ -355,12 +360,16 @@ int8_t nr_ue_scheduled_response(nr_scheduled_response_t *scheduled_response){
     NR_UE_DLSCH_t *dlsch0 = NULL;
     NR_UE_ULSCH_t *ulsch = PHY_vars_UE_g[module_id][cc_id]->ulsch[thread_id][0];
     NR_UE_PUCCH *pucch_vars = PHY_vars_UE_g[module_id][cc_id]->pucch_vars[thread_id][0];
+    NR_UE_CSI_IM *csiim_vars = PHY_vars_UE_g[module_id][cc_id]->csiim_vars[0];
+    NR_UE_CSI_RS *csirs_vars = PHY_vars_UE_g[module_id][cc_id]->csirs_vars[0];
     NR_UE_PDCCH_CONFIG *phy_pdcch_config = NULL;
 
     if(scheduled_response->dl_config != NULL){
       fapi_nr_dl_config_request_t *dl_config = scheduled_response->dl_config;
       fapi_nr_dl_config_dlsch_pdu_rel15_t *dlsch_config_pdu;
       fapi_nr_dl_config_dci_dl_pdu_rel15_t *pdcch_config;
+      fapi_nr_dl_config_csiim_pdu_rel15_t *csiim_config_pdu;
+      fapi_nr_dl_config_csirs_pdu_rel15_t *csirs_config_pdu;
 
       for (int i = 0; i < dl_config->number_pdus; ++i){
         AssertFatal(dl_config->number_pdus < FAPI_NR_DL_CONFIG_LIST_NUM,"dl_config->number_pdus %d out of bounds\n",dl_config->number_pdus);
@@ -382,10 +391,14 @@ int8_t nr_ue_scheduled_response(nr_scheduled_response_t *scheduled_response){
             LOG_D(PHY,"Number of DCI SearchSpaces %d\n",phy_pdcch_config->nb_search_space);
             break;
           case FAPI_NR_DL_CONFIG_TYPE_CSI_IM:
-            LOG_I(PHY,"Received CSI-IM PDU at FAPI\n");
+            csiim_config_pdu = &dl_config->dl_config_list[i].csiim_config_pdu.csiim_config_rel15;
+            memcpy((void*)&(csiim_vars->csiim_config_pdu), (void*)csiim_config_pdu, sizeof(fapi_nr_dl_config_csiim_pdu_rel15_t));
+            csiim_vars->active = true;
             break;
           case FAPI_NR_DL_CONFIG_TYPE_CSI_RS:
-            LOG_I(PHY,"Received CSI-RS PDU at FAPI\n");
+            csirs_config_pdu = &dl_config->dl_config_list[i].csirs_config_pdu.csirs_config_rel15;
+            memcpy((void*)&(csirs_vars->csirs_config_pdu), (void*)csirs_config_pdu, sizeof(fapi_nr_dl_config_csirs_pdu_rel15_t));
+            csirs_vars->active = true;
             break;
           case FAPI_NR_DL_CONFIG_TYPE_RA_DLSCH:
             dlsch_config_pdu = &dl_config->dl_config_list[i].dlsch_config_pdu.dlsch_config_rel15;
@@ -424,7 +437,7 @@ int8_t nr_ue_scheduled_response(nr_scheduled_response_t *scheduled_response){
       for (int i = 0; i < ul_config->number_pdus; ++i){
 
         AssertFatal(ul_config->ul_config_list[i].pdu_type <= FAPI_NR_UL_CONFIG_TYPES,"pdu_type %d out of bounds\n",ul_config->ul_config_list[i].pdu_type);
-        LOG_D(PHY, "In %s: processing %s PDU of %d total UL PDUs (ul_config %p) \n", __FUNCTION__, ul_pdu_type[ul_config->ul_config_list[i].pdu_type - 1], ul_config->number_pdus, ul_config);
+        LOG_D(PHY, "In %s i %d: processing %s PDU of %d total UL PDUs (ul_config %p) \n", __FUNCTION__, i, ul_pdu_type[ul_config->ul_config_list[i].pdu_type - 1], ul_config->number_pdus, ul_config);
 
         uint8_t pdu_type = ul_config->ul_config_list[i].pdu_type, current_harq_pid, gNB_id = 0;
         /* PRACH */
@@ -449,6 +462,8 @@ int8_t nr_ue_scheduled_response(nr_scheduled_response_t *scheduled_response){
           if (harq_process_ul_ue){
 
             nfapi_nr_ue_pusch_pdu_t *pusch_pdu = &harq_process_ul_ue->pusch_pdu;
+            
+            LOG_D(PHY, "In %s i %d: copy pusch_config_pdu nrOfLayers:%d, num_dmrs_cdm_grps_no_data:%d \n", __FUNCTION__, i, pusch_config_pdu->nrOfLayers,pusch_config_pdu->num_dmrs_cdm_grps_no_data);
 
             memcpy(pusch_pdu, pusch_config_pdu, sizeof(nfapi_nr_ue_pusch_pdu_t));
 
diff --git a/openair1/SCHED_NR_UE/harq_nr.c b/openair1/SCHED_NR_UE/harq_nr.c
index a9ff01d78a4..795cea5dfa7 100644
--- a/openair1/SCHED_NR_UE/harq_nr.c
+++ b/openair1/SCHED_NR_UE/harq_nr.c
@@ -308,7 +308,7 @@ void init_downlink_harq_status(NR_DL_UE_HARQ_t *dl_harq)
   dl_harq->status = SCH_IDLE;
   dl_harq->first_rx = 1;
   dl_harq->DLround  = 0;
-  dl_harq->DCINdi = 1;
+  dl_harq->Ndi = 1;
   dl_harq->ack = DL_ACKNACK_NO_SET;
 }
 
@@ -329,7 +329,7 @@ void init_downlink_harq_status(NR_DL_UE_HARQ_t *dl_harq)
 *
 *********************************************************************/
 
-void downlink_harq_process(NR_DL_UE_HARQ_t *dl_harq, int harq_pid, int ndi, int rv, uint8_t rnti_type) {
+void downlink_harq_process(NR_DL_UE_HARQ_t *dl_harq, int harq_pid, int dci_ndi, int rv, uint8_t rnti_type) {
 
   if (rnti_type == _SI_RNTI_ ||
       rnti_type == _P_RNTI_ ||
@@ -339,10 +339,9 @@ void downlink_harq_process(NR_DL_UE_HARQ_t *dl_harq, int harq_pid, int ndi, int
     dl_harq->first_rx = 1;
   }  else {
     LOG_D(PHY,"receive harq process: %p harqPid=%d, rv=%d, ndi=%d, rntiType=%d new transmission= %s\n",
-	  dl_harq, harq_pid, rv, ndi, rnti_type, dl_harq->DCINdi != ndi ? "yes":"no");
+	  dl_harq, harq_pid, rv, dci_ndi, rnti_type, dl_harq->Ndi != dci_ndi ? "yes":"no");
     AssertFatal(rv<4 && rv>=0, "invalid redondancy version %d\n", rv);
-    
-    if (ndi!=dl_harq->DCINdi) {
+    if (dci_ndi!=dl_harq->Ndi) {
       if (dl_harq->ack == DL_NACK)
         LOG_D(PHY,"New transmission on a harq pid (%d) never acknowledged\n", harq_pid);
       else
@@ -354,7 +353,7 @@ void downlink_harq_process(NR_DL_UE_HARQ_t *dl_harq, int harq_pid, int ndi, int
         LOG_D(PHY,"Starting retransmission on a harq pid (%d), rv (%d)\n", harq_pid, rv);
     }
 
-    if (ndi!=dl_harq->DCINdi) {
+    if (dci_ndi!=dl_harq->Ndi) {
       dl_harq->first_rx = true;
       dl_harq->DLround = 0;
     } else {
@@ -364,7 +363,7 @@ void downlink_harq_process(NR_DL_UE_HARQ_t *dl_harq, int harq_pid, int ndi, int
     
     dl_harq->status = ACTIVE;
 
-    dl_harq->DCINdi = ndi;
+    dl_harq->Ndi = dci_ndi;
     //dl_harq->status = SCH_IDLE;
    }
 }
diff --git a/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c b/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
index 4a8abe83e96..8ef26ffd8ab 100644
--- a/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+++ b/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
@@ -36,6 +36,7 @@
 #include "assertions.h"
 #include "defs.h"
 #include "PHY/defs_nr_UE.h"
+#include "PHY/NR_REFSIG/dmrs_nr.h"
 #include "PHY/phy_extern_nr_ue.h"
 #include "PHY/MODULATION/modulation_UE.h"
 #include "PHY/NR_UE_TRANSPORT/nr_transport_ue.h"
@@ -120,9 +121,8 @@ void nr_fill_rx_indication(fapi_nr_rx_indication_t *rx_ind,
                            NR_UE_DLSCH_t *dlsch0,
                            NR_UE_DLSCH_t *dlsch1,
                            uint16_t n_pdus,
-			   UE_nr_rxtx_proc_t *proc,
-			   void * typeSpecific){
-
+                           UE_nr_rxtx_proc_t *proc,
+                           void *typeSpecific){
 
   NR_DL_FRAME_PARMS *frame_parms = &ue->frame_parms;
 
@@ -134,7 +134,6 @@ void nr_fill_rx_indication(fapi_nr_rx_indication_t *rx_ind,
     trace_NRpdu(DIRECTION_DOWNLINK,
 		dlsch0->harq_processes[dlsch0->current_harq_pid]->b,
 		dlsch0->harq_processes[dlsch0->current_harq_pid]->TBS / 8,
-		pdu_type,
 		WS_C_RNTI,
 		dlsch0->rnti,
 		proc->frame_rx,
@@ -176,6 +175,11 @@ void nr_fill_rx_indication(fapi_nr_rx_indication_t *rx_ind,
       rx_ind->rx_indication_body[n_pdus - 1].ssb_pdu.ssb_start_subcarrier = frame_parms->ssb_start_subcarrier;
       rx_ind->rx_indication_body[n_pdus - 1].ssb_pdu.rsrp_dBm = ue->measurements.rsrp_dBm[gNB_id];
     break;
+    case FAPI_NR_CSIRS_IND:
+      memcpy(&rx_ind->rx_indication_body[n_pdus - 1].csirs_measurements,
+             (fapi_nr_csirs_measurements_t*)typeSpecific,
+             sizeof(*(fapi_nr_csirs_measurements_t*)typeSpecific));
+      break;
     default:
     break;
   }
@@ -284,7 +288,8 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue,
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX,VCD_FUNCTION_IN);
 
-  memset(ue->common_vars.txdataF[0], 0, sizeof(int)*14*ue->frame_parms.ofdm_symbol_size);
+  for(int i=0; i< ue->frame_parms.nb_antennas_tx; ++i)
+    memset(ue->common_vars.txdataF[i], 0, sizeof(int)*14*ue->frame_parms.ofdm_symbol_size);
 
   LOG_D(PHY,"****** start TX-Chain for AbsSubframe %d.%d ******\n", frame_tx, slot_tx);
 
@@ -611,6 +616,15 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, int gNB_
       }
     }
 
+    if (ue->chest_time == 1) { // averaging time domain channel estimates
+      nr_chest_time_domain_avg(&ue->frame_parms,
+                               ue->pdsch_vars[proc->thread_id][gNB_id]->dl_ch_estimates,
+                               dlsch0_harq->nb_symbols,
+                               dlsch0_harq->start_symbol,
+                               dlsch0_harq->dlDmrsSymbPos,
+                               pdsch_nb_rb);
+    }
+
     uint16_t first_symbol_with_data = s0;
     uint32_t dmrs_data_re;
 
@@ -801,8 +815,7 @@ bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
                             nb_symb_sch,
                             nr_slot_rx,
                             harq_pid,
-                            pdsch==PDSCH?1:0,
-                            dlsch0->harq_processes[harq_pid]->TBS>256?1:0);
+                            pdsch==PDSCH);
 
     LOG_T(PHY,"dlsch decoding, ret = %d\n", ret);
 
@@ -878,8 +891,7 @@ bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
                                nb_symb_sch,
                                nr_slot_rx,
                                harq_pid,
-                               pdsch==PDSCH?1:0,//proc->decoder_switch,
-                               dlsch1->harq_processes[harq_pid]->TBS>256?1:0);
+                               pdsch==PDSCH);//proc->decoder_switch
       LOG_T(PHY,"CW dlsch decoding, ret1 = %d\n", ret1);
 
       stop_meas(&ue->dlsch_decoding_stats[proc->thread_id]);
@@ -918,21 +930,25 @@ bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
       const double N_TA_max = Ta_max * bw_scaling * tc_factor;
 
       NR_UE_MAC_INST_t *mac = get_mac_inst(0);
+      NR_BWP_Id_t dl_bwp = mac->DL_BWP_Id;
+      NR_BWP_Id_t ul_bwp = mac->UL_BWP_Id;
 
       NR_PUSCH_TimeDomainResourceAllocationList_t *pusch_TimeDomainAllocationList = NULL;
-      if (mac->ULbwp[0] &&
-          mac->ULbwp[0]->bwp_Dedicated &&
-          mac->ULbwp[0]->bwp_Dedicated->pusch_Config &&
-          mac->ULbwp[0]->bwp_Dedicated->pusch_Config->choice.setup &&
-          mac->ULbwp[0]->bwp_Dedicated->pusch_Config->choice.setup->pusch_TimeDomainAllocationList) {
-        pusch_TimeDomainAllocationList = mac->ULbwp[0]->bwp_Dedicated->pusch_Config->choice.setup->pusch_TimeDomainAllocationList->choice.setup;
-      }
-      else if (mac->ULbwp[0] &&
-               mac->ULbwp[0]->bwp_Common &&
-               mac->ULbwp[0]->bwp_Common->pusch_ConfigCommon &&
-               mac->ULbwp[0]->bwp_Common->pusch_ConfigCommon->choice.setup &&
-               mac->ULbwp[0]->bwp_Common->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList) {
-        pusch_TimeDomainAllocationList = mac->ULbwp[0]->bwp_Common->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList;
+      if(ul_bwp){
+        if (mac->ULbwp[ul_bwp-1] &&
+            mac->ULbwp[ul_bwp-1]->bwp_Dedicated &&
+            mac->ULbwp[ul_bwp-1]->bwp_Dedicated->pusch_Config &&
+            mac->ULbwp[ul_bwp-1]->bwp_Dedicated->pusch_Config->choice.setup &&
+            mac->ULbwp[ul_bwp-1]->bwp_Dedicated->pusch_Config->choice.setup->pusch_TimeDomainAllocationList) {
+          pusch_TimeDomainAllocationList = mac->ULbwp[ul_bwp-1]->bwp_Dedicated->pusch_Config->choice.setup->pusch_TimeDomainAllocationList->choice.setup;
+        }
+        else if (mac->ULbwp[ul_bwp-1] &&
+                 mac->ULbwp[ul_bwp-1]->bwp_Common &&
+                 mac->ULbwp[ul_bwp-1]->bwp_Common->pusch_ConfigCommon &&
+                 mac->ULbwp[ul_bwp-1]->bwp_Common->pusch_ConfigCommon->choice.setup &&
+                 mac->ULbwp[ul_bwp-1]->bwp_Common->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList) {
+          pusch_TimeDomainAllocationList = mac->ULbwp[ul_bwp-1]->bwp_Common->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList;
+        }
       }
       else if (mac->scc_SIB &&
                mac->scc_SIB->uplinkConfigCommon &&
@@ -943,12 +959,15 @@ bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
       }
       long mapping_type_ul = pusch_TimeDomainAllocationList ? pusch_TimeDomainAllocationList->list.array[0]->mappingType : NR_PUSCH_TimeDomainResourceAllocation__mappingType_typeA;
 
-      NR_PDSCH_Config_t *pdsch_Config = (mac->DLbwp[0] && mac->DLbwp[0]->bwp_Dedicated->pdsch_Config->choice.setup) ? mac->DLbwp[0]->bwp_Dedicated->pdsch_Config->choice.setup : NULL;
+      NR_PDSCH_Config_t *pdsch_Config = NULL;
       NR_PDSCH_TimeDomainResourceAllocationList_t *pdsch_TimeDomainAllocationList = NULL;
-      if (mac->DLbwp[0] && mac->DLbwp[0]->bwp_Dedicated->pdsch_Config->choice.setup->pdsch_TimeDomainAllocationList)
-        pdsch_TimeDomainAllocationList = pdsch_Config->pdsch_TimeDomainAllocationList->choice.setup;
-      else if (mac->DLbwp[0] && mac->DLbwp[0]->bwp_Common->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList)
-        pdsch_TimeDomainAllocationList = mac->DLbwp[0]->bwp_Common->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList;
+      if(dl_bwp){
+        pdsch_Config = (mac->DLbwp[dl_bwp-1] && mac->DLbwp[dl_bwp-1]->bwp_Dedicated->pdsch_Config->choice.setup) ? mac->DLbwp[dl_bwp-1]->bwp_Dedicated->pdsch_Config->choice.setup : NULL;
+        if (mac->DLbwp[dl_bwp-1] && mac->DLbwp[dl_bwp-1]->bwp_Dedicated->pdsch_Config->choice.setup->pdsch_TimeDomainAllocationList)
+          pdsch_TimeDomainAllocationList = pdsch_Config->pdsch_TimeDomainAllocationList->choice.setup;
+        else if (mac->DLbwp[dl_bwp-1] && mac->DLbwp[dl_bwp-1]->bwp_Common->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList)
+          pdsch_TimeDomainAllocationList = mac->DLbwp[dl_bwp-1]->bwp_Common->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList;
+      }
       else if (mac->scc_SIB && mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP.pdsch_ConfigCommon->choice.setup)
         pdsch_TimeDomainAllocationList = mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP.pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList;
       long mapping_type_dl = pdsch_TimeDomainAllocationList ? pdsch_TimeDomainAllocationList->list.array[0]->mappingType : NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeA;
@@ -1002,7 +1021,7 @@ bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
         d_2_1 = 1;
 
       /* d_2_2 */
-      const double d_2_2 = 0.0; // set to 0 because there is only 1 BWP: TODO this should corresponds to the switching time as defined in TS 38.133
+      const double d_2_2 = pusch_d_2_2_timing_capability_1[numerology][1];
 
       /* N_t_1 time duration in msec of N_1 symbols corresponding to a PDSCH reception time
       // N_t_2 time duration in msec of N_2 symbols corresponding to a PUSCH preparation time */
@@ -1306,8 +1325,7 @@ int is_ssb_in_slot(fapi_nr_config_request_t *config, int frame, int slot, NR_DL_
   //uint8_t half_frame_index = fp->half_frame_bit;
   //uint8_t i_ssb = fp->ssb_index;
   uint8_t Lmax = fp->Lmax;
-
-  if (!(frame%(1<<(config->ssb_table.ssb_period-1)))){
+  if ((config->ssb_table.ssb_period > 0) && !(frame % (1 << (config->ssb_table.ssb_period - 1)))) {
 
     if(Lmax <= 8) {
       if(slot <=3 && (((config->ssb_table.ssb_mask_list[0].ssb_mask << 2*slot)&0x80000000) == 0x80000000 || ((config->ssb_table.ssb_mask_list[0].ssb_mask << (2*slot +1))&0x80000000) == 0x80000000))
@@ -1484,7 +1502,17 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
 
   if ((frame_rx%64 == 0) && (nr_slot_rx==0)) {
     LOG_I(NR_PHY,"============================================\n");
-    LOG_I(NR_PHY,"Harq round stats for Downlink: %d/%d/%d/%d DLSCH errors: %d\n",ue->dl_stats[0],ue->dl_stats[1],ue->dl_stats[2],ue->dl_stats[3],ue->dl_stats[4]);
+    // fixed text + 8 HARQs rounds à 10 ("999999999/") + NULL
+    // if we use 999999999 HARQs, that should be sufficient for at least 138 hours
+    const size_t harq_output_len = 31 + 10 * 8 + 1;
+    char output[harq_output_len];
+    char *p = output;
+    const char *end = output + harq_output_len;
+    p += snprintf(p, end - p, "Harq round stats for Downlink: %d", ue->dl_stats[0]);
+    for (int round = 1; round < 16 && (round < 3 || ue->dl_stats[round] != 0); ++round)
+      p += snprintf(p, end - p,"/%d", ue->dl_stats[round]);
+    LOG_I(NR_PHY,"%s/0\n", output);
+
     LOG_I(NR_PHY,"============================================\n");
   }
 
@@ -1697,6 +1725,36 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
 
  }
 
+  // do procedures for CSI-IM
+  if ((ue->csiim_vars[gNB_id]) && (ue->csiim_vars[gNB_id]->active == 1)) {
+    int l_csiim[4] = {-1, -1, -1, -1};
+    for(int symb_idx = 0; symb_idx < 4; symb_idx++) {
+      bool nr_slot_fep_done = false;
+      for (int symb_idx2 = 0; symb_idx2 < symb_idx; symb_idx2++) {
+        if (l_csiim[symb_idx2] == ue->csiim_vars[gNB_id]->csiim_config_pdu.l_csiim[symb_idx]) {
+          nr_slot_fep_done = true;
+        }
+      }
+      l_csiim[symb_idx] = ue->csiim_vars[gNB_id]->csiim_config_pdu.l_csiim[symb_idx];
+      if(nr_slot_fep_done == false) {
+        nr_slot_fep(ue, proc, ue->csiim_vars[gNB_id]->csiim_config_pdu.l_csiim[symb_idx], nr_slot_rx);
+      }
+    }
+    nr_ue_csi_im_procedures(ue, proc, gNB_id);
+    ue->csiim_vars[gNB_id]->active = 0;
+  }
+
+  // do procedures for CSI-RS
+  if ((ue->csirs_vars[gNB_id]) && (ue->csirs_vars[gNB_id]->active == 1)) {
+    for(int symb = 0; symb < NR_SYMBOLS_PER_SLOT; symb++) {
+      if(is_csi_rs_in_symbol(ue->csirs_vars[gNB_id]->csirs_config_pdu,symb)) {
+        nr_slot_fep(ue, proc, symb, nr_slot_rx);
+      }
+    }
+    nr_ue_csi_rs_procedures(ue, proc, gNB_id);
+    ue->csirs_vars[gNB_id]->active = 0;
+  }
+
   start_meas(&ue->generic_stat);
 
   if (nr_slot_rx==9) {
diff --git a/openair1/SCHED_NR_UE/phy_sch_processing_time.h b/openair1/SCHED_NR_UE/phy_sch_processing_time.h
index 1962df22eed..81cc4496a26 100644
--- a/openair1/SCHED_NR_UE/phy_sch_processing_time.h
+++ b/openair1/SCHED_NR_UE/phy_sch_processing_time.h
@@ -106,4 +106,36 @@ float pusch_N_2_timing_capability_2[3][2] = {
 {  0,      5   },
 {  1,      5.5 },
 {  2,      11  },
-};
\ No newline at end of file
+};
+
+/* TS 38.133 Table 8.6.2-1: BWP switch delay capability 1
+//   corresponding to the PUSCH preparation time d_2_2 [slots]
+// where mu corresponds to the one of {mu_DL, mu_UL}
+//   resulting with the largest T_proc_2
+// where mu_DL is the SCS with which the PDCCH
+//   carrying the DCI scheduling the PUSCH was transmitted
+//   mu_UL is the SCS of the UL channel with which PUSCH to be transmitted
+*/
+float pusch_d_2_2_timing_capability_1[4][2] = {
+/* mu      d_2_2   */
+{  0,      1   },
+{  1,      2   },
+{  2,      3   },
+{  3,      6   },
+};
+
+/* TS 38.133 Table 8.6.2-1: BWP switch delay capability 2
+//   corresponding to the PUSCH preparation time d_2_2 [slots]
+// where mu corresponds to the one of {mu_DL, mu_UL}
+//   resulting with the largest T_proc_2
+// where mu_DL is the SCS with which the PDCCH
+//   carrying the DCI scheduling the PUSCH was transmitted
+//   mu_UL is the SCS of the UL channel with which PUSCH to be transmitted
+*/
+float pusch_d_2_2_timing_capability_2[4][2] = {
+/* mu      d_2_2   */
+{  0,      3   },
+{  1,      5   },
+{  2,      9   },
+{  3,      18  },
+};
diff --git a/openair1/SCHED_UE/phy_procedures_lte_ue.c b/openair1/SCHED_UE/phy_procedures_lte_ue.c
index aa0ff0db80f..cdf4cf39f9a 100644
--- a/openair1/SCHED_UE/phy_procedures_lte_ue.c
+++ b/openair1/SCHED_UE/phy_procedures_lte_ue.c
@@ -460,7 +460,7 @@ void ue_compute_srs_occasion(PHY_VARS_UE *ue,
       is_pucch2_subframe = (is_ri_TXOp(ue,proc,eNB_id) && (ue->cqi_report_config[eNB_id].CQI_ReportPeriodic.ri_ConfigIndex>0)) || is_pucch2_subframe;
 
       // check ACK/SR transmission
-      if(frame_parms->soundingrs_ul_config_common.ackNackSRS_SimultaneousTransmission == FALSE) {
+      if(frame_parms->soundingrs_ul_config_common.ackNackSRS_SimultaneousTransmission == false) {
         if(is_SR_TXOp(ue,proc,eNB_id)) {
           uint32_t SR_payload = 0;
 
diff --git a/openair1/SIMULATION/LTE_PHY/dlsim.c b/openair1/SIMULATION/LTE_PHY/dlsim.c
index 231d63cf047..8aff47c86b8 100644
--- a/openair1/SIMULATION/LTE_PHY/dlsim.c
+++ b/openair1/SIMULATION/LTE_PHY/dlsim.c
@@ -512,12 +512,16 @@ int main(int argc, char **argv) {
   int re;
   int s,Kr,Kr_bytes;
   LTE_DL_FRAME_PARMS *frame_parms;
-  double s_re0[30720*2],s_im0[30720*2],r_re0[30720*2],r_im0[30720*2];
-  double s_re1[30720*2],s_im1[30720*2],r_re1[30720*2],r_im1[30720*2];
-  double *s_re[2]= {s_re0,s_re1};
-  double *s_im[2]= {s_im0,s_im1};
-  double *r_re[2]= {r_re0,r_re1};
-  double *r_im[2]= {r_im0,r_im1};
+  double *tmpTX[4], *tmpRX[4] ;
+  for (int i = 0; i < 4; i++) {
+    tmpTX[i] = malloc(30720 * NB_ANTENNAS_TX * sizeof(*tmpTX));
+    tmpRX[i] = malloc(30720 * NB_ANTENNAS_RX * sizeof(*tmpRX));
+  }
+  double *s_re[NB_ANTENNAS_TX] = {tmpTX[0], tmpTX[1]};
+  double *s_im[NB_ANTENNAS_TX] = {tmpTX[2], tmpTX[3]};
+  double *r_re[NB_ANTENNAS_RX] = {tmpRX[0], tmpRX[1]};
+  double *r_im[NB_ANTENNAS_RX] = {tmpRX[2], tmpRX[3]};
+  
   uint8_t transmission_mode=1,n_tx_port=1,n_tx_phy=1,n_rx=2;
   int eNB_id = 0;
   unsigned char round;
diff --git a/openair1/SIMULATION/LTE_PHY/mbmssim.c b/openair1/SIMULATION/LTE_PHY/mbmssim.c
index 7efe9f4530e..5aad30405bf 100644
--- a/openair1/SIMULATION/LTE_PHY/mbmssim.c
+++ b/openair1/SIMULATION/LTE_PHY/mbmssim.c
@@ -1338,20 +1338,16 @@ int main(int argc, char **argv) {
       break;
   }
 
-  for (k=0; k<NUMBER_OF_UE_MAX; k++) {
-    // Create transport channel structures for 2 transport blocks (MIMO)
-    for (i=0; i<2; i++) {
-      eNB->dlsch[k][i] = new_eNB_dlsch(Kmimo,8,Nsoft,N_RB_DL,0,&eNB->frame_parms);
-
-      if (!eNB->dlsch[k][i]) {
-        printf("Can't get eNB dlsch structures\n");
-        exit(-1);
-      }
+    // Create transport channel structures for 1 transport block
+  eNB->dlsch[0][0] = new_eNB_dlsch(Kmimo,8,Nsoft,N_RB_DL,0,&eNB->frame_parms);
 
-      eNB->dlsch[k][i]->rnti = n_rnti+k;
-    }
+  if (!eNB->dlsch[0][0]) {
+      printf("Can't get eNB dlsch structures\n");
+      exit(-1);
   }
 
+  eNB->dlsch[0][0]->rnti = n_rnti+k;
+
 #ifdef ENABLE_MBMS_SIM
   eNB->dlsch_MCH = new_eNB_dlsch(1,8,Nsoft,N_RB_DL, 0, &eNB->frame_parms);
 #endif
diff --git a/openair1/SIMULATION/LTE_PHY/ulsim.c b/openair1/SIMULATION/LTE_PHY/ulsim.c
index a1894d03d73..0f98eb337a6 100644
--- a/openair1/SIMULATION/LTE_PHY/ulsim.c
+++ b/openair1/SIMULATION/LTE_PHY/ulsim.c
@@ -358,7 +358,7 @@ int main(int argc, char **argv) {
   unsigned short input_buffer_length;
   unsigned int ret;
   unsigned int coded_bits_per_codeword,nsymb;
-  unsigned int tx_lev=0,tx_lev_dB,trials,errs[5]= {0,0,0,0,0},round_trials[4]= {0,0,0,0};
+  unsigned int tx_lev = 0, tx_lev_dB = 0, trials, errs[6] = {0}, round_trials[4] = {0};
   FILE *bler_fd=NULL;
   char bler_fname[512];
   FILE *time_meas_fd=NULL;
@@ -387,7 +387,6 @@ int main(int argc, char **argv) {
   double cpu_freq_GHz;
   int iter_trials;
   uint32_t UL_alloc_pdu;
-  int s,Kr,Kr_bytes;
   int dump_perf=0;
   static int dump_table =0;
   double effective_rate=0.0;
@@ -1233,20 +1232,21 @@ int main(int argc, char **argv) {
 
             if (n_frames==1) {
               printf("ULSCH errors found o_ACK[0]= %d\n",eNB->ulsch[0]->harq_processes[harq_pid]->o_ACK[0]);
-
+#ifdef DUMP_EACH_VALUE
+              int Kr_bytes;
               for (s=0; s<eNB->ulsch[0]->harq_processes[harq_pid]->C; s++) {
                 if (s<eNB->ulsch[0]->harq_processes[harq_pid]->Cminus)
-                  Kr = eNB->ulsch[0]->harq_processes[harq_pid]->Kminus;
+                  Kr_bytes = eNB->ulsch[0]->harq_processes[harq_pid]->Kminus;
                 else
-                  Kr = eNB->ulsch[0]->harq_processes[harq_pid]->Kplus;
-
-                Kr_bytes = Kr>>3;
+                  Kr_bytes = eNB->ulsch[0]->harq_processes[harq_pid]->Kplus;
+                Kr_bytes = Kr_bytes >> 3;
                 printf("Decoded_output (Segment %d):\n",s);
 
                 for (i=0; i<Kr_bytes; i++)
                   printf("%d : %x (%x)\n",i,eNB->ulsch[0]->harq_processes[harq_pid]->c[s][i],
                          eNB->ulsch[0]->harq_processes[harq_pid]->c[s][i]^UE->ulsch[0]->harq_processes[harq_pid]->c[s][i]);
               }
+#endif
 
               dump_ulsch(eNB,eNB->proc.frame_rx,subframe,0,round);
               round=5;
diff --git a/openair1/SIMULATION/NR_PHY/dlschsim.c b/openair1/SIMULATION/NR_PHY/dlschsim.c
index 6f747b36a63..39cd5407955 100644
--- a/openair1/SIMULATION/NR_PHY/dlschsim.c
+++ b/openair1/SIMULATION/NR_PHY/dlschsim.c
@@ -47,14 +47,18 @@
 #include "openair1/SIMULATION/RF/rf.h"
 #include "openair1/SIMULATION/NR_PHY/nr_unitary_defs.h"
 #include "openair1/SIMULATION/NR_PHY/nr_dummy_functions.c"
+#include "openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h"
+
 
 //#define DEBUG_NR_DLSCHSIM
 
+THREAD_STRUCT thread_struct;
 PHY_VARS_gNB *gNB;
 PHY_VARS_NR_UE *UE;
 RAN_CONTEXT_t RC;
 UE_nr_rxtx_proc_t proc;
 int32_t uplink_frequency_offset[MAX_NUM_CCs][4];
+uint64_t downlink_frequency[MAX_NUM_CCs][4];
 
 double cpuf;
 //uint8_t nfapi_mode = 0;
@@ -110,15 +114,16 @@ int main(int argc, char **argv)
 	//int run_initial_sync=0;
 	int loglvl = OAILOG_WARNING;
 	uint8_t dlsch_threads = 0;
-	float target_error_rate = 0.01;
-        uint64_t SSB_positions=0x01;
-	uint16_t nb_symb_sch = 12;
-	uint16_t nb_rb = 50;
-	uint8_t Imcs = 9;
-        uint8_t mcs_table = 0;
-        double DS_TDL = .03;
-	cpuf = get_cpu_freq_GHz();
-	char gNBthreads[128]="n";
+  float target_error_rate = 0.01;
+  uint64_t SSB_positions=0x01;
+  uint16_t nb_symb_sch = 12;
+  uint16_t nb_rb = 50;
+  uint8_t Imcs = 9;
+  uint8_t mcs_table = 0;
+  double DS_TDL = .03;
+  cpuf = get_cpu_freq_GHz();
+  char gNBthreads[128]="n";
+  int Tbslbrm = 950984;
 
 	if (load_configmodule(argc, argv, CONFIG_ENABLECMDLINEONLY) == 0) {
 		exit_fun("[NR_DLSCHSIM] Error, configuration module init failed\n");
@@ -294,7 +299,7 @@ int main(int argc, char **argv)
 			break;
 
 		case 'X':
-		  strncpy(gNBthreads, optarg, sizeof(gNBthreads));
+		  strncpy(gNBthreads, optarg, sizeof(gNBthreads)-1);
 		  gNBthreads[sizeof(gNBthreads)-1]=0;
 		  break;
 
@@ -426,13 +431,10 @@ int main(int argc, char **argv)
 	NR_gNB_DLSCH_t *dlsch = msgDataTx.dlsch[0][0];
 	nfapi_nr_dl_tti_pdsch_pdu_rel15_t *rel15 = &dlsch->harq_process.pdsch_pdu.pdsch_pdu_rel15;
 	//time_stats_t *rm_stats, *te_stats, *i_stats;
-	uint8_t is_crnti = 0, llr8_flag = 0;
+	uint8_t is_crnti = 0;
 	unsigned int TBS = 8424;
-	unsigned int available_bits;
 	uint8_t nb_re_dmrs = 6;  // No data in dmrs symbol
 	uint16_t length_dmrs = 1;
-	unsigned char mod_order;
-        uint16_t rate;
 	uint8_t Nl = 1;
 	uint8_t rvidx = 0;
 	dlsch->rnti = 1;
@@ -440,9 +442,9 @@ int main(int argc, char **argv)
 	 dlsch->harq_processes[0]->rvidx = rvidx;*/
 	//printf("dlschsim harqid %d nb_rb %d, mscs %d\n",dlsch->harq_ids[subframe],
 	//    dlsch->harq_processes[0]->nb_rb,dlsch->harq_processes[0]->mcs,dlsch->harq_processes[0]->Nl);
-	mod_order = nr_get_Qm_dl(Imcs, mcs_table);
-        rate = nr_get_code_rate_dl(Imcs, mcs_table);
-	available_bits = nr_get_G(nb_rb, nb_symb_sch, nb_re_dmrs, length_dmrs, mod_order, 1);
+	unsigned char mod_order = nr_get_Qm_dl(Imcs, mcs_table);
+        uint16_t rate = nr_get_code_rate_dl(Imcs, mcs_table);
+	unsigned int available_bits = nr_get_G(nb_rb, nb_symb_sch, nb_re_dmrs, length_dmrs, mod_order, 1);
 	TBS = nr_compute_tbs(mod_order,rate, nb_rb, nb_symb_sch, nb_re_dmrs*length_dmrs, 0, 0, Nl);
 	printf("available bits %u TBS %u mod_order %d\n", available_bits, TBS, mod_order);
 	//dlsch->harq_ids[subframe]= 0;
@@ -457,6 +459,7 @@ int main(int argc, char **argv)
 	rel15->dlDmrsSymbPos = 4;
 	rel15->mcsIndex[0] = Imcs;
         rel15->numDmrsCdmGrpsNoData = 1;
+        rel15->maintenance_parms_v3.tbSizeLbrmBytes = Tbslbrm;
 	double modulated_input[16 * 68 * 384]; // [hna] 16 segments, 68*Zc
 	short channel_output_fixed[16 * 68 * 384];
 	//unsigned char *estimated_output;
@@ -473,9 +476,11 @@ int main(int argc, char **argv)
 	harq_process->Qm = mod_order;
 	harq_process->rvidx = rvidx;
 	harq_process->R = rate;
+        harq_process->TBS = TBS;
 	harq_process->dmrsConfigType = NFAPI_NR_DMRS_TYPE1;
 	harq_process->dlDmrsSymbPos = 4;
 	harq_process->n_dmrs_cdm_groups = 1;
+        harq_process->tbslbrm = Tbslbrm;
 	printf("harq process ue mcs = %d Qm = %d, symb %d\n", harq_process->mcs, harq_process->Qm, nb_symb_sch);
 
 	unsigned char *test_input=dlsch->harq_process.pdu;
@@ -492,8 +497,8 @@ int main(int argc, char **argv)
 
 	//printf("crc32: [0]->0x%08x\n",crc24c(test_input, 32));
 	// generate signal
-	    unsigned char output[rel15->rbSize * NR_SYMBOLS_PER_SLOT * NR_NB_SC_PER_RB * 8 * NR_MAX_NB_LAYERS] __attribute__((aligned(32)));
-    bzero(output,rel15->rbSize * NR_SYMBOLS_PER_SLOT * NR_NB_SC_PER_RB * 8 * NR_MAX_NB_LAYERS);
+        unsigned char output[rel15->rbSize * NR_SYMBOLS_PER_SLOT * NR_NB_SC_PER_RB * 8 * NR_MAX_NB_LAYERS] __attribute__((aligned(32)));
+        bzero(output,rel15->rbSize * NR_SYMBOLS_PER_SLOT * NR_NB_SC_PER_RB * 8 * NR_MAX_NB_LAYERS);
 	if (input_fd == NULL) {
 	  nr_dlsch_encoding(gNB, frame, slot, &dlsch->harq_process, frame_parms,output,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
 	}
@@ -545,7 +550,7 @@ int main(int argc, char **argv)
 
 			ret = nr_dlsch_decoding(UE, &proc, 0, channel_output_fixed, &UE->frame_parms,
 					dlsch0_ue, dlsch0_ue->harq_processes[0], frame, nb_symb_sch,
-					slot,harq_pid, is_crnti, llr8_flag);
+					slot,harq_pid, is_crnti);
 
 			vcd_signal_dumper_dump_function_by_name(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_DECODING0, VCD_FUNCTION_OUT);
 
diff --git a/openair1/SIMULATION/NR_PHY/dlsim.c b/openair1/SIMULATION/NR_PHY/dlsim.c
index eff65fa6069..57c6589ca4e 100644
--- a/openair1/SIMULATION/NR_PHY/dlsim.c
+++ b/openair1/SIMULATION/NR_PHY/dlsim.c
@@ -66,6 +66,7 @@
 #include "NR_RRCReconfiguration.h"
 #define inMicroS(a) (((double)(a))/(get_cpu_freq_GHz()*1000.0))
 #include "SIMULATION/LTE_PHY/common_sim.h"
+#include "PHY/NR_REFSIG/dmrs_nr.h"
 
 #include <openair2/LAYER2/MAC/mac_vars.h>
 #include <openair2/RRC/LTE/rrc_vars.h>
@@ -96,13 +97,20 @@ uint16_t sl_ahead=0;
 uint64_t downlink_frequency[MAX_NUM_CCs][4];
 THREAD_STRUCT thread_struct;
 nfapi_ue_release_request_body_t release_rntis;
-uint32_t N_RB_DL = 106;
 //Fixme: Uniq dirty DU instance, by global var, datamodel need better management
 instance_t DUuniqInstance=0;
 instance_t CUuniqInstance=0;
-teid_t newGtpuCreateTunnel(instance_t instance, rnti_t rnti, int incoming_bearer_id, int outgoing_bearer_id, teid_t outgoing_teid,
-                           transport_layer_addr_t remoteAddr, int port, gtpCallback callBack) {
-return 0;
+teid_t newGtpuCreateTunnel(instance_t instance,
+                           rnti_t rnti,
+                           int incoming_bearer_id,
+                           int outgoing_bearer_id,
+                           teid_t outgoing_teid,
+                           int qfi,
+                           transport_layer_addr_t remoteAddr,
+                           int port,
+                           gtpCallback callBack,
+                           gtpCallbackSDAP callBackSDAP) {
+  return 0;
 }
 
 int newGtpuDeleteAllTunnels(instance_t instance, rnti_t rnti) {
@@ -210,11 +218,9 @@ int nr_derive_key(int alg_type, uint8_t alg_id,
 }
 
 void config_common(int Mod_idP,
-                   int ssb_SubcarrierOffset,
-                   rrc_pdsch_AntennaPorts_t pdsch_AntennaPorts,
+                   int pdsch_AntennaPorts,
                    int pusch_AntennaPorts,
-		   NR_ServingCellConfigCommon_t *scc
-		   );
+                   NR_ServingCellConfigCommon_t *scc);
 
 int generate_dlsch_header(unsigned char *mac_header,
                           unsigned char num_sdus,
@@ -243,10 +249,10 @@ int DU_send_INITIAL_UL_RRC_MESSAGE_TRANSFER(module_id_t     module_idP,
   return 0;
 }
 
-nr_bler_struct nr_bler_data[NR_NUM_MCS];
-
 void processSlotTX(void *arg) {}
 
+nr_bler_struct nr_bler_data[NR_NUM_MCS];
+
 //nFAPI P7 dummy functions to avoid linking errors 
 
 int oai_nfapi_dl_tti_req(nfapi_nr_dl_tti_request_t *dl_config_req) { return(0);  }
@@ -265,35 +271,50 @@ void update_ptrs_config(NR_CellGroupConfig_t *secondaryCellGroup, uint16_t *rbSi
 void update_dmrs_config(NR_CellGroupConfig_t *scg, int8_t* dmrs_arg);
 extern void fix_scd(NR_ServingCellConfig_t *scd);// forward declaration
 
-/* specific dlsim DL preprocessor: uses rbStart/rbSize/mcs/nrOfLayers from command line of
-   dlsim, does not search for CCE/PUCCH occasion but simply sets to 0 */
+/* specific dlsim DL preprocessor: uses rbStart/rbSize/mcs/nrOfLayers from command line of dlsim */
 int g_mcsIndex = -1, g_mcsTableIdx = 0, g_rbStart = -1, g_rbSize = -1, g_nrOfLayers = 1;
 void nr_dlsim_preprocessor(module_id_t module_id,
                            frame_t frame,
                            sub_frame_t slot) {
-  NR_UE_info_t *UE_info = &RC.nrmac[module_id]->UE_info;
-  AssertFatal(UE_info->num_UEs == 1, "can have only a single UE\n");
-  NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[0];
+
+  NR_UE_info_t *UE_info = RC.nrmac[module_id]->UE_info.list[0];
+  AssertFatal(RC.nrmac[module_id]->UE_info.list[1]==NULL, "can have only a single UE\n");
+  NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl;
   NR_ServingCellConfigCommon_t *scc = RC.nrmac[0]->common_channels[0].ServingCellConfigCommon;
 
-  /* manually set free CCE to 0 */
   const int target_ss = NR_SearchSpace__searchSpaceType_PR_ue_Specific;
   sched_ctrl->search_space = get_searchspace(NULL, scc, sched_ctrl->active_bwp ? sched_ctrl->active_bwp->bwp_Dedicated : NULL, target_ss);
-  uint8_t nr_of_candidates;
-  find_aggregation_candidates(&sched_ctrl->aggregation_level,
-                              &nr_of_candidates,
-                              sched_ctrl->search_space,4);
-  sched_ctrl->coreset = get_coreset(module_id, scc, sched_ctrl->active_bwp->bwp_Dedicated, sched_ctrl->search_space, target_ss);
-  sched_ctrl->cce_index = 0;
+  uint8_t nr_of_candidates = 0;
+  if (g_mcsIndex < 4) {
+    find_aggregation_candidates(&sched_ctrl->aggregation_level,
+                                &nr_of_candidates,
+                                sched_ctrl->search_space,8);
+  }
+  if (nr_of_candidates == 0) {
+    find_aggregation_candidates(&sched_ctrl->aggregation_level,
+                                &nr_of_candidates,
+                                sched_ctrl->search_space,4);
+  }
+  sched_ctrl->coreset = get_coreset(RC.nrmac[module_id], scc, sched_ctrl->active_bwp->bwp_Dedicated, sched_ctrl->search_space, target_ss);
+  uint32_t Y = get_Y(sched_ctrl->search_space, slot, UE_info->rnti);
+  int CCEIndex = find_pdcch_candidate(RC.nrmac[module_id],
+                                      /* CC_id = */ 0,
+                                      sched_ctrl->aggregation_level,
+                                      nr_of_candidates,
+                                      &sched_ctrl->sched_pdcch,
+                                      sched_ctrl->coreset,
+                                      Y);
+  AssertFatal(CCEIndex>=0, "%4d.%2d could not find CCE for DL DCI UE %d/RNTI %04x\n", frame, slot, 0, UE_info->rnti);
+  sched_ctrl->cce_index = CCEIndex;
 
   NR_pdsch_semi_static_t *ps = &sched_ctrl->pdsch_semi_static;
 
   nr_set_pdsch_semi_static(NULL,
                            scc,
-                           UE_info->CellGroup[0],
+                           UE_info->CellGroup,
                            sched_ctrl->active_bwp,
                            NULL,
-                           /* tda = */ 2,
+                           /* tda = */ 0,
                            g_nrOfLayers,
                            sched_ctrl,
                            ps);
@@ -315,8 +336,7 @@ void nr_dlsim_preprocessor(module_id_t module_id,
                                         ps->N_PRB_DMRS * ps->N_DMRS_SLOT,
                                         0 /* N_PRB_oh, 0 for initialBWP */,
                                         0 /* tb_scaling */,
-                                        ps->nrOfLayers)
-                         >> 3;
+                                        ps->nrOfLayers) >> 3;
 
   /* the simulator assumes the HARQ PID is equal to the slot number */
   sched_pdsch->dl_harq_pid = slot;
@@ -360,10 +380,13 @@ int main(int argc, char **argv)
   int i,aa;//,l;
   double sigma2, sigma2_dB=10, SNR, snr0=-2.0, snr1=2.0;
   uint8_t snr1set=0;
-  double roundStats[500] = {0};
-  double blerStats[500] = {0};
-  double berStats[500] = {0};
-  double snrStats[500] = {0};
+  uint32_t errors_scrambling[4][100] = {{0}};
+  int      n_errors[4][100]          = {{0}};
+  int      round_trials[4][100]      = {{0}};
+  double   roundStats[100]           = {0};
+  double   blerStats[4][100]         = {{0}};
+  double   berStats[4][100]          = {{0}};
+  double   snrStats[100]             = {0};
   float effRate;
   //float psnr;
   float eff_tp_check = 0.7;
@@ -381,7 +404,7 @@ int main(int argc, char **argv)
   //int freq_offset;
   //  int subframe_offset;
   //  char fname[40], vname[40];
-  int trial, n_trials = 1, n_errors = 0, n_false_positive = 0;
+  int trial, n_trials = 1, n_false_positive = 0;
   //int n_errors2, n_alamouti;
   uint8_t n_tx=1,n_rx=1;
   uint8_t round;
@@ -437,7 +460,8 @@ int main(int argc, char **argv)
   uint16_t rbSize = 106;
   uint8_t  mcsIndex = 9;
   uint8_t  dlsch_threads = 0;
-  int      prb_inter = 0;
+  int      chest_type[2] = {0};
+  uint8_t  max_ldpc_iterations = 5;
   if ( load_configmodule(argc,argv,CONFIG_ENABLECMDLINEONLY) == 0) {
     exit_fun("[NR_DLSIM] Error, configuration module init failed\n");
   }
@@ -448,7 +472,7 @@ int main(int argc, char **argv)
 
   FILE *scg_fd=NULL;
   
-  while ((c = getopt (argc, argv, "f:hA:pf:g:in:s:S:t:x:y:z:M:N:F:GR:dPIL:Ea:b:d:e:q:m:w:T:U:X:")) != -1) {
+  while ((c = getopt (argc, argv, "f:hA:pf:g:i:n:s:S:t:x:y:z:M:N:F:GR:dPI:L:Ea:b:d:e:m:w:T:U:q:X:Y")) != -1) {
     switch (c) {
     case 'f':
       scg_fd = fopen(optarg,"r");
@@ -505,7 +529,9 @@ int main(int argc, char **argv)
       break;
 
     case 'i':
-      prb_inter=1;
+      for(i=0; i < atoi(optarg); i++){
+        chest_type[i] = atoi(argv[optind++]);
+      }
       break;
 
     case 'n':
@@ -592,9 +618,7 @@ int main(int argc, char **argv)
       break;
       
     case 'I':
-      run_initial_sync=1;
-      //target_error_rate=0.1;
-      slot = 0;
+      max_ldpc_iterations = atoi(optarg);
       break;
 
     case 'L':
@@ -652,15 +676,21 @@ int main(int argc, char **argv)
         dmrs_arg[i] = atoi(argv[optind++]);
       }
       break;
-      
+
     case 'X':
-      strncpy(gNBthreads, optarg, sizeof(gNBthreads));
+      strncpy(gNBthreads, optarg, sizeof(gNBthreads)-1);
       gNBthreads[sizeof(gNBthreads)-1]=0;
       break;
-      
+
+    case 'Y':
+      run_initial_sync=1;
+      //target_error_rate=0.1;
+      slot = 0;
+      break;
+
     default:
     case 'h':
-      printf("%s -h(elp) -p(extended_prefix) -N cell_id -f output_filename -F input_filename -g channel_model -n n_frames -t Delayspread -s snr0 -S snr1 -x transmission_mode -y TXant -z RXant -i Intefrence0 -j Interference1 -A interpolation_file -C(alibration offset dB) -N CellId\n",
+      printf("%s -h(elp) -p(extended_prefix) -N cell_id -f output_filename -F input_filename -g channel_model -n n_frames -s snr0 -S snr1 -x transmission_mode -y TXant -z RXant -i Intefrence0 -j Interference1 -A interpolation_file -C(alibration offset dB) -N CellId\n",
              argv[0]);
       printf("-h This message\n");
       printf("-L <log level, 0(errors), 1(warning), 2(analysis), 3(info), 4(debug), 5(trace)>\n");
@@ -669,11 +699,11 @@ int main(int argc, char **argv)
       printf("-n Number of frames to simulate\n");
       printf("-s Starting SNR, runs from SNR0 to SNR0 + 5 dB.  If n_frames is 1 then just SNR is simulated\n");
       printf("-S Ending SNR, runs from SNR0 to SNR1\n");
-      printf("-t Delay spread for multipath channel\n");
+      //printf("-t Delay spread for multipath channel\n");
       printf("-g [A,B,C,D,E,F,G,R] Use 3GPP SCM (A,B,C,D) or 36-101 (E-EPA,F-EVA,G-ETU) models or R for MIMO model (ignores delay spread and Ricean factor)\n");
       printf("-y Number of TX antennas used in gNB\n");
       printf("-z Number of RX antennas used in UE\n");
-      printf("-i Activate PRB based averaging for channel estimation. Frequncy domain interpolation by default.\n");
+      printf("-i Change channel estimation technique. Arguments list: Frequency domain {0:Linear interpolation, 1:PRB based averaging}, Time domain {0:Estimates of last DMRS symbol, 1:Average of DMRS symbols}\n");
       //printf("-j Relative strength of second intefering gNB (in dB) - cell_id mod 3 = 2\n");
       printf("-R N_RB_DL\n");
       printf("-O oversampling factor (1,2,4,8,16)\n");
@@ -690,12 +720,14 @@ int main(int argc, char **argv)
       printf("-e MSC index\n");
       printf("-q MCS Table index\n");
       printf("-t Acceptable effective throughput (in percentage)\n");
+      printf("-I Maximum LDPC decoder iterations\n");
       printf("-T Enable PTRS, arguments list L_PTRS{0,1,2} K_PTRS{2,4}, e.g. -T 2 0 2 \n");
       printf("-U Change DMRS Config, arguments list DMRS TYPE{0=A,1=B} DMRS AddPos{0:2} DMRS ConfType{1:2}, e.g. -U 3 0 2 1 \n");
       printf("-P Print DLSCH performances\n");
       printf("-w Write txdata to binary file (one frame)\n");
       printf("-d number of dlsch threads, 0: no dlsch parallelization\n");
-      printf("-X gNB thread pool configuration, n => no threads");
+      printf("-X gNB thread pool configuration, n => no threads\n");
+      printf("-Y Run initial sync in UE\n");
       exit (-1);
       break;
     }
@@ -709,6 +741,7 @@ int main(int argc, char **argv)
 
   get_softmodem_params()->phy_test = 1;
   get_softmodem_params()->do_ra = 0;
+  set_softmodem_optmask(SOFTMODEM_DLSIM_BIT);
 
   if (snr1set==0)
     snr1 = snr0+10;
@@ -736,6 +769,8 @@ int main(int argc, char **argv)
   gNB_RRC_INST rrc;
   memset((void*)&rrc,0,sizeof(rrc));
 
+  gNB_mac->dl_bler.harq_round_max = num_rounds;
+
   /*
   // read in SCGroupConfig
   AssertFatal(scg_fd != NULL,"no reconfig.raw file\n");
@@ -831,16 +866,15 @@ int main(int argc, char **argv)
   gNB->if_inst->NR_PHY_config_req      = nr_phy_config_request;
 
   // common configuration
-  rrc_mac_config_req_gNB(0,0, pdsch_AntennaPorts, n_tx, 0, 6, scc, NULL, NULL, 0, 0, NULL);
+  rrc_mac_config_req_gNB(0, pdsch_AntennaPorts, n_tx, 0, 6, scc, NULL, NULL, 0, 0, NULL);
   // UE dedicated configuration
-  rrc_mac_config_req_gNB(0,0, pdsch_AntennaPorts, n_tx, 0, 6, scc, NULL, NULL, 1, secondaryCellGroup->spCellConfig->reconfigurationWithSync->newUE_Identity,secondaryCellGroup);
+  rrc_mac_config_req_gNB(0, pdsch_AntennaPorts, n_tx, 0, 6, scc, NULL, NULL, 1, secondaryCellGroup->spCellConfig->reconfigurationWithSync->newUE_Identity,secondaryCellGroup);
   // reset preprocessor to the one of DLSIM after it has been set during
   // rrc_mac_config_req_gNB
   gNB_mac->pre_processor_dl = nr_dlsim_preprocessor;
   phy_init_nr_gNB(gNB,0,1);
   N_RB_DL = gNB->frame_parms.N_RB_DL;
-  NR_UE_info_t *UE_info = &RC.nrmac[0]->UE_info;
-  UE_info->num_UEs=1;
+  NR_UE_info_t *UE_info = RC.nrmac[0]->UE_info.list[0];
 
   // stub to configure frame_parms
   //  nr_phy_config_request_sim(gNB,N_RB_DL,N_RB_DL,mu,Nid_cell,SSB_positions);
@@ -855,10 +889,14 @@ int main(int argc, char **argv)
 
   double fs,bw;
 
-  if (mu == 1 && N_RB_DL == 217) { 
+  if (mu == 0 && N_RB_DL == 25) {
+    fs = 7.68e6;
+    bw = 5e6;
+  }
+  else if (mu == 1 && N_RB_DL == 217) {
     fs = 122.88e6;
     bw = 80e6;
-  }					       
+  }
   else if (mu == 1 && N_RB_DL == 245) {
     fs = 122.88e6;
     bw = 90e6;
@@ -871,14 +909,18 @@ int main(int argc, char **argv)
     fs = 61.44e6;
     bw = 40e6;
   }
-  else if (mu == 1 && N_RB_DL == 133) { 
+  else if (mu == 1 && N_RB_DL == 133) {
     fs = 61.44e6;
     bw = 50e6;
   }
-  else if (mu == 1 && N_RB_DL == 162) { 
+  else if (mu == 1 && N_RB_DL == 162) {
     fs = 61.44e6;
     bw = 60e6;
   }
+  else if (mu == 1 && N_RB_DL == 24) {
+    fs = 15.36e6;
+    bw = 10e6;
+  }
   else if (mu == 3 && N_RB_DL == 66) {
     fs = 122.88e6;
     bw = 100e6;
@@ -944,11 +986,10 @@ int main(int argc, char **argv)
   PHY_vars_UE_g[0][0] = UE;
   memcpy(&UE->frame_parms,frame_parms,sizeof(NR_DL_FRAME_PARMS));
   UE->frame_parms.nb_antennas_rx = n_rx;
+  UE->max_ldpc_iterations = max_ldpc_iterations;
 
   if (run_initial_sync==1)  UE->is_synchronized = 0;
   else                      {UE->is_synchronized = 1; UE->UE_mode[0]=PUSCH;}
-                      
-  UE->perfect_ce = 0;
 
   if (init_nr_ue_signal(UE, 1) != 0)
   {
@@ -978,8 +1019,8 @@ int main(int argc, char **argv)
   UE->if_inst->phy_config_request = nr_ue_phy_config_request;
   UE->if_inst->dl_indication = nr_ue_dl_indication;
   UE->if_inst->ul_indication = dummy_nr_ue_ul_indication;
-  UE->prb_interpolation = prb_inter;
-
+  UE->chest_freq = chest_type[0];
+  UE->chest_time = chest_type[1];
 
   UE_mac->if_module = nr_ue_if_module_init(0);
 
@@ -987,7 +1028,6 @@ int main(int argc, char **argv)
   unsigned char *estimated_output_bit;
   unsigned char *test_input_bit;
   unsigned int errors_bit    = 0;
-  uint32_t errors_scrambling = 0;
 
   initTpool("N", &(nrUE_params.Tpool), false);
 
@@ -1028,6 +1068,7 @@ int main(int argc, char **argv)
   nr_ue_phy_config_request(&UE_mac->phy_config);
   //NR_COMMON_channels_t *cc = RC.nrmac[0]->common_channels;
   snrRun = 0;
+  int n_errs = 0;
 
   gNB->threadPool = (tpool_t*)malloc(sizeof(tpool_t));
   initTpool(gNBthreads, gNB->threadPool, true);
@@ -1061,11 +1102,9 @@ int main(int argc, char **argv)
 
     clear_pdsch_stats(gNB);
 
-    n_errors = 0;
     effRate = 0;
     //n_errors2 = 0;
     //n_alamouti = 0;
-    errors_scrambling=0;
     n_false_positive = 0;
     if (n_trials== 1) num_rounds = 1;
 
@@ -1097,16 +1136,12 @@ int main(int argc, char **argv)
       UE_harq_process->first_rx = 1;
         
       while ((round<num_rounds) && (UE_harq_process->ack==0)) {
+        round_trials[round][snrRun]++;
 
         clear_nr_nfapi_information(RC.nrmac[0], 0, frame, slot);
+        UE_info->UE_sched_ctrl.harq_processes[harq_pid].ndi = !(trial&1);
+        UE_info->UE_sched_ctrl.harq_processes[harq_pid].round = round;
 
-        UE_info->UE_sched_ctrl[0].harq_processes[harq_pid].ndi = !(trial&1);
-
-
-        UE_info->UE_sched_ctrl[0].harq_processes[harq_pid].round = round;
-        for (int i=0; i<MAX_NUM_CORESET; i++)
-          gNB_mac->pdcch_cand[i] = 0;
-      
         if (css_flag == 0) {
           nr_schedule_ue_spec(0, frame, slot);
         } else {
@@ -1117,7 +1152,7 @@ int main(int argc, char **argv)
         Sched_INFO.frame     = frame;
         Sched_INFO.slot      = slot;
         Sched_INFO.DL_req    = &gNB_mac->DL_req[0];
-        Sched_INFO.UL_tti_req    = gNB_mac->UL_tti_req_ahead[slot];
+        Sched_INFO.UL_tti_req    = gNB_mac->UL_tti_req_ahead[0];
         Sched_INFO.UL_dci_req  = NULL;
         Sched_INFO.TX_req    = &gNB_mac->TX_req[0];
         pushNotifiedFIFO(gNB->L1_tx_free,msgL1Tx);
@@ -1269,49 +1304,45 @@ int main(int argc, char **argv)
                                &phy_pdcch_config,
                                NULL);
         
-        //printf("dlsim round %d ends\n",round);
-        round++;
-      } // round
+        //----------------------------------------------------------
+        //---------------------- count errors ----------------------
+        //----------------------------------------------------------
 
-      //----------------------------------------------------------
-      //---------------------- count errors ----------------------
-      //----------------------------------------------------------
+        if (UE->dlsch[UE_proc.thread_id][0][0]->last_iteration_cnt >=
+          UE->dlsch[UE_proc.thread_id][0][0]->max_ldpc_iterations+1)
+          n_errors[round][snrRun]++;
 
-      if (UE->dlsch[UE_proc.thread_id][0][0]->last_iteration_cnt >=
-        UE->dlsch[UE_proc.thread_id][0][0]->max_ldpc_iterations+1)
-        n_errors++;
+        NR_UE_PDSCH **pdsch_vars = UE->pdsch_vars[UE_proc.thread_id];
+        int16_t *UE_llr = pdsch_vars[0]->llr[0];
 
-      //NR_UE_PDSCH **pdsch_vars = UE->pdsch_vars[UE_proc.thread_id];
-      //int16_t *UE_llr = pdsch_vars[0]->llr[0];
+        TBS                  = UE_harq_process->TBS;//rel15->TBSize[0];
+        uint16_t length_dmrs = get_num_dmrs(rel15->dlDmrsSymbPos);
+        uint16_t nb_rb       = rel15->rbSize;
+        uint8_t  nb_re_dmrs  = rel15->dmrsConfigType == NFAPI_NR_DMRS_TYPE1 ? 6*UE_harq_process->n_dmrs_cdm_groups : 4*UE_harq_process->n_dmrs_cdm_groups;
+        uint8_t  mod_order   = rel15->qamModOrder[0];
+        uint8_t  nb_symb_sch = rel15->NrOfSymbols;
 
-      TBS                  = UE_harq_process->TBS;//rel15->TBSize[0];
-      uint16_t length_dmrs = get_num_dmrs(rel15->dlDmrsSymbPos);
-      uint16_t nb_rb       = rel15->rbSize;
-      uint8_t  nb_re_dmrs  = rel15->dmrsConfigType == NFAPI_NR_DMRS_TYPE1 ? 6*UE_harq_process->n_dmrs_cdm_groups : 4*UE_harq_process->n_dmrs_cdm_groups;
-      uint8_t  mod_order   = rel15->qamModOrder[0];
-      uint8_t  nb_symb_sch = rel15->NrOfSymbols;
+        available_bits = nr_get_G(nb_rb, nb_symb_sch, nb_re_dmrs, length_dmrs, mod_order, rel15->nrOfLayers);
+        if(pdu_bit_map & 0x1) {
+          available_bits-= (ptrsSymbPerSlot * ptrsRePerSymb *rel15->nrOfLayers* 2);
+          printf("[DLSIM][PTRS] Available bits are: %5u, removed PTRS bits are: %5u \n",available_bits, (ptrsSymbPerSlot * ptrsRePerSymb *rel15->nrOfLayers* 2) );
+        }
 
-      available_bits = nr_get_G(nb_rb, nb_symb_sch, nb_re_dmrs, length_dmrs, mod_order, rel15->nrOfLayers);
-      if(pdu_bit_map & 0x1) {
-        available_bits-= (ptrsSymbPerSlot * ptrsRePerSymb *rel15->nrOfLayers* 2);
-        LOG_D(PHY,"[DLSIM][PTRS] Available bits are: %5u, removed PTRS bits are: %5u \n",available_bits, (ptrsSymbPerSlot * ptrsRePerSymb *rel15->nrOfLayers* 2) );
-      }
+        for (i = 0; i < available_bits; i++) {
+          if(((gNB_dlsch->harq_process.f[i] == 0) && (UE_llr[i] <= 0)) ||
+             ((gNB_dlsch->harq_process.f[i] == 1) && (UE_llr[i] >= 0)))
+          {
+            if(errors_scrambling[round][snrRun] == 0) {
+              LOG_D(PHY,"First bit in error in unscrambling = %d\n",i);
+            }
+            errors_scrambling[round][snrRun]++;
+          }
+        }
 
-      /*
-      for (i = 0; i < available_bits; i++) {
-
-	if(((gNB_dlsch->harq_process.f[i] == 0) && (UE_llr[i] <= 0)) ||
-	   ((gNB_dlsch->harq_process.f[i] == 1) && (UE_llr[i] >= 0)))
-	  {
-	    if(errors_scrambling == 0) {
-	      LOG_D(PHY,"\n");
-	      LOG_D(PHY,"First bit in error in unscrambling = %d\n",i);
-	    }
-	    errors_scrambling++;
-	  }
+        //printf("dlsim round %d ends\n",round);
+        round++;
+      } // round
 
-      }
-      */
       for (i = 0; i < TBS; i++) {
 
 	estimated_output_bit[i] = (UE_harq_process->b[i/8] & (1 << (i & 7))) >> (i & 7);
@@ -1319,19 +1350,14 @@ int main(int argc, char **argv)
 	
 	if (estimated_output_bit[i] != test_input_bit[i]) {
 	  if(errors_bit == 0)
-	    LOG_D(PHY,"First bit in error in decoding = %d (errors scrambling %d)\n",i,errors_scrambling);
+	    LOG_D(PHY,"First bit in error in decoding = %d\n",i);
 	  errors_bit++;
 	}
 	
       }
       
       ////////////////////////////////////////////////////////////
-      
-      if (errors_scrambling > 0) {
-	if (n_trials == 1)
-	  printf("errors_scrambling = %u/%u (trial %d)\n", errors_scrambling, available_bits,trial);
-      }
-      
+
       if (errors_bit > 0) {
 	n_false_positive++;
 	if (n_trials == 1)
@@ -1341,18 +1367,48 @@ int main(int argc, char **argv)
       if (UE_harq_process->ack==1) effRate += ((float)TBS)/round;
     } // noise trials
 
-    blerStats[snrRun] = (float) n_errors / (float) n_trials;
     roundStats[snrRun]/=((float)n_trials);
-    berStats[snrRun] = (double)errors_scrambling/available_bits/n_trials;
+
+    blerStats[0][snrRun] = (double)n_errors[0][snrRun]/round_trials[0][snrRun];
+    blerStats[1][snrRun] = (double)n_errors[1][snrRun]/round_trials[1][snrRun];
+    blerStats[2][snrRun] = (double)n_errors[2][snrRun]/round_trials[2][snrRun];
+    blerStats[3][snrRun] = (double)n_errors[3][snrRun]/round_trials[3][snrRun];
+
+    berStats[0][snrRun] = (double)errors_scrambling[0][snrRun]/available_bits/round_trials[0][snrRun];
+    berStats[1][snrRun] = (double)errors_scrambling[1][snrRun]/available_bits/round_trials[1][snrRun];
+    berStats[2][snrRun] = (double)errors_scrambling[2][snrRun]/available_bits/round_trials[2][snrRun];
+    berStats[3][snrRun] = (double)errors_scrambling[3][snrRun]/available_bits/round_trials[3][snrRun];
+
     effRate /= n_trials;
     printf("*****************************************\n");
-    printf("SNR %f, (false positive %f)\n", SNR,
-           (float) n_errors / (float) n_trials);
-    printf("*****************************************\n");
+    printf("SNR %f: n_errors (%d/%d,%d/%d,%d/%d,%d/%d) (negative CRC), false_positive %d/%d, errors_scrambling (%u/%u,%u/%u,%u/%u,%u/%u\n",
+           SNR,
+           n_errors[0][snrRun], round_trials[0][snrRun],
+           n_errors[1][snrRun], round_trials[1][snrRun],
+           n_errors[2][snrRun], round_trials[2][snrRun],
+           n_errors[3][snrRun], round_trials[3][snrRun],
+           n_false_positive, n_trials,
+           errors_scrambling[0][snrRun], available_bits*round_trials[0][snrRun],
+           errors_scrambling[1][snrRun], available_bits*round_trials[1][snrRun],
+           errors_scrambling[2][snrRun], available_bits*round_trials[2][snrRun],
+           errors_scrambling[3][snrRun], available_bits*round_trials[3][snrRun]);
     printf("\n");
     dump_pdsch_stats(stdout,gNB);
-    printf("SNR %f : n_errors (negative CRC) = %d/%d, Avg round %.2f, Channel BER %e, BLER %.2f, Eff Rate %.4f bits/slot, Eff Throughput %.2f, TBS %u bits/slot\n",
-           SNR, n_errors, n_trials,roundStats[snrRun],berStats[snrRun],blerStats[snrRun],effRate,effRate/TBS*100,TBS);
+    printf("SNR %f: Channel BLER (%e,%e,%e,%e), Channel BER (%e,%e,%e,%e) Avg round %.2f, Eff Rate %.4f bits/slot, Eff Throughput %.2f, TBS %u bits/slot\n",
+           SNR,
+           blerStats[0][snrRun],
+           blerStats[1][snrRun],
+           blerStats[2][snrRun],
+           blerStats[3][snrRun],
+           berStats[0][snrRun],
+           berStats[1][snrRun],
+           berStats[2][snrRun],
+           berStats[3][snrRun],
+           roundStats[snrRun],
+           effRate,
+           effRate/TBS*100,
+           TBS);
+    printf("*****************************************\n");
     printf("\n");
 
     if (print_perf==1) {
@@ -1412,6 +1468,7 @@ int main(int argc, char **argv)
       LOG_M("rxsig0.m","rxs0", UE->common_vars.rxdata[0], frame_length_complex_samples, 1, 1);
       if (UE->frame_parms.nb_antennas_rx>1)
 	LOG_M("rxsig1.m","rxs1", UE->common_vars.rxdata[1], frame_length_complex_samples, 1, 1);
+      LOG_M("rxF0.m","rxF0", UE->common_vars.common_vars_rx_data_per_thread[UE_proc.thread_id].rxdataF[0], frame_parms->samples_per_slot_wCP, 1, 1);
       LOG_M("chestF0.m","chF0",&UE->pdsch_vars[0][0]->dl_ch_estimates_ext[0][0],g_rbSize*12*14,1,1);
       write_output("rxF_comp.m","rxFc",&UE->pdsch_vars[0][0]->rxdataF_comp0[0][0],N_RB_DL*12*14,1,1);
       LOG_M("rxF_llr.m","rxFllr",UE->pdsch_vars[UE_proc.thread_id][0]->llr[0],available_bits,1,0);
@@ -1425,6 +1482,7 @@ int main(int argc, char **argv)
 
     snrStats[snrRun] = SNR;
     snrRun++;
+    n_errs = n_errors[0][snrRun];
   } // NSR
 
   LOG_M("dlsimStats.m","SNR",snrStats,snrRun,1,7);
@@ -1468,8 +1526,8 @@ int main(int argc, char **argv)
 
   if (scg_fd)
     fclose(scg_fd);
-  return(n_errors);
-  
+
+  return n_errs;
 }
 
 
diff --git a/openair1/SIMULATION/NR_PHY/nr_dummy_functions.c b/openair1/SIMULATION/NR_PHY/nr_dummy_functions.c
index 2d1fc597557..75e3d998ff9 100644
--- a/openair1/SIMULATION/NR_PHY/nr_dummy_functions.c
+++ b/openair1/SIMULATION/NR_PHY/nr_dummy_functions.c
@@ -21,6 +21,8 @@ nfapi_mode_t nfapi_mod;
 nfapi_mode_t nfapi_getmode(void) {
   return nfapi_mod;
 }
+void nfapi_setmode(nfapi_mode_t nfapi_mode) {}
+
 int dummy_nr_ue_dl_indication(nr_downlink_indication_t *dl_info)            { return(0);  }
 int dummy_nr_ue_ul_indication(nr_uplink_indication_t *ul_info)              { return(0);  }
 void nr_fill_dl_indication(nr_downlink_indication_t *dl_ind,
@@ -38,4 +40,4 @@ void nr_fill_rx_indication(fapi_nr_rx_indication_t *rx_ind,
                            NR_UE_DLSCH_t *dlsch1,
                            uint16_t n_pdus,
                            UE_nr_rxtx_proc_t *proc,
-			   void * typeSpecific ) {}
+                           void *typeSpecific ) {}
diff --git a/openair1/SIMULATION/NR_PHY/pbchsim.c b/openair1/SIMULATION/NR_PHY/pbchsim.c
index 41ed64ae5f0..2670b789171 100644
--- a/openair1/SIMULATION/NR_PHY/pbchsim.c
+++ b/openair1/SIMULATION/NR_PHY/pbchsim.c
@@ -67,7 +67,10 @@ openair0_config_t openair0_cfg[MAX_CARDS];
 uint8_t const nr_rv_round_map[4] = {0, 2, 3, 1};
 
 uint64_t get_softmodem_optmask(void) {return 0;}
-softmodem_params_t *get_softmodem_params(void) {return 0;}
+static softmodem_params_t softmodem_params;
+softmodem_params_t *get_softmodem_params(void) {
+  return &softmodem_params;
+}
 
 void init_downlink_harq_status(NR_DL_UE_HARQ_t *dl_harq) {}
 
@@ -172,8 +175,10 @@ int main(int argc, char **argv)
   uint8_t transmission_mode = 1,n_tx=1,n_rx=1;
   uint16_t Nid_cell=0;
   uint64_t SSB_positions=0x01;
+  int ssb_subcarrier_offset = 0;
 
   channel_desc_t *gNB2UE;
+  get_softmodem_params()->sa = 1;
 
   //uint8_t extended_prefix_flag=0;
   //int8_t interf1=-21,interf2=-21;
@@ -215,7 +220,7 @@ int main(int argc, char **argv)
     exit_fun("[NR_PBCHSIM] Error, configuration module init failed\n");
   }
 
-  while ((c = getopt (argc, argv, "F:g:hIL:m:M:n:N:o:P:r:R:s:S:x:y:z:")) != -1) {
+  while ((c = getopt (argc, argv, "F:g:hIL:m:M:n:N:o:O:P:r:R:s:S:x:y:z:")) != -1) {
     switch (c) {
     /*case 'f':
       write_output_file=1;
@@ -328,6 +333,10 @@ int main(int argc, char **argv)
       Nid_cell = atoi(optarg);
       break;
 
+    case 'O':
+      ssb_subcarrier_offset = atoi(optarg);
+      break;
+
     case 'o':
       cfo = atof(optarg);
 #ifdef DEBUG_NR_PBCHSIM
@@ -430,6 +439,7 @@ int main(int argc, char **argv)
       printf("-n Number of frames to simulate\n");
       printf("-N Nid_cell\n");
       printf("-o Carrier frequency offset in Hz\n");
+      printf("-O SSB subcarrier offset\n");
       //printf("-O oversampling factor (1,2,4,8,16)\n");
       //printf("-p Use extended prefix mode\n");
       printf("-P PBCH phase, allowed values 0-3\n");
@@ -470,10 +480,11 @@ int main(int argc, char **argv)
   frame_parms->Nid_cell = Nid_cell;
   frame_parms->nushift = Nid_cell%4;
   frame_parms->ssb_type = nr_ssb_type_C;
+  frame_parms->freq_range = mu<2 ? nr_FR1 : nr_FR2;
 
   nr_phy_config_request_sim_pbchsim(gNB,N_RB_DL,N_RB_DL,mu,Nid_cell,SSB_positions);
   phy_init_nr_gNB(gNB,0,1);
-  nr_set_ssb_first_subcarrier(&gNB->gNB_config,frame_parms);
+  frame_parms->ssb_start_subcarrier = 12 * gNB->gNB_config.ssb_table.ssb_offset_point_a.value + ssb_subcarrier_offset;
 
   uint8_t n_hf = 0;
   int cyclic_prefix_type = NFAPI_CP_NORMAL;
@@ -575,8 +586,6 @@ int main(int argc, char **argv)
   if (run_initial_sync==1)  UE->is_synchronized = 0;
   else                      UE->is_synchronized = 1;
                       
-  UE->perfect_ce = 0;
-
   if(eps!=0.0)
 	UE->UE_fo_compensation = 1; // if a frequency offset is set then perform fo estimation and compensation
 
@@ -594,8 +603,12 @@ int main(int argc, char **argv)
     for (i=0; i<frame_parms->Lmax; i++) {
       if((SSB_positions >> i) & 0x01) {
 
+        const int sc_offset = frame_parms->freq_range == nr_FR1 ? ssb_subcarrier_offset<<mu : ssb_subcarrier_offset;
+        const int prb_offset = frame_parms->freq_range == nr_FR1 ? gNB->gNB_config.ssb_table.ssb_offset_point_a.value<<mu : gNB->gNB_config.ssb_table.ssb_offset_point_a.value << (mu - 2);
         msgDataTx.ssb[i].ssb_pdu.ssb_pdu_rel15.bchPayload = 0x55dd33;
         msgDataTx.ssb[i].ssb_pdu.ssb_pdu_rel15.SsbBlockIndex = i;
+        msgDataTx.ssb[i].ssb_pdu.ssb_pdu_rel15.SsbSubcarrierOffset = sc_offset;
+        msgDataTx.ssb[i].ssb_pdu.ssb_pdu_rel15.ssbOffsetPointA = prb_offset;
 
         start_symbol = nr_get_ssb_start_symbol(frame_parms,i);
         int slot = start_symbol/14;
@@ -762,8 +775,8 @@ int main(int argc, char **argv)
 	if (ret<0) n_errors++;
       }
       else {
-	UE_nr_rxtx_proc_t proc={0};
-  NR_UE_PDCCH_CONFIG phy_pdcch_config={0};
+        UE_nr_rxtx_proc_t proc={0};
+        NR_UE_PDCCH_CONFIG phy_pdcch_config={0};
 
 	UE->rx_offset=0;
 	uint8_t ssb_index = 0;
diff --git a/openair1/SIMULATION/NR_PHY/prachsim.c b/openair1/SIMULATION/NR_PHY/prachsim.c
index 325cbb1eccf..76776ce1101 100644
--- a/openair1/SIMULATION/NR_PHY/prachsim.c
+++ b/openair1/SIMULATION/NR_PHY/prachsim.c
@@ -92,9 +92,17 @@ int oai_nfapi_nr_rach_indication(nfapi_nr_rach_indication_t *ind) { return(0);
 //Fixme: Uniq dirty DU instance, by global var, datamodel need better management
 instance_t DUuniqInstance=0;
 instance_t CUuniqInstance=0;
-teid_t newGtpuCreateTunnel(instance_t instance, rnti_t rnti, int incoming_bearer_id, int outgoing_bearer_id, teid_t outgoing_teid,
-                           transport_layer_addr_t remoteAddr, int port, gtpCallback callBack) {
-return 0;
+teid_t newGtpuCreateTunnel(instance_t instance,
+                           rnti_t rnti,
+                           int incoming_bearer_id,
+                           int outgoing_bearer_id,
+                           teid_t outgoing_teid,
+                           int qfi,
+                           transport_layer_addr_t remoteAddr,
+                           int port,
+                           gtpCallback callBack,
+                           gtpCallbackSDAP callBackSDAP) {
+  return 0;
 }
 
 int newGtpuDeleteAllTunnels(instance_t instance, rnti_t rnti) {
@@ -240,7 +248,7 @@ int main(int argc, char **argv){
   int i, l, aa, aarx, **txdata, trial, n_frames = 1, prach_start, rx_prach_start; //, ntrials=1;
   int N_RB_UL = 106, delay = 0, NCS_config = 13, rootSequenceIndex = 1, threequarter_fs = 0, mu = 1, fd_occasion = 0, loglvl = OAILOG_INFO, numRA = 0, prachStartSymbol = 0;
   uint8_t snr1set = 0, ue_speed1set = 0, transmission_mode = 1, n_tx = 1, n_rx = 1, awgn_flag = 0, msg1_frequencystart = 0, num_prach_fd_occasions = 1, prach_format=0;
-  uint8_t frame = 1, slot=19, slot_gNB=19, config_index = 98, prach_sequence_length = 1, restrictedSetConfig = 0, N_dur, N_t_slot, start_symbol;
+  uint8_t config_index = 98, prach_sequence_length = 1, restrictedSetConfig = 0, N_dur, N_t_slot, start_symbol;
   uint16_t Nid_cell = 0, preamble_tx = 0, preamble_delay, format, format0, format1;
   uint32_t tx_lev = 10000, prach_errors = 0; //,tx_lev_dB;
   uint64_t SSB_positions = 0x01;
@@ -536,7 +544,7 @@ int main(int argc, char **argv){
   frame_parms->N_RB_UL          = N_RB_UL;
   frame_parms->threequarter_fs  = threequarter_fs;
   frame_parms->frame_type       = TDD;
-  frame_parms->freq_range       = (mu==1 ? nr_FR1 : nr_FR2);
+  frame_parms->freq_range       = (mu != 3 ? nr_FR1 : nr_FR2);
   frame_parms->numerology_index = mu;
 
   nr_phy_config_request_sim(gNB, N_RB_UL, N_RB_UL, mu, Nid_cell, SSB_positions);
@@ -546,9 +554,11 @@ int main(int argc, char **argv){
 				       frame_parms->numerology_index,
 				       frame_parms->N_RB_UL*(180e3)*(1 << frame_parms->numerology_index));
 
-  uint8_t subframe = slot/frame_parms->slots_per_subframe;
+  uint8_t frame = 1;
+  uint8_t subframe = 9;
+  uint8_t slot = 10 * frame_parms->slots_per_subframe - 1;
   
-  if (config_index<67 && mu==1)  { prach_sequence_length=0; slot = subframe*2; slot_gNB = 1+(subframe*2); }
+  if (config_index<67 && mu != 3)  { prach_sequence_length=0; slot = subframe * frame_parms->slots_per_subframe; }
   uint16_t N_ZC = prach_sequence_length == 0 ? 839 : 139;
 
   printf("Config_index %d, prach_sequence_length %d\n",config_index,prach_sequence_length);
@@ -569,9 +579,11 @@ int main(int argc, char **argv){
   ru->gNB_list[0]    = gNB;
   gNB->gNB_config.carrier_config.num_tx_ant.value = 1;
   gNB->gNB_config.carrier_config.num_rx_ant.value = 1;
-  if (mu==1)
+  if (mu == 0)
+    gNB->gNB_config.tdd_table.tdd_period.value = 7;
+  else if (mu == 1)
     gNB->gNB_config.tdd_table.tdd_period.value = 6;
-  else if (mu==3)
+  else if (mu == 3)
     gNB->gNB_config.tdd_table.tdd_period.value = 3;
   else {
     printf("unsupported numerology %d\n",mu);
@@ -585,7 +597,7 @@ int main(int argc, char **argv){
 
   int ret = get_nr_prach_info_from_index(config_index,
 					 (int)frame,
-					 (int)slot_gNB,
+					 (int)slot,
 					 absoluteFrequencyPointA,
 					 mu,
 					 frame_parms->frame_type,
@@ -717,12 +729,7 @@ int main(int argc, char **argv){
   bw = N_RB_UL*(180e3)*(1 << frame_parms->numerology_index);
   AssertFatal(bw<=122.88e6,"Illegal channel bandwidth %f (mu %d,N_RB_UL %d)\n", bw, frame_parms->numerology_index, N_RB_UL);
 
-  if (bw <= 30.72e6)
-    fs = 30.72e6;
-  else if (bw <= 61.44e6)
-    fs = 61.44e6;
-  else if (bw <= 122.88e6)
-    fs = 122.88e6;
+  fs = frame_parms->samples_per_subframe * 1e3;
 
   LOG_I(PHY,"Running with bandwidth %f Hz, fs %f samp/s, FRAME_LENGTH_COMPLEX_SAMPLES %d\n",bw,fs,FRAME_LENGTH_COMPLEX_SAMPLES);
 
diff --git a/openair1/SIMULATION/NR_PHY/pucchsim.c b/openair1/SIMULATION/NR_PHY/pucchsim.c
index b6dc3d8f11e..80a638db73e 100644
--- a/openair1/SIMULATION/NR_PHY/pucchsim.c
+++ b/openair1/SIMULATION/NR_PHY/pucchsim.c
@@ -47,12 +47,13 @@
 #include "openair1/SIMULATION/NR_PHY/nr_unitary_defs.h"
 #include "openair1/SIMULATION/NR_PHY/nr_dummy_functions.c"
 
-
+THREAD_STRUCT thread_struct;
 PHY_VARS_gNB *gNB;
 PHY_VARS_NR_UE *UE;
 RAN_CONTEXT_t RC;
 openair0_config_t openair0_cfg[MAX_CARDS];
 int32_t uplink_frequency_offset[MAX_NUM_CCs][4];
+uint64_t downlink_frequency[MAX_NUM_CCs][4];
 
 double cpuf;
 //uint8_t nfapi_mode = 0;
@@ -475,7 +476,6 @@ int main(int argc, char **argv)
   UE = calloc(1,sizeof(PHY_VARS_NR_UE));
   memcpy(&UE->frame_parms,frame_parms,sizeof(NR_DL_FRAME_PARMS));
   UE->frame_parms.nb_antennas_rx=1;
-  UE->perfect_ce = 0;
 
   if(eps!=0.0)
     UE->UE_fo_compensation = 1; // if a frequency offset is set then perform fo estimation and compensation
@@ -640,6 +640,7 @@ int main(int argc, char **argv)
         pucch_pdu.initial_cyclic_shift  = 0;
         pucch_pdu.start_symbol_index    = startingSymbolIndex;
         pucch_pdu.prb_start             = startingPRB;
+        pucch_pdu.prb_size              = 1;
         pucch_pdu.bwp_start             = 0;
         pucch_pdu.bwp_size              = N_RB_DL;
         if (nrofSymbols>1) {
diff --git a/openair1/SIMULATION/NR_PHY/ulschsim.c b/openair1/SIMULATION/NR_PHY/ulschsim.c
index f6227e17697..53924242857 100644
--- a/openair1/SIMULATION/NR_PHY/ulschsim.c
+++ b/openair1/SIMULATION/NR_PHY/ulschsim.c
@@ -47,13 +47,16 @@
 #include "openair1/SIMULATION/NR_PHY/nr_unitary_defs.h"
 #include "openair1/SIMULATION/NR_PHY/nr_dummy_functions.c"
 #include "common/utils/threadPool/thread-pool.h"
+#include "openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h"
 
 //#define DEBUG_NR_ULSCHSIM
 
+THREAD_STRUCT thread_struct;
 PHY_VARS_gNB *gNB;
 PHY_VARS_NR_UE *UE;
 RAN_CONTEXT_t RC;
 int32_t uplink_frequency_offset[MAX_NUM_CCs][4];
+uint64_t downlink_frequency[MAX_NUM_CCs][4];
 
 void init_downlink_harq_status(NR_DL_UE_HARQ_t *dl_harq) {}
 
@@ -137,6 +140,8 @@ int main(int argc, char **argv)
   uint16_t nb_symb_sch = 12;
   uint16_t nb_rb = 50;
   uint8_t Imcs = 9;
+  uint8_t Nl = 1;
+  uint8_t max_ldpc_iterations = 5;
 
   double DS_TDL = .03;
 
@@ -150,7 +155,7 @@ int main(int argc, char **argv)
   randominit(0);
 
   //while ((c = getopt(argc, argv, "df:hpg:i:j:n:l:m:r:s:S:y:z:M:N:F:R:P:")) != -1) {
-  while ((c = getopt(argc, argv, "hg:n:s:S:py:z:M:N:R:F:m:l:r:")) != -1) {
+  while ((c = getopt(argc, argv, "hg:n:s:S:py:z:M:N:R:F:m:l:r:W:")) != -1) {
     switch (c) {
       /*case 'f':
          write_output_file = 1;
@@ -251,7 +256,7 @@ int main(int argc, char **argv)
       case 'y':
         n_tx = atoi(optarg);
 
-        if ((n_tx == 0) || (n_tx > 2)) {
+        if ((n_tx == 0) || (n_tx > 4)) {
           printf("Unsupported number of TX antennas %d. Exiting.\n", n_tx);
           exit(-1);
         }
@@ -261,7 +266,7 @@ int main(int argc, char **argv)
       case 'z':
         n_rx = atoi(optarg);
 
-        if ((n_rx == 0) || (n_rx > 2)) {
+        if ((n_rx == 0) || (n_rx > 4)) {
           printf("Unsupported number of RX antennas %d. Exiting.\n", n_rx);
           exit(-1);
         }
@@ -299,6 +304,10 @@ int main(int argc, char **argv)
           printf("Illegal PBCH phase (0-3) got %d\n", pbch_phase);
         break;*/
 
+      case 'W':
+        Nl = atoi(optarg);
+      break;
+
       case 'm':
         Imcs = atoi(optarg);
 #ifdef DEBUG_NR_ULSCHSIM
@@ -335,13 +344,14 @@ int main(int argc, char **argv)
           printf("-z Number of RX antennas used in UE\n");
           //printf("-i Relative strength of first intefering eNB (in dB) - cell_id mod 3 = 1\n");
           //printf("-j Relative strength of second intefering eNB (in dB) - cell_id mod 3 = 2\n");
+          printf("-W number of layer\n");
           printf("-M Multiple SSB positions in burst\n");
           printf("-N Nid_cell\n");
           printf("-R N_RB_UL\n");
           printf("-F Input filename (.txt format) for RX conformance testing\n");
-          printf("-m\n");
-          printf("-l\n");
-          printf("-r\n");
+          printf("-m MCS\n");
+          printf("-l number of symbol\n");
+          printf("-r number of RB\n");
           //printf("-O oversampling factor (1,2,4,8,16)\n");
           //printf("-A Interpolation_filname Run with Abstraction to generate Scatter plot using interpolation polynomial in file\n");
           //printf("-C Generate Calibration information for Abstraction (effective SNR adjustment to remove Pe bias w.r.t. AWGN)\n");
@@ -359,8 +369,8 @@ int main(int argc, char **argv)
     snr1 = snr0 + 10;
 
   gNB2UE = new_channel_desc_scm(n_tx,
-		                n_rx,
-				channel_model,
+                                n_rx,
+                                channel_model,
                                 61.44e6, //N_RB2sampling_rate(N_RB_DL),
                                 40e6, //N_RB2channel_bandwidth(N_RB_DL),
                                 DS_TDL,
@@ -383,15 +393,18 @@ int main(int argc, char **argv)
   initTpool(tp_param, gNB->threadPool, true);
   initNotifiedFIFO(gNB->respDecode);
   frame_parms = &gNB->frame_parms; //to be initialized I suppose (maybe not necessary for PBCH)
-  frame_parms->nb_antennas_tx = n_tx;
-  frame_parms->nb_antennas_rx = n_rx;
   frame_parms->N_RB_DL = N_RB_DL;
   frame_parms->N_RB_UL = N_RB_UL;
   frame_parms->Ncp = extended_prefix_flag ? EXTENDED : NORMAL;
+  gNB->max_ldpc_iterations = max_ldpc_iterations;
+
   crcTableInit();
 
   memcpy(&gNB->frame_parms, frame_parms, sizeof(NR_DL_FRAME_PARMS));
 
+  gNB->frame_parms.nb_antennas_tx = 1;
+  gNB->frame_parms.nb_antennas_rx = n_rx;
+
   nr_phy_config_request_sim(gNB, N_RB_UL, N_RB_UL, mu, Nid_cell, SSB_positions);
 
   phy_init_nr_gNB(gNB, 0, 1); //lowmem
@@ -400,6 +413,9 @@ int main(int argc, char **argv)
   UE = malloc(sizeof(PHY_VARS_NR_UE));
   memcpy(&UE->frame_parms, frame_parms, sizeof(NR_DL_FRAME_PARMS));
 
+  UE->frame_parms.nb_antennas_tx = n_tx;
+  UE->frame_parms.nb_antennas_rx = 1;
+
   //phy_init_nr_top(frame_parms);
   if (init_nr_ue_signal(UE, 1) != 0) {
     printf("Error at UE NR initialisation.\n");
@@ -407,7 +423,7 @@ int main(int argc, char **argv)
   }
 
   for (sf = 0; sf < 2; sf++) {
-    UE->ulsch[sf][0] = new_nr_ue_ulsch(N_RB_UL, 8);
+    UE->ulsch[sf][0] = new_nr_ue_ulsch(N_RB_UL, 8, frame_parms);
     if (!UE->ulsch[sf][0]) {
       printf("Can't get ue ulsch structures.\n");
       exit(-1);
@@ -421,8 +437,7 @@ int main(int argc, char **argv)
   uint8_t length_dmrs = 1;
   uint8_t N_PRB_oh;
   uint16_t N_RE_prime,code_rate;
-  unsigned char mod_order;
-  uint8_t Nl = 1;
+  unsigned char mod_order;  
   uint8_t rvidx = 0;
   uint8_t UE_id = 0;
 
@@ -432,9 +447,12 @@ int main(int argc, char **argv)
 
   NR_UE_ULSCH_t *ulsch_ue = UE->ulsch[0][0];
 
+  if ((Nl==4)||(Nl==3))
+    nb_re_dmrs = nb_re_dmrs*2;
+
   mod_order = nr_get_Qm_ul(Imcs, 0);
   code_rate = nr_get_code_rate_ul(Imcs, 0);
-  available_bits = nr_get_G(nb_rb, nb_symb_sch, nb_re_dmrs, length_dmrs, mod_order, 1);
+  available_bits = nr_get_G(nb_rb, nb_symb_sch, nb_re_dmrs, length_dmrs, mod_order, Nl);
   TBS = nr_compute_tbs(mod_order,code_rate, nb_rb, nb_symb_sch, nb_re_dmrs*length_dmrs, 0, 0, Nl);
 
   printf("\nAvailable bits %u TBS %u mod_order %d\n", available_bits, TBS, mod_order);
@@ -447,7 +465,7 @@ int main(int argc, char **argv)
   rel15_ul->pusch_data.rv_index = rvidx;
   rel15_ul->nrOfLayers          = Nl;
   rel15_ul->target_code_rate    = code_rate;
-  rel15_ul->pusch_data.tb_size  = TBS/8;
+  rel15_ul->pusch_data.tb_size  = TBS>>3;
   ///////////////////////////////////////////////////
 
   double modulated_input[16 * 68 * 384]; // [hna] 16 segments, 68*Zc
@@ -474,7 +492,9 @@ int main(int argc, char **argv)
   harq_process_ul_ue->pusch_pdu.nr_of_symbols = nb_symb_sch;
   harq_process_ul_ue->num_of_mod_symbols = N_RE_prime*nb_rb*nb_codewords;
   harq_process_ul_ue->pusch_pdu.pusch_data.rv_index = rvidx;
-  harq_process_ul_ue->pusch_pdu.pusch_data.tb_size  = TBS/8;
+  harq_process_ul_ue->pusch_pdu.pusch_data.tb_size  = TBS>>3;
+  harq_process_ul_ue->pusch_pdu.target_code_rate = code_rate;
+  harq_process_ul_ue->pusch_pdu.qam_mod_order = mod_order;
   unsigned char *test_input = harq_process_ul_ue->a;
 
   ///////////
@@ -610,7 +630,8 @@ int main(int argc, char **argv)
   }
 
   for (sf = 0; sf < 2; sf++)
-    free_nr_ue_ulsch(&UE->ulsch[sf][0], N_RB_UL);
+    free_nr_ue_ulsch(&UE->ulsch[sf][0], N_RB_UL, frame_parms);
+
   term_nr_ue_signal(UE, 1);
   free(UE);
 
diff --git a/openair1/SIMULATION/NR_PHY/ulsim.c b/openair1/SIMULATION/NR_PHY/ulsim.c
index e70d08bdb3b..5df89283a80 100644
--- a/openair1/SIMULATION/NR_PHY/ulsim.c
+++ b/openair1/SIMULATION/NR_PHY/ulsim.c
@@ -91,14 +91,21 @@ double cpuf;
 uint64_t downlink_frequency[MAX_NUM_CCs][4];
 THREAD_STRUCT thread_struct;
 nfapi_ue_release_request_body_t release_rntis;
-uint32_t N_RB_DL = 106;
 
 //Fixme: Uniq dirty DU instance, by global var, datamodel need better management
 instance_t DUuniqInstance=0;
 instance_t CUuniqInstance=0;
-teid_t newGtpuCreateTunnel(instance_t instance, rnti_t rnti, int incoming_bearer_id, int outgoing_bearer_id, teid_t outgoing_teid,
-                           transport_layer_addr_t remoteAddr, int port, gtpCallback callBack) {
-return 0;
+teid_t newGtpuCreateTunnel(instance_t instance,
+                           rnti_t rnti,
+                           int incoming_bearer_id,
+                           int outgoing_bearer_id,
+                           teid_t outgoing_teid,
+                           int qfi,
+                           transport_layer_addr_t remoteAddr,
+                           int port,
+                           gtpCallback callBack,
+                           gtpCallbackSDAP callBackSDAP) {
+  return 0;
 }
 
 int newGtpuDeleteAllTunnels(instance_t instance, rnti_t rnti) {
@@ -303,10 +310,9 @@ int main(int argc, char **argv)
   int gNB_id = 0;
   int ap;
   int tx_offset;
-  int32_t txlev=0;
+  int32_t txlev_sum = 0, atxlev[4];
   int start_rb = 0;
   int UE_id =0; // [hna] only works for UE_id = 0 because NUMBER_OF_NR_UE_MAX is set to 1 (phy_init_nr_gNB causes segmentation fault)
-  float target_error_rate = 0.01;
   int print_perf = 0;
   cpuf = get_cpu_freq_GHz();
   int msg3_flag = 0;
@@ -314,21 +320,20 @@ int main(int argc, char **argv)
   float roundStats[100];
   double effRate[100]; 
   double effTP[100]; 
-  //float eff_tp_check = 0.7;
+  float eff_tp_check = 100;
   uint8_t snrRun;
-  int prb_inter = 0;
+  int chest_type[2] = {0};
 
   int enable_ptrs = 0;
   int modify_dmrs = 0;
   /* L_PTRS = ptrs_arg[0], K_PTRS = ptrs_arg[1] */
   int ptrs_arg[2] = {-1,-1};// Invalid values
-  /* DMRS TYPE = dmrs_arg[0], Add Pos = dmrs_arg[1] */
-  int dmrs_arg[2] = {-1,-1};// Invalid values
+  int dmrs_arg[4] = {-1,-1,-1,-1};// Invalid values
   uint16_t ptrsSymPos = 0;
   uint16_t ptrsSymbPerSlot = 0;
   uint16_t ptrsRePerSymb = 0;
 
-  uint8_t transform_precoding = 1; // 0 - ENABLE, 1 - DISABLE
+  uint8_t transform_precoding = transformPrecoder_disabled; // 0 - ENABLE, 1 - DISABLE
   uint8_t num_dmrs_cdm_grps_no_data = 1;
   uint8_t mcs_table = 0;
 
@@ -340,6 +345,8 @@ int main(int argc, char **argv)
   int ibwps=24;
   int ibwp_rboffset=41;
   int params_from_file = 0;
+  int threadCnt=0;
+  int max_ldpc_iterations = 5;
   if ( load_configmodule(argc,argv,CONFIG_ENABLECMDLINEONLY) == 0 ) {
     exit_fun("[NR_ULSIM] Error, configuration module init failed\n");
   }
@@ -350,7 +357,7 @@ int main(int argc, char **argv)
   /* initialize the sin-cos table */
    InitSinLUT();
 
-  while ((c = getopt(argc, argv, "a:b:c:d:ef:g:h:ikl:m:n:p:r:s:u:w:y:z:F:G:H:M:N:PR:S:T:U:L:Z")) != -1) {
+  while ((c = getopt(argc, argv, "a:b:c:d:ef:g:h:i:kl:m:n:p:q:r:s:t:u:w:y:z:C:F:G:H:I:M:N:PR:S:T:U:L:ZW:")) != -1) {
     printf("handling optarg %c\n",c);
     switch (c) {
 
@@ -384,8 +391,8 @@ int main(int argc, char **argv)
       scg_fd = fopen(optarg, "r");
       
       if (scg_fd == NULL) {
-	printf("Error opening %s\n", optarg);
-	exit(-1);
+        printf("Error opening %s\n", optarg);
+        exit(-1);
       }
 
       break;
@@ -443,7 +450,9 @@ int main(int argc, char **argv)
       break;
       
     case 'i':
-      prb_inter=1;
+      for(i=0; i < atoi(optarg); i++){
+        chest_type[i] = atoi(argv[optind++]);
+      }
       break;
 	
     case 'k':
@@ -458,7 +467,11 @@ int main(int argc, char **argv)
     case 'm':
       Imcs = atoi(optarg);
       break;
-      
+
+    case 'W':
+      precod_nbr_layers = atoi(optarg);
+      break;
+
     case 'n':
       n_trials = atoi(optarg);
       break;
@@ -466,7 +479,11 @@ int main(int argc, char **argv)
     case 'p':
       extended_prefix_flag = 1;
       break;
-      
+
+    case 'q':
+      mcs_table = atoi(optarg);
+      break;
+
     case 'r':
       nb_rb = atoi(optarg);
       break;
@@ -476,6 +493,10 @@ int main(int argc, char **argv)
       printf("Setting SNR0 to %f\n", snr0);
       break;
 
+    case 'C':
+      threadCnt = atoi(optarg);
+      break;
+
     case 'u':
       mu = atoi(optarg);
       break;
@@ -484,11 +505,10 @@ int main(int argc, char **argv)
       start_rb = atoi(optarg);
       break;
 
-/*
     case 't':
-      eff_tp_check = (float)atoi(optarg)/100;
+      eff_tp_check = (float)atoi(optarg);
       break;
-*/
+
       /*
 	case 'r':
 	ricean_factor = pow(10,-.1*atof(optarg));
@@ -505,32 +525,26 @@ int main(int argc, char **argv)
       
     case 'y':
       n_tx = atoi(optarg);
-      
-      if ((n_tx == 0) || (n_tx > 2)) {
-	printf("Unsupported number of tx antennas %d\n", n_tx);
-	exit(-1);
+      if ((n_tx == 0) || (n_tx > 4)) {
+        printf("Unsupported number of tx antennas %d\n", n_tx);
+        exit(-1);
       }
-      
       break;
       
     case 'z':
       n_rx = atoi(optarg);
-      
       if ((n_rx == 0) || (n_rx > 8)) {
-	printf("Unsupported number of rx antennas %d\n", n_rx);
-	exit(-1);
+        printf("Unsupported number of rx antennas %d\n", n_rx);
+        exit(-1);
       }
-      
       break;
-      
+
     case 'F':
       input_fd = fopen(optarg, "r");
-      
       if (input_fd == NULL) {
-	printf("Problem with filename %s\n", optarg);
-	exit(-1);
+        printf("Problem with filename %s\n", optarg);
+        exit(-1);
       }
-      
       break;
 
     case 'G':
@@ -541,6 +555,10 @@ int main(int argc, char **argv)
       slot = atoi(optarg);
       break;
 
+    case 'I':
+      max_ldpc_iterations = atoi(optarg);
+      break;
+
     case 'M':
      // SSB_positions = atoi(optarg);
       break;
@@ -588,40 +606,39 @@ int main(int argc, char **argv)
       break;
 
     case 'Z':
-
-      transform_precoding = 0; // enabled
+      transform_precoding = transformPrecoder_enabled;
       num_dmrs_cdm_grps_no_data = 2;
       mcs_table = 3;
-      
-      printf("NOTE: TRANSFORM PRECODING (SC-FDMA) is ENABLED in UPLINK (0 - ENABLE, 1 - DISABLE) : %d \n",  transform_precoding);
-
+      printf("NOTE: TRANSFORM PRECODING (SC-FDMA) is ENABLED in UPLINK (0 - ENABLE, 1 - DISABLE) : %d \n", transform_precoding);
       break;
 
     default:
     case 'h':
-      printf("%s -h(elp) -p(extended_prefix) -N cell_id -f output_filename -F input_filename -g channel_model -n n_frames -t Delayspread -s snr0 -S snr1 -x transmission_mode -y TXant -z RXant -i Intefrence0 -j Interference1 -A interpolation_file -C(alibration offset dB) -N CellId -Z Enable SC-FDMA in Uplink \n", argv[0]);
+      printf("%s -h(elp) -p(extended_prefix) -N cell_id -f output_filename -F input_filename -g channel_model -i Intefrence0 -j Interference1 -n n_frames -s snr0 -S snr1 -t Delayspread -x transmission_mode -y TXant -z RXant -A interpolation_file -C(alibration offset dB) -N CellId -Z Enable SC-FDMA in Uplink \n", argv[0]);
       //printf("-d Use TDD\n");
       printf("-d Introduce delay in terms of number of samples\n");
       printf("-f Number of frames to simulate\n");
       printf("-g [A,B,C,D,E,F,G] Use 3GPP SCM (A,B,C,D) or 36-101 (E-EPA,F-EVA,G-ETU) models (ignores delay spread and Ricean factor)\n");
       printf("-h This message\n");
-      printf("-i Activate PRB based averaging for channel estimation. Frequncy domain interpolation by default.\n");
+      printf("-i Change channel estimation technique. Arguments list: Number of arguments=2, Frequency domain {0:Linear interpolation, 1:PRB based averaging}, Time domain {0:Estimates of last DMRS symbol, 1:Average of DMRS symbols}. e.g. -i 2 1 0\n");
       //printf("-j Relative strength of second intefering eNB (in dB) - cell_id mod 3 = 2\n");
       printf("-s Starting SNR, runs from SNR0 to SNR0 + 10 dB if ending SNR isn't given\n");
       printf("-m MCS value\n");
       printf("-n Number of trials to simulate\n");
       printf("-p Use extended prefix mode\n");
+      printf("-q MCS table\n");
       printf("-t Delay spread for multipath channel\n");
       printf("-u Set the numerology\n");
       printf("-w Start PRB for PUSCH\n");
       //printf("-x Transmission mode (1,2,6 for the moment)\n");
-      printf("-y Number of TX antennas used in eNB\n");
-      printf("-z Number of RX antennas used in UE\n");
+      printf("-y Number of TX antennas used at UE\n");
+      printf("-z Number of RX antennas used at gNB\n");
       printf("-A Interpolation_filname Run with Abstraction to generate Scatter plot using interpolation polynomial in file\n");
       //printf("-C Generate Calibration information for Abstraction (effective SNR adjustment to remove Pe bias w.r.t. AWGN)\n");
       printf("-F Input filename (.txt format) for RX conformance testing\n");
       printf("-G Offset of samples to read from file (0 default)\n");
-      printf("-L <log level, 0(errors), 1(warning), 2(info) 3(debug) 4 (trace)>\n"); 
+      printf("-L <log level, 0(errors), 1(warning), 2(info) 3(debug) 4 (trace)>\n");
+      printf("-I Maximum LDPC decoder iterations\n");
       printf("-M Multiple SSB positions in burst\n");
       printf("-N Nid_cell\n");
       printf("-O oversampling factor (1,2,4,8,16)\n");
@@ -629,10 +646,11 @@ int main(int argc, char **argv)
       printf("-t Acceptable effective throughput (in percentage)\n");
       printf("-S Ending SNR, runs from SNR0 to SNR1\n");
       printf("-P Print ULSCH performances\n");
-      printf("-T Enable PTRS, arguments list L_PTRS{0,1,2} K_PTRS{2,4}, e.g. -T 2 0 2 \n");
-      printf("-U Change DMRS Config, arguments list DMRS TYPE{0=A,1=B} DMRS AddPos{0:3}, e.g. -U 2 0 2 \n");
+      printf("-T Enable PTRS, arguments list: Number of arguments=2 L_PTRS{0,1,2} K_PTRS{2,4}, e.g. -T 2 0 2 \n");
+      printf("-U Change DMRS Config, arguments list: Number of arguments=4, DMRS Mapping Type{0=A,1=B}, DMRS AddPos{0:3}, DMRS Config Type{1,2}, Number of CDM groups without data{1,2,3} e.g. -U 4 0 2 0 1 \n");
       printf("-Q If -F used, read parameters from file\n");
       printf("-Z If -Z is used, SC-FDMA or transform precoding is enabled in Uplink \n");
+      printf("-W Num of layer for PUSCH\n");
       exit(-1);
       break;
 
@@ -653,16 +671,37 @@ int main(int argc, char **argv)
   double sampling_frequency;
   double bandwidth;
 
-  if (N_RB_UL >= 217) sampling_frequency = 122.88;
-  else if (N_RB_UL >= 106) sampling_frequency = 61.44;
-  else if (N_RB_UL >= 32) sampling_frequency = 32.72;
-  else { printf("Need at least 106 PRBs\b"); exit(-1); }
-  if (N_RB_UL == 273) bandwidth = 100;
-  else if (N_RB_UL == 217) bandwidth = 80;
-  else if (N_RB_UL == 106) bandwidth = 40;
-  else if (N_RB_UL == 32) bandwidth = 50;
-  else { printf("Add N_RB_UL %d\n",N_RB_UL); exit(-1); }
+  if (mu == 0 && N_RB_UL == 25 ) {
+    sampling_frequency = 7.68;
+    bandwidth = 5;
+  }
+  else if (mu == 1 && N_RB_UL == 273) {
+    sampling_frequency = 122.88;
+    bandwidth = 100;
+  }
+  else if (mu == 1 && N_RB_UL == 217) {
+    sampling_frequency = 122.88;
+    bandwidth = 80;
+  }
+  else if (mu == 1 && N_RB_UL == 106) {
+    sampling_frequency = 61.44;
+    bandwidth = 40;
+  }
+  else if (mu == 1 && N_RB_UL == 24) {
+    sampling_frequency = 15.36;
+    bandwidth = 10;
+  }
+  else if (mu == 3 && N_RB_UL == 32) {
+    sampling_frequency = 61.44;
+    bandwidth = 50;
+  }
+  else {
+    printf("Add N_RB_UL %d\n",N_RB_UL);
+    exit(-1);
+  }
+
   LOG_I( PHY,"++++++++++++++++++++++++++++++++++++++++++++++%i+++++++++++++++++++++++++++++++++++++++++",loglvl);  
+
   if (openair0_cfg[0].threequarter_fs == 1) sampling_frequency*=.75;
 
   UE2gNB = new_channel_desc_scm(n_tx, n_rx, channel_model,
@@ -684,7 +723,18 @@ int main(int argc, char **argv)
   gNB->ofdm_offset_divisor = UINT_MAX;
   gNB->threadPool = (tpool_t*)malloc(sizeof(tpool_t));
   gNB->respDecode = (notifiedFIFO_t*) malloc(sizeof(notifiedFIFO_t));
-  char tp_param[] = "n";
+  initNotifiedFIFO(gNB->respDecode);
+  char tp_param[80];
+  if (threadCnt>0)
+   sprintf(tp_param,"-1");
+  else
+   tp_param[0]='n';
+  int s_offset = 0;
+  for (int icpu=1; icpu<threadCnt; icpu++) {
+    sprintf(tp_param+2+s_offset,",-1");
+    s_offset += 3;
+  }
+
   initTpool(tp_param, gNB->threadPool, false);
   initNotifiedFIFO(gNB->respDecode);
   gNB->L1_tx_free = (notifiedFIFO_t*) malloc(sizeof(notifiedFIFO_t));
@@ -703,7 +753,8 @@ int main(int argc, char **argv)
   gNB->UL_INFO.crc_ind.crc_list = (nfapi_nr_crc_t *)malloc(NB_UE_INST*sizeof(nfapi_nr_crc_t));
   gNB->UL_INFO.rx_ind.number_of_pdus = 0;
   gNB->UL_INFO.crc_ind.number_crcs = 0;
-  gNB->prb_interpolation = prb_inter;
+  gNB->max_ldpc_iterations = max_ldpc_iterations;
+  gNB->pusch_thres = -20;
   frame_parms = &gNB->frame_parms; //to be initialized I suppose (maybe not necessary for PBCH)
 
   frame_parms->N_RB_DL = N_RB_DL;
@@ -739,7 +790,8 @@ int main(int argc, char **argv)
 
   // TODO do a UECAP for phy-sim
   const gNB_RrcConfigurationReq conf = {
-    .pdsch_AntennaPorts = { .N1 = n_tx, .N2 = 1, .XP = 1 },
+    .pdsch_AntennaPorts = { .N1 = 1, .N2 = 1, .XP = 1 },
+    .pusch_AntennaPorts = n_rx,
     .minRXTXTIME = 0,
     .do_CSIRS = 0,
     .do_SRS = 0,
@@ -752,19 +804,22 @@ int main(int argc, char **argv)
   /* RRC parameter validation for secondaryCellGroup */
   fix_scd(scd);
 
-  AssertFatal((gNB->if_inst         = NR_IF_Module_init(0))!=NULL,"Cannot register interface");
+  AssertFatal((gNB->if_inst = NR_IF_Module_init(0))!=NULL,"Cannot register interface");
 
-  gNB->if_inst->NR_PHY_config_req      = nr_phy_config_request;
+  gNB->if_inst->NR_PHY_config_req = nr_phy_config_request;
   // common configuration
-  rrc_mac_config_req_gNB(0,0, conf.pdsch_AntennaPorts, n_rx, 0, 6, scc, &rrc.carrier.mib, rrc.carrier.siblock1, 0, 0, NULL);
+  rrc_mac_config_req_gNB(0, conf.pdsch_AntennaPorts, n_rx, 0, 6, scc, &rrc.carrier.mib, rrc.carrier.siblock1, 0, 0, NULL);
   // UE dedicated configuration
-  rrc_mac_config_req_gNB(0,0, conf.pdsch_AntennaPorts, n_rx, 0, 6, scc, &rrc.carrier.mib, rrc.carrier.siblock1, 1, secondaryCellGroup->spCellConfig->reconfigurationWithSync->newUE_Identity,secondaryCellGroup);
-  frame_parms->nb_antennas_tx = n_tx;
+  rrc_mac_config_req_gNB(0, conf.pdsch_AntennaPorts, n_rx, 0, 6, scc, &rrc.carrier.mib, rrc.carrier.siblock1, 1,
+                         secondaryCellGroup->spCellConfig->reconfigurationWithSync->newUE_Identity, secondaryCellGroup);
+  frame_parms->nb_antennas_tx = 1;
   frame_parms->nb_antennas_rx = n_rx;
   nfapi_nr_config_request_scf_t *cfg = &gNB->gNB_config;
-  cfg->carrier_config.num_tx_ant.value = n_tx;
+  cfg->carrier_config.num_tx_ant.value = 1;
   cfg->carrier_config.num_rx_ant.value = n_rx;
 //  nr_phy_config_request_sim(gNB,N_RB_DL,N_RB_DL,mu,0,0x01);
+  gNB->chest_freq = chest_type[0];
+  gNB->chest_time = chest_type[1];
   phy_init_nr_gNB(gNB,0,1);
   N_RB_DL = gNB->frame_parms.N_RB_DL;
 
@@ -779,6 +834,8 @@ int main(int argc, char **argv)
   PHY_vars_UE_g[0] = malloc(sizeof(PHY_VARS_NR_UE*));
   PHY_vars_UE_g[0][0] = UE;
   memcpy(&UE->frame_parms, frame_parms, sizeof(NR_DL_FRAME_PARMS));
+  UE->frame_parms.nb_antennas_tx = n_tx;
+  UE->frame_parms.nb_antennas_rx = 0;
 
   if (init_nr_ue_signal(UE, 1) != 0) {
     printf("Error at UE NR initialisation\n");
@@ -831,7 +888,7 @@ int main(int argc, char **argv)
 
   unsigned char *estimated_output_bit;
   unsigned char *test_input_bit;
-  uint32_t errors_decoding   = 0;
+  uint32_t errors_decoding = 0;
   
 
   test_input_bit       = (unsigned char *) malloc16(sizeof(unsigned char) * 16 * 68 * 384);
@@ -864,23 +921,21 @@ int main(int argc, char **argv)
 
   /* validate parameters othwerwise default values are used */
   /* -U flag can be used to set DMRS parameters*/
-  if(modify_dmrs)
-  {
+  if(modify_dmrs) {
     if(dmrs_arg[0] == 0)
-    {
       mapping_type = typeA;
-    }
     else if (dmrs_arg[0] == 1)
-    {
       mapping_type = typeB;
-    }
     /* Additional DMRS positions */
     if(dmrs_arg[1] >= 0 && dmrs_arg[1] <=3 )
-    {
       add_pos = dmrs_arg[1];
-    }
+    /* DMRS Conf Type 1 or 2 */
+    if(dmrs_arg[2] == 1)
+      dmrs_config_type = pusch_dmrs_type1;
+    else if(dmrs_arg[2] == 2)
+      dmrs_config_type = pusch_dmrs_type2;
+    num_dmrs_cdm_grps_no_data = dmrs_arg[3];
   }
-  printf("NOTE: DMRS config is modified with Mapping Type %d , Additional Position %d \n", mapping_type, add_pos );
 
   uint8_t  length_dmrs         = pusch_len1;
   uint16_t l_prime_mask        = get_l_prime(nb_symb_sch, mapping_type, add_pos, length_dmrs, start_symbol, NR_MIB__dmrs_TypeA_Position_pos2);
@@ -888,22 +943,25 @@ int main(int argc, char **argv)
   printf("num dmrs sym %d\n",number_dmrs_symbols);
   uint8_t  nb_re_dmrs          = (dmrs_config_type == pusch_dmrs_type1) ? 6 : 4;
 
-  // if transform precoding is enabled
-  if (transform_precoding == 0) {
+  if ((UE->frame_parms.nb_antennas_tx==4)&&(precod_nbr_layers==4))
+    num_dmrs_cdm_grps_no_data = 2;
+
+  if (transform_precoding == transformPrecoder_enabled) {
 
     AssertFatal(enable_ptrs == 0, "PTRS NOT SUPPORTED IF TRANSFORM PRECODING IS ENABLED\n");
 
     int8_t index = get_index_for_dmrs_lowpapr_seq((NR_NB_SC_PER_RB/2) * nb_rb);
-	  AssertFatal(index >= 0, "Num RBs not configured according to 3GPP 38.211 section 6.3.1.4. For PUSCH with transform precoding, num RBs cannot be multiple of any other primenumber other than 2,3,5\n");
+    AssertFatal(index >= 0, "Num RBs not configured according to 3GPP 38.211 section 6.3.1.4. For PUSCH with transform precoding, num RBs cannot be multiple of any other primenumber other than 2,3,5\n");
     
     dmrs_config_type = pusch_dmrs_type1;
+    nb_re_dmrs       = 6;
 
     printf("[ULSIM]: TRANSFORM PRECODING ENABLED. Num RBs: %d, index for DMRS_SEQ: %d\n", nb_rb, index);
   }
 
-  nb_re_dmrs   = nb_re_dmrs * num_dmrs_cdm_grps_no_data;
+  nb_re_dmrs = nb_re_dmrs * num_dmrs_cdm_grps_no_data;
 
-  unsigned int available_bits  = nr_get_G(nb_rb, nb_symb_sch, nb_re_dmrs, number_dmrs_symbols, mod_order, 1);
+  unsigned int available_bits  = nr_get_G(nb_rb, nb_symb_sch, nb_re_dmrs, number_dmrs_symbols, mod_order, precod_nbr_layers);
   unsigned int TBS             = nr_compute_tbs(mod_order, code_rate, nb_rb, nb_symb_sch, nb_re_dmrs * number_dmrs_symbols, 0, 0, precod_nbr_layers);
 
   
@@ -928,17 +986,12 @@ int main(int argc, char **argv)
   double ts = 1.0/(frame_parms->subcarrier_spacing * frame_parms->ofdm_symbol_size);
 
   /* -T option enable PTRS */
-  if(enable_ptrs)
-  {
+  if(enable_ptrs) {
     /* validate parameters othwerwise default values are used */
     if(ptrs_arg[0] == 0 || ptrs_arg[0] == 1 || ptrs_arg[0] == 2 )
-    {
       ptrs_time_density = ptrs_arg[0];
-    }
     if(ptrs_arg[1] == 2 || ptrs_arg[1] == 4 )
-    {
       ptrs_freq_density = ptrs_arg[1];
-    }
     pdu_bit_map |= PUSCH_PDU_BITMAP_PUSCH_PTRS;
     printf("NOTE: PTRS Enabled with L %d, K %d \n", ptrs_time_density, ptrs_freq_density );
   }
@@ -970,7 +1023,6 @@ int main(int argc, char **argv)
   int slot_length = slot_offset - frame_parms->get_samples_slot_timestamp(slot-1,frame_parms,0);
 
   if (input_fd != NULL)	{
-    AssertFatal(frame_parms->nb_antennas_rx == 1, "nb_ant != 1\n");
     // 800 samples is N_TA_OFFSET for FR1 @ 30.72 Ms/s,
     AssertFatal(frame_parms->subcarrier_spacing==30000,"only 30 kHz for file input for now (%d)\n",frame_parms->subcarrier_spacing);
   
@@ -998,18 +1050,21 @@ int main(int argc, char **argv)
       printf("harq_pid %d\n",harq_pid);
     }
     fseek(input_fd,file_offset*sizeof(int16_t)*2,SEEK_SET);
-    read_errors+=fread((void*)&gNB->common_vars.rxdata[0][slot_offset-delay],
-    sizeof(int16_t),
-    slot_length<<1,
-    input_fd);
-    if (read_errors==0) {
-      printf("error reading file\n");
-      exit(1);
+    for (int irx=0; irx<frame_parms->nb_antennas_rx; irx++) {
+      fseek(input_fd,irx*(slot_length+15)*sizeof(int16_t)*2,SEEK_SET); // matlab adds samlples to the end to emulate channel delay
+      read_errors+=fread((void*)&gNB->common_vars.rxdata[irx][slot_offset-delay],
+      sizeof(int16_t),
+      slot_length<<1,
+      input_fd);
+      if (read_errors==0) {
+        printf("error reading file\n");
+        exit(1);
+      }
+      for (int i=0;i<16;i+=2) printf("slot_offset %d : %d,%d\n",
+             slot_offset,
+             ((int16_t*)&gNB->common_vars.rxdata[irx][slot_offset])[i],
+             ((int16_t*)&gNB->common_vars.rxdata[irx][slot_offset])[1+i]);
     }
-    for (int i=0;i<16;i+=2) printf("slot_offset %d : %d,%d\n",
-				   slot_offset,
-				   ((int16_t*)&gNB->common_vars.rxdata[0][slot_offset])[i],
-				   ((int16_t*)&gNB->common_vars.rxdata[0][slot_offset])[1+i]);
 
     mod_order = nr_get_Qm_ul(Imcs, mcs_table);
     code_rate = nr_get_code_rate_ul(Imcs, mcs_table);
@@ -1054,7 +1109,7 @@ int main(int argc, char **argv)
     uint8_t round = 0;
 
     crc_status = 1;
-    errors_decoding    = 0;
+    errors_decoding = 0;
     memset((void*)roundStats,0,50*sizeof(roundStats[0]));
     while (round<max_rounds && crc_status) {
       round_trials[round][snrRun]++;
@@ -1101,12 +1156,12 @@ int main(int argc, char **argv)
       pusch_pdu->qam_mod_order = mod_order;
       pusch_pdu->transform_precoding = transform_precoding;
       pusch_pdu->data_scrambling_id = *scc->physCellId;
-      pusch_pdu->nrOfLayers = 1;
+      pusch_pdu->nrOfLayers = precod_nbr_layers;
       pusch_pdu->ul_dmrs_symb_pos = l_prime_mask;
       pusch_pdu->dmrs_config_type = dmrs_config_type;
       pusch_pdu->ul_dmrs_scrambling_id =  *scc->physCellId;
       pusch_pdu->scid = 0;
-      pusch_pdu->dmrs_ports = 1;
+      pusch_pdu->dmrs_ports = ((1<<precod_nbr_layers)-1);
       pusch_pdu->num_dmrs_cdm_grps_no_data = num_dmrs_cdm_grps_no_data;
       pusch_pdu->resource_alloc = 1; 
       pusch_pdu->rb_start = start_rb;
@@ -1126,7 +1181,7 @@ int main(int argc, char **argv)
       pusch_pdu->pusch_ptrs.ptrs_ports_list[0].ptrs_re_offset = 0;
 
       // if transform precoding is enabled
-      if (transform_precoding == 0) {
+      if (transform_precoding == transformPrecoder_enabled) {
 
         pusch_pdu->dfts_ofdm.low_papr_group_number = *scc->physCellId % 30; // U as defined in 38.211 section 6.4.1.1.1.2 
         pusch_pdu->dfts_ofdm.low_papr_sequence_number = 0;     // V as defined in 38.211 section 6.4.1.1.1.2
@@ -1173,7 +1228,9 @@ int main(int argc, char **argv)
       ul_config.ul_config_list[0].pusch_config_pdu.mcs_table = mcs_table;
       ul_config.ul_config_list[0].pusch_config_pdu.num_dmrs_cdm_grps_no_data = num_dmrs_cdm_grps_no_data;
       ul_config.ul_config_list[0].pusch_config_pdu.nrOfLayers = precod_nbr_layers;
+      ul_config.ul_config_list[0].pusch_config_pdu.dmrs_ports = ((1<<precod_nbr_layers)-1);
       ul_config.ul_config_list[0].pusch_config_pdu.absolute_delta_PUSCH = 0;
+      ul_config.ul_config_list[0].pusch_config_pdu.target_code_rate = code_rate;
 
       ul_config.ul_config_list[0].pusch_config_pdu.pusch_data.tb_size = TBS/8;
       ul_config.ul_config_list[0].pusch_config_pdu.pusch_data.new_data_indicator = trial & 0x1;
@@ -1182,13 +1239,13 @@ int main(int argc, char **argv)
 
       ul_config.ul_config_list[0].pusch_config_pdu.pusch_ptrs.ptrs_time_density = ptrs_time_density;
       ul_config.ul_config_list[0].pusch_config_pdu.pusch_ptrs.ptrs_freq_density = ptrs_freq_density;
-      ul_config.ul_config_list[0].pusch_config_pdu.pusch_ptrs.ptrs_ports_list   = (nfapi_nr_ue_ptrs_ports_t *) malloc(2*sizeof(nfapi_nr_ue_ptrs_ports_t));
+      ul_config.ul_config_list[0].pusch_config_pdu.pusch_ptrs.ptrs_ports_list = (nfapi_nr_ue_ptrs_ports_t *) malloc(2*sizeof(nfapi_nr_ue_ptrs_ports_t));
       ul_config.ul_config_list[0].pusch_config_pdu.pusch_ptrs.ptrs_ports_list[0].ptrs_re_offset = 0;
 
       ul_config.ul_config_list[0].pusch_config_pdu.transform_precoding = transform_precoding;
 
       // if transform precoding is enabled
-      if (transform_precoding == 0) {
+      if (transform_precoding == transformPrecoder_enabled) {
    
         ul_config.ul_config_list[0].pusch_config_pdu.dfts_ofdm.low_papr_group_number = *scc->physCellId % 30;// U as defined in 38.211 section 6.4.1.1.1.2 
         ul_config.ul_config_list[0].pusch_config_pdu.dfts_ofdm.low_papr_sequence_number = 0;// V as defined in 38.211 section 6.4.1.1.1.2
@@ -1216,43 +1273,83 @@ int main(int argc, char **argv)
         LOG_D(PHY, "Sending Uplink data \n");
         nr_ue_pusch_common_procedures(UE,
                                       slot,
-                                      &UE->frame_parms,1);
+                                      &UE->frame_parms,
+                                      UE->frame_parms.nb_antennas_tx);
+
 
         if (n_trials==1) {
-          LOG_M("txsig0.m","txs0", UE->common_vars.txdata[0],frame_parms->samples_per_subframe*10,1,1);
+          LOG_M("txsig0.m","txs0", &UE->common_vars.txdata[0][slot_offset],slot_length,1,1);
           LOG_M("txsig0F.m","txs0F", UE->common_vars.txdataF[0],frame_parms->ofdm_symbol_size*14,1,1);
+          if (precod_nbr_layers > 1) {
+            LOG_M("txsig1.m","txs1", &UE->common_vars.txdata[1][slot_offset],slot_length,1,1);
+            LOG_M("txsig1F.m","txs1F", UE->common_vars.txdataF[1],frame_parms->ofdm_symbol_size*14,1,1);
+            if (precod_nbr_layers==4) {
+              LOG_M("txsig2.m","txs2", &UE->common_vars.txdata[2][slot_offset],slot_length,1,1);
+              LOG_M("txsig3.m","txs3", &UE->common_vars.txdata[3][slot_offset],slot_length,1,1);
+              LOG_M("txsig2F.m","txs2F", UE->common_vars.txdataF[2],frame_parms->ofdm_symbol_size*14,1,1);
+              LOG_M("txsig3F.m","txs3F", UE->common_vars.txdataF[3],frame_parms->ofdm_symbol_size*14,1,1);
+            }
+          }
         }
         ///////////
         ////////////////////////////////////////////////////
         tx_offset = frame_parms->get_samples_slot_timestamp(slot,frame_parms,0);
-
-        txlev = signal_energy(&UE->common_vars.txdata[0][tx_offset + 5*frame_parms->ofdm_symbol_size + 4*frame_parms->nb_prefix_samples + frame_parms->nb_prefix_samples0],
+        txlev_sum = 0;
+        for (int aa=0; aa<UE->frame_parms.nb_antennas_tx; aa++) {
+          atxlev[aa] = signal_energy(&UE->common_vars.txdata[aa][tx_offset + 5*frame_parms->ofdm_symbol_size + 4*frame_parms->nb_prefix_samples + frame_parms->nb_prefix_samples0],
                               frame_parms->ofdm_symbol_size + frame_parms->nb_prefix_samples);
-      }	
-      else n_trials = 1;
 
-      if (input_fd == NULL ) {
+          txlev_sum += atxlev[aa];
 
-        sigma_dB = 10 * log10((double)txlev * ((double)frame_parms->ofdm_symbol_size/(12*nb_rb))) - SNR;;
+          if (n_trials==1) printf("txlev[%d] = %d (%f dB) txlev_sum %d\n",aa,atxlev[aa],10*log10((double)atxlev[aa]),txlev_sum);
+        }
+      }
+      else
+        n_trials = 1;
+
+      if (input_fd == NULL) {
+        // Justification of division by precod_nbr_layers:
+        // When the channel is the identity matrix, the results in terms of SNR should be almost equal for 2x2 and 4x4.
+        sigma_dB = 10 * log10((double)txlev_sum/precod_nbr_layers * ((double)frame_parms->ofdm_symbol_size/(12*nb_rb))) - SNR;;
         sigma    = pow(10,sigma_dB/10);
 
 
-        if(n_trials==1) printf("sigma %f (%f dB), txlev %f (factor %f)\n",sigma,sigma_dB,10*log10((double)txlev),(double)(double)
-                                frame_parms->ofdm_symbol_size/(12*nb_rb));
+        if(n_trials==1) printf("sigma %f (%f dB), txlev_sum %f (factor %f)\n",sigma,sigma_dB,10*log10((double)txlev_sum),(double)(double)
+                               frame_parms->ofdm_symbol_size/(12*nb_rb));
 
         for (i=0; i<slot_length; i++) {
-          for (int aa=0; aa<frame_parms->nb_antennas_tx; aa++) {
+          for (int aa=0; aa<UE->frame_parms.nb_antennas_tx; aa++) {
             s_re[aa][i] = ((double)(((short *)&UE->common_vars.txdata[aa][slot_offset]))[(i<<1)]);
             s_im[aa][i] = ((double)(((short *)&UE->common_vars.txdata[aa][slot_offset]))[(i<<1)+1]);
           }
         }
 
-
-        if (UE2gNB->max_Doppler == 0) {
-          multipath_channel(UE2gNB, s_re, s_im, r_re, r_im, slot_length, 0, (n_trials==1)?1:0);
+        // The multipath_channel() function calculates a channel matrix with only 1's. So the channel rank is 1, and we
+        // cannot use multi-layer. To solve this issue, for now we use the H_awgn_mimo matrix for multi-layer.
+        if (precod_nbr_layers == 1) {
+          if (UE2gNB->max_Doppler == 0) {
+            multipath_channel(UE2gNB, s_re, s_im, r_re, r_im, slot_length, 0, (n_trials==1)?1:0);
+          } else {
+            multipath_tv_channel(UE2gNB, s_re, s_im, r_re, r_im, 2*slot_length, 0);
+          }
         } else {
-          multipath_tv_channel(UE2gNB, s_re, s_im, r_re, r_im, 2*slot_length, 0);
+          double H_awgn_mimo[4][4] ={{1.0, 0.2, 0.1, 0.05},   //rx 0
+                                     {0.2, 1.0, 0.2, 0.1},    //rx 1
+                                     {0.1, 0.2, 1.0, 0.2},    //rx 2
+                                     {0.05, 0.1, 0.2, 1.0}};  //rx 3
+          for (i=0; i<slot_length; i++) {
+            for (ap = 0; ap < frame_parms->nb_antennas_rx; ap++) {
+              // sum up signals from different Tx antennas
+              r_re[ap][i] = 0;
+              r_im[ap][i] = 0;
+              for (int aa=0; aa<n_tx; aa++) {
+                r_re[ap][i] += s_re[aa][i]*H_awgn_mimo[ap][aa];
+                r_im[ap][i] += s_im[aa][i]*H_awgn_mimo[ap][aa];
+              }
+            }
+          }
         }
+
         for (i=0; i<slot_length; i++) {
           for (ap=0; ap<frame_parms->nb_antennas_rx; ap++) {
             ((int16_t*) &gNB->common_vars.rxdata[ap][slot_offset])[(2*i)   + (delay*2)] = (int16_t)((r_re[ap][i]) + (sqrt(sigma/2)*gaussdouble(0.0,1.0))); // convert to fixed point
@@ -1276,7 +1373,7 @@ int main(int argc, char **argv)
                           pusch_pdu->ul_dmrs_symb_pos);
         ptrsSymbPerSlot = get_ptrs_symbols_in_slot(ptrsSymPos, pusch_pdu->start_symbol_index, pusch_pdu->nr_of_symbols);
         ptrsRePerSymb = ((pusch_pdu->rb_size + ptrs_freq_density - 1)/ptrs_freq_density);
-        printf("[ULSIM] PTRS Symbols in a slot: %2u, RE per Symbol: %3u, RE in a slot %4d\n", ptrsSymbPerSlot,ptrsRePerSymb, ptrsSymbPerSlot*ptrsRePerSymb );
+        LOG_D(PHY,"[ULSIM] PTRS Symbols in a slot: %2u, RE per Symbol: %3u, RE in a slot %4d\n", ptrsSymbPerSlot,ptrsRePerSymb, ptrsSymbPerSlot*ptrsRePerSymb );
       }
 	////////////////////////////////////////////////////////////
 	
@@ -1286,130 +1383,152 @@ int main(int argc, char **argv)
 	gNB->UL_INFO.rx_ind.number_of_pdus = 0;
 	gNB->UL_INFO.crc_ind.number_crcs = 0;
 
-        phy_procedures_gNB_common_RX(gNB, frame, slot);
-
-        ul_proc_error = phy_procedures_gNB_uespec_RX(gNB, frame, slot);
-
-	if (n_trials==1 && round==0) {
-	  LOG_M("rxsig0.m","rx0",&gNB->common_vars.rxdata[0][slot_offset],slot_length,1,1);
-
-	  LOG_M("rxsigF0.m","rxsF0",gNB->common_vars.rxdataF[0]+start_symbol*frame_parms->ofdm_symbol_size,nb_symb_sch*frame_parms->ofdm_symbol_size,1,1);
-
-	}
+    phy_procedures_gNB_common_RX(gNB, frame, slot);
+
+    ul_proc_error = phy_procedures_gNB_uespec_RX(gNB, frame, slot);
+
+    if (n_trials==1 && round==0) {
+      LOG_M("rxsig0.m","rx0",&gNB->common_vars.rxdata[0][slot_offset],slot_length,1,1);
+      LOG_M("rxsigF0.m","rxsF0",gNB->common_vars.rxdataF[0],14*frame_parms->ofdm_symbol_size,1,1);
+      if (precod_nbr_layers > 1) {
+        LOG_M("rxsig1.m","rx1",&gNB->common_vars.rxdata[1][slot_offset],slot_length,1,1);
+        LOG_M("rxsigF1.m","rxsF1",gNB->common_vars.rxdataF[1],14*frame_parms->ofdm_symbol_size,1,1);
+        if (precod_nbr_layers==4) {
+          LOG_M("rxsig2.m","rx2",&gNB->common_vars.rxdata[2][slot_offset],slot_length,1,1);
+          LOG_M("rxsig3.m","rx3",&gNB->common_vars.rxdata[3][slot_offset],slot_length,1,1);
+          LOG_M("rxsigF2.m","rxsF2",gNB->common_vars.rxdataF[2],14*frame_parms->ofdm_symbol_size,1,1);
+          LOG_M("rxsigF3.m","rxsF3",gNB->common_vars.rxdataF[3],14*frame_parms->ofdm_symbol_size,1,1);
+        }
+      }
+    }
 
 
-	if (n_trials == 1  && round==0) {
+    if (n_trials == 1  && round==0) {
 #ifdef __AVX2__
-	  __attribute__((unused))
-	  int off = ((nb_rb&1) == 1)? 4:0;
+      __attribute__((unused))
+      int off = ((nb_rb&1) == 1)? 4:0;
 #else
-	  __attribute__((unused))
-	  int off = 0;
+      __attribute__((unused))
+      int off = 0;
 #endif
 
-	  LOG_M("rxsigF0_ext.m","rxsF0_ext",
-		&gNB->pusch_vars[0]->rxdataF_ext[0][start_symbol*NR_NB_SC_PER_RB * pusch_pdu->rb_size],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-	  LOG_M("chestF0.m","chF0",
-		&gNB->pusch_vars[0]->ul_ch_estimates[0][start_symbol*frame_parms->ofdm_symbol_size],frame_parms->ofdm_symbol_size,1,1);
-	  LOG_M("chestT0.m","chT0",
-		&gNB->pusch_vars[0]->ul_ch_estimates_time[0][0],frame_parms->ofdm_symbol_size,1,1);
-	  LOG_M("chestF0_ext.m","chF0_ext",
-		&gNB->pusch_vars[0]->ul_ch_estimates_ext[0][(start_symbol+1)*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],
-		(nb_symb_sch-1)*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-	  LOG_M("rxsigF0_comp.m","rxsF0_comp",
-		&gNB->pusch_vars[0]->rxdataF_comp[0][start_symbol*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-    LOG_M("chmagF0.m","chmF0",
-    &gNB->pusch_vars[0]->ul_ch_mag[0][start_symbol*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-    LOG_M("chmagbF0.m","chmbF0",
-    &gNB->pusch_vars[0]->ul_ch_magb[0][start_symbol*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-    if (n_rx == 2) {
-      LOG_MM("rxsigF0_comp.m","rxsF1_comp",
-      &gNB->pusch_vars[0]->rxdataF_comp[1][start_symbol*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-      LOG_MM("rxsigF0_ext.m","rxsF1_ext",
-      &gNB->pusch_vars[0]->rxdataF_ext[1][start_symbol*NR_NB_SC_PER_RB * pusch_pdu->rb_size],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-      LOG_MM("chestF0_ext.m","chF1_ext",
-      &gNB->pusch_vars[0]->ul_ch_estimates_ext[1][(start_symbol+1)*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],
-      (nb_symb_sch-1)*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-      LOG_MM("chmagF0.m","chmF1",
-      &gNB->pusch_vars[0]->ul_ch_mag[1][start_symbol*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-      LOG_MM("chmagbF0.m","chmbF1",
-      &gNB->pusch_vars[0]->ul_ch_magb[1][start_symbol*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-    } else if (n_rx == 4) {
-      LOG_MM("rxsigF0_comp.m","rxsF1_comp",
-      &gNB->pusch_vars[0]->rxdataF_comp[1][start_symbol*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-      LOG_MM("rxsigF0_comp.m","rxsF2_comp",
-      &gNB->pusch_vars[0]->rxdataF_comp[2][start_symbol*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-      LOG_MM("rxsigF0_comp.m","rxsF3_comp",
-      &gNB->pusch_vars[0]->rxdataF_comp[3][start_symbol*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-      LOG_MM("rxsigF0_ext.m","rxsF1_ext",
-      &gNB->pusch_vars[0]->rxdataF_ext[1][start_symbol*NR_NB_SC_PER_RB * pusch_pdu->rb_size],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-      LOG_MM("rxsigF0_ext.m","rxsF2_ext",
-      &gNB->pusch_vars[0]->rxdataF_ext[2][start_symbol*NR_NB_SC_PER_RB * pusch_pdu->rb_size],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-      LOG_MM("rxsigF0_ext.m","rxsF3_ext",
-      &gNB->pusch_vars[0]->rxdataF_ext[3][start_symbol*NR_NB_SC_PER_RB * pusch_pdu->rb_size],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-      LOG_MM("chestF0_ext.m","chF1_ext",
-      &gNB->pusch_vars[0]->ul_ch_estimates_ext[1][(start_symbol+1)*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],
-      (nb_symb_sch-1)*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-      LOG_MM("chestF0_ext.m","chF2_ext",
-      &gNB->pusch_vars[0]->ul_ch_estimates_ext[2][(start_symbol+1)*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],
-      (nb_symb_sch-1)*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-      LOG_MM("chestF0_ext.m","chF3_ext",
-      &gNB->pusch_vars[0]->ul_ch_estimates_ext[3][(start_symbol+1)*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],
-      (nb_symb_sch-1)*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-      LOG_MM("chmagF0.m","chmF1",
-      &gNB->pusch_vars[0]->ul_ch_mag[1][start_symbol*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-      LOG_MM("chmagF0.m","chmF2",
-      &gNB->pusch_vars[0]->ul_ch_mag[2][start_symbol*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-      LOG_MM("chmagF0.m","chmF3",
-      &gNB->pusch_vars[0]->ul_ch_mag[3][start_symbol*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-      LOG_MM("chmagbF0.m","chmbF1",
-      &gNB->pusch_vars[0]->ul_ch_magb[1][start_symbol*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-      LOG_MM("chmagbF0.m","chmbF2",
-      &gNB->pusch_vars[0]->ul_ch_magb[2][start_symbol*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-      LOG_MM("chmagbF0.m","chmbF3",
-      &gNB->pusch_vars[0]->ul_ch_magb[3][start_symbol*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
-    }
+      LOG_M("rxsigF0_ext.m","rxsF0_ext",
+            &gNB->pusch_vars[0]->rxdataF_ext[0][start_symbol*NR_NB_SC_PER_RB * pusch_pdu->rb_size],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
+      LOG_M("chestF0.m","chF0",
+            &gNB->pusch_vars[0]->ul_ch_estimates[0][start_symbol*frame_parms->ofdm_symbol_size],frame_parms->ofdm_symbol_size,1,1);
+      LOG_M("chestT0.m","chT0",
+            &gNB->pusch_vars[0]->ul_ch_estimates_time[0][0],frame_parms->ofdm_symbol_size,1,1);
+      LOG_M("chestF0_ext.m","chF0_ext",
+            &gNB->pusch_vars[0]->ul_ch_estimates_ext[0][(start_symbol+1)*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],
+            (nb_symb_sch-1)*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
+      LOG_M("rxsigF0_comp.m","rxsF0_comp",
+            &gNB->pusch_vars[0]->rxdataF_comp[0][start_symbol*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
+      LOG_M("chmagF0.m","chmF0",
+        &gNB->pusch_vars[0]->ul_ch_mag[0][start_symbol*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
+      LOG_M("chmagbF0.m","chmbF0",
+        &gNB->pusch_vars[0]->ul_ch_magb[0][start_symbol*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
+      LOG_M("rxsigF0_llrlayers0.m","rxsF0_llrlayers0",
+            &gNB->pusch_vars[0]->llr_layers[0][0],(nb_symb_sch-1)*NR_NB_SC_PER_RB * pusch_pdu->rb_size * mod_order,1,0);
+
+      if (precod_nbr_layers==2) {
+        LOG_M("rxsigF1_ext.m","rxsF1_ext",
+             &gNB->pusch_vars[0]->rxdataF_ext[1][start_symbol*NR_NB_SC_PER_RB * pusch_pdu->rb_size],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
+
+        LOG_M("chestF3.m","chF3",
+             &gNB->pusch_vars[0]->ul_ch_estimates[3][start_symbol*frame_parms->ofdm_symbol_size],frame_parms->ofdm_symbol_size,1,1);
+
+        LOG_M("chestF3_ext.m","chF3_ext",
+        &gNB->pusch_vars[0]->ul_ch_estimates_ext[3][(start_symbol+1)*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],
+              (nb_symb_sch-1)*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
+
+        LOG_M("rxsigF2_comp.m","rxsF2_comp",
+            &gNB->pusch_vars[0]->rxdataF_comp[2][start_symbol*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
+
+        LOG_M("rxsigF0_llrlayers1.m","rxsF0_llrlayers1",
+        &gNB->pusch_vars[0]->llr_layers[1][0],(nb_symb_sch-1)*NR_NB_SC_PER_RB * pusch_pdu->rb_size * mod_order,1,0);
 
-	  LOG_M("rxsigF0_llr.m","rxsF0_llr",
-		&gNB->pusch_vars[0]->llr[0],(nb_symb_sch-1)*NR_NB_SC_PER_RB * pusch_pdu->rb_size * mod_order,1,0);
-	}
+        }
+
+        if (precod_nbr_layers==4) {
+          LOG_M("rxsigF1_ext.m","rxsF1_ext",
+            &gNB->pusch_vars[0]->rxdataF_ext[1][start_symbol*NR_NB_SC_PER_RB * pusch_pdu->rb_size],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
+         LOG_M("rxsigF2_ext.m","rxsF2_ext",
+            &gNB->pusch_vars[0]->rxdataF_ext[2][start_symbol*NR_NB_SC_PER_RB * pusch_pdu->rb_size],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
+        LOG_M("rxsigF3_ext.m","rxsF3_ext",
+            &gNB->pusch_vars[0]->rxdataF_ext[3][start_symbol*NR_NB_SC_PER_RB * pusch_pdu->rb_size],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
+
+        LOG_M("chestF5.m","chF5",
+            &gNB->pusch_vars[0]->ul_ch_estimates[5][start_symbol*frame_parms->ofdm_symbol_size],frame_parms->ofdm_symbol_size,1,1);
+        LOG_M("chestF10.m","chF10",
+            &gNB->pusch_vars[0]->ul_ch_estimates[10][start_symbol*frame_parms->ofdm_symbol_size],frame_parms->ofdm_symbol_size,1,1);
+        LOG_M("chestF15.m","chF15",
+            &gNB->pusch_vars[0]->ul_ch_estimates[15][start_symbol*frame_parms->ofdm_symbol_size],frame_parms->ofdm_symbol_size,1,1);
+
+
+        LOG_M("chestF5_ext.m","chF5_ext",
+        &gNB->pusch_vars[0]->ul_ch_estimates_ext[5][(start_symbol+1)*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],
+              (nb_symb_sch-1)*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
+        LOG_M("chestF10_ext.m","chF10_ext",
+        &gNB->pusch_vars[0]->ul_ch_estimates_ext[10][(start_symbol+1)*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],
+              (nb_symb_sch-1)*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
+        LOG_M("chestF15_ext.m","chF15_ext",
+        &gNB->pusch_vars[0]->ul_ch_estimates_ext[15][(start_symbol+1)*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],
+             (nb_symb_sch-1)*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
+
+
+        LOG_M("rxsigF4_comp.m","rxsF4_comp",
+            &gNB->pusch_vars[0]->rxdataF_comp[4][start_symbol*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
+        LOG_M("rxsigF8_comp.m","rxsF8_comp",
+            &gNB->pusch_vars[0]->rxdataF_comp[8][start_symbol*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
+        LOG_M("rxsigF12_comp.m","rxsF12_comp",
+            &gNB->pusch_vars[0]->rxdataF_comp[12][start_symbol*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size))],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1);
+        LOG_M("rxsigF0_llrlayers1.m","rxsF0_llrlayers1",
+        &gNB->pusch_vars[0]->llr_layers[1][0],(nb_symb_sch-1)*NR_NB_SC_PER_RB * pusch_pdu->rb_size * mod_order,1,0);
+        LOG_M("rxsigF0_llrlayers2.m","rxsF0_llrlayers2",
+        &gNB->pusch_vars[0]->llr_layers[2][0],(nb_symb_sch-1)*NR_NB_SC_PER_RB * pusch_pdu->rb_size * mod_order,1,0);
+        LOG_M("rxsigF0_llrlayers3.m","rxsF0_llrlayers3",
+        &gNB->pusch_vars[0]->llr_layers[3][0],(nb_symb_sch-1)*NR_NB_SC_PER_RB * pusch_pdu->rb_size * mod_order,1,0);
+      }
+
+      LOG_M("rxsigF0_llr.m","rxsF0_llr",
+           &gNB->pusch_vars[0]->llr[0],precod_nbr_layers*(nb_symb_sch-1)*NR_NB_SC_PER_RB * pusch_pdu->rb_size * mod_order,1,0);
+    }
         ////////////////////////////////////////////////////////////
 
-	if ((gNB->ulsch[0]->last_iteration_cnt >=
-	    gNB->ulsch[0]->max_ldpc_iterations+1) || ul_proc_error == 1) {
-	  error_flag = 1; 
-	  n_errors[round][snrRun]++;
-	  crc_status = 1;
-	} else {
-	  crc_status = 0;
-	}
-	if(n_trials==1) printf("end of round %d rv_index %d\n",round, rv_index);
+    if ((gNB->ulsch[0]->last_iteration_cnt >=
+        gNB->ulsch[0]->max_ldpc_iterations+1) || ul_proc_error == 1) {
+      error_flag = 1;
+      n_errors[round][snrRun]++;
+      crc_status = 1;
+    } else
+      crc_status = 0;
+    if(n_trials==1) printf("end of round %d rv_index %d\n",round, rv_index);
+
+    //----------------------------------------------------------
+    //----------------- count and print errors -----------------
+    //----------------------------------------------------------
+
+    if ((pusch_pdu->pdu_bit_map & PUSCH_PDU_BITMAP_PUSCH_PTRS) && (SNR==snr0) && (trial==0) && (round==0)) {
+      ptrs_symbols = 0;
+      for (int i = pusch_pdu->start_symbol_index; i < pusch_pdu->start_symbol_index + pusch_pdu->nr_of_symbols; i++)
+        ptrs_symbols += ((gNB->pusch_vars[UE_id]->ptrs_symbols) >> i) & 1;
+
+      /*  2*5*(50/2), for RB = 50,K = 2 for 5 OFDM PTRS symbols */
+      available_bits -= 2 * ptrs_symbols * ((nb_rb + ptrs_freq_density - 1) /ptrs_freq_density);
+      printf("[ULSIM][PTRS] Available bits are: %5u, removed PTRS bits are: %5d \n",available_bits, (ptrsSymbPerSlot * ptrsRePerSymb * 2) );
+    }
 
-        //----------------------------------------------------------
-        //----------------- count and print errors -----------------
-        //----------------------------------------------------------
+    for (i = 0; i < available_bits; i++) {
 
-        if ((pusch_pdu->pdu_bit_map & PUSCH_PDU_BITMAP_PUSCH_PTRS) && (SNR==snr0) && (trial==0) && (round==0)) {
-            ptrs_symbols = 0;
-            for (int i = pusch_pdu->start_symbol_index; i < pusch_pdu->start_symbol_index + pusch_pdu->nr_of_symbols; i++){
-               ptrs_symbols += ((gNB->pusch_vars[UE_id]->ptrs_symbols) >> i) & 1;
-            }
-            /*  2*5*(50/2), for RB = 50,K = 2 for 5 OFDM PTRS symbols */
-            available_bits -= 2 * ptrs_symbols * ((nb_rb + ptrs_freq_density - 1) /ptrs_freq_density);
-            printf("[ULSIM][PTRS] Available bits are: %5u, removed PTRS bits are: %5d \n",available_bits, (ptrsSymbPerSlot * ptrsRePerSymb * 2) );
-        }
+      if(((ulsch_ue->harq_processes[harq_pid]->f[i] == 0) && (gNB->pusch_vars[UE_id]->llr[i] <= 0)) ||
+         ((ulsch_ue->harq_processes[harq_pid]->f[i] == 1) && (gNB->pusch_vars[UE_id]->llr[i] >= 0))) {
 
-	for (i = 0; i < available_bits; i++) {
-	  
-	  if(((ulsch_ue->harq_processes[harq_pid]->f[i] == 0) && (gNB->pusch_vars[UE_id]->llr[i] <= 0)) ||
-	     ((ulsch_ue->harq_processes[harq_pid]->f[i] == 1) && (gNB->pusch_vars[UE_id]->llr[i] >= 0)))
-	    {
-	      /*if(errors_scrambling == 0)
-		printf("\x1B[34m" "[frame %d][trial %d]\t1st bit in error in unscrambling = %d\n" "\x1B[0m", frame, trial, i);*/
-	      errors_scrambling[round][snrRun]++;
-	    }
-	}
-	round++;
+        /*if(errors_scrambling == 0)
+	  printf("\x1B[34m" "[frame %d][trial %d]\t1st bit in error in unscrambling = %d\n" "\x1B[0m", frame, trial, i);*/
+        errors_scrambling[round][snrRun]++;
+      }
+    }
+    round++;
 
     } // round
     
@@ -1476,7 +1595,12 @@ int main(int argc, char **argv)
 	   roundStats[snrRun],effRate[snrRun],effTP[snrRun],TBS);
 
     FILE *fd=fopen("nr_ulsim.log","w");
+    if (fd == NULL) {
+      printf("Problem with filename %s\n", "nr_ulsim.log");
+      exit(-1);
+    }
     dump_pusch_stats(fd,gNB);
+    fclose(fd);
 
     printf("*****************************************\n");
     printf("\n");
@@ -1506,7 +1630,7 @@ int main(int argc, char **argv)
     if(n_trials==1)
       break;
 
-    if ((float)n_errors[0][snrRun]/(float)n_trials <= target_error_rate) {
+    if ((float)effTP[snrRun] >= eff_tp_check) {
       printf("*************\n");
       printf("PUSCH test OK\n");
       printf("*************\n");
@@ -1536,17 +1660,19 @@ int main(int argc, char **argv)
           length_dmrs,
           num_dmrs_cdm_grps_no_data);
               
-  LOG_M("ulsimStats.m","SNR",snrStats,snrRun,1,7);
-  LOG_MM("ulsimStats.m","BLER_round0",blerStats[0],snrRun,1,7);
-  LOG_MM("ulsimStats.m","BLER_round1",blerStats[1],snrRun,1,7);
-  LOG_MM("ulsimStats.m","BLER_round2",blerStats[2],snrRun,1,7);
-  LOG_MM("ulsimStats.m","BLER_round3",blerStats[3],snrRun,1,7);
-  LOG_MM("ulsimStats.m","BER_round0",berStats[0],snrRun,1,7);
-  LOG_MM("ulsimStats.m","BER_round1",berStats[1],snrRun,1,7);
-  LOG_MM("ulsimStats.m","BER_round2",berStats[2],snrRun,1,7);
-  LOG_MM("ulsimStats.m","BER_round3",berStats[3],snrRun,1,7);
-  LOG_MM("ulsimStats.m","EffRate",effRate,snrRun,1,7);
-  LOG_MM("ulsimStats.m","EffTP",effTP,snrRun,1,7);
+  char opStatsFile[50];
+  sprintf(opStatsFile, "ulsimStats_z%d.m", n_rx);
+  LOG_M(opStatsFile,"SNR",snrStats,snrRun,1,7);
+  LOG_MM(opStatsFile,"BLER_round0",blerStats[0],snrRun,1,7);
+  LOG_MM(opStatsFile,"BLER_round1",blerStats[1],snrRun,1,7);
+  LOG_MM(opStatsFile,"BLER_round2",blerStats[2],snrRun,1,7);
+  LOG_MM(opStatsFile,"BLER_round3",blerStats[3],snrRun,1,7);
+  LOG_MM(opStatsFile,"BER_round0",berStats[0],snrRun,1,7);
+  LOG_MM(opStatsFile,"BER_round1",berStats[1],snrRun,1,7);
+  LOG_MM(opStatsFile,"BER_round2",berStats[2],snrRun,1,7);
+  LOG_MM(opStatsFile,"BER_round3",berStats[3],snrRun,1,7);
+  LOG_MM(opStatsFile,"EffRate",effRate,snrRun,1,7);
+  LOG_MM(opStatsFile,"EffTP",effTP,snrRun,1,7);
   free(test_input_bit);
   free(estimated_output_bit);
 
diff --git a/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeCache.txt b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeCache.txt
new file mode 100644
index 00000000000..b9bfc668ed5
--- /dev/null
+++ b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeCache.txt
@@ -0,0 +1,313 @@
+# This is the CMakeCache file.
+# For build in directory: /home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build
+# It was generated by CMake: /usr/bin/cmake
+# You can edit this file to change values found and used by cmake.
+# If you do not want to change any of the values, simply exit the editor.
+# If you do want to change a value, simply edit, save, and exit the editor.
+# The syntax for the file is as follows:
+# KEY:TYPE=VALUE
+# KEY is the name of a variable in the cache.
+# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
+# VALUE is the current value for the KEY.
+
+########################
+# EXTERNAL cache entries
+########################
+
+//Path to a program.
+CMAKE_AR:FILEPATH=/usr/bin/ar
+
+//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or
+// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.
+CMAKE_BUILD_TYPE:STRING=
+
+//Enable/Disable color output during build.
+CMAKE_COLOR_MAKEFILE:BOOL=ON
+
+//CXX compiler.
+CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++
+
+//Flags used by the compiler during all build types.
+CMAKE_CXX_FLAGS:STRING=
+
+//Flags used by the compiler during debug builds.
+CMAKE_CXX_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the compiler during release minsize builds.
+CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the compiler during release builds (/MD /Ob1 /Oi
+// /Ot /Oy /Gs will produce slightly less optimized but smaller
+// files).
+CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the compiler during Release with Debug Info builds.
+CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//C compiler.
+CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc
+
+//Flags used by the compiler during all build types.
+CMAKE_C_FLAGS:STRING=
+
+//Flags used by the compiler during debug builds.
+CMAKE_C_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the compiler during release minsize builds.
+CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the compiler during release builds (/MD /Ob1 /Oi
+// /Ot /Oy /Gs will produce slightly less optimized but smaller
+// files).
+CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the compiler during Release with Debug Info builds.
+CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//Flags used by the linker.
+CMAKE_EXE_LINKER_FLAGS:STRING=' '
+
+//Flags used by the linker during debug builds.
+CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Enable/Disable output of compile commands during generation.
+CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
+
+//Install path prefix, prepended onto install directories.
+CMAKE_INSTALL_PREFIX:PATH=/usr/local
+
+//Path to a program.
+CMAKE_LINKER:FILEPATH=/usr/bin/ld
+
+//Path to a program.
+CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/gmake
+
+//Flags used by the linker during the creation of modules.
+CMAKE_MODULE_LINKER_FLAGS:STRING=' '
+
+//Flags used by the linker during debug builds.
+CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Path to a program.
+CMAKE_NM:FILEPATH=/usr/bin/nm
+
+//Path to a program.
+CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
+
+//Path to a program.
+CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
+
+//Value Computed by CMake
+CMAKE_PROJECT_NAME:STATIC=Project
+
+//Path to a program.
+CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
+
+//Flags used by the linker during the creation of dll's.
+CMAKE_SHARED_LINKER_FLAGS:STRING=' '
+
+//Flags used by the linker during debug builds.
+CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//If set, runtime paths are not added when installing shared libraries,
+// but are added when building.
+CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
+
+//If set, runtime paths are not added when using shared libraries.
+CMAKE_SKIP_RPATH:BOOL=NO
+
+//Flags used by the linker during the creation of static libraries.
+CMAKE_STATIC_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Path to a program.
+CMAKE_STRIP:FILEPATH=/usr/bin/strip
+
+//If true, cmake will use relative paths in makefiles and projects.
+CMAKE_USE_RELATIVE_PATHS:BOOL=OFF
+
+//If this value is on, makefiles will be generated without the
+// .SILENT directive, and all commands will be echoed to the console
+// during the make.  This is useful for debugging only. With Visual
+// Studio IDE projects all commands are done without /nologo.
+CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
+
+//Value Computed by CMake
+Project_BINARY_DIR:STATIC=/home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build
+
+//Value Computed by CMake
+Project_SOURCE_DIR:STATIC=/home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build
+
+
+########################
+# INTERNAL cache entries
+########################
+
+//ADVANCED property for variable: CMAKE_AR
+CMAKE_AR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_BUILD_TOOL
+CMAKE_BUILD_TOOL-ADVANCED:INTERNAL=1
+//What is the target build tool cmake is generating for.
+CMAKE_BUILD_TOOL:INTERNAL=/usr/bin/gmake
+//This is the directory where this CMakeCache.txt was created
+CMAKE_CACHEFILE_DIR:INTERNAL=/home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build
+//Major version of cmake used to create the current loaded cache
+CMAKE_CACHE_MAJOR_VERSION:INTERNAL=2
+//Minor version of cmake used to create the current loaded cache
+CMAKE_CACHE_MINOR_VERSION:INTERNAL=8
+//Patch version of cmake used to create the current loaded cache
+CMAKE_CACHE_PATCH_VERSION:INTERNAL=12
+//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
+CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
+//Path to CMake executable.
+CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
+//Path to cpack program executable.
+CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
+//Path to ctest program executable.
+CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
+//ADVANCED property for variable: CMAKE_CXX_COMPILER
+CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS
+CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
+CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
+CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
+CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
+CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_COMPILER
+CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS
+CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
+CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
+CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
+CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
+CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//Path to cache edit program executable.
+CMAKE_EDIT_COMMAND:INTERNAL=/usr/bin/ccmake
+//Executable file format
+CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
+CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
+CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
+CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
+CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
+//Name of generator.
+CMAKE_GENERATOR:INTERNAL=Unix Makefiles
+//Name of generator toolset.
+CMAKE_GENERATOR_TOOLSET:INTERNAL=
+//Start directory with the top level CMakeLists.txt file for this
+// project
+CMAKE_HOME_DIRECTORY:INTERNAL=/home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build
+//Install .so files without execute permission.
+CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0
+//ADVANCED property for variable: CMAKE_LINKER
+CMAKE_LINKER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
+CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
+CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
+CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
+CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_NM
+CMAKE_NM-ADVANCED:INTERNAL=1
+//number of local generators
+CMAKE_NUMBER_OF_LOCAL_GENERATORS:INTERNAL=1
+//ADVANCED property for variable: CMAKE_OBJCOPY
+CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_OBJDUMP
+CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RANLIB
+CMAKE_RANLIB-ADVANCED:INTERNAL=1
+//Path to CMake installation.
+CMAKE_ROOT:INTERNAL=/usr/share/cmake
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
+CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
+CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
+CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
+CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_RPATH
+CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
+CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
+CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
+CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STRIP
+CMAKE_STRIP-ADVANCED:INTERNAL=1
+//uname command
+CMAKE_UNAME:INTERNAL=/usr/bin/uname
+//ADVANCED property for variable: CMAKE_USE_RELATIVE_PATHS
+CMAKE_USE_RELATIVE_PATHS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
+CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
+
diff --git a/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CMakeCCompiler.cmake b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CMakeCCompiler.cmake
new file mode 100644
index 00000000000..20619f82ead
--- /dev/null
+++ b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CMakeCCompiler.cmake
@@ -0,0 +1,56 @@
+set(CMAKE_C_COMPILER "/usr/bin/cc")
+set(CMAKE_C_COMPILER_ARG1 "")
+set(CMAKE_C_COMPILER_ID "GNU")
+set(CMAKE_C_COMPILER_VERSION "4.8.5")
+set(CMAKE_C_PLATFORM_ID "Linux")
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_LINKER "/usr/bin/ld")
+set(CMAKE_COMPILER_IS_GNUCC 1)
+set(CMAKE_C_COMPILER_LOADED 1)
+set(CMAKE_C_COMPILER_WORKS TRUE)
+set(CMAKE_C_ABI_COMPILED TRUE)
+set(CMAKE_COMPILER_IS_MINGW )
+set(CMAKE_COMPILER_IS_CYGWIN )
+if(CMAKE_COMPILER_IS_CYGWIN)
+  set(CYGWIN 1)
+  set(UNIX 1)
+endif()
+
+set(CMAKE_C_COMPILER_ENV_VAR "CC")
+
+if(CMAKE_COMPILER_IS_MINGW)
+  set(MINGW 1)
+endif()
+set(CMAKE_C_COMPILER_ID_RUN 1)
+set(CMAKE_C_SOURCE_FILE_EXTENSIONS c)
+set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
+set(CMAKE_C_LINKER_PREFERENCE 10)
+
+# Save compiler ABI information.
+set(CMAKE_C_SIZEOF_DATA_PTR "8")
+set(CMAKE_C_COMPILER_ABI "ELF")
+set(CMAKE_C_LIBRARY_ARCHITECTURE "")
+
+if(CMAKE_C_SIZEOF_DATA_PTR)
+  set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_C_COMPILER_ABI)
+  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
+endif()
+
+if(CMAKE_C_LIBRARY_ARCHITECTURE)
+  set(CMAKE_LIBRARY_ARCHITECTURE "")
+endif()
+
+
+
+
+set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "c")
+set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-redhat-linux/4.8.5;/usr/lib64;/lib64;/usr/lib")
+set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
+
+
+
diff --git a/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CMakeCXXCompiler.cmake b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CMakeCXXCompiler.cmake
new file mode 100644
index 00000000000..5ae76367c40
--- /dev/null
+++ b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CMakeCXXCompiler.cmake
@@ -0,0 +1,57 @@
+set(CMAKE_CXX_COMPILER "/usr/bin/c++")
+set(CMAKE_CXX_COMPILER_ARG1 "")
+set(CMAKE_CXX_COMPILER_ID "GNU")
+set(CMAKE_CXX_COMPILER_VERSION "4.8.5")
+set(CMAKE_CXX_PLATFORM_ID "Linux")
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_LINKER "/usr/bin/ld")
+set(CMAKE_COMPILER_IS_GNUCXX 1)
+set(CMAKE_CXX_COMPILER_LOADED 1)
+set(CMAKE_CXX_COMPILER_WORKS TRUE)
+set(CMAKE_CXX_ABI_COMPILED TRUE)
+set(CMAKE_COMPILER_IS_MINGW )
+set(CMAKE_COMPILER_IS_CYGWIN )
+if(CMAKE_COMPILER_IS_CYGWIN)
+  set(CYGWIN 1)
+  set(UNIX 1)
+endif()
+
+set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
+
+if(CMAKE_COMPILER_IS_MINGW)
+  set(MINGW 1)
+endif()
+set(CMAKE_CXX_COMPILER_ID_RUN 1)
+set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
+set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP)
+set(CMAKE_CXX_LINKER_PREFERENCE 30)
+set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
+
+# Save compiler ABI information.
+set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
+set(CMAKE_CXX_COMPILER_ABI "ELF")
+set(CMAKE_CXX_LIBRARY_ARCHITECTURE "")
+
+if(CMAKE_CXX_SIZEOF_DATA_PTR)
+  set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_CXX_COMPILER_ABI)
+  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
+endif()
+
+if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
+  set(CMAKE_LIBRARY_ARCHITECTURE "")
+endif()
+
+
+
+
+set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;c")
+set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-redhat-linux/4.8.5;/usr/lib64;/lib64;/usr/lib")
+set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
+
+
+
diff --git a/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_C.bin b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_C.bin
new file mode 100755
index 0000000000000000000000000000000000000000..db27e43a893d3972ef50962e2f14ebc0bfcc4215
GIT binary patch
literal 8392
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

literal 0
HcmV?d00001

diff --git a/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_CXX.bin b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_CXX.bin
new file mode 100755
index 0000000000000000000000000000000000000000..edbf852aaf9f3b4dd83d1265da0c8264729e0437
GIT binary patch
literal 8408
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
Hj%EJ>1mJ)l

literal 0
HcmV?d00001

diff --git a/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CMakeSystem.cmake b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CMakeSystem.cmake
new file mode 100644
index 00000000000..3980da44fcc
--- /dev/null
+++ b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CMakeSystem.cmake
@@ -0,0 +1,15 @@
+set(CMAKE_HOST_SYSTEM "Linux-3.10.0-957.21.3.rt56.935.el7.x86_64")
+set(CMAKE_HOST_SYSTEM_NAME "Linux")
+set(CMAKE_HOST_SYSTEM_VERSION "3.10.0-957.21.3.rt56.935.el7.x86_64")
+set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
+
+
+
+set(CMAKE_SYSTEM "Linux-3.10.0-957.21.3.rt56.935.el7.x86_64")
+set(CMAKE_SYSTEM_NAME "Linux")
+set(CMAKE_SYSTEM_VERSION "3.10.0-957.21.3.rt56.935.el7.x86_64")
+set(CMAKE_SYSTEM_PROCESSOR "x86_64")
+
+set(CMAKE_CROSSCOMPILING "FALSE")
+
+set(CMAKE_SYSTEM_LOADED 1)
diff --git a/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CompilerIdC/CMakeCCompilerId.c b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CompilerIdC/CMakeCCompilerId.c
new file mode 100644
index 00000000000..cba81d4a6b5
--- /dev/null
+++ b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CompilerIdC/CMakeCCompilerId.c
@@ -0,0 +1,389 @@
+#ifdef __cplusplus
+# error "A C++ compiler has been selected for C."
+#endif
+
+/* Version number components: V=Version, R=Revision, P=Patch
+   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
+
+#if defined(__18CXX)
+# define ID_VOID_MAIN
+#endif
+
+#if defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+  /* __INTEL_COMPILER = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER    % 10)
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+  /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH HEX(__CODEGEARC_VERSION__     & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+  /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "Watcom"
+  /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC(__WATCOMC__ % 100)
+
+#elif defined(__SUNPRO_C)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_C >= 0x5100
+   /* __SUNPRO_C = 0xVRRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)
+# else
+   /* __SUNPRO_C = 0xVRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)
+# endif
+
+#elif defined(__HP_cc)
+# define COMPILER_ID "HP"
+  /* __HP_cc = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_cc     % 100)
+
+#elif defined(__DECC)
+# define COMPILER_ID "Compaq"
+  /* __DECC_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000  % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECC_VER         % 10000)
+
+#elif defined(__IBMC__)
+# if defined(__COMPILER_VER__)
+#  define COMPILER_ID "zOS"
+# else
+#  if __IBMC__ >= 800
+#   define COMPILER_ID "XL"
+#  else
+#   define COMPILER_ID "VisualAge"
+#  endif
+   /* __IBMC__ = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+#  define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
+# endif
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
+
+#elif defined(__TINYC__)
+# define COMPILER_ID "TinyCC"
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__GNUC__)
+# define COMPILER_ID "GNU"
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# if defined(__GNUC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+  /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+#  if _MSC_VER >= 1400
+    /* _MSC_FULL_VER = VVRRPPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+#  else
+    /* _MSC_FULL_VER = VVRRPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+#  endif
+# endif
+# if defined(_MSC_BUILD)
+#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+/* Analog VisualDSP++ >= 4.5.6 */
+#elif defined(__VISUALDSPVERSION__)
+# define COMPILER_ID "ADSP"
+  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
+# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
+# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)
+
+/* Analog VisualDSP++ < 4.5.6 */
+#elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
+# define COMPILER_ID "ADSP"
+
+/* IAR Systems compiler for embedded systems.
+   http://www.iar.com */
+#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+
+/* sdcc, the small devices C compiler for embedded systems,
+   http://sdcc.sourceforge.net  */
+#elif defined(SDCC)
+# define COMPILER_ID "SDCC"
+  /* SDCC = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(SDCC/100)
+#  define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(SDCC    % 10)
+
+#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
+# define COMPILER_ID "MIPSpro"
+# if defined(_SGI_COMPILER_VERSION)
+  /* _SGI_COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION    % 10)
+# else
+  /* _COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION    % 10)
+# endif
+
+/* This compiler is either not known or is too old to define an
+   identification macro.  Try to identify the platform and guess that
+   it is the native compiler.  */
+#elif defined(__sgi)
+# define COMPILER_ID "MIPSpro"
+
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+
+/* Identify known platforms by name.  */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)
+# define PLATFORM_ID "IRIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#else /* unknown platform */
+# define PLATFORM_ID ""
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+   the architecture of the compiler being used.  This is because
+   the compilers do not have flags that can change the architecture,
+   but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+#  define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+#  define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM)
+#  define ARCHITECTURE_ID "ARM"
+
+# elif defined(_M_MIPS)
+#  define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+#  define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#else
+#  define ARCHITECTURE_ID ""
+#endif
+
+/* Convert integer to decimal digit literals.  */
+#define DEC(n)                   \
+  ('0' + (((n) / 10000000)%10)), \
+  ('0' + (((n) / 1000000)%10)),  \
+  ('0' + (((n) / 100000)%10)),   \
+  ('0' + (((n) / 10000)%10)),    \
+  ('0' + (((n) / 1000)%10)),     \
+  ('0' + (((n) / 100)%10)),      \
+  ('0' + (((n) / 10)%10)),       \
+  ('0' +  ((n) % 10))
+
+/* Convert integer to hex digit literals.  */
+#define HEX(n)             \
+  ('0' + ((n)>>28 & 0xF)), \
+  ('0' + ((n)>>24 & 0xF)), \
+  ('0' + ((n)>>20 & 0xF)), \
+  ('0' + ((n)>>16 & 0xF)), \
+  ('0' + ((n)>>12 & 0xF)), \
+  ('0' + ((n)>>8  & 0xF)), \
+  ('0' + ((n)>>4  & 0xF)), \
+  ('0' + ((n)     & 0xF))
+
+/* Construct a string literal encoding the version number components. */
+#ifdef COMPILER_VERSION_MAJOR
+char const info_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+  COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+  '.', COMPILER_VERSION_MINOR,
+#  ifdef COMPILER_VERSION_PATCH
+   '.', COMPILER_VERSION_PATCH,
+#   ifdef COMPILER_VERSION_TWEAK
+    '.', COMPILER_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+/*--------------------------------------------------------------------------*/
+
+#ifdef ID_VOID_MAIN
+void main() {}
+#else
+int main(int argc, char* argv[])
+{
+  int require = 0;
+  require += info_compiler[argc];
+  require += info_platform[argc];
+  require += info_arch[argc];
+#ifdef COMPILER_VERSION_MAJOR
+  require += info_version[argc];
+#endif
+  (void)argv;
+  return require;
+}
+#endif
diff --git a/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CompilerIdC/a.out b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CompilerIdC/a.out
new file mode 100755
index 0000000000000000000000000000000000000000..a13b3e1e728a1fd34cf225e49ce4edc30866eab3
GIT binary patch
literal 8488
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

literal 0
HcmV?d00001

diff --git a/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CompilerIdCXX/CMakeCXXCompilerId.cpp
new file mode 100644
index 00000000000..e8220b26e50
--- /dev/null
+++ b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CompilerIdCXX/CMakeCXXCompilerId.cpp
@@ -0,0 +1,377 @@
+/* This source file must have a .cpp extension so that all C++ compilers
+   recognize the extension without flags.  Borland does not know .cxx for
+   example.  */
+#ifndef __cplusplus
+# error "A C compiler has been selected for C++."
+#endif
+
+/* Version number components: V=Version, R=Revision, P=Patch
+   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
+
+#if defined(__COMO__)
+# define COMPILER_ID "Comeau"
+  /* __COMO_VERSION__ = VRR */
+# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
+# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
+
+#elif defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+  /* __INTEL_COMPILER = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER    % 10)
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+  /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH HEX(__CODEGEARC_VERSION__     & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+  /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "Watcom"
+  /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC(__WATCOMC__ % 100)
+
+#elif defined(__SUNPRO_CC)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_CC >= 0x5100
+   /* __SUNPRO_CC = 0xVRRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
+# else
+   /* __SUNPRO_CC = 0xVRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
+# endif
+
+#elif defined(__HP_aCC)
+# define COMPILER_ID "HP"
+  /* __HP_aCC = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_aCC     % 100)
+
+#elif defined(__DECCXX)
+# define COMPILER_ID "Compaq"
+  /* __DECCXX_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000  % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER         % 10000)
+
+#elif defined(__IBMCPP__)
+# if defined(__COMPILER_VER__)
+#  define COMPILER_ID "zOS"
+# else
+#  if __IBMCPP__ >= 800
+#   define COMPILER_ID "XL"
+#  else
+#   define COMPILER_ID "VisualAge"
+#  endif
+   /* __IBMCPP__ = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+#  define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
+# endif
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__GNUC__)
+# define COMPILER_ID "GNU"
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# if defined(__GNUC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+  /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+#  if _MSC_VER >= 1400
+    /* _MSC_FULL_VER = VVRRPPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+#  else
+    /* _MSC_FULL_VER = VVRRPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+#  endif
+# endif
+# if defined(_MSC_BUILD)
+#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+/* Analog VisualDSP++ >= 4.5.6 */
+#elif defined(__VISUALDSPVERSION__)
+# define COMPILER_ID "ADSP"
+  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
+# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
+# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)
+
+/* Analog VisualDSP++ < 4.5.6 */
+#elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
+# define COMPILER_ID "ADSP"
+
+/* IAR Systems compiler for embedded systems.
+   http://www.iar.com */
+#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+
+#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
+# define COMPILER_ID "MIPSpro"
+# if defined(_SGI_COMPILER_VERSION)
+  /* _SGI_COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION    % 10)
+# else
+  /* _COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION    % 10)
+# endif
+
+/* This compiler is either not known or is too old to define an
+   identification macro.  Try to identify the platform and guess that
+   it is the native compiler.  */
+#elif defined(__sgi)
+# define COMPILER_ID "MIPSpro"
+
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+
+/* Identify known platforms by name.  */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)
+# define PLATFORM_ID "IRIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#else /* unknown platform */
+# define PLATFORM_ID ""
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+   the architecture of the compiler being used.  This is because
+   the compilers do not have flags that can change the architecture,
+   but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+#  define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+#  define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM)
+#  define ARCHITECTURE_ID "ARM"
+
+# elif defined(_M_MIPS)
+#  define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+#  define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#else
+#  define ARCHITECTURE_ID ""
+#endif
+
+/* Convert integer to decimal digit literals.  */
+#define DEC(n)                   \
+  ('0' + (((n) / 10000000)%10)), \
+  ('0' + (((n) / 1000000)%10)),  \
+  ('0' + (((n) / 100000)%10)),   \
+  ('0' + (((n) / 10000)%10)),    \
+  ('0' + (((n) / 1000)%10)),     \
+  ('0' + (((n) / 100)%10)),      \
+  ('0' + (((n) / 10)%10)),       \
+  ('0' +  ((n) % 10))
+
+/* Convert integer to hex digit literals.  */
+#define HEX(n)             \
+  ('0' + ((n)>>28 & 0xF)), \
+  ('0' + ((n)>>24 & 0xF)), \
+  ('0' + ((n)>>20 & 0xF)), \
+  ('0' + ((n)>>16 & 0xF)), \
+  ('0' + ((n)>>12 & 0xF)), \
+  ('0' + ((n)>>8  & 0xF)), \
+  ('0' + ((n)>>4  & 0xF)), \
+  ('0' + ((n)     & 0xF))
+
+/* Construct a string literal encoding the version number components. */
+#ifdef COMPILER_VERSION_MAJOR
+char const info_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+  COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+  '.', COMPILER_VERSION_MINOR,
+#  ifdef COMPILER_VERSION_PATCH
+   '.', COMPILER_VERSION_PATCH,
+#   ifdef COMPILER_VERSION_TWEAK
+    '.', COMPILER_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+/*--------------------------------------------------------------------------*/
+
+int main(int argc, char* argv[])
+{
+  int require = 0;
+  require += info_compiler[argc];
+  require += info_platform[argc];
+#ifdef COMPILER_VERSION_MAJOR
+  require += info_version[argc];
+#endif
+  (void)argv;
+  return require;
+}
diff --git a/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CompilerIdCXX/a.out b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CompilerIdCXX/a.out
new file mode 100755
index 0000000000000000000000000000000000000000..7634d1e447d96093b8e2714fbd8fb1b7baa34ed5
GIT binary patch
literal 8496
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
F;@^krSiArL

literal 0
HcmV?d00001

diff --git a/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeOutput.log b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeOutput.log
new file mode 100644
index 00000000000..c922ff62300
--- /dev/null
+++ b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeOutput.log
@@ -0,0 +1,247 @@
+The system is: Linux - 3.10.0-957.21.3.rt56.935.el7.x86_64 - x86_64
+Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+Compiler: /usr/bin/cc 
+Build flags: 
+Id flags: 
+
+The output was:
+0
+
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"
+
+The C compiler identification is GNU, found in "/home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CompilerIdC/a.out"
+
+Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+Compiler: /usr/bin/c++ 
+Build flags: 
+Id flags: 
+
+The output was:
+0
+
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"
+
+The CXX compiler identification is GNU, found in "/home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/2.8.12.2/CompilerIdCXX/a.out"
+
+Determining if the C compiler works passed with the following output:
+Change Dir: /home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp
+
+Run Build Command:/usr/bin/gmake "cmTryCompileExec2388936454/fast"
+/usr/bin/gmake -f CMakeFiles/cmTryCompileExec2388936454.dir/build.make CMakeFiles/cmTryCompileExec2388936454.dir/build
+gmake[1]: Entering directory `/home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp'
+/usr/bin/cmake -E cmake_progress_report /home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp/CMakeFiles 1
+Building C object CMakeFiles/cmTryCompileExec2388936454.dir/testCCompiler.c.o
+/usr/bin/cc    -o CMakeFiles/cmTryCompileExec2388936454.dir/testCCompiler.c.o   -c /home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp/testCCompiler.c
+Linking C executable cmTryCompileExec2388936454
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec2388936454.dir/link.txt --verbose=1
+/usr/bin/cc       CMakeFiles/cmTryCompileExec2388936454.dir/testCCompiler.c.o  -o cmTryCompileExec2388936454 -rdynamic 
+gmake[1]: Leaving directory `/home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp'
+
+
+Detecting C compiler ABI info compiled with the following output:
+Change Dir: /home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp
+
+Run Build Command:/usr/bin/gmake "cmTryCompileExec602265197/fast"
+/usr/bin/gmake -f CMakeFiles/cmTryCompileExec602265197.dir/build.make CMakeFiles/cmTryCompileExec602265197.dir/build
+gmake[1]: Entering directory `/home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp'
+/usr/bin/cmake -E cmake_progress_report /home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp/CMakeFiles 1
+Building C object CMakeFiles/cmTryCompileExec602265197.dir/CMakeCCompilerABI.c.o
+/usr/bin/cc    -o CMakeFiles/cmTryCompileExec602265197.dir/CMakeCCompilerABI.c.o   -c /usr/share/cmake/Modules/CMakeCCompilerABI.c
+Linking C executable cmTryCompileExec602265197
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec602265197.dir/link.txt --verbose=1
+/usr/bin/cc     -v CMakeFiles/cmTryCompileExec602265197.dir/CMakeCCompilerABI.c.o  -o cmTryCompileExec602265197 -rdynamic  
+Using built-in specs.
+COLLECT_GCC=/usr/bin/cc
+COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
+Target: x86_64-redhat-linux
+Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
+Thread model: posix
+gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
+COMPILER_PATH=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/:/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.8.5/:/usr/lib/gcc/x86_64-redhat-linux/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/4.8.5/:/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec602265197' '-rdynamic' '-mtune=generic' '-march=x86-64'
+ /usr/libexec/gcc/x86_64-redhat-linux/4.8.5/collect2 --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTryCompileExec602265197 /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/4.8.5/crtbegin.o -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5 -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../.. CMakeFiles/cmTryCompileExec602265197.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-redhat-linux/4.8.5/crtend.o /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crtn.o
+gmake[1]: Leaving directory `/home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp'
+
+
+Parsed C implicit link information from above output:
+  link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)]
+  ignore line: [Change Dir: /home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp]
+  ignore line: []
+  ignore line: [Run Build Command:/usr/bin/gmake "cmTryCompileExec602265197/fast"]
+  ignore line: [/usr/bin/gmake -f CMakeFiles/cmTryCompileExec602265197.dir/build.make CMakeFiles/cmTryCompileExec602265197.dir/build]
+  ignore line: [gmake[1]: Entering directory `/home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp']
+  ignore line: [/usr/bin/cmake -E cmake_progress_report /home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp/CMakeFiles 1]
+  ignore line: [Building C object CMakeFiles/cmTryCompileExec602265197.dir/CMakeCCompilerABI.c.o]
+  ignore line: [/usr/bin/cc    -o CMakeFiles/cmTryCompileExec602265197.dir/CMakeCCompilerABI.c.o   -c /usr/share/cmake/Modules/CMakeCCompilerABI.c]
+  ignore line: [Linking C executable cmTryCompileExec602265197]
+  ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec602265197.dir/link.txt --verbose=1]
+  ignore line: [/usr/bin/cc     -v CMakeFiles/cmTryCompileExec602265197.dir/CMakeCCompilerABI.c.o  -o cmTryCompileExec602265197 -rdynamic  ]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/cc]
+  ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper]
+  ignore line: [Target: x86_64-redhat-linux]
+  ignore line: [Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux]
+  ignore line: [Thread model: posix]
+  ignore line: [gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ]
+  ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/:/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.8.5/:/usr/lib/gcc/x86_64-redhat-linux/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/4.8.5/:/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec602265197' '-rdynamic' '-mtune=generic' '-march=x86-64']
+  link line: [ /usr/libexec/gcc/x86_64-redhat-linux/4.8.5/collect2 --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTryCompileExec602265197 /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/4.8.5/crtbegin.o -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5 -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../.. CMakeFiles/cmTryCompileExec602265197.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-redhat-linux/4.8.5/crtend.o /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crtn.o]
+    arg [/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/collect2] ==> ignore
+    arg [--build-id] ==> ignore
+    arg [--no-add-needed] ==> ignore
+    arg [--eh-frame-hdr] ==> ignore
+    arg [--hash-style=gnu] ==> ignore
+    arg [-m] ==> ignore
+    arg [elf_x86_64] ==> ignore
+    arg [-export-dynamic] ==> ignore
+    arg [-dynamic-linker] ==> ignore
+    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
+    arg [-o] ==> ignore
+    arg [cmTryCompileExec602265197] ==> ignore
+    arg [/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crt1.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crti.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-redhat-linux/4.8.5/crtbegin.o] ==> ignore
+    arg [-L/usr/lib/gcc/x86_64-redhat-linux/4.8.5] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/4.8.5]
+    arg [-L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64]
+    arg [-L/lib/../lib64] ==> dir [/lib/../lib64]
+    arg [-L/usr/lib/../lib64] ==> dir [/usr/lib/../lib64]
+    arg [-L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../..] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../..]
+    arg [CMakeFiles/cmTryCompileExec602265197.dir/CMakeCCompilerABI.c.o] ==> ignore
+    arg [-lgcc] ==> lib [gcc]
+    arg [--as-needed] ==> ignore
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [--no-as-needed] ==> ignore
+    arg [-lc] ==> lib [c]
+    arg [-lgcc] ==> lib [gcc]
+    arg [--as-needed] ==> ignore
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [--no-as-needed] ==> ignore
+    arg [/usr/lib/gcc/x86_64-redhat-linux/4.8.5/crtend.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crtn.o] ==> ignore
+  remove lib [gcc]
+  remove lib [gcc_s]
+  remove lib [gcc]
+  remove lib [gcc_s]
+  collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/4.8.5] ==> [/usr/lib/gcc/x86_64-redhat-linux/4.8.5]
+  collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64] ==> [/usr/lib64]
+  collapse library dir [/lib/../lib64] ==> [/lib64]
+  collapse library dir [/usr/lib/../lib64] ==> [/usr/lib64]
+  collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../..] ==> [/usr/lib]
+  implicit libs: [c]
+  implicit dirs: [/usr/lib/gcc/x86_64-redhat-linux/4.8.5;/usr/lib64;/lib64;/usr/lib]
+  implicit fwks: []
+
+
+Determining if the CXX compiler works passed with the following output:
+Change Dir: /home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp
+
+Run Build Command:/usr/bin/gmake "cmTryCompileExec3828041398/fast"
+/usr/bin/gmake -f CMakeFiles/cmTryCompileExec3828041398.dir/build.make CMakeFiles/cmTryCompileExec3828041398.dir/build
+gmake[1]: Entering directory `/home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp'
+/usr/bin/cmake -E cmake_progress_report /home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp/CMakeFiles 1
+Building CXX object CMakeFiles/cmTryCompileExec3828041398.dir/testCXXCompiler.cxx.o
+/usr/bin/c++     -o CMakeFiles/cmTryCompileExec3828041398.dir/testCXXCompiler.cxx.o -c /home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
+Linking CXX executable cmTryCompileExec3828041398
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3828041398.dir/link.txt --verbose=1
+/usr/bin/c++        CMakeFiles/cmTryCompileExec3828041398.dir/testCXXCompiler.cxx.o  -o cmTryCompileExec3828041398 -rdynamic 
+gmake[1]: Leaving directory `/home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp'
+
+
+Detecting CXX compiler ABI info compiled with the following output:
+Change Dir: /home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp
+
+Run Build Command:/usr/bin/gmake "cmTryCompileExec1700914889/fast"
+/usr/bin/gmake -f CMakeFiles/cmTryCompileExec1700914889.dir/build.make CMakeFiles/cmTryCompileExec1700914889.dir/build
+gmake[1]: Entering directory `/home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp'
+/usr/bin/cmake -E cmake_progress_report /home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp/CMakeFiles 1
+Building CXX object CMakeFiles/cmTryCompileExec1700914889.dir/CMakeCXXCompilerABI.cpp.o
+/usr/bin/c++     -o CMakeFiles/cmTryCompileExec1700914889.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp
+Linking CXX executable cmTryCompileExec1700914889
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1700914889.dir/link.txt --verbose=1
+/usr/bin/c++      -v CMakeFiles/cmTryCompileExec1700914889.dir/CMakeCXXCompilerABI.cpp.o  -o cmTryCompileExec1700914889 -rdynamic  
+Using built-in specs.
+COLLECT_GCC=/usr/bin/c++
+COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
+Target: x86_64-redhat-linux
+Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
+Thread model: posix
+gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
+COMPILER_PATH=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/:/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.8.5/:/usr/lib/gcc/x86_64-redhat-linux/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/4.8.5/:/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec1700914889' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
+ /usr/libexec/gcc/x86_64-redhat-linux/4.8.5/collect2 --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTryCompileExec1700914889 /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/4.8.5/crtbegin.o -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5 -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../.. CMakeFiles/cmTryCompileExec1700914889.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-redhat-linux/4.8.5/crtend.o /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crtn.o
+gmake[1]: Leaving directory `/home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp'
+
+
+Parsed CXX implicit link information from above output:
+  link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)]
+  ignore line: [Change Dir: /home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp]
+  ignore line: []
+  ignore line: [Run Build Command:/usr/bin/gmake "cmTryCompileExec1700914889/fast"]
+  ignore line: [/usr/bin/gmake -f CMakeFiles/cmTryCompileExec1700914889.dir/build.make CMakeFiles/cmTryCompileExec1700914889.dir/build]
+  ignore line: [gmake[1]: Entering directory `/home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp']
+  ignore line: [/usr/bin/cmake -E cmake_progress_report /home/sy/openairinterface5g/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/CMakeTmp/CMakeFiles 1]
+  ignore line: [Building CXX object CMakeFiles/cmTryCompileExec1700914889.dir/CMakeCXXCompilerABI.cpp.o]
+  ignore line: [/usr/bin/c++     -o CMakeFiles/cmTryCompileExec1700914889.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp]
+  ignore line: [Linking CXX executable cmTryCompileExec1700914889]
+  ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1700914889.dir/link.txt --verbose=1]
+  ignore line: [/usr/bin/c++      -v CMakeFiles/cmTryCompileExec1700914889.dir/CMakeCXXCompilerABI.cpp.o  -o cmTryCompileExec1700914889 -rdynamic  ]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/c++]
+  ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper]
+  ignore line: [Target: x86_64-redhat-linux]
+  ignore line: [Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux]
+  ignore line: [Thread model: posix]
+  ignore line: [gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ]
+  ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/:/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.8.5/:/usr/lib/gcc/x86_64-redhat-linux/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/4.8.5/:/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec1700914889' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
+  link line: [ /usr/libexec/gcc/x86_64-redhat-linux/4.8.5/collect2 --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTryCompileExec1700914889 /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/4.8.5/crtbegin.o -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5 -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../.. CMakeFiles/cmTryCompileExec1700914889.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-redhat-linux/4.8.5/crtend.o /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crtn.o]
+    arg [/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/collect2] ==> ignore
+    arg [--build-id] ==> ignore
+    arg [--no-add-needed] ==> ignore
+    arg [--eh-frame-hdr] ==> ignore
+    arg [--hash-style=gnu] ==> ignore
+    arg [-m] ==> ignore
+    arg [elf_x86_64] ==> ignore
+    arg [-export-dynamic] ==> ignore
+    arg [-dynamic-linker] ==> ignore
+    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
+    arg [-o] ==> ignore
+    arg [cmTryCompileExec1700914889] ==> ignore
+    arg [/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crt1.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crti.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-redhat-linux/4.8.5/crtbegin.o] ==> ignore
+    arg [-L/usr/lib/gcc/x86_64-redhat-linux/4.8.5] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/4.8.5]
+    arg [-L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64]
+    arg [-L/lib/../lib64] ==> dir [/lib/../lib64]
+    arg [-L/usr/lib/../lib64] ==> dir [/usr/lib/../lib64]
+    arg [-L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../..] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../..]
+    arg [CMakeFiles/cmTryCompileExec1700914889.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
+    arg [-lstdc++] ==> lib [stdc++]
+    arg [-lm] ==> lib [m]
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [-lgcc] ==> lib [gcc]
+    arg [-lc] ==> lib [c]
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [-lgcc] ==> lib [gcc]
+    arg [/usr/lib/gcc/x86_64-redhat-linux/4.8.5/crtend.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crtn.o] ==> ignore
+  remove lib [gcc_s]
+  remove lib [gcc]
+  remove lib [gcc_s]
+  remove lib [gcc]
+  collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/4.8.5] ==> [/usr/lib/gcc/x86_64-redhat-linux/4.8.5]
+  collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64] ==> [/usr/lib64]
+  collapse library dir [/lib/../lib64] ==> [/lib64]
+  collapse library dir [/usr/lib/../lib64] ==> [/usr/lib64]
+  collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../..] ==> [/usr/lib]
+  implicit libs: [stdc++;m;c]
+  implicit dirs: [/usr/lib/gcc/x86_64-redhat-linux/4.8.5;/usr/lib64;/lib64;/usr/lib]
+  implicit fwks: []
+
+
diff --git a/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/cmake.check_cache b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/cmake.check_cache
new file mode 100644
index 00000000000..3dccd731726
--- /dev/null
+++ b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/CMakeFiles/cmake.check_cache
@@ -0,0 +1 @@
+# This file is generated by cmake for dependency checking of the CMakeCache.txt file
diff --git a/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/testlogs/frame_config_test.txt b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/testlogs/frame_config_test.txt
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/testlogs/harq_test.txt b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/testlogs/harq_test.txt
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/testlogs/pbch_test.txt b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/testlogs/pbch_test.txt
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/testlogs/pss_test.txt b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/testlogs/pss_test.txt
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/testlogs/pucch_uci_test.txt b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/testlogs/pucch_uci_test.txt
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/testlogs/srs_test.txt b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/testlogs/srs_test.txt
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/testlogs/sss_test.txt b/openair1/SIMULATION/NR_UE_PHY/unit_tests/build/testlogs/sss_test.txt
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/openair1/SIMULATION/NR_UE_PHY/unit_tests/src/pucch_uci_test.c b/openair1/SIMULATION/NR_UE_PHY/unit_tests/src/pucch_uci_test.c
index 31fe15a6de8..12d50065fa8 100644
--- a/openair1/SIMULATION/NR_UE_PHY/unit_tests/src/pucch_uci_test.c
+++ b/openair1/SIMULATION/NR_UE_PHY/unit_tests/src/pucch_uci_test.c
@@ -165,7 +165,7 @@ void common_pucch_configuration(PHY_VARS_NR_UE *ue, uint8_t gNB_id, int pucch_in
 int test_pucch_basic_error(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *proc)
 {
   int v_return = 0;
-  bool reset_harq = FALSE;
+  bool reset_harq = false;
 
   printf("%s", tst_separator);
 
@@ -175,7 +175,7 @@ int test_pucch_basic_error(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *pr
 
   common_pucch_configuration(ue, gNB_id, TST_PUCCH_COMMON_CONFIG_INDEX_KO);
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != FALSE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != false) {
     v_return = -1;
   }
 
@@ -186,7 +186,7 @@ int test_pucch_basic_error(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *pr
 
   printf("\n  => Test : Error due to acknownlegment not set \n");
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != FALSE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != false) {
     v_return = -1;
   }
 
@@ -194,7 +194,7 @@ int test_pucch_basic_error(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *pr
 
   printf("\n  => Test : Error due to DAI not set \n");
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != FALSE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != false) {
     v_return = -1;
   }
 
@@ -202,7 +202,7 @@ int test_pucch_basic_error(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *pr
 
   harq_status->vDAI_DL = NR_DL_MAX_DAI + 1;
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != FALSE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != false) {
     v_return = -1;
   }
 
@@ -210,7 +210,7 @@ int test_pucch_basic_error(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *pr
 
   harq_status->vDAI_DL = 0;
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != FALSE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != false) {
     v_return = -1;
   }
 
@@ -218,7 +218,7 @@ int test_pucch_basic_error(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *pr
 
   harq_status->send_harq_status = 1;  /* ack ready to be send */
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != FALSE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != false) {
     v_return = -1;
   }
 
@@ -228,7 +228,7 @@ int test_pucch_basic_error(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *pr
 
   harq_status->vDAI_DL = 1;
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != FALSE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != false) {
     v_return = -1;
   }
 
@@ -236,7 +236,7 @@ int test_pucch_basic_error(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *pr
 
   printf("\n  => Test : Error due to PUCCH format with multiple cells not already implemented \n");
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != FALSE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != false) {
     v_return = -1;
   }
 
@@ -260,7 +260,7 @@ int test_pucch_basic_error(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *pr
 int test_pucch_common_config_single_transport_block(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *proc)
 {
   int v_return = 0;
-  bool reset_harq = FALSE;
+  bool reset_harq = false;
 
   printf("%s", tst_separator);
 
@@ -273,7 +273,7 @@ int test_pucch_common_config_single_transport_block(PHY_VARS_NR_UE *ue, int gNB_
 
   printf("\n  => Test : PUCCH format from common config in prach mode: one positive downlink ACKnowledgment \n");
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != TRUE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != true) {
    v_return = -1;
   }
 
@@ -281,7 +281,7 @@ int test_pucch_common_config_single_transport_block(PHY_VARS_NR_UE *ue, int gNB_
 
   printf("\n  => Test : PUCCH format from common config in prach mode: one negative downlink ACKnowledgment \n");
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != TRUE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != true) {
    v_return = -1;
   }
 
@@ -304,7 +304,7 @@ int test_pucch_common_config_single_transport_block(PHY_VARS_NR_UE *ue, int gNB_
 
   printf("\n  => Test : PUCCH format from common config in dedicated mode: two positive downlink ACKnowledgments \n");
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != TRUE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != true) {
     v_return = -1;
   }
 
@@ -312,7 +312,7 @@ int test_pucch_common_config_single_transport_block(PHY_VARS_NR_UE *ue, int gNB_
 
   printf("\n  => Test : PUCCH format from common config in dedicated mode: one positive and one negative downlink ACKnowledgments \n");
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != TRUE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != true) {
     v_return = -1;
   }
 
@@ -320,22 +320,22 @@ int test_pucch_common_config_single_transport_block(PHY_VARS_NR_UE *ue, int gNB_
 
   printf("\n  => Test : PUCCH format from common config in dedicated mode: two negative downlink ACKnowledgments \n");
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != TRUE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != true) {
     v_return = -1;
   }
 
   harq_status->ack = DL_ACK;
-  reset_harq = TRUE;
+  reset_harq = true;
 
   printf("\n  => Test : PUCCH format from common config in dedicated mode: no resource is found \n");
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != FALSE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != false) {
     v_return = -1;
   }
 
   printf("\n  => Test : PUCCH format from common config in dedicated mode: no PUCCH after reset of pending harq ACKnowledgments \n");
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != FALSE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != false) {
     v_return = -1;
   }
 
@@ -362,7 +362,7 @@ void init_pucch_dedicated_configuration(PHY_VARS_NR_UE *ue, uint8_t gNB_id)
   int i,j;
 
   /* set cell group parameters which are supported */
-  ue->cell_group_config.physicalCellGroupConfig.harq_ACK_SpatialBundlingPUCCH = FALSE;
+  ue->cell_group_config.physicalCellGroupConfig.harq_ACK_SpatialBundlingPUCCH = false;
   ue->cell_group_config.physicalCellGroupConfig.pdsch_HARQ_ACK_Codebook = dynamic;
 
   ue->PDSCH_ServingCellConfig.codeBlockGroupTransmission = NULL;
@@ -554,7 +554,7 @@ int test_pucch_dedicated_single_transport_block(PHY_VARS_NR_UE *ue, int gNB_id,
 #define   TST_NB_STEP_SINGLE_TRANSPORT_BLOCK      (4)
 
   int v_return = 0;
-  int reset_harq = FALSE;
+  int reset_harq = false;
   int dl_harq_pid[TST_NB_STEP_SINGLE_TRANSPORT_BLOCK] = {TST_DL_HARQ_PID_FIRST, TST_DL_HARQ_PID_SECOND, TST_DL_HARQ_PID_THIRD, TST_DL_HARQ_PID_FOURTH };
   int pucch_resource_indicator[TST_NB_STEP_SINGLE_TRANSPORT_BLOCK][2] = { { 0, 4 }, { 1, 0 } , { 1, 3 } , { 5, 7 } };
   NR_UE_HARQ_STATUS_t *harq_status;
@@ -575,7 +575,7 @@ int test_pucch_dedicated_single_transport_block(PHY_VARS_NR_UE *ue, int gNB_id,
 
   printf("\n  => Test : PUCCH format from dedicated config : pucch resource indicator is invalid \n");
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != FALSE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != false) {
     v_return = -1;
   }
 
@@ -595,14 +595,14 @@ int test_pucch_dedicated_single_transport_block(PHY_VARS_NR_UE *ue, int gNB_id,
 
       /* reset ack context on last test */
       if ((i == (TST_NB_STEP_SINGLE_TRANSPORT_BLOCK-1)) && (j == 1)) {
-        reset_harq = TRUE;
+        reset_harq = true;
       }
 
       harq_status->pucch_resource_indicator = pucch_resource_indicator[i][j];
 
       printf("\n  => Test : PUCCH format from dedicated config with 1 transport block : with %d downlink ACKnowledgments and pucch resource indicator %d \n", i+1, pucch_resource_indicator[i][j]);
 
-      if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != TRUE) {
+      if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != true) {
         v_return = -1;
       }
     }
@@ -627,11 +627,11 @@ int test_pucch_dedicated_single_transport_block(PHY_VARS_NR_UE *ue, int gNB_id,
     harq_status->pucch_resource_indicator = pucch_resource_indicator[i][0];
   }
 
-  reset_harq = TRUE;
+  reset_harq = true;
 
   printf("\n  => Test : PUCCH format from dedicated config with 1 transport block and missed PDSCH : with %d downlink ACKnowledgments and pucch resource indicator %d \n", i+1, pucch_resource_indicator[3][0]);
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != TRUE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != true) {
     v_return = -1;
   }
 
@@ -659,7 +659,7 @@ int test_pucch_dedicated_two_transport_blocks(PHY_VARS_NR_UE *ue, int gNB_id, UE
 #define   TST_NB_STEP_TWO_TRANSPORT_BLOCKS      (4)
 
   int v_return = 0;
-  int reset_harq = FALSE;
+  int reset_harq = false;
   int dl_harq_pid[TST_NB_STEP_TWO_TRANSPORT_BLOCKS] = {TST_DL_HARQ_PID_FIRST, TST_DL_HARQ_PID_SECOND, TST_DL_HARQ_PID_THIRD, TST_DL_HARQ_PID_FOURTH };
   int pucch_resource_indicator[TST_NB_STEP_TWO_TRANSPORT_BLOCKS][2] = { { 0, 1 }, { 3, 7 } , { 2 , 4 } , { 4 , 6 } };
   NR_UE_HARQ_STATUS_t *harq_status;
@@ -694,7 +694,7 @@ int test_pucch_dedicated_two_transport_blocks(PHY_VARS_NR_UE *ue, int gNB_id, UE
 
       /* reset ack context on last test */
       if ((i == (TST_NB_STEP_TWO_TRANSPORT_BLOCKS-1)) && (j == 1)) {
-        reset_harq = TRUE;
+        reset_harq = true;
       }
 
       harq_status = &ue->dlsch[proc->thread_id][gNB_id][0]->harq_processes[dl_harq_pid[i]].harq_ack;
@@ -703,7 +703,7 @@ int test_pucch_dedicated_two_transport_blocks(PHY_VARS_NR_UE *ue, int gNB_id, UE
 
       printf("\n  => Test : PUCCH format from dedicated config with 2 transport blocks : with %d downlink ACKnowledgments and pucch resource indicator %d \n", i+1, pucch_resource_indicator[i][j]);
 
-      if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != TRUE) {
+      if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != true) {
         printf("Test fail \n");
         v_return = -1;
       }
@@ -714,7 +714,7 @@ int test_pucch_dedicated_two_transport_blocks(PHY_VARS_NR_UE *ue, int gNB_id, UE
   /* some transport blocks have been missed and they need to be nack by UE in order to be retransmitted by the network */
   /* here first and third block receptions have been missed */
 
-  reset_harq = TRUE;
+  reset_harq = true;
 
   for (int i = 1; i < TST_NB_STEP_TWO_TRANSPORT_BLOCKS; i = i + 1) {
 
@@ -743,7 +743,7 @@ int test_pucch_dedicated_two_transport_blocks(PHY_VARS_NR_UE *ue, int gNB_id, UE
 
   printf("\n  => Test : PUCCH format from dedicated config with 2 transport blocks and 1 missed PDSCH : with %d downlink ACKnowledgments and pucch resource indicator %d \n", 4, pucch_resource_indicator[3][0]);
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != TRUE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != true) {
     printf("Test fail \n");
     v_return = -1;
   }
@@ -775,7 +775,7 @@ int test_pucch_dedicated_two_transport_blocks(PHY_VARS_NR_UE *ue, int gNB_id, UE
     }
   }
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != TRUE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != true) {
    printf("Test fail \n");
    v_return = -1;
   }
@@ -907,7 +907,7 @@ int test_sr_alone_dedicated(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *p
 
   tst_scheduling_request_payload = 0;
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != FALSE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != false) {
    printf("Test fail \n");
    v_return = -1;
   }
@@ -916,7 +916,7 @@ int test_sr_alone_dedicated(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *p
 
   tst_scheduling_request_payload = 1;
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != TRUE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != true) {
     printf("Test fail \n");
     v_return = -1;
   }
@@ -929,7 +929,7 @@ int test_sr_alone_dedicated(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *p
 
   tst_scheduling_request_payload = 1;
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != TRUE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != true) {
     printf("Test fail \n");
     v_return = -1;
   }
@@ -958,7 +958,7 @@ int test_sr_alone_dedicated(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *p
 int test_sr_ack_dedicated(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *proc)
 {
   int v_return = 0;
-  int reset_harq = 0;
+  bool reset_harq = false;
   int sr_config_id = 0;
   int sr_resource_id = 0;
   int sr_offset = 0;
@@ -988,7 +988,7 @@ int test_sr_ack_dedicated(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *pro
 
   tst_scheduling_request_payload = 0;  /* set sr payload */
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != TRUE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != true) {
     printf("Test fail \n");
     v_return = -1;
   }
@@ -997,7 +997,7 @@ int test_sr_ack_dedicated(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *pro
 
   tst_scheduling_request_payload = 1;  /* set sr payload */
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != TRUE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != true) {
    printf("Test fail \n");
    v_return = -1;
   }
@@ -1006,7 +1006,7 @@ int test_sr_ack_dedicated(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *pro
 
   harq_status->pucch_resource_indicator = pucch_resource_indicator[1];
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != TRUE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != true) {
     printf("Test fail \n");
     v_return = -1;
   }
@@ -1027,7 +1027,7 @@ int test_sr_ack_dedicated(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *pro
 
   tst_scheduling_request_payload = 1;  /* set sr payload */
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != TRUE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != true) {
     printf("Test fail \n");
     v_return = -1;
   }
@@ -1035,9 +1035,9 @@ int test_sr_ack_dedicated(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *pro
   printf("\n  => Test : PUCCH format from dedicated config with a positive scheduling request and two positive acks \n");
 
   harq_status->pucch_resource_indicator = pucch_resource_indicator[1];
-  reset_harq = TRUE;
+  reset_harq = true;
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != TRUE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != true) {
    printf("Test fail \n");
    v_return = -1;
   }
@@ -1065,7 +1065,7 @@ int test_sr_ack_dedicated(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *pro
 int test_csi_dedicated(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *proc)
 {
   int v_return = 0;
-  int reset_harq = FALSE;
+  int reset_harq = false;
   int sr_config_id = 0;
   int sr_resource_id = 0;
   int sr_offset = 0;
@@ -1079,7 +1079,7 @@ int test_csi_dedicated(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *proc)
 
   printf("\n  => Test : PUCCH format from dedicated config with CSI alone \n");
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != TRUE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != true) {
     printf("Test fail \n");
     v_return = -1;
   }
@@ -1102,7 +1102,7 @@ int test_csi_dedicated(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *proc)
 
   ue->pucch_config_dedicated_nr[gNB_id].formatConfig[2-1]->simultaneousHARQ_ACK_CSI = enable_feature; /* format 2 */
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != TRUE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != true) {
     printf("Test fail \n");
     v_return = -1;
   }
@@ -1115,9 +1115,9 @@ int test_csi_dedicated(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *proc)
 
   tst_scheduling_request_payload = 0;  /* set sr payload */
 
-  reset_harq = TRUE;
+  reset_harq = true;
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != TRUE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != true) {
     printf("Test fail \n");
     v_return = -1;
   }
@@ -1126,7 +1126,7 @@ int test_csi_dedicated(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *proc)
 
   harq_status->pucch_resource_indicator = pucch_resource_indicator[4];
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != TRUE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != true) {
     printf("Test fail \n");
     v_return = -1;
   }
@@ -1135,7 +1135,7 @@ int test_csi_dedicated(PHY_VARS_NR_UE *ue, int gNB_id, UE_nr_rxtx_proc_t *proc)
 
   printf("\n  => Test : PUCCH format from dedicated config with positive SR and CSI \n");
 
-  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != TRUE) {
+  if (pucch_procedures_ue_nr(ue, gNB_id, proc, reset_harq) != true) {
     printf("Test fail \n");
     v_return = -1;
   }
diff --git a/openair1/SIMULATION/TOOLS/rangen_double.c b/openair1/SIMULATION/TOOLS/rangen_double.c
index 82b1557a5bf..0ba9e196b13 100644
--- a/openair1/SIMULATION/TOOLS/rangen_double.c
+++ b/openair1/SIMULATION/TOOLS/rangen_double.c
@@ -42,7 +42,6 @@ void randominit(unsigned seed_init)
 {
   int i;
   // this need to be integrated with the existing rng, like taus: navid
-  printf("Initializing random number generator, seed %x\n",seed_init);
 
   if (seed_init == 0) {
     srand((unsigned)time(NULL));
@@ -51,6 +50,7 @@ void randominit(unsigned seed_init)
   } else {
     seed = seed_init;
   }
+  printf("Initializing random number generator, seed %x\n",seed);
 
   if (seed % 2 == 0) seed += 1; /* seed and mod are relative prime */
 
diff --git a/openair2/COMMON/commonDef.h b/openair2/COMMON/commonDef.h
index b37230cdd45..e18db881f04 100644
--- a/openair2/COMMON/commonDef.h
+++ b/openair2/COMMON/commonDef.h
@@ -43,27 +43,6 @@ Description Contains global common definitions
 #include <stddef.h>
 #include <stdbool.h>
 
-/* boolean_t is also defined in openair2/COMMON/platform_types.h
- * let's protect potential redefinition
- */
-
-#ifndef _BOOLEAN_T_DEFINED_
-#define _BOOLEAN_T_DEFINED_
-
-typedef signed char        boolean_t;
-
-#if !defined(TRUE)
-#define TRUE               (boolean_t)0x01
-#endif
-
-#if !defined(FALSE)
-#define FALSE              (boolean_t)0x00
-#endif
-
-#define BOOL_NOT(b) (b^TRUE)
-
-#endif /* _BOOLEAN_T_DEFINED_ */
-
 #define NAS_UE_ID_FMT "0x%06x"
 
 /****************************************************************************/
diff --git a/openair2/COMMON/f1ap_messages_def.h b/openair2/COMMON/f1ap_messages_def.h
index 0e857f3a83c..f28e0e5ddfc 100644
--- a/openair2/COMMON/f1ap_messages_def.h
+++ b/openair2/COMMON/f1ap_messages_def.h
@@ -46,6 +46,8 @@ MESSAGE_DEF(F1AP_DL_RRC_MESSAGE              , MESSAGE_PRIORITY_MED, f1ap_dl_rrc
 //MESSAGE_DEF(F1AP_INITIAL_CONTEXT_SETUP_REQ , MESSAGE_PRIORITY_MED, f1ap_initial_context_setup_req_t , f1ap_initial_context_setup_req )
 MESSAGE_DEF(F1AP_UE_CONTEXT_SETUP_REQ,  MESSAGE_PRIORITY_MED, f1ap_ue_context_setup_t, f1ap_ue_context_setup_req)
 MESSAGE_DEF(F1AP_UE_CONTEXT_SETUP_RESP, MESSAGE_PRIORITY_MED, f1ap_ue_context_setup_t, f1ap_ue_context_setup_resp)
+MESSAGE_DEF(F1AP_UE_CONTEXT_MODIFICATION_REQ,  MESSAGE_PRIORITY_MED, f1ap_ue_context_setup_t, f1ap_ue_context_modification_req)
+MESSAGE_DEF(F1AP_UE_CONTEXT_MODIFICATION_RESP, MESSAGE_PRIORITY_MED, f1ap_ue_context_setup_t, f1ap_ue_context_modification_resp)
 
 
 
diff --git a/openair2/COMMON/f1ap_messages_types.h b/openair2/COMMON/f1ap_messages_types.h
index cb1a8c95777..ae050e2bc2b 100644
--- a/openair2/COMMON/f1ap_messages_types.h
+++ b/openair2/COMMON/f1ap_messages_types.h
@@ -39,15 +39,15 @@
 #define F1AP_INITIAL_UL_RRC_MESSAGE(mSGpTR)        (mSGpTR)->ittiMsg.f1ap_initial_ul_rrc_message
 #define F1AP_UL_RRC_MESSAGE(mSGpTR)                (mSGpTR)->ittiMsg.f1ap_ul_rrc_message
 #define F1AP_UE_CONTEXT_SETUP_REQ(mSGpTR)          (mSGpTR)->ittiMsg.f1ap_ue_context_setup_req
-#define F1AP_UE_CONTEXT_SETUP_RESP(mSGpTR)          (mSGpTR)->ittiMsg.f1ap_ue_context_setup_resp
+#define F1AP_UE_CONTEXT_SETUP_RESP(mSGpTR)         (mSGpTR)->ittiMsg.f1ap_ue_context_setup_resp
 #define F1AP_UE_CONTEXT_RELEASE_RESP(mSGpTR)       (mSGpTR)->ittiMsg.f1ap_ue_context_release_resp
+#define F1AP_UE_CONTEXT_MODIFICATION_REQ(mSGpTR)   (mSGpTR)->ittiMsg.f1ap_ue_context_modification_req
 #define F1AP_UE_CONTEXT_MODIFICATION_RESP(mSGpTR)  (mSGpTR)->ittiMsg.f1ap_ue_context_modification_resp
 #define F1AP_UE_CONTEXT_MODIFICATION_FAIL(mSGpTR)  (mSGpTR)->ittiMsg.f1ap_ue_context_modification_fail
 
 #define F1AP_DL_RRC_MESSAGE(mSGpTR)                (mSGpTR)->ittiMsg.f1ap_dl_rrc_message
 #define F1AP_UE_CONTEXT_RELEASE_REQ(mSGpTR)        (mSGpTR)->ittiMsg.f1ap_ue_context_release_req
 #define F1AP_UE_CONTEXT_RELEASE_CMD(mSGpTR)        (mSGpTR)->ittiMsg.f1ap_ue_context_release_req
-#define F1AP_UE_CONTEXT_MODIFICATION_REQ(mSGpTR)   (mSGpTR)->ittiMsg.f1ap_ue_context_modification_req
 
 /* Length of the transport layer address string
  * 160 bits / 8 bits by char.
@@ -60,7 +60,9 @@
 #define F1AP_MAX_NB_CELLS 2
 
 #define F1AP_MAX_NO_OF_TNL_ASSOCIATIONS 32
-#define F1AP_MAX_NO_UE_ID 1024 
+#define F1AP_MAX_NO_UE_ID 1024
+#define F1AP_MAX_DU2CU_RRC_LENGTH 1024
+
 typedef struct f1ap_net_ip_address_s {
   unsigned ipv4:1;
   unsigned ipv6:1;
@@ -307,7 +309,7 @@ typedef struct f1ap_initial_ul_rrc_message_s {
   uint16_t crnti;
   uint8_t *rrc_container;
   int      rrc_container_length;
-  char du2cu_rrc_container[200];
+  char     du2cu_rrc_container[F1AP_MAX_DU2CU_RRC_LENGTH];
   int      du2cu_rrc_container_length;
 } f1ap_initial_ul_rrc_message_t;
 
@@ -343,6 +345,35 @@ typedef struct f1ap_rb_failed_to_be_setup_s {
   long           rb_id;
 } f1ap_rb_failed_to_be_setup_t;
 
+typedef struct cu_to_du_rrc_information_s {
+  uint8_t * cG_ConfigInfo;
+  uint32_t   cG_ConfigInfo_length;
+  uint8_t * uE_CapabilityRAT_ContainerList;
+  uint32_t   uE_CapabilityRAT_ContainerList_length;
+  uint8_t * measConfig;
+  uint32_t   measConfig_length;
+}cu_to_du_rrc_information_t;
+
+typedef struct du_to_du_rrc_information_s {
+  uint8_t * cellGroupConfig;
+  uint8_t   cellGroupConfig_length;
+  uint8_t * measGapConfig;
+  uint8_t   measGapConfig_length;
+  uint8_t * requestedP_MaxFR1;
+  uint8_t   requestedP_MaxFR1_length;
+}du_to_cu_rrc_information_t;
+
+typedef enum QoS_information_e {
+  NG_RAN_QoS    = 0,
+  EUTRAN_QoS    = 1,
+} QoS_information_t;
+
+typedef enum ReconfigurationCompl_e {
+  RRCreconf_info_not_present = 0,
+  RRCreconf_failure          = 1,
+  RRCreconf_success          = 2,
+} ReconfigurationCompl_t;
+
 typedef struct f1ap_ue_context_setup_s {
   uint32_t gNB_CU_ue_id;    // BK: need to replace by use from rnti
   uint32_t gNB_DU_ue_id;
@@ -355,40 +386,27 @@ typedef struct f1ap_ue_context_setup_s {
   uint8_t servCellIndex;
   uint8_t *cellULConfigured;
   uint32_t servCellId;
-  uint8_t *cu_to_du_rrc_information;
+  cu_to_du_rrc_information_t *cu_to_du_rrc_information;
   uint8_t  cu_to_du_rrc_information_length;
-  uint8_t *du_to_cu_rrc_information;
-  uint8_t  du_to_cu_rrc_information_length;
-  f1ap_drb_to_be_setup_t *drbs_to_be_setup; // BK: need to replace by s1ap_initial_context_setup_req
-  uint8_t  drbs_to_be_setup_length;       // BK: need to replace by s1ap_initial_context_setup_req
+  //uint8_t *du_to_cu_rrc_information;
+  du_to_cu_rrc_information_t *du_to_cu_rrc_information;
+  uint32_t  du_to_cu_rrc_information_length;
+  f1ap_drb_to_be_setup_t *drbs_to_be_setup;
+  uint8_t  drbs_to_be_setup_length;
+  f1ap_drb_to_be_setup_t *drbs_to_be_modified;
+    uint8_t  drbs_to_be_modified_length;
+  QoS_information_t QoS_information_type;
   uint8_t  drbs_failed_to_be_setup_length;
   f1ap_rb_failed_to_be_setup_t *drbs_failed_to_be_setup;
   f1ap_srb_to_be_setup_t *srbs_to_be_setup;
   uint8_t  srbs_to_be_setup_length;
   uint8_t  srbs_failed_to_be_setup_length;
   f1ap_rb_failed_to_be_setup_t *srbs_failed_to_be_setup;
-  s1ap_initial_context_setup_req_t *s1ap_initial_context_setup_req;
-   // coniatner for the rrc_eNB_generate_SecurityModeCommand message
+  ReconfigurationCompl_t ReconfigComplOutcome;
   uint8_t *rrc_container;
   int      rrc_container_length;
 } f1ap_ue_context_setup_t;
 
-typedef struct f1ap_ue_context_setup_resp_s {
-  uint32_t gNB_CU_ue_id;    // BK: need to replace by use from rnti
-  uint32_t gNB_DU_ue_id;
-  uint16_t rnti;
-  uint8_t  du_to_cu_rrc_information[1024 /*Arbitrarily big enough*/];
-  uint32_t  du_to_cu_rrc_information_length;
-  f1ap_drb_to_be_setup_t *drbs_setup; // BK: need to replace by s1ap_initial_context_setup_req
-  uint8_t  drbs_setup_length;       // BK: need to replace by s1ap_initial_context_setup_req
-  f1ap_srb_to_be_setup_t *srbs_setup;
-  uint8_t  srbs_setup_length;
-  uint8_t  srbs_failed_to_be_setup_length;
-  f1ap_rb_failed_to_be_setup_t *srbs_failed_to_be_setup;
-  uint8_t  drbs_failed_to_be_setup_length;
-  f1ap_rb_failed_to_be_setup_t *drbs_failed_to_be_setup;
-} f1ap_ue_context_setup_resp_t;
-
 typedef enum F1ap_Cause_e {
   F1AP_CAUSE_NOTHING,  /* No components present */
   F1AP_CAUSE_RADIO_NETWORK,
diff --git a/openair2/COMMON/gtpv1_u_messages_def.h b/openair2/COMMON/gtpv1_u_messages_def.h
index 44e9d4fbdf2..e0e5db5b7f7 100644
--- a/openair2/COMMON/gtpv1_u_messages_def.h
+++ b/openair2/COMMON/gtpv1_u_messages_def.h
@@ -27,4 +27,5 @@ MESSAGE_DEF(GTPV1U_ENB_END_MARKER_REQ,      MESSAGE_PRIORITY_MED, gtpv1u_enb_end
 MESSAGE_DEF(GTPV1U_ENB_END_MARKER_IND,      MESSAGE_PRIORITY_MED, gtpv1u_enb_end_marker_ind_t,    Gtpv1uEndMarkerInd)
 MESSAGE_DEF(GTPV1U_REQ,                     MESSAGE_PRIORITY_MED, Gtpv1uReq,    gtpv1uReq)
 
-MESSAGE_DEF(GTPV1U_GNB_TUNNEL_DATA_REQ,     MESSAGE_PRIORITY_MED, gtpv1u_gnb_tunnel_data_req_t,    NRGtpv1uTunnelDataReq)
+MESSAGE_DEF(GTPV1U_GNB_TUNNEL_DATA_REQ,          MESSAGE_PRIORITY_MED, gtpv1u_gnb_tunnel_data_req_t,    NRGtpv1uTunnelDataReq)
+MESSAGE_DEF(GTPV1U_DU_BUFFER_REPORT_REQ,     MESSAGE_PRIORITY_MED, gtpv1u_DU_buffer_report_req_t,    NRGtpv1uBufferReportReq)
diff --git a/openair2/COMMON/gtpv1_u_messages_types.h b/openair2/COMMON/gtpv1_u_messages_types.h
index 096f0f46972..7758395ee43 100644
--- a/openair2/COMMON/gtpv1_u_messages_types.h
+++ b/openair2/COMMON/gtpv1_u_messages_types.h
@@ -39,6 +39,8 @@
 
 #define GTPV1U_GNB_TUNNEL_DATA_REQ(mSGpTR)    (mSGpTR)->ittiMsg.NRGtpv1uTunnelDataReq
 
+#define GTPV1U_DU_BUFFER_REPORT_REQ(mSGpTR)    (mSGpTR)->ittiMsg.NRGtpv1uBufferReportReq
+
 #define GTPV1U_ALL_TUNNELS_TEID (teid_t)0xFFFFFFFF
 
 typedef struct gtpv1u_enb_create_x2u_tunnel_req_s {
@@ -179,6 +181,7 @@ typedef struct gtpv1u_gnb_create_tunnel_req_s {
   int                    num_tunnels;
   //teid_t                 upf_NGu_teid[NR_GTPV1U_MAX_BEARERS_PER_UE];  ///< Tunnel Endpoint Identifier
   teid_t                 outgoing_teid[NR_GTPV1U_MAX_BEARERS_PER_UE];
+  int outgoing_qfi[NR_GTPV1U_MAX_BEARERS_PER_UE];
   pdusessionid_t         pdusession_id[NR_GTPV1U_MAX_BEARERS_PER_UE];
   ebi_t                  incoming_rb_id[NR_GTPV1U_MAX_BEARERS_PER_UE];
   //ebi_t                  outgoing_rb_id[NR_GTPV1U_MAX_BEARERS_PER_UE];
@@ -213,4 +216,10 @@ typedef struct gtpv1u_gnb_tunnel_data_req_s {
   pdusessionid_t         pdusession_id;
 } gtpv1u_gnb_tunnel_data_req_t;
 
+typedef struct gtpv1u_DU_buffer_report_req_s {
+  uint32_t               buffer_availability;
+  rnti_t                 rnti;
+  pdusessionid_t         pdusession_id;
+} gtpv1u_DU_buffer_report_req_t;
+
 #endif /* GTPV1_U_MESSAGES_TYPES_H_ */
diff --git a/openair2/COMMON/mac_messages_types.h b/openair2/COMMON/mac_messages_types.h
index cad7b9f172b..e43d0007e73 100644
--- a/openair2/COMMON/mac_messages_types.h
+++ b/openair2/COMMON/mac_messages_types.h
@@ -58,7 +58,7 @@
 // Some constants from "LAYER2/MAC/defs.h"
 #define BCCH_SDU_SIZE                           (512)
 #define BCCH_SDU_MBMS_SIZE                      (512)
-#define CCCH_SDU_SIZE                           (512)
+#define CCCH_SDU_SIZE                           (1024)
 #define MCCH_SDU_SIZE                           (512)
 #define PCCH_SDU_SIZE                           (512)
 
diff --git a/openair2/COMMON/mac_rlc_primitives.h b/openair2/COMMON/mac_rlc_primitives.h
index 4e3e22781c5..3d6dcc81003 100644
--- a/openair2/COMMON/mac_rlc_primitives.h
+++ b/openair2/COMMON/mac_rlc_primitives.h
@@ -145,7 +145,7 @@ struct mac_tx_tb_management {
 struct mac_rx_tb_management {
   unsigned char             *data_ptr;
   tb_size_t                  tb_size;      // in bits
-  boolean_t                  valid_checksum;
+  bool                       valid_checksum;
   unsigned char              first_bit;    // 0 if data starts on byte boundary(b7), 1 if b6, 2 if b5, etc
 };
 
diff --git a/openair2/COMMON/platform_types.h b/openair2/COMMON/platform_types.h
index 67300da308b..f2297219936 100644
--- a/openair2/COMMON/platform_types.h
+++ b/openair2/COMMON/platform_types.h
@@ -32,35 +32,12 @@
 
 #if !defined(NAS_NETLINK)
 #include <stdint.h>
+#include <stdbool.h>
 #else
 #include <linux/types.h>
 typedef void * intptr_t;
 #endif
 
-//-----------------------------------------------------------------------------
-// GENERIC TYPES
-//-----------------------------------------------------------------------------
-
-/* boolean_t is also defined in openair2/COMMON/commonDef.h,
- * let's protect potential redefinition
- */
-#ifndef _BOOLEAN_T_DEFINED_
-  #define _BOOLEAN_T_DEFINED_
-
-  typedef signed char        boolean_t;
-
-  #if !defined(TRUE)
-    #define TRUE               (boolean_t)0x01
-  #endif
-
-  #if !defined(FALSE)
-    #define FALSE              (boolean_t)0x00
-  #endif
-
-  #define BOOL_NOT(b) (b^TRUE)
-
-#endif /* _BOOLEAN_T_DEFINED_ */
-
 //-----------------------------------------------------------------------------
 // GENERIC ACCESS STRATUM TYPES
 //-----------------------------------------------------------------------------
@@ -77,25 +54,25 @@ typedef int16_t               smodule_id_t;
 typedef long              rb_id_t;
 typedef long              srb_id_t;
 
-typedef boolean_t             MBMS_flag_t;
-#define  MBMS_FLAG_NO         FALSE
-#define  MBMS_FLAG_YES        TRUE
+typedef bool MBMS_flag_t;
+#define MBMS_FLAG_NO  false
+#define MBMS_FLAG_YES true
 
-typedef boolean_t             eNB_flag_t;
-#define  ENB_FLAG_NO          FALSE
-#define  ENB_FLAG_YES         TRUE
+typedef bool eNB_flag_t;
+#define ENB_FLAG_NO  false
+#define ENB_FLAG_YES true
 
-typedef boolean_t             gNB_flag_t;
-#define  GNB_FLAG_NO          FALSE
-#define  GNB_FLAG_YES         TRUE
+typedef bool gNB_flag_t;
+#define GNB_FLAG_NO  false
+#define GNB_FLAG_YES true
 
-typedef boolean_t             srb_flag_t;
-#define  SRB_FLAG_NO          FALSE
-#define  SRB_FLAG_YES         TRUE
+typedef bool srb_flag_t;
+#define SRB_FLAG_NO  false
+#define SRB_FLAG_YES true
 
-typedef boolean_t             sl_discovery_flag_t;
-#define  SL_DISCOVERY_FLAG_NO          FALSE
-#define  SL_DISCOVERY_FLAG_YES         TRUE
+typedef bool sl_discovery_flag_t;
+#define SL_DISCOVERY_FLAG_NO  false
+#define SL_DISCOVERY_FLAG_YES true
 
 typedef enum link_direction_e {
   UNKNOWN_DIR          = 0,
@@ -152,8 +129,8 @@ typedef uint16_t           rlc_usn_t;
 typedef int32_t            rlc_buffer_occupancy_t;
 typedef signed int         rlc_op_status_t;
 
-#define  SDU_CONFIRM_NO          FALSE
-#define  SDU_CONFIRM_YES         TRUE
+#define  SDU_CONFIRM_NO          false
+#define  SDU_CONFIRM_YES         true
 //-----------------------------------------------------------------------------
 // PDCP TYPES
 //-----------------------------------------------------------------------------
@@ -242,7 +219,7 @@ typedef struct protocol_ctxt_s {
   frame_t     frame;         /*!< \brief  LTE frame number.*/
   sub_frame_t subframe;      /*!< \brief  LTE sub frame number.*/
   eNB_index_t eNB_index;     /*!< \brief  valid for UE indicating the index of connected eNB(s)      */
-  boolean_t		brOption;
+  bool        brOption;
 } protocol_ctxt_t;
 // warning time hardcoded
 #define PROTOCOL_CTXT_TIME_MILLI_SECONDS(CtXt_h) ((CtXt_h)->frame*10+(CtXt_h)->subframe)
diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h
index 5b214cf95a9..18e7c4bd18b 100644
--- a/openair2/COMMON/rrc_messages_types.h
+++ b/openair2/COMMON/rrc_messages_types.h
@@ -167,7 +167,7 @@ typedef struct RadioResourceConfig_s {
   long                    ue_TransmissionMode;
   long                    ue_multiple_max;
   //SIB2 BR Options
-  long       *preambleTransMax_CE_r13;
+  long       preambleTransMax_CE_r13;
   BOOLEAN_t     prach_ConfigCommon_v1310;
   BOOLEAN_t            *mpdcch_startSF_CSS_RA_r13;
   long        mpdcch_startSF_CSS_RA_r13_val;
@@ -417,7 +417,6 @@ typedef struct NRRrcConfigurationReq_s {
   uint8_t                 num_plmn;
   NR_ServingCellConfigCommon_t *scc;
   NR_ServingCellConfig_t  *scd;
-  int                     ssb_SubcarrierOffset;
   int                     sib1_tda;
   rrc_pdsch_AntennaPorts_t pdsch_AntennaPorts;
   int                     pusch_AntennaPorts;
diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c
index f4550f63a15..00ffd4cc134 100644
--- a/openair2/ENB_APP/enb_config.c
+++ b/openair2/ENB_APP/enb_config.c
@@ -583,9 +583,9 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
                              "Failed to parse eNB configuration file %s, enb %u define %s: ENABLE,DISABLE!\n",
                              RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED);
               else if (strcmp(ccparams_lte.prach_high_speed, "ENABLE") == 0) {
-                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_high_speed = TRUE;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_high_speed = true;
               } else if (strcmp(ccparams_lte.prach_high_speed, "DISABLE") == 0) {
-                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_high_speed = FALSE;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_high_speed = false;
               } else
                 AssertFatal (0,
                              "Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n",
@@ -689,9 +689,9 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
                              "Failed to parse eNB configuration file %s, enb %u define %s: ENABLE,DISABLE!\n",
                              RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM);
               else if (strcmp(ccparams_lte.pusch_enable64QAM, "ENABLE") == 0) {
-                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_enable64QAM = TRUE;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_enable64QAM = true;
               } else if (strcmp(ccparams_lte.pusch_enable64QAM, "DISABLE") == 0) {
-                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_enable64QAM = FALSE;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_enable64QAM = false;
               } else
                 AssertFatal (0,
                              "Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n",
@@ -702,9 +702,9 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
                              "Failed to parse eNB configuration file %s, enb %u define %s: ENABLE,DISABLE!\n",
                              RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN);
               else if (strcmp(ccparams_lte.pusch_groupHoppingEnabled, "ENABLE") == 0) {
-                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled = TRUE;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled = true;
               } else if (strcmp(ccparams_lte.pusch_groupHoppingEnabled, "DISABLE") == 0) {
-                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled= FALSE;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled= false;
               } else
                 AssertFatal (0,
                              "Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n",
@@ -723,9 +723,9 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
                              "Failed to parse eNB configuration file %s, enb %u define %s: ENABLE,DISABLE!\n",
                              RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN);
               else if (strcmp(ccparams_lte.pusch_sequenceHoppingEnabled, "ENABLE") == 0) {
-                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = TRUE;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = true;
               } else if (strcmp(ccparams_lte.pusch_sequenceHoppingEnabled, "DISABLE") == 0) {
-                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = FALSE;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = false;
               } else
                 AssertFatal (0,
                              "Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n",
@@ -766,15 +766,15 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
                      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_duration,ccparams_lte.phich_duration);
 
               if (strcmp(ccparams_lte.srs_enable, "ENABLE") == 0) {
-                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable= TRUE;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable= true;
               } else if (strcmp(ccparams_lte.srs_enable, "DISABLE") == 0) {
-                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable= FALSE;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable= false;
               } else
                 AssertFatal (0,
                              "Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n",
                              RC.config_file_name, i, ccparams_lte.srs_enable);
 
-              if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable== TRUE) {
+              if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable== true) {
                 RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_BandwidthConfig= ccparams_lte.srs_BandwidthConfig;
 
                 if ((ccparams_lte.srs_BandwidthConfig < 0) ||
@@ -791,18 +791,18 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
                                RC.config_file_name, i, ccparams_lte.srs_SubframeConfig);
 
                 if (strcmp(ccparams_lte.srs_ackNackST, "ENABLE") == 0) {
-                  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_ackNackST= TRUE;
+                  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_ackNackST= true;
                 } else if (strcmp(ccparams_lte.srs_ackNackST, "DISABLE") == 0) {
-                  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_ackNackST= FALSE;
+                  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_ackNackST= false;
                 } else
                   AssertFatal (0,
                                "Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n",
                                RC.config_file_name, i, ccparams_lte.srs_ackNackST);
 
                 if (strcmp(ccparams_lte.srs_MaxUpPts, "ENABLE") == 0) {
-                  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_MaxUpPts= TRUE;
+                  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_MaxUpPts= true;
                 } else if (strcmp(ccparams_lte.srs_MaxUpPts, "DISABLE") == 0) {
-                  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_MaxUpPts= FALSE;
+                  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_MaxUpPts= false;
                 } else
                   AssertFatal (0,
                                "Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n",
@@ -921,7 +921,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
                              RC.config_file_name, i, ccparams_lte.rach_numberOfRA_Preambles);
 
               if (strcmp(ccparams_lte.rach_preamblesGroupAConfig, "ENABLE") == 0) {
-                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= TRUE;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= true;
                 RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_sizeOfRA_PreamblesGroupA= (ccparams_lte.rach_sizeOfRA_PreamblesGroupA/4)-1;
 
                 if ((ccparams_lte.rach_numberOfRA_Preambles <4) ||
@@ -976,7 +976,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
                                "Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n",
                                RC.config_file_name, i, ccparams_lte.rach_messagePowerOffsetGroupB);
               } else if (strcmp(ccparams_lte.rach_preamblesGroupAConfig, "DISABLE") == 0) {
-                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= FALSE;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= false;
               } else
                 AssertFatal (0,
                              "Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n",
@@ -1254,9 +1254,9 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
                              "Failed to parse eNB configuration file %s, enb %u define %s: TRUE,FALSE!\n",
                              RC.config_file_name, i, ENB_CONFIG_STRING_MBMS_DEDICATED_SERVING_CELL);
               else if (strcmp(ccparams_lte.mbms_dedicated_serving_cell, "ENABLE") == 0) {
-                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].mbms_dedicated_serving_cell = TRUE;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].mbms_dedicated_serving_cell = true;
               } else  if (strcmp(ccparams_lte.mbms_dedicated_serving_cell, "DISABLE") == 0) {
-                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].mbms_dedicated_serving_cell  = FALSE;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].mbms_dedicated_serving_cell  = false;
               } else {
                 AssertFatal (0,
                              "Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for mbms_dedicated_serving_cell choice: TRUE or FALSE !\n",
diff --git a/openair2/ENB_APP/enb_config_eMTC.c b/openair2/ENB_APP/enb_config_eMTC.c
index cfd057bad8d..e4ff458886b 100644
--- a/openair2/ENB_APP/enb_config_eMTC.c
+++ b/openair2/ENB_APP/enb_config_eMTC.c
@@ -61,18 +61,18 @@ void fill_eMTC_configuration(MessageDef *msg_p,  ccparams_eMTC_t *eMTCconfig, in
 
 
   if (!strcmp(eMTCconfig->cellSelectionInfoCE_r13, "ENABLE")) {
-    RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[cc_idx] = TRUE;
+    RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[cc_idx] = true;
     RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[cc_idx]= eMTCconfig->q_RxLevMinCE_r13;
     //                            RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[cc_idx]= calloc(1, sizeof(long));
     //                            *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[cc_idx]= q_QualMinRSRQ_CE_r13;
   } else {
-    RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[cc_idx] = FALSE;
+    RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[cc_idx] = false;
   }
 
 
 
   if (!strcmp(eMTCconfig->bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) {
-    RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[cc_idx] = TRUE;
+    RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[cc_idx] = true;
 
 
 
@@ -106,7 +106,7 @@ void fill_eMTC_configuration(MessageDef *msg_p,  ccparams_eMTC_t *eMTCconfig, in
     }
 
   } else {
-    RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[cc_idx] = FALSE;
+    RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[cc_idx] = false;
   }
 
   char schedulingInfoBrPath[MAX_OPTNAME_SIZE * 2];
@@ -127,10 +127,10 @@ void fill_eMTC_configuration(MessageDef *msg_p,  ccparams_eMTC_t *eMTCconfig, in
 
   RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[cc_idx] = CALLOC(1, sizeof(BOOLEAN_t));
   if (!strcmp(eMTCconfig->fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) {
-    *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[cc_idx] = FALSE;
+    *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[cc_idx] = false;
     RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[cc_idx] = eMTCconfig->fdd_DownlinkOrTddSubframeBitmapBR_val_r13;
   } else {
-    *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[cc_idx] = TRUE;
+    *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[cc_idx] = true;
     RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[cc_idx] = eMTCconfig->fdd_DownlinkOrTddSubframeBitmapBR_val_r13;
   }
 
@@ -156,18 +156,18 @@ void fill_eMTC_configuration(MessageDef *msg_p,  ccparams_eMTC_t *eMTCconfig, in
 
   if (!strcmp(eMTCconfig->freqHoppingParametersDL_r13, "ENABLE"))
     {
-      RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[cc_idx] = TRUE;
+      RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[cc_idx] = true;
 
       if (!strcmp(eMTCconfig->interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13"))
-	RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[cc_idx] = FALSE;
+	RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[cc_idx] = false;
       else
-	RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[cc_idx] = TRUE;
+	RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[cc_idx] = true;
       RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13_val[cc_idx] = eMTCconfig->interval_DLHoppingConfigCommonModeA_r13_val;
 
       if (!strcmp(eMTCconfig->interval_DLHoppingConfigCommonModeB_r13, "interval-TDD-r13"))
-	RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[cc_idx] = FALSE;
+	RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[cc_idx] = false;
       else
-	RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[cc_idx] = TRUE;
+	RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[cc_idx] = true;
       RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13_val[cc_idx] = eMTCconfig->interval_DLHoppingConfigCommonModeB_r13_val;
 
       RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[cc_idx] = calloc(1, sizeof(long));
@@ -188,7 +188,7 @@ void fill_eMTC_configuration(MessageDef *msg_p,  ccparams_eMTC_t *eMTCconfig, in
     }
   else
     {
-      RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[cc_idx] = FALSE;
+      RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[cc_idx] = false;
     }
 
   /** ------------------------------SIB2/3 BR------------------------------------------ */
@@ -213,9 +213,9 @@ void fill_eMTC_configuration(MessageDef *msg_p,  ccparams_eMTC_t *eMTCconfig, in
 		 "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n",
 		 config_fname, cell_idx,ENB_CONFIG_STRING_PRACH_HIGH_SPEED);
   else if (strcmp(eMTCconfig->ccparams.prach_high_speed, "ENABLE") == 0) {
-    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].prach_high_speed = TRUE;
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].prach_high_speed = true;
   } else if (strcmp(eMTCconfig->ccparams.prach_high_speed, "DISABLE") == 0) {
-    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].prach_high_speed = FALSE;
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].prach_high_speed = false;
   } else
     AssertFatal (0,
 		 "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n",
@@ -310,9 +310,9 @@ void fill_eMTC_configuration(MessageDef *msg_p,  ccparams_eMTC_t *eMTCconfig, in
 		 "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n",
 		 config_fname, cell_idx,ENB_CONFIG_STRING_PUSCH_ENABLE64QAM);
   else if (strcmp(eMTCconfig->ccparams.pusch_enable64QAM, "ENABLE") == 0) {
-    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_enable64QAM = TRUE;
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_enable64QAM = true;
   }  else if (strcmp(eMTCconfig->ccparams.pusch_enable64QAM, "DISABLE") == 0) {
-    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_enable64QAM = FALSE;
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_enable64QAM = false;
   } else
     AssertFatal (0,
 		 "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n",
@@ -323,9 +323,9 @@ void fill_eMTC_configuration(MessageDef *msg_p,  ccparams_eMTC_t *eMTCconfig, in
 		 "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n",
 		 config_fname, cell_idx,ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN);
   else if (strcmp(eMTCconfig->ccparams.pusch_groupHoppingEnabled, "ENABLE") == 0) {
-    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_groupHoppingEnabled = TRUE;
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_groupHoppingEnabled = true;
   }  else if (strcmp(eMTCconfig->ccparams.pusch_groupHoppingEnabled, "DISABLE") == 0) {
-    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_groupHoppingEnabled= FALSE;
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_groupHoppingEnabled= false;
   } else
     AssertFatal (0,
 		 "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n",
@@ -343,9 +343,9 @@ void fill_eMTC_configuration(MessageDef *msg_p,  ccparams_eMTC_t *eMTCconfig, in
 		 "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n",
 		 config_fname, cell_idx,ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN);
   else if (strcmp(eMTCconfig->ccparams.pusch_sequenceHoppingEnabled, "ENABLE") == 0) {
-    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_sequenceHoppingEnabled = TRUE;
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_sequenceHoppingEnabled = true;
   }  else if (strcmp(eMTCconfig->ccparams.pusch_sequenceHoppingEnabled, "DISABLE") == 0) {
-    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_sequenceHoppingEnabled = FALSE;
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_sequenceHoppingEnabled = false;
   } else
     AssertFatal (0,
 		 "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n",
@@ -385,15 +385,15 @@ void fill_eMTC_configuration(MessageDef *msg_p,  ccparams_eMTC_t *eMTCconfig, in
 	 RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].phich_duration,eMTCconfig->ccparams.phich_duration);
 
   if (strcmp(eMTCconfig->ccparams.srs_enable, "ENABLE") == 0) {
-    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_enable= TRUE;
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_enable= true;
   } else if (strcmp(eMTCconfig->ccparams.srs_enable, "DISABLE") == 0) {
-    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_enable= FALSE;
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_enable= false;
   } else
     AssertFatal (0,
 		 "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n",
 		 config_fname, cell_idx,eMTCconfig->ccparams.srs_enable);
 
-  if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_enable== TRUE) {
+  if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_enable== true) {
     RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_BandwidthConfig= eMTCconfig->ccparams.srs_BandwidthConfig;
 
     if ((eMTCconfig->ccparams.srs_BandwidthConfig < 0) || (eMTCconfig->ccparams.srs_BandwidthConfig >7))
@@ -408,18 +408,18 @@ void fill_eMTC_configuration(MessageDef *msg_p,  ccparams_eMTC_t *eMTCconfig, in
 		   config_fname, cell_idx,eMTCconfig->ccparams.srs_SubframeConfig);
 
     if (strcmp(eMTCconfig->ccparams.srs_ackNackST, "ENABLE") == 0) {
-      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_ackNackST= TRUE;
+      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_ackNackST= true;
     } else if (strcmp(eMTCconfig->ccparams.srs_ackNackST, "DISABLE") == 0) {
-      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_ackNackST= FALSE;
+      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_ackNackST= false;
     } else
       AssertFatal (0,
 		   "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n",
 		   config_fname, cell_idx,eMTCconfig->ccparams.srs_ackNackST);
 
     if (strcmp(eMTCconfig->ccparams.srs_MaxUpPts, "ENABLE") == 0) {
-      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_MaxUpPts= TRUE;
+      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_MaxUpPts= true;
     } else if (strcmp(eMTCconfig->ccparams.srs_MaxUpPts, "DISABLE") == 0) {
-      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_MaxUpPts= FALSE;
+      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_MaxUpPts= false;
     } else
       AssertFatal (0,
 		   "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n",
@@ -535,7 +535,7 @@ void fill_eMTC_configuration(MessageDef *msg_p,  ccparams_eMTC_t *eMTCconfig, in
 		 config_fname, cell_idx,eMTCconfig->ccparams.rach_numberOfRA_Preambles);
 
   if (strcmp(eMTCconfig->ccparams.rach_preamblesGroupAConfig, "ENABLE") == 0) {
-    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_preamblesGroupAConfig= TRUE;
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_preamblesGroupAConfig= true;
     RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_sizeOfRA_PreamblesGroupA= (eMTCconfig->ccparams.rach_sizeOfRA_PreamblesGroupA/4)-1;
 
     if ((eMTCconfig->ccparams.rach_numberOfRA_Preambles <4) || (eMTCconfig->ccparams.rach_numberOfRA_Preambles>60) || ((eMTCconfig->ccparams.rach_numberOfRA_Preambles&3)!=0))
@@ -588,7 +588,7 @@ void fill_eMTC_configuration(MessageDef *msg_p,  ccparams_eMTC_t *eMTCconfig, in
 		   "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n",
 		   config_fname, cell_idx,eMTCconfig->ccparams.rach_messagePowerOffsetGroupB);
   } else if (strcmp(eMTCconfig->ccparams.rach_preamblesGroupAConfig, "DISABLE") == 0) {
-    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_preamblesGroupAConfig= FALSE;
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_preamblesGroupAConfig= false;
   } else
     AssertFatal (0,
 		 "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n",
@@ -681,6 +681,58 @@ void fill_eMTC_configuration(MessageDef *msg_p,  ccparams_eMTC_t *eMTCconfig, in
 		 "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n",
 		 config_fname, cell_idx,eMTCconfig->ccparams.rach_maxHARQ_Msg3Tx);
 
+  switch (eMTCconfig->preambleTransMax_CE_r13) {
+  case 3:
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].preambleTransMax_CE_r13=  LTE_PreambleTransMax_n3;
+    break;
+
+  case 4:
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].preambleTransMax_CE_r13=  LTE_PreambleTransMax_n4;
+    break;
+
+  case 5:
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].preambleTransMax_CE_r13=  LTE_PreambleTransMax_n5;
+    break;
+
+  case 6:
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].preambleTransMax_CE_r13=  LTE_PreambleTransMax_n6;
+    break;
+
+  case 7:
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].preambleTransMax_CE_r13=  LTE_PreambleTransMax_n7;
+    break;
+
+  case 8:
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].preambleTransMax_CE_r13=  LTE_PreambleTransMax_n8;
+    break;
+
+  case 10:
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].preambleTransMax_CE_r13=  LTE_PreambleTransMax_n10;
+    break;
+
+  case 20:
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].preambleTransMax_CE_r13=  LTE_PreambleTransMax_n20;
+    break;
+
+  case 50:
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].preambleTransMax_CE_r13=  LTE_PreambleTransMax_n50;
+    break;
+
+  case 100:
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].preambleTransMax_CE_r13=  LTE_PreambleTransMax_n100;
+    break;
+
+  case 200:
+    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].preambleTransMax_CE_r13=  LTE_PreambleTransMax_n200;
+    break;
+
+  default:
+    AssertFatal (0,
+		 "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax_CE_r13 choice: 3,4,5,6,7,8,10,20,50,100,200!\n",
+		 config_fname, cell_idx,eMTCconfig->preambleTransMax_CE_r13);
+    break;
+  }
+
   switch (eMTCconfig->ccparams.pcch_defaultPagingCycle) {
   case 32:
     RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pcch_defaultPagingCycle= LTE_PCCH_Config__defaultPagingCycle_rf32;
@@ -795,14 +847,14 @@ void fill_eMTC_configuration(MessageDef *msg_p,  ccparams_eMTC_t *eMTCconfig, in
 
 
   if (!strcmp(eMTCconfig->prach_ConfigCommon_v1310, "ENABLE")) {
-    RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].prach_ConfigCommon_v1310 = TRUE;
+    RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].prach_ConfigCommon_v1310 = true;
 
     RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(BOOLEAN_t));
 
     if (!strcmp(eMTCconfig->mpdcch_startSF_CSS_RA_r13, "tdd-r13")) {
-      *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].mpdcch_startSF_CSS_RA_r13 = FALSE;
+      *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].mpdcch_startSF_CSS_RA_r13 = false;
     } else {
-      *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].mpdcch_startSF_CSS_RA_r13 = TRUE;
+      *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].mpdcch_startSF_CSS_RA_r13 = true;
     }
 
     if (!strcmp(eMTCconfig->mpdcch_startSF_CSS_RA_r13_val, "v1")) {
@@ -830,7 +882,7 @@ void fill_eMTC_configuration(MessageDef *msg_p,  ccparams_eMTC_t *eMTCconfig, in
     RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].prach_HoppingOffset_r13 = calloc(1, sizeof(long));
     *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].prach_HoppingOffset_r13 = eMTCconfig->prach_HoppingOffset_r13;
   } else {
-    RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].prach_ConfigCommon_v1310 = FALSE;
+    RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].prach_ConfigCommon_v1310 = false;
   }
 
 
@@ -1117,7 +1169,7 @@ void fill_eMTC_configuration(MessageDef *msg_p,  ccparams_eMTC_t *eMTCconfig, in
 
 
   /** PCCH CONFIG V1310 */
-  RRC_CONFIGURATION_REQ(msg_p).pcch_config_v1310[cc_idx] = TRUE;
+  RRC_CONFIGURATION_REQ(msg_p).pcch_config_v1310[cc_idx] = true;
   RRC_CONFIGURATION_REQ(msg_p).paging_narrowbands_r13[cc_idx] = eMTCconfig->paging_narrowbands_r13;
   RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[cc_idx] = eMTCconfig->mpdcch_numrepetition_paging_r13;
 
@@ -1168,7 +1220,7 @@ void fill_eMTC_configuration(MessageDef *msg_p,  ccparams_eMTC_t *eMTCconfig, in
 
 
   /** SIB2 FREQ HOPPING PARAMETERS R13 */
-  RRC_CONFIGURATION_REQ(msg_p).sib2_freq_hoppingParameters_r13_exists[cc_idx] = TRUE;
+  RRC_CONFIGURATION_REQ(msg_p).sib2_freq_hoppingParameters_r13_exists[cc_idx] = true;
 
   char sib2FreqHoppingParametersR13Path[MAX_OPTNAME_SIZE*2 + 16];
   sprintf(sib2FreqHoppingParametersR13Path, "%s.%s", brparamspath, ENB_CONFIG_STRING_SIB2_FREQ_HOPPINGPARAMETERS_R13);
diff --git a/openair2/ENB_APP/enb_paramdef_emtc.h b/openair2/ENB_APP/enb_paramdef_emtc.h
index de774c4ea69..928c9d22e30 100644
--- a/openair2/ENB_APP/enb_paramdef_emtc.h
+++ b/openair2/ENB_APP/enb_paramdef_emtc.h
@@ -147,7 +147,7 @@ typedef struct ccparams_eMTC_s {
   int            interval_DLHoppingConfigCommonModeA_r13_val;
   int            interval_DLHoppingConfigCommonModeB_r13_val;
   int            mpdcch_pdsch_HoppingOffset_r13;
-  char          *preambleTransMax_CE_r13;
+  int            preambleTransMax_CE_r13;
   int            prach_HoppingOffset_r13;
   int            schedulingInfoSIB1_BR_r13;
   int64_t        fdd_DownlinkOrTddSubframeBitmapBR_val_r13;
@@ -253,7 +253,7 @@ typedef struct ccparams_eMTC_s {
 {ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13,         NULL,   0,           strptr:&eMTCconfig->interval_DLHoppingConfigCommonModeB_r13,   defstrval:"interval-FDD-r13",      TYPE_STRING,       0}, \
 {ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL,     NULL,   0,           iptr:&eMTCconfig->interval_DLHoppingConfigCommonModeB_r13_val, defintval:0,                       TYPE_UINT,         0}, \
 {ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13,                      NULL,   0,           iptr:&eMTCconfig->mpdcch_pdsch_HoppingOffset_r13,              defintval:1,                       TYPE_UINT,         0}, \
-{ENB_CONFIG_STRING_PREAMBLE_TRANSMAX_CE_R13,                             NULL,   0,           strptr:&eMTCconfig->preambleTransMax_CE_r13,                   defstrval:"n10",                   TYPE_STRING,       0},  \
+{ENB_CONFIG_STRING_PREAMBLE_TRANSMAX_CE_R13,                             NULL,   0,           iptr:&eMTCconfig->preambleTransMax_CE_r13,                   defintval:10,                   TYPE_UINT,       0},  \
 {ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0,                  NULL,   0,           strptr:&eMTCconfig->pucch_NumRepetitionCE_Msg4_Level0_r13,     defstrval:"n1",                    TYPE_STRING,     0}, \
 {ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1,                  NULL,   0,           strptr:&eMTCconfig->pucch_NumRepetitionCE_Msg4_Level1_r13,     defstrval:"",                      TYPE_STRING,     0}, \
 {ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2,                  NULL,   0,           strptr:&eMTCconfig->pucch_NumRepetitionCE_Msg4_Level2_r13,     defstrval:"",                      TYPE_STRING,     0}, \
diff --git a/openair2/ENB_APP/flexran_agent_ran_api.c b/openair2/ENB_APP/flexran_agent_ran_api.c
index 9926ec9e206..3113c077981 100644
--- a/openair2/ENB_APP/flexran_agent_ran_api.c
+++ b/openair2/ENB_APP/flexran_agent_ran_api.c
@@ -127,7 +127,7 @@ int flexran_get_mac_ue_id_rnti(mid_t mod_id, rnti_t rnti) {
 
   /* get the (active) UE with RNTI i */
   for (n = 0; n < MAX_MOBILES_PER_ENB; ++n) {
-    if (RC.mac[mod_id]->UE_info.active[n] == TRUE
+    if (RC.mac[mod_id]->UE_info.active[n] == true
         && rnti == UE_RNTI(mod_id, n)) {
       return n;
     }
@@ -143,7 +143,7 @@ int flexran_get_mac_ue_id(mid_t mod_id, int i) {
 
   /* get the (i+1)'th active UE */
   for (n = 0; n < MAX_MOBILES_PER_ENB; ++n) {
-    if (RC.mac[mod_id]->UE_info.active[n] == TRUE) {
+    if (RC.mac[mod_id]->UE_info.active[n] == true) {
       if (i == 0)
         return n;
 
@@ -580,7 +580,7 @@ uint8_t flexran_get_n_SB(mid_t mod_id, uint8_t cc_id) {
 Protocol__FlexQam flexran_get_enable64QAM(mid_t mod_id, uint8_t cc_id) {
   if (!phy_is_present(mod_id, cc_id)) return 0;
 
-  if (RC.eNB[mod_id][cc_id]->frame_parms.pusch_config_common.enable64QAM == TRUE)
+  if (RC.eNB[mod_id][cc_id]->frame_parms.pusch_config_common.enable64QAM == true)
     return PROTOCOL__FLEX_QAM__FLEQ_MOD_64QAM;
   else
     return PROTOCOL__FLEX_QAM__FLEQ_MOD_16QAM;
@@ -3585,7 +3585,7 @@ int flexran_set_new_plmn_id(mid_t mod_id, int CC_id, size_t n_plmn, Protocol__Fl
                          int CC_id,
                          BOOLEAN_t brOption,
                          RrcConfigurationReq *configuration);
-  carrier->sizeof_SIB1 = do_SIB1(carrier, mod_id, CC_id, FALSE, conf);
+  carrier->sizeof_SIB1 = do_SIB1(carrier, mod_id, CC_id, false, conf);
   if (carrier->sizeof_SIB1 < 0)
     return -1337; /* SIB1 encoding failed, hell will probably break loose */
 
diff --git a/openair2/F1AP/dummy_enb.c b/openair2/F1AP/dummy_enb.c
index 9085fdb57cd..8e185c951df 100644
--- a/openair2/F1AP/dummy_enb.c
+++ b/openair2/F1AP/dummy_enb.c
@@ -32,18 +32,18 @@ void apply_macrlc_config(gNB_RRC_INST *rrc,
   abort();
 }
 
-boolean_t sdap_data_req(protocol_ctxt_t *ctxt_p,
-                        const srb_flag_t srb_flag,
-                        const rb_id_t rb_id,
-                        const mui_t mui,
-                        const confirm_t confirm,
-                        const sdu_size_t sdu_buffer_size,
-                        unsigned char *const sdu_buffer,
-                        const pdcp_transmission_mode_t pt_mode,
-                        const uint32_t *sourceL2Id,
-                        const uint32_t *destinationL2Id,
-                        const uint8_t qfi,
-                        const boolean_t rqi,
-                        const int pdusession_id) {
+bool sdap_data_req(protocol_ctxt_t *ctxt_p,
+                   const srb_flag_t srb_flag,
+                   const rb_id_t rb_id,
+                   const mui_t mui,
+                   const confirm_t confirm,
+                   const sdu_size_t sdu_buffer_size,
+                   unsigned char *const sdu_buffer,
+                   const pdcp_transmission_mode_t pt_mode,
+                   const uint32_t *sourceL2Id,
+                   const uint32_t *destinationL2Id,
+                   const uint8_t qfi,
+                   const bool rqi,
+                   const int pdusession_id) {
 abort();
 }
diff --git a/openair2/F1AP/f1ap_common.h b/openair2/F1AP/f1ap_common.h
index 66451530a61..6b64e1b59e7 100644
--- a/openair2/F1AP/f1ap_common.h
+++ b/openair2/F1AP/f1ap_common.h
@@ -363,13 +363,6 @@
   # error "You are compiling f1ap with the wrong version of ASN1C"
 #endif
 
-#ifndef FALSE
-  #define FALSE (0)
-#endif
-#ifndef TRUE
-  #define TRUE  (!FALSE)
-#endif
-
 #define F1AP_UE_ID_FMT  "0x%06"PRIX32
 
 #include "assertions.h"
diff --git a/openair2/F1AP/f1ap_cu_task.c b/openair2/F1AP/f1ap_cu_task.c
index b3c7363ca4a..efbc9f2c8b9 100644
--- a/openair2/F1AP/f1ap_cu_task.c
+++ b/openair2/F1AP/f1ap_cu_task.c
@@ -180,6 +180,12 @@ void *F1AP_CU_task(void *arg) {
                                          &F1AP_UE_CONTEXT_SETUP_REQ(received_msg));
         break;
 
+      case F1AP_UE_CONTEXT_MODIFICATION_REQ:
+        LOG_I(F1AP, "CU Task received F1AP_UE_CONTEXT_MODIFICATION_REQ\n");
+        CU_send_UE_CONTEXT_MODIFICATION_REQUEST(ITTI_MSG_DESTINATION_INSTANCE(received_msg),
+                                                &F1AP_UE_CONTEXT_MODIFICATION_REQ(received_msg));
+        break;
+
       case F1AP_UE_CONTEXT_RELEASE_CMD: // from rrc
         LOG_I(F1AP, "CU Task Received F1AP_UE_CONTEXT_RELEASE_CMD\n");
         CU_send_UE_CONTEXT_RELEASE_COMMAND(ITTI_MSG_DESTINATION_INSTANCE(received_msg),
diff --git a/openair2/F1AP/f1ap_cu_ue_context_management.c b/openair2/F1AP/f1ap_cu_ue_context_management.c
index c68bfb3852f..0f3959d4ad5 100644
--- a/openair2/F1AP/f1ap_cu_ue_context_management.c
+++ b/openair2/F1AP/f1ap_cu_ue_context_management.c
@@ -131,21 +131,30 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
   ie6->criticality                    = F1AP_Criticality_reject;
   ie6->value.present                  = F1AP_UEContextSetupRequestIEs__value_PR_CUtoDURRCInformation;
 
-  /* optional */
-  /* 6.1 cG_ConfigInfo */
-  if (0) {
-    const char cG_ConfigInfoStr[]="asdsa1d32sa1d31asd31as";
-    asn1cCalloc(ie6->value.choice.CUtoDURRCInformation.cG_ConfigInfo, cG_ConfigInfo);
-    OCTET_STRING_fromBuf(cG_ConfigInfo, cG_ConfigInfoStr, strlen( cG_ConfigInfoStr )) ;
+  if (f1ap_ue_context_setup_req->cu_to_du_rrc_information!=NULL) {
+    /* optional */
+    /* 6.1 cG_ConfigInfo */
+    if(f1ap_ue_context_setup_req->cu_to_du_rrc_information->cG_ConfigInfo!=NULL){
+      asn1cCalloc(ie6->value.choice.CUtoDURRCInformation.cG_ConfigInfo, cG_ConfigInfo);
+      OCTET_STRING_fromBuf(cG_ConfigInfo, (const char *)f1ap_ue_context_setup_req->cu_to_du_rrc_information->cG_ConfigInfo,
+        f1ap_ue_context_setup_req->cu_to_du_rrc_information->cG_ConfigInfo_length);
+    }
     /* optional */
     /* 6.2 uE_CapabilityRAT_ContainerList */
-    asn1cCalloc(ie6->value.choice.CUtoDURRCInformation.uE_CapabilityRAT_ContainerList, uE_CapabilityRAT_ContainerList );
-    OCTET_STRING_fromBuf(uE_CapabilityRAT_ContainerList, cG_ConfigInfoStr, strlen( cG_ConfigInfoStr )) ;
+    if(f1ap_ue_context_setup_req->cu_to_du_rrc_information->uE_CapabilityRAT_ContainerList!=NULL){
+      asn1cCalloc(ie6->value.choice.CUtoDURRCInformation.uE_CapabilityRAT_ContainerList, uE_CapabilityRAT_ContainerList );
+      OCTET_STRING_fromBuf(uE_CapabilityRAT_ContainerList, (const char *)f1ap_ue_context_setup_req->cu_to_du_rrc_information->uE_CapabilityRAT_ContainerList,
+        f1ap_ue_context_setup_req->cu_to_du_rrc_information->uE_CapabilityRAT_ContainerList_length);
+    }
     /* optional */
     /* 6.3 measConfig */
-    asn1cCalloc(ie6->value.choice.CUtoDURRCInformation.measConfig,  measConfig);
-    OCTET_STRING_fromBuf(measConfig, cG_ConfigInfoStr, strlen( cG_ConfigInfoStr )) ;
+    if(f1ap_ue_context_setup_req->cu_to_du_rrc_information->measConfig!=NULL){
+      asn1cCalloc(ie6->value.choice.CUtoDURRCInformation.measConfig,  measConfig);
+      OCTET_STRING_fromBuf(measConfig, (const char*)f1ap_ue_context_setup_req->cu_to_du_rrc_information->measConfig,
+        f1ap_ue_context_setup_req->cu_to_du_rrc_information->measConfig_length);
+    }
   }
+  
 
   /* mandatory */
   /* c7. Candidate_SpCell_List */
@@ -238,199 +247,96 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
 
   /* mandatory */
   /* c11. SRBs_ToBeSetup_List */
-  asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextSetupRequestIEs_t, ie11);
-  ie11->id                             = F1AP_ProtocolIE_ID_id_SRBs_ToBeSetup_List;
-  ie11->criticality                    = F1AP_Criticality_reject;  // ?
-  ie11->value.present                  = F1AP_UEContextSetupRequestIEs__value_PR_SRBs_ToBeSetup_List;
-
-  for (int i=0; i<f1ap_ue_context_setup_req->srbs_to_be_setup_length; i++) {
-    //
-    asn1cSequenceAdd(ie11->value.choice.SRBs_ToBeSetup_List.list, F1AP_SRBs_ToBeSetup_ItemIEs_t, srbs_toBeSetup_item_ies);
-    srbs_toBeSetup_item_ies->id            = F1AP_ProtocolIE_ID_id_SRBs_ToBeSetup_Item; // 73
-    srbs_toBeSetup_item_ies->criticality   = F1AP_Criticality_ignore;
-    srbs_toBeSetup_item_ies->value.present = F1AP_SRBs_ToBeSetup_ItemIEs__value_PR_SRBs_ToBeSetup_Item;
-    /* 11.1 SRBs_ToBeSetup_Item */
-    F1AP_SRBs_ToBeSetup_Item_t *srbs_toBeSetup_item=&srbs_toBeSetup_item_ies->value.choice.SRBs_ToBeSetup_Item;
-    /* 11.1.1 sRBID */
-    srbs_toBeSetup_item->sRBID = f1ap_ue_context_setup_req->srbs_to_be_setup[i].srb_id;
-    /* OPTIONAL */
-    /* 11.1.2 duplicationIndication */
-    //if (0) {
-    asn1cCallocOne(srbs_toBeSetup_item->duplicationIndication,
+  if(f1ap_ue_context_setup_req->srbs_to_be_setup_length > 0){
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextSetupRequestIEs_t, ie11);
+    ie11->id                             = F1AP_ProtocolIE_ID_id_SRBs_ToBeSetup_List;
+    ie11->criticality                    = F1AP_Criticality_reject;  // ?
+    ie11->value.present                  = F1AP_UEContextSetupRequestIEs__value_PR_SRBs_ToBeSetup_List;
+
+    for (int i=0; i<f1ap_ue_context_setup_req->srbs_to_be_setup_length; i++) {
+      asn1cSequenceAdd(ie11->value.choice.SRBs_ToBeSetup_List.list, F1AP_SRBs_ToBeSetup_ItemIEs_t, srbs_toBeSetup_item_ies);
+      srbs_toBeSetup_item_ies->id            = F1AP_ProtocolIE_ID_id_SRBs_ToBeSetup_Item; // 73
+      srbs_toBeSetup_item_ies->criticality   = F1AP_Criticality_ignore;
+      srbs_toBeSetup_item_ies->value.present = F1AP_SRBs_ToBeSetup_ItemIEs__value_PR_SRBs_ToBeSetup_Item;
+      /* 11.1 SRBs_ToBeSetup_Item */
+      F1AP_SRBs_ToBeSetup_Item_t *srbs_toBeSetup_item=&srbs_toBeSetup_item_ies->value.choice.SRBs_ToBeSetup_Item;
+      /* 11.1.1 sRBID */
+      srbs_toBeSetup_item->sRBID = f1ap_ue_context_setup_req->srbs_to_be_setup[i].srb_id;
+      /* OPTIONAL */
+      /* 11.1.2 duplicationIndication */
+      asn1cCallocOne(srbs_toBeSetup_item->duplicationIndication,
                    F1AP_DuplicationIndication_true); // enum
-    //}
+    }
   }
 
   /* mandatory */
   /* c12. DRBs_ToBeSetup_List */
-  asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextSetupRequestIEs_t, ie12);
-  ie12->id                             = F1AP_ProtocolIE_ID_id_DRBs_ToBeSetup_List;
-  ie12->criticality                    = F1AP_Criticality_reject;
-  ie12->value.present                  = F1AP_UEContextSetupRequestIEs__value_PR_DRBs_ToBeSetup_List;
-  LOG_I(F1AP, "Length of drbs_to_be_setup: %d \n", f1ap_ue_context_setup_req->drbs_to_be_setup_length);
-
-  for (int i = 0; i < f1ap_ue_context_setup_req->drbs_to_be_setup_length; i++) {
-    //
-    asn1cSequenceAdd(ie12->value.choice.DRBs_ToBeSetup_List.list, F1AP_DRBs_ToBeSetup_ItemIEs_t, drbs_toBeSetup_item_ies);
-    drbs_toBeSetup_item_ies->id            = F1AP_ProtocolIE_ID_id_DRBs_ToBeSetup_Item;
-    drbs_toBeSetup_item_ies->criticality   = F1AP_Criticality_reject;
-    drbs_toBeSetup_item_ies->value.present = F1AP_DRBs_ToBeSetup_ItemIEs__value_PR_DRBs_ToBeSetup_Item;
-    /* 12.1 DRBs_ToBeSetup_Item */
-    F1AP_DRBs_ToBeSetup_Item_t *drbs_toBeSetup_item=&drbs_toBeSetup_item_ies->value.choice.DRBs_ToBeSetup_Item;
-    /* 12.1.1 dRBID */
-    drbs_toBeSetup_item->dRBID = f1ap_ue_context_setup_req->drbs_to_be_setup[i].drb_id; // 9
-    /* 12.1.2 qoSInformation */
-    int some_decide_qos = 0; // BK: Need Check
-
-    if (some_decide_qos) {
-      drbs_toBeSetup_item->qoSInformation.present = F1AP_QoSInformation_PR_eUTRANQoS;
-      /*  12.1.2.1 eUTRANQoS */
-      asn1cCalloc(drbs_toBeSetup_item->qoSInformation.choice.eUTRANQoS, eUTRANQoS);
-      /*  12.1.2.1.1 qCI */
-      eUTRANQoS->qCI = 254L;
-      /*  12.1.2.1.2 allocationAndRetentionPriority */
-      {
-        /*  12.1.2.1.2.1 priorityLevel */
-        eUTRANQoS->allocationAndRetentionPriority.priorityLevel = F1AP_PriorityLevel_highest; // enum
-        /*  12.1.2.1.2.2 pre_emptionCapability */
-        eUTRANQoS->allocationAndRetentionPriority.pre_emptionCapability = F1AP_Pre_emptionCapability_may_trigger_pre_emption; // enum
-        /*  12.1.2.1.2.2 pre_emptionVulnerability */
-        eUTRANQoS->allocationAndRetentionPriority.pre_emptionVulnerability = F1AP_Pre_emptionVulnerability_not_pre_emptable; // enum
-      }
-
-      /* OPTIONAL */
-      /*  12.1.2.1.3 gbrQosInformation */
-      if (0) {
-        eUTRANQoS->gbrQosInformation = (F1AP_GBR_QosInformation_t *)calloc(1, sizeof(F1AP_GBR_QosInformation_t));
-        asn_long2INTEGER(&eUTRANQoS->gbrQosInformation->e_RAB_MaximumBitrateDL, 1L);
-        asn_long2INTEGER(&eUTRANQoS->gbrQosInformation->e_RAB_MaximumBitrateUL, 1L);
-        asn_long2INTEGER(&eUTRANQoS->gbrQosInformation->e_RAB_GuaranteedBitrateDL, 1L);
-        asn_long2INTEGER(&eUTRANQoS->gbrQosInformation->e_RAB_GuaranteedBitrateUL, 1L);
-      }
-    } else {
-      /* 12.1.2 DRB_Information */
-      drbs_toBeSetup_item->qoSInformation.present = F1AP_QoSInformation_PR_choice_extension;
-      F1AP_QoSInformation_ExtIEs_t *ie = (F1AP_QoSInformation_ExtIEs_t *)calloc(1, sizeof(*ie));
-      ie->id                             = F1AP_ProtocolIE_ID_id_DRB_Information;
-      ie->criticality                    = F1AP_Criticality_reject;
-      ie->value.present                  = F1AP_QoSInformation_ExtIEs__value_PR_DRB_Information;
-      F1AP_DRB_Information_t   *DRB_Information = &ie->value.choice.DRB_Information;
-      drbs_toBeSetup_item->qoSInformation.choice.choice_extension = (struct F1AP_ProtocolIE_SingleContainer *)ie;
-      /* 12.1.2.1 dRB_QoS */
-      {
-        /* qoS_Characteristics */
-        {
-          int some_decide_qoS_characteristics = 0; // BK: Need Check
-
-          if (some_decide_qoS_characteristics) {
-            DRB_Information->dRB_QoS.qoS_Characteristics.present = F1AP_QoS_Characteristics_PR_non_Dynamic_5QI;
-            setQos(DRB_Information->dRB_QoS.qoS_Characteristics.choice.non_Dynamic_5QI);
-          } else {
-            DRB_Information->dRB_QoS.qoS_Characteristics.present = F1AP_QoS_Characteristics_PR_dynamic_5QI;
-            asn1cCalloc(DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI, tmp);
-            /* qoSPriorityLevel */
-            tmp->qoSPriorityLevel = 1L;
-            /* packetDelayBudget */
-            tmp->packetDelayBudget = 1L;
-            /* packetErrorRate */
-            tmp->packetErrorRate.pER_Scalar = 1L;
-            tmp->packetErrorRate.pER_Exponent = 6L;
-
-            /* OPTIONAL */
-            /* delayCritical */
-            if (0) {
-              asn1cCallocOne(DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->delayCritical, 1L);
-            }
-
-            /* OPTIONAL */
-            /* averagingWindow */
-            if (0) {
-              asn1cCallocOne(DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->averagingWindow, 1L);
-            }
-
-            /* OPTIONAL */
-            /* maxDataBurstVolume */
-            if (0) {
-              asn1cCallocOne(DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->maxDataBurstVolume, 1L);
-            }
-          } // if some_decide_qoS_characteristics
-        } // qoS_Characteristics
-        /* nGRANallocationRetentionPriority */
+  if(f1ap_ue_context_setup_req->drbs_to_be_setup_length){
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextSetupRequestIEs_t, ie12);
+    ie12->id                             = F1AP_ProtocolIE_ID_id_DRBs_ToBeSetup_List;
+    ie12->criticality                    = F1AP_Criticality_reject;
+    ie12->value.present                  = F1AP_UEContextSetupRequestIEs__value_PR_DRBs_ToBeSetup_List;
+    LOG_I(F1AP, "Length of drbs_to_be_setup: %d \n", f1ap_ue_context_setup_req->drbs_to_be_setup_length);
+
+    for (int i = 0; i < f1ap_ue_context_setup_req->drbs_to_be_setup_length; i++) {
+      //
+      asn1cSequenceAdd(ie12->value.choice.DRBs_ToBeSetup_List.list, F1AP_DRBs_ToBeSetup_ItemIEs_t, drbs_toBeSetup_item_ies);
+      drbs_toBeSetup_item_ies->id            = F1AP_ProtocolIE_ID_id_DRBs_ToBeSetup_Item;
+      drbs_toBeSetup_item_ies->criticality   = F1AP_Criticality_reject;
+      drbs_toBeSetup_item_ies->value.present = F1AP_DRBs_ToBeSetup_ItemIEs__value_PR_DRBs_ToBeSetup_Item;
+      /* 12.1 DRBs_ToBeSetup_Item */
+      F1AP_DRBs_ToBeSetup_Item_t *drbs_toBeSetup_item=&drbs_toBeSetup_item_ies->value.choice.DRBs_ToBeSetup_Item;
+      /* 12.1.1 dRBID */
+      drbs_toBeSetup_item->dRBID = f1ap_ue_context_setup_req->drbs_to_be_setup[i].drb_id; // 9
+      /* 12.1.2 qoSInformation */
+      int some_decide_qos = 0; // BK: Need Check
+
+      if (some_decide_qos) {
+        drbs_toBeSetup_item->qoSInformation.present = F1AP_QoSInformation_PR_eUTRANQoS;
+        /*  12.1.2.1 eUTRANQoS */
+        asn1cCalloc(drbs_toBeSetup_item->qoSInformation.choice.eUTRANQoS, eUTRANQoS);
+        /*  12.1.2.1.1 qCI */
+        eUTRANQoS->qCI = 254L;
+        /*  12.1.2.1.2 allocationAndRetentionPriority */
         {
-          DRB_Information->dRB_QoS.nGRANallocationRetentionPriority.priorityLevel = F1AP_PriorityLevel_highest; // enum
-          DRB_Information->dRB_QoS.nGRANallocationRetentionPriority.pre_emptionCapability = F1AP_Pre_emptionCapability_shall_not_trigger_pre_emption; // enum
-          DRB_Information->dRB_QoS.nGRANallocationRetentionPriority.pre_emptionVulnerability = F1AP_Pre_emptionVulnerability_not_pre_emptable; // enum
-        } // nGRANallocationRetentionPriority
-
-        /* OPTIONAL */
-        /* gBR_QoS_Flow_Information */
-        if (0) {
-          asn1cCalloc(DRB_Information->dRB_QoS.gBR_QoS_Flow_Information, tmp);
-          asn_long2INTEGER(&tmp->maxFlowBitRateDownlink, 1L);
-          asn_long2INTEGER(&tmp->maxFlowBitRateUplink, 1L);
-          asn_long2INTEGER(&tmp->guaranteedFlowBitRateDownlink, 1L);
-          asn_long2INTEGER(&tmp->guaranteedFlowBitRateUplink, 1L);
-
-          /* OPTIONAL */
-          /* maxPacketLossRateDownlink */
-          if (0) {
-            asn1cCallocOne(DRB_Information->dRB_QoS.gBR_QoS_Flow_Information->maxPacketLossRateDownlink, 1L);
-          }
-
-          /* OPTIONAL */
-          /* maxPacketLossRateUplink */
-          if (0) {
-            asn1cCallocOne(DRB_Information->dRB_QoS.gBR_QoS_Flow_Information->maxPacketLossRateUplink, 1L);
-          }
+          /*  12.1.2.1.2.1 priorityLevel */
+          eUTRANQoS->allocationAndRetentionPriority.priorityLevel = F1AP_PriorityLevel_highest; // enum
+          /*  12.1.2.1.2.2 pre_emptionCapability */
+          eUTRANQoS->allocationAndRetentionPriority.pre_emptionCapability = F1AP_Pre_emptionCapability_may_trigger_pre_emption; // enum
+          /*  12.1.2.1.2.2 pre_emptionVulnerability */
+          eUTRANQoS->allocationAndRetentionPriority.pre_emptionVulnerability = F1AP_Pre_emptionVulnerability_not_pre_emptable; // enum
         }
 
         /* OPTIONAL */
-        /* reflective_QoS_Attribute */
+        /*  12.1.2.1.3 gbrQosInformation */
         if (0) {
-          asn1cCallocOne(DRB_Information->dRB_QoS.reflective_QoS_Attribute, 1L);
+          eUTRANQoS->gbrQosInformation = (F1AP_GBR_QosInformation_t *)calloc(1, sizeof(F1AP_GBR_QosInformation_t));
+          asn_long2INTEGER(&eUTRANQoS->gbrQosInformation->e_RAB_MaximumBitrateDL, 1L);
+          asn_long2INTEGER(&eUTRANQoS->gbrQosInformation->e_RAB_MaximumBitrateUL, 1L);
+          asn_long2INTEGER(&eUTRANQoS->gbrQosInformation->e_RAB_GuaranteedBitrateDL, 1L);
+          asn_long2INTEGER(&eUTRANQoS->gbrQosInformation->e_RAB_GuaranteedBitrateUL, 1L);
         }
-      } // dRB_QoS
-      /* 12.1.2.2 sNSSAI */
-      {
-        /* sST */
-        OCTET_STRING_fromBuf(&DRB_Information->sNSSAI.sST, "1", 1);
-
-        /* OPTIONAL */
-        /* sD */
-        if (0) {
-          asn1cCalloc(DRB_Information->sNSSAI.sD, tmp);
-          OCTET_STRING_fromBuf(tmp, "asdsa1d32sa1d31asd31as",
-                               strlen("asdsa1d32sa1d31asd31as"));
-        }
-      }
-
-      /* OPTIONAL */
-      /* 12.1.2.3 notificationControl */
-      if (0) {
-        asn1cCallocOne(DRB_Information->notificationControl,
-                       F1AP_NotificationControl_active); // enum
-      }
-
-      /* 12.1.2.4 flows_Mapped_To_DRB_List */  // BK: need verifiy
-
-      for (int k = 0; k < 1; k ++) {
-        asn1cSequenceAdd(DRB_Information->flows_Mapped_To_DRB_List.list,
-                         F1AP_Flows_Mapped_To_DRB_Item_t, flows_mapped_to_drb_item);
-        /* qoSFlowIndicator */
-        flows_mapped_to_drb_item->qoSFlowIdentifier = 1L;
-        /* qoSFlowLevelQoSParameters */
+      } else {
+        /* 12.1.2 DRB_Information */
+        drbs_toBeSetup_item->qoSInformation.present = F1AP_QoSInformation_PR_choice_extension;
+        F1AP_QoSInformation_ExtIEs_t *ie = (F1AP_QoSInformation_ExtIEs_t *)calloc(1, sizeof(*ie));
+        ie->id                             = F1AP_ProtocolIE_ID_id_DRB_Information;
+        ie->criticality                    = F1AP_Criticality_reject;
+        ie->value.present                  = F1AP_QoSInformation_ExtIEs__value_PR_DRB_Information;
+        F1AP_DRB_Information_t   *DRB_Information = &ie->value.choice.DRB_Information;
+        drbs_toBeSetup_item->qoSInformation.choice.choice_extension = (struct F1AP_ProtocolIE_SingleContainer *)ie;
+        /* 12.1.2.1 dRB_QoS */
         {
           /* qoS_Characteristics */
           {
             int some_decide_qoS_characteristics = 0; // BK: Need Check
-            F1AP_QoS_Characteristics_t *QosParams=&flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.qoS_Characteristics;
 
             if (some_decide_qoS_characteristics) {
-              QosParams->present = F1AP_QoS_Characteristics_PR_non_Dynamic_5QI;
-              setQos(QosParams->choice.non_Dynamic_5QI);
+              DRB_Information->dRB_QoS.qoS_Characteristics.present = F1AP_QoS_Characteristics_PR_non_Dynamic_5QI;
+              setQos(DRB_Information->dRB_QoS.qoS_Characteristics.choice.non_Dynamic_5QI);
             } else {
-              QosParams->present = F1AP_QoS_Characteristics_PR_dynamic_5QI;
-              asn1cCalloc(QosParams->choice.dynamic_5QI, tmp);
+              DRB_Information->dRB_QoS.qoS_Characteristics.present = F1AP_QoS_Characteristics_PR_dynamic_5QI;
+              asn1cCalloc(DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI, tmp);
               /* qoSPriorityLevel */
               tmp->qoSPriorityLevel = 1L;
               /* packetDelayBudget */
@@ -442,36 +348,33 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
               /* OPTIONAL */
               /* delayCritical */
               if (0) {
-                asn1cCalloc(QosParams->choice.dynamic_5QI->delayCritical, tmp);
-                *tmp = 1L;
+                asn1cCallocOne(DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->delayCritical, 1L);
               }
 
               /* OPTIONAL */
               /* averagingWindow */
               if (0) {
-                asn1cCalloc(QosParams->choice.dynamic_5QI->averagingWindow, tmp);
-                *tmp = 1L;
+                asn1cCallocOne(DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->averagingWindow, 1L);
               }
 
               /* OPTIONAL */
               /* maxDataBurstVolume */
               if (0) {
-                asn1cCalloc(QosParams->choice.dynamic_5QI->maxDataBurstVolume, tmp);
-                *tmp= 1L;
+                asn1cCallocOne(DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->maxDataBurstVolume, 1L);
               }
             } // if some_decide_qoS_characteristics
           } // qoS_Characteristics
           /* nGRANallocationRetentionPriority */
           {
-            flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.nGRANallocationRetentionPriority.priorityLevel = F1AP_PriorityLevel_highest; // enum
-            flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.nGRANallocationRetentionPriority.pre_emptionCapability = F1AP_Pre_emptionCapability_shall_not_trigger_pre_emption; // enum
-            flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.nGRANallocationRetentionPriority.pre_emptionVulnerability = F1AP_Pre_emptionVulnerability_not_pre_emptable; // enum
+            DRB_Information->dRB_QoS.nGRANallocationRetentionPriority.priorityLevel = F1AP_PriorityLevel_highest; // enum
+            DRB_Information->dRB_QoS.nGRANallocationRetentionPriority.pre_emptionCapability = F1AP_Pre_emptionCapability_shall_not_trigger_pre_emption; // enum
+            DRB_Information->dRB_QoS.nGRANallocationRetentionPriority.pre_emptionVulnerability = F1AP_Pre_emptionVulnerability_not_pre_emptable; // enum
           } // nGRANallocationRetentionPriority
 
           /* OPTIONAL */
           /* gBR_QoS_Flow_Information */
           if (0) {
-            asn1cCalloc(flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.gBR_QoS_Flow_Information, tmp);
+            asn1cCalloc(DRB_Information->dRB_QoS.gBR_QoS_Flow_Information, tmp);
             asn_long2INTEGER(&tmp->maxFlowBitRateDownlink, 1L);
             asn_long2INTEGER(&tmp->maxFlowBitRateUplink, 1L);
             asn_long2INTEGER(&tmp->guaranteedFlowBitRateDownlink, 1L);
@@ -480,80 +383,186 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
             /* OPTIONAL */
             /* maxPacketLossRateDownlink */
             if (0) {
-              asn1cCallocOne(flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.gBR_QoS_Flow_Information->maxPacketLossRateDownlink, 1L);
+              asn1cCallocOne(DRB_Information->dRB_QoS.gBR_QoS_Flow_Information->maxPacketLossRateDownlink, 1L);
             }
 
             /* OPTIONAL */
             /* maxPacketLossRateUplink */
             if (0) {
-              asn1cCallocOne(flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.gBR_QoS_Flow_Information->maxPacketLossRateUplink, 1L);
+              asn1cCallocOne(DRB_Information->dRB_QoS.gBR_QoS_Flow_Information->maxPacketLossRateUplink, 1L);
             }
           }
 
           /* OPTIONAL */
           /* reflective_QoS_Attribute */
           if (0) {
-            asn1cCallocOne(flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.reflective_QoS_Attribute, 1L);
+            asn1cCallocOne(DRB_Information->dRB_QoS.reflective_QoS_Attribute, 1L);
           }
-        } // qoSFlowLevelQoSParameters
-      }
-    } // if some_decide_qos
-
-    /* 12.1.3 uLUPTNLInformation_ToBeSetup_List */
-    for (int j = 0; j < f1ap_ue_context_setup_req->drbs_to_be_setup[i].up_ul_tnl_length; j++) {
-      /* Here the callback function used as input is not the right one. Need to create a new one probably for F1-U, not sure
-       * if the kind of input parameters to the callback function are convenient though for gtp-u over F1-U.*/
-      //Use a dummy teid for the outgoing GTP-U tunnel (DU) which will be updated once we get the UE context setup response from the DU
-      transport_layer_addr_t addr;
-      int sz=sizeof(f1ap_ue_context_setup_req->drbs_to_be_setup[i].up_dl_tnl[0].tl_address);
-      memcpy(addr.buffer,&f1ap_ue_context_setup_req->drbs_to_be_setup[i].up_dl_tnl[0].tl_address, sz);
-      addr.length = sz*8;
-      f1ap_ue_context_setup_req->drbs_to_be_setup[i].up_ul_tnl[j].teid=
-        newGtpuCreateTunnel(getCxt(CUtype, instance)->gtpInst,
-                            f1ap_ue_context_setup_req->rnti,
-                            f1ap_ue_context_setup_req->drbs_to_be_setup[i].drb_id,
-                            f1ap_ue_context_setup_req->drbs_to_be_setup[i].drb_id,
-                            0xFFFF, // We will set the right value from DU answer
-                            addr,
-                            f1ap_ue_context_setup_req->drbs_to_be_setup[i].up_dl_tnl[0].port,
-                            cu_f1u_data_req);
-      /*  12.3.1 ULTunnels_ToBeSetup_Item */
-      asn1cSequenceAdd(drbs_toBeSetup_item->uLUPTNLInformation_ToBeSetup_List.list,
-                       F1AP_ULUPTNLInformation_ToBeSetup_Item_t, uLUPTNLInformation_ToBeSetup_Item);
-      uLUPTNLInformation_ToBeSetup_Item->uLUPTNLInformation.present = F1AP_UPTransportLayerInformation_PR_gTPTunnel;
-      asn1cCalloc( uLUPTNLInformation_ToBeSetup_Item->uLUPTNLInformation.choice.gTPTunnel,
-                   gTPTunnel);
-      /* 12.3.1.1.1 transportLayerAddress */
-      TRANSPORT_LAYER_ADDRESS_IPv4_TO_BIT_STRING(f1ap_ue_context_setup_req->drbs_to_be_setup[i].up_ul_tnl[j].tl_address,
+        } // dRB_QoS
+        /* 12.1.2.2 sNSSAI */
+        {
+          /* sST */
+          OCTET_STRING_fromBuf(&DRB_Information->sNSSAI.sST, "1", 1);
+
+          /* OPTIONAL */
+          /* sD */
+          if (0) {
+            asn1cCalloc(DRB_Information->sNSSAI.sD, tmp);
+            OCTET_STRING_fromBuf(tmp, "asdsa1d32sa1d31asd31as",
+                               strlen("asdsa1d32sa1d31asd31as"));
+          }
+        }
+
+        /* OPTIONAL */
+        /* 12.1.2.3 notificationControl */
+        if (0) {
+          asn1cCallocOne(DRB_Information->notificationControl,
+            F1AP_NotificationControl_active); // enum
+        }
+
+        /* 12.1.2.4 flows_Mapped_To_DRB_List */  // BK: need verifiy
+
+        for (int k = 0; k < 1; k ++) {
+          asn1cSequenceAdd(DRB_Information->flows_Mapped_To_DRB_List.list,
+            F1AP_Flows_Mapped_To_DRB_Item_t, flows_mapped_to_drb_item);
+          /* qoSFlowIndicator */
+          flows_mapped_to_drb_item->qoSFlowIdentifier = 1L;
+          /* qoSFlowLevelQoSParameters */
+          {
+            /* qoS_Characteristics */
+            {
+              int some_decide_qoS_characteristics = 0; // BK: Need Check
+              F1AP_QoS_Characteristics_t *QosParams=&flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.qoS_Characteristics;
+
+              if (some_decide_qoS_characteristics) {
+                QosParams->present = F1AP_QoS_Characteristics_PR_non_Dynamic_5QI;
+                setQos(QosParams->choice.non_Dynamic_5QI);
+              } else {
+                QosParams->present = F1AP_QoS_Characteristics_PR_dynamic_5QI;
+                asn1cCalloc(QosParams->choice.dynamic_5QI, tmp);
+                /* qoSPriorityLevel */
+                tmp->qoSPriorityLevel = 1L;
+                /* packetDelayBudget */
+                tmp->packetDelayBudget = 1L;
+                /* packetErrorRate */
+                tmp->packetErrorRate.pER_Scalar = 1L;
+                tmp->packetErrorRate.pER_Exponent = 6L;
+
+                /* OPTIONAL */
+                /* delayCritical */
+                if (0) {
+                  asn1cCalloc(QosParams->choice.dynamic_5QI->delayCritical, tmp);
+                  *tmp = 1L;
+                }
+
+                /* OPTIONAL */
+                /* averagingWindow */
+                if (0) {
+                  asn1cCalloc(QosParams->choice.dynamic_5QI->averagingWindow, tmp);
+                  *tmp = 1L;
+                }
+
+                /* OPTIONAL */
+                /* maxDataBurstVolume */
+                if (0) {
+                  asn1cCalloc(QosParams->choice.dynamic_5QI->maxDataBurstVolume, tmp);
+                  *tmp= 1L;
+                }
+              } // if some_decide_qoS_characteristics
+            } // qoS_Characteristics
+            /* nGRANallocationRetentionPriority */
+            {
+              flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.nGRANallocationRetentionPriority.priorityLevel = F1AP_PriorityLevel_highest; // enum
+              flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.nGRANallocationRetentionPriority.pre_emptionCapability = F1AP_Pre_emptionCapability_shall_not_trigger_pre_emption; // enum
+              flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.nGRANallocationRetentionPriority.pre_emptionVulnerability = F1AP_Pre_emptionVulnerability_not_pre_emptable; // enum
+            } // nGRANallocationRetentionPriority
+
+            /* OPTIONAL */
+            /* gBR_QoS_Flow_Information */
+            if (0) {
+              asn1cCalloc(flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.gBR_QoS_Flow_Information, tmp);
+              asn_long2INTEGER(&tmp->maxFlowBitRateDownlink, 1L);
+              asn_long2INTEGER(&tmp->maxFlowBitRateUplink, 1L);
+              asn_long2INTEGER(&tmp->guaranteedFlowBitRateDownlink, 1L);
+              asn_long2INTEGER(&tmp->guaranteedFlowBitRateUplink, 1L);
+
+              /* OPTIONAL */
+              /* maxPacketLossRateDownlink */
+              if (0) {
+                asn1cCallocOne(flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.gBR_QoS_Flow_Information->maxPacketLossRateDownlink, 1L);
+              }
+
+              /* OPTIONAL */
+              /* maxPacketLossRateUplink */
+              if (0) {
+                asn1cCallocOne(flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.gBR_QoS_Flow_Information->maxPacketLossRateUplink, 1L);
+              }
+            }
+
+            /* OPTIONAL */
+            /* reflective_QoS_Attribute */
+            if (0) {
+              asn1cCallocOne(flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.reflective_QoS_Attribute, 1L);
+            }
+          } // qoSFlowLevelQoSParameters
+        }
+      } // if some_decide_qos
+
+      /* 12.1.3 uLUPTNLInformation_ToBeSetup_List */
+      for (int j = 0; j < f1ap_ue_context_setup_req->drbs_to_be_setup[i].up_ul_tnl_length; j++) {
+        /*Use a dummy teid for the outgoing GTP-U tunnel (DU) which will be updated once we get the UE context setup response from the DU*/
+        transport_layer_addr_t addr;
+        int sz=sizeof(f1ap_ue_context_setup_req->drbs_to_be_setup[i].up_dl_tnl[0].tl_address);
+        memcpy(addr.buffer,&f1ap_ue_context_setup_req->drbs_to_be_setup[i].up_dl_tnl[0].tl_address, sz);
+        addr.length = sz*8;
+        f1ap_ue_context_setup_req->drbs_to_be_setup[i].up_ul_tnl[j].teid = newGtpuCreateTunnel(getCxt(CUtype, instance)->gtpInst,
+                                                                                               f1ap_ue_context_setup_req->rnti,
+                                                                                               f1ap_ue_context_setup_req->drbs_to_be_setup[i].drb_id,
+                                                                                               f1ap_ue_context_setup_req->drbs_to_be_setup[i].drb_id,
+                                                                                               0xFFFF, // We will set the right value from DU answer
+                                                                                               -1, // no qfi
+                                                                                               addr,
+                                                                                               f1ap_ue_context_setup_req->drbs_to_be_setup[i].up_dl_tnl[0].port,
+                                                                                               cu_f1u_data_req,
+                                                                                               NULL);
+        /*  12.3.1 ULTunnels_ToBeSetup_Item */
+        asn1cSequenceAdd(drbs_toBeSetup_item->uLUPTNLInformation_ToBeSetup_List.list,
+          F1AP_ULUPTNLInformation_ToBeSetup_Item_t, uLUPTNLInformation_ToBeSetup_Item);
+        uLUPTNLInformation_ToBeSetup_Item->uLUPTNLInformation.present = F1AP_UPTransportLayerInformation_PR_gTPTunnel;
+        asn1cCalloc( uLUPTNLInformation_ToBeSetup_Item->uLUPTNLInformation.choice.gTPTunnel,
+          gTPTunnel);
+        /* 12.3.1.1.1 transportLayerAddress */
+        TRANSPORT_LAYER_ADDRESS_IPv4_TO_BIT_STRING(f1ap_ue_context_setup_req->drbs_to_be_setup[i].up_ul_tnl[j].tl_address,
           &gTPTunnel->transportLayerAddress);
-      /* 12.3.1.1.2 gTP_TEID */
-      INT32_TO_OCTET_STRING(f1ap_ue_context_setup_req->drbs_to_be_setup[i].up_ul_tnl[j].teid,
-                            &gTPTunnel->gTP_TEID);
-    }
+        /* 12.3.1.1.2 gTP_TEID */
+        INT32_TO_OCTET_STRING(f1ap_ue_context_setup_req->drbs_to_be_setup[i].up_ul_tnl[j].teid,
+          &gTPTunnel->gTP_TEID);
+      }
 
-    /* 12.1.4 rLCMode */
-    /* TODO use rlc_mode from f1ap_drb_to_be_setup */
-    switch (f1ap_ue_context_setup_req->drbs_to_be_setup[i].rlc_mode) {
-      case RLC_MODE_AM:
-        drbs_toBeSetup_item->rLCMode = F1AP_RLCMode_rlc_am;
-        break;
+      /* 12.1.4 rLCMode */
+      /* TODO use rlc_mode from f1ap_drb_to_be_setup */
+      switch (f1ap_ue_context_setup_req->drbs_to_be_setup[i].rlc_mode) {
+        case RLC_MODE_AM:
+          drbs_toBeSetup_item->rLCMode = F1AP_RLCMode_rlc_am;
+          break;
 
-      default:
-        drbs_toBeSetup_item->rLCMode = F1AP_RLCMode_rlc_um_bidirectional;
-    }
+        default:
+          drbs_toBeSetup_item->rLCMode = F1AP_RLCMode_rlc_um_bidirectional;
+      }
 
-    /* OPTIONAL */
-    /* 12.1.5 ULConfiguration */
-    if (0) {
-      asn1cCalloc(drbs_toBeSetup_item->uLConfiguration, tmp);
-      tmp->uLUEConfiguration = F1AP_ULUEConfiguration_no_data;
-    }
+      /* OPTIONAL */
+      /* 12.1.5 ULConfiguration */
+      if (0) {
+        asn1cCalloc(drbs_toBeSetup_item->uLConfiguration, tmp);
+        tmp->uLUEConfiguration = F1AP_ULUEConfiguration_no_data;
+      }
 
-    /* OPTIONAL */
-    /* 12.1.6 duplicationActivation */
-    if (0) {
-      asn1cCalloc(drbs_toBeSetup_item->duplicationActivation, tmp);
-      *tmp = F1AP_DuplicationActivation_active;  // enum
+      /* OPTIONAL */
+      /* 12.1.6 duplicationActivation */
+      if (0) {
+        asn1cCalloc(drbs_toBeSetup_item->duplicationActivation, tmp);
+        *tmp = F1AP_DuplicationActivation_active;  // enum
+      }
     }
   }
 
@@ -662,9 +671,10 @@ int CU_handle_UE_CONTEXT_SETUP_RESPONSE(instance_t       instance,
     return -1;
   }
 
-  f1ap_ue_context_setup_resp->du_to_cu_rrc_information = (uint8_t *)calloc(1,ie->value.choice.DUtoCURRCInformation.cellGroupConfig.size);
-  memcpy(f1ap_ue_context_setup_resp->du_to_cu_rrc_information, ie->value.choice.DUtoCURRCInformation.cellGroupConfig.buf, ie->value.choice.DUtoCURRCInformation.cellGroupConfig.size);
-  f1ap_ue_context_setup_resp->du_to_cu_rrc_information_length = ie->value.choice.DUtoCURRCInformation.cellGroupConfig.size;
+  f1ap_ue_context_setup_resp->du_to_cu_rrc_information = (du_to_cu_rrc_information_t *)calloc(1,sizeof(du_to_cu_rrc_information_t));
+  f1ap_ue_context_setup_resp->du_to_cu_rrc_information->cellGroupConfig = (uint8_t *)calloc(1,ie->value.choice.DUtoCURRCInformation.cellGroupConfig.size);
+  memcpy(f1ap_ue_context_setup_resp->du_to_cu_rrc_information->cellGroupConfig, ie->value.choice.DUtoCURRCInformation.cellGroupConfig.buf, ie->value.choice.DUtoCURRCInformation.cellGroupConfig.size);
+  f1ap_ue_context_setup_resp->du_to_cu_rrc_information->cellGroupConfig_length = ie->value.choice.DUtoCURRCInformation.cellGroupConfig.size;
   // DRBs_Setup_List
   F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextSetupResponseIEs_t, ie, container,
                              F1AP_ProtocolIE_ID_id_DRBs_Setup_List, false);
@@ -896,12 +906,14 @@ int CU_send_UE_CONTEXT_RELEASE_COMMAND(instance_t instance,
 
   /* optional */
   /* c4. RRCContainer */
-  asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextReleaseCommandIEs_t, ie4);
-  ie4->id                             = F1AP_ProtocolIE_ID_id_RRCContainer;
-  ie4->criticality                    = F1AP_Criticality_ignore;
-  ie4->value.present                  = F1AP_UEContextReleaseCommandIEs__value_PR_RRCContainer;
-  OCTET_STRING_fromBuf(&ie4->value.choice.RRCContainer, (const char *)cmd->rrc_container,
+  if(cmd->rrc_container!=NULL){
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextReleaseCommandIEs_t, ie4);
+    ie4->id                             = F1AP_ProtocolIE_ID_id_RRCContainer;
+    ie4->criticality                    = F1AP_Criticality_ignore;
+    ie4->value.present                  = F1AP_UEContextReleaseCommandIEs__value_PR_RRCContainer;
+    OCTET_STRING_fromBuf(&ie4->value.choice.RRCContainer, (const char *)cmd->rrc_container,
                        cmd->rrc_container_length);
+  }
 
   /* encode */
   if (f1ap_encode_pdu(&pdu, &buffer, &len) < 0) {
@@ -1008,7 +1020,7 @@ int CU_handle_UE_CONTEXT_RELEASE_COMPLETE(instance_t       instance,
   return 0;
 }
 //void CU_send_UE_CONTEXT_MODIFICATION_REQUEST(F1AP_UEContextModificationRequest_t *UEContextModificationRequest) {
-int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance) {
+int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance, f1ap_ue_context_setup_t *f1ap_ue_context_modification_req) {
   F1AP_F1AP_PDU_t                        pdu= {0};
   F1AP_UEContextModificationRequest_t    *out;
   uint8_t  *buffer=NULL;
@@ -1029,14 +1041,14 @@ int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance) {
   ie1->id                             = F1AP_ProtocolIE_ID_id_gNB_CU_UE_F1AP_ID;
   ie1->criticality                    = F1AP_Criticality_reject;
   ie1->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_GNB_CU_UE_F1AP_ID;
-  ie1->value.choice.GNB_CU_UE_F1AP_ID = 126L;
+  ie1->value.choice.GNB_CU_UE_F1AP_ID = f1ap_get_cu_ue_f1ap_id(CUtype, instance, f1ap_ue_context_modification_req->rnti);;
   /* mandatory */
   /* c2. GNB_DU_UE_F1AP_ID */
   asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie2);
   ie2->id                             = F1AP_ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID;
   ie2->criticality                    = F1AP_Criticality_reject;
   ie2->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_GNB_DU_UE_F1AP_ID;
-  ie2->value.choice.GNB_DU_UE_F1AP_ID = 651L;
+  ie2->value.choice.GNB_DU_UE_F1AP_ID = f1ap_get_du_ue_f1ap_id(CUtype, instance, f1ap_ue_context_modification_req->rnti);;
 
   /* optional */
   /* c3. NRCGI */
@@ -1049,13 +1061,15 @@ int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance) {
     addnRCGI(ie3->value.choice.NRCGI, &hardCoded);
   }
 
-  /* mandatory */
+  /* optional */
   /* c4. ServCellIndex */
-  asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie4);
-  ie4->id                             = F1AP_ProtocolIE_ID_id_ServCellIndex;
-  ie4->criticality                    = F1AP_Criticality_reject;
-  ie4->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_ServCellIndex;
-  ie4->value.choice.ServCellIndex     = 5L;
+  if(0){
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie4);
+    ie4->id                             = F1AP_ProtocolIE_ID_id_ServCellIndex;
+    ie4->criticality                    = F1AP_Criticality_reject;
+    ie4->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_ServCellIndex;
+    ie4->value.choice.ServCellIndex     = 5L;
+  }
 
   /* optional */
   /* c5. DRXCycle */
@@ -1077,47 +1091,58 @@ int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance) {
   }
 
   /* optional */
-  /* c5. CUtoDURRCInformation */
-  if (1) {
-    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie5);
-    ie5->id                             = F1AP_ProtocolIE_ID_id_CUtoDURRCInformation;
-    ie5->criticality                    = F1AP_Criticality_reject;
-    ie5->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_CUtoDURRCInformation;
-    asn1cCalloc(ie5->value.choice.CUtoDURRCInformation.cG_ConfigInfo, tmp);
+  /* c6. CUtoDURRCInformation */
+  if (f1ap_ue_context_modification_req->cu_to_du_rrc_information!=NULL) {
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie6);
+    ie6->id                             = F1AP_ProtocolIE_ID_id_CUtoDURRCInformation;
+    ie6->criticality                    = F1AP_Criticality_reject;
+    ie6->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_CUtoDURRCInformation;
+    /* 6.1 cG_ConfigInfo */
+    if(f1ap_ue_context_modification_req->cu_to_du_rrc_information->cG_ConfigInfo!=NULL){
+      asn1cCalloc(ie6->value.choice.CUtoDURRCInformation.cG_ConfigInfo, cG_ConfigInfo);
+      OCTET_STRING_fromBuf(cG_ConfigInfo, (const char *)f1ap_ue_context_modification_req->cu_to_du_rrc_information->cG_ConfigInfo,
+        f1ap_ue_context_modification_req->cu_to_du_rrc_information->cG_ConfigInfo_length);
+    }
     /* optional */
-    OCTET_STRING_fromBuf(tmp, "asdsa1d32sa1d31asd31as",
-                         strlen("asdsa1d32sa1d31asd31as"));
-    asn1cCalloc(ie5->value.choice.CUtoDURRCInformation.uE_CapabilityRAT_ContainerList,
-                tmp2);
+    /* 6.2 uE_CapabilityRAT_ContainerList */
+    if(f1ap_ue_context_modification_req->cu_to_du_rrc_information->uE_CapabilityRAT_ContainerList!=NULL){
+      asn1cCalloc(ie6->value.choice.CUtoDURRCInformation.uE_CapabilityRAT_ContainerList, uE_CapabilityRAT_ContainerList );
+      OCTET_STRING_fromBuf(uE_CapabilityRAT_ContainerList, (const char *)f1ap_ue_context_modification_req->cu_to_du_rrc_information->uE_CapabilityRAT_ContainerList,
+          f1ap_ue_context_modification_req->cu_to_du_rrc_information->uE_CapabilityRAT_ContainerList_length) ;
+    }
     /* optional */
-    OCTET_STRING_fromBuf(tmp2, "asdsa1d32sa1d31asd31as",
-                         strlen("asdsa1d32sa1d31asd31as"));
+    /* 6.3 measConfig */
+    if(f1ap_ue_context_modification_req->cu_to_du_rrc_information->measConfig!=NULL){
+      asn1cCalloc(ie6->value.choice.CUtoDURRCInformation.measConfig,  measConfig);
+      OCTET_STRING_fromBuf(measConfig, (const char *)f1ap_ue_context_modification_req->cu_to_du_rrc_information->measConfig,
+          f1ap_ue_context_modification_req->cu_to_du_rrc_information->measConfig_length);
+    }
   }
 
   /* optional */
-  /* c6. TransmissionActionIndicator */
-  if (1) {
-    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie6);
-    ie6->id                                     = F1AP_ProtocolIE_ID_id_TransmissionActionIndicator;
-    ie6->criticality                            = F1AP_Criticality_ignore;
-    ie6->value.present                          = F1AP_UEContextModificationRequestIEs__value_PR_TransmissionActionIndicator;
-    ie6->value.choice.TransmissionActionIndicator = F1AP_TransmissionActionIndicator_stop;
+  /* c7. TransmissionActionIndicator */
+  if (0) {
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie7);
+    ie7->id                                     = F1AP_ProtocolIE_ID_id_TransmissionActionIndicator;
+    ie7->criticality                            = F1AP_Criticality_ignore;
+    ie7->value.present                          = F1AP_UEContextModificationRequestIEs__value_PR_TransmissionActionIndicator;
+    ie7->value.choice.TransmissionActionIndicator = F1AP_TransmissionActionIndicator_stop;
   }
 
   /* optional */
-  /* c7. ResourceCoordinationTransferContainer */
+  /* c8. ResourceCoordinationTransferContainer */
   if (0) {
-    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie7);
-    ie7->id                             = F1AP_ProtocolIE_ID_id_ResourceCoordinationTransferContainer;
-    ie7->criticality                    = F1AP_Criticality_ignore;
-    ie7->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_ResourceCoordinationTransferContainer;
-    OCTET_STRING_fromBuf(&ie7->value.choice.ResourceCoordinationTransferContainer, "asdsa1d32sa1d31asd31as",
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie8);
+    ie8->id                             = F1AP_ProtocolIE_ID_id_ResourceCoordinationTransferContainer;
+    ie8->criticality                    = F1AP_Criticality_ignore;
+    ie8->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_ResourceCoordinationTransferContainer;
+    OCTET_STRING_fromBuf(&ie8->value.choice.ResourceCoordinationTransferContainer, "asdsa1d32sa1d31asd31as",
                          strlen("asdsa1d32sa1d31asd31as"));
   }
 
   /* optional */
   /* c7. RRCRconfigurationCompleteIndicator */
-  if (1) {
+  if (f1ap_ue_context_modification_req->ReconfigComplOutcome == RRCreconf_success) {
     asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie71);
     ie71->id                             = F1AP_ProtocolIE_ID_id_RRCReconfigurationCompleteIndicator;
     ie71->criticality                    = F1AP_Criticality_ignore;
@@ -1127,218 +1152,488 @@ int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance) {
 
   /* optional */
   /* c8. RRCContainer */
-  if (1) {
-    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie8);
-    ie8->id                             = F1AP_ProtocolIE_ID_id_RRCContainer;
-    ie8->criticality                    = F1AP_Criticality_ignore;
-    ie8->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_RRCContainer;
-    OCTET_STRING_fromBuf(&ie8->value.choice.RRCContainer, "asdsa1d32sa1d31asd31as",
-                         strlen("asdsa1d32sa1d31asd31as"));
+  if (f1ap_ue_context_modification_req->rrc_container != NULL) {
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie81);
+    ie81->id                             = F1AP_ProtocolIE_ID_id_RRCContainer;
+    ie81->criticality                    = F1AP_Criticality_ignore;
+    ie81->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_RRCContainer;
+    OCTET_STRING_fromBuf(&ie81->value.choice.RRCContainer, (const char*)f1ap_ue_context_modification_req->rrc_container,
+        f1ap_ue_context_modification_req->rrc_container_length);
   }
 
-  /* mandatory */
+  /* optional */
   /* c9. SCell_ToBeSetupMod_List */
-  asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie9);
-  ie9->id                             = F1AP_ProtocolIE_ID_id_SCell_ToBeSetupMod_List;
-  ie9->criticality                    = F1AP_Criticality_ignore;
-  ie9->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_SCell_ToBeSetupMod_List;
+  if(0){
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie9);
+    ie9->id                             = F1AP_ProtocolIE_ID_id_SCell_ToBeSetupMod_List;
+    ie9->criticality                    = F1AP_Criticality_ignore;
+    ie9->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_SCell_ToBeSetupMod_List;
 
-  for (int i=0; i<1; i++) {
-    //
-    asn1cSequenceAdd(ie9->value.choice.SCell_ToBeSetupMod_List.list,
+    for (int i=0; i<1; i++) {
+      //
+      asn1cSequenceAdd(ie9->value.choice.SCell_ToBeSetupMod_List.list,
                      F1AP_SCell_ToBeSetupMod_ItemIEs_t, scell_toBeSetupMod_item_ies);
-    scell_toBeSetupMod_item_ies->id            = F1AP_ProtocolIE_ID_id_SCell_ToBeSetupMod_Item;
-    scell_toBeSetupMod_item_ies->criticality   = F1AP_Criticality_ignore;
-    scell_toBeSetupMod_item_ies->value.present = F1AP_SCell_ToBeSetupMod_ItemIEs__value_PR_SCell_ToBeSetupMod_Item;
-    /* 8.1 SCell_ToBeSetup_Item */
-    F1AP_SCell_ToBeSetupMod_Item_t *scell_toBeSetupMod_item=
-      &scell_toBeSetupMod_item_ies->value.choice.SCell_ToBeSetupMod_Item;
-    //   /* - sCell_ID */
-    addnRCGI(scell_toBeSetupMod_item->sCell_ID, &hardCoded);
-    /* sCellIndex */
-    scell_toBeSetupMod_item->sCellIndex = 6;  // issue here
+      scell_toBeSetupMod_item_ies->id            = F1AP_ProtocolIE_ID_id_SCell_ToBeSetupMod_Item;
+      scell_toBeSetupMod_item_ies->criticality   = F1AP_Criticality_ignore;
+      scell_toBeSetupMod_item_ies->value.present = F1AP_SCell_ToBeSetupMod_ItemIEs__value_PR_SCell_ToBeSetupMod_Item;
+      /* 8.1 SCell_ToBeSetup_Item */
+      F1AP_SCell_ToBeSetupMod_Item_t *scell_toBeSetupMod_item=
+          &scell_toBeSetupMod_item_ies->value.choice.SCell_ToBeSetupMod_Item;
+      //   /* - sCell_ID */
+      addnRCGI(scell_toBeSetupMod_item->sCell_ID, &hardCoded);
+      /* sCellIndex */
+      scell_toBeSetupMod_item->sCellIndex = 6;  // issue here
+      }
   }
 
-  /* mandatory */
+  /* optional */
   /* c10. SCell_ToBeRemoved_List */
-  asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie10);
-  ie10->id                             = F1AP_ProtocolIE_ID_id_SCell_ToBeRemoved_List;
-  ie10->criticality                    = F1AP_Criticality_ignore;
-  ie10->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_SCell_ToBeRemoved_List;
-
-  for (int i=0;  i<1; i++) {
-    //
-    asn1cSequenceAdd(ie10->value.choice.SCell_ToBeRemoved_List.list,
+  if(0){
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie10);
+    ie10->id                             = F1AP_ProtocolIE_ID_id_SCell_ToBeRemoved_List;
+    ie10->criticality                    = F1AP_Criticality_ignore;
+    ie10->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_SCell_ToBeRemoved_List;
+
+    for (int i=0;  i<1; i++) {
+      //
+      asn1cSequenceAdd(ie10->value.choice.SCell_ToBeRemoved_List.list,
                      F1AP_SCell_ToBeRemoved_ItemIEs_t, scell_toBeRemoved_item_ies);
-    scell_toBeRemoved_item_ies = (F1AP_SCell_ToBeRemoved_ItemIEs_t *)calloc(1, sizeof(F1AP_SCell_ToBeRemoved_ItemIEs_t));
-    //memset((void *)&scell_toBeRemoved_item_ies, 0, sizeof(F1AP_SCell_ToBeRemoved_ItemIEs_t));
-    scell_toBeRemoved_item_ies->id            = F1AP_ProtocolIE_ID_id_SCell_ToBeRemoved_Item;
-    scell_toBeRemoved_item_ies->criticality   = F1AP_Criticality_ignore;
-    scell_toBeRemoved_item_ies->value.present = F1AP_SCell_ToBeRemoved_ItemIEs__value_PR_SCell_ToBeRemoved_Item;
-    /* 10.1 SCell_ToBeRemoved_Item */
-    F1AP_SCell_ToBeRemoved_Item_t *scell_toBeRemoved_item=
-      &scell_toBeRemoved_item_ies->value.choice.SCell_ToBeRemoved_Item;
-    /* - sCell_ID */
-    addnRCGI(scell_toBeRemoved_item->sCell_ID, &hardCoded);
+      scell_toBeRemoved_item_ies = (F1AP_SCell_ToBeRemoved_ItemIEs_t *)calloc(1, sizeof(F1AP_SCell_ToBeRemoved_ItemIEs_t));
+      //memset((void *)&scell_toBeRemoved_item_ies, 0, sizeof(F1AP_SCell_ToBeRemoved_ItemIEs_t));
+      scell_toBeRemoved_item_ies->id            = F1AP_ProtocolIE_ID_id_SCell_ToBeRemoved_Item;
+      scell_toBeRemoved_item_ies->criticality   = F1AP_Criticality_ignore;
+      scell_toBeRemoved_item_ies->value.present = F1AP_SCell_ToBeRemoved_ItemIEs__value_PR_SCell_ToBeRemoved_Item;
+      /* 10.1 SCell_ToBeRemoved_Item */
+      F1AP_SCell_ToBeRemoved_Item_t *scell_toBeRemoved_item=
+        &scell_toBeRemoved_item_ies->value.choice.SCell_ToBeRemoved_Item;
+      /* - sCell_ID */
+      addnRCGI(scell_toBeRemoved_item->sCell_ID, &hardCoded);
+    }
   }
 
   /* mandatory */
   /* c11. SRBs_ToBeSetupMod_List */
-  asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie11);
-  ie11->id                             = F1AP_ProtocolIE_ID_id_SRBs_ToBeSetupMod_List;
-  ie11->criticality                    = F1AP_Criticality_reject;
-  ie11->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_SRBs_ToBeSetupMod_List;
-
-  for (int i=0;  i<1; i++) {
-    //
-    asn1cSequenceAdd(ie11->value.choice.SRBs_ToBeSetupMod_List.list,
-                     F1AP_SRBs_ToBeSetupMod_ItemIEs_t, srbs_toBeSetupMod_item_ies);
-    srbs_toBeSetupMod_item_ies->id            = F1AP_ProtocolIE_ID_id_SRBs_ToBeSetupMod_Item;
-    srbs_toBeSetupMod_item_ies->criticality   = F1AP_Criticality_ignore;
-    srbs_toBeSetupMod_item_ies->value.present = F1AP_SRBs_ToBeSetupMod_ItemIEs__value_PR_SRBs_ToBeSetupMod_Item;
-    /* 9.1 SRBs_ToBeSetupMod_Item */
-    F1AP_SRBs_ToBeSetupMod_Item_t *srbs_toBeSetupMod_item=
-      &srbs_toBeSetupMod_item_ies->value.choice.SRBs_ToBeSetupMod_Item;
-    /* - sRBID */
-    srbs_toBeSetupMod_item->sRBID = 3L;
+  if(f1ap_ue_context_modification_req->srbs_to_be_setup_length > 0){
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie11);
+    ie11->id                             = F1AP_ProtocolIE_ID_id_SRBs_ToBeSetupMod_List;
+    ie11->criticality                    = F1AP_Criticality_reject;
+    ie11->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_SRBs_ToBeSetupMod_List;
+
+    for (int i=0; i<f1ap_ue_context_modification_req->srbs_to_be_setup_length; i++) {
+      //
+      asn1cSequenceAdd(ie11->value.choice.SRBs_ToBeSetupMod_List, F1AP_SRBs_ToBeSetupMod_ItemIEs_t, srbs_toBeSetupMod_item_ies);
+      srbs_toBeSetupMod_item_ies->id            = F1AP_ProtocolIE_ID_id_SRBs_ToBeSetupMod_Item; // 73
+      srbs_toBeSetupMod_item_ies->criticality   = F1AP_Criticality_reject;
+      srbs_toBeSetupMod_item_ies->value.present = F1AP_SRBs_ToBeSetupMod_ItemIEs__value_PR_SRBs_ToBeSetupMod_Item;
+      /* 11.1 SRBs_ToBeSetup_Item */
+      F1AP_SRBs_ToBeSetupMod_Item_t *srbs_toBeSetupMod_item=&srbs_toBeSetupMod_item_ies->value.choice.SRBs_ToBeSetupMod_Item;
+      /* 11.1.1 sRBID */
+      srbs_toBeSetupMod_item->sRBID = f1ap_ue_context_modification_req->srbs_to_be_setup[i].srb_id;
+      /* OPTIONAL */
+      /* 11.1.2 duplicationIndication */
+      asn1cCallocOne(srbs_toBeSetupMod_item->duplicationIndication,
+                   F1AP_DuplicationIndication_true); // enum
+    }
   }
 
   /* mandatory */
   /* c12. DRBs_ToBeSetupMod_List */
-  asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie12);
-  ie12->id                             = F1AP_ProtocolIE_ID_id_DRBs_ToBeSetupMod_List;
-  ie12->criticality                    = F1AP_Criticality_reject;
-  ie12->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_DRBs_ToBeSetupMod_List;
+  if(f1ap_ue_context_modification_req->drbs_to_be_setup_length){
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie12);
+    ie12->id                             = F1AP_ProtocolIE_ID_id_DRBs_ToBeSetupMod_List;
+    ie12->criticality                    = F1AP_Criticality_reject;
+    ie12->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_DRBs_ToBeSetupMod_List;
 
-  for (int i=0;   i<1; i++) {
-    //
-    asn1cSequenceAdd(ie12->value.choice.DRBs_ToBeSetupMod_List.list,
+    for (int i = 0; i < f1ap_ue_context_modification_req->drbs_to_be_setup_length; i++) {
+      asn1cSequenceAdd(ie12->value.choice.DRBs_ToBeSetupMod_List.list,
                      F1AP_DRBs_ToBeSetupMod_ItemIEs_t, drbs_toBeSetupMod_item_ies);
-    drbs_toBeSetupMod_item_ies->id            = F1AP_ProtocolIE_ID_id_DRBs_ToBeSetupMod_Item;
-    drbs_toBeSetupMod_item_ies->criticality   = F1AP_Criticality_reject;
-    drbs_toBeSetupMod_item_ies->value.present = F1AP_DRBs_ToBeSetupMod_ItemIEs__value_PR_DRBs_ToBeSetupMod_Item;
-    /* 12.1 DRBs_ToBeSetupMod_Item */
-    F1AP_DRBs_ToBeSetupMod_Item_t *drbs_toBeSetupMod_item=
-      &drbs_toBeSetupMod_item_ies->value.choice.DRBs_ToBeSetupMod_Item;
-    /* dRBID */
-    drbs_toBeSetupMod_item->dRBID = 30L;
-    /* qoSInformation */
-    drbs_toBeSetupMod_item->qoSInformation.present = F1AP_QoSInformation_PR_eUTRANQoS;
-    drbs_toBeSetupMod_item->qoSInformation.choice.eUTRANQoS = (F1AP_EUTRANQoS_t *)calloc(1, sizeof(F1AP_EUTRANQoS_t));
-    drbs_toBeSetupMod_item->qoSInformation.choice.eUTRANQoS->qCI = 253L;
-    /* uLUPTNLInformation_ToBeSetup_List */
-    int maxnoofULTunnels = 1; // 2;
-
-    for (int j=0;  j<maxnoofULTunnels;  j++) {
-      /*  ULTunnels_ToBeSetup_Item */
-      asn1cSequenceAdd( drbs_toBeSetupMod_item->uLUPTNLInformation_ToBeSetup_List.list,
+      drbs_toBeSetupMod_item_ies->id            = F1AP_ProtocolIE_ID_id_DRBs_ToBeSetupMod_Item;
+      drbs_toBeSetupMod_item_ies->criticality   = F1AP_Criticality_reject;
+      drbs_toBeSetupMod_item_ies->value.present = F1AP_DRBs_ToBeSetupMod_ItemIEs__value_PR_DRBs_ToBeSetupMod_Item;
+      /* 12.1 DRBs_ToBeSetupMod_Item */
+      F1AP_DRBs_ToBeSetupMod_Item_t *drbs_toBeSetupMod_item=
+          &drbs_toBeSetupMod_item_ies->value.choice.DRBs_ToBeSetupMod_Item;
+      /* dRBID */
+      drbs_toBeSetupMod_item->dRBID = f1ap_ue_context_modification_req->drbs_to_be_setup[i].drb_id;
+      /* qoSInformation */
+
+      if(f1ap_ue_context_modification_req->QoS_information_type == EUTRAN_QoS){
+        drbs_toBeSetupMod_item->qoSInformation.present = F1AP_QoSInformation_PR_eUTRANQoS;
+        drbs_toBeSetupMod_item->qoSInformation.choice.eUTRANQoS = (F1AP_EUTRANQoS_t *)calloc(1, sizeof(F1AP_EUTRANQoS_t));
+        drbs_toBeSetupMod_item->qoSInformation.choice.eUTRANQoS->qCI = 253L;
+        /* uLUPTNLInformation_ToBeSetup_List */
+        int maxnoofULTunnels = 1; // 2;
+
+        for (int j=0;  j<maxnoofULTunnels;  j++) {
+          /*  ULTunnels_ToBeSetup_Item */
+          asn1cSequenceAdd( drbs_toBeSetupMod_item->uLUPTNLInformation_ToBeSetup_List.list,
                         F1AP_ULUPTNLInformation_ToBeSetup_Item_t, uLUPTNLInformation_ToBeSetup_Item);
-      uLUPTNLInformation_ToBeSetup_Item->uLUPTNLInformation.present = F1AP_UPTransportLayerInformation_PR_gTPTunnel;
-      asn1cCalloc(uLUPTNLInformation_ToBeSetup_Item->uLUPTNLInformation.choice.gTPTunnel,
+          uLUPTNLInformation_ToBeSetup_Item->uLUPTNLInformation.present = F1AP_UPTransportLayerInformation_PR_gTPTunnel;
+          asn1cCalloc(uLUPTNLInformation_ToBeSetup_Item->uLUPTNLInformation.choice.gTPTunnel,
                   gTPTunnel)
-      /* transportLayerAddress */
-      TRANSPORT_LAYER_ADDRESS_IPv4_TO_BIT_STRING(1234, &gTPTunnel->transportLayerAddress);
-      /* gTP_TEID */
-      OCTET_STRING_fromBuf(&gTPTunnel->gTP_TEID, "4567",
-                           strlen("4567"));
-    }
+          /* transportLayerAddress */
+          TRANSPORT_LAYER_ADDRESS_IPv4_TO_BIT_STRING(1234, &gTPTunnel->transportLayerAddress);
+          /* gTP_TEID */
+          OCTET_STRING_fromBuf(&gTPTunnel->gTP_TEID, "4567",
+            strlen("4567"));
+        }
 
-    /* rLCMode */
-    drbs_toBeSetupMod_item->rLCMode = F1AP_RLCMode_rlc_um_bidirectional; // enum
+        /* rLCMode */
+        drbs_toBeSetupMod_item->rLCMode = F1AP_RLCMode_rlc_um_bidirectional; // enum
 
-    /* OPTIONAL */
-    /* ULConfiguration */
-    if (0) {
-      drbs_toBeSetupMod_item->uLConfiguration = (F1AP_ULConfiguration_t *)calloc(1, sizeof(F1AP_ULConfiguration_t));
+        /* OPTIONAL */
+        /* ULConfiguration */
+        if (0) {
+          drbs_toBeSetupMod_item->uLConfiguration = (F1AP_ULConfiguration_t *)calloc(1, sizeof(F1AP_ULConfiguration_t));
+        }
+      } //QoS information
+
+      else{
+        /* 12.1.2 DRB_Information */
+        drbs_toBeSetupMod_item->qoSInformation.present = F1AP_QoSInformation_PR_choice_extension;
+        F1AP_QoSInformation_ExtIEs_t *ie = (F1AP_QoSInformation_ExtIEs_t *)calloc(1, sizeof(*ie));
+        ie->id                             = F1AP_ProtocolIE_ID_id_DRB_Information;
+        ie->criticality                    = F1AP_Criticality_reject;
+        ie->value.present                  = F1AP_QoSInformation_ExtIEs__value_PR_DRB_Information;
+        F1AP_DRB_Information_t   *DRB_Information = &ie->value.choice.DRB_Information;
+        drbs_toBeSetupMod_item->qoSInformation.choice.choice_extension = (struct F1AP_ProtocolIE_SingleContainer *)ie;
+        /* 12.1.2.1 dRB_QoS */
+        {
+          /* qoS_Characteristics */
+          {
+            int some_decide_qoS_characteristics = 0; // BK: Need Check
+
+            if (some_decide_qoS_characteristics) {
+              DRB_Information->dRB_QoS.qoS_Characteristics.present = F1AP_QoS_Characteristics_PR_non_Dynamic_5QI;
+              setQos(DRB_Information->dRB_QoS.qoS_Characteristics.choice.non_Dynamic_5QI);
+            } else {
+                DRB_Information->dRB_QoS.qoS_Characteristics.present = F1AP_QoS_Characteristics_PR_dynamic_5QI;
+                asn1cCalloc(DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI, tmp);
+                /* qoSPriorityLevel */
+                tmp->qoSPriorityLevel = 1L;
+                /* packetDelayBudget */
+                tmp->packetDelayBudget = 1L;
+                /* packetErrorRate */
+                tmp->packetErrorRate.pER_Scalar = 1L;
+                tmp->packetErrorRate.pER_Exponent = 6L;
+
+                /* OPTIONAL */
+                /* delayCritical */
+                if (0) {
+                  asn1cCallocOne(DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->delayCritical, 1L);
+                }
+
+                /* OPTIONAL */
+                /* averagingWindow */
+                if (0) {
+                  asn1cCallocOne(DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->averagingWindow, 1L);
+                }
+
+                /* OPTIONAL */
+                /* maxDataBurstVolume */
+                if (0) {
+                  asn1cCallocOne(DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->maxDataBurstVolume, 1L);
+                }
+              } // if some_decide_qoS_characteristics
+
+            } // qoS_Characteristics
+            /* nGRANallocationRetentionPriority */
+            {
+              DRB_Information->dRB_QoS.nGRANallocationRetentionPriority.priorityLevel = F1AP_PriorityLevel_highest; // enum
+              DRB_Information->dRB_QoS.nGRANallocationRetentionPriority.pre_emptionCapability = F1AP_Pre_emptionCapability_shall_not_trigger_pre_emption; // enum
+              DRB_Information->dRB_QoS.nGRANallocationRetentionPriority.pre_emptionVulnerability = F1AP_Pre_emptionVulnerability_not_pre_emptable; // enum
+            } // nGRANallocationRetentionPriority
+
+          /* OPTIONAL */
+          /* gBR_QoS_Flow_Information */
+          if (0) {
+            asn1cCalloc(DRB_Information->dRB_QoS.gBR_QoS_Flow_Information, tmp);
+            asn_long2INTEGER(&tmp->maxFlowBitRateDownlink, 1L);
+            asn_long2INTEGER(&tmp->maxFlowBitRateUplink, 1L);
+            asn_long2INTEGER(&tmp->guaranteedFlowBitRateDownlink, 1L);
+            asn_long2INTEGER(&tmp->guaranteedFlowBitRateUplink, 1L);
+
+            /* OPTIONAL */
+            /* maxPacketLossRateDownlink */
+            if (0) {
+              asn1cCallocOne(DRB_Information->dRB_QoS.gBR_QoS_Flow_Information->maxPacketLossRateDownlink, 1L);
+            }
+
+            /* OPTIONAL */
+            /* maxPacketLossRateUplink */
+            if (0) {
+              asn1cCallocOne(DRB_Information->dRB_QoS.gBR_QoS_Flow_Information->maxPacketLossRateUplink, 1L);
+            }
+          }
+
+          /* OPTIONAL */
+          /* reflective_QoS_Attribute */
+          if (0) {
+            asn1cCallocOne(DRB_Information->dRB_QoS.reflective_QoS_Attribute, 1L);
+          }
+        } // dRB_QoS
+        /* 12.1.2.2 sNSSAI */
+        {
+          /* sST */
+
+          OCTET_STRING_fromBuf(&DRB_Information->sNSSAI.sST, "1", 1);
+
+          /* OPTIONAL */
+          /* sD */
+          if (0) {
+            asn1cCalloc(DRB_Information->sNSSAI.sD, tmp);
+            OCTET_STRING_fromBuf(tmp, "asdsa1d32sa1d31asd31as",
+            strlen("asdsa1d32sa1d31asd31as"));
+          }
+        }
+
+        /* OPTIONAL */
+        /* 12.1.2.3 notificationControl */
+        if (0) {
+          asn1cCallocOne(DRB_Information->notificationControl,
+              F1AP_NotificationControl_active); // enum
+        }
+
+        /* 12.1.2.4 flows_Mapped_To_DRB_List */  // BK: need verifiy
+
+        for (int k = 0; k < 1; k ++) {
+          asn1cSequenceAdd(DRB_Information->flows_Mapped_To_DRB_List.list,
+                         F1AP_Flows_Mapped_To_DRB_Item_t, flows_mapped_to_drb_item);
+          /* qoSFlowIndicator */
+          flows_mapped_to_drb_item->qoSFlowIdentifier = 1L;
+          /* qoSFlowLevelQoSParameters */
+          {
+            /* qoS_Characteristics */
+            {
+              int some_decide_qoS_characteristics = 0; // BK: Need Check
+              F1AP_QoS_Characteristics_t *QosParams=&flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.qoS_Characteristics;
+
+              if (some_decide_qoS_characteristics) {
+                QosParams->present = F1AP_QoS_Characteristics_PR_non_Dynamic_5QI;
+                setQos(QosParams->choice.non_Dynamic_5QI);
+              } else {
+                QosParams->present = F1AP_QoS_Characteristics_PR_dynamic_5QI;
+                asn1cCalloc(QosParams->choice.dynamic_5QI, tmp);
+                /* qoSPriorityLevel */
+                tmp->qoSPriorityLevel = 1L;
+                /* packetDelayBudget */
+                tmp->packetDelayBudget = 1L;
+                /* packetErrorRate */
+                tmp->packetErrorRate.pER_Scalar = 1L;
+                tmp->packetErrorRate.pER_Exponent = 6L;
+
+                /* OPTIONAL */
+                /* delayCritical */
+                if (0) {
+                  asn1cCalloc(QosParams->choice.dynamic_5QI->delayCritical, tmp);
+                  *tmp = 1L;
+                }
+
+                /* OPTIONAL */
+                /* averagingWindow */
+                if (0) {
+                  asn1cCalloc(QosParams->choice.dynamic_5QI->averagingWindow, tmp);
+                  *tmp = 1L;
+                }
+
+                /* OPTIONAL */
+                /* maxDataBurstVolume */
+                if (0) {
+                  asn1cCalloc(QosParams->choice.dynamic_5QI->maxDataBurstVolume, tmp);
+                  *tmp= 1L;
+                }
+              } // if some_decide_qoS_characteristics
+
+            } // qoS_Characteristics
+            /* nGRANallocationRetentionPriority */
+            {
+              flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.nGRANallocationRetentionPriority.priorityLevel = F1AP_PriorityLevel_highest; // enum
+              flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.nGRANallocationRetentionPriority.pre_emptionCapability = F1AP_Pre_emptionCapability_shall_not_trigger_pre_emption; // enum
+              flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.nGRANallocationRetentionPriority.pre_emptionVulnerability = F1AP_Pre_emptionVulnerability_not_pre_emptable; // enum
+            } // nGRANallocationRetentionPriority
+
+            /* OPTIONAL */
+            /* gBR_QoS_Flow_Information */
+            if (0) {
+              asn1cCalloc(flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.gBR_QoS_Flow_Information, tmp);
+              asn_long2INTEGER(&tmp->maxFlowBitRateDownlink, 1L);
+              asn_long2INTEGER(&tmp->maxFlowBitRateUplink, 1L);
+              asn_long2INTEGER(&tmp->guaranteedFlowBitRateDownlink, 1L);
+              asn_long2INTEGER(&tmp->guaranteedFlowBitRateUplink, 1L);
+
+              /* OPTIONAL */
+              /* maxPacketLossRateDownlink */
+              if (0) {
+                asn1cCallocOne(flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.gBR_QoS_Flow_Information->maxPacketLossRateDownlink, 1L);
+              }
+
+              /* OPTIONAL */
+              /* maxPacketLossRateUplink */
+              if (0) {
+                asn1cCallocOne(flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.gBR_QoS_Flow_Information->maxPacketLossRateUplink, 1L);
+              }
+            }
+
+            /* OPTIONAL */
+            /* reflective_QoS_Attribute */
+            if (0) {
+              asn1cCallocOne(flows_mapped_to_drb_item->qoSFlowLevelQoSParameters.reflective_QoS_Attribute, 1L);
+            }
+          } // qoSFlowLevelQoSParameters
+        }
+
+      } //QoS information
+
+      /* 12.1.3 uLUPTNLInformation_ToBeSetup_List */
+      for (int j = 0; j < f1ap_ue_context_modification_req->drbs_to_be_setup[i].up_ul_tnl_length; j++) {
+        /*Use a dummy teid for the outgoing GTP-U tunnel (DU) which will be updated once we get the UE context setup response from the DU*/
+        transport_layer_addr_t addr;
+        int sz=sizeof(f1ap_ue_context_modification_req->drbs_to_be_setup[i].up_dl_tnl[0].tl_address);
+        memcpy(addr.buffer,&f1ap_ue_context_modification_req->drbs_to_be_setup[i].up_dl_tnl[0].tl_address, sz);
+        addr.length = sz*8;
+
+        f1ap_ue_context_modification_req->drbs_to_be_setup[i].up_ul_tnl[j].teid = newGtpuCreateTunnel(getCxt(CUtype, instance)->gtpInst,
+                                                                                                      f1ap_ue_context_modification_req->rnti,
+                                                                                                      f1ap_ue_context_modification_req->drbs_to_be_setup[i].drb_id,
+                                                                                                      f1ap_ue_context_modification_req->drbs_to_be_setup[i].drb_id,
+                                                                                                      0xFFFF, // We will set the right value from DU answer
+                                                                                                      -1, // no qfi
+                                                                                                      addr,
+                                                                                                      f1ap_ue_context_modification_req->drbs_to_be_setup[i].up_dl_tnl[0].port,
+                                                                                                      cu_f1u_data_req,
+                                                                                                      NULL);
+        /*  12.3.1 ULTunnels_ToBeSetup_Item */
+        asn1cSequenceAdd(drbs_toBeSetupMod_item->uLUPTNLInformation_ToBeSetup_List.list,
+                       F1AP_ULUPTNLInformation_ToBeSetup_Item_t, uLUPTNLInformation_ToBeSetup_Item);
+        uLUPTNLInformation_ToBeSetup_Item->uLUPTNLInformation.present = F1AP_UPTransportLayerInformation_PR_gTPTunnel;
+        asn1cCalloc( uLUPTNLInformation_ToBeSetup_Item->uLUPTNLInformation.choice.gTPTunnel,
+                   gTPTunnel);
+        /* 12.3.1.1.1 transportLayerAddress */
+        TRANSPORT_LAYER_ADDRESS_IPv4_TO_BIT_STRING(f1ap_ue_context_modification_req->drbs_to_be_setup[i].up_ul_tnl[j].tl_address,
+                          &gTPTunnel->transportLayerAddress);
+        /* 12.3.1.1.2 gTP_TEID */
+        INT32_TO_OCTET_STRING(f1ap_ue_context_modification_req->drbs_to_be_setup[i].up_ul_tnl[j].teid,
+                &gTPTunnel->gTP_TEID);
+      }
+      /* 12.1.4 rLCMode */
+      /* TODO use rlc_mode from f1ap_drb_to_be_setup */
+      switch (f1ap_ue_context_modification_req->drbs_to_be_setup[i].rlc_mode) {
+        case RLC_MODE_AM:
+          drbs_toBeSetupMod_item->rLCMode = F1AP_RLCMode_rlc_am;
+          break;
+
+        default:
+          drbs_toBeSetupMod_item->rLCMode = F1AP_RLCMode_rlc_um_bidirectional;
+      }
+
+      /* OPTIONAL */
+      /* 12.1.5 ULConfiguration */
+      if (0) {
+        asn1cCalloc(drbs_toBeSetupMod_item->uLConfiguration, tmp);
+        tmp->uLUEConfiguration = F1AP_ULUEConfiguration_no_data;
+      }
+
+      /* OPTIONAL */
+      /* 12.1.6 duplicationActivation */
+      if (0) {
+        asn1cCalloc(drbs_toBeSetupMod_item->duplicationActivation, tmp);
+        *tmp = F1AP_DuplicationActivation_active;  // enum
+      }
     }
   }
 
-  /* mandatory */
-  /* c13. DRBs_ToBeModified_List */
-  asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie13);
-  ie13->id                             = F1AP_ProtocolIE_ID_id_DRBs_ToBeModified_List;
-  ie13->criticality                    = F1AP_Criticality_reject;
-  ie13->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_DRBs_ToBeModified_List;
+  /* optional */
+  if(0){
+    /* c13. DRBs_ToBeModified_List */
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie13);
+    ie13->id                             = F1AP_ProtocolIE_ID_id_DRBs_ToBeModified_List;
+    ie13->criticality                    = F1AP_Criticality_reject;
+    ie13->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_DRBs_ToBeModified_List;
 
-  for (int i=0;   i<1; i++) {
-    //
-    asn1cSequenceAdd( ie13->value.choice.DRBs_ToBeModified_List.list,
+    for (int i=0;   i<1; i++) {
+      //
+      asn1cSequenceAdd( ie13->value.choice.DRBs_ToBeModified_List.list,
                       F1AP_DRBs_ToBeModified_ItemIEs_t, drbs_toBeModified_item_ies);
-    drbs_toBeModified_item_ies->id            = F1AP_ProtocolIE_ID_id_DRBs_ToBeModified_Item;
-    drbs_toBeModified_item_ies->criticality   = F1AP_Criticality_reject;
-    drbs_toBeModified_item_ies->value.present = F1AP_DRBs_ToBeModified_ItemIEs__value_PR_DRBs_ToBeModified_Item;
-    /* 13.1 SRBs_ToBeModified_Item */
-    F1AP_DRBs_ToBeModified_Item_t *drbs_toBeModified_item=
-      &drbs_toBeModified_item_ies->value.choice.DRBs_ToBeModified_Item;
-    /* dRBID */
-    drbs_toBeModified_item->dRBID = 30L;
-    /* qoSInformation */
-    asn1cCalloc(drbs_toBeModified_item->qoSInformation, tmp);
-    tmp->present = F1AP_QoSInformation_PR_eUTRANQoS;
-    tmp->choice.eUTRANQoS = (F1AP_EUTRANQoS_t *)calloc(1, sizeof(F1AP_EUTRANQoS_t));
-    tmp->choice.eUTRANQoS->qCI = 254L;
-    /* ULTunnels_ToBeModified_List */
-    int maxnoofULTunnels = 1; // 2;
-
-    for (int j=0; j<maxnoofULTunnels; j++) {
-      /*  ULTunnels_ToBeModified_Item */
-      asn1cSequenceAdd(drbs_toBeModified_item->uLUPTNLInformation_ToBeSetup_List.list,
+      drbs_toBeModified_item_ies->id            = F1AP_ProtocolIE_ID_id_DRBs_ToBeModified_Item;
+      drbs_toBeModified_item_ies->criticality   = F1AP_Criticality_reject;
+      drbs_toBeModified_item_ies->value.present = F1AP_DRBs_ToBeModified_ItemIEs__value_PR_DRBs_ToBeModified_Item;
+      /* 13.1 SRBs_ToBeModified_Item */
+      F1AP_DRBs_ToBeModified_Item_t *drbs_toBeModified_item=
+          &drbs_toBeModified_item_ies->value.choice.DRBs_ToBeModified_Item;
+      /* dRBID */
+      drbs_toBeModified_item->dRBID = 30L;
+      /* qoSInformation */
+      asn1cCalloc(drbs_toBeModified_item->qoSInformation, tmp);
+      tmp->present = F1AP_QoSInformation_PR_eUTRANQoS;
+      tmp->choice.eUTRANQoS = (F1AP_EUTRANQoS_t *)calloc(1, sizeof(F1AP_EUTRANQoS_t));
+      tmp->choice.eUTRANQoS->qCI = 254L;
+      /* ULTunnels_ToBeModified_List */
+      int maxnoofULTunnels = 1; // 2;
+
+      for (int j=0; j<maxnoofULTunnels; j++) {
+        /*  ULTunnels_ToBeModified_Item */
+        asn1cSequenceAdd(drbs_toBeModified_item->uLUPTNLInformation_ToBeSetup_List.list,
                        F1AP_ULUPTNLInformation_ToBeSetup_Item_t, uLUPTNLInformation_ToBeSetup_Item);
-      uLUPTNLInformation_ToBeSetup_Item->uLUPTNLInformation.present = F1AP_UPTransportLayerInformation_PR_gTPTunnel;
-      asn1cCalloc(uLUPTNLInformation_ToBeSetup_Item->uLUPTNLInformation.choice.gTPTunnel,
+        uLUPTNLInformation_ToBeSetup_Item->uLUPTNLInformation.present = F1AP_UPTransportLayerInformation_PR_gTPTunnel;
+        asn1cCalloc(uLUPTNLInformation_ToBeSetup_Item->uLUPTNLInformation.choice.gTPTunnel,
                   gTPTunnel);
-      TRANSPORT_LAYER_ADDRESS_IPv4_TO_BIT_STRING(1234, &gTPTunnel->transportLayerAddress);
-      OCTET_STRING_fromBuf(&gTPTunnel->gTP_TEID, "1204",
+        TRANSPORT_LAYER_ADDRESS_IPv4_TO_BIT_STRING(1234, &gTPTunnel->transportLayerAddress);
+        OCTET_STRING_fromBuf(&gTPTunnel->gTP_TEID, "1204",
                            strlen("1204"));
-    }
+      }
 
-    /* OPTIONAL */
-    /* ULConfiguration */
-    if (0) {
-      drbs_toBeModified_item->uLConfiguration = (F1AP_ULConfiguration_t *)calloc(1, sizeof(F1AP_ULConfiguration_t));
+      /* OPTIONAL */
+      /* ULConfiguration */
+      if (0) {
+        drbs_toBeModified_item->uLConfiguration = (F1AP_ULConfiguration_t *)calloc(1, sizeof(F1AP_ULConfiguration_t));
+      }
     }
   }
 
-  /* mandatory */
-  /* c14. SRBs_ToBeReleased_List */
-  asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie14);
-  ie14->id                             = F1AP_ProtocolIE_ID_id_SRBs_ToBeReleased_List;
-  ie14->criticality                    = F1AP_Criticality_reject;
-  ie14->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_SRBs_ToBeReleased_List;
+  /* optional */
+  if(0){
+    /* c14. SRBs_ToBeReleased_List */
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie14);
+    ie14->id                             = F1AP_ProtocolIE_ID_id_SRBs_ToBeReleased_List;
+    ie14->criticality                    = F1AP_Criticality_reject;
+    ie14->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_SRBs_ToBeReleased_List;
 
-  for (int i=0;  i<1; i++) {
-    //
-    asn1cSequenceAdd(ie14->value.choice.SRBs_ToBeReleased_List.list,
+    for (int i=0;  i<1; i++) {
+      //
+      asn1cSequenceAdd(ie14->value.choice.SRBs_ToBeReleased_List.list,
                      F1AP_SRBs_ToBeReleased_ItemIEs_t, srbs_toBeReleased_item_ies);
-    srbs_toBeReleased_item_ies->id            = F1AP_ProtocolIE_ID_id_SRBs_ToBeReleased_Item;
-    srbs_toBeReleased_item_ies->criticality   = F1AP_Criticality_ignore;
-    srbs_toBeReleased_item_ies->value.present = F1AP_SRBs_ToBeReleased_ItemIEs__value_PR_SRBs_ToBeReleased_Item;
-    /* 9.1 SRBs_ToBeReleased_Item */
-    F1AP_SRBs_ToBeReleased_Item_t *srbs_toBeReleased_item=
-      &srbs_toBeReleased_item_ies->value.choice.SRBs_ToBeReleased_Item;
-    /* - sRBID */
-    srbs_toBeReleased_item->sRBID = 2L;
+      srbs_toBeReleased_item_ies->id            = F1AP_ProtocolIE_ID_id_SRBs_ToBeReleased_Item;
+      srbs_toBeReleased_item_ies->criticality   = F1AP_Criticality_ignore;
+      srbs_toBeReleased_item_ies->value.present = F1AP_SRBs_ToBeReleased_ItemIEs__value_PR_SRBs_ToBeReleased_Item;
+      /* 9.1 SRBs_ToBeReleased_Item */
+      F1AP_SRBs_ToBeReleased_Item_t *srbs_toBeReleased_item=
+          &srbs_toBeReleased_item_ies->value.choice.SRBs_ToBeReleased_Item;
+      /* - sRBID */
+      srbs_toBeReleased_item->sRBID = 2L;
+    }
   }
 
-  /* mandatory */
-  /* c15. DRBs_ToBeReleased_List */
-  asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie15);
-  ie15->id                             = F1AP_ProtocolIE_ID_id_DRBs_ToBeReleased_List;
-  ie15->criticality                    = F1AP_Criticality_reject;
-  ie15->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_DRBs_ToBeReleased_List;
+  /* optional */
+  if(0){
+    /* c15. DRBs_ToBeReleased_List */
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationRequestIEs_t, ie15);
+    ie15->id                             = F1AP_ProtocolIE_ID_id_DRBs_ToBeReleased_List;
+    ie15->criticality                    = F1AP_Criticality_reject;
+    ie15->value.present                  = F1AP_UEContextModificationRequestIEs__value_PR_DRBs_ToBeReleased_List;
 
-  for (int i=0; i<1;  i++) {
-    //
-    asn1cSequenceAdd(ie15->value.choice.DRBs_ToBeReleased_List.list,
+    for (int i=0; i<1;  i++) {
+      //
+      asn1cSequenceAdd(ie15->value.choice.DRBs_ToBeReleased_List.list,
                      F1AP_DRBs_ToBeReleased_ItemIEs_t, drbs_toBeReleased_item_ies);
-    drbs_toBeReleased_item_ies->id            = F1AP_ProtocolIE_ID_id_DRBs_ToBeReleased_Item;
-    drbs_toBeReleased_item_ies->criticality   = F1AP_Criticality_reject;
-    drbs_toBeReleased_item_ies->value.present = F1AP_DRBs_ToBeReleased_ItemIEs__value_PR_DRBs_ToBeReleased_Item;
-    /* 14.1 SRBs_ToBeReleased_Item */
-    F1AP_DRBs_ToBeReleased_Item_t *drbs_toBeReleased_item=
-      &drbs_toBeReleased_item_ies->value.choice.DRBs_ToBeReleased_Item;
-    /* dRBID */
-    drbs_toBeReleased_item->dRBID = 30L;
+      drbs_toBeReleased_item_ies->id            = F1AP_ProtocolIE_ID_id_DRBs_ToBeReleased_Item;
+      drbs_toBeReleased_item_ies->criticality   = F1AP_Criticality_reject;
+      drbs_toBeReleased_item_ies->value.present = F1AP_DRBs_ToBeReleased_ItemIEs__value_PR_DRBs_ToBeReleased_Item;
+      /* 14.1 SRBs_ToBeReleased_Item */
+      F1AP_DRBs_ToBeReleased_Item_t *drbs_toBeReleased_item=
+          &drbs_toBeReleased_item_ies->value.choice.DRBs_ToBeReleased_Item;
+      /* dRBID */
+      drbs_toBeReleased_item->dRBID = 30L;
+    }
   }
 
   /* encode */
@@ -1346,7 +1641,7 @@ int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance) {
     LOG_E(F1AP, "Failed to encode F1 UE CONTEXT_MODIFICATION REQUEST\n");
     return -1;
   }
-
+  f1ap_itti_send_sctp_data_req(true, instance, buffer, len, 0 /* BK: fix me*/);
   return 0;
 }
 
@@ -1354,7 +1649,130 @@ int CU_handle_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t       instance,
     uint32_t         assoc_id,
     uint32_t         stream,
     F1AP_F1AP_PDU_t *pdu) {
-  AssertFatal(1==0,"Not implemented yet\n");
+
+  MessageDef                       *msg_p;
+  F1AP_UEContextModificationResponse_t    *container;
+  F1AP_UEContextModificationResponseIEs_t *ie;
+  DevAssert(pdu);
+  msg_p = itti_alloc_new_message(TASK_DU_F1, 0,  F1AP_UE_CONTEXT_MODIFICATION_RESP);
+  f1ap_ue_context_setup_t *f1ap_ue_context_modification_resp = &F1AP_UE_CONTEXT_MODIFICATION_RESP(msg_p);
+  container = &pdu->choice.successfulOutcome->value.choice.UEContextModificationResponse;
+  int i;
+
+    /* GNB_CU_UE_F1AP_ID */
+    F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextModificationResponseIEs_t, ie, container,
+                               F1AP_ProtocolIE_ID_id_gNB_CU_UE_F1AP_ID, true);
+    f1ap_ue_context_modification_resp->gNB_CU_ue_id = ie->value.choice.GNB_CU_UE_F1AP_ID;
+
+    LOG_D(F1AP, "f1ap_ue_context_setup_resp->gNB_CU_ue_id is: %d \n", f1ap_ue_context_modification_resp->gNB_CU_ue_id);
+
+    /* GNB_DU_UE_F1AP_ID */
+    F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextModificationResponseIEs_t, ie, container,
+                               F1AP_ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID, true);
+    f1ap_ue_context_modification_resp->gNB_DU_ue_id = ie->value.choice.GNB_DU_UE_F1AP_ID;
+
+    LOG_D(F1AP, "f1ap_ue_context_setup_resp->gNB_DU_ue_id is: %d \n", f1ap_ue_context_modification_resp->gNB_DU_ue_id);
+
+    f1ap_ue_context_modification_resp->rnti =
+          f1ap_get_rnti_by_du_id(CUtype, instance, f1ap_ue_context_modification_resp->gNB_DU_ue_id);
+
+    // DUtoCURRCInformation
+    F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextModificationResponseIEs_t, ie, container,
+                               F1AP_ProtocolIE_ID_id_DUtoCURRCInformation, false);
+    if(ie!=NULL){
+      f1ap_ue_context_modification_resp->du_to_cu_rrc_information = (du_to_cu_rrc_information_t *)calloc(1, sizeof(du_to_cu_rrc_information_t));
+      f1ap_ue_context_modification_resp->du_to_cu_rrc_information->cellGroupConfig = (uint8_t *)calloc(1,ie->value.choice.DUtoCURRCInformation.cellGroupConfig.size);
+
+      memcpy(f1ap_ue_context_modification_resp->du_to_cu_rrc_information->cellGroupConfig, ie->value.choice.DUtoCURRCInformation.cellGroupConfig.buf, ie->value.choice.DUtoCURRCInformation.cellGroupConfig.size);
+      f1ap_ue_context_modification_resp->du_to_cu_rrc_information->cellGroupConfig_length = ie->value.choice.DUtoCURRCInformation.cellGroupConfig.size;
+    }
+
+    // DRBs_SetupMod_List
+    F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextModificationResponseIEs_t, ie, container,
+                               F1AP_ProtocolIE_ID_id_DRBs_SetupMod_List, false);
+    if(ie!=NULL){
+      f1ap_ue_context_modification_resp->drbs_to_be_setup_length = ie->value.choice.DRBs_SetupMod_List.list.count;
+      f1ap_ue_context_modification_resp->drbs_to_be_setup = calloc(f1ap_ue_context_modification_resp->drbs_to_be_setup_length,
+          sizeof(f1ap_drb_to_be_setup_t));
+      AssertFatal(f1ap_ue_context_modification_resp->drbs_to_be_setup,
+                "could not allocate memory for f1ap_ue_context_setup_resp->drbs_setup\n");
+      for (i = 0; i < f1ap_ue_context_modification_resp->drbs_to_be_setup_length; ++i) {
+        f1ap_drb_to_be_setup_t *drb_p = &f1ap_ue_context_modification_resp->drbs_to_be_setup[i];
+        F1AP_DRBs_SetupMod_Item_t *drbs_setupmod_item_p;
+        drbs_setupmod_item_p = &((F1AP_DRBs_SetupMod_ItemIEs_t *)ie->value.choice.DRBs_SetupMod_List.list.array[i])->value.choice.DRBs_SetupMod_Item;
+        drb_p->drb_id = drbs_setupmod_item_p->dRBID;
+        // TODO in the following, assume only one UP UL TNL is present.
+         // this matches/assumes OAI CU/DU implementation, can be up to 2!
+        drb_p->up_dl_tnl_length = 1;
+        AssertFatal(drbs_setupmod_item_p->dLUPTNLInformation_ToBeSetup_List.list.count > 0,
+            "no DL UP TNL Information in DRBs to be Setup list\n");
+        F1AP_DLUPTNLInformation_ToBeSetup_Item_t *dl_up_tnl_info_p = (F1AP_DLUPTNLInformation_ToBeSetup_Item_t *)drbs_setupmod_item_p->dLUPTNLInformation_ToBeSetup_List.list.array[0];
+        F1AP_GTPTunnel_t *dl_up_tnl0 = dl_up_tnl_info_p->dLUPTNLInformation.choice.gTPTunnel;
+        BIT_STRING_TO_TRANSPORT_LAYER_ADDRESS_IPv4(&dl_up_tnl0->transportLayerAddress, drb_p->up_dl_tnl[0].tl_address);
+        OCTET_STRING_TO_INT32(&dl_up_tnl0->gTP_TEID, drb_p->up_dl_tnl[0].teid);
+        GtpuUpdateTunnelOutgoingTeid(getCxt(CUtype, instance)->gtpInst,
+                     f1ap_ue_context_modification_resp->rnti,
+                     (ebi_t)drbs_setupmod_item_p->dRBID,
+                     drb_p->up_dl_tnl[0].teid);
+      }
+    }
+    // SRBs_FailedToBeSetupMod_List
+    F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextModificationResponseIEs_t, ie, container,
+                               F1AP_ProtocolIE_ID_id_SRBs_FailedToBeSetupMod_List, false);
+    if(ie!=NULL){
+      f1ap_ue_context_modification_resp->srbs_failed_to_be_setup_length = ie->value.choice.SRBs_FailedToBeSetupMod_List.list.count;
+      f1ap_ue_context_modification_resp->srbs_failed_to_be_setup = calloc(f1ap_ue_context_modification_resp->srbs_failed_to_be_setup_length,
+          sizeof(f1ap_rb_failed_to_be_setup_t));
+      AssertFatal(f1ap_ue_context_modification_resp->srbs_failed_to_be_setup,
+          "could not allocate memory for f1ap_ue_context_setup_resp->srbs_failed_to_be_setup\n");
+      for (i = 0; i < f1ap_ue_context_modification_resp->srbs_failed_to_be_setup_length; ++i) {
+        f1ap_rb_failed_to_be_setup_t *srb_p = &f1ap_ue_context_modification_resp->srbs_failed_to_be_setup[i];
+        srb_p->rb_id = ((F1AP_SRBs_FailedToBeSetupMod_Item_t *)ie->value.choice.SRBs_FailedToBeSetupMod_List.list.array[i])->sRBID;
+      }
+
+    }
+    // DRBs_FailedToBeSetupMod_List
+    F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextModificationResponseIEs_t, ie, container,
+                               F1AP_ProtocolIE_ID_id_DRBs_FailedToBeSetupMod_List, false);
+    if(ie!=NULL){
+      f1ap_ue_context_modification_resp->drbs_failed_to_be_setup_length = ie->value.choice.DRBs_FailedToBeSetupMod_List.list.count;
+      f1ap_ue_context_modification_resp->drbs_failed_to_be_setup = calloc(f1ap_ue_context_modification_resp->drbs_failed_to_be_setup_length,
+          sizeof(f1ap_rb_failed_to_be_setup_t));
+      AssertFatal(f1ap_ue_context_modification_resp->drbs_failed_to_be_setup,
+          "could not allocate memory for f1ap_ue_context_setup_resp->drbs_failed_to_be_setup\n");
+      for (i = 0; i < f1ap_ue_context_modification_resp->drbs_failed_to_be_setup_length; ++i) {
+        f1ap_rb_failed_to_be_setup_t *drb_p = &f1ap_ue_context_modification_resp->drbs_failed_to_be_setup[i];
+        drb_p->rb_id = ((F1AP_DRBs_FailedToBeSetupMod_Item_t *)ie->value.choice.DRBs_FailedToBeSetupMod_List.list.array[i])->dRBID;
+      }
+    }
+
+    // SCell_FailedtoSetupMod_List
+    F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextModificationResponseIEs_t, ie, container,
+                               F1AP_ProtocolIE_ID_id_SCell_FailedtoSetupMod_List, false);
+    if(ie!=NULL){
+      LOG_E (F1AP, "Not supporting handling of SCell_FailedtoSetupMod_List \n");
+    }
+
+    // SRBs_Setup_List
+    F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextModificationResponseIEs_t, ie, container,
+        F1AP_ProtocolIE_ID_id_SRBs_SetupMod_List, false);
+    if(ie!=NULL){
+      f1ap_ue_context_modification_resp->srbs_to_be_setup_length = ie->value.choice.SRBs_SetupMod_List.list.count;
+      f1ap_ue_context_modification_resp->srbs_to_be_setup = calloc(f1ap_ue_context_modification_resp->srbs_to_be_setup_length,
+          sizeof(f1ap_srb_to_be_setup_t));
+      AssertFatal(f1ap_ue_context_modification_resp->srbs_to_be_setup,
+          "could not allocate memory for f1ap_ue_context_setup_resp->drbs_setup\n");
+      for (i = 0; i < f1ap_ue_context_modification_resp->srbs_to_be_setup_length; ++i) {
+        f1ap_srb_to_be_setup_t *srb_p = &f1ap_ue_context_modification_resp->srbs_to_be_setup[i];
+        F1AP_SRBs_SetupMod_Item_t *srbs_setup_item_p;
+        srbs_setup_item_p = &((F1AP_SRBs_SetupMod_ItemIEs_t *)ie->value.choice.SRBs_SetupMod_List.list.array[i])->value.choice.SRBs_SetupMod_Item;
+        srb_p->srb_id = srbs_setup_item_p->sRBID;
+        srb_p->lcid = srbs_setup_item_p->lCID;
+      }
+    }
+
+    itti_send_msg_to_task(TASK_RRC_GNB, instance, msg_p);
+    return 0;
 }
 
 int CU_handle_UE_CONTEXT_MODIFICATION_FAILURE(instance_t       instance,
diff --git a/openair2/F1AP/f1ap_cu_ue_context_management.h b/openair2/F1AP/f1ap_cu_ue_context_management.h
index 09af51ec54c..87563e97b1d 100644
--- a/openair2/F1AP/f1ap_cu_ue_context_management.h
+++ b/openair2/F1AP/f1ap_cu_ue_context_management.h
@@ -72,7 +72,8 @@ int CU_handle_UE_CONTEXT_RELEASE_COMPLETE(instance_t       instance,
 /*
  * UE Context Modification (gNB-CU initiated)
  */
-int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance);
+int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance,
+    f1ap_ue_context_setup_t *f1ap_ue_context_modification_req);
 int CU_handle_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t       instance,
     uint32_t         assoc_id,
     uint32_t         stream,
diff --git a/openair2/F1AP/f1ap_decoder.c b/openair2/F1AP/f1ap_decoder.c
index 6ebf1cc16d4..60b3f94310e 100644
--- a/openair2/F1AP/f1ap_decoder.c
+++ b/openair2/F1AP/f1ap_decoder.c
@@ -78,6 +78,10 @@ static int f1ap_decode_initiating_message(F1AP_F1AP_PDU_t *pdu) {
     case F1AP_ProcedureCode_id_UEContextSetup:
       LOG_I(F1AP, "%s(): F1AP_ProcedureCode_id_UEContextSetup\n", __func__);
       break;
+    
+    case F1AP_ProcedureCode_id_UEContextModification:
+      LOG_I(F1AP, "%s(): F1AP_ProcedureCode_id_UEContextModification\n", __func__);
+      break;
 
     // case F1AP_ProcedureCode_id_InitialContextSetup:
     //   res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_F1AP_F1AP_PDU, pdu);
@@ -123,6 +127,10 @@ static int f1ap_decode_successful_outcome(F1AP_F1AP_PDU_t *pdu) {
       LOG_I(F1AP, "%s(): F1AP_ProcedureCode_id_UEContextSetup\n", __func__);
       break;
 
+    case F1AP_ProcedureCode_id_UEContextModification:
+      LOG_I(F1AP, "%s(): F1AP_ProcedureCode_id_UEContextModification\n", __func__);
+      break;
+
     default:
       LOG_E(F1AP,"Unknown procedure ID (%d) for successfull outcome message\n",
             (int)pdu->choice.successfulOutcome->procedureCode);
diff --git a/openair2/F1AP/f1ap_default_values.h b/openair2/F1AP/f1ap_default_values.h
index 91a11796240..7c64614f50a 100644
--- a/openair2/F1AP/f1ap_default_values.h
+++ b/openair2/F1AP/f1ap_default_values.h
@@ -40,7 +40,7 @@
 #define ENB_NAME        "Eurecom ENB"
 #define ENB_NAME_FORMAT (ENB_NAME" %u")
 
-#define F1AP_PORT_NUMBER        (30923)
+#define F1AP_PORT_NUMBER        (38472)
 #define F1AP_SCTP_PPID          (62)
 
 #endif /* F1AP_DEFAULT_VALUES_H_ */
diff --git a/openair2/F1AP/f1ap_du_interface_management.c b/openair2/F1AP/f1ap_du_interface_management.c
index 6d4757be6f6..367b71fed5f 100644
--- a/openair2/F1AP/f1ap_du_interface_management.c
+++ b/openair2/F1AP/f1ap_du_interface_management.c
@@ -172,7 +172,20 @@ int DU_send_F1_SETUP_REQUEST(instance_t instance) {
     MCC_MNC_TO_PLMNID(cell->mcc, cell->mnc, cell->mnc_digit_length, &servedPLMN_item->pLMN_Identity);
     // // /* - CHOICE NR-MODE-Info */
     F1AP_NR_Mode_Info_t *nR_Mode_Info= &served_cell_information->nR_Mode_Info;
-
+    F1AP_ProtocolExtensionContainer_154P34_t *p_154P34=calloc(1,sizeof(* p_154P34));
+    servedPLMN_item->iE_Extensions = (struct F1AP_ProtocolExtensionContainer *)p_154P34;
+    asn1cSequenceAdd(p_154P34->list, F1AP_ServedPLMNs_ItemExtIEs_t , served_plmns_itemExtIEs);
+    served_plmns_itemExtIEs->criticality = F1AP_Criticality_ignore;
+    served_plmns_itemExtIEs->id = F1AP_ProtocolIE_ID_id_TAISliceSupportList;
+    served_plmns_itemExtIEs->extensionValue.present = F1AP_ServedPLMNs_ItemExtIEs__extensionValue_PR_SliceSupportList;
+    F1AP_SliceSupportList_t *slice_support_list = &served_plmns_itemExtIEs->extensionValue.choice.SliceSupportList;
+
+    asn1cSequenceAdd(slice_support_list->list, F1AP_SliceSupportItem_t, SliceSupport_item);
+    INT8_TO_OCTET_STRING(1,&SliceSupport_item->sNSSAI.sST);
+    asn1cCalloc(SliceSupport_item->sNSSAI.sD, tmp);
+    INT24_TO_OCTET_STRING(10203,tmp);
+    //INT24_TO_OCTET_STRING(1,tmp);
+    
     if (f1ap_req(false, instance)->fdd_flag) { // FDD
       nR_Mode_Info->present = F1AP_NR_Mode_Info_PR_fDD;
       asn1cCalloc(nR_Mode_Info->choice.fDD, fDD_Info);
diff --git a/openair2/F1AP/f1ap_du_rrc_message_transfer.c b/openair2/F1AP/f1ap_du_rrc_message_transfer.c
index 90ea324a282..e158e9519a9 100644
--- a/openair2/F1AP/f1ap_du_rrc_message_transfer.c
+++ b/openair2/F1AP/f1ap_du_rrc_message_transfer.c
@@ -509,7 +509,7 @@ int DU_handle_DL_RRC_MESSAGE_TRANSFER(instance_t       instance,
 
   LOG_I(F1AP, "Received DL RRC Transfer on srb_id %ld\n", srb_id);
   rlc_op_status_t    rlc_status;
-  boolean_t          ret             = TRUE;
+  bool               ret             = true;
   mem_block_t       *pdcp_pdu_p      = NULL;
   pdcp_pdu_p = get_free_mem_block(rrc_dl_sdu_len, __func__);
 
@@ -539,27 +539,27 @@ int DU_handle_DL_RRC_MESSAGE_TRANSFER(instance_t       instance,
     switch (rlc_status) {
       case RLC_OP_STATUS_OK:
         //LOG_I(F1AP, "Data sending request over RLC succeeded!\n");
-        ret=TRUE;
+        ret=true;
         break;
 
       case RLC_OP_STATUS_BAD_PARAMETER:
         LOG_W(F1AP, "Data sending request over RLC failed with 'Bad Parameter' reason!\n");
-        ret= FALSE;
+        ret= false;
         break;
 
       case RLC_OP_STATUS_INTERNAL_ERROR:
         LOG_W(F1AP, "Data sending request over RLC failed with 'Internal Error' reason!\n");
-        ret= FALSE;
+        ret= false;
         break;
 
       case RLC_OP_STATUS_OUT_OF_RESSOURCES:
         LOG_W(F1AP, "Data sending request over RLC failed with 'Out of Resources' reason!\n");
-        ret= FALSE;
+        ret= false;
         break;
 
       default:
         LOG_W(F1AP, "RLC returned an unknown status code after PDCP placed the order to send some data (Status Code:%d)\n", rlc_status);
-        ret= FALSE;
+        ret= false;
         break;
     } // switch case
 
@@ -667,9 +667,9 @@ int DU_send_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
 
           UE_sched_ctrl_t *UE_scheduling_control = &(RC.mac[instance]->UE_info.UE_sched_ctrl[UE_id_mac]);
 
-          if (UE_scheduling_control->cdrx_waiting_ack == TRUE) {
-            UE_scheduling_control->cdrx_waiting_ack = FALSE;
-            UE_scheduling_control->cdrx_configured = TRUE; // Set to TRUE when RRC Connection Reconfiguration Complete is received
+          if (UE_scheduling_control->cdrx_waiting_ack == true) {
+            UE_scheduling_control->cdrx_waiting_ack = false;
+            UE_scheduling_control->cdrx_configured = true; // Set to TRUE when RRC Connection Reconfiguration Complete is received
             LOG_I(F1AP, "CDRX configuration activated after RRC Connection Reconfiguration Complete reception\n");
           }
 
@@ -810,6 +810,13 @@ int DU_send_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t     instanceP,
                          sdu2P,
                          sdu2_lenP);
   }
+  /* mandatory */
+  /* c6. Transaction ID (integer value) */
+  asn1cSequenceAdd(out->protocolIEs.list, F1AP_InitialULRRCMessageTransferIEs_t, ie6);
+  ie6->id                        = F1AP_ProtocolIE_ID_id_TransactionID;
+  ie6->criticality               = F1AP_Criticality_ignore;
+  ie6->value.present             = F1AP_F1SetupRequestIEs__value_PR_TransactionID;
+  ie6->value.choice.TransactionID = F1AP_get_next_transaction_identifier(f1ap_req(false, instanceP)->gNB_DU_id, f1ap_req(false, instanceP)->gNB_DU_id);
 
   /* encode */
   if (f1ap_encode_pdu(&pdu, &buffer, &len) < 0) {
diff --git a/openair2/F1AP/f1ap_du_task.c b/openair2/F1AP/f1ap_du_task.c
index c8cfadb9990..f8cf2162201 100644
--- a/openair2/F1AP/f1ap_du_task.c
+++ b/openair2/F1AP/f1ap_du_task.c
@@ -126,7 +126,7 @@ void *F1AP_DU_task(void *arg) {
         LOG_I(F1AP, "DU Task Received F1AP_SETUP_REQ\n");
         f1ap_setup_req_t *msgSetup=&F1AP_SETUP_REQ(msg);
         createF1inst(false, myInstance, msgSetup);
-        getCxt(DUtype, myInstance)->gtpInst=du_create_gtpu_instance_to_cu(msgSetup->CU_f1_ip_address.ipv4_address,
+        getCxt(DUtype, myInstance)->gtpInst=du_create_gtpu_instance_to_cu(msgSetup->CU_f1_ip_address.ipv4_address, //"172.21.6.9", //"172.21.10.9",//"172.21.9.5", //msgSetup->CU_f1_ip_address.ipv4_address, //"192.168.18.91"
                                             msgSetup->CUport,
                                             msgSetup->DU_f1_ip_address.ipv4_address,
                                             msgSetup->DUport);
@@ -175,7 +175,7 @@ void *F1AP_DU_task(void *arg) {
         break;
 
       case F1AP_UL_RRC_MESSAGE: // to rrc
-        LOG_I(F1AP, "DU Task Received F1AP_UL_RRC_MESSAGE\n");
+        LOG_D(F1AP, "DU Task Received F1AP_UL_RRC_MESSAGE\n");
 
         if (RC.nrrrc && RC.nrrrc[0]->node_type == ngran_gNB_DU) {
           DU_send_UL_NR_RRC_MESSAGE_TRANSFER(myInstance,
@@ -191,6 +191,11 @@ void *F1AP_DU_task(void *arg) {
         DU_send_UE_CONTEXT_SETUP_RESPONSE(myInstance, &F1AP_UE_CONTEXT_SETUP_RESP(msg));
         break;
 
+      case F1AP_UE_CONTEXT_MODIFICATION_RESP:
+        LOG_I(F1AP, "DU task received itti message from RRC for F1AP_UE_CONTEXT_MODIFICATION_RESP message generation \n");
+        DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(myInstance, &F1AP_UE_CONTEXT_MODIFICATION_RESP(msg));
+        break;
+
       case F1AP_UE_CONTEXT_RELEASE_REQ: // from MAC
         LOG_I(F1AP, "DU Task Received F1AP_UE_CONTEXT_RELEASE_REQ\n");
         DU_send_UE_CONTEXT_RELEASE_REQUEST(myInstance,
diff --git a/openair2/F1AP/f1ap_du_ue_context_management.c b/openair2/F1AP/f1ap_du_ue_context_management.c
index 7b20bfb2aa5..cb158629214 100644
--- a/openair2/F1AP/f1ap_du_ue_context_management.c
+++ b/openair2/F1AP/f1ap_du_ue_context_management.c
@@ -42,16 +42,16 @@
 #include "openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h"
 #include <openair3/ocp-gtpu/gtp_itf.h>
 
-boolean_t lteDURecvCb( protocol_ctxt_t  *ctxt_pP,
-                       const srb_flag_t     srb_flagP,
-                       const rb_id_t        rb_idP,
-                       const mui_t          muiP,
-                       const confirm_t      confirmP,
-                       const sdu_size_t     sdu_buffer_sizeP,
-                       unsigned char *const sdu_buffer_pP,
-                       const pdcp_transmission_mode_t modeP,
-                       const uint32_t *sourceL2Id,
-                       const uint32_t *destinationL2Id) {
+bool lteDURecvCb(protocol_ctxt_t  *ctxt_pP,
+                 const srb_flag_t     srb_flagP,
+                 const rb_id_t        rb_idP,
+                 const mui_t          muiP,
+                 const confirm_t      confirmP,
+                 const sdu_size_t     sdu_buffer_sizeP,
+                 unsigned char *const sdu_buffer_pP,
+                 const pdcp_transmission_mode_t modeP,
+                 const uint32_t *sourceL2Id,
+                 const uint32_t *destinationL2Id) {
   // The buffer comes from the stack in gtp-u thread, we have a make a separate buffer to enqueue in a inter-thread message queue
   mem_block_t *sdu=get_free_mem_block(sdu_buffer_sizeP, __func__);
   memcpy(sdu->data,  sdu_buffer_pP,  sdu_buffer_sizeP);
@@ -131,6 +131,19 @@ int DU_handle_UE_CONTEXT_SETUP_REQUEST(instance_t       instance,
     f1ap_ue_context_setup_req->cellULConfigured = NULL;
   }
 
+  F1AP_UEContextSetupRequestIEs_t *ieCuRrcInfo;
+  F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextSetupRequestIEs_t, ieCuRrcInfo, container,
+      F1AP_ProtocolIE_ID_id_CUtoDURRCInformation, false);
+  if(ieCuRrcInfo!=NULL){
+    f1ap_ue_context_setup_req->cu_to_du_rrc_information = (cu_to_du_rrc_information_t *)calloc(1,sizeof(cu_to_du_rrc_information_t));
+    if(ieCuRrcInfo->value.choice.CUtoDURRCInformation.uE_CapabilityRAT_ContainerList!=NULL){
+      f1ap_ue_context_setup_req->cu_to_du_rrc_information->uE_CapabilityRAT_ContainerList = (uint8_t *)calloc(1,ieCuRrcInfo->value.choice.CUtoDURRCInformation.uE_CapabilityRAT_ContainerList->size);
+      memcpy(f1ap_ue_context_setup_req->cu_to_du_rrc_information->uE_CapabilityRAT_ContainerList, ieCuRrcInfo->value.choice.CUtoDURRCInformation.uE_CapabilityRAT_ContainerList->buf, ieCuRrcInfo->value.choice.CUtoDURRCInformation.uE_CapabilityRAT_ContainerList->size);
+      f1ap_ue_context_setup_req->cu_to_du_rrc_information->uE_CapabilityRAT_ContainerList_length = ieCuRrcInfo->value.choice.CUtoDURRCInformation.uE_CapabilityRAT_ContainerList->size;
+      LOG_I(F1AP, "Size f1ap_ue_context_setup_req->cu_to_du_rrc_information->uE_CapabilityRAT_ContainerList_length: %d \n", f1ap_ue_context_setup_req->cu_to_du_rrc_information->uE_CapabilityRAT_ContainerList_length);
+    }
+  }
+
   /* DRB */
   F1AP_UEContextSetupRequestIEs_t *ieDrb;
   F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextSetupRequestIEs_t, ieDrb, container,
@@ -174,14 +187,16 @@ int DU_handle_UE_CONTEXT_SETUP_REQUEST(instance_t       instance,
         transport_layer_addr_t addr;
         memcpy(addr.buffer, &drb_p->up_ul_tnl[0].tl_address, sizeof(drb_p->up_ul_tnl[0].tl_address));
         addr.length=sizeof(drb_p->up_ul_tnl[0].tl_address)*8;
-        drb_p->up_dl_tnl[0].teid=newGtpuCreateTunnel(INSTANCE_DEFAULT,
-                                 f1ap_ue_context_setup_req->rnti,
-                                 drb_p->drb_id,
-                                 drb_p->drb_id,
-                                 drb_p->up_ul_tnl[0].teid,
-                                 addr,
-                                 drb_p->up_ul_tnl[0].port,
-                                 lteDURecvCb);
+        drb_p->up_dl_tnl[0].teid = newGtpuCreateTunnel(INSTANCE_DEFAULT,
+                                                       f1ap_ue_context_setup_req->rnti,
+                                                       drb_p->drb_id,
+                                                       drb_p->drb_id,
+                                                       drb_p->up_ul_tnl[0].teid,
+                                                       -1, // no qfi
+                                                       addr,
+                                                       drb_p->up_ul_tnl[0].port,
+                                                       lteDURecvCb,
+                                                       NULL);
         drb_p->up_dl_tnl_length++;
       }
     }
@@ -218,17 +233,8 @@ int DU_handle_UE_CONTEXT_SETUP_REQUEST(instance_t       instance,
       f1ap_ue_context_setup_req->rrc_container = malloc(ieRRC->value.choice.RRCContainer.size);
       memcpy(f1ap_ue_context_setup_req->rrc_container,
              ieRRC->value.choice.RRCContainer.buf, ieRRC->value.choice.RRCContainer.size);
+      f1ap_ue_context_setup_req->rrc_container_length = ieRRC->value.choice.RRCContainer.size;
       // AssertFatal(0, "check configuration, send to appropriate handler\n");
-      protocol_ctxt_t ctxt;
-      // decode RRC Container and act on the message type
-      //FIXME
-      //rnti_t rnti      = f1ap_get_rnti_by_du_id(DUtype, instance, du_ue_f1ap_id);
-      ctxt.instance = instance;
-      ctxt.instance  = instance;
-      ctxt.enb_flag  = 1;
-      mem_block_t *pdcp_pdu_p = get_free_mem_block(ieRRC->value.choice.RRCContainer.size, __func__);
-      memcpy(&pdcp_pdu_p->data[0], ieRRC->value.choice.RRCContainer.buf, ieRRC->value.choice.RRCContainer.size);
-      du_rlc_data_req(&ctxt, 1, 0x00, 1, 1, 0, ieRRC->value.choice.RRCContainer.size, pdcp_pdu_p);
     } else {
       LOG_E(F1AP, " RRCContainer in UEContextSetupRequestIEs size id 0\n");
     }
@@ -245,7 +251,7 @@ int DU_handle_UE_CONTEXT_SETUP_REQUEST(instance_t       instance,
   return 0;
 }
 
-int DU_send_UE_CONTEXT_SETUP_RESPONSE(instance_t instance, f1ap_ue_context_setup_t *req) {
+int DU_send_UE_CONTEXT_SETUP_RESPONSE(instance_t instance, f1ap_ue_context_setup_t *resp) {
   F1AP_F1AP_PDU_t                  pdu= {0};
   F1AP_UEContextSetupResponse_t    *out;
   uint8_t  *buffer=NULL;
@@ -264,41 +270,42 @@ int DU_send_UE_CONTEXT_SETUP_RESPONSE(instance_t instance, f1ap_ue_context_setup
   ie1->id                             = F1AP_ProtocolIE_ID_id_gNB_CU_UE_F1AP_ID;
   ie1->criticality                    = F1AP_Criticality_reject;
   ie1->value.present                  = F1AP_UEContextSetupResponseIEs__value_PR_GNB_CU_UE_F1AP_ID;
-  ie1->value.choice.GNB_CU_UE_F1AP_ID = req->gNB_CU_ue_id;
+  ie1->value.choice.GNB_CU_UE_F1AP_ID = resp->gNB_CU_ue_id;
   /* mandatory */
   /* c2. GNB_DU_UE_F1AP_ID */
   asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextSetupResponseIEs_t, ie2);
   ie2->id                             = F1AP_ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID;
   ie2->criticality                    = F1AP_Criticality_reject;
   ie2->value.present                  = F1AP_UEContextSetupResponseIEs__value_PR_GNB_DU_UE_F1AP_ID;
-  ie2->value.choice.GNB_DU_UE_F1AP_ID = f1ap_get_du_ue_f1ap_id(DUtype, instance, req->rnti);
+  ie2->value.choice.GNB_DU_UE_F1AP_ID = f1ap_get_du_ue_f1ap_id(DUtype, instance, resp->rnti);
+
   /* mandatory */
   /* c3. DUtoCURRCInformation */
-  //if (0) {
-  asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextSetupResponseIEs_t, ie3);
-  ie3->id                             = F1AP_ProtocolIE_ID_id_DUtoCURRCInformation;
-  ie3->criticality                    = F1AP_Criticality_reject;
-  ie3->value.present                  = F1AP_UEContextSetupResponseIEs__value_PR_DUtoCURRCInformation;
-  {
-    /* cellGroupConfig */
-    OCTET_STRING_fromBuf(&ie3->value.choice.DUtoCURRCInformation.cellGroupConfig, (const char *)req->du_to_cu_rrc_information,
-                         req->du_to_cu_rrc_information_length);
+  if(resp->du_to_cu_rrc_information){
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextSetupResponseIEs_t, ie3);
+    ie3->id                             = F1AP_ProtocolIE_ID_id_DUtoCURRCInformation;
+    ie3->criticality                    = F1AP_Criticality_reject;
+    ie3->value.present                  = F1AP_UEContextSetupResponseIEs__value_PR_DUtoCURRCInformation;
+    if(resp->du_to_cu_rrc_information->cellGroupConfig!=NULL){
+      /* cellGroupConfig */
+      OCTET_STRING_fromBuf(&ie3->value.choice.DUtoCURRCInformation.cellGroupConfig, (const char *)resp->du_to_cu_rrc_information->cellGroupConfig,
+        resp->du_to_cu_rrc_information->cellGroupConfig_length);
+    }
 
     /* OPTIONAL */
     /* measGapConfig */
-    if (0) {
-      asn1cCalloc(ie3->value.choice.DUtoCURRCInformation.measGapConfig, tmp);
-      OCTET_STRING_fromBuf(tmp, "asdsa", strlen("asdsa"));
+    if (resp->du_to_cu_rrc_information->measGapConfig!=NULL) {
+      OCTET_STRING_fromBuf(ie3->value.choice.DUtoCURRCInformation.measGapConfig, (const char *)resp->du_to_cu_rrc_information->measGapConfig,
+        resp->du_to_cu_rrc_information->measGapConfig_length);
     }
 
     /* OPTIONAL */
     /* requestedP_MaxFR1 */
-    if (0) {
-      asn1cCalloc(ie3->value.choice.DUtoCURRCInformation.requestedP_MaxFR1, tmp);
-      OCTET_STRING_fromBuf(tmp, "asdsa", strlen("asdsa"));
+    if (resp->du_to_cu_rrc_information->requestedP_MaxFR1!=NULL) {
+      OCTET_STRING_fromBuf(ie3->value.choice.DUtoCURRCInformation.requestedP_MaxFR1, (const char *)resp->du_to_cu_rrc_information->requestedP_MaxFR1,
+          resp->du_to_cu_rrc_information->requestedP_MaxFR1_length);
     }
   }
-  //}
 
   /* optional */
   /* c4. C_RNTI */
@@ -308,7 +315,7 @@ int DU_send_UE_CONTEXT_SETUP_RESPONSE(instance_t instance, f1ap_ue_context_setup
     ie4->criticality                    = F1AP_Criticality_ignore;
     ie4->value.present                  = F1AP_UEContextSetupResponseIEs__value_PR_C_RNTI;
     //C_RNTI_TO_BIT_STRING(rntiP, &ie->value.choice.C_RNTI);
-    ie4->value.choice.C_RNTI=req->rnti;
+    ie4->value.choice.C_RNTI=resp->rnti;
     LOG_E(F1AP,"RNTI to code!\n");
   }
 
@@ -335,46 +342,48 @@ int DU_send_UE_CONTEXT_SETUP_RESPONSE(instance_t instance, f1ap_ue_context_setup
 
   /* mandatory */
   /* c7. DRBs_Setup_List */
-  asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextSetupResponseIEs_t, ie7);
-  ie7->id                             = F1AP_ProtocolIE_ID_id_DRBs_Setup_List;
-  ie7->criticality                    = F1AP_Criticality_ignore;
-  ie7->value.present                  = F1AP_UEContextSetupResponseIEs__value_PR_DRBs_Setup_List;
-
-  for (int i=0;  i< req->drbs_to_be_setup_length; i++) {
-    //
-    asn1cSequenceAdd(ie7->value.choice.DRBs_Setup_List.list,
-                     F1AP_DRBs_Setup_ItemIEs_t, drbs_setup_item_ies);
-    drbs_setup_item_ies->id            = F1AP_ProtocolIE_ID_id_DRBs_Setup_Item;
-    drbs_setup_item_ies->criticality   = F1AP_Criticality_ignore;
-    drbs_setup_item_ies->value.present = F1AP_SRBs_FailedToBeSetup_ItemIEs__value_PR_SRBs_FailedToBeSetup_Item;
-    /* 7.1 DRBs_Setup_Item */
-    /* ADD */
-    F1AP_DRBs_Setup_Item_t *drbs_setup_item=&drbs_setup_item_ies->value.choice.DRBs_Setup_Item;
-    /* dRBID */
-    drbs_setup_item->dRBID = req->drbs_to_be_setup[i].drb_id;
+  if(resp->drbs_to_be_setup_length > 0){
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextSetupResponseIEs_t, ie7);
+    ie7->id                             = F1AP_ProtocolIE_ID_id_DRBs_Setup_List;
+    ie7->criticality                    = F1AP_Criticality_ignore;
+    ie7->value.present                  = F1AP_UEContextSetupResponseIEs__value_PR_DRBs_Setup_List;
+    for (int i=0;  i< resp->drbs_to_be_setup_length; i++) {
+      //
+      asn1cSequenceAdd(ie7->value.choice.DRBs_Setup_List.list,
+          F1AP_DRBs_Setup_ItemIEs_t, drbs_setup_item_ies);
+      drbs_setup_item_ies->id            = F1AP_ProtocolIE_ID_id_DRBs_Setup_Item;
+      drbs_setup_item_ies->criticality   = F1AP_Criticality_ignore;
+      drbs_setup_item_ies->value.present = F1AP_DRBs_Setup_ItemIEs__value_PR_DRBs_Setup_Item;
+      /* 7.1 DRBs_Setup_Item */
+      /* ADD */
+      F1AP_DRBs_Setup_Item_t *drbs_setup_item=&drbs_setup_item_ies->value.choice.DRBs_Setup_Item;
+      /* dRBID */
+      drbs_setup_item->dRBID = resp->drbs_to_be_setup[i].drb_id;
 
-    /* OPTIONAL */
-    /* lCID */
-    //drbs_setup_item.lCID = (F1AP_LCID_t *)calloc(1, sizeof(F1AP_LCID_t));
-    //drbs_setup_item.lCID = 1L;
+      /* OPTIONAL */
+      /* lCID */
+      //drbs_setup_item.lCID = (F1AP_LCID_t *)calloc(1, sizeof(F1AP_LCID_t));
+      //drbs_setup_item.lCID = 1L;
 
-    for (int j=0;  j<req->drbs_to_be_setup[i].up_dl_tnl_length; j++) {
-      /* ADD */
-      asn1cSequenceAdd(drbs_setup_item->dLUPTNLInformation_ToBeSetup_List.list,
+      for (int j=0;  j<resp->drbs_to_be_setup[i].up_dl_tnl_length; j++) {
+        /* ADD */
+        asn1cSequenceAdd(drbs_setup_item->dLUPTNLInformation_ToBeSetup_List.list,
                        F1AP_DLUPTNLInformation_ToBeSetup_Item_t, dLUPTNLInformation_ToBeSetup_Item);
-      dLUPTNLInformation_ToBeSetup_Item->dLUPTNLInformation.present = F1AP_UPTransportLayerInformation_PR_gTPTunnel;
-      /* gTPTunnel */
-      asn1cCalloc(dLUPTNLInformation_ToBeSetup_Item->dLUPTNLInformation.choice.gTPTunnel,gTPTunnel);
-      /* transportLayerAddress */
-      struct sockaddr_in addr= {0};
-      inet_pton(AF_INET, getCxt(false,instance)->setupReq.DU_f1_ip_address.ipv4_address,
-                &addr.sin_addr.s_addr);
-      TRANSPORT_LAYER_ADDRESS_IPv4_TO_BIT_STRING(addr.sin_addr.s_addr,
-          &gTPTunnel->transportLayerAddress);
-      /* gTP_TEID */
-      INT32_TO_OCTET_STRING(req->drbs_to_be_setup[i].up_dl_tnl[j].teid, &gTPTunnel->gTP_TEID);
-    } // for j
-  } // for i
+        dLUPTNLInformation_ToBeSetup_Item->dLUPTNLInformation.present = F1AP_UPTransportLayerInformation_PR_gTPTunnel;
+        /* gTPTunnel */
+        asn1cCalloc(dLUPTNLInformation_ToBeSetup_Item->dLUPTNLInformation.choice.gTPTunnel,gTPTunnel);
+        /* transportLayerAddress */
+        struct sockaddr_in addr= {0};
+        inet_pton(AF_INET, getCxt(false,instance)->setupReq.DU_f1_ip_address.ipv4_address,
+            &addr.sin_addr.s_addr);
+        TRANSPORT_LAYER_ADDRESS_IPv4_TO_BIT_STRING(addr.sin_addr.s_addr,
+            &gTPTunnel->transportLayerAddress);
+        /* gTP_TEID */
+        INT32_TO_OCTET_STRING(resp->drbs_to_be_setup[i].up_dl_tnl[j].teid, &gTPTunnel->gTP_TEID);
+      } // for j
+    } // for i
+
+  }
 
   /* mandatory */
   /* c8. SRBs_FailedToBeSetup_List */
@@ -387,7 +396,7 @@ int DU_send_UE_CONTEXT_SETUP_RESPONSE(instance_t instance, f1ap_ue_context_setup
     for (int i=0;  i<1; i++) {
       //
       asn1cSequenceAdd(ie8->value.choice.SRBs_FailedToBeSetup_List.list,
-                       F1AP_SRBs_FailedToBeSetup_ItemIEs_t, srbs_failedToBeSetup_item_ies);
+        F1AP_SRBs_FailedToBeSetup_ItemIEs_t, srbs_failedToBeSetup_item_ies);
       srbs_failedToBeSetup_item_ies->id            = F1AP_ProtocolIE_ID_id_SRBs_FailedToBeSetup_Item;
       srbs_failedToBeSetup_item_ies->criticality   = F1AP_Criticality_ignore;
       srbs_failedToBeSetup_item_ies->value.present = F1AP_SRBs_FailedToBeSetup_ItemIEs__value_PR_SRBs_FailedToBeSetup_Item;
@@ -524,12 +533,13 @@ int DU_send_UE_CONTEXT_SETUP_RESPONSE(instance_t instance, f1ap_ue_context_setup
 
   /* mandatory */
   /* c11. SRBs_Setup_List */
+  if(resp->srbs_to_be_setup_length > 0){
   asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextSetupResponseIEs_t, ie11);
   ie11->id                             = F1AP_ProtocolIE_ID_id_SRBs_Setup_List;
   ie11->criticality                    = F1AP_Criticality_ignore;
   ie11->value.present                  = F1AP_UEContextSetupResponseIEs__value_PR_SRBs_Setup_List;
 
-  for (int i=0;  i< req->srbs_to_be_setup_length; i++) {//
+  for (int i=0;  i< resp->srbs_to_be_setup_length; i++) {//
     asn1cSequenceAdd(ie11->value.choice.SRBs_Setup_List.list,
                      F1AP_SRBs_Setup_ItemIEs_t, srbs_setup_item_ies);
     srbs_setup_item_ies->id            = F1AP_ProtocolIE_ID_id_SRBs_Setup_Item;
@@ -539,7 +549,8 @@ int DU_send_UE_CONTEXT_SETUP_RESPONSE(instance_t instance, f1ap_ue_context_setup
     /* ADD */
     F1AP_SRBs_Setup_Item_t *srbs_setup_item=&srbs_setup_item_ies->value.choice.SRBs_Setup_Item;
     /* sRBID */
-    srbs_setup_item->sRBID = req->srbs_to_be_setup[i].srb_id;
+    srbs_setup_item->sRBID = resp->srbs_to_be_setup[i].srb_id;
+  }
   }
 
   /* Optional */
@@ -581,6 +592,7 @@ int DU_send_UE_CONTEXT_SETUP_RESPONSE(instance_t instance, f1ap_ue_context_setup
                                getCxt(false, instance)->default_sctp_stream_id);
   return 0;
 }
+
 int DU_send_UE_CONTEXT_SETUP_FAILURE(instance_t instance) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
@@ -658,7 +670,7 @@ int DU_send_UE_CONTEXT_RELEASE_REQUEST(instance_t instance,
                                getCxt(false, instance)->default_sctp_stream_id);
   return 0;
 }
-int DU_handle_UE_CONTEXT_RELEASE_COMMAND(instance_t       instance,
+/*int DU_handle_UE_CONTEXT_RELEASE_COMMAND(instance_t       instance,
     uint32_t         assoc_id,
     uint32_t         stream,
     F1AP_F1AP_PDU_t *pdu) {
@@ -667,14 +679,14 @@ int DU_handle_UE_CONTEXT_RELEASE_COMMAND(instance_t       instance,
   protocol_ctxt_t ctxt;
   DevAssert(pdu);
   container = &pdu->choice.initiatingMessage->value.choice.UEContextReleaseCommand;
-  /* GNB_CU_UE_F1AP_ID */
+  // GNB_CU_UE_F1AP_ID
   F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextReleaseCommandIEs_t, ie, container,
                              F1AP_ProtocolIE_ID_id_gNB_CU_UE_F1AP_ID, true);
   ctxt.rnti = f1ap_get_rnti_by_cu_id(DUtype, instance, ie->value.choice.GNB_CU_UE_F1AP_ID);
   ctxt.instance = instance;
   ctxt.module_id = instance;
   ctxt.enb_flag  = 1;
-  /* GNB_DU_UE_F1AP_ID */
+  // GNB_DU_UE_F1AP_ID
   F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextReleaseCommandIEs_t, ie, container,
                              F1AP_ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID, true);
   const rnti_t rnti = f1ap_get_rnti_by_du_id(DUtype, instance,
@@ -683,18 +695,18 @@ int DU_handle_UE_CONTEXT_RELEASE_COMMAND(instance_t       instance,
               "RNTI obtained through DU ID (%x) is different from CU ID (%x)\n",
               rnti, ctxt.rnti);
   int UE_out_of_sync = 0;
-
   if (RC.nrrrc && RC.nrrrc[instance]->node_type == ngran_gNB_DU) {
-    for (int n = 0; n < MAX_MOBILES_PER_GNB; ++n) {
-      if (RC.nrmac[instance]->UE_info.active[n] == TRUE
-          && rnti == RC.nrmac[instance]->UE_info.rnti[n]) {
+    UE_iterator(RC.nrmac[instance]->UE_info.list, UE) {
+      if (UE->rnti == rnti) {
         UE_out_of_sync = 0;
         break;
       }
     }
+    if (!UE)
+      LOG_E(F1AP,"Not found rnti: %x\n", rnti);
   } else {
     for (int n = 0; n < MAX_MOBILES_PER_ENB; ++n) {
-      if (RC.mac[instance]->UE_info.active[n] == TRUE
+      if (RC.mac[instance]->UE_info.active[n] == true
           && rnti == UE_RNTI(instance, n)) {
         UE_out_of_sync = RC.mac[instance]->UE_info.UE_sched_ctrl[n].ul_out_of_sync;
         break;
@@ -702,13 +714,13 @@ int DU_handle_UE_CONTEXT_RELEASE_COMMAND(instance_t       instance,
     }
   }
 
-  /* We don't need the Cause */
-  /* Optional RRC Container: if present, send to UE */
+  // We don't need the Cause
+  // Optional RRC Container: if present, send to UE
   F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextReleaseCommandIEs_t, ie, container,
                              F1AP_ProtocolIE_ID_id_RRCContainer, false);
 
   if (ie && !UE_out_of_sync) {
-    /* RRC message and UE is reachable, send message */
+    // RRC message and UE is reachable, send message
     const sdu_size_t sdu_len = ie->value.choice.RRCContainer.size;
     mem_block_t *pdu_p = NULL;
     pdu_p = get_free_mem_block(sdu_len, __func__);
@@ -759,8 +771,8 @@ int DU_handle_UE_CONTEXT_RELEASE_COMMAND(instance_t       instance,
     ue_context_p = rrc_eNB_get_ue_context(RC.rrc[ctxt.instance], ctxt.rnti);
 
     if (ue_context_p && !UE_out_of_sync) {
-      /* UE exists and is in sync so we start a timer before releasing the
-       * connection */
+      // UE exists and is in sync so we start a timer before releasing the
+      //  connection
       pthread_mutex_lock(&rrc_release_freelist);
 
       for (uint16_t release_num = 0; release_num < NUMBER_OF_UE_MAX; release_num++) {
@@ -784,19 +796,198 @@ int DU_handle_UE_CONTEXT_RELEASE_COMMAND(instance_t       instance,
       pthread_mutex_unlock(&rrc_release_freelist);
       ue_context_p->ue_context.ue_release_timer_s1 = 0;
     } else if (ue_context_p && UE_out_of_sync) {
-      /* UE exists and is out of sync, drop the connection */
+      // UE exists and is out of sync, drop the connection
       mac_eNB_rrc_ul_failure(instance, 0, 0, 0, rnti);
     } else {
       LOG_E(F1AP, "no ue_context for RNTI %x, acknowledging release\n", rnti);
     }
 
-    /* TODO send this once the connection has really been released */
+    // TODO send this once the connection has really been released
+    f1ap_ue_context_release_cplt_t cplt;
+    cplt.rnti = ctxt.rnti;
+    DU_send_UE_CONTEXT_RELEASE_COMPLETE(instance, &cplt);
+    return 0;
+  }
+}*/
+
+
+int DU_handle_UE_CONTEXT_RELEASE_COMMAND(instance_t       instance,
+    uint32_t         assoc_id,
+    uint32_t         stream,
+    F1AP_F1AP_PDU_t *pdu) {
+  F1AP_UEContextReleaseCommand_t *container;
+  F1AP_UEContextReleaseCommandIEs_t *ie;
+  protocol_ctxt_t ctxt;
+
+  /* ITTI message to NR-RRC for the case of gNB-DU */
+  MessageDef                      *msg_p; // message to NR-RRC
+  msg_p = itti_alloc_new_message(TASK_DU_F1, 0,  F1AP_UE_CONTEXT_RELEASE_CMD);
+  f1ap_ue_context_release_req_t *f1ap_ue_context_release_cmd = &F1AP_UE_CONTEXT_RELEASE_CMD(msg_p);
+
+
+  DevAssert(pdu);
+  container = &pdu->choice.initiatingMessage->value.choice.UEContextReleaseCommand;
+  // GNB_CU_UE_F1AP_ID
+  F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextReleaseCommandIEs_t, ie, container,
+                             F1AP_ProtocolIE_ID_id_gNB_CU_UE_F1AP_ID, true);
+  if(RC.nrrrc && RC.nrrrc[instance]->node_type == ngran_gNB_DU){
+    f1ap_ue_context_release_cmd->rnti = f1ap_get_rnti_by_cu_id(DUtype, instance, ie->value.choice.GNB_CU_UE_F1AP_ID);
+  }
+  else{
+    ctxt.rnti = f1ap_get_rnti_by_cu_id(DUtype, instance, ie->value.choice.GNB_CU_UE_F1AP_ID);
+    ctxt.instance = instance;
+    ctxt.module_id = instance;
+    ctxt.enb_flag  = 1;
+  }
+  // GNB_DU_UE_F1AP_ID
+  F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextReleaseCommandIEs_t, ie, container,
+                             F1AP_ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID, true);
+  const rnti_t rnti = f1ap_get_rnti_by_du_id(DUtype, instance,
+                      ie->value.choice.GNB_DU_UE_F1AP_ID);
+  if(RC.nrrrc && RC.nrrrc[instance]->node_type == ngran_gNB_DU){
+    AssertFatal(f1ap_ue_context_release_cmd->rnti == rnti,
+            "RNTI obtained through DU ID (%x) is different from CU ID (%x)\n",
+            rnti, f1ap_ue_context_release_cmd->rnti);
+  }
+  else{
+    AssertFatal(ctxt.rnti == rnti,
+        "RNTI obtained through DU ID (%x) is different from CU ID (%x)\n",
+        rnti, ctxt.rnti);
+  }
+  int UE_out_of_sync = 0;
+
+  if(RC.rrc && RC.rrc[instance]->node_type == ngran_eNB_DU){
+    for (int n = 0; n < MAX_MOBILES_PER_ENB; ++n) {
+      if (RC.mac[instance]->UE_info.active[n] == true
+          && rnti == UE_RNTI(instance, n)) {
+        UE_out_of_sync = RC.mac[instance]->UE_info.UE_sched_ctrl[n].ul_out_of_sync;
+        break;
+      }
+    }
+  }
+
+  // We don't need the Cause
+  // Optional RRC Container: if present, send to UE
+  F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextReleaseCommandIEs_t, ie, container,
+                             F1AP_ProtocolIE_ID_id_RRCContainer, false);
+
+  if (ie && !UE_out_of_sync && RC.rrc && RC.rrc[instance]->node_type == ngran_eNB_DU) {
+    // RRC message and UE is reachable, send message
+    const sdu_size_t sdu_len = ie->value.choice.RRCContainer.size;
+    mem_block_t *pdu_p = NULL;
+    pdu_p = get_free_mem_block(sdu_len, __func__);
+    memcpy(&pdu_p->data[0], ie->value.choice.RRCContainer.buf, sdu_len);
+    rlc_op_status_t rlc_status = rlc_data_req(&ctxt
+                                 , 1
+                                 , MBMS_FLAG_NO
+                                 , 1 // SRB 1 correct?
+                                 , 0
+                                 , 0
+                                 , sdu_len
+                                 , pdu_p
+                                 ,NULL
+                                 ,NULL
+                                             );
+
+    switch (rlc_status) {
+      case RLC_OP_STATUS_OK:
+        break;
+
+      case RLC_OP_STATUS_BAD_PARAMETER:
+        LOG_W(F1AP, "Data sending request over RLC failed with 'Bad Parameter' reason!\n");
+        break;
+
+      case RLC_OP_STATUS_INTERNAL_ERROR:
+        LOG_W(F1AP, "Data sending request over RLC failed with 'Internal Error' reason!\n");
+        break;
+
+      case RLC_OP_STATUS_OUT_OF_RESSOURCES:
+        LOG_W(F1AP, "Data sending request over RLC failed with 'Out of Resources' reason!\n");
+        break;
+
+      default:
+        LOG_W(F1AP, "RLC returned an unknown status code after F1AP placed "
+              "the order to send some data (Status Code:%d)\n", rlc_status);
+        break;
+    }
+  }
+  else if(ie && RC.nrrrc && RC.nrrrc[instance]->node_type == ngran_gNB_DU) {
+    f1ap_ue_context_release_cmd->rrc_container = malloc(ie->value.choice.RRCContainer.size);
+    memcpy(f1ap_ue_context_release_cmd->rrc_container,
+        ie->value.choice.RRCContainer.buf, ie->value.choice.RRCContainer.size);
+  }
+
+  if (RC.nrrrc && RC.nrrrc[instance]->node_type == ngran_gNB_DU) {
+    F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextReleaseCommandIEs_t, ie, container,
+        F1AP_ProtocolIE_ID_id_Cause, true);
+    switch (ie->value.choice.Cause.present){
+    case  F1AP_Cause_PR_radioNetwork:
+      LOG_W (F1AP, "UE context release command cause is due to radioNetwork with specific code: %ld\n",ie->value.choice.Cause.choice.radioNetwork);
+      f1ap_ue_context_release_cmd->cause = F1AP_CAUSE_RADIO_NETWORK;
+      break;
+    case F1AP_Cause_PR_transport:
+      LOG_W (F1AP, "UE context release command cause is due to transport with specific code: %ld\n",ie->value.choice.Cause.choice.transport);
+      f1ap_ue_context_release_cmd->cause = F1AP_CAUSE_TRANSPORT;
+      break;
+    case F1AP_Cause_PR_protocol:
+      LOG_W (F1AP, "UE context release command cause is due to protocol with specific code: %ld\n",ie->value.choice.Cause.choice.protocol);
+      f1ap_ue_context_release_cmd->cause = F1AP_CAUSE_PROTOCOL;
+      break;
+    case F1AP_Cause_PR_misc:
+      LOG_W (F1AP, "UE context release command cause is misc with specific code: %ld \n",ie->value.choice.Cause.choice.misc);
+      f1ap_ue_context_release_cmd->cause = F1AP_CAUSE_MISC;
+      break;
+    default:
+      LOG_W(F1AP, "Unknown cause for UE context release command\n");
+      break;
+
+    }
+    itti_send_msg_to_task(TASK_RRC_GNB, instance, msg_p);
+    return 0;
+  } else {
+    struct rrc_eNB_ue_context_s *ue_context_p;
+    ue_context_p = rrc_eNB_get_ue_context(RC.rrc[ctxt.instance], ctxt.rnti);
+
+    if (ue_context_p && !UE_out_of_sync) {
+      // UE exists and is in sync so we start a timer before releasing the
+      //  connection
+      pthread_mutex_lock(&rrc_release_freelist);
+
+      for (uint16_t release_num = 0; release_num < NUMBER_OF_UE_MAX; release_num++) {
+        if (rrc_release_info.RRC_release_ctrl[release_num].flag == 0) {
+          if (ue_context_p->ue_context.ue_release_timer_s1 > 0)
+            rrc_release_info.RRC_release_ctrl[release_num].flag = 1;
+          else
+            rrc_release_info.RRC_release_ctrl[release_num].flag = 2;
+
+          rrc_release_info.RRC_release_ctrl[release_num].rnti = ctxt.rnti;
+          LOG_D(F1AP, "add rrc_release_info RNTI %x\n", ctxt.rnti);
+          // TODO: how to provide the correct MUI?
+          rrc_release_info.RRC_release_ctrl[release_num].rrc_eNB_mui = 0;
+          rrc_release_info.num_UEs++;
+          LOG_D(RRC,"Generate DLSCH Release send: index %d rnti %x mui %d flag %d \n",release_num,
+                ctxt.rnti, 0, rrc_release_info.RRC_release_ctrl[release_num].flag);
+          break;
+        }
+      }
+
+      pthread_mutex_unlock(&rrc_release_freelist);
+      ue_context_p->ue_context.ue_release_timer_s1 = 0;
+    } else if (ue_context_p && UE_out_of_sync) {
+      // UE exists and is out of sync, drop the connection
+      mac_eNB_rrc_ul_failure(instance, 0, 0, 0, rnti);
+    } else {
+      LOG_E(F1AP, "no ue_context for RNTI %x, acknowledging release\n", rnti);
+    }
+
+    // TODO send this once the connection has really been released
     f1ap_ue_context_release_cplt_t cplt;
     cplt.rnti = ctxt.rnti;
     DU_send_UE_CONTEXT_RELEASE_COMPLETE(instance, &cplt);
     return 0;
   }
 }
+
 int DU_send_UE_CONTEXT_RELEASE_COMPLETE(instance_t instance,
                                         f1ap_ue_context_release_cplt_t *cplt) {
   F1AP_F1AP_PDU_t                     pdu= {0};
@@ -891,10 +1082,162 @@ int DU_handle_UE_CONTEXT_MODIFICATION_REQUEST(instance_t       instance,
     uint32_t         assoc_id,
     uint32_t         stream,
     F1AP_F1AP_PDU_t *pdu) {
-  AssertFatal(1==0,"Not implemented yet\n");
+
+  MessageDef                      *msg_p; // message to RRC
+  F1AP_UEContextModificationRequest_t    *container;
+  int i;
+  DevAssert(pdu);
+  msg_p = itti_alloc_new_message(TASK_DU_F1, 0,  F1AP_UE_CONTEXT_MODIFICATION_REQ);
+  f1ap_ue_context_setup_t *f1ap_ue_context_modification_req = &F1AP_UE_CONTEXT_MODIFICATION_REQ(msg_p);
+  container = &pdu->choice.initiatingMessage->value.choice.UEContextModificationRequest;
+
+  /* mandatory */
+  /* GNB_CU_UE_F1AP_ID */
+  F1AP_UEContextModificationRequestIEs_t *ieCU;
+  F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextModificationRequestIEs_t, ieCU, container,
+      F1AP_ProtocolIE_ID_id_gNB_CU_UE_F1AP_ID, true);
+  f1ap_ue_context_modification_req->gNB_CU_ue_id = ieCU->value.choice.GNB_CU_UE_F1AP_ID;
+
+  /* mandatory */
+  /* GNB_DU_UE_F1AP_ID */
+  F1AP_UEContextModificationRequestIEs_t *ieDU_UE;
+  F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextModificationRequestIEs_t, ieDU_UE, container,
+      F1AP_ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID, true);
+  f1ap_ue_context_modification_req->gNB_DU_ue_id = ieDU_UE->value.choice.GNB_DU_UE_F1AP_ID;
+  f1ap_ue_context_modification_req->rnti = f1ap_get_rnti_by_du_id(DUtype, instance, f1ap_ue_context_modification_req->gNB_DU_ue_id);
+
+  if(f1ap_ue_context_modification_req->rnti<0)
+      LOG_E(F1AP, "Could not retrieve UE rnti based on the DU UE id \n");
+  else
+      LOG_I(F1AP, "Retrieved rnti is: %d \n", f1ap_ue_context_modification_req->rnti);
+
+  /* SRB */
+  F1AP_UEContextModificationRequestIEs_t *ieSrb;
+  F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextModificationRequestIEs_t, ieSrb, container,
+      F1AP_ProtocolIE_ID_id_SRBs_ToBeSetupMod_List, false);
+
+  if(ieSrb != NULL) {
+    f1ap_ue_context_modification_req->srbs_to_be_setup_length = ieSrb->value.choice.SRBs_ToBeSetupMod_List.list.count;
+    f1ap_ue_context_modification_req->srbs_to_be_setup = calloc(f1ap_ue_context_modification_req->srbs_to_be_setup_length,
+        sizeof(f1ap_srb_to_be_setup_t));
+    AssertFatal(f1ap_ue_context_modification_req->srbs_to_be_setup,
+        "could not allocate memory for f1ap_ue_context_setup_req->srbs_to_be_setup\n");
+
+    for (i = 0; i < f1ap_ue_context_modification_req->srbs_to_be_setup_length; ++i) {
+      f1ap_srb_to_be_setup_t *srb_p = &f1ap_ue_context_modification_req->srbs_to_be_setup[i];
+      F1AP_SRBs_ToBeSetupMod_Item_t *srbs_tobesetupmod_item_p;
+      srbs_tobesetupmod_item_p = &((F1AP_SRBs_ToBeSetupMod_ItemIEs_t *)ieSrb->value.choice.SRBs_ToBeSetupMod_List.list.array[i])->value.choice.SRBs_ToBeSetupMod_Item;
+      srb_p->srb_id = srbs_tobesetupmod_item_p->sRBID;
+    }
+  }
+
+  /* DRB */
+  F1AP_UEContextModificationRequestIEs_t *ieDrb;
+  F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextModificationRequestIEs_t, ieDrb, container,
+                   F1AP_ProtocolIE_ID_id_DRBs_ToBeSetupMod_List, false);
+
+  if(ieDrb!=NULL) {
+    f1ap_ue_context_modification_req->drbs_to_be_setup_length = ieDrb->value.choice.DRBs_ToBeSetupMod_List.list.count;
+    f1ap_ue_context_modification_req->drbs_to_be_setup = calloc(f1ap_ue_context_modification_req->drbs_to_be_setup_length,
+                               sizeof(f1ap_drb_to_be_setup_t));
+    AssertFatal(f1ap_ue_context_modification_req->drbs_to_be_setup,
+          "could not allocate memory for f1ap_ue_context_setup_req->drbs_to_be_setup\n");
+
+    for (i = 0; i < f1ap_ue_context_modification_req->drbs_to_be_setup_length; ++i) {
+      f1ap_drb_to_be_setup_t *drb_p = &f1ap_ue_context_modification_req->drbs_to_be_setup[i];
+      F1AP_DRBs_ToBeSetupMod_Item_t *drbs_tobesetupmod_item_p =
+          &((F1AP_DRBs_ToBeSetupMod_ItemIEs_t *)ieDrb->value.choice.DRBs_ToBeSetupMod_List.list.array[i])->value.choice.DRBs_ToBeSetupMod_Item;
+      drb_p->drb_id = drbs_tobesetupmod_item_p->dRBID;
+      /* TODO in the following, assume only one UP UL TNL is present.
+       * this matches/assumes OAI CU implementation, can be up to 2! */
+      drb_p->up_ul_tnl_length = 1;
+      AssertFatal(drbs_tobesetupmod_item_p->uLUPTNLInformation_ToBeSetup_List.list.count > 0,
+          "no UL UP TNL Information in DRBs to be Setup list\n");
+      F1AP_ULUPTNLInformation_ToBeSetup_Item_t *ul_up_tnl_info_p = (F1AP_ULUPTNLInformation_ToBeSetup_Item_t *)drbs_tobesetupmod_item_p->uLUPTNLInformation_ToBeSetup_List.list.array[0];
+      F1AP_GTPTunnel_t *ul_up_tnl0 = ul_up_tnl_info_p->uLUPTNLInformation.choice.gTPTunnel;
+      BIT_STRING_TO_TRANSPORT_LAYER_ADDRESS_IPv4(&ul_up_tnl0->transportLayerAddress, drb_p->up_ul_tnl[0].tl_address);
+      OCTET_STRING_TO_INT32(&ul_up_tnl0->gTP_TEID, drb_p->up_ul_tnl[0].teid);
+       // 3GPP assumes GTP-U is on port 2152, but OAI is configurable
+      drb_p->up_ul_tnl[0].port=getCxt(false,instance)->setupReq.CUport;
+
+      switch (drbs_tobesetupmod_item_p->rLCMode) {
+      case F1AP_RLCMode_rlc_am:
+        drb_p->rlc_mode = RLC_MODE_AM;
+        break;
+
+      default:
+        drb_p->rlc_mode = RLC_MODE_TM;
+        break;
+      }
+      if (!(RC.nrrrc && RC.nrrrc[instance]->node_type == ngran_gNB_DU)) {
+        transport_layer_addr_t addr;
+          memcpy(addr.buffer, &drb_p->up_ul_tnl[0].tl_address, sizeof(drb_p->up_ul_tnl[0].tl_address));
+          addr.length=sizeof(drb_p->up_ul_tnl[0].tl_address)*8;
+          drb_p->up_dl_tnl[0].teid = newGtpuCreateTunnel(INSTANCE_DEFAULT,
+                                                         f1ap_ue_context_modification_req->rnti,
+                                                         drb_p->drb_id,
+                                                         drb_p->drb_id,
+                                                         drb_p->up_ul_tnl[0].teid,
+                                                         -1, // no qfi
+                                                         addr,
+                                                         drb_p->up_ul_tnl[0].port,
+                                                         lteDURecvCb,
+                                                         NULL);
+          drb_p->up_dl_tnl_length++;
+      }
+    }
+  }
+  /* RRC Reconfiguration Complete indicator */
+  F1AP_UEContextModificationRequestIEs_t *ieReconf;
+  F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextModificationRequestIEs_t, ieReconf, container,
+      F1AP_ProtocolIE_ID_id_RRCReconfigurationCompleteIndicator, false);
+
+  if(ieReconf) {
+    switch(ieReconf->value.choice.RRCReconfigurationCompleteIndicator){
+    case F1AP_RRCReconfigurationCompleteIndicator_true:
+      f1ap_ue_context_modification_req->ReconfigComplOutcome = RRCreconf_success;
+      break;
+
+    case F1AP_RRCReconfigurationCompleteIndicator_failure:
+      f1ap_ue_context_modification_req->ReconfigComplOutcome = RRCreconf_failure;
+      break;
+    }
+  }
+
+  /* RRCContainer */
+  F1AP_UEContextModificationRequestIEs_t *ieRRC;
+  F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextModificationRequestIEs_t, ieRRC, container,
+      F1AP_ProtocolIE_ID_id_RRCContainer, false);
+
+  if (ieRRC) {
+    /* correct here */
+    if ( ieRRC->value.choice.RRCContainer.size )  {
+      f1ap_ue_context_modification_req->rrc_container = malloc(ieRRC->value.choice.RRCContainer.size);
+      memcpy(f1ap_ue_context_modification_req->rrc_container,
+          ieRRC->value.choice.RRCContainer.buf, ieRRC->value.choice.RRCContainer.size);
+      protocol_ctxt_t ctxt;
+      // decode RRC Container and act on the message type
+      ctxt.rnti = f1ap_ue_context_modification_req->rnti;
+      ctxt.instance = instance;
+      ctxt.module_id  = instance;
+      ctxt.enb_flag  = 1;
+      ctxt.eNB_index = instance;
+      mem_block_t *pdcp_pdu_p = get_free_mem_block(ieRRC->value.choice.RRCContainer.size, __func__);
+      memcpy(&pdcp_pdu_p->data[0], ieRRC->value.choice.RRCContainer.buf, ieRRC->value.choice.RRCContainer.size);
+      du_rlc_data_req(&ctxt, 1, 0x00, 1, 1, 0, ieRRC->value.choice.RRCContainer.size, pdcp_pdu_p);
+    } else {
+      LOG_E(F1AP, " RRCContainer in UEContextModificationRequestIEs size id 0\n");
+    }
+  } else {
+    LOG_W(F1AP, "can't find RRCContainer in UEContextModificationRequestIEs by id %ld \n", F1AP_ProtocolIE_ID_id_RRCContainer);
+  }
+
+  itti_send_msg_to_task(TASK_RRC_GNB, instance, msg_p);
+  return 0;
 }
+
 //void DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(F1AP_UEContextModificationResponse_t *UEContextModificationResponse) {
-int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance) {
+int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance, f1ap_ue_context_setup_t *resp) {
   F1AP_F1AP_PDU_t                        pdu= {0};
   F1AP_UEContextModificationResponse_t    *out;
   uint8_t  *buffer=NULL;
@@ -913,14 +1256,14 @@ int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance) {
   ie1->id                             = F1AP_ProtocolIE_ID_id_gNB_CU_UE_F1AP_ID;
   ie1->criticality                    = F1AP_Criticality_reject;
   ie1->value.present                  = F1AP_UEContextModificationResponseIEs__value_PR_GNB_CU_UE_F1AP_ID;
-  ie1->value.choice.GNB_CU_UE_F1AP_ID = 126L;
+  ie1->value.choice.GNB_CU_UE_F1AP_ID = resp->gNB_CU_ue_id;
   /* mandatory */
   /* c2. GNB_DU_UE_F1AP_ID */
   asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationResponseIEs_t, ie2);
   ie2->id                             = F1AP_ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID;
   ie2->criticality                    = F1AP_Criticality_reject;
   ie2->value.present                  = F1AP_UEContextModificationResponseIEs__value_PR_GNB_DU_UE_F1AP_ID;
-  ie2->value.choice.GNB_DU_UE_F1AP_ID = 651L;
+  ie2->value.choice.GNB_DU_UE_F1AP_ID = f1ap_get_du_ue_f1ap_id(DUtype, instance, resp->rnti);
 
   /* optional */
   /* c3. ResourceCoordinationTransferContainer */
@@ -935,184 +1278,205 @@ int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance) {
 
   /* optional */
   /* c4. DUtoCURRCInformation */
-  if (0) {
+  if(resp->du_to_cu_rrc_information!=NULL){
     asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationResponseIEs_t, ie4);
     ie4->id                             = F1AP_ProtocolIE_ID_id_DUtoCURRCInformation;
     ie4->criticality                    = F1AP_Criticality_reject;
     ie4->value.present                  = F1AP_UEContextModificationResponseIEs__value_PR_DUtoCURRCInformation;
-    OCTET_STRING_fromBuf(&ie4->value.choice.DUtoCURRCInformation.cellGroupConfig, "asdsa1d32sa1d31asd31as",
-                         strlen("asdsa1d32sa1d31asd31as"));
+    if(resp->du_to_cu_rrc_information->cellGroupConfig!=NULL){
+      /* cellGroupConfig */
+      OCTET_STRING_fromBuf(&ie4->value.choice.DUtoCURRCInformation.cellGroupConfig, (const char *)resp->du_to_cu_rrc_information->cellGroupConfig,
+          resp->du_to_cu_rrc_information->cellGroupConfig_length);
+    }
 
     /* OPTIONAL */
-    if (1) {
-      asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationResponseIEs_t, ie41);
-      ie41->value.choice.DUtoCURRCInformation.measGapConfig = (F1AP_MeasGapConfig_t *)calloc(1, sizeof(F1AP_MeasGapConfig_t));
-      OCTET_STRING_fromBuf( ie41->value.choice.DUtoCURRCInformation.measGapConfig, "asdsa1d32sa1d31asd31as",
-                            strlen("asdsa1d32sa1d31asd31as"));
+    /* measGapConfig */
+    if (resp->du_to_cu_rrc_information->measGapConfig!=NULL) {
+      OCTET_STRING_fromBuf(ie4->value.choice.DUtoCURRCInformation.measGapConfig, (const char *)resp->du_to_cu_rrc_information->measGapConfig,
+        resp->du_to_cu_rrc_information->measGapConfig_length);
     }
-  }
 
-  /* mandatory */
-  /* c5. DRBs_SetupMod_List */
-  asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationResponseIEs_t, ie5);
-  ie5->id                             = F1AP_ProtocolIE_ID_id_DRBs_SetupMod_List;
-  ie5->criticality                    = F1AP_Criticality_reject;
-  ie5->value.present                  = F1AP_UEContextModificationResponseIEs__value_PR_DRBs_SetupMod_List;
-
-  for (int i=0;   i<1;  i++) {
-    //
-    asn1cSequenceAdd(ie5->value.choice.DRBs_SetupMod_List.list,
-                     F1AP_DRBs_SetupMod_ItemIEs_t, drbs_setupMod_item_ies);
-    drbs_setupMod_item_ies->id            = F1AP_ProtocolIE_ID_id_DRBs_SetupMod_Item;
-    drbs_setupMod_item_ies->criticality   = F1AP_Criticality_reject;
-    drbs_setupMod_item_ies->value.present = F1AP_DRBs_SetupMod_ItemIEs__value_PR_DRBs_SetupMod_Item;
-    /* 10.1 DRBs_SetupMod_Item */
-    F1AP_DRBs_SetupMod_Item_t *drbs_setupMod_item=&drbs_setupMod_item_ies->value.choice.DRBs_SetupMod_Item;
-    /* dRBID */
-    drbs_setupMod_item->dRBID = 30L;
-    /* DLTunnels_SetupMod_List */
-    int maxnoofDLUPTNLInformation = 1; // 2;
-
-    for (int j=0;    j<maxnoofDLUPTNLInformation;    j++) {
-      /*  DLTunnels_ToBeSetup_Item */
-      asn1cSequenceAdd(ie5->value.choice.DRBs_SetupMod_List.list,
-                       F1AP_DLUPTNLInformation_ToBeSetup_Item_t, dLUPTNLInformation_ToBeSetup_Item);
-      dLUPTNLInformation_ToBeSetup_Item->dLUPTNLInformation.present = F1AP_UPTransportLayerInformation_PR_gTPTunnel;
-      asn1cCalloc(dLUPTNLInformation_ToBeSetup_Item->dLUPTNLInformation.choice.gTPTunnel,
-                  gTPTunnel);
-      TRANSPORT_LAYER_ADDRESS_IPv4_TO_BIT_STRING(1234, &gTPTunnel->transportLayerAddress);
-      OCTET_STRING_fromBuf(&gTPTunnel->gTP_TEID, "1204",
-                           strlen("1204"));
+    /* OPTIONAL */
+    /* requestedP_MaxFR1 */
+    if (resp->du_to_cu_rrc_information->requestedP_MaxFR1!=NULL) {
+      OCTET_STRING_fromBuf(ie4->value.choice.DUtoCURRCInformation.requestedP_MaxFR1, (const char *)resp->du_to_cu_rrc_information->requestedP_MaxFR1,
+          resp->du_to_cu_rrc_information->requestedP_MaxFR1_length);
     }
   }
 
-  /* mandatory */
+
+  /* optional */
+  /* c5. DRBs_Setup_List */
+  if(resp->drbs_to_be_setup_length > 0) {
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationResponseIEs_t, ie5);
+    ie5->id                             = F1AP_ProtocolIE_ID_id_DRBs_SetupMod_List;
+    ie5->criticality                    = F1AP_Criticality_ignore;
+    ie5->value.present                  = F1AP_UEContextModificationResponseIEs__value_PR_DRBs_SetupMod_List;
+    for (int i=0;  i< resp->drbs_to_be_setup_length; i++) {
+      asn1cSequenceAdd(ie5->value.choice.DRBs_SetupMod_List.list, F1AP_DRBs_SetupMod_ItemIEs_t, drbs_setupmod_item_ies);
+      drbs_setupmod_item_ies->id            = F1AP_ProtocolIE_ID_id_DRBs_SetupMod_Item;
+      drbs_setupmod_item_ies->criticality   = F1AP_Criticality_ignore;
+      drbs_setupmod_item_ies->value.present = F1AP_DRBs_SetupMod_ItemIEs__value_PR_DRBs_SetupMod_Item;
+      /* 7.1 DRBs_Setup_Item */
+      /* ADD */
+      F1AP_DRBs_SetupMod_Item_t *drbs_setupmod_item=&drbs_setupmod_item_ies->value.choice.DRBs_SetupMod_Item;
+      /* dRBID */
+      drbs_setupmod_item->dRBID = resp->drbs_to_be_setup[i].drb_id;
+
+      for (int j=0;  j<resp->drbs_to_be_setup[i].up_dl_tnl_length; j++) {
+        /* ADD */
+        asn1cSequenceAdd(drbs_setupmod_item->dLUPTNLInformation_ToBeSetup_List.list,
+          F1AP_DLUPTNLInformation_ToBeSetup_Item_t, dLUPTNLInformation_ToBeSetup_Item);
+        dLUPTNLInformation_ToBeSetup_Item->dLUPTNLInformation.present = F1AP_UPTransportLayerInformation_PR_gTPTunnel;
+        /* gTPTunnel */
+        asn1cCalloc(dLUPTNLInformation_ToBeSetup_Item->dLUPTNLInformation.choice.gTPTunnel,gTPTunnel);
+        /* transportLayerAddress */
+        struct sockaddr_in addr= {0};
+        inet_pton(AF_INET, getCxt(false,instance)->setupReq.DU_f1_ip_address.ipv4_address,
+          &addr.sin_addr.s_addr);
+        TRANSPORT_LAYER_ADDRESS_IPv4_TO_BIT_STRING(addr.sin_addr.s_addr,
+          &gTPTunnel->transportLayerAddress);
+        /* gTP_TEID */
+        INT32_TO_OCTET_STRING(resp->drbs_to_be_setup[i].up_dl_tnl[j].teid, &gTPTunnel->gTP_TEID);
+      } // for j
+    } // for i
+  }
+
+  /* optional */
   /* c6. DRBs_Modified_List */
-  asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationResponseIEs_t, ie6);
-  ie6->id                             = F1AP_ProtocolIE_ID_id_DRBs_Modified_List;
-  ie6->criticality                    = F1AP_Criticality_reject;
-  ie6->value.present                  = F1AP_UEContextModificationResponseIEs__value_PR_DRBs_Modified_List;
-
-  for (int i=0;  i<1; i++) {
-    //
-    asn1cSequenceAdd(ie6->value.choice.DRBs_Modified_List.list,
-                     F1AP_DRBs_Modified_ItemIEs_t, drbs_modified_item_ies);
-    drbs_modified_item_ies->id            = F1AP_ProtocolIE_ID_id_DRBs_Modified_Item;
-    drbs_modified_item_ies->criticality   = F1AP_Criticality_reject;
-    drbs_modified_item_ies->value.present = F1AP_DRBs_Modified_ItemIEs__value_PR_DRBs_Modified_Item;
-    /* 13.1 SRBs_modified_Item */
-    F1AP_DRBs_Modified_Item_t *drbs_modified_item=
-      &drbs_modified_item_ies->value.choice.DRBs_Modified_Item;
-    /* dRBID */
-    drbs_modified_item->dRBID = 25L;
-    /* ULTunnels_Modified_List */
-    int maxnoofULTunnels = 1; // 2;
-
-    for (int j=0;  j<maxnoofULTunnels;  j++) {
-      /*  DLTunnels_Modified_Item */
-      asn1cSequenceAdd(drbs_modified_item->dLUPTNLInformation_ToBeSetup_List.list,
-                       F1AP_DLUPTNLInformation_ToBeSetup_Item_t, dLUPTNLInformation_ToBeSetup_Item);
-      asn1cCalloc(dLUPTNLInformation_ToBeSetup_Item, tmp);
-      tmp->dLUPTNLInformation.present = F1AP_UPTransportLayerInformation_PR_gTPTunnel;
-      asn1cCalloc(dLUPTNLInformation_ToBeSetup_Item->dLUPTNLInformation.choice.gTPTunnel, gTPTunnel);
-      TRANSPORT_LAYER_ADDRESS_IPv4_TO_BIT_STRING(1234, &gTPTunnel->transportLayerAddress);
-      OCTET_STRING_fromBuf(&gTPTunnel->gTP_TEID, "1204", strlen("1204"));
+  if(resp->drbs_to_be_modified_length > 0){
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationResponseIEs_t, ie6);
+    ie6->id                             = F1AP_ProtocolIE_ID_id_DRBs_Modified_List;
+    ie6->criticality                    = F1AP_Criticality_ignore;
+    ie6->value.present                  = F1AP_UEContextModificationResponseIEs__value_PR_DRBs_Modified_List;
+
+    for (int i=0;  i<resp->drbs_to_be_modified_length; i++) {
+      asn1cSequenceAdd(ie6->value.choice.DRBs_Modified_List.list,
+        F1AP_DRBs_Modified_ItemIEs_t, drbs_modified_item_ies);
+      drbs_modified_item_ies->id            = F1AP_ProtocolIE_ID_id_DRBs_Modified_Item;
+      drbs_modified_item_ies->criticality   = F1AP_Criticality_ignore;
+      drbs_modified_item_ies->value.present = F1AP_DRBs_Modified_ItemIEs__value_PR_DRBs_Modified_Item;
+      /* DRBs_modified_Item */
+      F1AP_DRBs_Modified_Item_t *drbs_modified_item= &drbs_modified_item_ies->value.choice.DRBs_Modified_Item;
+      /* dRBID */
+      drbs_modified_item->dRBID = resp->drbs_to_be_modified[i].drb_id;
+      
+      /* ULTunnels_Modified_List */
+      for (int j=0;  j<resp->drbs_to_be_modified[i].up_dl_tnl_length;  j++) {
+        /*  DLTunnels_Modified_Item */
+        asn1cSequenceAdd(drbs_modified_item->dLUPTNLInformation_ToBeSetup_List.list,
+          F1AP_DLUPTNLInformation_ToBeSetup_Item_t, dLUPTNLInformation_ToBeSetup_Item);
+        asn1cCalloc(dLUPTNLInformation_ToBeSetup_Item, tmp);
+        tmp->dLUPTNLInformation.present = F1AP_UPTransportLayerInformation_PR_gTPTunnel;
+        asn1cCalloc(dLUPTNLInformation_ToBeSetup_Item->dLUPTNLInformation.choice.gTPTunnel, gTPTunnel);
+        /* transportLayerAddress */
+        struct sockaddr_in addr= {0};
+        inet_pton(AF_INET, getCxt(false,instance)->setupReq.DU_f1_ip_address.ipv4_address,
+          &addr.sin_addr.s_addr);
+        TRANSPORT_LAYER_ADDRESS_IPv4_TO_BIT_STRING(addr.sin_addr.s_addr, &gTPTunnel->transportLayerAddress);
+        /* gTP_TEID */
+        INT32_TO_OCTET_STRING(resp->drbs_to_be_modified[i].up_dl_tnl[j].teid, &gTPTunnel->gTP_TEID);
+      }
     }
   }
 
-  /* mandatory */
+  /* optional */
   /* c7. SRBs_FailedToBeSetupMod_List */
-  asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationResponseIEs_t, ie7);
-  ie7->id                             = F1AP_ProtocolIE_ID_id_SRBs_FailedToBeSetupMod_List;
-  ie7->criticality                    = F1AP_Criticality_reject;
-  ie7->value.present                  = F1AP_UEContextModificationResponseIEs__value_PR_SRBs_FailedToBeSetupMod_List;
-
-  for (int i=0; i<1; i++) {
-    //
-    asn1cSequenceAdd(ie7->value.choice.SRBs_FailedToBeSetupMod_List.list,
-                     F1AP_SRBs_FailedToBeSetupMod_ItemIEs_t, srbs_failedToBeSetupMod_item_ies);
-    srbs_failedToBeSetupMod_item_ies->id            = F1AP_ProtocolIE_ID_id_SRBs_FailedToBeSetupMod_Item;
-    srbs_failedToBeSetupMod_item_ies->criticality   = F1AP_Criticality_ignore;
-    srbs_failedToBeSetupMod_item_ies->value.present = F1AP_SRBs_FailedToBeSetupMod_ItemIEs__value_PR_SRBs_FailedToBeSetupMod_Item;
-    /* 9.1 SRBs_FailedToBeSetupMod_Item */
-    F1AP_SRBs_FailedToBeSetupMod_Item_t *srbs_failedToBeSetupMod_item=
-      &srbs_failedToBeSetupMod_item_ies->value.choice.SRBs_FailedToBeSetupMod_Item;
-    /* - sRBID */
-    srbs_failedToBeSetupMod_item->sRBID = 50L;
-    asn1cCalloc(srbs_failedToBeSetupMod_item->cause, tmp)
-    tmp->present = F1AP_Cause_PR_radioNetwork;
-    tmp->choice.radioNetwork = F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnb_du_ue_f1ap_id;
+  if(resp->srbs_failed_to_be_setup_length > 0){
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationResponseIEs_t, ie7);
+    ie7->id                             = F1AP_ProtocolIE_ID_id_SRBs_FailedToBeSetupMod_List;
+    ie7->criticality                    = F1AP_Criticality_reject;
+    ie7->value.present                  = F1AP_UEContextModificationResponseIEs__value_PR_SRBs_FailedToBeSetupMod_List;
+
+    for (int i=0; i<resp->srbs_to_be_setup_length; i++) {
+      asn1cSequenceAdd(ie7->value.choice.SRBs_FailedToBeSetupMod_List.list,
+        F1AP_SRBs_FailedToBeSetupMod_ItemIEs_t, srbs_failedToBeSetupMod_item_ies);
+      srbs_failedToBeSetupMod_item_ies->id            = F1AP_ProtocolIE_ID_id_SRBs_FailedToBeSetupMod_Item;
+      srbs_failedToBeSetupMod_item_ies->criticality   = F1AP_Criticality_ignore;
+      srbs_failedToBeSetupMod_item_ies->value.present = F1AP_SRBs_FailedToBeSetupMod_ItemIEs__value_PR_SRBs_FailedToBeSetupMod_Item;
+      /* 9.1 SRBs_FailedToBeSetupMod_Item */
+      F1AP_SRBs_FailedToBeSetupMod_Item_t *srbs_failedToBeSetupMod_item=
+        &srbs_failedToBeSetupMod_item_ies->value.choice.SRBs_FailedToBeSetupMod_Item;
+      /* - sRBID */
+      srbs_failedToBeSetupMod_item->sRBID = resp->srbs_failed_to_be_setup[i].rb_id;
+      asn1cCalloc(srbs_failedToBeSetupMod_item->cause, tmp)
+      tmp->present = F1AP_Cause_PR_radioNetwork;
+      tmp->choice.radioNetwork = F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnb_du_ue_f1ap_id;
+    }
   }
 
-  /* mandatory */
+  /* optional */
   /* c8. DRBs_FailedToBeSetupMod_List */
-  asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationResponseIEs_t, ie8);
-  ie8->id                             = F1AP_ProtocolIE_ID_id_DRBs_FailedToBeSetupMod_List;
-  ie8->criticality                    = F1AP_Criticality_reject;
-  ie8->value.present                  = F1AP_UEContextModificationResponseIEs__value_PR_DRBs_FailedToBeSetupMod_List;
-
-  for (int i=0;   i<1; i++) {
-    //
-    asn1cSequenceAdd(ie8->value.choice.DRBs_FailedToBeSetupMod_List.list,
-                     F1AP_DRBs_FailedToBeSetupMod_ItemIEs_t, drbs_failedToBeSetupMod_item_ies);
-    drbs_failedToBeSetupMod_item_ies->id            = F1AP_ProtocolIE_ID_id_DRBs_FailedToBeSetupMod_Item;
-    drbs_failedToBeSetupMod_item_ies->criticality   = F1AP_Criticality_reject;
-    drbs_failedToBeSetupMod_item_ies->value.present = F1AP_DRBs_FailedToBeSetupMod_ItemIEs__value_PR_DRBs_FailedToBeSetupMod_Item;
-    /* 10.1 DRBs_ToBeSetupMod_Item */
-    F1AP_DRBs_FailedToBeSetupMod_Item_t *drbs_failedToBeSetupMod_item=
-      &drbs_failedToBeSetupMod_item_ies->value.choice.DRBs_FailedToBeSetupMod_Item;
-    /* dRBID */
-    drbs_failedToBeSetupMod_item->dRBID = 30L;
-    drbs_failedToBeSetupMod_item->cause = (F1AP_Cause_t *)calloc(1, sizeof(F1AP_Cause_t));
-    drbs_failedToBeSetupMod_item->cause->present = F1AP_Cause_PR_radioNetwork;
-    drbs_failedToBeSetupMod_item->cause->choice.radioNetwork = F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnb_du_ue_f1ap_id;
+  if(resp->drbs_failed_to_be_setup_length > 0){
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationResponseIEs_t, ie8);
+    ie8->id                             = F1AP_ProtocolIE_ID_id_DRBs_FailedToBeSetupMod_List;
+    ie8->criticality                    = F1AP_Criticality_reject;
+    ie8->value.present                  = F1AP_UEContextModificationResponseIEs__value_PR_DRBs_FailedToBeSetupMod_List;
+
+    for (int i=0;   i<resp->drbs_failed_to_be_setup_length; i++) {
+      asn1cSequenceAdd(ie8->value.choice.DRBs_FailedToBeSetupMod_List.list,
+        F1AP_DRBs_FailedToBeSetupMod_ItemIEs_t, drbs_failedToBeSetupMod_item_ies);
+      drbs_failedToBeSetupMod_item_ies->id            = F1AP_ProtocolIE_ID_id_DRBs_FailedToBeSetupMod_Item;
+      drbs_failedToBeSetupMod_item_ies->criticality   = F1AP_Criticality_reject;
+      drbs_failedToBeSetupMod_item_ies->value.present = F1AP_DRBs_FailedToBeSetupMod_ItemIEs__value_PR_DRBs_FailedToBeSetupMod_Item;
+      /* DRBs_FailedToBeSetupMod_Item */
+      F1AP_DRBs_FailedToBeSetupMod_Item_t *drbs_failedToBeSetupMod_item=
+        &drbs_failedToBeSetupMod_item_ies->value.choice.DRBs_FailedToBeSetupMod_Item;
+      /* dRBID */
+      drbs_failedToBeSetupMod_item->dRBID = resp->drbs_failed_to_be_setup[i].rb_id;
+      drbs_failedToBeSetupMod_item->cause = (F1AP_Cause_t *)calloc(1, sizeof(F1AP_Cause_t));
+      drbs_failedToBeSetupMod_item->cause->present = F1AP_Cause_PR_radioNetwork;
+      drbs_failedToBeSetupMod_item->cause->choice.radioNetwork = F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnb_du_ue_f1ap_id;
+    }
   }
 
-  /* mandatory */
+  /* optional */
   /* c9. SCell_FailedtoSetupMod_List */
-  asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationResponseIEs_t, ie9);
-  ie9->id                             = F1AP_ProtocolIE_ID_id_SCell_FailedtoSetupMod_List;
-  ie9->criticality                    = F1AP_Criticality_ignore;
-  ie9->value.present                  = F1AP_UEContextModificationResponseIEs__value_PR_SCell_FailedtoSetupMod_List;
-
-  for (int i=0; i<1; i++) {
-    //
-    asn1cSequenceAdd(ie9->value.choice.SCell_FailedtoSetupMod_List.list,
-                     F1AP_SCell_FailedtoSetupMod_ItemIEs_t, scell_failedtoSetupMod_item_ies);
-    scell_failedtoSetupMod_item_ies->id            = F1AP_ProtocolIE_ID_id_SCell_FailedtoSetupMod_Item;
-    scell_failedtoSetupMod_item_ies->criticality   = F1AP_Criticality_ignore;
-    scell_failedtoSetupMod_item_ies->value.present = F1AP_SCell_FailedtoSetupMod_ItemIEs__value_PR_SCell_FailedtoSetupMod_Item;
-    /* 8.1 SCell_ToBeSetup_Item */
-    F1AP_SCell_FailedtoSetupMod_Item_t *scell_failedtoSetupMod_item=&scell_failedtoSetupMod_item_ies->value.choice.SCell_FailedtoSetupMod_Item;
-    /* - sCell_ID */
-    addnRCGI(scell_failedtoSetupMod_item->sCell_ID, &f1ap_req(false, instance)->cell[i]);
-    asn1cCalloc(scell_failedtoSetupMod_item->cause, tmp);
-    tmp->present = F1AP_Cause_PR_radioNetwork;
-    tmp->choice.radioNetwork = F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnb_du_ue_f1ap_id;
+  if(0){
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationResponseIEs_t, ie9);
+    ie9->id                             = F1AP_ProtocolIE_ID_id_SCell_FailedtoSetupMod_List;
+    ie9->criticality                    = F1AP_Criticality_ignore;
+    ie9->value.present                  = F1AP_UEContextModificationResponseIEs__value_PR_SCell_FailedtoSetupMod_List;
+
+    for (int i=0; i<1; i++) {
+      asn1cSequenceAdd(ie9->value.choice.SCell_FailedtoSetupMod_List.list,
+        F1AP_SCell_FailedtoSetupMod_ItemIEs_t, scell_failedtoSetupMod_item_ies);
+      scell_failedtoSetupMod_item_ies->id            = F1AP_ProtocolIE_ID_id_SCell_FailedtoSetupMod_Item;
+      scell_failedtoSetupMod_item_ies->criticality   = F1AP_Criticality_ignore;
+      scell_failedtoSetupMod_item_ies->value.present = F1AP_SCell_FailedtoSetupMod_ItemIEs__value_PR_SCell_FailedtoSetupMod_Item;
+      /* 8.1 SCell_ToBeSetup_Item */
+      F1AP_SCell_FailedtoSetupMod_Item_t *scell_failedtoSetupMod_item=&scell_failedtoSetupMod_item_ies->value.choice.SCell_FailedtoSetupMod_Item;
+      /* - sCell_ID */
+      addnRCGI(scell_failedtoSetupMod_item->sCell_ID, &f1ap_req(false, instance)->cell[i]);
+      asn1cCalloc(scell_failedtoSetupMod_item->cause, tmp);
+      tmp->present = F1AP_Cause_PR_radioNetwork;
+      tmp->choice.radioNetwork = F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnb_du_ue_f1ap_id;
+    }
   }
 
-  /* mandatory */
+  /* optional */
   /* c10. DRBs_FailedToBeModified_List */
-  asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationResponseIEs_t, ie10);
-  ie10->id                             = F1AP_ProtocolIE_ID_id_DRBs_FailedToBeModified_List;
-  ie10->criticality                    = F1AP_Criticality_reject;
-  ie10->value.present                  = F1AP_UEContextModificationResponseIEs__value_PR_DRBs_FailedToBeModified_List;
-
-  for (int i=0; i<1; i++) {
-    //
-    asn1cSequenceAdd(ie10->value.choice.DRBs_FailedToBeModified_List.list,
-                     F1AP_DRBs_FailedToBeModified_ItemIEs_t, drbs_failedToBeModified_item_ies);
-    drbs_failedToBeModified_item_ies->id            = F1AP_ProtocolIE_ID_id_DRBs_FailedToBeModified_Item;
-    drbs_failedToBeModified_item_ies->criticality   = F1AP_Criticality_reject;
-    drbs_failedToBeModified_item_ies->value.present = F1AP_DRBs_FailedToBeModified_ItemIEs__value_PR_DRBs_FailedToBeModified_Item;
-    /* 13.1 DRBs_FailedToBeModified_Item */
-    F1AP_DRBs_FailedToBeModified_Item_t *drbs_failedToBeModified_item=
-      &drbs_failedToBeModified_item_ies->value.choice.DRBs_FailedToBeModified_Item ;
-    /* dRBID */
-    drbs_failedToBeModified_item->dRBID = 30L;
-    asn1cCalloc(drbs_failedToBeModified_item->cause, tmp);
-    tmp->present = F1AP_Cause_PR_radioNetwork;
-    tmp->choice.radioNetwork = F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnb_du_ue_f1ap_id;
+  if(0){
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationResponseIEs_t, ie10);
+    ie10->id                             = F1AP_ProtocolIE_ID_id_DRBs_FailedToBeModified_List;
+    ie10->criticality                    = F1AP_Criticality_reject;
+    ie10->value.present                  = F1AP_UEContextModificationResponseIEs__value_PR_DRBs_FailedToBeModified_List;
+
+    for (int i=0; i<1; i++) {
+      asn1cSequenceAdd(ie10->value.choice.DRBs_FailedToBeModified_List.list,
+        F1AP_DRBs_FailedToBeModified_ItemIEs_t, drbs_failedToBeModified_item_ies);
+      drbs_failedToBeModified_item_ies->id            = F1AP_ProtocolIE_ID_id_DRBs_FailedToBeModified_Item;
+      drbs_failedToBeModified_item_ies->criticality   = F1AP_Criticality_reject;
+      drbs_failedToBeModified_item_ies->value.present = F1AP_DRBs_FailedToBeModified_ItemIEs__value_PR_DRBs_FailedToBeModified_Item;
+      /* 13.1 DRBs_FailedToBeModified_Item */
+      F1AP_DRBs_FailedToBeModified_Item_t *drbs_failedToBeModified_item=
+        &drbs_failedToBeModified_item_ies->value.choice.DRBs_FailedToBeModified_Item ;
+      /* dRBID */
+      drbs_failedToBeModified_item->dRBID = 30L;
+      asn1cCalloc(drbs_failedToBeModified_item->cause, tmp);
+      tmp->present = F1AP_Cause_PR_radioNetwork;
+      tmp->choice.radioNetwork = F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnb_du_ue_f1ap_id;
+    }
   }
 
   // /*  */
@@ -1163,6 +1527,28 @@ int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance) {
       }
     }
   }
+  /* optional */
+  /* c12. SRBs_Setup_List */
+  if(resp->srbs_to_be_setup_length > 0){
+    asn1cSequenceAdd(out->protocolIEs.list, F1AP_UEContextModificationResponseIEs_t, ie12);
+    ie12->id                             = F1AP_ProtocolIE_ID_id_SRBs_SetupMod_List;
+    ie12->criticality                    = F1AP_Criticality_ignore;
+    ie12->value.present                  = F1AP_UEContextModificationResponseIEs__value_PR_SRBs_SetupMod_List;
+
+    for (int i=0;  i< resp->srbs_to_be_setup_length; i++) {//
+      asn1cSequenceAdd(ie12->value.choice.SRBs_SetupMod_List.list,
+        F1AP_SRBs_SetupMod_ItemIEs_t, srbs_setupmod_item_ies);
+      srbs_setupmod_item_ies->id            = F1AP_ProtocolIE_ID_id_SRBs_SetupMod_Item;
+      srbs_setupmod_item_ies->criticality   = F1AP_Criticality_ignore;
+      srbs_setupmod_item_ies->value.present = F1AP_SRBs_SetupMod_ItemIEs__value_PR_SRBs_SetupMod_Item;
+      /* 11.1 SRBs_Setup_Item */
+      /* ADD */
+      F1AP_SRBs_SetupMod_Item_t *srbs_setupmod_item=&srbs_setupmod_item_ies->value.choice.SRBs_SetupMod_Item;
+      /* sRBID */
+      srbs_setupmod_item->sRBID = resp->srbs_to_be_setup[i].srb_id;
+      srbs_setupmod_item->lCID = resp->srbs_to_be_setup[i].srb_id;
+    }
+  }
 
   /* encode */
   if (f1ap_encode_pdu(&pdu, &buffer, &len) < 0) {
@@ -1170,9 +1556,10 @@ int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance) {
     return -1;
   }
 
-  //f1ap_itti_send_sctp_data_req(false, instance, buffer, len, 0);
+  f1ap_itti_send_sctp_data_req(false, instance, buffer, len, getCxt(false, instance)->default_sctp_stream_id);
   return 0;
 }
+
 int DU_send_UE_CONTEXT_MODIFICATION_FAILURE(instance_t instance) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
diff --git a/openair2/F1AP/f1ap_du_ue_context_management.h b/openair2/F1AP/f1ap_du_ue_context_management.h
index 82643fa933c..acf74f69d72 100644
--- a/openair2/F1AP/f1ap_du_ue_context_management.h
+++ b/openair2/F1AP/f1ap_du_ue_context_management.h
@@ -74,7 +74,7 @@ int DU_handle_UE_CONTEXT_MODIFICATION_REQUEST(instance_t       instance,
     uint32_t         assoc_id,
     uint32_t         stream,
     F1AP_F1AP_PDU_t *pdu);
-int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance);
+int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance, f1ap_ue_context_setup_t *resp);
 int DU_send_UE_CONTEXT_MODIFICATION_FAILURE(instance_t instance);
 
 
diff --git a/openair2/F1AP/f1ap_encoder.c b/openair2/F1AP/f1ap_encoder.c
index e623e665362..b249f23cfec 100644
--- a/openair2/F1AP/f1ap_encoder.c
+++ b/openair2/F1AP/f1ap_encoder.c
@@ -33,7 +33,7 @@
 #include "f1ap_common.h"
 #include "f1ap_encoder.h"
 
-int asn1_encoder_xer_print = 1;
+int asn1_encoder_xer_print = 0;
 
 int f1ap_encode_pdu(F1AP_F1AP_PDU_t *pdu, uint8_t **buffer, uint32_t *length) {
   ssize_t    encoded;
diff --git a/openair2/F1AP/f1ap_handlers.c b/openair2/F1AP/f1ap_handlers.c
index fec03bb0b90..0812a976f63 100644
--- a/openair2/F1AP/f1ap_handlers.c
+++ b/openair2/F1AP/f1ap_handlers.c
@@ -50,7 +50,7 @@ f1ap_message_processing_t f1ap_messages_processing[][3] = {
   { DU_handle_gNB_CU_CONFIGURATION_UPDATE, CU_handle_gNB_CU_CONFIGURATION_UPDATE_ACKNOWLEDGE, CU_handle_gNB_CU_CONFIGURATION_UPDATE_FAILURE }, /* gNBCUConfigurationUpdate */
   { DU_handle_UE_CONTEXT_SETUP_REQUEST, CU_handle_UE_CONTEXT_SETUP_RESPONSE, 0 }, /* UEContextSetup */
   { DU_handle_UE_CONTEXT_RELEASE_COMMAND, CU_handle_UE_CONTEXT_RELEASE_COMPLETE, 0 }, /* UEContextRelease */
-  { 0, 0, 0 }, /* UEContextModification */
+  { DU_handle_UE_CONTEXT_MODIFICATION_REQUEST, CU_handle_UE_CONTEXT_MODIFICATION_RESPONSE, 0 }, /* UEContextModification */
   { 0, 0, 0 }, /* UEContextModificationRequired */
   { 0, 0, 0 }, /* UEMobilityCommand */
   { CU_handle_UE_CONTEXT_RELEASE_REQUEST, 0, 0 }, /* UEContextReleaseRequest */
diff --git a/openair2/F1AP/f1ap_itti_messaging.c b/openair2/F1AP/f1ap_itti_messaging.c
index 21096a65188..e45edcc3a3b 100644
--- a/openair2/F1AP/f1ap_itti_messaging.c
+++ b/openair2/F1AP/f1ap_itti_messaging.c
@@ -32,7 +32,7 @@ void f1ap_itti_send_sctp_data_req(bool isCu, instance_t instance, uint8_t *buffe
   sctp_data_req->buffer        = buffer;
   sctp_data_req->buffer_length = buffer_length;
   sctp_data_req->stream        = stream;
-  LOG_I(F1AP, "Sending ITTI message to SCTP Task\n");
+  LOG_D(F1AP, "Sending ITTI message to SCTP Task\n");
   itti_send_msg_to_task(TASK_SCTP, instance, message_p);
 }
 
diff --git a/openair2/GNB_APP/L1_nr_paramdef.h b/openair2/GNB_APP/L1_nr_paramdef.h
index 90cd9aae290..1e5122956e0 100644
--- a/openair2/GNB_APP/L1_nr_paramdef.h
+++ b/openair2/GNB_APP/L1_nr_paramdef.h
@@ -51,6 +51,7 @@
 #define CONFIG_STRING_L1_PUCCH0_DTX_THRESHOLD              "pucch0_dtx_threshold"
 #define CONFIG_STRING_L1_PRACH_DTX_THRESHOLD               "prach_dtx_threshold"
 #define CONFIG_STRING_L1_PUSCH_DTX_THRESHOLD               "pusch_dtx_threshold"
+#define CONFIG_STRING_L1_MAX_LDPC_ITERATIONS               "max_ldpc_iterations"
 /*----------------------------------------------------------------------------------------------------------------------------------------------------*/
 /*                                            L1 configuration parameters                                                                             */
 /*   optname                                         helpstr   paramflags    XXXptr              defXXXval                  type           numelt     */
@@ -69,7 +70,8 @@
 {CONFIG_STRING_L1_OFDM_OFFSET_DIVISOR,               NULL,      0,         uptr:NULL,           defuintval:8,              TYPE_UINT,     0},         \
 {CONFIG_STRING_L1_PUCCH0_DTX_THRESHOLD,              NULL,      0,         uptr:NULL,           defintval:100,             TYPE_UINT,     0},         \
 {CONFIG_STRING_L1_PRACH_DTX_THRESHOLD,               NULL,      0,         uptr:NULL,           defintval:150,             TYPE_UINT,     0},         \
-{CONFIG_STRING_L1_PUSCH_DTX_THRESHOLD,               NULL,      0,         uptr:NULL,           defintval:50,              TYPE_UINT,     0}          \
+{CONFIG_STRING_L1_PUSCH_DTX_THRESHOLD,               NULL,      0,         uptr:NULL,           defintval:50,              TYPE_UINT,     0},         \
+{CONFIG_STRING_L1_MAX_LDPC_ITERATIONS,               NULL,      0,         uptr:NULL,           defintval:5,               TYPE_UINT,     0},          \
 }
 #define L1_CC_IDX                                          0
 #define L1_TRANSPORT_N_PREFERENCE_IDX                      1
@@ -85,6 +87,7 @@
 #define L1_PUCCH0_DTX_THRESHOLD                            11
 #define L1_PRACH_DTX_THRESHOLD                             12
 #define L1_PUSCH_DTX_THRESHOLD                             13
+#define L1_MAX_LDPC_ITERATIONS                             14
 
 /*----------------------------------------------------------------------------------------------------------------------------------------------------*/
 #endif
diff --git a/openair2/GNB_APP/MACRLC_nr_paramdef.h b/openair2/GNB_APP/MACRLC_nr_paramdef.h
index e634f077e26..0a50d19e139 100644
--- a/openair2/GNB_APP/MACRLC_nr_paramdef.h
+++ b/openair2/GNB_APP/MACRLC_nr_paramdef.h
@@ -58,16 +58,21 @@
 #define CONFIG_STRING_MACRLC_ULSCH_MAX_FRAME_INACTIVITY    "ulsch_max_frame_inactivity"
 #define CONFIG_STRING_MACRLC_PUSCHTARGETSNRX10             "pusch_TargetSNRx10"
 #define CONFIG_STRING_MACRLC_PUCCHTARGETSNRX10             "pucch_TargetSNRx10"
+#define CONFIG_STRING_MACRLC_UL_PRBBLACK_SNR_THRESHOLD     "ul_prbblack_SNR_threshold"
 #define CONFIG_STRING_MACRLC_PUCCHFAILURETHRES             "pucch_FailureThres"
 #define CONFIG_STRING_MACRLC_PUSCHFAILURETHRES             "pusch_FailureThres"
 #define CONFIG_STRING_MACRLC_DL_BLER_TARGET_UPPER          "dl_bler_target_upper"
 #define CONFIG_STRING_MACRLC_DL_BLER_TARGET_LOWER          "dl_bler_target_lower"
-#define CONFIG_STRING_MACRLC_DL_RD2_BLER_THRESHOLD         "dl_rd2_bler_threshold"
 #define CONFIG_STRING_MACRLC_DL_MAX_MCS                    "dl_max_mcs"
-#define CONFIG_STRING_MACRLC_HARQ_ROUND_MAX                "harq_round_max"
+#define CONFIG_STRING_MACRLC_UL_BLER_TARGET_UPPER          "ul_bler_target_upper"
+#define CONFIG_STRING_MACRLC_UL_BLER_TARGET_LOWER          "ul_bler_target_lower"
+#define CONFIG_STRING_MACRLC_UL_MAX_MCS                    "ul_max_mcs"
+#define CONFIG_STRING_MACRLC_DL_HARQ_ROUND_MAX             "dl_harq_round_max"
+#define CONFIG_STRING_MACRLC_UL_HARQ_ROUND_MAX             "ul_harq_round_max"
 #define CONFIG_STRING_MACRLC_MIN_GRANT_PRB                 "min_grant_prb"
 #define CONFIG_STRING_MACRLC_MIN_GRANT_MCS                 "min_grant_mcs"
 
+
 /*-------------------------------------------------------------------------------------------------------------------------------------------------------*/
 /*                                            MacRLC  configuration parameters                                                                           */
 /*   optname                                            helpstr   paramflags    XXXptr              defXXXval                  type           numelt     */
@@ -93,15 +98,19 @@
 {CONFIG_STRING_MACRLC_ULSCH_MAX_FRAME_INACTIVITY,        NULL,     0,          uptr:NULL,           defintval:10,              TYPE_UINT,     0},        \
 {CONFIG_STRING_MACRLC_PUSCHTARGETSNRX10,                 NULL,     0,          iptr:NULL,           defintval:200,             TYPE_INT,      0},        \
 {CONFIG_STRING_MACRLC_PUCCHTARGETSNRX10,                 NULL,     0,          iptr:NULL,           defintval:150,             TYPE_INT,      0},        \
+{CONFIG_STRING_MACRLC_UL_PRBBLACK_SNR_THRESHOLD, "SNR threshold to decide whether a PRB will be blacklisted or not", 0, iptr:NULL, defintval:10, TYPE_INT, 0}, \
 {CONFIG_STRING_MACRLC_PUCCHFAILURETHRES,                 NULL,     0,          iptr:NULL,           defintval:10,              TYPE_INT,      0},        \
 {CONFIG_STRING_MACRLC_PUSCHFAILURETHRES,                 NULL,     0,          iptr:NULL,           defintval:10,              TYPE_INT,      0},        \
 {CONFIG_STRING_MACRLC_DL_BLER_TARGET_UPPER,   "Upper threshold of BLER to decrease DL MCS",   0, dblptr:NULL,  defdblval:0.15,  TYPE_DOUBLE,  0},        \
 {CONFIG_STRING_MACRLC_DL_BLER_TARGET_LOWER,   "Lower threshold of BLER to increase DL MCS",   0, dblptr:NULL,  defdblval:0.05,  TYPE_DOUBLE,  0},        \
-{CONFIG_STRING_MACRLC_DL_RD2_BLER_THRESHOLD,  "Threshold of RD2/RETX2 BLER to decrease DL MCS", 0, dblptr:NULL,  defdblval:0.01,  TYPE_DOUBLE,  0},      \
 {CONFIG_STRING_MACRLC_DL_MAX_MCS,             "Maximum DL MCS that should be used", 0, u8ptr:NULL,  defintval:28,  TYPE_UINT8,  0},      \
-{CONFIG_STRING_MACRLC_HARQ_ROUND_MAX,         "Maximum number of HARQ rounds", 0, u8ptr:NULL, defintval:4, TYPE_UINT8, 0}, \
+{CONFIG_STRING_MACRLC_UL_BLER_TARGET_UPPER,   "Upper threshold of BLER to decrease UL MCS",   0, dblptr:NULL,  defdblval:0.15,  TYPE_DOUBLE,  0},        \
+{CONFIG_STRING_MACRLC_UL_BLER_TARGET_LOWER,   "Lower threshold of BLER to increase UL MCS",   0, dblptr:NULL,  defdblval:0.05,  TYPE_DOUBLE,  0},        \
+{CONFIG_STRING_MACRLC_UL_MAX_MCS,             "Maximum UL MCS that should be used", 0, u8ptr:NULL,  defintval:9,   TYPE_UINT8,  0},      \
+{CONFIG_STRING_MACRLC_DL_HARQ_ROUND_MAX,         "Maximum number of DL HARQ rounds", 0, u8ptr:NULL, defintval:4, TYPE_UINT8, 0}, \
+{CONFIG_STRING_MACRLC_UL_HARQ_ROUND_MAX,         "Maximum number of UL HARQ rounds", 0, u8ptr:NULL, defintval:4, TYPE_UINT8, 0}, \
 {CONFIG_STRING_MACRLC_MIN_GRANT_PRB,         "Minimal Periodic ULSCH Grant PRBs", 0, u8ptr:NULL, defintval:5, TYPE_UINT8, 0}, \
-{CONFIG_STRING_MACRLC_MIN_GRANT_MCS,         "Minimal Periodic ULSCH Grant MCS", 0, u8ptr:NULL, defintval:9, TYPE_UINT8, 0} \
+{CONFIG_STRING_MACRLC_MIN_GRANT_MCS,         "Minimal Periodic ULSCH Grant MCS", 0, u8ptr:NULL, defintval:9, TYPE_UINT8, 0}, \
 }
 #define MACRLC_CC_IDX                                          0
 #define MACRLC_TRANSPORT_N_PREFERENCE_IDX                      1
@@ -123,14 +132,55 @@
 #define MACRLC_ULSCH_MAX_FRAME_INACTIVITY                      17
 #define MACRLC_PUSCHTARGETSNRX10_IDX                           18
 #define MACRLC_PUCCHTARGETSNRX10_IDX                           19
-#define MACRLC_PUCCHFAILURETHRES_IDX                           20 
-#define MACRLC_PUSCHFAILURETHRES_IDX                           21
-#define MACRLC_DL_BLER_TARGET_UPPER_IDX                        22
-#define MACRLC_DL_BLER_TARGET_LOWER_IDX                        23
-#define MACRLC_DL_RD2_BLER_THRESHOLD_IDX                       24
+#define MACRLC_UL_PRBBLACK_SNR_THRESHOLD_IDX                   20
+#define MACRLC_PUCCHFAILURETHRES_IDX                           21
+#define MACRLC_PUSCHFAILURETHRES_IDX                           22
+#define MACRLC_DL_BLER_TARGET_UPPER_IDX                        23
+#define MACRLC_DL_BLER_TARGET_LOWER_IDX                        24
 #define MACRLC_DL_MAX_MCS_IDX                                  25
-#define MACRLC_HARQ_ROUND_MAX_IDX                              26
-#define MACRLC_MIN_GRANT_PRB_IDX                               27
-#define MACRLC_MIN_GRANT_MCS_IDX                               28
+#define MACRLC_UL_BLER_TARGET_UPPER_IDX                        26
+#define MACRLC_UL_BLER_TARGET_LOWER_IDX                        27
+#define MACRLC_UL_MAX_MCS_IDX                                  28
+#define MACRLC_DL_HARQ_ROUND_MAX_IDX                           29
+#define MACRLC_UL_HARQ_ROUND_MAX_IDX                           30
+#define MACRLC_MIN_GRANT_PRB_IDX                               31
+#define MACRLC_MIN_GRANT_MCS_IDX                               32
+
+#define MACRLCPARAMS_CHECK { \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+  { .s2 = { config_check_intrange, {1, 8} } }, /* DL max HARQ rounds */ \
+  { .s2 = { config_check_intrange, {1, 8} } }, /* UL max HARQ rounds */ \
+  { .s5 = { NULL } }, \
+  { .s5 = { NULL } }, \
+}
+
 /*---------------------------------------------------------------------------------------------------------------------------------------------------------*/
 #endif
diff --git a/openair2/GNB_APP/RRC_nr_paramsvalues.h b/openair2/GNB_APP/RRC_nr_paramsvalues.h
index 8a7ce64d91c..089569f84e6 100644
--- a/openair2/GNB_APP/RRC_nr_paramsvalues.h
+++ b/openair2/GNB_APP/RRC_nr_paramsvalues.h
@@ -132,6 +132,34 @@
 #define GNB_CONFIG_STRING_ULPTRSMAXPORTS_0                               "ul_ptrsMaxPorts_0"
 #define GNB_CONFIG_STRING_ULPTRSPOWER_0                                  "ul_ptrsPower_0"
 
+#define GNB_CONFIG_STRING_DLBWP1_ID                                      "dl_bwp-Id_1"
+#define GNB_CONFIG_STRING_DLBWP2_ID                                      "dl_bwp-Id_2"
+#define GNB_CONFIG_STRING_DLBWP3_ID                                      "dl_bwp-Id_3"
+#define GNB_CONFIG_STRING_DLBWP4_ID                                      "dl_bwp-Id_4"
+#define GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_DLBWP1                    "dl_bwp1_locationAndBandwidth"
+#define GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_DLBWP2                    "dl_bwp2_locationAndBandwidth"
+#define GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_DLBWP3                    "dl_bwp3_locationAndBandwidth"
+#define GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_DLBWP4                    "dl_bwp4_locationAndBandwidth"
+#define GNB_CONFIG_STRING_SCS_DLBWP1                                     "dl_bwp1_subcarrierSpacing"
+#define GNB_CONFIG_STRING_SCS_DLBWP2                                     "dl_bwp2_subcarrierSpacing"
+#define GNB_CONFIG_STRING_SCS_DLBWP3                                     "dl_bwp3_subcarrierSpacing"
+#define GNB_CONFIG_STRING_SCS_DLBWP4                                     "dl_bwp4_subcarrierSpacing"
+#define GNB_CONFIG_STRING_FIRSTACTIVEDLBWP_ID                            "firstActiveDownlinkBWP-Id"
+#define GNB_CONFIG_STRING_DEFAULTDLBWP_ID                                "defaultDownlinkBWP-Id"
+#define GNB_CONFIG_STRING_ULBWP1_ID                                      "ul_bwp-Id_1"
+#define GNB_CONFIG_STRING_ULBWP2_ID                                      "ul_bwp-Id_2"
+#define GNB_CONFIG_STRING_ULBWP3_ID                                      "ul_bwp-Id_3"
+#define GNB_CONFIG_STRING_ULBWP4_ID                                      "ul_bwp-Id_4"
+#define GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_ULBWP1                    "ul_bwp1_locationAndBandwidth"
+#define GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_ULBWP2                    "ul_bwp2_locationAndBandwidth"
+#define GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_ULBWP3                    "ul_bwp3_locationAndBandwidth"
+#define GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_ULBWP4                    "ul_bwp4_locationAndBandwidth"
+#define GNB_CONFIG_STRING_SCS_ULBWP1                                     "ul_bwp1_subcarrierSpacing"
+#define GNB_CONFIG_STRING_SCS_ULBWP2                                     "ul_bwp2_subcarrierSpacing"
+#define GNB_CONFIG_STRING_SCS_ULBWP3                                     "ul_bwp3_subcarrierSpacing"
+#define GNB_CONFIG_STRING_SCS_ULBWP4                                     "ul_bwp4_subcarrierSpacing"
+#define GNB_CONFIG_STRING_FIRSTACTIVEULBWP_ID                            "firstActiveUplinkBWP-Id"
+
 /*--------------------------------------------------------------------------------------------------------------------*/
 /*                                            pdcch_ConfigSIB1 parameters                                             */
 /*--------------------------------------------------------------------------------------------------------------------*/
@@ -240,10 +268,33 @@
 {GNB_CONFIG_STRING_ULPTRSTIMEDENSITY2_0,NULL,0,i64ptr:scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->timeDensity->list.array[2],defint64val:-1,TYPE_INT64,0}, \
 {GNB_CONFIG_STRING_ULPTRSREOFFSET_0,NULL,0,i64ptr:scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->resourceElementOffset,defint64val:-1,TYPE_INT64,0}, \
 {GNB_CONFIG_STRING_ULPTRSMAXPORTS_0,NULL,0,i64ptr:&scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->maxNrofPorts,defint64val:0,TYPE_INT64,0}, \
-{GNB_CONFIG_STRING_ULPTRSPOWER_0,NULL,0,i64ptr:&scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->ptrs_Power,defint64val:0,TYPE_INT64,0}}
-
-
-
-
+{GNB_CONFIG_STRING_ULPTRSPOWER_0,NULL,0,i64ptr:&scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->ptrs_Power,defint64val:0,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_FIRSTACTIVEDLBWP_ID,NULL,0,i64ptr:scd->firstActiveDownlinkBWP_Id,defint64val:1,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_FIRSTACTIVEULBWP_ID,NULL,0,i64ptr:scd->uplinkConfig->firstActiveUplinkBWP_Id,defint64val:1,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_DLBWP1_ID,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Id,defint64val:1,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_DLBWP2_ID,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[1]->bwp_Id,defint64val:2,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_DLBWP3_ID,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[2]->bwp_Id,defint64val:3,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_DLBWP4_ID,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[3]->bwp_Id,defint64val:4,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_SCS_DLBWP1,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Common->genericParameters.subcarrierSpacing,defint64val:1,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_SCS_DLBWP2,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[1]->bwp_Common->genericParameters.subcarrierSpacing,defint64val:1,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_SCS_DLBWP3,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[2]->bwp_Common->genericParameters.subcarrierSpacing,defint64val:1,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_SCS_DLBWP4,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[3]->bwp_Common->genericParameters.subcarrierSpacing,defint64val:1,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_DLBWP1,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Common->genericParameters.locationAndBandwidth,defint64val:0,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_DLBWP2,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[1]->bwp_Common->genericParameters.locationAndBandwidth,defint64val:0,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_DLBWP3,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[2]->bwp_Common->genericParameters.locationAndBandwidth,defint64val:0,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_DLBWP4,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[3]->bwp_Common->genericParameters.locationAndBandwidth,defint64val:0,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_ULBWP1_ID,NULL,0,i64ptr:&scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Id,defint64val:1,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_ULBWP2_ID,NULL,0,i64ptr:&scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[1]->bwp_Id,defint64val:2,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_ULBWP3_ID,NULL,0,i64ptr:&scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[2]->bwp_Id,defint64val:3,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_ULBWP4_ID,NULL,0,i64ptr:&scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[3]->bwp_Id,defint64val:4,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_SCS_ULBWP1,NULL,0,i64ptr:&scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Common->genericParameters.subcarrierSpacing,defint64val:1,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_SCS_ULBWP2,NULL,0,i64ptr:&scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[1]->bwp_Common->genericParameters.subcarrierSpacing,defint64val:1,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_SCS_ULBWP3,NULL,0,i64ptr:&scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[2]->bwp_Common->genericParameters.subcarrierSpacing,defint64val:1,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_SCS_ULBWP4,NULL,0,i64ptr:&scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[3]->bwp_Common->genericParameters.subcarrierSpacing,defint64val:1,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_ULBWP1,NULL,0,i64ptr:&scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Common->genericParameters.locationAndBandwidth,defint64val:0,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_ULBWP2,NULL,0,i64ptr:&scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[1]->bwp_Common->genericParameters.locationAndBandwidth,defint64val:0,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_ULBWP3,NULL,0,i64ptr:&scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[2]->bwp_Common->genericParameters.locationAndBandwidth,defint64val:0,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_ULBWP4,NULL,0,i64ptr:&scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[3]->bwp_Common->genericParameters.locationAndBandwidth,defint64val:0,TYPE_INT64,0}, \
+{GNB_CONFIG_STRING_DEFAULTDLBWP_ID,NULL,0,i64ptr:scd->defaultDownlinkBWP_Id,defint64val:0,TYPE_INT64,0}}
 
 #endif
diff --git a/openair2/GNB_APP/gnb_config.c b/openair2/GNB_APP/gnb_config.c
index 8ea0cfe5d99..2dce0f315d4 100644
--- a/openair2/GNB_APP/gnb_config.c
+++ b/openair2/GNB_APP/gnb_config.c
@@ -214,15 +214,20 @@ void fill_scc_sim(NR_ServingCellConfigCommon_t *scc,uint64_t *ssb_bitmap,int N_R
   //  *scc->n_TimingAdvanceOffset=NR_ServingCellConfigCommon__n_TimingAdvanceOffset_n0;
   *scc->ssb_periodicityServingCell=NR_ServingCellConfigCommon__ssb_periodicityServingCell_ms20;
   scc->dmrs_TypeA_Position=NR_ServingCellConfigCommon__dmrs_TypeA_Position_pos2;
-  *scc->ssbSubcarrierSpacing=NR_SubcarrierSpacing_kHz30;
-  *scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencySSB=641032;
-  *scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0]=78;
-  scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencyPointA=640000;
+  *scc->ssbSubcarrierSpacing=mu_dl;
+  if (mu_dl == 0) {
+    *scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencySSB=520432;
+    *scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0]=38;
+    scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencyPointA=520000;
+  } else {
+    *scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencySSB=641032;
+    *scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0]=78;
+    scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencyPointA=640000;
+  }
   scc->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList.list.array[0]->offsetToCarrier=0;
-  scc->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList.list.array[0]->subcarrierSpacing=NR_SubcarrierSpacing_kHz30;
-
+  scc->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList.list.array[0]->subcarrierSpacing=mu_dl;
   scc->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList.list.array[0]->carrierBandwidth=N_RB_DL;
-  scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.locationAndBandwidth=13036;
+  scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.locationAndBandwidth=275*(N_RB_DL-1);
   scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.subcarrierSpacing=mu_dl;//NR_SubcarrierSpacing_kHz30;
   *scc->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->controlResourceSetZero=12;
   *scc->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->searchSpaceZero=0;
@@ -236,13 +241,13 @@ void fill_scc_sim(NR_ServingCellConfigCommon_t *scc,uint64_t *ssb_bitmap,int N_R
   timedomainresourceallocation1->startSymbolAndLength=57;
   ASN_SEQUENCE_ADD(&scc->downlinkConfigCommon->initialDownlinkBWP->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList->list,
                    timedomainresourceallocation1);
-  *scc->uplinkConfigCommon->frequencyInfoUL->frequencyBandList->list.array[0]=78;
+  *scc->uplinkConfigCommon->frequencyInfoUL->frequencyBandList->list.array[0]=mu_ul?78:38;
   *scc->uplinkConfigCommon->frequencyInfoUL->absoluteFrequencyPointA=-1;
   scc->uplinkConfigCommon->frequencyInfoUL->scs_SpecificCarrierList.list.array[0]->offsetToCarrier=0;
-  scc->uplinkConfigCommon->frequencyInfoUL->scs_SpecificCarrierList.list.array[0]->subcarrierSpacing=NR_SubcarrierSpacing_kHz30;
+  scc->uplinkConfigCommon->frequencyInfoUL->scs_SpecificCarrierList.list.array[0]->subcarrierSpacing=mu_ul;
   scc->uplinkConfigCommon->frequencyInfoUL->scs_SpecificCarrierList.list.array[0]->carrierBandwidth=N_RB_UL;
   *scc->uplinkConfigCommon->frequencyInfoUL->p_Max=20;
-  scc->uplinkConfigCommon->initialUplinkBWP->genericParameters.locationAndBandwidth=13036;
+  scc->uplinkConfigCommon->initialUplinkBWP->genericParameters.locationAndBandwidth=275*(N_RB_UL-1);
   scc->uplinkConfigCommon->initialUplinkBWP->genericParameters.subcarrierSpacing=mu_ul;//NR_SubcarrierSpacing_kHz30;
   scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->rach_ConfigGeneric.prach_ConfigurationIndex=98;
   scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->rach_ConfigGeneric.msg1_FDM=NR_RACH_ConfigGeneric__msg1_FDM_one;
@@ -278,8 +283,11 @@ void fill_scc_sim(NR_ServingCellConfigCommon_t *scc,uint64_t *ssb_bitmap,int N_R
  *scc->uplinkConfigCommon->initialUplinkBWP->pucch_ConfigCommon->choice.setup->p0_nominal=-90;
  scc->ssb_PositionsInBurst->present=NR_ServingCellConfigCommon__ssb_PositionsInBurst_PR_mediumBitmap;
  *ssb_bitmap=0xff;
- scc->tdd_UL_DL_ConfigurationCommon->referenceSubcarrierSpacing=NR_SubcarrierSpacing_kHz30;
- scc->tdd_UL_DL_ConfigurationCommon->pattern1.dl_UL_TransmissionPeriodicity=NR_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms5;
+ scc->tdd_UL_DL_ConfigurationCommon->referenceSubcarrierSpacing=mu_dl;
+ if (mu_dl == 0)
+   scc->tdd_UL_DL_ConfigurationCommon->pattern1.dl_UL_TransmissionPeriodicity=NR_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms10;
+ else
+   scc->tdd_UL_DL_ConfigurationCommon->pattern1.dl_UL_TransmissionPeriodicity=NR_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms5;
  scc->tdd_UL_DL_ConfigurationCommon->pattern1.nrofDownlinkSlots=7;
  scc->tdd_UL_DL_ConfigurationCommon->pattern1.nrofDownlinkSymbols=6;
  scc->tdd_UL_DL_ConfigurationCommon->pattern1.nrofUplinkSlots=2;
@@ -344,8 +352,10 @@ void fix_scc(NR_ServingCellConfigCommon_t *scc,uint64_t ssbmap) {
   if (*scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg3_transformPrecoder!=0)
     scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg3_transformPrecoder = NULL;
 
-  // prepare DL Allocation lists
-  nr_rrc_config_dl_tda(scc);
+  // Prepare PDSCH-TimeDomainResourceAllocation list
+  nr_rrc_config_dl_tda(scc,
+                       scc->downlinkConfigCommon->initialDownlinkBWP->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList,
+                       scc->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList.list.array[0]->carrierBandwidth);
 
   frame_type_t frame_type = get_frame_type((int)*scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0], *scc->ssbSubcarrierSpacing);
   if (frame_type == FDD) {
@@ -372,157 +382,204 @@ void fix_scc(NR_ServingCellConfigCommon_t *scc,uint64_t ssbmap) {
 /* Function to allocate dedicated serving cell config strutures */
 void prepare_scd(NR_ServingCellConfig_t *scd) {
   // Allocate downlink structures
-
   scd->downlinkBWP_ToAddModList = CALLOC(1, sizeof(*scd->downlinkBWP_ToAddModList));
-
-  // Downlink bandwidth part
-  NR_BWP_Downlink_t *bwp = calloc(1, sizeof(*bwp));
-  bwp->bwp_Id = 1;
-
-  // Allocate downlink dedicated bandwidth part and PDSCH structures
-  bwp->bwp_Dedicated = calloc(1, sizeof(*bwp->bwp_Dedicated));
-  bwp->bwp_Dedicated->pdsch_Config = calloc(1, sizeof(*bwp->bwp_Dedicated->pdsch_Config));
-  bwp->bwp_Dedicated->pdsch_Config->present = NR_SetupRelease_PDSCH_Config_PR_setup;
-  bwp->bwp_Dedicated->pdsch_Config->choice.setup = calloc(1, sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup));
-  bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA = calloc(1, sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA));
-  bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->present = NR_SetupRelease_DMRS_DownlinkConfig_PR_setup;
-
-  // Allocate DL DMRS and PTRS configuration
-  bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup = calloc(1, sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup));
-  NR_DMRS_DownlinkConfig_t *NR_DMRS_DownlinkCfg = bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup;
-  NR_DMRS_DownlinkCfg->phaseTrackingRS=CALLOC(1, sizeof(*NR_DMRS_DownlinkCfg->phaseTrackingRS));
-  NR_DMRS_DownlinkCfg->phaseTrackingRS->present = NR_SetupRelease_PTRS_DownlinkConfig_PR_setup;
-  NR_DMRS_DownlinkCfg->phaseTrackingRS->choice.setup = CALLOC(1, sizeof(*NR_DMRS_DownlinkCfg->phaseTrackingRS->choice.setup));
-  NR_PTRS_DownlinkConfig_t *NR_PTRS_DownlinkCfg = NR_DMRS_DownlinkCfg->phaseTrackingRS->choice.setup;
-  NR_PTRS_DownlinkCfg->frequencyDensity = CALLOC(1, sizeof(*NR_PTRS_DownlinkCfg->frequencyDensity));
-  long *dl_rbs = CALLOC(2, sizeof(long));
-  for (int i=0;i<2;i++) {
-    ASN_SEQUENCE_ADD(&NR_PTRS_DownlinkCfg->frequencyDensity->list, &dl_rbs[i]);
-  }
-  NR_PTRS_DownlinkCfg->timeDensity = CALLOC(1, sizeof(*NR_PTRS_DownlinkCfg->timeDensity));
-  long *dl_mcs = CALLOC(3, sizeof(long));
-  for (int i=0;i<3;i++) {
-    ASN_SEQUENCE_ADD(&NR_PTRS_DownlinkCfg->timeDensity->list, &dl_mcs[i]);
-  }
-  NR_PTRS_DownlinkCfg->epre_Ratio = CALLOC(1, sizeof(*NR_PTRS_DownlinkCfg->epre_Ratio));
-  NR_PTRS_DownlinkCfg->resourceElementOffset = CALLOC(1, sizeof(*NR_PTRS_DownlinkCfg->resourceElementOffset));
-  *NR_PTRS_DownlinkCfg->resourceElementOffset = 0;
-  ASN_SEQUENCE_ADD(&scd->downlinkBWP_ToAddModList->list,bwp);
-
-  // Allocate uplink structures
-
   scd->uplinkConfig = CALLOC(1, sizeof(*scd->uplinkConfig));
   scd->uplinkConfig->uplinkBWP_ToAddModList = CALLOC(1, sizeof(*scd->uplinkConfig->uplinkBWP_ToAddModList));
+  scd->bwp_InactivityTimer = CALLOC(1, sizeof(*scd->bwp_InactivityTimer));
+  scd->uplinkConfig->firstActiveUplinkBWP_Id  = CALLOC(1, sizeof(*scd->uplinkConfig->firstActiveUplinkBWP_Id));
+  scd->firstActiveDownlinkBWP_Id = CALLOC(1, sizeof(*scd->firstActiveDownlinkBWP_Id));
+  *scd->firstActiveDownlinkBWP_Id = 1;
+  *scd->uplinkConfig->firstActiveUplinkBWP_Id = 1;
+  scd->defaultDownlinkBWP_Id = CALLOC(1, sizeof(*scd->defaultDownlinkBWP_Id));
+  *scd->defaultDownlinkBWP_Id = 0;
+
+  for (int j = 0; j < NR_MAX_NUM_BWP; j++) {
+
+    // Downlink bandwidth part
+    NR_BWP_Downlink_t *bwp = calloc(1, sizeof(*bwp));
+    bwp->bwp_Id = j+1;
+
+    // Allocate downlink dedicated bandwidth part and PDSCH structures
+    bwp->bwp_Common = calloc(1, sizeof(*bwp->bwp_Common));
+    bwp->bwp_Common->pdcch_ConfigCommon = calloc(1, sizeof(*bwp->bwp_Common->pdcch_ConfigCommon));
+    bwp->bwp_Common->pdsch_ConfigCommon = calloc(1, sizeof(*bwp->bwp_Common->pdsch_ConfigCommon));
+    bwp->bwp_Dedicated = calloc(1, sizeof(*bwp->bwp_Dedicated));
+    bwp->bwp_Dedicated->pdsch_Config = calloc(1, sizeof(*bwp->bwp_Dedicated->pdsch_Config));
+    bwp->bwp_Dedicated->pdsch_Config->present = NR_SetupRelease_PDSCH_Config_PR_setup;
+    bwp->bwp_Dedicated->pdsch_Config->choice.setup = calloc(1, sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup));
+    bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA = calloc(1, sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA));
+    bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->present = NR_SetupRelease_DMRS_DownlinkConfig_PR_setup;
+
+    // Allocate DL DMRS and PTRS configuration
+    bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup = calloc(1, sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup));
+    NR_DMRS_DownlinkConfig_t *NR_DMRS_DownlinkCfg = bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup;
+    NR_DMRS_DownlinkCfg->phaseTrackingRS=CALLOC(1, sizeof(*NR_DMRS_DownlinkCfg->phaseTrackingRS));
+    NR_DMRS_DownlinkCfg->phaseTrackingRS->present = NR_SetupRelease_PTRS_DownlinkConfig_PR_setup;
+    NR_DMRS_DownlinkCfg->phaseTrackingRS->choice.setup = CALLOC(1, sizeof(*NR_DMRS_DownlinkCfg->phaseTrackingRS->choice.setup));
+    NR_PTRS_DownlinkConfig_t *NR_PTRS_DownlinkCfg = NR_DMRS_DownlinkCfg->phaseTrackingRS->choice.setup;
+    NR_PTRS_DownlinkCfg->frequencyDensity = CALLOC(1, sizeof(*NR_PTRS_DownlinkCfg->frequencyDensity));
+    long *dl_rbs = CALLOC(2, sizeof(long));
+    for (int i=0;i<2;i++) {
+      ASN_SEQUENCE_ADD(&NR_PTRS_DownlinkCfg->frequencyDensity->list, &dl_rbs[i]);
+    }
+    NR_PTRS_DownlinkCfg->timeDensity = CALLOC(1, sizeof(*NR_PTRS_DownlinkCfg->timeDensity));
+    long *dl_mcs = CALLOC(3, sizeof(long));
+    for (int i=0;i<3;i++) {
+      ASN_SEQUENCE_ADD(&NR_PTRS_DownlinkCfg->timeDensity->list, &dl_mcs[i]);
+    }
+    NR_PTRS_DownlinkCfg->epre_Ratio = CALLOC(1, sizeof(*NR_PTRS_DownlinkCfg->epre_Ratio));
+    NR_PTRS_DownlinkCfg->resourceElementOffset = CALLOC(1, sizeof(*NR_PTRS_DownlinkCfg->resourceElementOffset));
+    *NR_PTRS_DownlinkCfg->resourceElementOffset = 0;
+    ASN_SEQUENCE_ADD(&scd->downlinkBWP_ToAddModList->list,bwp);
+
+    // Allocate uplink structures
+
+    NR_PUSCH_Config_t *pusch_Config = CALLOC(1, sizeof(*pusch_Config));
+
+    // Allocate UL DMRS and PTRS structures
+    pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB = CALLOC(1, sizeof(*pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB));
+    pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->present = NR_SetupRelease_DMRS_UplinkConfig_PR_setup;
+    pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup = CALLOC(1, sizeof(*pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup));
+    NR_DMRS_UplinkConfig_t *NR_DMRS_UplinkConfig = pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup;
+    NR_DMRS_UplinkConfig->phaseTrackingRS = CALLOC(1, sizeof(*NR_DMRS_UplinkConfig->phaseTrackingRS));
+    NR_DMRS_UplinkConfig->phaseTrackingRS->present = NR_SetupRelease_PTRS_UplinkConfig_PR_setup;
+    NR_DMRS_UplinkConfig->phaseTrackingRS->choice.setup = CALLOC(1, sizeof(*NR_DMRS_UplinkConfig->phaseTrackingRS->choice.setup));
+    NR_PTRS_UplinkConfig_t *NR_PTRS_UplinkConfig = NR_DMRS_UplinkConfig->phaseTrackingRS->choice.setup;
+    NR_PTRS_UplinkConfig->transformPrecoderDisabled = CALLOC(1, sizeof(*NR_PTRS_UplinkConfig->transformPrecoderDisabled));
+    NR_PTRS_UplinkConfig->transformPrecoderDisabled->frequencyDensity = CALLOC(1, sizeof(*NR_PTRS_UplinkConfig->transformPrecoderDisabled->frequencyDensity));
+    long *n_rbs = CALLOC(2, sizeof(long));
+    for (int i=0;i<2;i++) {
+      ASN_SEQUENCE_ADD(&NR_PTRS_UplinkConfig->transformPrecoderDisabled->frequencyDensity->list, &n_rbs[i]);
+    }
+    NR_PTRS_UplinkConfig->transformPrecoderDisabled->timeDensity = CALLOC(1, sizeof(*NR_PTRS_UplinkConfig->transformPrecoderDisabled->timeDensity));
+    long *ptrs_mcs = CALLOC(3, sizeof(long));
+    for (int i = 0; i < 3; i++) {
+      ASN_SEQUENCE_ADD(&NR_PTRS_UplinkConfig->transformPrecoderDisabled->timeDensity->list, &ptrs_mcs[i]);
+    }
+    NR_PTRS_UplinkConfig->transformPrecoderDisabled->resourceElementOffset = CALLOC(1, sizeof(*NR_PTRS_UplinkConfig->transformPrecoderDisabled->resourceElementOffset));
+    *NR_PTRS_UplinkConfig->transformPrecoderDisabled->resourceElementOffset = 0;
 
-  NR_PUSCH_Config_t *pusch_Config = CALLOC(1, sizeof(*pusch_Config));
-
-  // Allocate UL DMRS and PTRS structures
-  pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB = CALLOC(1, sizeof(*pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB));
-  pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->present = NR_SetupRelease_DMRS_UplinkConfig_PR_setup;
-  pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup = CALLOC(1, sizeof(*pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup));
-  NR_DMRS_UplinkConfig_t *NR_DMRS_UplinkConfig = pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup;
-  NR_DMRS_UplinkConfig->phaseTrackingRS = CALLOC(1, sizeof(*NR_DMRS_UplinkConfig->phaseTrackingRS));
-  NR_DMRS_UplinkConfig->phaseTrackingRS->present = NR_SetupRelease_PTRS_UplinkConfig_PR_setup;
-  NR_DMRS_UplinkConfig->phaseTrackingRS->choice.setup = CALLOC(1, sizeof(*NR_DMRS_UplinkConfig->phaseTrackingRS->choice.setup));
-  NR_PTRS_UplinkConfig_t *NR_PTRS_UplinkConfig = NR_DMRS_UplinkConfig->phaseTrackingRS->choice.setup;
-  NR_PTRS_UplinkConfig->transformPrecoderDisabled = CALLOC(1, sizeof(*NR_PTRS_UplinkConfig->transformPrecoderDisabled));
-  NR_PTRS_UplinkConfig->transformPrecoderDisabled->frequencyDensity = CALLOC(1, sizeof(*NR_PTRS_UplinkConfig->transformPrecoderDisabled->frequencyDensity));
-  long *n_rbs = CALLOC(2, sizeof(long));
-  for (int i=0;i<2;i++) {
-    ASN_SEQUENCE_ADD(&NR_PTRS_UplinkConfig->transformPrecoderDisabled->frequencyDensity->list, &n_rbs[i]);
-  }
-  NR_PTRS_UplinkConfig->transformPrecoderDisabled->timeDensity = CALLOC(1, sizeof(*NR_PTRS_UplinkConfig->transformPrecoderDisabled->timeDensity));
-  long *ptrs_mcs = CALLOC(3, sizeof(long));
-  for (int i = 0; i < 3; i++) {
-    ASN_SEQUENCE_ADD(&NR_PTRS_UplinkConfig->transformPrecoderDisabled->timeDensity->list, &ptrs_mcs[i]);
-  }
-  NR_PTRS_UplinkConfig->transformPrecoderDisabled->resourceElementOffset = CALLOC(1, sizeof(*NR_PTRS_UplinkConfig->transformPrecoderDisabled->resourceElementOffset));
-  *NR_PTRS_UplinkConfig->transformPrecoderDisabled->resourceElementOffset = 0;
-
-  // UL bandwidth part
-  NR_BWP_Uplink_t *ubwp = CALLOC(1, sizeof(*ubwp));
-  ubwp->bwp_Id = 1;
-  ubwp->bwp_Dedicated = CALLOC(1, sizeof(*ubwp->bwp_Dedicated));
+    // UL bandwidth part
+    NR_BWP_Uplink_t *ubwp = CALLOC(1, sizeof(*ubwp));
+    ubwp->bwp_Id = j+1;
+    ubwp->bwp_Common = CALLOC(1, sizeof(*ubwp->bwp_Common));
+    ubwp->bwp_Dedicated = CALLOC(1, sizeof(*ubwp->bwp_Dedicated));
 
-  ubwp->bwp_Dedicated->pusch_Config = CALLOC(1, sizeof(*ubwp->bwp_Dedicated->pusch_Config));
-  ubwp->bwp_Dedicated->pusch_Config->present = NR_SetupRelease_PUSCH_Config_PR_setup;
-  ubwp->bwp_Dedicated->pusch_Config->choice.setup = pusch_Config;
+    ubwp->bwp_Dedicated->pusch_Config = CALLOC(1, sizeof(*ubwp->bwp_Dedicated->pusch_Config));
+    ubwp->bwp_Dedicated->pusch_Config->present = NR_SetupRelease_PUSCH_Config_PR_setup;
+    ubwp->bwp_Dedicated->pusch_Config->choice.setup = pusch_Config;
 
-  ASN_SEQUENCE_ADD(&scd->uplinkConfig->uplinkBWP_ToAddModList->list,ubwp);
+    ASN_SEQUENCE_ADD(&scd->uplinkConfig->uplinkBWP_ToAddModList->list,ubwp);
+  }
 }
 
-/* This function checks dedicated serving cell configuration and performs fixes as needed */ 
+/* This function checks dedicated serving cell configuration and performs fixes as needed */
 void fix_scd(NR_ServingCellConfig_t *scd) {
-  // Check for DL PTRS parameters validity
-  if (scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS) {
-    // If any of the frequencyDensity values are not set or are out of bounds, PTRS is assumed to be not present
-    for (int i = scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS->choice.setup->frequencyDensity->list.count-1; i >= 0; i--) {
-      if ((*scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS->choice.setup->frequencyDensity->list.array[i] < 1)
-          || (*scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS->choice.setup->frequencyDensity->list.array[i] > 276)) {
-        LOG_I(NR_RRC, "DL PTRS frequencyDensity %d not set. Assuming PTRS not present! \n", i);
-        free(scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS);
-        scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS = NULL;
-        break;
-      }
+
+  // Remove unused BWPs
+  int b = 0;
+  while (b<scd->downlinkBWP_ToAddModList->list.count) {
+    if (scd->downlinkBWP_ToAddModList->list.array[b]->bwp_Common->genericParameters.locationAndBandwidth == 0) {
+      asn_sequence_del(&scd->downlinkBWP_ToAddModList->list,b,1);
+    } else {
+      b++;
     }
   }
-  if (scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS) {
-    // If any of the timeDensity values are not set or are out of bounds, PTRS is assumed to be not present
-    for (int i = scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS->choice.setup->timeDensity->list.count-1; i >= 0; i--) {
-      if ((*scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS->choice.setup->timeDensity->list.array[i] < 0)
-          || (*scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS->choice.setup->timeDensity->list.array[i] > 29)) {
-        LOG_I(RRC, "DL PTRS timeDensity %d not set. Assuming PTRS not present! \n", i);
-        free(scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS);
-        scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS = NULL;
-        break;
-      }
+
+  b = 0;
+  while (b<scd->uplinkConfig->uplinkBWP_ToAddModList->list.count) {
+    if (scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[b]->bwp_Common->genericParameters.locationAndBandwidth == 0) {
+      asn_sequence_del(&scd->uplinkConfig->uplinkBWP_ToAddModList->list,b,1);
+    } else {
+      b++;
     }
   }
-  if (scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS) {
-    if (*scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS->choice.setup->resourceElementOffset > 2) {
-      LOG_I(RRC, "Freeing DL PTRS resourceElementOffset \n");
-      free(scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS->choice.setup->resourceElementOffset);
-      scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS->choice.setup->resourceElementOffset = NULL;
+
+  // Check for DL PTRS parameters validity
+  for (int bwp_i = 0 ; bwp_i<scd->downlinkBWP_ToAddModList->list.count; bwp_i++) {
+
+    NR_DMRS_DownlinkConfig_t *dmrs_dl_config = scd->downlinkBWP_ToAddModList->list.array[bwp_i]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup;
+    
+    if (dmrs_dl_config->phaseTrackingRS) {
+      // If any of the frequencyDensity values are not set or are out of bounds, PTRS is assumed to be not present
+      for (int i = dmrs_dl_config->phaseTrackingRS->choice.setup->frequencyDensity->list.count - 1; i >= 0; i--) {
+        if ((*dmrs_dl_config->phaseTrackingRS->choice.setup->frequencyDensity->list.array[i] < 1)
+            || (*dmrs_dl_config->phaseTrackingRS->choice.setup->frequencyDensity->list.array[i] > 276)) {
+          LOG_I(GNB_APP, "DL PTRS frequencyDensity %d not set. Assuming PTRS not present! \n", i);
+          free(dmrs_dl_config->phaseTrackingRS);
+          dmrs_dl_config->phaseTrackingRS = NULL;
+          break;
+        }
+      }
     }
-    if (*scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS->choice.setup->epre_Ratio > 1) {
-      LOG_I(RRC, "Freeing DL PTRS epre_Ratio \n");
-      free(scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS->choice.setup->epre_Ratio);
-      scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS->choice.setup->epre_Ratio = NULL;
+
+    if (dmrs_dl_config->phaseTrackingRS) {
+      // If any of the timeDensity values are not set or are out of bounds, PTRS is assumed to be not present
+      for (int i = dmrs_dl_config->phaseTrackingRS->choice.setup->timeDensity->list.count - 1; i >= 0; i--) {
+        if ((*dmrs_dl_config->phaseTrackingRS->choice.setup->timeDensity->list.array[i] < 0)
+            || (*dmrs_dl_config->phaseTrackingRS->choice.setup->timeDensity->list.array[i] > 29)) {
+          LOG_I(GNB_APP, "DL PTRS timeDensity %d not set. Assuming PTRS not present! \n", i);
+          free(dmrs_dl_config->phaseTrackingRS);
+          dmrs_dl_config->phaseTrackingRS = NULL;
+          break;
+        }
+      }
     }
-  }
 
-  if (scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS) {
-    // If any of the frequencyDensity values are not set or are out of bounds, PTRS is assumed to be not present
-    for (int i = scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->frequencyDensity->list.count-1; i >= 0; i--) {
-      if ((*scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->frequencyDensity->list.array[i] < 1) 
-          || (*scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->frequencyDensity->list.array[i] > 276)) {
-        LOG_I(RRC, "UL PTRS frequencyDensity %d not set. Assuming PTRS not present! \n", i);
-        free(scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS);
-        scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS = NULL;
-        break;
+    if (dmrs_dl_config->phaseTrackingRS) {
+      if (*dmrs_dl_config->phaseTrackingRS->choice.setup->resourceElementOffset > 2) {
+        LOG_I(GNB_APP, "Freeing DL PTRS resourceElementOffset \n");
+        free(dmrs_dl_config->phaseTrackingRS->choice.setup->resourceElementOffset);
+        dmrs_dl_config->phaseTrackingRS->choice.setup->resourceElementOffset = NULL;
+      }
+      if (*dmrs_dl_config->phaseTrackingRS->choice.setup->epre_Ratio > 1) {
+        LOG_I(GNB_APP, "Freeing DL PTRS epre_Ratio \n");
+        free(dmrs_dl_config->phaseTrackingRS->choice.setup->epre_Ratio);
+        dmrs_dl_config->phaseTrackingRS->choice.setup->epre_Ratio = NULL;
       }
     }
   }
 
-  if (scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS) {
-    // If any of the timeDensity values are not set or are out of bounds, PTRS is assumed to be not present
-    for (int i = scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->timeDensity->list.count-1; i >= 0; i--) {
-      if ((*scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->timeDensity->list.array[i] < 0)
-          || (*scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->timeDensity->list.array[i] > 29)) {
-        LOG_I(RRC, "UL PTRS timeDensity %d not set. Assuming PTRS not present! \n", i);
-        free(scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS);
-        scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS = NULL;
-        break;
+  // Check for UL PTRS parameters validity
+  for (int bwp_i = 0 ; bwp_i<scd->uplinkConfig->uplinkBWP_ToAddModList->list.count; bwp_i++) {
+
+    NR_DMRS_UplinkConfig_t *dmrs_ul_config = scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[bwp_i]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup;
+    
+    if (dmrs_ul_config->phaseTrackingRS) {
+      // If any of the frequencyDensity values are not set or are out of bounds, PTRS is assumed to be not present
+      for (int i = dmrs_ul_config->phaseTrackingRS->choice.setup->transformPrecoderDisabled->frequencyDensity->list.count-1; i >= 0; i--) {
+        if ((*dmrs_ul_config->phaseTrackingRS->choice.setup->transformPrecoderDisabled->frequencyDensity->list.array[i] < 1)
+            || (*dmrs_ul_config->phaseTrackingRS->choice.setup->transformPrecoderDisabled->frequencyDensity->list.array[i] > 276)) {
+          LOG_I(GNB_APP, "UL PTRS frequencyDensity %d not set. Assuming PTRS not present! \n", i);
+          free(dmrs_ul_config->phaseTrackingRS);
+          dmrs_ul_config->phaseTrackingRS = NULL;
+          break;
+        }
       }
     }
-  }
-  if (scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS) {
-    // Check for UL PTRS parameters validity
-    if (*scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->resourceElementOffset > 2) {
-      LOG_I(RRC, "Freeing UL PTRS resourceElementOffset \n");
-      free(scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->resourceElementOffset);
-      scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->resourceElementOffset = NULL;
+
+    if (dmrs_ul_config->phaseTrackingRS) {
+      // If any of the timeDensity values are not set or are out of bounds, PTRS is assumed to be not present
+      for (int i = dmrs_ul_config->phaseTrackingRS->choice.setup->transformPrecoderDisabled->timeDensity->list.count-1; i >= 0; i--) {
+        if ((*dmrs_ul_config->phaseTrackingRS->choice.setup->transformPrecoderDisabled->timeDensity->list.array[i] < 0)
+            || (*dmrs_ul_config->phaseTrackingRS->choice.setup->transformPrecoderDisabled->timeDensity->list.array[i] > 29)) {
+          LOG_I(GNB_APP, "UL PTRS timeDensity %d not set. Assuming PTRS not present! \n", i);
+          free(dmrs_ul_config->phaseTrackingRS);
+          dmrs_ul_config->phaseTrackingRS = NULL;
+          break;
+        }
+      }
     }
+
+    if (dmrs_ul_config->phaseTrackingRS) {
+      // Check for UL PTRS parameters validity
+      if (*dmrs_ul_config->phaseTrackingRS->choice.setup->transformPrecoderDisabled->resourceElementOffset > 2) {
+        LOG_I(GNB_APP, "Freeing UL PTRS resourceElementOffset \n");
+        free(dmrs_ul_config->phaseTrackingRS->choice.setup->transformPrecoderDisabled->resourceElementOffset);
+        dmrs_ul_config->phaseTrackingRS->choice.setup->transformPrecoderDisabled->resourceElementOffset = NULL;
+      }
+    }
+
   }
 }
 
@@ -770,6 +827,7 @@ void RCconfig_NR_L1(void) {
       RC.gNB[j]->pucch0_thres       = *(L1_ParamList.paramarray[j][L1_PUCCH0_DTX_THRESHOLD].uptr);
       RC.gNB[j]->prach_thres        = *(L1_ParamList.paramarray[j][L1_PRACH_DTX_THRESHOLD].uptr);
       RC.gNB[j]->pusch_thres        = *(L1_ParamList.paramarray[j][L1_PUSCH_DTX_THRESHOLD].uptr);
+      RC.gNB[j]->max_ldpc_iterations = *(L1_ParamList.paramarray[j][L1_MAX_LDPC_ITERATIONS].uptr);
       RC.gNB[j]->num_ulprbbl        = num_prbbl;
       RC.gNB[j]->ap_N1              = N1;
       RC.gNB[j]->ap_N2              = N2;
@@ -858,6 +916,10 @@ void RCconfig_nr_macrlc() {
   }
   paramdef_t MacRLC_Params[] = MACRLCPARAMS_DESC;
   paramlist_def_t MacRLC_ParamList = {CONFIG_STRING_MACRLC_LIST,NULL,0};
+  /* map parameter checking array instances to parameter definition array instances */
+  checkedparam_t config_check_MacRLCParams [] = MACRLCPARAMS_CHECK;
+  for (int i = 0; i < sizeof(MacRLC_Params) / sizeof(paramdef_t); ++i)
+    MacRLC_Params[i].chkPptr = &(config_check_MacRLCParams[i]);
   config_getlist( &MacRLC_ParamList,MacRLC_Params,sizeof(MacRLC_Params)/sizeof(paramdef_t), NULL);    
   
   if ( MacRLC_ParamList.numelt > 0) {
@@ -870,6 +932,7 @@ void RCconfig_nr_macrlc() {
       RC.nb_nr_mac_CC[j] = *(MacRLC_ParamList.paramarray[j][MACRLC_CC_IDX].iptr);
       RC.nrmac[j]->pusch_target_snrx10                   = *(MacRLC_ParamList.paramarray[j][MACRLC_PUSCHTARGETSNRX10_IDX].iptr);
       RC.nrmac[j]->pucch_target_snrx10                   = *(MacRLC_ParamList.paramarray[j][MACRLC_PUCCHTARGETSNRX10_IDX].iptr);
+      RC.nrmac[j]->ul_prbblack_SNR_threshold             = *(MacRLC_ParamList.paramarray[j][MACRLC_UL_PRBBLACK_SNR_THRESHOLD_IDX].iptr);
       RC.nrmac[j]->pucch_failure_thres                   = *(MacRLC_ParamList.paramarray[j][MACRLC_PUCCHFAILURETHRES_IDX].iptr);
       RC.nrmac[j]->pusch_failure_thres                   = *(MacRLC_ParamList.paramarray[j][MACRLC_PUSCHFAILURETHRES_IDX].iptr);
      
@@ -924,11 +987,16 @@ void RCconfig_nr_macrlc() {
         AssertFatal(1==0,"MACRLC %d: %s unknown southbound midhaul\n",j,*(MacRLC_ParamList.paramarray[j][MACRLC_TRANSPORT_S_PREFERENCE_IDX].strptr));
       } 
       RC.nrmac[j]->ulsch_max_frame_inactivity = *(MacRLC_ParamList.paramarray[j][MACRLC_ULSCH_MAX_FRAME_INACTIVITY].uptr);
-      RC.nrmac[j]->dl_bler_target_upper = *(MacRLC_ParamList.paramarray[j][MACRLC_DL_BLER_TARGET_UPPER_IDX].dblptr);
-      RC.nrmac[j]->dl_bler_target_lower = *(MacRLC_ParamList.paramarray[j][MACRLC_DL_BLER_TARGET_LOWER_IDX].dblptr);
-      RC.nrmac[j]->dl_rd2_bler_threshold = *(MacRLC_ParamList.paramarray[j][MACRLC_DL_RD2_BLER_THRESHOLD_IDX].dblptr);
-      RC.nrmac[j]->dl_max_mcs = *(MacRLC_ParamList.paramarray[j][MACRLC_DL_MAX_MCS_IDX].u8ptr);
-      RC.nrmac[j]->harq_round_max = *(MacRLC_ParamList.paramarray[j][MACRLC_HARQ_ROUND_MAX_IDX].u8ptr);
+      NR_bler_options_t *dl_bler_options = &RC.nrmac[j]->dl_bler;
+      dl_bler_options->upper = *(MacRLC_ParamList.paramarray[j][MACRLC_DL_BLER_TARGET_UPPER_IDX].dblptr);
+      dl_bler_options->lower = *(MacRLC_ParamList.paramarray[j][MACRLC_DL_BLER_TARGET_LOWER_IDX].dblptr);
+      dl_bler_options->max_mcs = *(MacRLC_ParamList.paramarray[j][MACRLC_DL_MAX_MCS_IDX].u8ptr);
+      dl_bler_options->harq_round_max = *(MacRLC_ParamList.paramarray[j][MACRLC_DL_HARQ_ROUND_MAX_IDX].u8ptr);
+      NR_bler_options_t *ul_bler_options = &RC.nrmac[j]->ul_bler;
+      ul_bler_options->upper = *(MacRLC_ParamList.paramarray[j][MACRLC_UL_BLER_TARGET_UPPER_IDX].dblptr);
+      ul_bler_options->lower = *(MacRLC_ParamList.paramarray[j][MACRLC_UL_BLER_TARGET_LOWER_IDX].dblptr);
+      ul_bler_options->max_mcs = *(MacRLC_ParamList.paramarray[j][MACRLC_UL_MAX_MCS_IDX].u8ptr);
+      ul_bler_options->harq_round_max = *(MacRLC_ParamList.paramarray[j][MACRLC_UL_HARQ_ROUND_MAX_IDX].u8ptr);
       RC.nrmac[j]->min_grant_prb = *(MacRLC_ParamList.paramarray[j][MACRLC_MIN_GRANT_PRB_IDX].u8ptr);
       RC.nrmac[j]->min_grant_mcs = *(MacRLC_ParamList.paramarray[j][MACRLC_MIN_GRANT_MCS_IDX].u8ptr);
       RC.nrmac[j]->num_ulprbbl = num_prbbl;
@@ -1084,8 +1152,8 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
   prepare_scd(scd);
   paramdef_t SCDsParams[] = SCDPARAMS_DESC(scd);
   paramlist_def_t SCDsParamList = {GNB_CONFIG_STRING_SERVINGCELLCONFIGDEDICATED, NULL, 0};
-   ////////// Physical parameters
 
+   ////////// Physical parameters
 
   /* get global parameters, defined outside any section in the config file */
  
@@ -1162,13 +1230,17 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
     if (SCDsParamList.numelt > 0) {    
       sprintf(aprefix, "%s.[%i].%s.[%i]", GNB_CONFIG_STRING_GNB_LIST,0,GNB_CONFIG_STRING_SERVINGCELLCONFIGDEDICATED, 0);
       config_get( SCDsParams,sizeof(SCDsParams)/sizeof(paramdef_t),aprefix);  
-      LOG_I(RRC,"Read in ServingCellConfigDedicated UL (FreqDensity_0 %d, FreqDensity_1 %d, TimeDensity_0 %d, TimeDensity_1 %d, TimeDensity_2 %d, RE offset %d \n",
+      LOG_I(RRC,"Read in ServingCellConfigDedicated UL (FreqDensity_0 %d, FreqDensity_1 %d, TimeDensity_0 %d, TimeDensity_1 %d, TimeDensity_2 %d, RE offset %d, First_active_BWP_ID %d SCS %d, LocationandBW %d \n",
       (int)*scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->frequencyDensity->list.array[0],
       (int)*scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->frequencyDensity->list.array[1],
       (int)*scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->timeDensity->list.array[0],
       (int)*scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->timeDensity->list.array[1],
       (int)*scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->timeDensity->list.array[2],
-      (int)*scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->resourceElementOffset);
+      (int)*scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->resourceElementOffset,
+      (int)*scd->firstActiveDownlinkBWP_Id,
+      (int)scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Common->genericParameters.subcarrierSpacing,
+      (int)scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Common->genericParameters.locationAndBandwidth
+      );
     }
     fix_scd(scd);
 
@@ -1269,31 +1341,29 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
 		      (NRRRC_CONFIGURATION_REQ (msg_p).mnc_digit_length[l] == 3),"BAD MNC DIGIT LENGTH %d",
 		      NRRRC_CONFIGURATION_REQ (msg_p).mnc_digit_length[l]);
 	}
-        LOG_I(GNB_APP,"SSB SCO %d\n",*GNBParamList.paramarray[i][GNB_SSB_SUBCARRIEROFFSET_IDX].iptr);
-        NRRRC_CONFIGURATION_REQ (msg_p).ssb_SubcarrierOffset = *GNBParamList.paramarray[i][GNB_SSB_SUBCARRIEROFFSET_IDX].iptr;
-        LOG_I(RRC,"pdsch_AntennaPorts N1 %d\n",*GNBParamList.paramarray[i][GNB_PDSCH_ANTENNAPORTS_N1_IDX].iptr);
+        LOG_I(GNB_APP,"pdsch_AntennaPorts N1 %d\n",*GNBParamList.paramarray[i][GNB_PDSCH_ANTENNAPORTS_N1_IDX].iptr);
         NRRRC_CONFIGURATION_REQ (msg_p).pdsch_AntennaPorts.N1 = *GNBParamList.paramarray[i][GNB_PDSCH_ANTENNAPORTS_N1_IDX].iptr;
-        LOG_I(RRC,"pdsch_AntennaPorts N2 %d\n",*GNBParamList.paramarray[i][GNB_PDSCH_ANTENNAPORTS_N2_IDX].iptr);
+        LOG_I(GNB_APP,"pdsch_AntennaPorts N2 %d\n",*GNBParamList.paramarray[i][GNB_PDSCH_ANTENNAPORTS_N2_IDX].iptr);
         NRRRC_CONFIGURATION_REQ (msg_p).pdsch_AntennaPorts.N2 = *GNBParamList.paramarray[i][GNB_PDSCH_ANTENNAPORTS_N2_IDX].iptr;
-        LOG_I(RRC,"pdsch_AntennaPorts XP %d\n",*GNBParamList.paramarray[i][GNB_PDSCH_ANTENNAPORTS_XP_IDX].iptr);
+        LOG_I(GNB_APP,"pdsch_AntennaPorts XP %d\n",*GNBParamList.paramarray[i][GNB_PDSCH_ANTENNAPORTS_XP_IDX].iptr);
         NRRRC_CONFIGURATION_REQ (msg_p).pdsch_AntennaPorts.XP = *GNBParamList.paramarray[i][GNB_PDSCH_ANTENNAPORTS_XP_IDX].iptr;
-        LOG_I(RRC,"pusch_AntennaPorts %d\n",*GNBParamList.paramarray[i][GNB_PUSCH_ANTENNAPORTS_IDX].iptr);
+        LOG_I(GNB_APP,"pusch_AntennaPorts %d\n",*GNBParamList.paramarray[i][GNB_PUSCH_ANTENNAPORTS_IDX].iptr);
         NRRRC_CONFIGURATION_REQ (msg_p).pusch_AntennaPorts = *GNBParamList.paramarray[i][GNB_PUSCH_ANTENNAPORTS_IDX].iptr;
         LOG_I(GNB_APP,"minTXRXTIME %d\n",*GNBParamList.paramarray[i][GNB_MINRXTXTIME_IDX].iptr);
         NRRRC_CONFIGURATION_REQ (msg_p).minRXTXTIME = *GNBParamList.paramarray[i][GNB_MINRXTXTIME_IDX].iptr;
-        LOG_I(RRC,"SIB1 TDA %d\n",*GNBParamList.paramarray[i][GNB_SIB1_TDA_IDX].iptr);
+        LOG_I(GNB_APP,"SIB1 TDA %d\n",*GNBParamList.paramarray[i][GNB_SIB1_TDA_IDX].iptr);
         NRRRC_CONFIGURATION_REQ (msg_p).sib1_tda = *GNBParamList.paramarray[i][GNB_SIB1_TDA_IDX].iptr;
         LOG_I(GNB_APP,"Do CSI-RS %d\n",*GNBParamList.paramarray[i][GNB_DO_CSIRS_IDX].iptr);
         NRRRC_CONFIGURATION_REQ (msg_p).do_CSIRS = *GNBParamList.paramarray[i][GNB_DO_CSIRS_IDX].iptr;
-        LOG_I(RRC, "Do SRS %d\n",*GNBParamList.paramarray[i][GNB_DO_SRS_IDX].iptr);
+        LOG_I(GNB_APP, "Do SRS %d\n",*GNBParamList.paramarray[i][GNB_DO_SRS_IDX].iptr);
         NRRRC_CONFIGURATION_REQ (msg_p).do_SRS = *GNBParamList.paramarray[i][GNB_DO_SRS_IDX].iptr;
         NRRRC_CONFIGURATION_REQ (msg_p).force_256qam_off = *GNBParamList.paramarray[i][GNB_FORCE256QAMOFF_IDX].iptr;
-        LOG_I(RRC, "256 QAM: %s\n", NRRRC_CONFIGURATION_REQ (msg_p).force_256qam_off ? "force off" : "may be on");
+        LOG_I(GNB_APP, "256 QAM: %s\n", NRRRC_CONFIGURATION_REQ (msg_p).force_256qam_off ? "force off" : "may be on");
         NRRRC_CONFIGURATION_REQ (msg_p).scc = scc;
         NRRRC_CONFIGURATION_REQ (msg_p).scd = scd;
-	    NRRRC_CONFIGURATION_REQ (msg_p).enable_sdap = *GNBParamList.paramarray[i][GNB_ENABLE_SDAP_IDX].iptr;
+        NRRRC_CONFIGURATION_REQ (msg_p).enable_sdap = *GNBParamList.paramarray[i][GNB_ENABLE_SDAP_IDX].iptr;
         LOG_I(GNB_APP, "SDAP layer is %s\n", NRRRC_CONFIGURATION_REQ (msg_p).enable_sdap ? "enabled" : "disabled");
-        
+
       }//
     }//End for (k=0; k <num_gnbs ; k++)
     memcpy(&rrc->configuration, &NRRRC_CONFIGURATION_REQ(msg_p), sizeof(NRRRC_CONFIGURATION_REQ(msg_p)));
@@ -1991,9 +2061,38 @@ int RCconfig_NR_DU_F1(MessageDef *msg_p, uint32_t i) {
         f1Setup->measurement_timing_information[k]             = "0";
         f1Setup->ranac[k]                                      = 0;
         f1Setup->mib[k]                                        = rrc->carrier.MIB;
-        f1Setup->sib1[k]                                       = rrc->carrier.SIB1;
         f1Setup->mib_length[k]                                 = rrc->carrier.sizeof_MIB;
-        f1Setup->sib1_length[k]                                = rrc->carrier.sizeof_SIB1;
+
+        NR_BCCH_DL_SCH_Message_t *bcch_message = NULL;
+
+        asn_dec_rval_t dec_rval = uper_decode_complete( NULL,
+            &asn_DEF_NR_BCCH_DL_SCH_Message,
+            (void **)&bcch_message,
+            (const void *)rrc->carrier.SIB1,
+            rrc->carrier.sizeof_SIB1);
+
+        if ((dec_rval.code != RC_OK) && (dec_rval.consumed == 0)) {
+          LOG_E(RRC,"SIB1 decode error\n");
+          // free the memory
+          SEQUENCE_free( &asn_DEF_NR_BCCH_DL_SCH_Message, bcch_message, 1 );
+          exit(1);
+        }
+       
+        NR_SIB1_t *bcch_SIB1 = bcch_message->message.choice.c1->choice.systemInformationBlockType1;
+        f1Setup->sib1[k] = calloc(1,rrc->carrier.sizeof_SIB1);
+        asn_enc_rval_t enc_rval = uper_encode_to_buffer(&asn_DEF_NR_SIB1,
+            NULL,
+            (void *)bcch_SIB1,
+            f1Setup->sib1[k],
+            NR_MAX_SIB_LENGTH/8);
+        AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n",
+            enc_rval.failed_type->name, enc_rval.encoded);
+
+        //if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) {
+          LOG_I(NR_RRC, "SIB1 container to be integrated in F1 Setup request:\n");
+          xer_fprint(stdout, &asn_DEF_NR_SIB1,(void *)bcch_message->message.choice.c1->choice.systemInformationBlockType1 );
+        //}
+        f1Setup->sib1_length[k]                                = (enc_rval.encoded+7)/8;
         break;
       }
     }
@@ -2155,7 +2254,6 @@ void configure_gnb_du_mac(int inst) {
   // LOG_I(GNB_APP,"Configuring MAC/L1 %d, carrier->sib2 %p\n", inst, &carrier->sib2->radioResourceConfigCommon);
   LOG_I(GNB_APP,"Configuring gNB DU MAC/L1 %d \n", inst);
   rrc_mac_config_req_gNB(rrc->module_id,
-                        rrc->configuration.ssb_SubcarrierOffset,
                         rrc->configuration.pdsch_AntennaPorts,
                         rrc->configuration.pusch_AntennaPorts,
                         rrc->configuration.sib1_tda,
diff --git a/openair2/GNB_APP/gnb_paramdef.h b/openair2/GNB_APP/gnb_paramdef.h
index 4f6c9e1a68d..ef28dea80fd 100644
--- a/openair2/GNB_APP/gnb_paramdef.h
+++ b/openair2/GNB_APP/gnb_paramdef.h
@@ -113,7 +113,6 @@ typedef enum {
 #define GNB_CONFIG_STRING_REMOTE_S_PORTC                "remote_s_portc"
 #define GNB_CONFIG_STRING_LOCAL_S_PORTD                 "local_s_portd"
 #define GNB_CONFIG_STRING_REMOTE_S_PORTD                "remote_s_portd"
-#define GNB_CONFIG_STRING_SSBSUBCARRIEROFFSET           "ssb_SubcarrierOffset"
 #define GNB_CONFIG_STRING_PDSCHANTENNAPORTS_N1          "pdsch_AntennaPorts_N1"
 #define GNB_CONFIG_STRING_PDSCHANTENNAPORTS_N2          "pdsch_AntennaPorts_N2"
 #define GNB_CONFIG_STRING_PDSCHANTENNAPORTS_XP          "pdsch_AntennaPorts_XP"
@@ -149,7 +148,6 @@ typedef enum {
 {GNB_CONFIG_STRING_REMOTE_S_PORTC,               NULL,   0,            uptr:NULL,   defuintval:50000,            TYPE_UINT,      0},  \
 {GNB_CONFIG_STRING_LOCAL_S_PORTD,                NULL,   0,            uptr:NULL,   defuintval:50001,            TYPE_UINT,      0},  \
 {GNB_CONFIG_STRING_REMOTE_S_PORTD,               NULL,   0,            uptr:NULL,   defuintval:50001,            TYPE_UINT,      0},  \
-{GNB_CONFIG_STRING_SSBSUBCARRIEROFFSET,          NULL,   0,            iptr:NULL,   defintval:31,                TYPE_INT,       0},  \
 {GNB_CONFIG_STRING_PDSCHANTENNAPORTS_N1, "horiz. log. antenna ports", 0, iptr:NULL, defintval:1,                 TYPE_INT,       0},  \
 {GNB_CONFIG_STRING_PDSCHANTENNAPORTS_N2, "vert. log. antenna ports", 0, iptr:NULL,  defintval:1,                 TYPE_INT,       0},  \
 {GNB_CONFIG_STRING_PDSCHANTENNAPORTS_XP, "XP log. antenna ports",   0, iptr:NULL,   defintval:1,                 TYPE_INT,       0},  \
@@ -160,9 +158,9 @@ typedef enum {
 {GNB_CONFIG_STRING_NRCELLID,                     NULL,   0,            u64ptr:NULL, defint64val:1,               TYPE_UINT64,    0},  \
 {GNB_CONFIG_STRING_MINRXTXTIME,                  NULL,   0,            iptr:NULL,   defintval:2,                 TYPE_INT,       0},  \
 {GNB_CONFIG_STRING_ULPRBBLACKLIST,               NULL,   0,            strptr:NULL, defstrval:"",                TYPE_STRING,    0},  \
-{GNB_CONFIG_STRING_UMONDEFAULTDRB,               NULL,   0,            uptr:NULL,   defuintval:0,                 TYPE_UINT,   0},   \
+{GNB_CONFIG_STRING_UMONDEFAULTDRB,               NULL,   0,            uptr:NULL,   defuintval:0,                TYPE_UINT,      0},  \
 {GNB_CONFIG_STRING_FORCE256QAMOFF, GNB_CONFIG_HLP_FORCE256QAMOFF, PARAMFLAG_BOOL, iptr:NULL, defintval:0,        TYPE_INT,       0},  \
-{GNB_CONFIG_STRING_ENABLE_SDAP, GNB_CONFIG_HLP_STRING_ENABLE_SDAP, PARAMFLAG_BOOL, iptr:NULL, defintval:0,       TYPE_INT,       0}  \
+{GNB_CONFIG_STRING_ENABLE_SDAP, GNB_CONFIG_HLP_STRING_ENABLE_SDAP, PARAMFLAG_BOOL, iptr:NULL, defintval:0,       TYPE_INT,       0},  \
 }
 
 #define GNB_GNB_ID_IDX                  0
@@ -179,20 +177,19 @@ typedef enum {
 #define GNB_REMOTE_S_PORTC_IDX          11
 #define GNB_LOCAL_S_PORTD_IDX           12
 #define GNB_REMOTE_S_PORTD_IDX          13
-#define GNB_SSB_SUBCARRIEROFFSET_IDX    14
-#define GNB_PDSCH_ANTENNAPORTS_N1_IDX   15
-#define GNB_PDSCH_ANTENNAPORTS_N2_IDX   16
-#define GNB_PDSCH_ANTENNAPORTS_XP_IDX   17
-#define GNB_PUSCH_ANTENNAPORTS_IDX      18
-#define GNB_SIB1_TDA_IDX                19
-#define GNB_DO_CSIRS_IDX                20
-#define GNB_DO_SRS_IDX                  21
-#define GNB_NRCELLID_IDX                22
-#define GNB_MINRXTXTIME_IDX             23
-#define GNB_ULPRBBLACKLIST_IDX          24
-#define GNB_UMONDEFAULTDRB_IDX          25
-#define GNB_FORCE256QAMOFF_IDX          26
-#define GNB_ENABLE_SDAP_IDX             27
+#define GNB_PDSCH_ANTENNAPORTS_N1_IDX   14
+#define GNB_PDSCH_ANTENNAPORTS_N2_IDX   15
+#define GNB_PDSCH_ANTENNAPORTS_XP_IDX   16
+#define GNB_PUSCH_ANTENNAPORTS_IDX      17
+#define GNB_SIB1_TDA_IDX                18
+#define GNB_DO_CSIRS_IDX                19
+#define GNB_DO_SRS_IDX                  20
+#define GNB_NRCELLID_IDX                21
+#define GNB_MINRXTXTIME_IDX             22
+#define GNB_ULPRBBLACKLIST_IDX          23
+#define GNB_UMONDEFAULTDRB_IDX          24
+#define GNB_FORCE256QAMOFF_IDX          25
+#define GNB_ENABLE_SDAP_IDX             26
 
 #define TRACKING_AREA_CODE_OKRANGE {0x0001,0xFFFD}
 #define GNBPARAMS_CHECK {                                         \
diff --git a/openair2/LAYER2/MAC/config.c b/openair2/LAYER2/MAC/config.c
index d22485d23f2..52a9048cd07 100644
--- a/openair2/LAYER2/MAC/config.c
+++ b/openair2/LAYER2/MAC/config.c
@@ -1104,7 +1104,7 @@ void eNB_Config_Local_DRX(instance_t Mod_id,
 
   /* Get struct to modify */
   UE_scheduling_control = &(UE_info_mac->UE_sched_ctrl[UE_id]);
-  UE_scheduling_control->cdrx_configured = FALSE; // will be set to true when no error
+  UE_scheduling_control->cdrx_configured = false; // will be set to true when no error
 
   /* Check drx_Configuration */
   if (drx_Configuration == NULL) {
@@ -1119,9 +1119,9 @@ void eNB_Config_Local_DRX(instance_t Mod_id,
   }
 
   /* Modify scheduling control structure according to DRX configuration: doesn't support every configurations! */  
-  UE_scheduling_control->cdrx_configured = FALSE; // will be set to true when receiving RRC Reconfiguration Complete
-  UE_scheduling_control->cdrx_waiting_ack = TRUE; // waiting for RRC Reconfiguration Complete message
-  UE_scheduling_control->in_active_time = FALSE;
+  UE_scheduling_control->cdrx_configured = false; // will be set to true when receiving RRC Reconfiguration Complete
+  UE_scheduling_control->cdrx_waiting_ack = true; // waiting for RRC Reconfiguration Complete message
+  UE_scheduling_control->in_active_time = false;
   UE_scheduling_control->dci0_ongoing_timer = 0;
   UE_scheduling_control->on_duration_timer = 0;
   struct LTE_DRX_Config__setup *choiceSetup = &drx_Configuration->choice.setup;
@@ -1297,13 +1297,13 @@ void eNB_Config_Local_DRX(instance_t Mod_id,
   }
 
   if (choiceSetup->shortDRX == NULL) {
-    UE_scheduling_control->in_short_drx_cycle = FALSE;
+    UE_scheduling_control->in_short_drx_cycle = false;
     UE_scheduling_control->drx_shortCycle_timer_value = 0;
     UE_scheduling_control->short_drx_cycle_duration = 0;
     UE_scheduling_control->drx_shortCycle_timer = 0;
     UE_scheduling_control->drx_shortCycle_timer_thres = -1;
   } else {
-    UE_scheduling_control->in_short_drx_cycle = FALSE;
+    UE_scheduling_control->in_short_drx_cycle = false;
     UE_scheduling_control->drx_shortCycle_timer_value = (uint8_t) choiceSetup->shortDRX->drxShortCycleTimer;
 
     switch (choiceSetup->shortDRX->shortDRX_Cycle) {
@@ -1380,7 +1380,7 @@ void eNB_Config_Local_DRX(instance_t Mod_id,
     UE_scheduling_control->drx_shortCycle_timer_thres = UE_scheduling_control->drx_shortCycle_timer_value * UE_scheduling_control->short_drx_cycle_duration;
   }
 
-  UE_scheduling_control->in_long_drx_cycle = FALSE;
+  UE_scheduling_control->in_long_drx_cycle = false;
   UE_scheduling_control->drx_longCycle_timer = 0;
 
   switch (choiceSetup->longDRX_CycleStartOffset.present) {
diff --git a/openair2/LAYER2/MAC/defs_NB_IoT.h b/openair2/LAYER2/MAC/defs_NB_IoT.h
index d4945f0182d..abe780741c0 100644
--- a/openair2/LAYER2/MAC/defs_NB_IoT.h
+++ b/openair2/LAYER2/MAC/defs_NB_IoT.h
@@ -243,7 +243,6 @@ typedef struct {
   // -1:No UE in list
   int tail;
   int num_UEs;
-  //boolean_t active[MAX_MAX_MOBILES_PER_ENB_NB_IoT];
 
 } UE_list_NB_IoT_t;
 
@@ -403,7 +402,7 @@ typedef struct schedule_result{
   // pointer to DCI
   void *DCI_pdu;
   // when all the procedure related to this DCI, enable this flag
-  boolean_t DCI_release;
+  bool DCI_release;
   // Indicate the channel which to transmit
   channel_NB_IoT_t channel;
   // rnti
@@ -452,7 +451,7 @@ typedef enum ce_level_e{
 /*! \brief eNB template for the Random access information */
 typedef struct RA_TEMPLATE_NB_IoT_s{
 
-  boolean_t active;
+  bool active;
   uint32_t msg3_retransmit_count;
   uint32_t msg4_retransmit_count;
   uint16_t ta;
@@ -461,8 +460,8 @@ typedef struct RA_TEMPLATE_NB_IoT_s{
   rnti_t ue_rnti;
   rnti_t ra_rnti;
   struct RA_TEMPLATE_NB_IoT_s *next, *prev;
-  boolean_t wait_msg4_ack;
-  boolean_t wait_msg3_ack;
+  bool wait_msg4_ack;
+  bool wait_msg3_ack;
   uint8_t rar_buffer[7];
 
 } RA_TEMPLATE_NB_IoT;
@@ -530,7 +529,7 @@ typedef  struct {
   uint32_t       pdus_in_buffer;  /*!< \brief Number of PDUs buffered in RLC protocol instance (OBSOLETE). */
   uint32_t       head_sdu_creation_time;           /*!< \brief Head SDU creation time. */
   uint32_t       head_sdu_remaining_size_to_send;  /*!< \brief remaining size of sdu: could be the total size or the remaining size of already segmented sdu */
-  boolean_t      head_sdu_is_segmented;     /*!< \brief 0 if head SDU has not been segmented, 1 if already segmented */
+  bool           head_sdu_is_segmented;     /*!< \brief 0 if head SDU has not been segmented, 1 if already segmented */
 } mac_rlc_status_resp_NB_IoT_t;
 
 // global variables
diff --git a/openair2/LAYER2/MAC/eNB_scheduler.c b/openair2/LAYER2/MAC/eNB_scheduler.c
index d647eff7cbe..53ab98a33fb 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler.c
@@ -135,7 +135,7 @@ void schedule_SRS(module_id_t module_idP,
           UE_scheduling_control = &(UE_info->UE_sched_ctrl[UE_id]);
 
           /* Test if Active Time not running since 6+ subframes */
-          if (UE_scheduling_control->cdrx_configured == TRUE && UE_scheduling_control->in_active_time == FALSE) {
+          if (UE_scheduling_control->cdrx_configured == true && UE_scheduling_control->in_active_time == false) {
             /*
              * TODO: 6+ subframes condition not checked here
              */
@@ -204,7 +204,7 @@ void schedule_CSI(module_id_t module_idP,
     cc = &eNB->common_channels[CC_id];
 
     for (UE_id = 0; UE_id < MAX_MOBILES_PER_ENB; UE_id++) {
-      if (UE_info->active[UE_id] == FALSE) {
+      if (UE_info->active[UE_id] == false) {
         continue;
       }
 
@@ -223,9 +223,9 @@ void schedule_CSI(module_id_t module_idP,
       */
       UE_scheduling_control = &(UE_info->UE_sched_ctrl[UE_id]);
 
-      if (UE_scheduling_control->cdrx_configured == TRUE) {
+      if (UE_scheduling_control->cdrx_configured == true) {
         /* Test if CQI masking activated */
-        if (UE_scheduling_control->cqi_mask_boolean == TRUE) {
+        if (UE_scheduling_control->cqi_mask_boolean == true) {
           // CQI masking => test if onDurationTime not running since 6+ subframe
           if (UE_scheduling_control->on_duration_timer == 0) {
             /*
@@ -234,7 +234,7 @@ void schedule_CSI(module_id_t module_idP,
             continue;
           }
         } else { // No CQI masking => test if Active Time not running since 6+ subframe
-          if (UE_scheduling_control->in_active_time == FALSE) {
+          if (UE_scheduling_control->in_active_time == false) {
             /*
              * TODO: 6+ subframes condition not checked here
              */
@@ -677,8 +677,8 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP,
       }
 
       /* Set and increment CDRX related timers */
-      if (UE_scheduling_control->cdrx_configured == TRUE) {
-        boolean_t harq_active_time_condition = FALSE;
+      if (UE_scheduling_control->cdrx_configured == true) {
+        bool harq_active_time_condition = false;
         UE_TEMPLATE *UE_template = NULL;
         unsigned long active_time_condition = 0; // variable used only for tracing purpose
 
@@ -721,7 +721,7 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP,
             UE_scheduling_control->ul_synchronous_harq_timer[CC_id][harq_process_id]++;
 
             if (UE_scheduling_control->ul_synchronous_harq_timer[CC_id][harq_process_id] > 5) {
-              harq_active_time_condition = TRUE;
+              harq_active_time_condition = true;
               UE_scheduling_control->ul_synchronous_harq_timer[CC_id][harq_process_id] = 0;
               active_time_condition = 5; // for tracing purpose
             }
@@ -747,24 +747,24 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP,
 
             /* When timer expires switch into short or long DRX cycle */
             if (UE_scheduling_control->drx_shortCycle_timer_thres > 0) {
-              UE_scheduling_control->in_short_drx_cycle = TRUE;
+              UE_scheduling_control->in_short_drx_cycle = true;
               UE_scheduling_control->drx_shortCycle_timer = 0;
-              UE_scheduling_control->in_long_drx_cycle = FALSE;
+              UE_scheduling_control->in_long_drx_cycle = false;
             } else {
-              UE_scheduling_control->in_long_drx_cycle = TRUE;
+              UE_scheduling_control->in_long_drx_cycle = true;
             }
           }
         }
 
         /* Short DRX Cycle */
-        if (UE_scheduling_control->in_short_drx_cycle == TRUE) {
+        if (UE_scheduling_control->in_short_drx_cycle == true) {
           UE_scheduling_control->drx_shortCycle_timer++;
 
           /* When the Short DRX cycles are over, switch to long DRX cycle */
           if (UE_scheduling_control->drx_shortCycle_timer > UE_scheduling_control->drx_shortCycle_timer_thres) {
             UE_scheduling_control->drx_shortCycle_timer = 0;
-            UE_scheduling_control->in_short_drx_cycle = FALSE;
-            UE_scheduling_control->in_long_drx_cycle = TRUE;
+            UE_scheduling_control->in_short_drx_cycle = false;
+            UE_scheduling_control->in_long_drx_cycle = true;
             UE_scheduling_control->drx_longCycle_timer = 0;
           }
         } else {
@@ -772,7 +772,7 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP,
         }
 
         /* Long DRX Cycle */
-        if (UE_scheduling_control->in_long_drx_cycle == TRUE) {
+        if (UE_scheduling_control->in_long_drx_cycle == true) {
           UE_scheduling_control->drx_longCycle_timer++;
 
           if (UE_scheduling_control->drx_longCycle_timer > UE_scheduling_control->drx_longCycle_timer_thres) {
@@ -783,18 +783,18 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP,
         }
 
         /* Check for error cases */
-        if ((UE_scheduling_control->in_short_drx_cycle == TRUE) && (UE_scheduling_control->in_long_drx_cycle == TRUE)) {
+        if ((UE_scheduling_control->in_short_drx_cycle == true) && (UE_scheduling_control->in_long_drx_cycle == true)) {
           LOG_E(MAC, "Error in C-DRX: UE id %d is in both short and long DRX cycle. Should not happen. Back it to long cycle only\n", UE_id);
-          UE_scheduling_control->in_short_drx_cycle = FALSE;
+          UE_scheduling_control->in_short_drx_cycle = false;
         }
 
         /* Condition to start On Duration Timer */
-        if (UE_scheduling_control->in_short_drx_cycle == TRUE && UE_scheduling_control->on_duration_timer == 0) {
+        if (UE_scheduling_control->in_short_drx_cycle == true && UE_scheduling_control->on_duration_timer == 0) {
           if (((frameP * 10) + subframeP) % (UE_scheduling_control->short_drx_cycle_duration) ==
               (UE_scheduling_control->drx_start_offset) % (UE_scheduling_control->short_drx_cycle_duration)) {
             UE_scheduling_control->on_duration_timer = 1;
           }
-        } else if (UE_scheduling_control->in_long_drx_cycle == TRUE && UE_scheduling_control->on_duration_timer == 0) {
+        } else if (UE_scheduling_control->in_long_drx_cycle == true && UE_scheduling_control->on_duration_timer == 0) {
           if (((frameP * 10) + subframeP) % (UE_scheduling_control->drx_longCycle_timer_thres) ==
               (UE_scheduling_control->drx_start_offset)) {
             UE_scheduling_control->on_duration_timer = 1;
@@ -811,7 +811,7 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP,
         /* (a)synchronous HARQ processes handling for Active Time */
         for (int harq_process_id = 0; harq_process_id < 8; harq_process_id++) {
           if (UE_scheduling_control->drx_retransmission_timer[harq_process_id] > 0) {
-            harq_active_time_condition = TRUE;
+            harq_active_time_condition = true;
             active_time_condition = 2; // for tracing purpose
             break;
           }
@@ -822,9 +822,9 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP,
             UE_scheduling_control->drx_inactivity_timer > 1 ||
             harq_active_time_condition ||
             UE_template->ul_SR > 0) {
-          UE_scheduling_control->in_active_time = TRUE;
+          UE_scheduling_control->in_active_time = true;
         } else {
-          UE_scheduling_control->in_active_time = FALSE;
+          UE_scheduling_control->in_active_time = false;
         }
 
         /* BEGIN VCD */
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c
index e5b95a7f470..c659df8d31a 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c
@@ -1225,7 +1225,7 @@ check_Msg4_retransmission(module_id_t module_idP, int CC_idP,
     LOG_D(MAC,"[eNB %d][RAPROC] Frame %d, Subframe %d: state:IDLE\n", module_idP, frameP, subframeP);
     UE_id = find_UE_id(module_idP, ra->rnti);
     DevAssert(UE_id != -1);
-    mac->UE_info.UE_template[UE_PCCID(module_idP, UE_id)][UE_id].configured = TRUE;
+    mac->UE_info.UE_template[UE_PCCID(module_idP, UE_id)][UE_id].configured = true;
     mac->UE_info.UE_template[UE_PCCID(module_idP, UE_id)][UE_id].pusch_repetition_levels=ra->pusch_repetition_levels;
     cancel_ra_proc(module_idP, CC_idP, frameP, ra->rnti);
   }
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
index 596d978a989..08986221154 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
@@ -2075,7 +2075,7 @@ schedule_PCH(module_id_t module_idP,
     for (uint16_t i = 0; i < MAX_MOBILES_PER_ENB; i++) {
       ue_pf_po = &UE_PF_PO[CC_id][i];
 
-      if (ue_pf_po->enable_flag != TRUE) {
+      if (ue_pf_po->enable_flag != true) {
         continue;
       }
 
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c b/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
index 6c9ffabd4f7..9836b643d41 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
@@ -69,7 +69,7 @@ int last_ulsch_ue_id_volte[MAX_NUM_CCs] = {-1};
   uint16_t pre_nb_rbs_required[2][MAX_NUM_CCs][NUMBER_OF_UE_MAX];
   uint8_t dlsch_ue_select_tbl_in_use;
   uint8_t new_dlsch_ue_select_tbl_in_use;
-  boolean_t pre_scd_activeUE[NUMBER_OF_UE_MAX];
+  bool pre_scd_activeUE[NUMBER_OF_UE_MAX];
   eNB_UE_STATS pre_scd_eNB_UE_stats[MAX_NUM_CCs][NUMBER_OF_UE_MAX];
 #endif
 
@@ -125,7 +125,7 @@ void pre_scd_nb_rbs_required(    module_id_t     module_idP,
   UE_info_t *UE_info = &RC.mac[module_idP]->UE_info;
 
   for (UE_id = 0; UE_id <NUMBER_OF_UE_MAX; UE_id++) {
-    if (pre_scd_activeUE[UE_id] != TRUE)
+    if (pre_scd_activeUE[UE_id] != true)
       continue;
 
     // store dlsch buffer
@@ -210,7 +210,7 @@ void dlsch_scheduler_pre_ue_select_fairRR(
     DL_req          = &eNB->DL_req[CC_id].dl_config_request_body;
 
     for (UE_id = 0; UE_id < NUMBER_OF_UE_MAX; UE_id++) {
-      if (UE_info->active[UE_id] == FALSE) {
+      if (UE_info->active[UE_id] == false) {
         continue;
       }
 
@@ -331,7 +331,7 @@ void dlsch_scheduler_pre_ue_select_fairRR(
         break;
       }
 
-      if (UE_info->active[UE_id] == FALSE) {
+      if (UE_info->active[UE_id] == false) {
         continue;
       }
 
@@ -459,7 +459,7 @@ void dlsch_scheduler_pre_ue_select_fairRR(
         break;
       }
 
-      if (UE_info->active[UE_id] == FALSE) {
+      if (UE_info->active[UE_id] == false) {
         continue;
       }
 
@@ -607,7 +607,7 @@ static void dlsch_scheduler_pre_processor_reset_fairRR(
       if (rnti == NOT_A_RNTI)
         continue;
 
-      if (UE_info->active[UE_id] != TRUE)
+      if (UE_info->active[UE_id] != true)
         continue;
 
       LOG_D(MAC, "Running preprocessor for UE %d (%x)\n", UE_id, rnti);
@@ -755,7 +755,7 @@ static void assign_rbs_required_fairRR(
 
   // clear rb allocations across all CC_id
   for (UE_id = 0; UE_id < MAX_MOBILES_PER_ENB; UE_id++) {
-    if (UE_info->active[UE_id] != TRUE)
+    if (UE_info->active[UE_id] != true)
       continue;
 
     pCCid = UE_PCCID(Mod_id, UE_id);
@@ -945,7 +945,7 @@ void dlsch_scheduler_pre_processor_fairRR (module_id_t   Mod_id,
     min_rb_unit[CC_id] = get_min_rb_unit(Mod_id, CC_id);
 
     for (i = 0; i < NUMBER_OF_UE_MAX; i++) {
-      if (UE_info->active[i] != TRUE)
+      if (UE_info->active[i] != true)
         continue;
 
       UE_id = i;
@@ -2241,7 +2241,7 @@ void ulsch_scheduler_pre_ue_select_fairRR(
 
   // UE round >0
   for ( UE_id = 0; UE_id < NUMBER_OF_UE_MAX; UE_id++ ) {
-    if (UE_info->active[UE_id] == FALSE)
+    if (UE_info->active[UE_id] == false)
       continue;
 
     rnti = UE_RNTI(module_idP,UE_id);
@@ -2251,7 +2251,7 @@ void ulsch_scheduler_pre_ue_select_fairRR(
 
     CC_id = UE_PCCID(module_idP,UE_id);
 
-    if (UE_info->UE_template[CC_id][UE_id].configured == FALSE)
+    if (UE_info->UE_template[CC_id][UE_id].configured == false)
       continue;
 
     if (UE_info->UE_sched_ctrl[UE_id].ul_failure_timer > 0
@@ -2401,7 +2401,7 @@ void ulsch_scheduler_pre_ue_select_fairRR(
   }
 
   for ( UE_id = 0; UE_id < NUMBER_OF_UE_MAX; UE_id++ ) {
-    if (UE_info->active[UE_id] == FALSE)
+    if (UE_info->active[UE_id] == false)
       continue;
 
     rnti = UE_RNTI(module_idP,UE_id);
@@ -2414,7 +2414,7 @@ void ulsch_scheduler_pre_ue_select_fairRR(
     if (UE_id > last_ulsch_ue_id[CC_id])
       continue;
 
-    if (UE_info->UE_template[CC_id][UE_id].configured == FALSE)
+    if (UE_info->UE_template[CC_id][UE_id].configured == false)
       continue;
 
     if (UE_info->UE_sched_ctrl[UE_id].ul_failure_timer > 0
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c
index d53e0cadd3f..58abbd7a478 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c
@@ -1989,7 +1989,7 @@ find_UE_id(module_id_t mod_idP,
     return -1;
 
   for (UE_id = 0; UE_id < MAX_MOBILES_PER_ENB; UE_id++) {
-    if (UE_info->active[UE_id] == TRUE) {
+    if (UE_info->active[UE_id] == true) {
       int CC_id = UE_PCCID(mod_idP, UE_id);
       if (CC_id>=0 && CC_id<NFAPI_CC_MAX && UE_info->UE_template[CC_id][UE_id].rnti == rntiP) {
         return UE_id;
@@ -2063,7 +2063,7 @@ UE_RNTI(module_id_t mod_idP,
 }
 
 //------------------------------------------------------------------------------
-boolean_t
+bool
 is_UE_active(module_id_t mod_idP,
              int ue_idP)
 //------------------------------------------------------------------------------
@@ -2187,20 +2187,20 @@ add_new_ue(module_id_t mod_idP,
         UE_info->num_UEs);
 
   for (i = 0; i < MAX_MOBILES_PER_ENB; i++) {
-    if (UE_info->active[i] == TRUE)
+    if (UE_info->active[i] == true)
       continue;
 
     UE_id = i;
     memset(&UE_info->UE_template[cc_idP][UE_id], 0, sizeof(UE_TEMPLATE));
     UE_info->UE_template[cc_idP][UE_id].rnti = rntiP;
-    UE_info->UE_template[cc_idP][UE_id].configured = FALSE;
+    UE_info->UE_template[cc_idP][UE_id].configured = false;
     UE_info->numactiveCCs[UE_id] = 1;
     UE_info->numactiveULCCs[UE_id] = 1;
     UE_info->pCC_id[UE_id] = cc_idP;
     UE_info->ordered_CCids[0][UE_id] = cc_idP;
     UE_info->ordered_ULCCids[0][UE_id] = cc_idP;
     UE_info->num_UEs++;
-    UE_info->active[UE_id] = TRUE;
+    UE_info->active[UE_id] = true;
     add_ue_list(&UE_info->list, UE_id);
     dump_ue_list(&UE_info->list);
     pp_impl_param_t* dl = &RC.mac[mod_idP]->pre_processor_dl;
@@ -2280,7 +2280,7 @@ rrc_mac_remove_ue(module_id_t mod_idP,
         UE_id,
         pCC_id,
         rntiP);
-  UE_info->active[UE_id] = FALSE;
+  UE_info->active[UE_id] = false;
   UE_info->num_UEs--;
 
   remove_ue_list(&UE_info->list, UE_id);
@@ -2366,22 +2366,6 @@ rrc_mac_remove_ue(module_id_t mod_idP,
   return 0;
 }
 
-//------------------------------------------------------------------------------
-/*
- * Returns the previous UE_id in the scheduling list in UL or DL
- */
-inline int prev(UE_list_t *listP, int nodeP) {
-  if (nodeP == listP->head)
-      return -1; /* there is no previous of the head */
-
-  for (int j = listP->head; j >= 0; j = listP->next[j])
-    if (listP->next[j] == nodeP)
-      return j;
-
-  LOG_E(MAC, "%s(): could not find previous to %d in UE_list\n", __func__, nodeP);
-  dump_ue_list(listP);
-  return -1;
-}
 
 // This has to be updated to include BSR information
 //------------------------------------------------------------------------------
@@ -3488,7 +3472,7 @@ has_ul_grant(module_id_t module_idP,
 }
 
 //------------------------------------------------------------------------------
-boolean_t
+bool
 CCE_allocation_infeasible(int module_idP,
                           int CC_idP,
                           int format_flag,
@@ -3501,7 +3485,7 @@ CCE_allocation_infeasible(int module_idP,
   nfapi_dl_config_request_pdu_t *dl_config_pdu = &DL_req->dl_config_pdu_list[DL_req->number_pdu];
   nfapi_hi_dci0_request_body_t *HI_DCI0_req    = &RC.mac[module_idP]->HI_DCI0_req[CC_idP][subframe].hi_dci0_request_body;
   nfapi_hi_dci0_request_pdu_t *hi_dci0_pdu     = &HI_DCI0_req->hi_dci0_pdu_list[HI_DCI0_req->number_of_dci + HI_DCI0_req->number_of_hi];
-  boolean_t res = TRUE;
+  bool res = true;
 
   if (format_flag != 2) { // DL DCI
     if (DL_req->number_pdu == MAX_NUM_DL_PDU) {
@@ -3517,7 +3501,7 @@ CCE_allocation_infeasible(int module_idP,
             subframe, format_flag, rnti, aggregation);
 
       if (allocate_CCEs(module_idP, CC_idP, 0, subframe, 0) != -1)
-        res = FALSE;
+        res = false;
 
       DL_req->number_pdu--;
     }
@@ -3532,7 +3516,7 @@ CCE_allocation_infeasible(int module_idP,
       HI_DCI0_req->number_of_dci++;
 
       if (allocate_CCEs(module_idP, CC_idP, 0, subframe, 0) != -1)
-        res = FALSE;
+        res = false;
 
       HI_DCI0_req->number_of_dci--;
     }
@@ -5029,7 +5013,7 @@ SR_indication(module_id_t mod_idP,
   if (UE_id != -1) {
     UE_scheduling_ctrl = &(UE_info->UE_sched_ctrl[UE_id]);
 
-    if ((UE_scheduling_ctrl->cdrx_configured == TRUE) &&
+    if ((UE_scheduling_ctrl->cdrx_configured == true) &&
         (UE_scheduling_ctrl->dci0_ongoing_timer > 0)  &&
         (UE_scheduling_ctrl->dci0_ongoing_timer < 8)) {
       LOG_D(MAC, "[eNB %d][SR %x] Frame %d subframeP %d Signaling SR for UE %d on CC_id %d.  \
@@ -5052,7 +5036,7 @@ SR_indication(module_id_t mod_idP,
       }
 
       UE_info->UE_template[cc_idP][UE_id].ul_SR = 1;
-      UE_info->UE_template[cc_idP][UE_id].ul_active = TRUE;
+      UE_info->UE_template[cc_idP][UE_id].ul_active = true;
       VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SR_INDICATION, 1);
       VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SR_INDICATION, 0);
     }
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
index d4f486f7616..f9218d85116 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
@@ -242,7 +242,7 @@ rx_sdu(const module_id_t enb_mod_idP,
       }
 
       /* CDRX UL HARQ timers */
-      if (UE_scheduling_control->cdrx_configured == TRUE) {
+      if (UE_scheduling_control->cdrx_configured == true) {
         /* Synchronous UL HARQ */
         UE_scheduling_control->ul_synchronous_harq_timer[CC_idP][harq_pid] = 5;
         /*
@@ -329,17 +329,7 @@ rx_sdu(const module_id_t enb_mod_idP,
       if (ra->msg3_round >= mac->common_channels[CC_idP].radioResourceConfigCommon->rach_ConfigCommon.maxHARQ_Msg3Tx - 1) {
 
         // Release RNTI of LTE PHY when RA does not succeed
-        UE_free_list_t *free_list = NULL;
-        pthread_mutex_lock(&lock_ue_freelist);
-        free_list = &mac->UE_free_list;
-        free_list->UE_free_ctrl[free_list->tail_freelist].rnti = current_rnti;
-        free_list->UE_free_ctrl[free_list->tail_freelist].removeContextFlg = 1;
-        free_list->UE_free_ctrl[free_list->tail_freelist].raFlag = 1;
-        free_list->num_UEs++;
-        mac->UE_release_req.ue_release_request_body.ue_release_request_TLVs_list[mac->UE_release_req.ue_release_request_body.number_of_TLVs].rnti = current_rnti;
-        mac->UE_release_req.ue_release_request_body.number_of_TLVs++;
-        free_list->tail_freelist = (free_list->tail_freelist + 1) % (NUMBER_OF_UE_MAX+1);
-        pthread_mutex_unlock(&lock_ue_freelist);
+	put_UE_in_freelist(enb_mod_idP, current_rnti, true);
 
         cancel_ra_proc(enb_mod_idP, CC_idP, frameP, current_rnti);
         nfapi_hi_dci0_request_t *hi_dci0_req = NULL;
@@ -1003,7 +993,7 @@ rx_sdu(const module_id_t enb_mod_idP,
 
   /* CDRX UL HARQ timers */
   if (UE_id != -1) {
-    if (UE_scheduling_control->cdrx_configured == TRUE) {
+    if (UE_scheduling_control->cdrx_configured == true) {
       /* Synchronous UL HARQ */
       UE_scheduling_control->ul_synchronous_harq_timer[CC_idP][harq_pid] = 5;
       /*
@@ -1447,7 +1437,7 @@ schedule_ulsch_rnti(module_id_t   module_idP,
       continue;
 
     // don't schedule if Msg5 is not received yet
-    if (UE_info->UE_template[CC_id][UE_id].configured == FALSE) {
+    if (UE_info->UE_template[CC_id][UE_id].configured == false) {
       LOG_D(MAC,
             "[eNB %d] frame %d, subframe %d, UE %d: not configured, skipping "
             "UE scheduling \n",
@@ -2033,7 +2023,7 @@ void schedule_ulsch_rnti_emtc(module_id_t   module_idP,
     }
 
     /* Don't schedule if Msg4 is not received yet */
-    if (UE_template->configured == FALSE) {
+    if (UE_template->configured == false) {
       LOG_D(MAC,"[eNB %d] frame %d subframe %d, UE %d: not configured, skipping UE scheduling \n",
             module_idP,
             frameP,
diff --git a/openair2/LAYER2/MAC/mac.h b/openair2/LAYER2/MAC/mac.h
index 6637d05a8af..1fd7182c6f9 100644
--- a/openair2/LAYER2/MAC/mac.h
+++ b/openair2/LAYER2/MAC/mac.h
@@ -811,9 +811,9 @@ typedef struct {
   /// TBS from last UL scheduling
   int TBS_UL[8];
   /// Flag to indicate UL has been scheduled at least once
-  boolean_t ul_active;
+  bool ul_active;
   /// Flag to indicate UE has been configured (ACK from RRCConnectionSetup received)
-  boolean_t configured;
+  bool configured;
 
   /// MCS from last scheduling
   uint8_t mcs[8];
@@ -1026,16 +1026,16 @@ typedef struct {
 
   /* C-DRX related timers */
   /* Note: only valid for FDD and LTE UE when this comment is written (11-01-19)*/
-  /// is TRUE if the cqi mask feature is activated by RRC configuration
-  boolean_t cqi_mask_boolean;
-  /// is TRUE if the following drx parameters are configured for UE
-  boolean_t cdrx_configured;
+  /// is true if the cqi mask feature is activated by RRC configuration
+  bool cqi_mask_boolean;
+  /// is true if the following drx parameters are configured for UE
+  bool cdrx_configured;
   /*
-   * if TRUE, the eNB has configured the CDRX locally, but is waiting for the UE to acknowledge
+   * if true, the eNB has configured the CDRX locally, but is waiting for the UE to acknowledge
    * the activation. This is needed, during the RRC configuration process, when the context is
    * configured on the eNB side, but not yet on the UE side...
    */
-  boolean_t cdrx_waiting_ack;
+  bool cdrx_waiting_ack;
   /*
    * Is set when a ULSCH scheduling is done and run until the first corresponding transmission is done (4 subframes).
    * When set, SR cannot be set for the UE. This allows OAI to avoid concidering a SR as uncompleted if the UE sends
@@ -1043,16 +1043,16 @@ typedef struct {
    * create a lost in timers synchronization.
    */
   uint8_t dci0_ongoing_timer;
-  /// is TRUE if the UE is in "Active Time", hence listening to PDCCH
-  boolean_t in_active_time;
+  /// is true if the UE is in "Active Time", hence listening to PDCCH
+  bool in_active_time;
   /// OnDurationTimer
   uint16_t  on_duration_timer;
   uint16_t  on_duration_timer_thres;
   /// drx-InactivityTimer
   uint16_t  drx_inactivity_timer;
   uint16_t  drx_inactivity_timer_thres;
-  /// is TRUE if UE is currently in short DRX cycle
-  boolean_t in_short_drx_cycle;
+  /// is true if UE is currently in short DRX cycle
+  bool in_short_drx_cycle;
   /// drxShortCycleTimer int (1..16) (number of short DRX cycles duration before long DRX cycles)
   uint8_t  drx_shortCycle_timer_value;
   /// shortDRX-Cycle (duration of one short DRX cycle)
@@ -1060,8 +1060,8 @@ typedef struct {
   /// DRX short cycle timer before switching to long DRX cycle = drx_shortCycle_timer_value * short_drx_cycle_duration
   uint16_t  drx_shortCycle_timer;
   uint16_t  drx_shortCycle_timer_thres;
-  /// is TRUE if UE is currently in long DRX cycle
-  boolean_t in_long_drx_cycle;
+  /// is true if UE is currently in long DRX cycle
+  bool in_long_drx_cycle;
   /// longDRX-CycleStartOffset (long DRX cycle timer)
   uint16_t  drx_longCycle_timer;
   uint16_t  drx_longCycle_timer_thres;
@@ -1183,7 +1183,7 @@ typedef struct {
   UE_sched_ctrl_t UE_sched_ctrl[MAX_MOBILES_PER_ENB];
   UE_list_t list;
   int num_UEs;
-  boolean_t active[MAX_MOBILES_PER_ENB];
+  bool active[MAX_MOBILES_PER_ENB];
 } UE_info_t;
 
 /*! \brief deleting control information*/
@@ -1191,18 +1191,10 @@ typedef struct {
   ///rnti of UE
   rnti_t rnti;
   ///remove UE context flag
-  boolean_t removeContextFlg;
+  bool removeContextFlg;
   ///remove RA flag
-  boolean_t raFlag;
+  bool raFlag;
 } UE_free_ctrl_t;
-/*! \brief REMOVE UE list used by eNB to order UEs/CC for deleting*/
-typedef struct {
-  /// deleting control info
-  UE_free_ctrl_t UE_free_ctrl[NUMBER_OF_UE_MAX+1];
-  int num_UEs;
-  int head_freelist; ///the head position of the delete list
-  int tail_freelist; ///the tail position of the delete list
-} UE_free_list_t;
 
 /**
  * describes contiguous RBs
@@ -1443,7 +1435,7 @@ typedef struct eNB_MAC_INST_s {
   /// processing time of eNB PCH scheduler
   time_stats_t schedule_pch;
 
-  UE_free_list_t UE_free_list;
+  UE_free_ctrl_t UE_free_ctrl[NUMBER_OF_UE_MAX+1];
   /// for scheduling selection
   SCHEDULER_MODES scheduler_mode;
   /// Default scheduler: Pre-processor implementation. Algorithms for UL/DL
diff --git a/openair2/LAYER2/MAC/mac_extern.h b/openair2/LAYER2/MAC/mac_extern.h
index 522dc2721ff..212422898be 100644
--- a/openair2/LAYER2/MAC/mac_extern.h
+++ b/openair2/LAYER2/MAC/mac_extern.h
@@ -71,7 +71,7 @@ extern rb_id_t mbms_rab_id;
 extern uint16_t pre_nb_rbs_required[2][MAX_NUM_CCs][NUMBER_OF_UE_MAX];
 extern uint8_t dlsch_ue_select_tbl_in_use;
 extern uint8_t new_dlsch_ue_select_tbl_in_use;
-extern boolean_t pre_scd_activeUE[NUMBER_OF_UE_MAX];
+extern bool pre_scd_activeUE[NUMBER_OF_UE_MAX];
 extern eNB_UE_STATS pre_scd_eNB_UE_stats[MAX_NUM_CCs][NUMBER_OF_UE_MAX];
 #endif
 
diff --git a/openair2/LAYER2/MAC/mac_proto.h b/openair2/LAYER2/MAC/mac_proto.h
index b92ce85608f..889c727fdd5 100644
--- a/openair2/LAYER2/MAC/mac_proto.h
+++ b/openair2/LAYER2/MAC/mac_proto.h
@@ -400,7 +400,7 @@ int find_RA_id(module_id_t mod_idP, int CC_idP, rnti_t rntiP);
 rnti_t UE_RNTI(module_id_t module_idP, int UE_id);
 int UE_PCCID(module_id_t module_idP, int UE_id);
 uint8_t find_active_UEs(module_id_t module_idP);
-boolean_t is_UE_active(module_id_t module_idP, int UE_id);
+bool is_UE_active(module_id_t module_idP, int UE_id);
 uint8_t get_aggregation(uint8_t bw_index, uint8_t cqi, uint8_t dci_fmt);
 
 int8_t find_active_UEs_with_traffic(module_id_t module_idP);
@@ -416,11 +416,11 @@ int get_nCCE_offset(int *CCE_table,
 
 int allocate_CCEs(int module_idP, int CC_idP, frame_t frameP, sub_frame_t subframeP, int test_only);
 
-boolean_t CCE_allocation_infeasible(int module_idP,
-                                    int CC_idP,
-                                    int common_flag,
-                                    int subframe,
-                                    int aggregation, int rnti);
+bool CCE_allocation_infeasible(int module_idP,
+                               int CC_idP,
+                               int common_flag,
+                               int subframe,
+                               int aggregation, int rnti);
 /* tries to allocate a CCE. If it succeeds, reserves NFAPI DCI and DLSCH config */
 int CCE_try_allocate_dlsch(int module_id,
                            int CC_id,
@@ -741,13 +741,12 @@ BSR_SHORT *get_bsr_short(module_id_t module_idP, uint8_t bsr_len);
 */
 BSR_LONG *get_bsr_long(module_id_t module_idP, uint8_t bsr_len);
 
-/*! \fn  boolean_t update_bsr(module_id_t module_idP, frame_t frameP,sub_frame_t subframeP)
+/*! \fn  bool update_bsr(module_id_t module_idP, frame_t frameP,sub_frame_t subframeP)
    \brief get the rlc stats and update the bsr level for each lcid
 \param[in] Mod_id instance of the UE
 \param[in] frame Frame index
 */
-boolean_t update_bsr(module_id_t module_idP, frame_t frameP,
-                     sub_frame_t subframeP, eNB_index_t eNB_index);
+bool update_bsr(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP, eNB_index_t eNB_index);
 
 /*! \fn  locate_BsrIndexByBufferSize (int *table, int size, int value)
    \brief locate the BSR level in the table as defined in 36.321. This function requires that he values in table to be monotonic, either increasing or decreasing. The returned value is not less than 0, nor greater than n-1, where n is the size of table.
diff --git a/openair2/LAYER2/MAC/pre_processor.c b/openair2/LAYER2/MAC/pre_processor.c
index bb969668d6b..db4d51a92f8 100644
--- a/openair2/LAYER2/MAC/pre_processor.c
+++ b/openair2/LAYER2/MAC/pre_processor.c
@@ -638,7 +638,7 @@ dlsch_scheduler_pre_processor(module_id_t Mod_id,
       LOG_E(MAC, "UE %d has RNTI NOT_A_RNTI!\n", UE_id);
       continue;
     }
-    if (UE_info->active[UE_id] != TRUE) {
+    if (UE_info->active[UE_id] != true) {
       LOG_E(MAC, "UE %d RNTI %x is NOT active!\n", UE_id, rnti);
       continue;
     }
diff --git a/openair2/LAYER2/MAC/ue_procedures.c b/openair2/LAYER2/MAC/ue_procedures.c
index 926c44381cb..d7796d1d404 100644
--- a/openair2/LAYER2/MAC/ue_procedures.c
+++ b/openair2/LAYER2/MAC/ue_procedures.c
@@ -2325,8 +2325,8 @@ ue_get_sdu(module_id_t module_idP, int CC_id, frame_t frameP,
   uint8_t bsr_len = 0, bsr_ce_len = 0, bsr_header_len = 0;
   uint8_t phr_header_len = 0, phr_ce_len = 0, phr_len = 0;
   uint8_t lcid = 0, lcid_rlc_pdu_count = 0;
-  boolean_t is_lcid_processed = FALSE;
-  boolean_t is_all_lcid_processed = FALSE;
+  bool is_lcid_processed = false;
+  bool is_all_lcid_processed = false;
   uint16_t sdu_lengths[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
   uint8_t sdu_lcids[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
   uint8_t payload_offset = 0, num_sdus = 0;
@@ -2444,11 +2444,11 @@ ue_get_sdu(module_id_t module_idP, int CC_id, frame_t frameP,
   // Check for DCCH first
   // TO DO: Multiplex in the order defined by the logical channel prioritization
   for (lcid = DCCH;
-       (lcid < MAX_NUM_LCID) && (is_all_lcid_processed == FALSE); lcid++) {
+       (lcid < MAX_NUM_LCID) && (is_all_lcid_processed == false); lcid++) {
     if (UE_mac_inst[module_idP].scheduling_info.LCID_status[lcid] ==
         LCID_NOT_EMPTY) {
       lcid_rlc_pdu_count = 0;
-      is_lcid_processed = FALSE;
+      is_lcid_processed = false;
       lcid_buffer_occupancy_old =
         mac_rlc_get_buffer_occupancy_ind(module_idP,
                                          UE_mac_inst[module_idP].
@@ -2536,8 +2536,8 @@ ue_get_sdu(module_id_t module_idP, int CC_id, frame_t frameP,
             //No more remaining TBS after this PDU
             //exit the function
             rlc_pdu_header_len_last = 1;
-            is_lcid_processed = TRUE;
-            is_all_lcid_processed = TRUE;
+            is_lcid_processed = true;
+            is_all_lcid_processed = true;
           } else {
             rlc_pdu_header_len_last =
               (sdu_lengths[num_sdus] > 128) ? 3 : 2;
@@ -2547,8 +2547,8 @@ ue_get_sdu(module_id_t module_idP, int CC_id, frame_t frameP,
                 (bsr_len + phr_len + total_rlc_pdu_header_len +
                  rlc_pdu_header_len_last + sdu_length_total)) {
               rlc_pdu_header_len_last = 1;
-              is_lcid_processed = TRUE;
-              is_all_lcid_processed = TRUE;
+              is_lcid_processed = true;
+              is_all_lcid_processed = true;
             }
           }
 
@@ -2559,7 +2559,7 @@ ue_get_sdu(module_id_t module_idP, int CC_id, frame_t frameP,
           lcid_rlc_pdu_count++;
         } else {
           /* avoid infinite loop ... */
-          is_lcid_processed = TRUE;
+          is_lcid_processed = true;
         }
 
         /* Get updated BO after multiplexing this PDU */
@@ -3164,7 +3164,7 @@ ue_scheduler(const module_id_t module_idP,
   }
 
   //Check whether Regular BSR is triggered
-  if (update_bsr(module_idP, txFrameP, txSubframeP, eNB_indexP) == TRUE) {
+  if (update_bsr(module_idP, txFrameP, txSubframeP, eNB_indexP) == true) {
     // call SR procedure to generate pending SR and BSR for next PUCCH/PUSCH TxOp.  This should implement the procedures
     // outlined in Sections 5.4.4 an 5.4.5 of 36.321
     UE_mac_inst[module_idP].scheduling_info.SR_pending = 1;
@@ -3251,11 +3251,11 @@ ue_scheduler(const module_id_t module_idP,
 // to be improved
 
 
-boolean_t
+bool
 update_bsr(module_id_t module_idP, frame_t frameP,
            sub_frame_t subframeP, eNB_index_t eNB_index) {
   mac_rlc_status_resp_t rlc_status;
-  boolean_t bsr_regular_triggered = FALSE;
+  bool bsr_regular_triggered = false;
   uint8_t lcid;
   uint8_t lcgid;
   uint8_t num_lcid_with_data = 0; // for LCID with data only if LCGID is defined
@@ -3352,7 +3352,7 @@ update_bsr(module_id_t module_idP, frame_t frameP,
           (lcgid_buffer_remain
            [UE_mac_inst[module_idP].scheduling_info.LCGID[lcid]] ==
            0)) {
-        bsr_regular_triggered = TRUE;
+        bsr_regular_triggered = true;
         LOG_D(MAC,
               "[UE %d] PDCCH Tick : MAC BSR Triggered LCID%d LCGID%d data become available at frame %d subframe %d\n",
               module_idP, lcid,
@@ -3364,7 +3364,7 @@ update_bsr(module_id_t module_idP, frame_t frameP,
 
     // Trigger Regular BSR if ReTxBSR Timer has expired and UE has data for transmission
     if (UE_mac_inst[module_idP].scheduling_info.retxBSR_SF == 0) {
-      bsr_regular_triggered = TRUE;
+      bsr_regular_triggered = true;
 
       if ((UE_mac_inst[module_idP].BSR_reporting_active &
            BSR_TRIGGER_REGULAR) == 0) {
diff --git a/openair2/LAYER2/NR_MAC_COMMON/nr_compute_tbs_common.c b/openair2/LAYER2/NR_MAC_COMMON/nr_compute_tbs_common.c
index c33946fa5ac..1acf23197c7 100644
--- a/openair2/LAYER2/NR_MAC_COMMON/nr_compute_tbs_common.c
+++ b/openair2/LAYER2/NR_MAC_COMMON/nr_compute_tbs_common.c
@@ -49,16 +49,15 @@ uint32_t nr_compute_tbs(uint16_t Qm,
   uint16_t nbp_re, nb_re;
   uint32_t nr_tbs=0;
   uint32_t Ninfo, Np_info, C;
-  uint8_t n, scale;
+  uint8_t n;
 
   LOG_D(NR_MAC, "In %s: nb_symb_sch %d, nb_dmrs_prb %d, nb_rb %d, nb_rb_oh %d, tb_scaling %d Nl %d\n", __FUNCTION__, nb_symb_sch, nb_dmrs_prb, nb_rb, nb_rb_oh, tb_scaling, Nl);
 
   nbp_re = NR_NB_SC_PER_RB * nb_symb_sch - nb_dmrs_prb - nb_rb_oh;
   nb_re = min(156, nbp_re) * nb_rb;
-  scale = (R>1024)?11:10;
   // Intermediate number of information bits
-  Ninfo = ((nb_re * R * Qm * Nl)>>scale)>>tb_scaling;
-
+  // R is tabulated as 10 times the actual code rate
+  Ninfo = ((nb_re * R * Qm * Nl / 10)>>10)>>tb_scaling;
 
   if (Ninfo <=3824) {
     n = max(3, floor(log2(Ninfo)) - 6);
@@ -73,7 +72,7 @@ uint32_t nr_compute_tbs(uint16_t Qm,
     n = log2(Ninfo-24)-5;
     Np_info = max(3840, (ROUNDIDIV((Ninfo-24),(1<<n)))<<n);
 
-    if (R <= 256) {
+    if (R <= 2560) {
         C = CEILIDIV((Np_info+24),3816);
         nr_tbs = (C<<3)*CEILIDIV((Np_info+24),(C<<3)) - 24;
     } else {
@@ -92,12 +91,10 @@ uint32_t nr_compute_tbs(uint16_t Qm,
 
 }
 
-
 //tbslbrm calculation according to 5.4.2.1 of 38.212
 uint32_t nr_compute_tbslbrm(uint16_t table,
 			    uint16_t nb_rb,
-		            uint8_t Nl)
-{
+		            uint8_t Nl) {
 
   uint16_t R, nb_re;
   uint16_t nb_rb_lbrm=0;
@@ -122,34 +119,31 @@ uint32_t nr_compute_tbslbrm(uint16_t table,
   Ninfo = (nb_re * R * Qm * Nl)>>10;
 
   if (Ninfo <=3824) {
-    	n = max(3, floor(log2(Ninfo)) - 6);
-        Np_info = max(24, (Ninfo>>n)<<n);
-        for (int i=0; i<INDEX_MAX_TBS_TABLE; i++) {
-        	if (Tbstable_nr[i] >= Np_info){
-        		nr_tbs = Tbstable_nr[i];
-        		break;
-        	}
-        }
+    n = max(3, floor(log2(Ninfo)) - 6);
+    Np_info = max(24, (Ninfo>>n)<<n);
+    for (int i=0; i<INDEX_MAX_TBS_TABLE; i++) {
+      if (Tbstable_nr[i] >= Np_info){
+        nr_tbs = Tbstable_nr[i];
+        break;
+      }
+    }
   }
   else {
-    	n = log2(Ninfo-24)-5;
-        Np_info = max(3840, (ROUNDIDIV((Ninfo-24),(1<<n)))<<n);
-
-        if (R <= 256) { 
-            C = CEILIDIV((Np_info+24),3816);
-            nr_tbs = (C<<3)*CEILIDIV((Np_info+24),(C<<3)) - 24;
-        }
-        else {
-            if (Np_info > 8424){
-                C = CEILIDIV((Np_info+24),8424);
-                nr_tbs = (C<<3)*CEILIDIV((Np_info+24),(C<<3)) - 24;
-            }
-            else {
-            	nr_tbs = ((CEILIDIV((Np_info+24),8))<<3) - 24;
-            }
-
-        }
+    n = log2(Ninfo-24)-5;
+    Np_info = max(3840, (ROUNDIDIV((Ninfo-24),(1<<n)))<<n);
 
+    if (R <= 256) {
+      C = CEILIDIV((Np_info+24),3816);
+      nr_tbs = (C<<3)*CEILIDIV((Np_info+24),(C<<3)) - 24;
+    }
+    else {
+      if (Np_info > 8424){
+        C = CEILIDIV((Np_info+24),8424);
+        nr_tbs = (C<<3)*CEILIDIV((Np_info+24),(C<<3)) - 24;
+      }
+      else
+        nr_tbs = ((CEILIDIV((Np_info+24),8))<<3) - 24;
+    }
   }
   return nr_tbs;
 }
diff --git a/openair2/LAYER2/NR_MAC_COMMON/nr_mac.h b/openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
index 9123afd3248..58e435f3f15 100644
--- a/openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
+++ b/openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
@@ -39,6 +39,7 @@
 #include <stdbool.h>
 
 #include "NR_SubcarrierSpacing.h"
+#include "NR_CSI-ReportConfig.h"
 #include "openair1/SCHED_NR_UE/harq_nr.h"
 
 #define NR_SHORT_BSR_TABLE_SIZE 32
@@ -63,6 +64,7 @@
 #define CCCH_PAYLOAD_SIZE_MAX 512 
 #define RAR_PAYLOAD_SIZE_MAX  128
 #define MAX_BWP_SIZE          275
+#define MAX_CSI_REPORTCONFIG  48
 
 typedef enum frequency_range_e {
   FR1 = 0,
@@ -512,5 +514,37 @@ typedef struct Type0_PDCCH_CSS_config_s {
   bool active;
 } NR_Type0_PDCCH_CSS_config_t;
 
+typedef struct {
+  uint8_t nb_ssbri_cri;
+  uint8_t cri_ssbri_bitlen;
+  uint8_t rsrp_bitlen;
+  uint8_t diff_rsrp_bitlen;
+} L1_RSRP_bitlen_t;
+
+typedef struct{
+  uint8_t ri_restriction;
+  uint8_t cri_bitlen;
+  uint8_t ri_bitlen;
+  uint8_t li_bitlen[8];
+  uint8_t pmi_x1_bitlen[8];
+  uint8_t pmi_x2_bitlen[8];
+  uint8_t cqi_bitlen[8];
+} CSI_Meas_bitlen_t;
+
+typedef struct nr_csi_report {
+  NR_CSI_ReportConfig__reportQuantity_PR reportQuantity_type;
+  long periodicity;
+  uint16_t offset;
+  long ** SSB_Index_list;
+  long ** CSI_Index_list;
+//  uint8_t nb_of_nzp_csi_report;
+  uint8_t nb_of_csi_ssb_report;
+  L1_RSRP_bitlen_t CSI_report_bitlen;
+  CSI_Meas_bitlen_t csi_meas_bitlen;
+  int codebook_mode;
+  int N1;
+  int N2;
+} nr_csi_report_t;
+
 #endif /*__LAYER2_MAC_H__ */
 
diff --git a/openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c b/openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
index 20002431b0a..e2a7efcaa05 100644
--- a/openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
+++ b/openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
@@ -33,6 +33,7 @@
 #include "LAYER2/NR_MAC_gNB/mac_proto.h"
 #include "common/utils/nr/nr_common.h"
 #include <limits.h>
+#include <executables/softmodem-common.h>
 
 #define reserved 0xffff
 
@@ -1685,7 +1686,7 @@ int get_nr_prach_info_from_index(uint8_t index,
         }
         if ( (s_map>>subframe)&0x01 ) {
          *N_RA_slot = table_6_3_3_2_3_prachConfig_Index[index][6]; // Number of RACH slots within a subframe
-          if (mu == 1) {
+          if (mu == 1 && index >= 67) {
             if ( (*N_RA_slot <= 1) && (slot%2 == 0) )
               return 0; // no prach in even slots @ 30kHz for 1 prach per subframe 
           } 
@@ -2094,17 +2095,15 @@ void nr_get_tbs_dl(nfapi_nr_dl_tti_pdsch_pdu *pdsch_pdu,
   uint16_t N_RE_prime = NR_NB_SC_PER_RB*N_sh_symb - N_PRB_DMRS*dmrs_length - N_PRB_oh;
   LOG_D(MAC, "N_RE_prime %d for %d symbols %d DMRS per PRB and %d overhead\n", N_RE_prime, N_sh_symb, N_PRB_DMRS, N_PRB_oh);
 
-  uint16_t R;
   uint32_t TBS=0;
-  uint8_t table_idx, Qm;
 
   /*uint8_t mcs_table = config.pdsch_config.mcs_table.value;
   uint8_t ss_type = params_rel15.search_space_type;
   uint8_t dci_format = params_rel15.dci_format;
   get_table_idx(mcs_table, dci_format, rnti_type, ss_type);*/
-  table_idx = 0;
-  R = nr_get_code_rate_dl(Imcs, table_idx);
-  Qm = nr_get_Qm_dl(Imcs, table_idx);
+  uint8_t table_idx = 0;
+  uint16_t R = nr_get_code_rate_dl(Imcs, table_idx);
+  uint8_t Qm = nr_get_Qm_dl(Imcs, table_idx);
 
   TBS = nr_compute_tbs(Qm,
                        R,
@@ -2125,25 +2124,25 @@ void nr_get_tbs_dl(nfapi_nr_dl_tti_pdsch_pdu *pdsch_pdu,
   TBS, N_PRB_DMRS, N_sh_symb, N_PRB_oh, R, Qm, table_idx,N_RE_prime*pdsch_rel15->rbSize*pdsch_rel15->NrOfCodewords );
 }
 
+// the following tables contain 10 times the value reported in 214 (in line with SCF specification and to avoid fractional values)
 //Table 5.1.3.1-1 of 38.214
-uint16_t Table_51311[29][2] = {{2,120},{2,157},{2,193},{2,251},{2,308},{2,379},{2,449},{2,526},{2,602},{2,679},{4,340},{4,378},{4,434},{4,490},{4,553},{4,616},
-		{4,658},{6,438},{6,466},{6,517},{6,567},{6,616},{6,666},{6,719},{6,772},{6,822},{6,873}, {6,910}, {6,948}};
+uint16_t Table_51311[29][2] = {{2,1200},{2,1570},{2,1930},{2,2510},{2,3080},{2,3790},{2,4490},{2,5260},{2,6020},{2,6790},{4,3400},{4,3780},{4,4340},{4,4900},{4,5530},{4,6160},
+                               {4,6580},{6,4380},{6,4660},{6,5170},{6,5670},{6,6160},{6,6660},{6,7190},{6,7720},{6,8220},{6,8730}, {6,9100}, {6,9480}};
 
 //Table 5.1.3.1-2 of 38.214
 // Imcs values 20 and 26 have been multiplied by 2 to avoid the floating point
-uint16_t Table_51312[28][2] = {{2,120},{2,193},{2,308},{2,449},{2,602},{4,378},{4,434},{4,490},{4,553},{4,616},{4,658},{6,466},{6,517},{6,567},{6,616},{6,666},
-		{6,719},{6,772},{6,822},{6,873},{8,1365},{8,711},{8,754},{8,797},{8,841},{8,885},{8,1833},{8,948}};
+uint16_t Table_51312[28][2] = {{2,1200},{2,1930},{2,3080},{2,4490},{2,6020},{4,3780},{4,4340},{4,4900},{4,5530},{4,6160},{4,6580},{6,4660},{6,5170},{6,5670},{6,6160},{6,6660},
+                               {6,7190},{6,7720},{6,8220},{6,8730},{8,6825},{8,7110},{8,7540},{8,7970},{8,8410},{8,8850},{8,9165},{8,9480}};
 
 //Table 5.1.3.1-3 of 38.214
-uint16_t Table_51313[29][2] = {{2,30},{2,40},{2,50},{2,64},{2,78},{2,99},{2,120},{2,157},{2,193},{2,251},{2,308},{2,379},{2,449},{2,526},{2,602},{4,340},
-		{4,378},{4,434},{4,490},{4,553},{4,616},{6,438},{6,466},{6,517},{6,567},{6,616},{6,666}, {6,719}, {6,772}};
-
-uint16_t Table_61411[28][2] = {{2,120},{2,157},{2,193},{2,251},{2,308},{2,379},{2,449},{2,526},{2,602},{2,679},{4,340},{4,378},{4,434},{4,490},{4,553},{4,616},
-		{4,658},{6,466},{6,517},{6,567},{6,616},{6,666},{6,719},{6,772},{6,822},{6,873}, {6,910}, {6,948}};
+uint16_t Table_51313[29][2] = {{2,300},{2,400},{2,500},{2,640},{2,780},{2,990},{2,1200},{2,1570},{2,1930},{2,2510},{2,3080},{2,3790},{2,4490},{2,5260},{2,6020},{4,3400},
+                              {4,3780},{4,4340},{4,4900},{4,5530},{4,6160},{6,4380},{6,4660},{6,5170},{6,5670},{6,6160},{6,6660},{6,7190},{6,7720}};
 
-uint16_t Table_61412[28][2] = {{2,30},{2,40},{2,50},{2,64},{2,78},{2,99},{2,120},{2,157},{2,193},{2,251},{2,308},{2,379},{2,449},{2,526},{2,602},{2,679},
-		{4,378},{4,434},{4,490},{4,553},{4,616},{4,658},{4,699},{4,772},{6,567},{6,616},{6,666}, {6,772}};
+uint16_t Table_61411[28][2] = {{2,1200},{2,1570},{2,1930},{2,2510},{2,3080},{2,3790},{2,4490},{2,5260},{2,6020},{2,6790},{4,3400},{4,3780},{4,4340},{4,4900},{4,5530},{4,6160},
+                               {4,6580},{6,4660},{6,5170},{6,5670},{6,6160},{6,6660},{6,7190},{6,7720},{6,8220},{6,8730},{6,9100},{6,9480}};
 
+uint16_t Table_61412[28][2] = {{2,300},{2,400},{2,500},{2,640},{2,780},{2,990},{2,1200},{2,1570},{2,1930},{2,2510},{2,3080},{2,3790},{2,4490},{2,5260},{2,6020},{2,6790},
+                               {4,3780},{4,4340},{4,4900},{4,5530},{4,6160},{4,6580},{4,6990},{4,7720},{6,5670},{6,6160},{6,6660},{6,7720}};
 
 
 uint8_t nr_get_Qm_dl(uint8_t Imcs, uint8_t table_idx) {
@@ -2590,6 +2589,30 @@ uint8_t get_transformPrecoding(const NR_BWP_UplinkCommon_t *initialUplinkBWP,
   return -1;
 }
 
+uint8_t get_pusch_nb_antenna_ports(NR_PUSCH_Config_t *pusch_Config,
+                                   NR_SRS_Config_t *srs_config,
+                                   dci_field_t srs_resource_indicator) {
+
+  uint8_t n_antenna_port = 1;
+  if (get_softmodem_params()->phy_test == 1) {
+    // temporary hack to allow UL-MIMO in phy-test mode without SRS
+    n_antenna_port = *pusch_Config->maxRank;
+  }
+  else {
+    if(srs_config != NULL && srs_resource_indicator.nbits > 0) {
+      for(int rs = 0; rs < srs_config->srs_ResourceSetToAddModList->list.count; rs++) {
+        NR_SRS_ResourceSet_t *srs_resource_set = srs_config->srs_ResourceSetToAddModList->list.array[rs];
+        if(srs_resource_set->usage == NR_SRS_ResourceSet__usage_codebook) {
+          NR_SRS_Resource_t *srs_resource = srs_config->srs_ResourceToAddModList->list.array[srs_resource_indicator.val];
+          AssertFatal(srs_resource != NULL,"SRS resource indicated by DCI does not exist\n");
+          n_antenna_port = 1<<srs_resource->nrofSRS_Ports;
+        }
+      }
+    }
+  }
+  return n_antenna_port;
+}
+
 uint16_t nr_dci_size(const NR_BWP_DownlinkCommon_t *initialDownlinkBWP,
                      const NR_BWP_UplinkCommon_t *initialUplinkBWP,
                      const NR_CellGroupConfig_t *cg,
@@ -2598,23 +2621,23 @@ uint16_t nr_dci_size(const NR_BWP_DownlinkCommon_t *initialDownlinkBWP,
                      nr_rnti_type_t rnti_type,
                      uint16_t N_RB,
                      int bwp_id,
+                     NR_ControlResourceSetId_t coreset_id,
                      uint16_t cset0_bwp_size) {
 
   uint16_t size = 0;
   uint16_t numRBG = 0;
   long rbg_size_config;
   int num_entries = 0;
-  int pusch_antenna_ports = 1; // TODO hardcoded number of antenna ports for pusch
 
   const NR_BWP_DownlinkDedicated_t *bwpd = NULL;
   const NR_BWP_UplinkDedicated_t *ubwpd = NULL;
   const NR_BWP_DownlinkCommon_t *bwpc = NULL;
   const NR_BWP_UplinkCommon_t *ubwpc = NULL;
-  const NR_PDSCH_Config_t *pdsch_Config = NULL;
-  const NR_PUSCH_Config_t *pusch_Config = NULL;
-  const NR_PUCCH_Config_t *pucch_Config = NULL;
-  const NR_PDCCH_Config_t *pdcch_Config = NULL;
-  const NR_SRS_Config_t *srs_config = NULL;
+  NR_PDSCH_Config_t *pdsch_Config = NULL;
+  NR_PUSCH_Config_t *pusch_Config = NULL;
+  NR_PUCCH_Config_t *pucch_Config = NULL;
+  NR_PDCCH_Config_t *pdcch_Config = NULL;
+  NR_SRS_Config_t *srs_config = NULL;
   if(bwp_id > 0) {
     AssertFatal(cg!=NULL,"Cellgroup is null and bwp_id!=0");
     bwpd=cg->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.array[bwp_id-1]->bwp_Dedicated;
@@ -2648,7 +2671,7 @@ uint16_t nr_dci_size(const NR_BWP_DownlinkCommon_t *initialDownlinkBWP,
       /// fixed: Format identifier 1, Hop flag 1, MCS 5, NDI 1, RV 2, HARQ PID 4, PUSCH TPC 2 Time Domain assgnmt 4 --20
       size += 20;
       size += (uint8_t)ceil( log2( (N_RB*(N_RB+1))>>1 ) ); // Freq domain assignment -- hopping scenario to be updated
-      int dci_10_size = nr_dci_size(initialDownlinkBWP,initialUplinkBWP,cg,dci_pdu,NR_DL_DCI_FORMAT_1_0, rnti_type, N_RB, bwp_id, cset0_bwp_size);
+      int dci_10_size = nr_dci_size(initialDownlinkBWP,initialUplinkBWP,cg,dci_pdu,NR_DL_DCI_FORMAT_1_0, rnti_type, N_RB, bwp_id, coreset_id, cset0_bwp_size);
       AssertFatal(dci_10_size >= size, "NR_UL_DCI_FORMAT_0_0 size is bigger than NR_DL_DCI_FORMAT_1_0! 3GPP TS 38.212 Section 7.3.1.0: DCI size alignment is not fully implemented");
       size += dci_10_size - size; // Padding to match 1_0 size
       // UL/SUL indicator assumed to be 0
@@ -2773,6 +2796,9 @@ uint16_t nr_dci_size(const NR_BWP_DownlinkCommon_t *initialDownlinkBWP,
       LOG_D(NR_MAC,"dci_pdu->srs_resource_indicator.nbits %d\n",dci_pdu->srs_resource_indicator.nbits);
       // Precoding info and number of layers
       long transformPrecoder = get_transformPrecoding(initialUplinkBWP, pusch_Config, ubwpd, (uint8_t*)&format, rnti_type, 0);
+       
+      uint8_t pusch_antenna_ports = get_pusch_nb_antenna_ports(pusch_Config, srs_config, dci_pdu->srs_resource_indicator);
+	   
       dci_pdu->precoding_information.nbits=0;
       if (pusch_Config && 
           pusch_Config->txConfig != NULL){
@@ -2992,10 +3018,15 @@ uint16_t nr_dci_size(const NR_BWP_DownlinkCommon_t *initialDownlinkBWP,
       size += dci_pdu->antenna_ports.nbits;
       LOG_D(NR_MAC,"dci_pdu->antenna_ports.nbits %d\n",dci_pdu->antenna_ports.nbits);
       // Tx Config Indication
-      long *isTciEnable = pdcch_Config->controlResourceSetToAddModList->list.array[0]->tci_PresentInDCI;
-      if (isTciEnable != NULL) {
-        dci_pdu->transmission_configuration_indication.nbits = 3;
-        size += dci_pdu->transmission_configuration_indication.nbits;
+      for (int i = 0; i < pdcch_Config->controlResourceSetToAddModList->list.count; i++) {
+        if (pdcch_Config->controlResourceSetToAddModList->list.array[i]->controlResourceSetId == coreset_id) {
+          long *isTciEnable = pdcch_Config->controlResourceSetToAddModList->list.array[i]->tci_PresentInDCI;
+          if (isTciEnable != NULL) {
+            dci_pdu->transmission_configuration_indication.nbits = 3;
+            size += dci_pdu->transmission_configuration_indication.nbits;
+          }
+          break;
+        }
       }
       // SRS request
       if (cg->spCellConfig->spCellConfigDedicated->supplementaryUplink==NULL)
@@ -3467,6 +3498,22 @@ void csi_period_offset(NR_CSI_ReportConfig_t *csirep,
   }
 }
 
+uint32_t get_Y(NR_SearchSpace_t *ss, int slot, rnti_t rnti) {
+
+  if(ss->searchSpaceType->present == NR_SearchSpace__searchSpaceType_PR_common)
+    return 0;
+
+  const int cid = *ss->controlResourceSetId%3;
+  const uint32_t A[3] = {39827, 39829, 39839};
+  const uint32_t D = 65537;
+  uint32_t Y;
+
+  Y = (A[cid] * rnti) % D;
+  for (int s = 0; s < slot; s++)
+    Y = (A[cid] * Y) % D;
+
+  return Y;
+}
 
 void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PDCCH_CSS_config,
                                            frame_t frameP,
@@ -3907,25 +3954,17 @@ void fill_searchSpaceZero(NR_SearchSpace_t *ss0, NR_Type0_PDCCH_CSS_config_t *ty
   if(ss0->searchSpaceType->choice.common->dci_Format0_0_AndFormat1_0 == NULL)
     ss0->searchSpaceType->choice.common->dci_Format0_0_AndFormat1_0 = calloc(1,sizeof(*ss0->searchSpaceType->choice.common->dci_Format0_0_AndFormat1_0));
 
-  uint32_t duration,periodicity,offset;
-  uint16_t symbols,max_agg;
-
   AssertFatal(type0_PDCCH_CSS_config!=NULL,"No type0 CSS configuration\n");
 
-  max_agg = (type0_PDCCH_CSS_config->num_symbols*type0_PDCCH_CSS_config->num_rbs)/6;
-
-  symbols = (1-(1<<type0_PDCCH_CSS_config->num_symbols))<<type0_PDCCH_CSS_config->first_symbol_index;
-  duration = type0_PDCCH_CSS_config->search_space_duration;
-  periodicity = type0_PDCCH_CSS_config->search_space_frame_period;
-  if (type0_PDCCH_CSS_config->type0_pdcch_ss_mux_pattern == 1)
-    offset = type0_PDCCH_CSS_config->n_0;
-  else
-    offset = type0_PDCCH_CSS_config->n_c;
+  const uint32_t periodicity = type0_PDCCH_CSS_config->search_space_frame_period;
+  const uint32_t offset = type0_PDCCH_CSS_config->type0_pdcch_ss_mux_pattern == 1
+      ? type0_PDCCH_CSS_config->n_0 : type0_PDCCH_CSS_config->n_c;
 
   ss0->searchSpaceId = 0;
   *ss0->controlResourceSetId = 0;
   ss0->monitoringSlotPeriodicityAndOffset = calloc(1,sizeof(*ss0->monitoringSlotPeriodicityAndOffset));
   set_monitoring_periodicity_offset(ss0,periodicity,offset);
+  const uint32_t duration = type0_PDCCH_CSS_config->search_space_duration;
   if (duration==1)
     ss0->duration = NULL;
   else{
@@ -3933,6 +3972,7 @@ void fill_searchSpaceZero(NR_SearchSpace_t *ss0, NR_Type0_PDCCH_CSS_config_t *ty
     *ss0->duration = duration;
   }
 
+  const uint16_t symbols = SL_to_bitmap(type0_PDCCH_CSS_config->first_symbol_index, type0_PDCCH_CSS_config->num_symbols);
   ss0->monitoringSymbolsWithinSlot->size = 2;
   ss0->monitoringSymbolsWithinSlot->bits_unused = 2;
   ss0->monitoringSymbolsWithinSlot->buf[1] = 0;
@@ -3942,6 +3982,7 @@ void fill_searchSpaceZero(NR_SearchSpace_t *ss0, NR_Type0_PDCCH_CSS_config_t *ty
     ss0->monitoringSymbolsWithinSlot->buf[0] |= ((symbols>>i)&0x01)<<(7-i);
   }
 
+  const uint16_t max_agg = (type0_PDCCH_CSS_config->num_symbols*type0_PDCCH_CSS_config->num_rbs)/6;
   // max values are set according to TS38.213 Section 10.1 Table 10.1-1
   ss0->nrofCandidates->aggregationLevel1 = NR_SearchSpace__nrofCandidates__aggregationLevel1_n0;
   ss0->nrofCandidates->aggregationLevel2 = NR_SearchSpace__nrofCandidates__aggregationLevel2_n0;
@@ -4087,6 +4128,25 @@ uint16_t compute_pucch_prb_size(uint8_t format,
   }
 }
 
+int get_bw_tbslbrm(NR_BWP_t *genericParameters,
+                   NR_CellGroupConfig_t *cg) {
+
+  int bw = 0;
+  if (cg && cg->spCellConfig && cg->spCellConfig->spCellConfigDedicated &&
+      cg->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList) {
+    struct NR_ServingCellConfig__downlinkBWP_ToAddModList *BWP_list = cg->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList;
+    for (int i=0; i<BWP_list->list.count; i++) {
+      genericParameters = &BWP_list->list.array[i]->bwp_Common->genericParameters;
+      int curr_bw = NRRIV2BW(genericParameters->locationAndBandwidth, MAX_BWP_SIZE);
+      if (curr_bw > bw)
+        bw = curr_bw;
+    }
+  }
+  else
+    bw = NRRIV2BW(genericParameters->locationAndBandwidth, MAX_BWP_SIZE);
+  return bw;
+}
+
 /* extract UL PTRS values from RRC and validate it based upon 38.214 6.2.3 */
 bool set_ul_ptrs_values(NR_PTRS_UplinkConfig_t *ul_ptrs_config,
                         uint16_t rbSize,uint8_t mcsIndex, uint8_t mcsTable,
@@ -4161,3 +4221,521 @@ bool set_ul_ptrs_values(NR_PTRS_UplinkConfig_t *ul_ptrs_config,
   }
   return valid;
 }
+
+//! Calculating number of bits set
+uint8_t number_of_bits_set(uint8_t buf) {
+  uint8_t nb_of_bits_set = 0;
+  uint8_t mask = 0xff;
+  uint8_t index = 0;
+
+  for (index=7; (buf & mask) && (index>=0)  ; index--){
+    if (buf & (1<<index))
+      nb_of_bits_set++;
+
+    mask>>=1;
+  }
+  return nb_of_bits_set;
+}
+
+void compute_rsrp_bitlen(struct NR_CSI_ReportConfig *csi_reportconfig,
+                         uint8_t nb_resources,
+                         nr_csi_report_t *csi_report) {
+
+  if (NR_CSI_ReportConfig__groupBasedBeamReporting_PR_disabled == csi_reportconfig->groupBasedBeamReporting.present) {
+    if (NULL != csi_reportconfig->groupBasedBeamReporting.choice.disabled->nrofReportedRS)
+      csi_report->CSI_report_bitlen.nb_ssbri_cri = *(csi_reportconfig->groupBasedBeamReporting.choice.disabled->nrofReportedRS)+1;
+    else
+      /*! From Spec 38.331
+       * nrofReportedRS
+       * The number (N) of measured RS resources to be reported per report setting in a non-group-based report. N <= N_max, where N_max is either 2 or 4 depending on UE
+       * capability. FFS: The signaling mechanism for the gNB to select a subset of N beams for the UE to measure and report.
+       * When the field is absent the UE applies the value 1
+       */
+      csi_report->CSI_report_bitlen.nb_ssbri_cri= 1;
+  } else
+    csi_report->CSI_report_bitlen.nb_ssbri_cri= 2;
+
+  if (nb_resources) {
+    csi_report->CSI_report_bitlen.cri_ssbri_bitlen =ceil(log2 (nb_resources));
+    csi_report->CSI_report_bitlen.rsrp_bitlen = 7; //From spec 38.212 Table 6.3.1.1.2-6: CRI, SSBRI, and RSRP
+    csi_report->CSI_report_bitlen.diff_rsrp_bitlen =4; //From spec 38.212 Table 6.3.1.1.2-6: CRI, SSBRI, and RSRP
+  } else {
+    csi_report->CSI_report_bitlen.cri_ssbri_bitlen =0;
+    csi_report->CSI_report_bitlen.rsrp_bitlen = 0;
+    csi_report->CSI_report_bitlen.diff_rsrp_bitlen =0;
+  }
+}
+
+uint8_t compute_ri_bitlen(struct NR_CSI_ReportConfig *csi_reportconfig,
+                          nr_csi_report_t *csi_report) {
+
+  struct NR_CodebookConfig *codebookConfig = csi_reportconfig->codebookConfig;
+  uint8_t nb_allowed_ri, ri_bitlen;
+  uint8_t ri_restriction = 0;
+
+  if (codebookConfig == NULL) {
+    csi_report->csi_meas_bitlen.ri_bitlen=0;
+    return ri_restriction;
+  }
+
+  // codebook type1 single panel
+  if (NR_CodebookConfig__codebookType__type1__subType_PR_typeI_SinglePanel==codebookConfig->codebookType.choice.type1->subType.present){
+    struct NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel *type1single = codebookConfig->codebookType.choice.type1->subType.choice.typeI_SinglePanel;
+    if (type1single->nrOfAntennaPorts.present == NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR_two){
+
+      ri_restriction = csi_reportconfig->codebookConfig->codebookType.choice.type1->subType.choice.typeI_SinglePanel->typeI_SinglePanel_ri_Restriction.buf[0];
+
+      nb_allowed_ri = number_of_bits_set(ri_restriction);
+      ri_bitlen = ceil(log2(nb_allowed_ri));
+
+      ri_bitlen = ri_bitlen<1?ri_bitlen:1; //from the spec 38.212 and table  6.3.1.1.2-3: RI, LI, CQI, and CRI of codebookType=typeI-SinglePanel
+      csi_report->csi_meas_bitlen.ri_bitlen=ri_bitlen;
+    }
+    if (type1single->nrOfAntennaPorts.present == NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR_moreThanTwo){
+      if (type1single->nrOfAntennaPorts.choice.moreThanTwo->n1_n2.present ==
+          NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_two_one_TypeI_SinglePanel_Restriction) {
+        // 4 ports
+
+        ri_restriction = csi_reportconfig->codebookConfig->codebookType.choice.type1->subType.choice.typeI_SinglePanel->typeI_SinglePanel_ri_Restriction.buf[0];
+
+        nb_allowed_ri = number_of_bits_set(ri_restriction);
+        ri_bitlen = ceil(log2(nb_allowed_ri));
+
+        ri_bitlen = ri_bitlen<2?ri_bitlen:2; //from the spec 38.212 and table  6.3.1.1.2-3: RI, LI, CQI, and CRI of codebookType=typeI-SinglePanel
+        csi_report->csi_meas_bitlen.ri_bitlen=ri_bitlen;
+      }
+      else {
+        // more than 4 ports
+
+        ri_restriction = csi_reportconfig->codebookConfig->codebookType.choice.type1->subType.choice.typeI_SinglePanel->typeI_SinglePanel_ri_Restriction.buf[0];
+
+        nb_allowed_ri = number_of_bits_set(ri_restriction);
+        ri_bitlen = ceil(log2(nb_allowed_ri));
+
+        csi_report->csi_meas_bitlen.ri_bitlen=ri_bitlen;
+      }
+    }
+    return ri_restriction;
+  }
+  else
+    AssertFatal(1==0,"Other configurations not yet implemented\n");
+  return -1;
+}
+
+void compute_li_bitlen(struct NR_CSI_ReportConfig *csi_reportconfig,
+                       uint8_t ri_restriction,
+                       nr_csi_report_t *csi_report) {
+
+  struct NR_CodebookConfig *codebookConfig = csi_reportconfig->codebookConfig;
+  for(int i=0; i<8; i++) {
+    if (codebookConfig == NULL || ((ri_restriction>>i)&0x01) == 0)
+      csi_report->csi_meas_bitlen.li_bitlen[i]=0;
+    else {
+      // codebook type1 single panel
+      if (NR_CodebookConfig__codebookType__type1__subType_PR_typeI_SinglePanel==codebookConfig->codebookType.choice.type1->subType.present)
+        csi_report->csi_meas_bitlen.li_bitlen[i]=ceil(log2(i+1))<2?ceil(log2(i+1)):2;
+      else
+        AssertFatal(1==0,"Other configurations not yet implemented\n");
+    }
+  }
+}
+
+void get_n1n2_o1o2_singlepanel(int *n1, int *n2, int *o1, int *o2,
+                               struct NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo *morethantwo) {
+
+  // Table 5.2.2.2.1-2 in 38.214 for supported configurations
+  switch(morethantwo->n1_n2.present){
+    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_two_one_TypeI_SinglePanel_Restriction):
+      *n1 = 2;
+      *n2 = 1;
+      *o1 = 4;
+      *o2 = 1;
+      break;
+    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_two_two_TypeI_SinglePanel_Restriction):
+      *n1 = 2;
+      *n2 = 2;
+      *o1 = 4;
+      *o2 = 4;
+      break;
+    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_four_one_TypeI_SinglePanel_Restriction):
+      *n1 = 4;
+      *n2 = 1;
+      *o1 = 4;
+      *o2 = 1;
+      break;
+    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_three_two_TypeI_SinglePanel_Restriction):
+      *n1 = 3;
+      *n2 = 2;
+      *o1 = 4;
+      *o2 = 4;
+      break;
+    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_six_one_TypeI_SinglePanel_Restriction):
+      *n1 = 6;
+      *n2 = 1;
+      *o1 = 4;
+      *o2 = 1;
+      break;
+    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_four_two_TypeI_SinglePanel_Restriction):
+      *n1 = 4;
+      *n2 = 2;
+      *o1 = 4;
+      *o2 = 4;
+      break;
+    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_eight_one_TypeI_SinglePanel_Restriction):
+      *n1 = 8;
+      *n2 = 1;
+      *o1 = 4;
+      *o2 = 1;
+      break;
+    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_four_three_TypeI_SinglePanel_Restriction):
+      *n1 = 4;
+      *n2 = 3;
+      *o1 = 4;
+      *o2 = 4;
+      break;
+    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_six_two_TypeI_SinglePanel_Restriction):
+      *n1 = 4;
+      *n2 = 2;
+      *o1 = 4;
+      *o2 = 4;
+      break;
+    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_twelve_one_TypeI_SinglePanel_Restriction):
+      *n1 = 12;
+      *n2 = 1;
+      *o1 = 4;
+      *o2 = 1;
+      break;
+    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_four_four_TypeI_SinglePanel_Restriction):
+      *n1 = 4;
+      *n2 = 4;
+      *o1 = 4;
+      *o2 = 4;
+      break;
+    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_eight_two_TypeI_SinglePanel_Restriction):
+      *n1 = 8;
+      *n2 = 2;
+      *o1 = 4;
+      *o2 = 4;
+      break;
+    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_sixteen_one_TypeI_SinglePanel_Restriction):
+      *n1 = 16;
+      *n2 = 1;
+      *o1 = 4;
+      *o2 = 1;
+      break;
+    default:
+      AssertFatal(1==0,"Not supported configuration for n1_n2 in codebook configuration");
+  }
+}
+
+void get_x1x2_bitlen_singlepanel(int n1, int n2, int o1, int o2,
+                                 int *x1, int *x2, int rank, int codebook_mode) {
+
+  // Table 6.3.1.1.2-1 in 38.212
+  switch(rank){
+    case 1:
+      if(n2>1) {
+        if (codebook_mode == 1) {
+          *x1 = ceil(log2(n1*o1)) + ceil(log2(n2*o2));
+          *x2 = 2;
+        }
+        else {
+          *x1 = ceil(log2(n1*o1/2)) + ceil(log2(n2*o2/2));
+          *x2 = 4;
+        }
+      }
+      else{
+        if (codebook_mode == 1) {
+          *x1 = ceil(log2(n1*o1)) + ceil(log2(n2*o2));
+          *x2 = 2;
+        }
+        else {
+          *x1 = ceil(log2(n1*o1/2));
+          *x2 = 4;
+        }
+      }
+      break;
+    case 2:
+      if(n1*n2 == 2) {
+        if (codebook_mode == 1) {
+          *x1 = ceil(log2(n1*o1)) + ceil(log2(n2*o2));
+          *x2 = 1;
+        }
+        else {
+          *x1 = ceil(log2(n1*o1/2));
+          *x2 = 3;
+        }
+        *x1 += 1;
+      }
+      else {
+        if(n2>1) {
+          if (codebook_mode == 1) {
+            *x1 = ceil(log2(n1*o1)) + ceil(log2(n2*o2));
+            *x2 = 3;
+          }
+          else {
+            *x1 = ceil(log2(n1*o1/2)) + ceil(log2(n2*o2/2));
+            *x2 = 3;
+          }
+        }
+        else{
+          if (codebook_mode == 1) {
+            *x1 = ceil(log2(n1*o1)) + ceil(log2(n2*o2));
+            *x2 = 1;
+          }
+          else {
+            *x1 = ceil(log2(n1*o1/2));
+            *x2 = 3;
+          }
+        }
+        *x1 += 2;
+      }
+      break;
+    case 3:
+    case 4:
+      if(n1*n2 == 2) {
+        *x1 = ceil(log2(n1*o1)) + ceil(log2(n2*o2));
+        *x2 = 1;
+      }
+      else {
+        if(n1*n2 >= 8) {
+          *x1 = ceil(log2(n1*o1/2)) + ceil(log2(n2*o2)) + 2;
+          *x2 = 1;
+        }
+        else {
+          *x1 = ceil(log2(n1*o1)) + ceil(log2(n2*o2)) + 2;
+          *x2 = 1;
+        }
+      }
+      break;
+    case 5:
+    case 6:
+      *x1 = ceil(log2(n1*o1)) + ceil(log2(n2*o2));
+      *x2 = 1;
+      break;
+    case 7:
+    case 8:
+      if(n1 == 4 && n2 == 1) {
+        *x1 = ceil(log2(n1*o1/2)) + ceil(log2(n2*o2));
+        *x2 = 1;
+      }
+      else {
+        if(n1 > 2 && n2 == 2) {
+          *x1 = ceil(log2(n1*o1)) + ceil(log2(n2*o2/2));
+          *x2 = 1;
+        }
+        else {
+          *x1 = ceil(log2(n1*o1)) + ceil(log2(n2*o2));
+          *x2 = 1;
+        }
+      }
+      break;
+    default:
+      AssertFatal(1==0,"Invalid rank in x1 x2 bit length computation\n");
+  }
+}
+
+
+void compute_pmi_bitlen(struct NR_CSI_ReportConfig *csi_reportconfig,
+                        uint8_t ri_restriction,
+                        nr_csi_report_t *csi_report) {
+
+  struct NR_CodebookConfig *codebookConfig = csi_reportconfig->codebookConfig;
+  for(int i=0; i<8; i++) {
+    csi_report->csi_meas_bitlen.pmi_x1_bitlen[i]=0;
+    csi_report->csi_meas_bitlen.pmi_x2_bitlen[i]=0;
+    if (codebookConfig == NULL || ((ri_restriction>>i)&0x01) == 0)
+      return;
+    else {
+      if(codebookConfig->codebookType.present == NR_CodebookConfig__codebookType_PR_type1) {
+        if(codebookConfig->codebookType.choice.type1->subType.present == NR_CodebookConfig__codebookType__type1__subType_PR_typeI_SinglePanel) {
+          if(codebookConfig->codebookType.choice.type1->subType.choice.typeI_SinglePanel->nrOfAntennaPorts.present ==
+             NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR_two) {
+            csi_report->N1 = 1;
+            csi_report->N2 = 1;
+            if (i==0)
+              csi_report->csi_meas_bitlen.pmi_x2_bitlen[i]=2;
+            if (i==1)
+              csi_report->csi_meas_bitlen.pmi_x2_bitlen[i]=1;
+          }
+          else {  // more than two
+            int n1,n2,o1,o2,x1,x2;
+            get_n1n2_o1o2_singlepanel(&n1,&n2,&o1,&o2,codebookConfig->codebookType.choice.type1->subType.choice.typeI_SinglePanel->nrOfAntennaPorts.choice.moreThanTwo);
+            get_x1x2_bitlen_singlepanel(n1,n2,o1,o2,&x1,&x2,i+1,codebookConfig->codebookType.choice.type1->codebookMode);
+            csi_report->N1 = n1;
+            csi_report->N2 = n2;
+            csi_report->codebook_mode = codebookConfig->codebookType.choice.type1->codebookMode;
+            csi_report->csi_meas_bitlen.pmi_x1_bitlen[i]=x1;
+            csi_report->csi_meas_bitlen.pmi_x2_bitlen[i]=x2;
+          }
+        }
+        else
+          AssertFatal(1==0,"Type1 Multi-panel Codebook Config not yet implemented\n");
+      }
+      else
+        AssertFatal(1==0,"Type2 Codebook Config not yet implemented\n");
+    }
+  }
+}
+
+void compute_cqi_bitlen(struct NR_CSI_ReportConfig *csi_reportconfig,
+                        uint8_t ri_restriction,
+                        nr_csi_report_t *csi_report) {
+
+  struct NR_CodebookConfig *codebookConfig = csi_reportconfig->codebookConfig;
+  struct NR_CSI_ReportConfig__reportFreqConfiguration *freq_config = csi_reportconfig->reportFreqConfiguration;
+
+  if (*freq_config->cqi_FormatIndicator == NR_CSI_ReportConfig__reportFreqConfiguration__cqi_FormatIndicator_widebandCQI) {
+    for(int i=0; i<8; i++) {
+      if ((ri_restriction>>i)&0x01) {
+        csi_report->csi_meas_bitlen.cqi_bitlen[i] = 4;
+        if(codebookConfig != NULL) {
+          if (NR_CodebookConfig__codebookType__type1__subType_PR_typeI_SinglePanel == codebookConfig->codebookType.choice.type1->subType.present){
+            struct NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel *type1single = codebookConfig->codebookType.choice.type1->subType.choice.typeI_SinglePanel;
+            if (type1single->nrOfAntennaPorts.present == NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR_moreThanTwo) {
+              if (type1single->nrOfAntennaPorts.choice.moreThanTwo->n1_n2.present >
+                  NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_two_one_TypeI_SinglePanel_Restriction) {
+                // more than 4 antenna ports
+                if (i > 4)
+                  csi_report->csi_meas_bitlen.cqi_bitlen[i] += 4; // CQI for second TB
+              }
+            }
+          }
+        }
+      }
+      else
+        csi_report->csi_meas_bitlen.cqi_bitlen[i] = 0;
+    }
+  }
+  else
+    AssertFatal(1==0,"Sub-band CQI reporting not yet supported");
+}
+
+//!TODO : same function can be written to handle csi_resources
+void compute_csi_bitlen(NR_CSI_MeasConfig_t *csi_MeasConfig, nr_csi_report_t *csi_report_template) {
+  uint8_t csi_report_id = 0;
+  uint8_t nb_resources = 0;
+  NR_CSI_ReportConfig__reportQuantity_PR reportQuantity_type;
+  NR_CSI_ResourceConfigId_t csi_ResourceConfigId;
+  struct NR_CSI_ResourceConfig *csi_resourceconfig;
+
+  // for each CSI measurement report configuration (list of CSI-ReportConfig)
+  LOG_D(NR_MAC,"Searching %d csi_reports\n",csi_MeasConfig->csi_ReportConfigToAddModList->list.count);
+  for (csi_report_id=0; csi_report_id < csi_MeasConfig->csi_ReportConfigToAddModList->list.count; csi_report_id++){
+    struct NR_CSI_ReportConfig *csi_reportconfig = csi_MeasConfig->csi_ReportConfigToAddModList->list.array[csi_report_id];
+    // MAC structure for CSI measurement reports (per UE and per report)
+    nr_csi_report_t *csi_report = &csi_report_template[csi_report_id];
+    // csi-ResourceConfigId of a CSI-ResourceConfig included in the configuration
+    // (either CSI-RS or SSB)
+    csi_ResourceConfigId = csi_reportconfig->resourcesForChannelMeasurement;
+    // looking for CSI-ResourceConfig
+    int found_resource = 0;
+    int csi_resourceidx = 0;
+    while (found_resource == 0 && csi_resourceidx < csi_MeasConfig->csi_ResourceConfigToAddModList->list.count) {
+      csi_resourceconfig = csi_MeasConfig->csi_ResourceConfigToAddModList->list.array[csi_resourceidx];
+      if ( csi_resourceconfig->csi_ResourceConfigId == csi_ResourceConfigId)
+        found_resource = 1;
+      csi_resourceidx++;
+    }
+    AssertFatal(found_resource==1,"Not able to found any CSI-ResourceConfig with csi-ResourceConfigId %ld\n",
+                csi_ResourceConfigId);
+
+    long resourceType = csi_resourceconfig->resourceType;
+
+    reportQuantity_type = csi_reportconfig->reportQuantity.present;
+    csi_report->reportQuantity_type = reportQuantity_type;
+
+    // setting the CSI or SSB index list
+    if (NR_CSI_ReportConfig__reportQuantity_PR_ssb_Index_RSRP == csi_report->reportQuantity_type) {
+      for (int csi_idx = 0; csi_idx < csi_MeasConfig->csi_SSB_ResourceSetToAddModList->list.count; csi_idx++) {
+        if (csi_MeasConfig->csi_SSB_ResourceSetToAddModList->list.array[csi_idx]->csi_SSB_ResourceSetId ==
+            *(csi_resourceconfig->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->csi_SSB_ResourceSetList->list.array[0])){
+          //We can configure only one SSB resource set from spec 38.331 IE CSI-ResourceConfig
+          nb_resources=  csi_MeasConfig->csi_SSB_ResourceSetToAddModList->list.array[csi_idx]->csi_SSB_ResourceList.list.count;
+          csi_report->SSB_Index_list = csi_MeasConfig->csi_SSB_ResourceSetToAddModList->list.array[csi_idx]->csi_SSB_ResourceList.list.array;
+          csi_report->CSI_Index_list = NULL;
+          break;
+        }
+      }
+    }
+    else {
+      if (resourceType == NR_CSI_ResourceConfig__resourceType_periodic) {
+        AssertFatal(csi_MeasConfig->nzp_CSI_RS_ResourceSetToAddModList != NULL,
+                    "Wrong settings! Report quantity requires CSI-RS but csi_MeasConfig->nzp_CSI_RS_ResourceSetToAddModList is NULL\n");
+        for (int csi_idx = 0; csi_idx < csi_MeasConfig->nzp_CSI_RS_ResourceSetToAddModList->list.count; csi_idx++) {
+          if (csi_MeasConfig->nzp_CSI_RS_ResourceSetToAddModList->list.array[csi_idx]->nzp_CSI_ResourceSetId ==
+              *(csi_resourceconfig->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->nzp_CSI_RS_ResourceSetList->list.array[0])) {
+            //For periodic and semi-persistent CSI Resource Settings, the number of CSI-RS Resource Sets configured is limited to S=1 for spec 38.212
+            nb_resources = csi_MeasConfig->nzp_CSI_RS_ResourceSetToAddModList->list.array[csi_idx]->nzp_CSI_RS_Resources.list.count;
+            csi_report->CSI_Index_list = csi_MeasConfig->nzp_CSI_RS_ResourceSetToAddModList->list.array[csi_idx]->nzp_CSI_RS_Resources.list.array;
+            csi_report->SSB_Index_list = NULL;
+            break;
+          }
+        }
+      }
+      else AssertFatal(1==0,"Only periodic resource configuration currently supported\n");
+    }
+    LOG_D(NR_MAC,"nb_resources %d\n",nb_resources);
+    // computation of bit length depending on the report type
+    switch(reportQuantity_type){
+      case (NR_CSI_ReportConfig__reportQuantity_PR_ssb_Index_RSRP):
+        compute_rsrp_bitlen(csi_reportconfig, nb_resources, csi_report);
+        break;
+      case (NR_CSI_ReportConfig__reportQuantity_PR_cri_RSRP):
+        compute_rsrp_bitlen(csi_reportconfig, nb_resources, csi_report);
+        break;
+      case (NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_CQI):
+        csi_report->csi_meas_bitlen.cri_bitlen=ceil(log2(nb_resources));
+        csi_report->csi_meas_bitlen.ri_restriction = compute_ri_bitlen(csi_reportconfig, csi_report);
+        compute_cqi_bitlen(csi_reportconfig, csi_report->csi_meas_bitlen.ri_restriction, csi_report);
+        break;
+      case (NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_PMI_CQI):
+        csi_report->csi_meas_bitlen.cri_bitlen=ceil(log2(nb_resources));
+        csi_report->csi_meas_bitlen.ri_restriction = compute_ri_bitlen(csi_reportconfig, csi_report);
+        compute_cqi_bitlen(csi_reportconfig, csi_report->csi_meas_bitlen.ri_restriction, csi_report);
+        compute_pmi_bitlen(csi_reportconfig, csi_report->csi_meas_bitlen.ri_restriction, csi_report);
+        break;
+      case (NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_LI_PMI_CQI):
+        csi_report->csi_meas_bitlen.cri_bitlen=ceil(log2(nb_resources));
+        csi_report->csi_meas_bitlen.ri_restriction = compute_ri_bitlen(csi_reportconfig, csi_report);
+        compute_li_bitlen(csi_reportconfig, csi_report->csi_meas_bitlen.ri_restriction, csi_report);
+        compute_cqi_bitlen(csi_reportconfig, csi_report->csi_meas_bitlen.ri_restriction, csi_report);
+        compute_pmi_bitlen(csi_reportconfig, csi_report->csi_meas_bitlen.ri_restriction, csi_report);
+        break;
+      default:
+        AssertFatal(1==0,"Not yet supported CSI report quantity type");
+    }
+  }
+}
+
+uint16_t nr_get_csi_bitlen(nr_csi_report_t *csi_report_template, uint8_t csi_report_id) {
+
+  uint16_t csi_bitlen = 0;
+  uint16_t max_bitlen = 0;
+  L1_RSRP_bitlen_t *CSI_report_bitlen = NULL;
+  CSI_Meas_bitlen_t *csi_meas_bitlen = NULL;
+
+  if (csi_report_template[csi_report_id].reportQuantity_type == NR_CSI_ReportConfig__reportQuantity_PR_ssb_Index_RSRP ||
+      csi_report_template[csi_report_id].reportQuantity_type == NR_CSI_ReportConfig__reportQuantity_PR_cri_RSRP) {
+    CSI_report_bitlen = &(csi_report_template[csi_report_id].CSI_report_bitlen); // This might need to be moodif for Aperiodic CSI-RS measurements
+    csi_bitlen += ((CSI_report_bitlen->cri_ssbri_bitlen * CSI_report_bitlen->nb_ssbri_cri) +
+                   CSI_report_bitlen->rsrp_bitlen +(CSI_report_bitlen->diff_rsrp_bitlen *
+                                                    (CSI_report_bitlen->nb_ssbri_cri -1 )));
+  } else {
+    csi_meas_bitlen = &(csi_report_template[csi_report_id].csi_meas_bitlen); //This might need to be moodif for Aperiodic CSI-RS measurements
+    uint16_t temp_bitlen;
+    for (int i=0; i<8; i++) {
+      temp_bitlen = (csi_meas_bitlen->cri_bitlen+
+                     csi_meas_bitlen->ri_bitlen+
+                     csi_meas_bitlen->li_bitlen[i]+
+                     csi_meas_bitlen->cqi_bitlen[i]+
+                     csi_meas_bitlen->pmi_x1_bitlen[i]+
+                     csi_meas_bitlen->pmi_x2_bitlen[i]);
+      if(temp_bitlen>max_bitlen)
+        max_bitlen = temp_bitlen;
+    }
+    csi_bitlen += max_bitlen;
+  }
+
+  return csi_bitlen;
+}
\ No newline at end of file
diff --git a/openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h b/openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
index e8a3af24981..2b8d3c66527 100644
--- a/openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
+++ b/openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
@@ -37,6 +37,8 @@
 #include "nr_mac.h"
 #include "openair1/PHY/impl_defs_nr.h"
 
+uint32_t get_Y(NR_SearchSpace_t *ss, int slot, rnti_t rnti);
+
 uint64_t from_nrarfcn(int nr_bandP, uint8_t scs_index, uint32_t dl_nrarfcn);
 
 uint32_t to_nrarfcn(int nr_bandP, uint64_t dl_CarrierFreq, uint8_t scs_index, uint32_t bw);
@@ -55,6 +57,7 @@ uint16_t nr_dci_size(const NR_BWP_DownlinkCommon_t *initialDLBWP,
                      nr_rnti_type_t rnti_type,
                      uint16_t N_RB,
                      int bwp_id,
+                     NR_ControlResourceSetId_t coreset_id,
                      uint16_t cset0_bwp_size);
 
 void find_aggregation_candidates(uint8_t *aggregation_level,
@@ -102,7 +105,7 @@ uint8_t get_pusch_mcs_table(long *mcs_Table,
 uint8_t compute_nr_root_seq(NR_RACH_ConfigCommon_t *rach_config,
                             uint8_t nb_preambles,
                             uint8_t unpaired,
-			    frequency_range_t);
+                            frequency_range_t);
 
 int ul_ant_bits(NR_DMRS_UplinkConfig_t *NR_DMRS_UplinkConfig,long transformPrecoder);
 
@@ -120,8 +123,32 @@ int32_t get_l_prime(uint8_t duration_in_symbols, uint8_t mapping_type, pusch_dmr
 uint8_t get_L_ptrs(uint8_t mcs1, uint8_t mcs2, uint8_t mcs3, uint8_t I_mcs, uint8_t mcs_table);
 uint8_t get_K_ptrs(uint16_t nrb0, uint16_t nrb1, uint16_t N_RB);
 
+uint32_t nr_compute_tbs(uint16_t Qm,
+                        uint16_t R,
+			uint16_t nb_rb,
+			uint16_t nb_symb_sch,
+			uint16_t nb_dmrs_prb,
+                        uint16_t nb_rb_oh,
+                        uint8_t tb_scaling,
+			uint8_t Nl);
+
+/** \brief Computes Q based on I_MCS PDSCH and table_idx for downlink. Implements MCS Tables from 38.214. */
+uint8_t nr_get_Qm_dl(uint8_t Imcs, uint8_t table_idx);
+uint32_t nr_get_code_rate_dl(uint8_t Imcs, uint8_t table_idx);
+
+/** \brief Computes Q based on I_MCS PDSCH and table_idx for uplink. Implements MCS Tables from 38.214. */
+uint8_t nr_get_Qm_ul(uint8_t Imcs, uint8_t table_idx);
+uint32_t nr_get_code_rate_ul(uint8_t Imcs, uint8_t table_idx);
+
 uint16_t get_nr_srs_offset(NR_SRS_PeriodicityAndOffset_t periodicityAndOffset);
 
+int get_bw_tbslbrm(NR_BWP_t *genericParameters,
+                   NR_CellGroupConfig_t *cg);
+
+uint32_t nr_compute_tbslbrm(uint16_t table,
+			    uint16_t nb_rb,
+		            uint8_t Nl);
+
 void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PDCCH_CSS_config,
                                            frame_t frameP,
                                            NR_MIB_t *mib,
@@ -148,6 +175,10 @@ void get_info_from_tda_tables(int default_abc,
 void fill_coresetZero(NR_ControlResourceSet_t *coreset0, NR_Type0_PDCCH_CSS_config_t *type0_PDCCH_CSS_config);
 void fill_searchSpaceZero(NR_SearchSpace_t *ss0, NR_Type0_PDCCH_CSS_config_t *type0_PDCCH_CSS_config);
 
+uint8_t get_pusch_nb_antenna_ports(NR_PUSCH_Config_t *pusch_Config,
+                                   NR_SRS_Config_t *srs_config,
+                                   dci_field_t srs_resource_indicator);
+
 uint16_t compute_pucch_prb_size(uint8_t format,
                                 uint8_t nr_prbs,
                                 uint16_t O_tot,
@@ -203,4 +234,36 @@ void nr_mac_gNB_rrc_ul_failure_reset(const module_id_t Mod_instP,
                                      const frame_t frameP,
                                      const sub_frame_t subframeP,
                                      const rnti_t rntiP);
+
+uint8_t number_of_bits_set(uint8_t buf);
+
+void compute_rsrp_bitlen(struct NR_CSI_ReportConfig *csi_reportconfig,
+                         uint8_t nb_resources,
+                         nr_csi_report_t *csi_report);
+
+uint8_t compute_ri_bitlen(struct NR_CSI_ReportConfig *csi_reportconfig,
+                          nr_csi_report_t *csi_report);
+
+void compute_li_bitlen(struct NR_CSI_ReportConfig *csi_reportconfig,
+                       uint8_t ri_restriction,
+                       nr_csi_report_t *csi_report);
+
+void get_n1n2_o1o2_singlepanel(int *n1, int *n2, int *o1, int *o2,
+                               struct NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo *morethantwo);
+
+void get_x1x2_bitlen_singlepanel(int n1, int n2, int o1, int o2,
+                                 int *x1, int *x2, int rank, int codebook_mode);
+
+void compute_pmi_bitlen(struct NR_CSI_ReportConfig *csi_reportconfig,
+                        uint8_t ri_restriction,
+                        nr_csi_report_t *csi_report);
+
+void compute_cqi_bitlen(struct NR_CSI_ReportConfig *csi_reportconfig,
+                        uint8_t ri_restriction,
+                        nr_csi_report_t *csi_report);
+
+void compute_csi_bitlen(NR_CSI_MeasConfig_t *csi_MeasConfig, nr_csi_report_t *csi_report_template);
+
+uint16_t nr_get_csi_bitlen(nr_csi_report_t *csi_report_template, uint8_t csi_report_id);
+
 #endif
diff --git a/openair2/LAYER2/NR_MAC_COMMON/nr_mac_extern.h b/openair2/LAYER2/NR_MAC_COMMON/nr_mac_extern.h
index 4b37c19dff2..7bbe8d68a75 100644
--- a/openair2/LAYER2/NR_MAC_COMMON/nr_mac_extern.h
+++ b/openair2/LAYER2/NR_MAC_COMMON/nr_mac_extern.h
@@ -74,7 +74,7 @@ extern uint8_t rb_table[34];
 extern uint16_t pre_nb_rbs_required[2][MAX_NUM_CCs][NUMBER_OF_UE_MAX];
 extern uint8_t dlsch_ue_select_tbl_in_use;
 extern uint8_t new_dlsch_ue_select_tbl_in_use;
-extern boolean_t pre_scd_activeUE[NUMBER_OF_UE_MAX];
+extern bool pre_scd_activeUE[NUMBER_OF_UE_MAX];
 extern eNB_UE_STATS pre_scd_eNB_UE_stats[MAX_NUM_CCs][NUMBER_OF_UE_MAX];
 #endif*/
 
diff --git a/openair2/LAYER2/NR_MAC_UE/config_ue.c b/openair2/LAYER2/NR_MAC_UE/config_ue.c
index bd693e4d888..2804a9ec1e6 100644
--- a/openair2/LAYER2/NR_MAC_UE/config_ue.c
+++ b/openair2/LAYER2/NR_MAC_UE/config_ue.c
@@ -190,7 +190,7 @@ void config_common_ue_sa(NR_UE_MAC_INST_t *mac,
   cfg->ssb_table.ssb_subcarrier_offset = mac->ssb_subcarrier_offset;
 
   if (mac->frequency_range == FR1){
-    cfg->ssb_table.ssb_mask_list[0].ssb_mask = scc->ssb_PositionsInBurst.inOneGroup.buf[0]<<24;
+    cfg->ssb_table.ssb_mask_list[0].ssb_mask = ((uint32_t) scc->ssb_PositionsInBurst.inOneGroup.buf[0]) << 24;
     cfg->ssb_table.ssb_mask_list[1].ssb_mask = 0;
   }
   else{
@@ -343,7 +343,9 @@ void config_common_ue(NR_UE_MAC_INST_t *mac,
     uint32_t absolute_diff = (*scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencySSB - scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencyPointA);
     cfg->ssb_table.ssb_offset_point_a = absolute_diff/(12*scs_scaling) - 10;
     cfg->ssb_table.ssb_period = *scc->ssb_periodicityServingCell;
-    cfg->ssb_table.ssb_subcarrier_offset = mac->ssb_subcarrier_offset;
+
+    // NSA -> take ssb offset from SCS
+    cfg->ssb_table.ssb_subcarrier_offset = absolute_diff%(12*scs_scaling);
     
     switch (scc->ssb_PositionsInBurst->present) {
     case 1 :
@@ -351,7 +353,7 @@ void config_common_ue(NR_UE_MAC_INST_t *mac,
       cfg->ssb_table.ssb_mask_list[1].ssb_mask = 0;
       break;
     case 2 :
-      cfg->ssb_table.ssb_mask_list[0].ssb_mask = scc->ssb_PositionsInBurst->choice.mediumBitmap.buf[0]<<24;
+      cfg->ssb_table.ssb_mask_list[0].ssb_mask = ((uint32_t) scc->ssb_PositionsInBurst->choice.mediumBitmap.buf[0]) << 24;
       cfg->ssb_table.ssb_mask_list[1].ssb_mask = 0;
       break;
     case 3 :
@@ -434,19 +436,24 @@ void config_bwp_ue(NR_UE_MAC_INST_t *mac, uint16_t *bwp_ind, uint8_t *dci_format
 
   NR_ServingCellConfig_t *scd = mac->cg->spCellConfig->spCellConfigDedicated;
 
-  if (bwp_ind && dci_format){
+  int n_ubwp = 0;
+  if (scd && scd->uplinkConfig &&
+      scd->uplinkConfig->uplinkBWP_ToAddModList)
+    n_ubwp = scd->uplinkConfig->uplinkBWP_ToAddModList->list.count;
 
+  if (bwp_ind && dci_format){
     switch(*dci_format){
     case NR_UL_DCI_FORMAT_0_1:
-      mac->UL_BWP_Id = *bwp_ind;
+      mac->UL_BWP_Id = n_ubwp < 4 ? *bwp_ind : *bwp_ind + 1;
       break;
     case NR_DL_DCI_FORMAT_1_1:
-      mac->DL_BWP_Id = *bwp_ind;
+      mac->DL_BWP_Id = n_ubwp < 4 ? *bwp_ind : *bwp_ind + 1;
       break;
     default:
       LOG_E(MAC, "In %s: failed to configure BWP Id from DCI with format %d \n", __FUNCTION__, *dci_format);
     }
-
+    // configure ss coreset after switching BWP
+    configure_ss_coreset(mac, scd, mac->DL_BWP_Id);
   } else {
 
     if (scd->firstActiveDownlinkBWP_Id)
@@ -474,82 +481,96 @@ void config_bwp_ue(NR_UE_MAC_INST_t *mac, uint16_t *bwp_ind, uint8_t *dci_format
     */
 void config_control_ue(NR_UE_MAC_INST_t *mac){
 
-  uint8_t coreset_id = 1, ss_id;
-  NR_BWP_Id_t dl_bwp_id = mac->DL_BWP_Id;
-  NR_BWP_Id_t ul_bwp_id = mac->UL_BWP_Id;
+  int bwp_id;
   NR_ServingCellConfig_t *scd = mac->cg->spCellConfig->spCellConfigDedicated;
-  if (dl_bwp_id==0) AssertFatal(mac->scc_SIB,"dl_bwp_id 0 (DL %d,UL %d) means mac->scc_SIB should exist here!\n",(int)mac->DL_BWP_Id,(int)mac->UL_BWP_Id);
-  NR_BWP_DownlinkCommon_t *bwp_Common = dl_bwp_id>0 ? scd->downlinkBWP_ToAddModList->list.array[dl_bwp_id - 1]->bwp_Common :
-                                                      &mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP;
+  config_bwp_ue(mac, NULL, NULL);
+  NR_BWP_Id_t dl_bwp_id = mac->DL_BWP_Id;
 
+  // configure DLbwp
+  if (scd->downlinkBWP_ToAddModList) {
+    for (int i = 0; i < scd->downlinkBWP_ToAddModList->list.count; i++) {
+      bwp_id = scd->downlinkBWP_ToAddModList->list.array[i]->bwp_Id;
+      mac->DLbwp[bwp_id-1] = scd->downlinkBWP_ToAddModList->list.array[i];
+    }
+  }
 
-  if (dl_bwp_id > 0 ) {
-    AssertFatal(scd->downlinkBWP_ToAddModList != NULL, "downlinkBWP_ToAddModList is null\n");
-    AssertFatal(scd->downlinkBWP_ToAddModList->list.count == 1, "downlinkBWP_ToAddModList->list->count is %d\n", scd->downlinkBWP_ToAddModList->list.count);
+  // configure ULbwp
+  if (scd->uplinkConfig->uplinkBWP_ToAddModList) {
+    for (int i = 0; i < scd->uplinkConfig->uplinkBWP_ToAddModList->list.count; i++) {
+      bwp_id = scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[i]->bwp_Id;
+      mac->ULbwp[bwp_id-1] = scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[i];
+    }
   }
+
+  configure_ss_coreset(mac, scd, dl_bwp_id);
+}
+
+
+void configure_ss_coreset(NR_UE_MAC_INST_t *mac,
+                          NR_ServingCellConfig_t *scd,
+                          NR_BWP_Id_t dl_bwp_id) {
+
+  NR_BWP_DownlinkCommon_t *bwp_Common = get_bwp_downlink_common(mac, dl_bwp_id);
+  AssertFatal(bwp_Common != NULL, "bwp_Common is null\n");
+
+  NR_SetupRelease_PDCCH_ConfigCommon_t *pdcch_ConfigCommon = bwp_Common->pdcch_ConfigCommon;
+  AssertFatal(pdcch_ConfigCommon != NULL, "pdcch_ConfigCommon is null\n");
+
+  // configuring eventual common coreset
+  NR_ControlResourceSet_t *coreset = pdcch_ConfigCommon->choice.setup->commonControlResourceSet;
+  if (coreset)
+    mac->coreset[dl_bwp_id][coreset->controlResourceSetId - 1] = coreset;
+
   NR_BWP_DownlinkDedicated_t *dl_bwp_Dedicated = dl_bwp_id>0 ? scd->downlinkBWP_ToAddModList->list.array[dl_bwp_id - 1]->bwp_Dedicated:
                                                                scd->initialDownlinkBWP;
+
   AssertFatal(dl_bwp_Dedicated != NULL, "dl_bwp_Dedicated is null\n");
-  config_bwp_ue(mac, NULL, NULL);
 
   NR_SetupRelease_PDCCH_Config_t *pdcch_Config = dl_bwp_Dedicated->pdcch_Config;
   AssertFatal(pdcch_Config != NULL, "pdcch_Config is null\n");
 
-  NR_SetupRelease_PDCCH_ConfigCommon_t *pdcch_ConfigCommon = bwp_Common->pdcch_ConfigCommon;
-  AssertFatal(pdcch_ConfigCommon != NULL, "pdcch_ConfigCommon is null\n");
-  AssertFatal(pdcch_ConfigCommon->choice.setup->ra_SearchSpace != NULL, "ra_SearchSpace must be available in DL BWP\n");
-
-  struct NR_PDCCH_ConfigCommon__commonSearchSpaceList *commonSearchSpaceList = pdcch_ConfigCommon->choice.setup->commonSearchSpaceList;
-  AssertFatal(commonSearchSpaceList != NULL, "commonSearchSpaceList is null\n");
-  AssertFatal(commonSearchSpaceList->list.count > 0, "PDCCH CSS list has 0 elements\n");
-
   struct NR_PDCCH_Config__controlResourceSetToAddModList *controlResourceSetToAddModList = pdcch_Config->choice.setup->controlResourceSetToAddModList;
   AssertFatal(controlResourceSetToAddModList != NULL, "controlResourceSetToAddModList is null\n");
-  AssertFatal(controlResourceSetToAddModList->list.count == 1, "controlResourceSetToAddModList->list.count=%d\n", controlResourceSetToAddModList->list.count);
-  AssertFatal(controlResourceSetToAddModList->list.array[0] != NULL, "coreset[0][0] is null\n");
+
+  // configuring dedicated coreset
+  // In case network reconfigures control resource set with the same ControlResourceSetId as used for commonControlResourceSet configured via PDCCH-ConfigCommon,
+  // the configuration from PDCCH-Config always takes precedence
+  for (int i=0; i<controlResourceSetToAddModList->list.count; i++) {
+    coreset = controlResourceSetToAddModList->list.array[i];
+    mac->coreset[dl_bwp_id][coreset->controlResourceSetId - 1] = coreset;
+  }
 
   struct NR_PDCCH_Config__searchSpacesToAddModList *searchSpacesToAddModList = pdcch_Config->choice.setup->searchSpacesToAddModList;
   AssertFatal(searchSpacesToAddModList != NULL, "searchSpacesToAddModList is null\n");
   AssertFatal(searchSpacesToAddModList->list.count > 0, "list of UE specifically configured Search Spaces is empty\n");
-  AssertFatal(searchSpacesToAddModList->list.count < FAPI_NR_MAX_SS, "too many searchpaces per coreset %d\n", searchSpacesToAddModList->list.count);
-
-  struct NR_UplinkConfig__uplinkBWP_ToAddModList *uplinkBWP_ToAddModList = scd->uplinkConfig->uplinkBWP_ToAddModList;
-  if (ul_bwp_id > 0) {
-     AssertFatal(uplinkBWP_ToAddModList != NULL, "uplinkBWP_ToAddModList is null\n");
-     AssertFatal(uplinkBWP_ToAddModList->list.count == 1, "uplinkBWP_ToAddModList->list->count is %d\n", uplinkBWP_ToAddModList->list.count);
-  }
-  // check pdcch_Config, pdcch_ConfigCommon and DL BWP
-  mac->DLbwp[0] = dl_bwp_id>0?scd->downlinkBWP_ToAddModList->list.array[dl_bwp_id - 1]:NULL;
-  mac->coreset[dl_bwp_id][coreset_id - 1] = controlResourceSetToAddModList->list.array[0];
-
-  // Check dedicated UL BWP and pass to MAC
-  mac->ULbwp[0] = ul_bwp_id>0?uplinkBWP_ToAddModList->list.array[0]:NULL;
-  if (mac->ULbwp[0]) AssertFatal(mac->ULbwp[0]->bwp_Dedicated != NULL, "UL bwp_Dedicated is null\n");
+  AssertFatal(searchSpacesToAddModList->list.count < FAPI_NR_MAX_SS_PER_BWP, "too many searchpaces per coreset %d\n", searchSpacesToAddModList->list.count);
 
   // check available Search Spaces in the searchSpacesToAddModList and pass to MAC
   // note: the network configures at most 10 Search Spaces per BWP per cell (including UE-specific and common Search Spaces).
-  for (ss_id = 0; ss_id < searchSpacesToAddModList->list.count; ss_id++) {
+  for (int ss_id = 0; ss_id < searchSpacesToAddModList->list.count; ss_id++) {
     NR_SearchSpace_t *ss = searchSpacesToAddModList->list.array[ss_id];
     AssertFatal(ss->controlResourceSetId != NULL, "ss->controlResourceSetId is null\n");
     AssertFatal(ss->searchSpaceType != NULL, "ss->searchSpaceType is null\n");
-    AssertFatal(*ss->controlResourceSetId == mac->coreset[dl_bwp_id][coreset_id - 1]->controlResourceSetId, "ss->controlResourceSetId is unknown\n");
     AssertFatal(ss->monitoringSymbolsWithinSlot != NULL, "NR_SearchSpace->monitoringSymbolsWithinSlot is null\n");
     AssertFatal(ss->monitoringSymbolsWithinSlot->buf != NULL, "NR_SearchSpace->monitoringSymbolsWithinSlot->buf is null\n");
-    mac->SSpace[dl_bwp_id][ss_id] = ss;
+    AssertFatal(ss->searchSpaceId <= FAPI_NR_MAX_SS, "Invalid searchSpaceId\n");
+    mac->SSpace[dl_bwp_id][ss->searchSpaceId - 1] = ss;
   }
 
+  struct NR_PDCCH_ConfigCommon__commonSearchSpaceList *commonSearchSpaceList = pdcch_ConfigCommon->choice.setup->commonSearchSpaceList;
+  AssertFatal(commonSearchSpaceList != NULL, "commonSearchSpaceList is null\n");
+  AssertFatal(commonSearchSpaceList->list.count > 0, "PDCCH CSS list has 0 elements\n");
+
   // Check available CSSs in the commonSearchSpaceList (list of additional common search spaces)
   // note: commonSearchSpaceList SIZE(1..4)
   for (int css_id = 0; css_id < commonSearchSpaceList->list.count; css_id++) {
     NR_SearchSpace_t *css = commonSearchSpaceList->list.array[css_id];
     AssertFatal(css->controlResourceSetId != NULL, "ss->controlResourceSetId is null\n");
-    AssertFatal(*css->controlResourceSetId == 0 || *css->controlResourceSetId == mac->coreset[dl_bwp_id][coreset_id - 1]->controlResourceSetId, "css->controlResourceSetId %ld is unknown, mac->coreset[%ld][%d]->controlResourceSetId %ld\n",*css->controlResourceSetId,dl_bwp_id,coreset_id-1,mac->coreset[dl_bwp_id][coreset_id - 1]->controlResourceSetId);
- 
     AssertFatal(css->searchSpaceType != NULL, "css->searchSpaceType is null\n");
     AssertFatal(css->monitoringSymbolsWithinSlot != NULL, "css->monitoringSymbolsWithinSlot is null\n");
     AssertFatal(css->monitoringSymbolsWithinSlot->buf != NULL, "css->monitoringSymbolsWithinSlot->buf is null\n");
-    mac->SSpace[dl_bwp_id][ss_id] = css;
-    ss_id++;
+    AssertFatal(css->searchSpaceId <= FAPI_NR_MAX_SS, "Invalid searchSpaceId\n");
+    mac->SSpace[dl_bwp_id][css->searchSpaceId - 1] = css;
   }
 }
 
@@ -559,7 +580,7 @@ int nr_rrc_mac_config_req_ue_logicalChannelBearer(
     int                             cc_idP,
     uint8_t                         gNB_index,
     long                            logicalChannelIdentity,
-    boolean_t                       status){
+    bool                            status){
     NR_UE_MAC_INST_t *mac = get_mac_inst(module_id);
     mac->logicalChannelBearer_exist[logicalChannelIdentity] = status;
     return 0;
diff --git a/openair2/LAYER2/NR_MAC_UE/mac_defs.h b/openair2/LAYER2/NR_MAC_UE/mac_defs.h
index 99cbdf32927..35302eaafba 100644
--- a/openair2/LAYER2/NR_MAC_UE/mac_defs.h
+++ b/openair2/LAYER2/NR_MAC_UE/mac_defs.h
@@ -74,7 +74,7 @@
 // ==========
 
 #define NB_NR_UE_MAC_INST 1
-#define MAX_NUM_BWP       2
+#define MAX_NUM_BWP_UE       4
 #define NUM_SLOT_FRAME    10
 
 /*!\brief value for indicating BSR Timer is not running */
@@ -364,10 +364,10 @@ typedef struct {
   NR_RNTI_Value_t                 *cs_RNTI;
   NR_MIB_t                        *mib;
 
-  NR_BWP_Downlink_t               *DLbwp[MAX_NUM_BWP];
-  NR_BWP_Uplink_t                 *ULbwp[MAX_NUM_BWP];
-  NR_ControlResourceSet_t         *coreset[MAX_NUM_BWP][FAPI_NR_MAX_CORESET_PER_BWP];
-  NR_SearchSpace_t                *SSpace[MAX_NUM_BWP][FAPI_NR_MAX_SS];
+  NR_BWP_Downlink_t               *DLbwp[MAX_NUM_BWP_UE];
+  NR_BWP_Uplink_t                 *ULbwp[MAX_NUM_BWP_UE];
+  NR_ControlResourceSet_t         *coreset[MAX_NUM_BWP_UE][FAPI_NR_MAX_CORESET_PER_BWP];
+  NR_SearchSpace_t                *SSpace[MAX_NUM_BWP_UE][FAPI_NR_MAX_SS];
 
   frame_type_t frame_type;
 
@@ -399,6 +399,11 @@ typedef struct {
   /// measured SSB RSRP in dBm
   short ssb_rsrp_dBm;
 
+  nr_csi_report_t csi_report_template[MAX_CSI_REPORTCONFIG];
+
+  /// measurements from CSI-RS
+  fapi_nr_csirs_measurements_t csirs_measurements;
+
   /// Last NDI of UL HARQ processes
   uint8_t UL_ndi[NR_MAX_HARQ_PROCESSES];
   /// first ULTX of UL HARQ processes
@@ -415,7 +420,7 @@ typedef struct {
   uint8_t BSR_reporting_active;
 
   /// LogicalChannelConfig has bearer.
-  boolean_t logicalChannelBearer_exist[NR_MAX_NUM_LCID];
+  bool logicalChannelBearer_exist[NR_MAX_NUM_LCID];
   NR_UE_SCHEDULING_INFO   scheduling_info;
 
   /// PHR
@@ -546,7 +551,7 @@ typedef struct prach_association_pattern {
 
 // SSB details
 typedef struct ssb_info {
-  boolean_t transmitted; // True if the SSB index is transmitted according to the SSB positions map configuration
+  bool transmitted; // True if the SSB index is transmitted according to the SSB positions map configuration
   prach_occasion_info_t *mapped_ro[MAX_NB_RO_PER_SSB_IN_ASSOCIATION_PATTERN]; // List of mapped RACH Occasions to this SSB index
   uint16_t nb_mapped_ro; // Total number of mapped ROs to this SSB index
 } ssb_info_t;
@@ -558,7 +563,6 @@ typedef struct ssb_list_info {
 } ssb_list_info_t;
 
 void config_dci_pdu(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_dci_dl_pdu_rel15_t *rel15, fapi_nr_dl_config_request_t *dl_config, int rnti_type, int ss_id);
-void fill_dci_search_candidates(NR_SearchSpace_t *ss,fapi_nr_dl_config_dci_dl_pdu_rel15_t *rel15);
 
 /*@}*/
 #endif /*__LAYER2_MAC_DEFS_H__ */
diff --git a/openair2/LAYER2/NR_MAC_UE/mac_proto.h b/openair2/LAYER2/NR_MAC_UE/mac_proto.h
index 7ed99b92b51..161799fb667 100644
--- a/openair2/LAYER2/NR_MAC_UE/mac_proto.h
+++ b/openair2/LAYER2/NR_MAC_UE/mac_proto.h
@@ -85,14 +85,12 @@ int8_t nr_ue_decode_BCCH_DL_SCH(module_id_t module_id,
    \param cc_id                     component carrier id
    \param gNB_index                 gNB index
    \param long                      logicalChannelIdentity
-   \param boolean_t                 status*/
-int nr_rrc_mac_config_req_ue_logicalChannelBearer(
-	    module_id_t                 module_id,
-	    int                         cc_idP,
-	    uint8_t                     gNB_index,
-	    long                        logicalChannelIdentity,
-	    boolean_t                   status
-);
+   \param bool                      status*/
+int nr_rrc_mac_config_req_ue_logicalChannelBearer(module_id_t module_id,
+                                                  int         cc_idP,
+                                                  uint8_t     gNB_index,
+                                                  long        logicalChannelIdentity,
+                                                  bool        status);
 
 /**\brief primitive from RRC layer to MAC layer for configuration L1/L2, now supported 4 rrc messages: MIB, cell_group_config for MAC/PHY, spcell_config(serving cell config)
    \param module_id                 module id
@@ -154,14 +152,14 @@ void fill_scheduled_response(nr_scheduled_response_t *scheduled_response,
 */
 int8_t nr_ue_get_SR(module_id_t module_idP, frame_t frameP, slot_t slotP);
 
-/*! \fn  boolean_t update_bsr(module_id_t module_idP, frame_t frameP, slot_t slotP, uint8_t gNB_index)
+/*! \fn  bool update_bsr(module_id_t module_idP, frame_t frameP, slot_t slotP, uint8_t gNB_index)
    \brief get the rlc stats and update the bsr level for each lcid
 \param[in] Mod_id instance of the UE
 \param[in] frameP Frame index
 \param[in] slot slotP number
 \param[in] uint8_t gNB_index
 */
-boolean_t nr_update_bsr(module_id_t module_idP, frame_t frameP, slot_t slotP, uint8_t gNB_index);
+bool nr_update_bsr(module_id_t module_idP, frame_t frameP, slot_t slotP, uint8_t gNB_index);
 
 /*! \fn  nr_locate_BsrIndexByBufferSize (int *table, int size, int value)
    \brief locate the BSR level in the table as defined in 38.321. This function requires that he values in table to be monotonic, either increasing or decreasing. The returned value is not less than 0, nor greater than n-1, where n is the size of table.
@@ -196,6 +194,7 @@ int nr_get_sf_retxBSRTimer(uint8_t retxBSR_Timer);
 
 int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, frame_t frame, int slot, dci_pdu_rel15_t *dci, fapi_nr_dci_indication_pdu_t *dci_ind);
 int nr_ue_process_dci_indication_pdu(module_id_t module_id, int cc_id, int gNB_index, frame_t frame, int slot, fapi_nr_dci_indication_pdu_t *dci);
+int8_t nr_ue_process_csirs_measurements(module_id_t module_id, frame_t frame, int slot, fapi_nr_csirs_measurements_t *csirs_measurements);
 
 uint32_t get_ssb_frame(uint32_t test);
 
@@ -215,6 +214,18 @@ uint8_t get_ssb_rsrp_payload(NR_UE_MAC_INST_t *mac,
                              NR_CSI_ResourceConfigId_t csi_ResourceConfigId,
                              NR_CSI_MeasConfig_t *csi_MeasConfig);
 
+uint8_t get_csirs_RI_PMI_CQI_payload(NR_UE_MAC_INST_t *mac,
+                                     PUCCH_sched_t *pucch,
+                                     struct NR_CSI_ReportConfig *csi_reportconfig,
+                                     NR_CSI_ResourceConfigId_t csi_ResourceConfigId,
+                                     NR_CSI_MeasConfig_t *csi_MeasConfig);
+
+uint8_t get_csirs_RSRP_payload(NR_UE_MAC_INST_t *mac,
+                               PUCCH_sched_t *pucch,
+                               struct NR_CSI_ReportConfig *csi_reportconfig,
+                               NR_CSI_ResourceConfigId_t csi_ResourceConfigId,
+                               NR_CSI_MeasConfig_t *csi_MeasConfig);
+
 uint8_t nr_get_csi_payload(NR_UE_MAC_INST_t *mac,
                            PUCCH_sched_t *pucch,
                            int csi_report_id,
@@ -243,10 +254,7 @@ int nr_write_ce_ulsch_pdu(uint8_t *mac_ce,
                           uint16_t *crnti,
                           NR_BSR_SHORT *truncated_bsr,
                           NR_BSR_SHORT *short_bsr,
-                          NR_BSR_LONG  *long_bsr
-						  );
-
-void fill_dci_search_candidates(NR_SearchSpace_t *ss,fapi_nr_dl_config_dci_dl_pdu_rel15_t *rel15);
+                          NR_BSR_LONG  *long_bsr);
 
 void config_dci_pdu(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_dci_dl_pdu_rel15_t *rel15, fapi_nr_dl_config_request_t *dl_config, int rnti_type, int ss_id);
 
@@ -260,14 +268,9 @@ void get_bwp_info(NR_UE_MAC_INST_t *mac,
                   NR_BWP_UplinkDedicated_t **ubwpd,
                   NR_BWP_UplinkCommon_t **ubwpc);
 
-uint8_t nr_extract_dci_info(NR_UE_MAC_INST_t *mac,
-                            uint8_t dci_format,
-                            uint8_t dci_length,
-                            uint16_t rnti,
-                            uint64_t *dci_pdu,
-                            dci_pdu_rel15_t *nr_pdci_info_extracted);
+NR_BWP_DownlinkCommon_t *get_bwp_downlink_common(NR_UE_MAC_INST_t *mac, NR_BWP_Id_t dl_bwp_id);
 
-NR_PUSCH_TimeDomainResourceAllocationList_t *choose_ul_tda_list(NR_PUSCH_Config_t *pusch_Config,NR_PUSCH_ConfigCommon_t *pusch_ConfigCommon);
+NR_PUSCH_TimeDomainResourceAllocationList_t *choose_ul_tda_list(const NR_PUSCH_Config_t *pusch_Config,NR_PUSCH_ConfigCommon_t *pusch_ConfigCommon);
 NR_PDSCH_TimeDomainResourceAllocationList_t *choose_dl_tda_list(NR_PDSCH_Config_t *pdsch_Config,NR_PDSCH_ConfigCommon_t *pdsch_ConfigCommon);
 
 int8_t nr_ue_process_dci_time_dom_resource_assignment(NR_UE_MAC_INST_t *mac,
@@ -446,12 +449,16 @@ int8_t nr_ue_process_dci_freq_dom_resource_assignment(nfapi_nr_ue_pusch_pdu_t *p
                                                       uint16_t riv);
 
 void config_dci_pdu(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_dci_dl_pdu_rel15_t *rel15, fapi_nr_dl_config_request_t *dl_config, int rnti_type, int ss_id);
-void fill_dci_search_candidates(NR_SearchSpace_t *ss,fapi_nr_dl_config_dci_dl_pdu_rel15_t *rel15);
+void fill_dci_search_candidates(NR_SearchSpace_t *ss,fapi_nr_dl_config_dci_dl_pdu_rel15_t *rel15, int slot, int rnti);
 
 void build_ssb_to_ro_map(NR_UE_MAC_INST_t *mac);
 
 void config_bwp_ue(NR_UE_MAC_INST_t *mac, uint16_t *bwp_ind, uint8_t *dci_format);
 
+void configure_ss_coreset(NR_UE_MAC_INST_t *mac,
+                          NR_ServingCellConfig_t *scd,
+                          NR_BWP_Id_t dl_bwp_id);
+
 fapi_nr_ul_config_request_t *get_ul_config_request(NR_UE_MAC_INST_t *mac, int slot);
 
 void fill_ul_config(fapi_nr_ul_config_request_t *ul_config, frame_t frame_tx, int slot_tx, uint8_t pdu_type);
diff --git a/openair2/LAYER2/NR_MAC_UE/nr_l1_helpers.h b/openair2/LAYER2/NR_MAC_UE/nr_l1_helpers.h
old mode 100755
new mode 100644
index 8b3f00af43d..3bfeb29e2e0
--- a/openair2/LAYER2/NR_MAC_UE/nr_l1_helpers.h
+++ b/openair2/LAYER2/NR_MAC_UE/nr_l1_helpers.h
@@ -24,3 +24,4 @@
 */
 long nr_get_Pcmax(module_id_t mod_id);
 /** @}*/
+
diff --git a/openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c b/openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
index 3851ee011d3..507cdb2661d 100644
--- a/openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
+++ b/openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
@@ -94,10 +94,12 @@ void init_RA(module_id_t mod_id,
       }
     }
     if (ss_id < 0) {
-      ra_ss = mac->DLbwp[0]->bwp_Common->pdcch_ConfigCommon->choice.setup->ra_SearchSpace;
-      if (ra_ss) {
-        commonSearchSpaceList = mac->DLbwp[0]->bwp_Common->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList;
-        ss_id = *mac->DLbwp[0]->bwp_Common->pdcch_ConfigCommon->choice.setup->ra_SearchSpace;
+      if (mac->DL_BWP_Id>0) {
+        ra_ss = mac->DLbwp[mac->DL_BWP_Id-1]->bwp_Common->pdcch_ConfigCommon->choice.setup->ra_SearchSpace;
+        if (ra_ss) {
+          commonSearchSpaceList = mac->DLbwp[mac->DL_BWP_Id-1]->bwp_Common->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList;
+          ss_id = *mac->DLbwp[mac->DL_BWP_Id-1]->bwp_Common->pdcch_ConfigCommon->choice.setup->ra_SearchSpace;
+        }
       }
     }
   }
@@ -323,7 +325,7 @@ void ssb_rach_config(RA_config_t *ra, NR_PRACH_RESOURCES_t *prach_resources, NR_
   // =======================================
 
   NR_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR ssb_perRACH_config = nr_rach_ConfigCommon->ssb_perRACH_OccasionAndCB_PreamblesPerSSB->present;
-  boolean_t multiple_ssb_per_ro; // true if more than one or exactly one SSB per RACH occasion, false if more than one RO per SSB
+  bool multiple_ssb_per_ro; // true if more than one or exactly one SSB per RACH occasion, false if more than one RO per SSB
   uint8_t ssb_rach_ratio; // Nb of SSBs per RACH or RACHs per SSB
   int total_preambles_per_ssb;
   uint8_t ssb_nb_in_ro;
@@ -743,7 +745,7 @@ uint8_t nr_ue_get_rach(NR_PRACH_RESOURCES_t *prach_resources,
 
       } else if (get_softmodem_params()->nsa) {
 
-        uint8_t mac_sdus[MAX_NR_ULSCH_PAYLOAD_BYTES];
+        uint8_t mac_sdus[MAX_NUM_NR_ULSCH_SEGMENTS_PER_LAYER*1056];
         uint16_t sdu_lengths[NB_RB_MAX] = {0};
         int TBS_bytes = 848;
         int mac_ce_len = 0;
diff --git a/openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c b/openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
index 0ee6f5501c1..9b618cdbfb4 100644
--- a/openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
+++ b/openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
@@ -49,7 +49,9 @@
 
 //#define DEBUG_DCI
 
-void fill_dci_search_candidates(NR_SearchSpace_t *ss,fapi_nr_dl_config_dci_dl_pdu_rel15_t *rel15) {
+void fill_dci_search_candidates(NR_SearchSpace_t *ss,
+                                fapi_nr_dl_config_dci_dl_pdu_rel15_t *rel15,
+                                int slot, int rnti) {
 
   LOG_D(NR_MAC,"Filling search candidates for DCI\n");
 
@@ -57,6 +59,9 @@ void fill_dci_search_candidates(NR_SearchSpace_t *ss,fapi_nr_dl_config_dci_dl_pd
   uint8_t number_of_candidates=0;
   rel15->number_of_candidates=0;
   int i=0;
+  uint32_t Y = 0;
+  if (slot >= 0)
+    Y = get_Y(ss, slot, rnti);
   for (int maxL=16;maxL>0;maxL>>=1) {
     find_aggregation_candidates(&aggregation,
                                 &number_of_candidates,
@@ -65,8 +70,17 @@ void fill_dci_search_candidates(NR_SearchSpace_t *ss,fapi_nr_dl_config_dci_dl_pd
     if (number_of_candidates>0) {
       LOG_D(NR_MAC,"L %d, number of candidates %d, aggregation %d\n",maxL,number_of_candidates,aggregation);
       rel15->number_of_candidates += number_of_candidates;
+      int N_cce_sym = 0; // nb of rbs of coreset per symbol
+      for (int i=0;i<6;i++) {
+        for (int t=0;t<8;t++) {
+          N_cce_sym+=((rel15->coreset.frequency_domain_resource[i]>>t)&1);
+        }
+      }
+      int N_cces = N_cce_sym*rel15->coreset.duration;
       for (int j=0; j<number_of_candidates; i++,j++) {
-        rel15->CCE[i] = j*aggregation;
+        int first_cce = aggregation * (( Y + CEILIDIV((j*N_cces),(aggregation*number_of_candidates)) + 0 ) % CEILIDIV(N_cces,aggregation));
+        LOG_D(NR_MAC,"Candidate %d of %d first_cce %d (L %d N_cces %d Y %d)\n", j, number_of_candidates, first_cce, aggregation, N_cces, Y);
+        rel15->CCE[i] = first_cce;
         rel15->L[i] = aggregation;
       }
     }
@@ -80,7 +94,7 @@ void config_dci_pdu(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_dci_dl_pdu_rel15_t
 
   AssertFatal(mac->scc == NULL || mac->scc_SIB == NULL, "both scc and scc_SIB cannot be non-null\n");
 
-  NR_BWP_Id_t bwp_id = mac->DL_BWP_Id;
+  NR_BWP_Id_t dl_bwp_id = mac->DL_BWP_Id;
   NR_ServingCellConfigCommon_t *scc = mac->scc;
   NR_ServingCellConfigCommonSIB_t *scc_SIB = mac->scc_SIB;
   NR_BWP_DownlinkCommon_t *bwp_Common=NULL;
@@ -91,7 +105,7 @@ void config_dci_pdu(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_dci_dl_pdu_rel15_t
     initialDownlinkBWP =  scc!=NULL ? scc->downlinkConfigCommon->initialDownlinkBWP : &scc_SIB->downlinkConfigCommon.initialDownlinkBWP;
     initialUplinkBWP = scc!=NULL ? scc->uplinkConfigCommon->initialUplinkBWP : &scc_SIB->uplinkConfigCommon->initialUplinkBWP;
   }
-  bwp_Common = bwp_id>0 ? mac->DLbwp[bwp_id-1]->bwp_Common : NULL;
+  bwp_Common = dl_bwp_id>0 ? mac->DLbwp[dl_bwp_id-1]->bwp_Common : NULL;
 
   NR_SearchSpace_t *ss;
   NR_ControlResourceSet_t *coreset;
@@ -102,7 +116,7 @@ void config_dci_pdu(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_dci_dl_pdu_rel15_t
                   ss_id,mac->ra.ss->searchSpaceId);
     }
     else
-      ss = mac->SSpace[bwp_id][ss_id];
+      ss = mac->SSpace[dl_bwp_id][ss_id-1];
   }
   else
     ss = mac->search_space_zero;
@@ -110,7 +124,7 @@ void config_dci_pdu(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_dci_dl_pdu_rel15_t
   uint8_t coreset_id = *ss->controlResourceSetId;
 
   if(coreset_id>0) {
-    coreset = mac->coreset[bwp_id][coreset_id - 1];
+    coreset = mac->coreset[dl_bwp_id][coreset_id - 1];
     rel15->coreset.CoreSetType = NFAPI_NR_CSET_CONFIG_PDCCH_CONFIG;
   } else {
     coreset = mac->coreset0;
@@ -169,7 +183,7 @@ void config_dci_pdu(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_dci_dl_pdu_rel15_t
       rel15->SubcarrierSpacing = bwp_Common->genericParameters.subcarrierSpacing;
     }
     for (int i = 0; i < rel15->num_dci_options; i++) {
-      rel15->dci_length_options[i] = nr_dci_size(initialDownlinkBWP,initialUplinkBWP, mac->cg, &mac->def_dci_pdu_rel15[rel15->dci_format_options[i]], rel15->dci_format_options[i], NR_RNTI_C, rel15->BWPSize, bwp_id, mac->type0_PDCCH_CSS_config.num_rbs);
+      rel15->dci_length_options[i] = nr_dci_size(initialDownlinkBWP,initialUplinkBWP, mac->cg, &mac->def_dci_pdu_rel15[rel15->dci_format_options[i]], rel15->dci_format_options[i], NR_RNTI_C, rel15->BWPSize, dl_bwp_id, coreset_id, mac->type0_PDCCH_CSS_config.num_rbs);
     }
     break;
     case NR_RNTI_RA:
@@ -185,7 +199,7 @@ void config_dci_pdu(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_dci_dl_pdu_rel15_t
       rel15->BWPStart = NRRIV2PRBOFFSET(bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
     }
     rel15->SubcarrierSpacing = initialDownlinkBWP->genericParameters.subcarrierSpacing;
-    rel15->dci_length_options[0] = nr_dci_size(initialDownlinkBWP,initialUplinkBWP, mac->cg, &mac->def_dci_pdu_rel15[rel15->dci_format_options[0]], rel15->dci_format_options[0], NR_RNTI_RA, rel15->BWPSize, bwp_id, mac->type0_PDCCH_CSS_config.num_rbs);
+    rel15->dci_length_options[0] = nr_dci_size(initialDownlinkBWP,initialUplinkBWP, mac->cg, &mac->def_dci_pdu_rel15[rel15->dci_format_options[0]], rel15->dci_format_options[0], NR_RNTI_RA, rel15->BWPSize, dl_bwp_id, coreset_id, mac->type0_PDCCH_CSS_config.num_rbs);
     break;
     case NR_RNTI_P:
     break;
@@ -200,7 +214,7 @@ void config_dci_pdu(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_dci_dl_pdu_rel15_t
       rel15->BWPStart = mac->type0_PDCCH_CSS_config.cset_start_rb;
       rel15->SubcarrierSpacing = initialDownlinkBWP->genericParameters.subcarrierSpacing;
       for (int i = 0; i < rel15->num_dci_options; i++) {
-        rel15->dci_length_options[i] = nr_dci_size(initialDownlinkBWP,initialUplinkBWP, mac->cg, &mac->def_dci_pdu_rel15[rel15->dci_format_options[i]], rel15->dci_format_options[i], NR_RNTI_TC, rel15->BWPSize, bwp_id, mac->type0_PDCCH_CSS_config.num_rbs);
+        rel15->dci_length_options[i] = nr_dci_size(initialDownlinkBWP,initialUplinkBWP, mac->cg, &mac->def_dci_pdu_rel15[rel15->dci_format_options[i]], rel15->dci_format_options[i], NR_RNTI_TC, rel15->BWPSize, dl_bwp_id, coreset_id, mac->type0_PDCCH_CSS_config.num_rbs);
       }
     break;
     case NR_RNTI_SP_CSI:
@@ -223,7 +237,7 @@ void config_dci_pdu(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_dci_dl_pdu_rel15_t
         rel15->SubcarrierSpacing = mac->mib->subCarrierSpacingCommon + 2;
 
       for (int i = 0; i < rel15->num_dci_options; i++) {
-        rel15->dci_length_options[i] = nr_dci_size(initialDownlinkBWP,initialUplinkBWP, mac->cg, &mac->def_dci_pdu_rel15[rel15->dci_format_options[i]], rel15->dci_format_options[i], NR_RNTI_SI, rel15->BWPSize, 0, mac->type0_PDCCH_CSS_config.num_rbs);
+        rel15->dci_length_options[i] = nr_dci_size(initialDownlinkBWP,initialUplinkBWP, mac->cg, &mac->def_dci_pdu_rel15[rel15->dci_format_options[i]], rel15->dci_format_options[i], NR_RNTI_SI, rel15->BWPSize, 0, coreset_id, mac->type0_PDCCH_CSS_config.num_rbs);
       }
     break;
     case NR_RNTI_SFI:
@@ -273,11 +287,17 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl
 
   LOG_D(NR_MAC, "[DCI_CONFIG] ra_rnti %p (%x) crnti %p (%x) t_crnti %p (%x)\n", &ra->ra_rnti, ra->ra_rnti, &mac->crnti, mac->crnti, &ra->t_crnti, ra->t_crnti);
 
-    // loop over all available SS for CORESET ID 1
+  // loop over all available SS for bwp_id
   if (bwpd) {
-      for (ss_id = 0; ss_id < FAPI_NR_MAX_SS && mac->SSpace[bwp_id][ss_id] != NULL; ss_id++){
+      for (ss_id = 1; ss_id <= FAPI_NR_MAX_SS; ss_id++){
+
+        if(mac->SSpace[bwp_id][ss_id-1]==NULL) {
+          continue;
+        }
+
 	LOG_D(NR_MAC, "[DCI_CONFIG] ss_id %d\n",ss_id);
-	NR_SearchSpace_t *ss = mac->SSpace[bwp_id][ss_id];
+	NR_SearchSpace_t *ss = mac->SSpace[bwp_id][ss_id-1];
+        AssertFatal(ss_id == ss->searchSpaceId,"SS IDs don't correspond\n");
 	fapi_nr_dl_config_dci_dl_pdu_rel15_t *rel15 = &dl_config->dl_config_list[dl_config->number_pdus].dci_config_pdu.dci_config_rel15;
 	NR_SetupRelease_PDCCH_ConfigCommon_t *pdcch_ConfigCommon = bwp_Common->pdcch_ConfigCommon;
 	struct NR_PhysicalCellGroupConfig *phy_cgc = mac->cg->physicalCellGroupConfig;
@@ -285,15 +305,6 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl
 	case NR_SearchSpace__searchSpaceType_PR_common:
 	  // this is for CSSs, we use BWP common and pdcch_ConfigCommon
 
-	  // Fetch configuration for searchSpaceZero
-	  // note: The search space with the SearchSpaceId = 0 identifies the search space configured via PBCH (MIB) and in ServingCellConfigCommon (searchSpaceZero).
-	  if (pdcch_ConfigCommon->choice.setup->searchSpaceZero){
-	    if (pdcch_ConfigCommon->choice.setup->searchSpaceSIB1 == NULL){
-	      pdcch_ConfigCommon->choice.setup->searchSpaceSIB1=calloc(1,sizeof(*pdcch_ConfigCommon->choice.setup->searchSpaceSIB1));
-	    }
-	    *pdcch_ConfigCommon->choice.setup->searchSpaceSIB1 = 0;
-	    LOG_D(NR_MAC, "[DCI_CONFIG] Configure SearchSpace#0 of the initial BWP\n");
-	  }
 	  if (ss->searchSpaceType->choice.common->dci_Format0_0_AndFormat1_0){
 	    // check available SS IDs
 	    if (pdcch_ConfigCommon->choice.setup->ra_SearchSpace){
@@ -308,14 +319,14 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl
 		  } else {
 		    config_dci_pdu(mac, rel15, dl_config, NR_RNTI_RA, ss_id);
 		  }
-		  fill_dci_search_candidates(ss, rel15);
+		  fill_dci_search_candidates(ss, rel15, -1, -1);
 		  break;
 		case WAIT_CONTENTION_RESOLUTION:
 		  LOG_D(NR_MAC, "[DCI_CONFIG] Configure monitoring of PDCCH candidates in Type1-PDCCH common random access search space (RA-Msg4)\n");
 		  rel15->num_dci_options = 1;
 		  rel15->dci_format_options[0] = NR_DL_DCI_FORMAT_1_0;
 		  config_dci_pdu(mac, rel15, dl_config, NR_RNTI_TC, -1);
-		  fill_dci_search_candidates(ss, rel15);
+		  fill_dci_search_candidates(ss, rel15, -1, -1);
 		  break;
 		default:
 		  break;
@@ -387,7 +398,7 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl
             rel15->dci_format_options[0] = NR_DL_DCI_FORMAT_1_1;
             rel15->dci_format_options[1] = NR_UL_DCI_FORMAT_0_1;
             config_dci_pdu(mac, rel15, dl_config, NR_RNTI_C, ss_id);
-            fill_dci_search_candidates(ss, rel15);
+            fill_dci_search_candidates(ss, rel15, slot, mac->crnti);
 
 //#ifdef DEBUG_DCI
 		LOG_D(NR_MAC, "[DCI_CONFIG] ss %d ue_Specific %p searchSpaceType->present %d dci_Formats %d\n",
@@ -423,35 +434,4 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl
 
     AssertFatal(1==0,"Handle DCI searching when CellGroup without dedicated BWP\n");
   }
-  // Search space 0, CORESET ID 0
-
-  NR_SetupRelease_PDCCH_ConfigCommon_t *pdcch_ConfigCommon = bwp_Common->pdcch_ConfigCommon;
-
-  if (pdcch_ConfigCommon &&
-      pdcch_ConfigCommon->choice.setup->searchSpaceSIB1 &&
-      !get_softmodem_params()->nsa) {
-
-    NR_SearchSpace_t *ss0 = mac->search_space_zero;
-    fapi_nr_dl_config_dci_dl_pdu_rel15_t *rel15 = &dl_config->dl_config_list[dl_config->number_pdus].dci_config_pdu.dci_config_rel15;
-
-    if (ss0->searchSpaceId == *pdcch_ConfigCommon->choice.setup->searchSpaceSIB1){
-      if( (frame%2 == mac->type0_PDCCH_CSS_config.sfn_c) && (slot == mac->type0_PDCCH_CSS_config.n_0) ){
-        rel15->num_dci_options = 1;
-        rel15->dci_format_options[0] = NR_DL_DCI_FORMAT_1_0;
-        config_dci_pdu(mac, rel15, dl_config, NR_RNTI_SI, -1);
-        fill_dci_search_candidates(ss0, rel15);
-      }
-    }
-  }
-  else if (!get_softmodem_params()->nsa) { // use coreset0/ss0
-    NR_SearchSpace_t *ss0 = mac->search_space_zero;
-    if(ss0) {
-      fapi_nr_dl_config_dci_dl_pdu_rel15_t *rel15 = &dl_config->dl_config_list[0].dci_config_pdu.dci_config_rel15;
-      rel15->num_dci_options = 1;
-      rel15->dci_format_options[0] = NR_DL_DCI_FORMAT_1_0;
-      config_dci_pdu(mac, rel15, dl_config, NR_RNTI_C , -1);
-      fill_dci_search_candidates(ss0, rel15);
-      dl_config->number_pdus = 1;
-    }
-  }
 }
diff --git a/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c b/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
index 8e9442d00c1..67df66b66da 100644
--- a/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+++ b/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
@@ -134,6 +134,13 @@ const initial_pucch_resource_t initial_pucch_resource[16] = {
 };
 
 
+static uint8_t nr_extract_dci_info(NR_UE_MAC_INST_t *mac,
+                            uint8_t dci_format,
+                            uint8_t dci_length,
+                            uint16_t rnti,
+                            uint64_t *dci_pdu,
+                            dci_pdu_rel15_t *nr_pdci_info_extracted);
+
 void nr_ue_init_mac(module_id_t module_idP) {
   int i;
 
@@ -191,32 +198,27 @@ void get_bwp_info(NR_UE_MAC_INST_t *mac,
                   NR_BWP_UplinkDedicated_t **ubwpd,
                   NR_BWP_UplinkCommon_t **ubwpc) {
 
-    if (dl_bwp_id > 0) {
-       AssertFatal(mac->DLbwp[dl_bwp_id-1]!=NULL,"mac->DLbwp[%d] is null, shouldn't be\n",
-                    (int)dl_bwp_id-1);
-       *bwpd = mac->DLbwp[dl_bwp_id-1]->bwp_Dedicated;
-       if (mac->DLbwp[dl_bwp_id-1]->bwp_Common) *bwpc = mac->DLbwp[dl_bwp_id-1]->bwp_Common;
-       else if (mac->scc_SIB) *bwpc = &mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP;
-       else if (mac->scc) *bwpc = mac->scc->downlinkConfigCommon->initialDownlinkBWP;
-       AssertFatal(*bwpc!=NULL,"bwpc shouldn't be null\n");
-    } else {
-       if (mac->cg &&
-           mac->cg->spCellConfig &&
-           mac->cg->spCellConfig->spCellConfigDedicated &&
-           mac->cg->spCellConfig->spCellConfigDedicated->initialDownlinkBWP)
-          *bwpd = mac->cg->spCellConfig->spCellConfigDedicated->initialDownlinkBWP;
-       if (mac->scc_SIB) *bwpc = &mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP;
-       else if (mac->scc) *bwpc = mac->scc->downlinkConfigCommon->initialDownlinkBWP;
-       AssertFatal(*bwpc!=NULL,"bwpc shouldn't be null\n");
-    }
+  if (dl_bwp_id > 0) {
+    AssertFatal(mac->DLbwp[dl_bwp_id-1]!=NULL,"mac->DLbwp[%d] is null, shouldn't be\n", (int)dl_bwp_id-1);
+    *bwpd = mac->DLbwp[dl_bwp_id-1]->bwp_Dedicated;
+  } else {
+    if (mac->cg &&
+        mac->cg->spCellConfig &&
+        mac->cg->spCellConfig->spCellConfigDedicated &&
+        mac->cg->spCellConfig->spCellConfigDedicated->initialDownlinkBWP)
+      *bwpd = mac->cg->spCellConfig->spCellConfigDedicated->initialDownlinkBWP;
+  }
+
+  *bwpc = get_bwp_downlink_common(mac, dl_bwp_id);
+  AssertFatal(*bwpc!=NULL,"bwpc shouldn't be null\n");
 
     if (ul_bwp_id > 0) {
        AssertFatal(mac->ULbwp[ul_bwp_id-1]!=NULL,"mac->ULbwp[%d] is null, shouldn't be\n",
                    ul_bwp_id-1);
        *ubwpd = mac->ULbwp[ul_bwp_id-1]->bwp_Dedicated;
        if (mac->ULbwp[ul_bwp_id-1]->bwp_Common) *ubwpc = mac->ULbwp[ul_bwp_id-1]->bwp_Common;
-       else if (mac->scc_SIB) *ubwpc = &mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP;
        else if (mac->scc) *ubwpc = mac->scc->uplinkConfigCommon->initialUplinkBWP;
+       else if (mac->scc_SIB) *ubwpc = &mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP;
        AssertFatal(*bwpc!=NULL,"bwpc shouldn't be null\n");
 
     }
@@ -227,12 +229,24 @@ void get_bwp_info(NR_UE_MAC_INST_t *mac,
            mac->cg->spCellConfig->spCellConfigDedicated->uplinkConfig &&
            mac->cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP)
           *ubwpd = mac->cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP;
-       if (mac->scc_SIB) *ubwpc = &mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP;
-       else if (mac->scc) *ubwpc = mac->scc->uplinkConfigCommon->initialUplinkBWP;
+       if (mac->scc) *ubwpc = mac->scc->uplinkConfigCommon->initialUplinkBWP;
+       else if (mac->scc_SIB) *ubwpc = &mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP;
        AssertFatal(*ubwpc!=NULL,"ubwpc shouldn't be null\n");
     }
 }
 
+NR_BWP_DownlinkCommon_t *get_bwp_downlink_common(NR_UE_MAC_INST_t *mac, NR_BWP_Id_t dl_bwp_id) {
+  NR_BWP_DownlinkCommon_t *bwp_Common = NULL;
+  if (dl_bwp_id > 0 && mac->cg->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList) {
+    bwp_Common = mac->cg->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.array[dl_bwp_id-1]->bwp_Common;
+  } else if (mac->scc) {
+    bwp_Common = mac->scc->downlinkConfigCommon->initialDownlinkBWP;
+  } else if (mac->scc_SIB) {
+    bwp_Common = &mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP;
+  }
+  return bwp_Common;
+}
+
 NR_PDSCH_TimeDomainResourceAllocationList_t *choose_dl_tda_list(NR_PDSCH_Config_t *pdsch_Config,NR_PDSCH_ConfigCommon_t *pdsch_ConfigCommon) {
 
     NR_PDSCH_TimeDomainResourceAllocationList_t *pdsch_TimeDomainAllocationList=NULL;
@@ -246,7 +260,7 @@ NR_PDSCH_TimeDomainResourceAllocationList_t *choose_dl_tda_list(NR_PDSCH_Config_
     return(pdsch_TimeDomainAllocationList);
 }
 
-NR_PUSCH_TimeDomainResourceAllocationList_t *choose_ul_tda_list(NR_PUSCH_Config_t *pusch_Config,NR_PUSCH_ConfigCommon_t *pusch_ConfigCommon) {
+NR_PUSCH_TimeDomainResourceAllocationList_t *choose_ul_tda_list(const NR_PUSCH_Config_t *pusch_Config,NR_PUSCH_ConfigCommon_t *pusch_ConfigCommon) {
 
     NR_PUSCH_TimeDomainResourceAllocationList_t *pusch_TimeDomainAllocationList=NULL;
 
@@ -572,7 +586,7 @@ int8_t nr_ue_process_dci_time_dom_resource_assignment(NR_UE_MAC_INST_t *mac,
   if(pusch_config_pdu != NULL){
     if (pusch_TimeDomainAllocationList && use_default==false) {
       if (time_domain_ind >= pusch_TimeDomainAllocationList->list.count) {
-        LOG_E(MAC, "time_domain_ind %d >= pusch->TimeDomainAllocationList->list.count %d\n",
+        LOG_E(NR_MAC, "time_domain_ind %d >= pusch->TimeDomainAllocationList->list.count %d\n",
               time_domain_ind, pusch_TimeDomainAllocationList->list.count);
         pusch_config_pdu->start_symbol_index=0;
         pusch_config_pdu->nr_of_symbols=0;
@@ -633,10 +647,13 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
   RA_config_t *ra = &mac->ra;
   fapi_nr_dl_config_request_t *dl_config = &mac->dl_config_request;
   uint8_t is_Msg3 = 0;
+  NR_BWP_Id_t dl_bwp_id = mac->DL_BWP_Id;
+  NR_BWP_Id_t ul_bwp_id = mac->UL_BWP_Id;
   int default_abc = 1;
 
   uint16_t n_RB_DLBWP;
-  if (mac->DLbwp[0]) n_RB_DLBWP = NRRIV2BW(mac->DLbwp[0]->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
+  if (dl_bwp_id>0 && mac->DLbwp[dl_bwp_id-1]) n_RB_DLBWP = NRRIV2BW(mac->DLbwp[dl_bwp_id-1]->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
+  else if (mac->scc) n_RB_DLBWP =  NRRIV2BW(mac->scc->uplinkConfigCommon->initialUplinkBWP->genericParameters.locationAndBandwidth,MAX_BWP_SIZE);
   else if (mac->scc_SIB) n_RB_DLBWP =  NRRIV2BW(mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP.genericParameters.locationAndBandwidth,MAX_BWP_SIZE);
   else n_RB_DLBWP = mac->type0_PDCCH_CSS_config.num_rbs;
 
@@ -806,7 +823,7 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
     dl_config->dl_config_list[dl_config->number_pdus].dlsch_config_pdu.rnti = rnti;
     fapi_nr_dl_config_dlsch_pdu_rel15_t *dlsch_config_pdu_1_0 = &dl_config->dl_config_list[dl_config->number_pdus].dlsch_config_pdu.dlsch_config_rel15;
 
-    NR_PDSCH_Config_t *pdsch_config= (mac->DLbwp[0]) ? mac->DLbwp[0]->bwp_Dedicated->pdsch_Config->choice.setup : NULL;
+    NR_PDSCH_Config_t *pdsch_config= (dl_bwp_id>0 && mac->DLbwp[dl_bwp_id-1]) ? mac->DLbwp[dl_bwp_id-1]->bwp_Dedicated->pdsch_Config->choice.setup : NULL;
     int is_common=0;
     if(rnti == SI_RNTI) {
       NR_Type0_PDCCH_CSS_config_t type0_PDCCH_CSS_config = mac->type0_PDCCH_CSS_config;
@@ -833,14 +850,19 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
           dlsch_config_pdu_1_0->BWPStart = NRRIV2PRBOFFSET(mac->scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
         }
         if (!get_softmodem_params()->sa) { // NSA mode is not using the Initial BWP
-          dlsch_config_pdu_1_0->BWPStart = NRRIV2PRBOFFSET(mac->DLbwp[0]->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
-          pdsch_config = mac->DLbwp[0]->bwp_Dedicated->pdsch_Config->choice.setup;
+          dlsch_config_pdu_1_0->BWPStart = NRRIV2PRBOFFSET(mac->DLbwp[dl_bwp_id-1]->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
+          pdsch_config = mac->DLbwp[dl_bwp_id-1]->bwp_Dedicated->pdsch_Config->choice.setup;
         }
-      } else if (mac->DLbwp[0]) {
-        dlsch_config_pdu_1_0->BWPSize = NRRIV2BW(mac->DLbwp[0]->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
-        dlsch_config_pdu_1_0->BWPStart = NRRIV2PRBOFFSET(mac->DLbwp[0]->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
-        dlsch_config_pdu_1_0->SubcarrierSpacing = mac->DLbwp[0]->bwp_Common->genericParameters.subcarrierSpacing;
-        pdsch_config = mac->DLbwp[0]->bwp_Dedicated->pdsch_Config->choice.setup;
+      } else if (dl_bwp_id>0 && mac->DLbwp[dl_bwp_id-1]) {
+        dlsch_config_pdu_1_0->BWPSize = NRRIV2BW(mac->DLbwp[dl_bwp_id-1]->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
+        dlsch_config_pdu_1_0->BWPStart = NRRIV2PRBOFFSET(mac->DLbwp[dl_bwp_id-1]->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
+        dlsch_config_pdu_1_0->SubcarrierSpacing = mac->DLbwp[dl_bwp_id-1]->bwp_Common->genericParameters.subcarrierSpacing;
+        pdsch_config = mac->DLbwp[dl_bwp_id-1]->bwp_Dedicated->pdsch_Config->choice.setup;
+      } else if (mac->scc) {
+        dlsch_config_pdu_1_0->BWPSize = NRRIV2BW(mac->scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
+        dlsch_config_pdu_1_0->BWPStart = NRRIV2PRBOFFSET(mac->scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
+        dlsch_config_pdu_1_0->SubcarrierSpacing = mac->scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.subcarrierSpacing;
+        pdsch_config = NULL;
       } else if (mac->scc_SIB) {
         dlsch_config_pdu_1_0->BWPSize = NRRIV2BW(mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP.genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
         dlsch_config_pdu_1_0->BWPStart = NRRIV2PRBOFFSET(mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP.genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
@@ -858,13 +880,14 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
 
 
     NR_PDSCH_TimeDomainResourceAllocationList_t *pdsch_TimeDomainAllocationList = NULL;
-    if (mac->DLbwp[0] &&
-        mac->DLbwp[0]->bwp_Dedicated &&
-        mac->DLbwp[0]->bwp_Dedicated->pdsch_Config &&
-        mac->DLbwp[0]->bwp_Dedicated->pdsch_Config->choice.setup->pdsch_TimeDomainAllocationList)
-      pdsch_TimeDomainAllocationList = mac->DLbwp[0]->bwp_Dedicated->pdsch_Config->choice.setup->pdsch_TimeDomainAllocationList->choice.setup;
-    else if (mac->DLbwp[0] && mac->DLbwp[0]->bwp_Common->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList)
-      pdsch_TimeDomainAllocationList = mac->DLbwp[0]->bwp_Common->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList;
+    if (dl_bwp_id>0 &&
+        mac->DLbwp[dl_bwp_id-1] &&
+        mac->DLbwp[dl_bwp_id-1]->bwp_Dedicated &&
+        mac->DLbwp[dl_bwp_id-1]->bwp_Dedicated->pdsch_Config &&
+        mac->DLbwp[dl_bwp_id-1]->bwp_Dedicated->pdsch_Config->choice.setup->pdsch_TimeDomainAllocationList)
+      pdsch_TimeDomainAllocationList = mac->DLbwp[dl_bwp_id-1]->bwp_Dedicated->pdsch_Config->choice.setup->pdsch_TimeDomainAllocationList->choice.setup;
+    else if (dl_bwp_id>0 && mac->DLbwp[dl_bwp_id-1] && mac->DLbwp[dl_bwp_id-1]->bwp_Common->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList)
+      pdsch_TimeDomainAllocationList = mac->DLbwp[dl_bwp_id-1]->bwp_Common->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList;
     else if (mac->scc_SIB && mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP.pdsch_ConfigCommon->choice.setup)
       pdsch_TimeDomainAllocationList = mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP.pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList;
 
@@ -881,10 +904,10 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
       mappingtype = pdsch_TimeDomainAllocationList->list.array[dci->time_domain_assignment.val]->mappingType;
 
     struct NR_DMRS_DownlinkConfig *dl_dmrs_config = NULL;
-    if(mac->DLbwp[0])
+    if(dl_bwp_id>0 && mac->DLbwp[dl_bwp_id-1] != NULL)
       dl_dmrs_config = (mappingtype == typeA) ?
-                       mac->DLbwp[0]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup :
-                       mac->DLbwp[0]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeB->choice.setup;
+                       mac->DLbwp[dl_bwp_id-1]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup :
+                       mac->DLbwp[dl_bwp_id-1]->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeB->choice.setup;
 
     dlsch_config_pdu_1_0->nscid = 0;
     if(dl_dmrs_config && dl_dmrs_config->scramblingID0)
@@ -897,7 +920,8 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
                                                          (get_softmodem_params()->nsa) ? mac->scc->dmrs_TypeA_Position : mac->mib->dmrs_TypeA_Position,
                                                          dlsch_config_pdu_1_0->number_symbols,
                                                          dlsch_config_pdu_1_0->start_symbol,
-                                                         mappingtype, 1);
+                                                         mappingtype,
+                                                         1);
     dlsch_config_pdu_1_0->dmrsConfigType = (dl_dmrs_config != NULL) ?
                                            (dl_dmrs_config->dmrs_Type == NULL ? 0 : 1) : 0;
 
@@ -918,6 +942,36 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
       LOG_W(MAC, "[%d.%d] MCS value %d out of bounds! Possibly due to false DCI. Ignoring DCI!\n", frame, slot, dlsch_config_pdu_1_0->mcs);
       return -1;
     }
+
+    dlsch_config_pdu_1_0->qamModOrder = nr_get_Qm_dl(dlsch_config_pdu_1_0->mcs, dlsch_config_pdu_1_0->mcs_table);
+    int R = nr_get_code_rate_dl(dlsch_config_pdu_1_0->mcs, dlsch_config_pdu_1_0->mcs_table);
+    dlsch_config_pdu_1_0->targetCodeRate = R;
+    if (dlsch_config_pdu_1_0->targetCodeRate == 0 || dlsch_config_pdu_1_0->qamModOrder == 0) {
+      LOG_W(MAC, "Invalid code rate or Mod order, likely due to unexpected DL DCI.\n");
+      return -1;
+    }
+
+    int nb_rb_oh = 0; // it was not computed at UE side even before and set to 0 in nr_compute_tbs
+    int nb_re_dmrs = ((dlsch_config_pdu_1_0->dmrsConfigType == NFAPI_NR_DMRS_TYPE1) ? 6:4)*dlsch_config_pdu_1_0->n_dmrs_cdm_groups;
+    dlsch_config_pdu_1_0->TBS = nr_compute_tbs(dlsch_config_pdu_1_0->qamModOrder,
+                                               R,
+                                               dlsch_config_pdu_1_0->number_rbs,
+                                               dlsch_config_pdu_1_0->number_symbols,
+                                               nb_re_dmrs*get_num_dmrs(dlsch_config_pdu_1_0->dlDmrsSymbPos),
+                                               nb_rb_oh, 0, 1);
+
+    int bw_tbslbrm;
+    if (mac->scc || mac->scc_SIB || mac->cg) {
+      NR_BWP_t genericParameters = mac->scc ? mac->scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters :
+                                              mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP.genericParameters;
+      bw_tbslbrm = get_bw_tbslbrm(&genericParameters, mac->cg);
+    }
+    else
+      bw_tbslbrm = dlsch_config_pdu_1_0->BWPSize;
+    dlsch_config_pdu_1_0->tbslbrm = nr_compute_tbslbrm(dlsch_config_pdu_1_0->mcs_table,
+			                               bw_tbslbrm,
+		                                       1);
+
     /* NDI (only if CRC scrambled by C-RNTI or CS-RNTI or new-RNTI or TC-RNTI)*/
     dlsch_config_pdu_1_0->ndi = dci->ndi;
     /* RV (only if CRC scrambled by C-RNTI or CS-RNTI or new-RNTI or TC-RNTI)*/
@@ -938,14 +992,15 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
     if (dci->tpc == 3) dlsch_config_pdu_1_0->accumulated_delta_PUCCH = 3;
     // Sanity check for pucch_resource_indicator value received to check for false DCI.
     valid = 0;
-    if (mac->ULbwp[0] &&
-        mac->ULbwp[0]->bwp_Dedicated &&
-        mac->ULbwp[0]->bwp_Dedicated->pucch_Config &&
-        mac->ULbwp[0]->bwp_Dedicated->pucch_Config->choice.setup&&
-        mac->ULbwp[0]->bwp_Dedicated->pucch_Config->choice.setup->resourceSetToAddModList) {
-      pucch_res_set_cnt = mac->ULbwp[0]->bwp_Dedicated->pucch_Config->choice.setup->resourceSetToAddModList->list.count;
+    if (ul_bwp_id > 0 &&
+        mac->ULbwp[ul_bwp_id-1] &&
+        mac->ULbwp[ul_bwp_id-1]->bwp_Dedicated &&
+        mac->ULbwp[ul_bwp_id-1]->bwp_Dedicated->pucch_Config &&
+        mac->ULbwp[ul_bwp_id-1]->bwp_Dedicated->pucch_Config->choice.setup&&
+        mac->ULbwp[ul_bwp_id-1]->bwp_Dedicated->pucch_Config->choice.setup->resourceSetToAddModList) {
+      pucch_res_set_cnt = mac->ULbwp[ul_bwp_id-1]->bwp_Dedicated->pucch_Config->choice.setup->resourceSetToAddModList->list.count;
       for (int id = 0; id < pucch_res_set_cnt; id++) {
-	if (dci->pucch_resource_indicator < mac->ULbwp[0]->bwp_Dedicated->pucch_Config->choice.setup->resourceSetToAddModList->list.array[id]->resourceList.list.count) {
+	if (dci->pucch_resource_indicator < mac->ULbwp[ul_bwp_id-1]->bwp_Dedicated->pucch_Config->choice.setup->resourceSetToAddModList->list.array[id]->resourceList.list.count) {
 	  valid = 1;
 	  break;
 	}
@@ -1048,8 +1103,8 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
      *    47 DMRS_SEQ_INI:
      */
 
-    if (dci->bwp_indicator.val > 1) {
-      LOG_W(NR_MAC,"[%d.%d] bwp_indicator %d > 1  Possibly due to false DCI. Ignoring DCI!\n", frame, slot,dci->bwp_indicator.val);
+    if (dci->bwp_indicator.val > NR_MAX_NUM_BWP) {
+      LOG_W(NR_MAC,"[%d.%d] bwp_indicator %d > NR_MAX_NUM_BWP Possibly due to false DCI. Ignoring DCI!\n", frame, slot,dci->bwp_indicator.val);
       return -1;
     }
     config_bwp_ue(mac, &dci->bwp_indicator.val, &dci_format);
@@ -1276,8 +1331,8 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
 
     /* dmrs symbol positions*/
     dlsch_config_pdu_1_1->dlDmrsSymbPos = fill_dmrs_mask(pdsch_Config,
-							 mac->scc? mac->scc->dmrs_TypeA_Position:mac->mib->dmrs_TypeA_Position,
-							 dlsch_config_pdu_1_1->number_symbols,
+                                                         mac->scc? mac->scc->dmrs_TypeA_Position:mac->mib->dmrs_TypeA_Position,
+                                                         dlsch_config_pdu_1_1->number_symbols,
                                                          dlsch_config_pdu_1_1->start_symbol,
                                                          mappingtype,
                                                          dlsch_config_pdu_1_1->n_front_load_symb);
@@ -1323,6 +1378,36 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
     dl_config->number_pdus = dl_config->number_pdus + 1;
     /* TODO same calculation for MCS table as done in UL */
     dlsch_config_pdu_1_1->mcs_table = (pdsch_Config->mcs_Table) ? (*pdsch_Config->mcs_Table + 1) : 0;
+    dlsch_config_pdu_1_1->qamModOrder = nr_get_Qm_dl(dlsch_config_pdu_1_1->mcs, dlsch_config_pdu_1_1->mcs_table);
+    int R = nr_get_code_rate_dl(dlsch_config_pdu_1_1->mcs, dlsch_config_pdu_1_1->mcs_table);
+    dlsch_config_pdu_1_1->targetCodeRate = R;
+    if (dlsch_config_pdu_1_1->targetCodeRate == 0 || dlsch_config_pdu_1_1->qamModOrder == 0) {
+      LOG_W(MAC, "Invalid code rate or Mod order, likely due to unexpected DL DCI.\n");
+      return -1;
+    }
+    uint8_t Nl = 0;
+    for (int i = 0; i < 12; i++) { // max 12 ports
+      if ((dlsch_config_pdu_1_1->dmrs_ports>>i)&0x01) Nl += 1;
+    }
+    int nb_rb_oh = 0; // it was not computed at UE side even before and set to 0 in nr_compute_tbs
+    int nb_re_dmrs = ((dmrs_type == NULL) ? 6:4)*dlsch_config_pdu_1_1->n_dmrs_cdm_groups;
+    dlsch_config_pdu_1_1->TBS = nr_compute_tbs(dlsch_config_pdu_1_1->qamModOrder,
+                                               R,
+                                               dlsch_config_pdu_1_1->number_rbs,
+                                               dlsch_config_pdu_1_1->number_symbols,
+                                               nb_re_dmrs*get_num_dmrs(dlsch_config_pdu_1_1->dlDmrsSymbPos),
+                                               nb_rb_oh, 0, Nl);
+
+    // TBS_LBRM according to section 5.4.2.1 of 38.212
+    long *maxMIMO_Layers = mac->cg->spCellConfig->spCellConfigDedicated->pdsch_ServingCellConfig->choice.setup->ext1->maxMIMO_Layers;
+    AssertFatal (maxMIMO_Layers != NULL,"Option with max MIMO layers not configured is not supported\n");
+    int nl_tbslbrm = *maxMIMO_Layers < 4 ? *maxMIMO_Layers : 4;
+    NR_BWP_t genericParameters = mac->scc ? mac->scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters :
+                                            mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP.genericParameters;
+    int bw_tbslbrm = get_bw_tbslbrm(&genericParameters, mac->cg);
+    dlsch_config_pdu_1_1->tbslbrm = nr_compute_tbslbrm(dlsch_config_pdu_1_1->mcs_table,
+			                               bw_tbslbrm,
+		                                       nl_tbslbrm);
     /*PTRS configuration */
     dlsch_config_pdu_1_1->pduBitmap = 0;
     if(pdsch_Config->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS != NULL) {
@@ -1377,6 +1462,16 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
 
 }
 
+int8_t nr_ue_process_csirs_measurements(module_id_t module_id,
+                                        frame_t frame,
+                                        int slot,
+                                        fapi_nr_csirs_measurements_t *csirs_measurements) {
+  LOG_D(NR_MAC,"(%d.%d) Received CSI-RS measurements\n", frame, slot);
+  NR_UE_MAC_INST_t *mac = get_mac_inst(module_id);
+  memcpy(&mac->csirs_measurements, csirs_measurements, sizeof(*csirs_measurements));
+  return 0;
+}
+
 void set_harq_status(NR_UE_MAC_INST_t *mac,
                      uint8_t pucch_id,
                      uint8_t harq_id,
@@ -1435,13 +1530,12 @@ void nr_ue_configure_pucch(NR_UE_MAC_INST_t *mac,
   NR_BWP_UplinkCommon_t *initialUplinkBWP;
   if (mac->scc) initialUplinkBWP = mac->scc->uplinkConfigCommon->initialUplinkBWP;
   else          initialUplinkBWP = &mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP;
-  NR_BWP_Uplink_t *ubwp = mac->ULbwp[0];
-  if (mac->cg && ubwp &&
+  if (mac->cg && bwp_id > 1 && mac->ULbwp[bwp_id - 1] &&
       mac->cg->spCellConfig &&
       mac->cg->spCellConfig->spCellConfigDedicated &&
       mac->cg->spCellConfig->spCellConfigDedicated->uplinkConfig &&
       mac->cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP) {
-    scs = ubwp->bwp_Common->genericParameters.subcarrierSpacing;
+    scs = mac->ULbwp[bwp_id - 1]->bwp_Common->genericParameters.subcarrierSpacing;
   }
   else
     scs = initialUplinkBWP->genericParameters.subcarrierSpacing;
@@ -1925,7 +2019,7 @@ int find_pucch_resource_set(NR_UE_MAC_INST_t *mac, int uci_size) {
 *                processing slots of reception/transmission
 *                gNB_id identifier
 *
-* RETURN :       TRUE a valid resource has been found
+* RETURN :       true a valid resource has been found
 *
 * DESCRIPTION :  return tx harq process identifier for given transmission slot
 *                TS 38.213 9.2.1  PUCCH Resource Sets
@@ -2055,7 +2149,7 @@ uint8_t get_downlink_ack(NR_UE_MAC_INST_t *mac,
   int number_harq_feedback = 0;
   uint32_t dai_current = 0;
   uint32_t dai_max = 0;
-  bool two_transport_blocks = FALSE;
+  bool two_transport_blocks = false;
   int number_of_code_word = 1;
   int U_DAI_c = 0;
   int N_m_c_rx = 0;
@@ -2077,7 +2171,7 @@ uint8_t get_downlink_ack(NR_UE_MAC_INST_t *mac,
       bwpd->pdsch_Config->choice.setup &&
       bwpd->pdsch_Config->choice.setup->maxNrofCodeWordsScheduledByDCI &&
       bwpd->pdsch_Config->choice.setup->maxNrofCodeWordsScheduledByDCI[0] == 2) {
-    two_transport_blocks = TRUE;
+    two_transport_blocks = true;
     number_of_code_word = 2;
   }
 
@@ -2177,7 +2271,7 @@ uint8_t get_downlink_ack(NR_UE_MAC_INST_t *mac,
   * For a monitoring occasion of a PDCCH with DCI format 1_0 or DCI format 1_1 in at least one serving cell,
   * when a UE receives a PDSCH with one transport block and the value of higher layer parameter maxNrofCodeWordsScheduledByDCI is 2,
   * the HARQ-ACK response is associated with the first transport block and the UE generates a NACK for the second transport block
-  * if spatial bundling is not applied (HARQ-ACK-spatial-bundling-PUCCH = FALSE) and generates HARQ-ACK value of ACK for the second
+  * if spatial bundling is not applied (HARQ-ACK-spatial-bundling-PUCCH = false) and generates HARQ-ACK value of ACK for the second
   * transport block if spatial bundling is applied.
   */
 
@@ -2188,7 +2282,7 @@ uint8_t get_downlink_ack(NR_UE_MAC_INST_t *mac,
         ack_data[code_word][i] = 0;     /* nack data transport block which has been missed */
         number_harq_feedback++;
       }
-      if (two_transport_blocks == TRUE) {
+      if (two_transport_blocks == true) {
         dai_total[code_word][i] = dai[code_word][i]; /* for a single cell, dai_total is the same as dai of first cell */
       }
     }
@@ -2219,7 +2313,7 @@ uint8_t get_downlink_ack(NR_UE_MAC_INST_t *mac,
       o_ACK = o_ACK | (ack_data[1][m] << O_bit_number_cw1);
     }
 
-    if (two_transport_blocks == TRUE) {
+    if (two_transport_blocks == true) {
       O_bit_number_cw0 = (8 * j) + 2*(V_temp - 1);
     }
     else {
@@ -2234,7 +2328,7 @@ uint8_t get_downlink_ack(NR_UE_MAC_INST_t *mac,
     j = j + 1;
   }
 
-  if (two_transport_blocks == TRUE) {
+  if (two_transport_blocks == true) {
     O_ACK = 2 * ( 4 * j + V_temp2);  /* for two transport blocks */
   }
   else {
@@ -2263,17 +2357,16 @@ bool trigger_periodic_scheduling_request(NR_UE_MAC_INST_t *mac,
   NR_BWP_Id_t bwp_id = mac->UL_BWP_Id;
   NR_PUCCH_Config_t *pucch_Config = NULL;
   int scs;
-  NR_BWP_Uplink_t *ubwp = mac->ULbwp[0];
   NR_BWP_UplinkCommon_t *initialUplinkBWP;
   if (mac->scc) initialUplinkBWP = mac->scc->uplinkConfigCommon->initialUplinkBWP;
   else          initialUplinkBWP = &mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP;
 
-  if (mac->cg && ubwp &&
+  if (mac->cg && bwp_id && mac->ULbwp[bwp_id - 1] &&
       mac->cg->spCellConfig &&
       mac->cg->spCellConfig->spCellConfigDedicated &&
       mac->cg->spCellConfig->spCellConfigDedicated->uplinkConfig &&
       mac->cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP) {
-    scs = ubwp->bwp_Common->genericParameters.subcarrierSpacing;
+    scs = mac->ULbwp[bwp_id - 1]->bwp_Common->genericParameters.subcarrierSpacing;
   }
   else
     scs = initialUplinkBWP->genericParameters.subcarrierSpacing;
@@ -2356,11 +2449,9 @@ int8_t nr_ue_get_SR(module_id_t module_idP, frame_t frameP, slot_t slot){
     // start the sr-prohibittimer : rel 9 and above
     if (mac->scheduling_info.sr_ProhibitTimer > 0) { // timer configured
       mac->scheduling_info.sr_ProhibitTimer--;
-      mac->scheduling_info.
-      sr_ProhibitTimer_Running = 1;
+      mac->scheduling_info.sr_ProhibitTimer_Running = 1;
     } else {
-      mac->scheduling_info.
-      sr_ProhibitTimer_Running = 0;
+      mac->scheduling_info.sr_ProhibitTimer_Running = 0;
     }
     //mac->ul_active =1;
     return (1);   //instruct phy to signal SR
@@ -2408,7 +2499,7 @@ uint8_t nr_get_csi_measurements(NR_UE_MAC_INST_t *mac,
         csi_period_offset(csirep, NULL, &period, &offset);
 
         int scs;
-        NR_BWP_Uplink_t *ubwp = mac->ULbwp[0];
+        NR_BWP_Uplink_t *ubwp = mac->ULbwp[bwp_id-1];
         NR_BWP_UplinkCommon_t *initialUplinkBWP;
         if (mac->scc) initialUplinkBWP = mac->scc->uplinkConfigCommon->initialUplinkBWP;
         else          initialUplinkBWP = &mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP;
@@ -2483,13 +2574,18 @@ uint8_t nr_get_csi_payload(NR_UE_MAC_INST_t *mac,
     case NR_CSI_ReportConfig__reportQuantity_PR_ssb_Index_RSRP:
       n_csi_bits = get_ssb_rsrp_payload(mac,pucch,csi_reportconfig,csi_ResourceConfigId,csi_MeasConfig);
       break;
-    case NR_CSI_ReportConfig__reportQuantity_PR_cri_RSRP:
     case NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_PMI_CQI:
+      n_csi_bits = get_csirs_RI_PMI_CQI_payload(mac,pucch,csi_reportconfig,csi_ResourceConfigId,csi_MeasConfig);
+      break;
+    case NR_CSI_ReportConfig__reportQuantity_PR_cri_RSRP:
+      n_csi_bits = get_csirs_RSRP_payload(mac,pucch,csi_reportconfig,csi_ResourceConfigId,csi_MeasConfig);
+      break;
     case NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_i1:
     case NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_i1_CQI:
     case NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_CQI:
     case NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_LI_PMI_CQI:
-      AssertFatal(1==0,"Measurement report based on CSI-RS not availalble\n");
+      LOG_E(NR_MAC,"Measurement report %d based on CSI-RS is not available\n", csi_reportconfig->reportQuantity.present);
+      break;
     default:
       AssertFatal(1==0,"Invalid CSI report quantity type %d\n",csi_reportconfig->reportQuantity.present);
   }
@@ -2576,6 +2672,122 @@ uint8_t get_ssb_rsrp_payload(NR_UE_MAC_INST_t *mac,
   return bits;
 }
 
+uint8_t get_csirs_RI_PMI_CQI_payload(NR_UE_MAC_INST_t *mac,
+                                     PUCCH_sched_t *pucch,
+                                     struct NR_CSI_ReportConfig *csi_reportconfig,
+                                     NR_CSI_ResourceConfigId_t csi_ResourceConfigId,
+                                     NR_CSI_MeasConfig_t *csi_MeasConfig) {
+
+  int n_bits = 0;
+  uint32_t temp_payload = 0;
+
+  for (int csi_resourceidx = 0; csi_resourceidx < csi_MeasConfig->csi_ResourceConfigToAddModList->list.count; csi_resourceidx++) {
+
+    struct NR_CSI_ResourceConfig *csi_resourceconfig = csi_MeasConfig->csi_ResourceConfigToAddModList->list.array[csi_resourceidx];
+    if (csi_resourceconfig->csi_ResourceConfigId == csi_ResourceConfigId) {
+
+      for (int csi_idx = 0; csi_idx < csi_MeasConfig->nzp_CSI_RS_ResourceSetToAddModList->list.count; csi_idx++) {
+        if (csi_MeasConfig->nzp_CSI_RS_ResourceSetToAddModList->list.array[csi_idx]->nzp_CSI_ResourceSetId ==
+            *(csi_resourceconfig->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->nzp_CSI_RS_ResourceSetList->list.array[0])) {
+
+          nr_csi_report_t *csi_report = &mac->csi_report_template[csi_reportconfig->reportConfigId];
+          compute_csi_bitlen(csi_MeasConfig, mac->csi_report_template);
+          n_bits = nr_get_csi_bitlen(mac->csi_report_template, csi_reportconfig->reportConfigId);
+
+          int cri_bitlen = csi_report->csi_meas_bitlen.cri_bitlen;
+          int ri_bitlen = csi_report->csi_meas_bitlen.ri_bitlen;
+          int pmi_x1_bitlen = csi_report->csi_meas_bitlen.pmi_x1_bitlen[mac->csirs_measurements.rank_indicator];
+          int pmi_x2_bitlen = csi_report->csi_meas_bitlen.pmi_x2_bitlen[mac->csirs_measurements.rank_indicator];
+          int cqi_bitlen = csi_report->csi_meas_bitlen.cqi_bitlen[mac->csirs_measurements.rank_indicator];
+          int padding_bitlen = n_bits - (cri_bitlen + ri_bitlen + pmi_x1_bitlen + pmi_x2_bitlen + cqi_bitlen);
+
+          // TODO: Improvements will be needed to cri_bitlen>0 and pmi_x1_bitlen>0
+          temp_payload = (mac->csirs_measurements.rank_indicator<<(cri_bitlen+cqi_bitlen+pmi_x2_bitlen+padding_bitlen+pmi_x1_bitlen)) |
+                         (mac->csirs_measurements.i1<<(cri_bitlen+cqi_bitlen+pmi_x2_bitlen)) |
+                         (mac->csirs_measurements.i2<<(cri_bitlen+cqi_bitlen)) |
+                         (mac->csirs_measurements.cqi<<cri_bitlen) |
+                         0;
+
+          reverse_n_bits((uint8_t *)&temp_payload, n_bits);
+
+          LOG_D(NR_MAC, "cri_bitlen = %d\n", cri_bitlen);
+          LOG_D(NR_MAC, "ri_bitlen = %d\n", ri_bitlen);
+          LOG_D(NR_MAC, "pmi_x1_bitlen = %d\n", pmi_x1_bitlen);
+          LOG_D(NR_MAC, "pmi_x2_bitlen = %d\n", pmi_x2_bitlen);
+          LOG_D(NR_MAC, "cqi_bitlen = %d\n", cqi_bitlen);
+          LOG_D(NR_MAC, "csi_part1_payload = 0x%x\n", temp_payload);
+
+          LOG_D(NR_MAC, "n_bits = %d\n", n_bits);
+          LOG_D(NR_MAC, "csi_part1_payload = 0x%x\n", temp_payload);
+
+          break;
+        }
+      }
+    }
+  }
+  pucch->csi_part1_payload = temp_payload;
+  return n_bits;
+}
+
+uint8_t get_csirs_RSRP_payload(NR_UE_MAC_INST_t *mac,
+                               PUCCH_sched_t *pucch,
+                               struct NR_CSI_ReportConfig *csi_reportconfig,
+                               NR_CSI_ResourceConfigId_t csi_ResourceConfigId,
+                               NR_CSI_MeasConfig_t *csi_MeasConfig) {
+
+  int n_bits = 0;
+  uint32_t temp_payload = 0;
+
+  for (int csi_resourceidx = 0; csi_resourceidx < csi_MeasConfig->csi_ResourceConfigToAddModList->list.count; csi_resourceidx++) {
+
+    struct NR_CSI_ResourceConfig *csi_resourceconfig = csi_MeasConfig->csi_ResourceConfigToAddModList->list.array[csi_resourceidx];
+    if (csi_resourceconfig->csi_ResourceConfigId == csi_ResourceConfigId) {
+
+      for (int csi_idx = 0; csi_idx < csi_MeasConfig->nzp_CSI_RS_ResourceSetToAddModList->list.count; csi_idx++) {
+        if (csi_MeasConfig->nzp_CSI_RS_ResourceSetToAddModList->list.array[csi_idx]->nzp_CSI_ResourceSetId ==
+            *(csi_resourceconfig->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->nzp_CSI_RS_ResourceSetList->list.array[0])) {
+
+          nr_csi_report_t *csi_report = &mac->csi_report_template[csi_reportconfig->reportConfigId];
+          compute_csi_bitlen(csi_MeasConfig, mac->csi_report_template);
+          n_bits = nr_get_csi_bitlen(mac->csi_report_template, csi_reportconfig->reportConfigId);
+
+          int cri_ssbri_bitlen = csi_report->CSI_report_bitlen.cri_ssbri_bitlen;
+          int rsrp_bitlen = csi_report->CSI_report_bitlen.rsrp_bitlen;
+          int diff_rsrp_bitlen = csi_report->CSI_report_bitlen.diff_rsrp_bitlen;
+
+          if (cri_ssbri_bitlen > 0) {
+            LOG_E(NR_MAC, "Implementation for cri_ssbri_bitlen>0 is not supported yet!\n");;
+          }
+
+          // TODO: Improvements will be needed to cri_ssbri_bitlen>0
+          // TS 38.133 - Table 10.1.6.1-1
+          int rsrp_dBm = mac->csirs_measurements.rsrp_dBm;
+          if (rsrp_dBm < -140) {
+            temp_payload = 16;
+          } else if (rsrp_dBm > -44) {
+            temp_payload = 113;
+          } else {
+            temp_payload = mac->csirs_measurements.rsrp_dBm + 157;
+          }
+
+          reverse_n_bits((uint8_t *)&temp_payload, n_bits);
+
+          LOG_D(NR_MAC, "cri_ssbri_bitlen = %d\n", cri_ssbri_bitlen);
+          LOG_D(NR_MAC, "rsrp_bitlen = %d\n", rsrp_bitlen);
+          LOG_D(NR_MAC, "diff_rsrp_bitlen = %d\n", diff_rsrp_bitlen);
+
+          LOG_D(NR_MAC, "n_bits = %d\n", n_bits);
+          LOG_D(NR_MAC, "csi_part1_payload = 0x%x\n", temp_payload);
+
+          break;
+        }
+      }
+    }
+  }
+
+  pucch->csi_part1_payload = temp_payload;
+  return n_bits;
+}
 
 // returns index from RSRP
 // according to Table 10.1.6.1-1 in 38.133
@@ -2631,14 +2843,14 @@ void nr_ue_send_sdu(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_t *u
 int get_n_rb(NR_UE_MAC_INST_t *mac, int rnti_type){
 
   int N_RB = 0, start_RB;
+  NR_BWP_Id_t dl_bwp_id = mac->DL_BWP_Id;
   switch(rnti_type) {
     case NR_RNTI_RA:
     case NR_RNTI_TC:
     case NR_RNTI_P: {
-      NR_BWP_Id_t dl_bwp_id = mac->DL_BWP_Id;
       if (mac->DLbwp[dl_bwp_id-1]->bwp_Common->pdcch_ConfigCommon->choice.setup->controlResourceSetZero) {
         uint8_t coreset_id = 0; // assuming controlResourceSetId is 0 for controlResourceSetZero
-        NR_ControlResourceSet_t *coreset = mac->coreset[dl_bwp_id-1][coreset_id];
+        NR_ControlResourceSet_t *coreset = mac->coreset[dl_bwp_id][coreset_id];
         get_coreset_rballoc(coreset->frequencyDomainResources.buf,&N_RB,&start_RB);
       } else {
         N_RB = NRRIV2BW(mac->scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
@@ -2649,14 +2861,14 @@ int get_n_rb(NR_UE_MAC_INST_t *mac, int rnti_type){
       N_RB = mac->type0_PDCCH_CSS_config.num_rbs;
       break;
     case NR_RNTI_C:
-      N_RB = NRRIV2BW(mac->DLbwp[0]->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
+      N_RB = NRRIV2BW(mac->DLbwp[dl_bwp_id-1]->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
       break;
   }
   return N_RB;
 
 }
 
-uint8_t nr_extract_dci_info(NR_UE_MAC_INST_t *mac,
+static uint8_t nr_extract_dci_info(NR_UE_MAC_INST_t *mac,
                             uint8_t dci_format,
                             uint8_t dci_size,
                             uint16_t rnti,
@@ -2668,14 +2880,16 @@ uint8_t nr_extract_dci_info(NR_UE_MAC_INST_t *mac,
   int fsize = 0;
 
   int rnti_type = get_rnti_type(mac, rnti);
+  NR_BWP_Id_t dl_bwp_id =  mac->DL_BWP_Id ;
+  NR_BWP_Id_t ul_bwp_id =  mac->UL_BWP_Id ;
 
   int N_RB_UL = 0;
-  if(mac->scc_SIB) {
-    N_RB_UL = NRRIV2BW(mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP.genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
-  } else if(mac->ULbwp[0]) {
-    N_RB_UL = NRRIV2BW(mac->ULbwp[0]->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
+  if(ul_bwp_id > 0 && mac->ULbwp[ul_bwp_id-1]) {
+    N_RB_UL = NRRIV2BW(mac->ULbwp[ul_bwp_id - 1]->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
   } else if(mac->scc) {
     N_RB_UL = NRRIV2BW(mac->scc->uplinkConfigCommon->initialUplinkBWP->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
+  } else if(mac->scc_SIB) {
+    N_RB_UL = NRRIV2BW(mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP.genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
   }
 
   LOG_D(MAC,"nr_extract_dci_info : dci_pdu %lx, size %d\n",*dci_pdu,dci_size);
@@ -2739,7 +2953,7 @@ uint8_t nr_extract_dci_info(NR_UE_MAC_INST_t *mac,
 #endif
 
       // check BWP id
-      if (mac->DLbwp[0]) N_RB=NRRIV2BW(mac->DLbwp[0]->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
+      if (dl_bwp_id>0 && mac->DLbwp[dl_bwp_id-1]) N_RB=NRRIV2BW(mac->DLbwp[dl_bwp_id-1]->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
       else         N_RB=NRRIV2BW(mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP.genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
 
       // Freq domain assignment (275rb >> fsize = 16)
@@ -2922,7 +3136,7 @@ uint8_t nr_extract_dci_info(NR_UE_MAC_INST_t *mac,
     case NR_RNTI_TC:
 
       // check BWP id
-      if (mac->DLbwp[0]) N_RB=NRRIV2BW(mac->DLbwp[0]->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
+      if (dl_bwp_id>0 && mac->DLbwp[dl_bwp_id-1]) N_RB=NRRIV2BW(mac->DLbwp[dl_bwp_id-1]->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
       else         N_RB=mac->type0_PDCCH_CSS_config.num_rbs;
 
 
@@ -3004,7 +3218,7 @@ uint8_t nr_extract_dci_info(NR_UE_MAC_INST_t *mac,
     break;
   
   case NR_UL_DCI_FORMAT_0_0:
-    if (mac->ULbwp[0]) N_RB_UL=NRRIV2BW(mac->ULbwp[0]->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
+    if (mac->ULbwp[ul_bwp_id-1]) N_RB_UL=NRRIV2BW(mac->ULbwp[ul_bwp_id-1]->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
     else         N_RB_UL=NRRIV2BW(mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP.genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
 
     switch(rnti_type)
@@ -3502,7 +3716,7 @@ void nr_ue_process_mac_pdu(nr_downlink_indication_t *dl_info,
         #endif
         */
 
-                LOG_I(NR_MAC, "[%d.%d] Received TA_COMMAND %u TAGID %u CC_id %d\n", frameP, slot, ul_time_alignment->ta_command, ul_time_alignment->tag_id, CC_id);
+        LOG_I(NR_MAC, "[%d.%d] Received TA_COMMAND %u TAGID %u CC_id %d\n", frameP, slot, ul_time_alignment->ta_command, ul_time_alignment->tag_id, CC_id);
 
         break;
       case DL_SCH_LCID_CON_RES_ID:
diff --git a/openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c b/openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
index 0afad893d75..8605550593e 100644
--- a/openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
+++ b/openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
@@ -44,6 +44,7 @@
 
 /* MAC */
 #include "NR_MAC_COMMON/nr_mac.h"
+#include "NR_MAC_COMMON/nr_mac_common.h"
 #include "NR_MAC_UE/mac_proto.h"
 #include "NR_MAC_UE/mac_extern.h"
 
@@ -114,18 +115,21 @@ void fill_scheduled_response(nr_scheduled_response_t *scheduled_response,
  */
 long get_k2(NR_UE_MAC_INST_t *mac, uint8_t time_domain_ind) {
   long k2 = -1;
+
+  NR_BWP_Id_t ul_bwp_id = mac->UL_BWP_Id;
   // Get K2 from RRC configuration
-  NR_PUSCH_Config_t *pusch_config=mac->ULbwp[0] ? mac->ULbwp[0]->bwp_Dedicated->pusch_Config->choice.setup : NULL;
+  NR_PUSCH_Config_t *pusch_config= ul_bwp_id > 0 && mac->ULbwp[ul_bwp_id-1] ? mac->ULbwp[ul_bwp_id-1]->bwp_Dedicated->pusch_Config->choice.setup : NULL;
   NR_PUSCH_TimeDomainResourceAllocationList_t *pusch_TimeDomainAllocationList = NULL;
   if (pusch_config && pusch_config->pusch_TimeDomainAllocationList) {
     pusch_TimeDomainAllocationList = pusch_config->pusch_TimeDomainAllocationList->choice.setup;
   }
-  else if (mac->ULbwp[0] &&
-	   mac->ULbwp[0]->bwp_Common&&
-	   mac->ULbwp[0]->bwp_Common->pusch_ConfigCommon&&
-	   mac->ULbwp[0]->bwp_Common->pusch_ConfigCommon->choice.setup &&
-	   mac->ULbwp[0]->bwp_Common->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList) {
-    pusch_TimeDomainAllocationList = mac->ULbwp[0]->bwp_Common->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList;
+  else if (ul_bwp_id > 0 &&
+	   mac->ULbwp[ul_bwp_id-1] &&
+	   mac->ULbwp[ul_bwp_id-1]->bwp_Common&&
+	   mac->ULbwp[ul_bwp_id-1]->bwp_Common->pusch_ConfigCommon&&
+	   mac->ULbwp[ul_bwp_id-1]->bwp_Common->pusch_ConfigCommon->choice.setup &&
+	   mac->ULbwp[ul_bwp_id-1]->bwp_Common->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList) {
+    pusch_TimeDomainAllocationList = mac->ULbwp[ul_bwp_id-1]->bwp_Common->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList;
   }
   else if (mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP.pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList)
     pusch_TimeDomainAllocationList=mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP.pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList;
@@ -154,6 +158,7 @@ long get_k2(NR_UE_MAC_INST_t *mac, uint8_t time_domain_ind) {
  */
 fapi_nr_ul_config_request_t *get_ul_config_request(NR_UE_MAC_INST_t *mac, int slot)
 {
+  NR_BWP_Id_t ul_bwp_id = mac->UL_BWP_Id;
   NR_TDD_UL_DL_ConfigCommon_t *tdd_config = mac->scc==NULL ? mac->scc_SIB->tdd_UL_DL_ConfigurationCommon : mac->scc->tdd_UL_DL_ConfigurationCommon;
 
   //Check if request to access ul_config is for a UL slot
@@ -165,8 +170,8 @@ fapi_nr_ul_config_request_t *get_ul_config_request(NR_UE_MAC_INST_t *mac, int sl
   // Calculate the index of the UL slot in mac->ul_config_request list. This is
   // based on the TDD pattern (slot configuration period) and number of UL+mixed
   // slots in the period. TS 38.213 Sec 11.1
-  int mu = mac->ULbwp[0] ?
-    mac->ULbwp[0]->bwp_Common->genericParameters.subcarrierSpacing :
+  int mu = ul_bwp_id > 0 && mac->ULbwp[ul_bwp_id-1] ?
+    mac->ULbwp[ul_bwp_id-1]->bwp_Common->genericParameters.subcarrierSpacing :
     mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP.genericParameters.subcarrierSpacing;
   const int n = nr_slots_per_frame[mu];
   const int num_slots_per_tdd = tdd_config ? (n >> (7 - tdd_config->pattern1.dl_UL_TransmissionPeriodicity)) : n;
@@ -188,17 +193,21 @@ fapi_nr_ul_config_request_t *get_ul_config_request(NR_UE_MAC_INST_t *mac, int sl
 void ul_layers_config(NR_UE_MAC_INST_t * mac, nfapi_nr_ue_pusch_pdu_t *pusch_config_pdu, dci_pdu_rel15_t *dci) {
 
   NR_ServingCellConfigCommon_t *scc = mac->scc;
+  NR_BWP_Id_t ul_bwp_id = mac->UL_BWP_Id;
   NR_BWP_UplinkDedicated_t *ubwpd=NULL;
+  NR_SRS_Config_t *srs_config = NULL;
 
   if (mac->cg &&
       mac->cg->spCellConfig &&
       mac->cg->spCellConfig->spCellConfigDedicated &&
       mac->cg->spCellConfig->spCellConfigDedicated->uplinkConfig &&
-      mac->cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP)
+      mac->cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP) {
     ubwpd = mac->cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP;
+    srs_config = mac->cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP->srs_Config->choice.setup;
+  }
 
-  NR_PUSCH_Config_t *pusch_Config = mac->ULbwp[0] ?
-    mac->ULbwp[0]->bwp_Dedicated->pusch_Config->choice.setup :
+  NR_PUSCH_Config_t *pusch_Config = ul_bwp_id > 0 && mac->ULbwp[ul_bwp_id-1] ?
+    mac->ULbwp[ul_bwp_id-1]->bwp_Dedicated->pusch_Config->choice.setup :
     (ubwpd?
      ubwpd->pusch_Config->choice.setup:
      NULL);
@@ -212,7 +221,7 @@ void ul_layers_config(NR_UE_MAC_INST_t * mac, nfapi_nr_ue_pusch_pdu_t *pusch_con
     else
       transformPrecoder = NR_PUSCH_Config__transformPrecoder_disabled;
   }
-
+  pusch_config_pdu->transform_precoding = transformPrecoder;
 
   /* PRECOD_NBR_LAYERS */
   if ((*pusch_Config->txConfig == NR_PUSCH_Config__txConfig_nonCodebook));
@@ -220,11 +229,14 @@ void ul_layers_config(NR_UE_MAC_INST_t * mac, nfapi_nr_ue_pusch_pdu_t *pusch_con
 
   if ((*pusch_Config->txConfig == NR_PUSCH_Config__txConfig_codebook)){
 
-    uint8_t n_antenna_port = 0; //FIXME!!!
+    // The UE shall transmit PUSCH using the same antenna port(s) as the SRS port(s) in the SRS resource indicated by the DCI format 0_1
+    // 38.214  Section 6.1.1
+
+    uint8_t n_antenna_port = get_pusch_nb_antenna_ports(pusch_Config, srs_config, dci->srs_resource_indicator);
 
     if (n_antenna_port == 1); // 1 antenna port and the higher layer parameter txConfig = codebook 0 bits
 
-    if (n_antenna_port == 4){ // 4 antenna port and the higher layer parameter txConfig = codebook
+    if (n_antenna_port == 4) { // 4 antenna port and the higher layer parameter txConfig = codebook
 
       // Table 7.3.1.1.2-2: transformPrecoder=disabled and maxRank = 2 or 3 or 4
       if ((transformPrecoder == NR_PUSCH_Config__transformPrecoder_disabled)
@@ -234,54 +246,54 @@ void ul_layers_config(NR_UE_MAC_INST_t * mac, nfapi_nr_ue_pusch_pdu_t *pusch_con
 
         if (*pusch_Config->codebookSubset == NR_PUSCH_Config__codebookSubset_fullyAndPartialAndNonCoherent) {
           pusch_config_pdu->nrOfLayers = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][0];
-          pusch_config_pdu->transform_precoding = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][1];
+          pusch_config_pdu->Tpmi = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][1];
         }
 
         if (*pusch_Config->codebookSubset == NR_PUSCH_Config__codebookSubset_partialAndNonCoherent){
           pusch_config_pdu->nrOfLayers = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][2];
-          pusch_config_pdu->transform_precoding = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][3];
+          pusch_config_pdu->Tpmi = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][3];
         }
 
         if (*pusch_Config->codebookSubset == NR_PUSCH_Config__codebookSubset_nonCoherent){
           pusch_config_pdu->nrOfLayers = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][4];
-          pusch_config_pdu->transform_precoding = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][5];
+          pusch_config_pdu->Tpmi = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][5];
         }
       }
 
       // Table 7.3.1.1.2-3: transformPrecoder= enabled, or transformPrecoder=disabled and maxRank = 1
       if (((transformPrecoder == NR_PUSCH_Config__transformPrecoder_enabled)
         || (transformPrecoder == NR_PUSCH_Config__transformPrecoder_disabled))
-        && (*pusch_Config->maxRank == 1)){
+        && (*pusch_Config->maxRank == 1)) {
 
         if (*pusch_Config->codebookSubset == NR_PUSCH_Config__codebookSubset_fullyAndPartialAndNonCoherent) {
           pusch_config_pdu->nrOfLayers = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][6];
-          pusch_config_pdu->transform_precoding = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][7];
+          pusch_config_pdu->Tpmi = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][7];
         }
 
         if (*pusch_Config->codebookSubset == NR_PUSCH_Config__codebookSubset_partialAndNonCoherent){
           pusch_config_pdu->nrOfLayers = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][8];
-          pusch_config_pdu->transform_precoding = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][9];
+          pusch_config_pdu->Tpmi = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][9];
         }
 
         if (*pusch_Config->codebookSubset == NR_PUSCH_Config__codebookSubset_nonCoherent){
           pusch_config_pdu->nrOfLayers = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][10];
-          pusch_config_pdu->transform_precoding = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][11];
+          pusch_config_pdu->Tpmi = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][11];
         }
       }
     }
 
-    if (n_antenna_port == 4){ // 2 antenna port and the higher layer parameter txConfig = codebook
+    if (n_antenna_port == 2) {
+      // 2 antenna port and the higher layer parameter txConfig = codebook
       // Table 7.3.1.1.2-4: transformPrecoder=disabled and maxRank = 2
-      if ((transformPrecoder == NR_PUSCH_Config__transformPrecoder_disabled) && (*pusch_Config->maxRank == 2)){
-
+      if ((transformPrecoder == NR_PUSCH_Config__transformPrecoder_disabled) && (*pusch_Config->maxRank == 2)) {
         if (*pusch_Config->codebookSubset == NR_PUSCH_Config__codebookSubset_fullyAndPartialAndNonCoherent) {
           pusch_config_pdu->nrOfLayers = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][12];
-          pusch_config_pdu->transform_precoding = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][13];
+          pusch_config_pdu->Tpmi = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][13];
         }
 
         if (*pusch_Config->codebookSubset == NR_PUSCH_Config__codebookSubset_nonCoherent){
           pusch_config_pdu->nrOfLayers = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][14];
-          pusch_config_pdu->transform_precoding = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][15];
+          pusch_config_pdu->Tpmi = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][15];
         }
 
       }
@@ -289,16 +301,16 @@ void ul_layers_config(NR_UE_MAC_INST_t * mac, nfapi_nr_ue_pusch_pdu_t *pusch_con
       // Table 7.3.1.1.2-5: transformPrecoder= enabled, or transformPrecoder= disabled and maxRank = 1
       if (((transformPrecoder == NR_PUSCH_Config__transformPrecoder_enabled)
         || (transformPrecoder == NR_PUSCH_Config__transformPrecoder_disabled))
-        && (*pusch_Config->maxRank == 1)){
+        && (*pusch_Config->maxRank == 1)) {
 
         if (*pusch_Config->codebookSubset == NR_PUSCH_Config__codebookSubset_fullyAndPartialAndNonCoherent) {
           pusch_config_pdu->nrOfLayers = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][16];
-          pusch_config_pdu->transform_precoding = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][17];
+          pusch_config_pdu->Tpmi = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][17];
         }
 
         if (*pusch_Config->codebookSubset == NR_PUSCH_Config__codebookSubset_nonCoherent){
           pusch_config_pdu->nrOfLayers = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][18];
-          pusch_config_pdu->transform_precoding = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][19];
+          pusch_config_pdu->Tpmi = table_7_3_1_1_2_2_3_4_5[dci->precoding_information.val][19];
         }
 
       }
@@ -307,9 +319,9 @@ void ul_layers_config(NR_UE_MAC_INST_t * mac, nfapi_nr_ue_pusch_pdu_t *pusch_con
 
   /*-------------------- Changed to enable Transform precoding in RF SIM------------------------------------------------*/
 
- /*if (pusch_config_pdu->transform_precoding == transform_precoder_enabled) {
+ /*if (pusch_config_pdu->transformPrecoder == transformPrecoder_enabled) {
 
-    pusch_config_dedicated->transform_precoder = transform_precoder_enabled;
+    pusch_config_dedicated->transform_precoder = transformPrecoder_enabled;
 
     if(pusch_Config->dmrs_UplinkForPUSCH_MappingTypeA != NULL) {
 
@@ -331,15 +343,15 @@ void ul_layers_config(NR_UE_MAC_INST_t * mac, nfapi_nr_ue_pusch_pdu_t *pusch_con
 
     }
   } else
-    pusch_config_dedicated->transform_precoder = transform_precoder_disabled;*/
+    pusch_config_dedicated->transformPrecoder = ttransformPrecoder_disabled;*/
 }
 
 // todo: this function shall be reviewed completely because of the many comments left by the author
-void ul_ports_config(NR_UE_MAC_INST_t * mac, nfapi_nr_ue_pusch_pdu_t *pusch_config_pdu, dci_pdu_rel15_t *dci) {
+void ul_ports_config(NR_UE_MAC_INST_t *mac, int *n_front_load_symb, nfapi_nr_ue_pusch_pdu_t *pusch_config_pdu, dci_pdu_rel15_t *dci) {
 
-  /* ANTENNA_PORTS */
-  uint8_t rank = 1; // We need to initialize rank FIXME!!!
+  uint8_t rank = pusch_config_pdu->nrOfLayers;
 
+  NR_BWP_Id_t ul_bwp_id = mac->UL_BWP_Id;
   NR_ServingCellConfigCommon_t *scc = mac->scc;
   NR_BWP_UplinkDedicated_t *ubwpd=NULL;
 
@@ -350,7 +362,7 @@ void ul_ports_config(NR_UE_MAC_INST_t * mac, nfapi_nr_ue_pusch_pdu_t *pusch_conf
       mac->cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP)
     ubwpd = mac->cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP;
 
-  NR_PUSCH_Config_t *pusch_Config = mac->ULbwp[0] ? mac->ULbwp[0]->bwp_Dedicated->pusch_Config->choice.setup : (ubwpd?ubwpd->pusch_Config->choice.setup:NULL);
+  NR_PUSCH_Config_t *pusch_Config = ul_bwp_id > 0 && mac->ULbwp[ul_bwp_id-1] ? mac->ULbwp[ul_bwp_id-1]->bwp_Dedicated->pusch_Config->choice.setup : (ubwpd?ubwpd->pusch_Config->choice.setup:NULL);
   AssertFatal(pusch_Config!=NULL,"pusch_Config shouldn't be null\n");
 
   long	transformPrecoder;
@@ -375,51 +387,44 @@ void ul_ports_config(NR_UE_MAC_INST_t * mac, nfapi_nr_ue_pusch_pdu_t *pusch_conf
     dmrs_type = pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->dmrs_Type;
   }
 
-  LOG_D(NR_MAC,"MappingType%s max_length %s, dmrs_type %s, antenna_ports %d\n",pusch_Config->dmrs_UplinkForPUSCH_MappingTypeA?"A":"B",max_length?"len2":"len1",dmrs_type?"type2":"type1",dci->antenna_ports.val);
+  LOG_D(NR_MAC,"MappingType%s max_length %s, dmrs_type %s, antenna_ports %d\n",
+        pusch_Config->dmrs_UplinkForPUSCH_MappingTypeA?"A":"B",max_length?"len2":"len1",dmrs_type?"type2":"type1",dci->antenna_ports.val);
+
   if ((transformPrecoder == NR_PUSCH_Config__transformPrecoder_enabled) &&
-    (dmrs_type == NULL) && (max_length == NULL)) { // tables 7.3.1.1.2-6
-      pusch_config_pdu->num_dmrs_cdm_grps_no_data = 2; //TBC
-      pusch_config_pdu->dmrs_ports = dci->antenna_ports.val; //TBC
+      (dmrs_type == NULL) && (max_length == NULL)) { // tables 7.3.1.1.2-6
+      pusch_config_pdu->num_dmrs_cdm_grps_no_data = 2;
+      pusch_config_pdu->dmrs_ports = 1<<dci->antenna_ports.val;
   }
 
   if ((transformPrecoder == NR_PUSCH_Config__transformPrecoder_enabled) &&
-    (dmrs_type == NULL) && (max_length != NULL)) { // tables 7.3.1.1.2-7
+      (dmrs_type == NULL) && (max_length != NULL)) { // tables 7.3.1.1.2-7
 
     pusch_config_pdu->num_dmrs_cdm_grps_no_data = 2; //TBC
-    pusch_config_pdu->dmrs_ports = (dci->antenna_ports.val > 3)?(dci->antenna_ports.val-4):(dci->antenna_ports.val); //TBC
-    //pusch_config_pdu->n_front_load_symb = (dci->antenna_ports > 3)?2:1; //FIXME
+    pusch_config_pdu->dmrs_ports = 1<<((dci->antenna_ports.val > 3)?(dci->antenna_ports.val-4):(dci->antenna_ports.val));
+    *n_front_load_symb = (dci->antenna_ports.val > 3)?2:1;
   }
 
   if ((transformPrecoder == NR_PUSCH_Config__transformPrecoder_disabled) &&
     (dmrs_type == NULL) && (max_length == NULL)) { // tables 7.3.1.1.2-8/9/10/11
 
     if (rank == 1) {
-      pusch_config_pdu->num_dmrs_cdm_grps_no_data = (dci->antenna_ports.val > 1)?2:1; //TBC
-      pusch_config_pdu->dmrs_ports = (dci->antenna_ports.val > 1)?(dci->antenna_ports.val-2):(dci->antenna_ports.val); //TBC
+      pusch_config_pdu->num_dmrs_cdm_grps_no_data = (dci->antenna_ports.val > 1)?2:1;
+      pusch_config_pdu->dmrs_ports =1<<((dci->antenna_ports.val > 1)?(dci->antenna_ports.val-2):(dci->antenna_ports.val));
     }
 
     if (rank == 2){
-      pusch_config_pdu->num_dmrs_cdm_grps_no_data = (dci->antenna_ports.val > 0)?2:1; //TBC
-      pusch_config_pdu->dmrs_ports = 0; //FIXME
-      //pusch_config_pdu->dmrs_ports[0] = (dci->antenna_ports > 1)?(dci->antenna_ports > 2 ?0:2):0;
-      //pusch_config_pdu->dmrs_ports[1] = (dci->antenna_ports > 1)?(dci->antenna_ports > 2 ?2:3):1;
+      pusch_config_pdu->num_dmrs_cdm_grps_no_data = (dci->antenna_ports.val > 0)?2:1;
+      pusch_config_pdu->dmrs_ports = (dci->antenna_ports.val > 1)?((dci->antenna_ports.val> 2)?0x5:0xc):0x3;
     }
 
     if (rank == 3){
-      pusch_config_pdu->num_dmrs_cdm_grps_no_data = 2; //TBC
-      pusch_config_pdu->dmrs_ports = 0; //FIXME
-      //pusch_config_pdu->dmrs_ports[0] = 0;
-      //pusch_config_pdu->dmrs_ports[1] = 1;
-      //pusch_config_pdu->dmrs_ports[2] = 2;
+      pusch_config_pdu->num_dmrs_cdm_grps_no_data = 2;
+      pusch_config_pdu->dmrs_ports = 0x7;  // ports 0-2
     }
 
     if (rank == 4){
-      pusch_config_pdu->num_dmrs_cdm_grps_no_data = 2; //TBC
-      pusch_config_pdu->dmrs_ports = 0; //FIXME
-      //pusch_config_pdu->dmrs_ports[0] = 0;
-      //pusch_config_pdu->dmrs_ports[1] = 1;
-      //pusch_config_pdu->dmrs_ports[2] = 2;
-      //pusch_config_pdu->dmrs_ports[3] = 3;
+      pusch_config_pdu->num_dmrs_cdm_grps_no_data = 2;
+      pusch_config_pdu->dmrs_ports = 0xf;  // ports 0-3
     }
   }
 
@@ -428,8 +433,8 @@ void ul_ports_config(NR_UE_MAC_INST_t * mac, nfapi_nr_ue_pusch_pdu_t *pusch_conf
 
     if (rank == 1){
       pusch_config_pdu->num_dmrs_cdm_grps_no_data = (dci->antenna_ports.val > 1)?2:1; //TBC
-      pusch_config_pdu->dmrs_ports = (dci->antenna_ports.val > 1)?(dci->antenna_ports.val > 5 ?(dci->antenna_ports.val-6):(dci->antenna_ports.val-2)):dci->antenna_ports.val; //TBC
-      //pusch_config_pdu->n_front_load_symb = (dci->antenna_ports.val > 6)?2:1; //FIXME
+      pusch_config_pdu->dmrs_ports = 1<<((dci->antenna_ports.val > 1)?(dci->antenna_ports.val > 5 ?(dci->antenna_ports.val-6):(dci->antenna_ports.val-2)):dci->antenna_ports.val);
+      *n_front_load_symb = (dci->antenna_ports.val > 6)?2:1;
     }
 
     if (rank == 2){
@@ -437,7 +442,7 @@ void ul_ports_config(NR_UE_MAC_INST_t * mac, nfapi_nr_ue_pusch_pdu_t *pusch_conf
       pusch_config_pdu->dmrs_ports = 0; //FIXME
       //pusch_config_pdu->dmrs_ports[0] = table_7_3_1_1_2_13[dci->antenna_ports.val][1];
       //pusch_config_pdu->dmrs_ports[1] = table_7_3_1_1_2_13[dci->antenna_ports.val][2];
-      //pusch_config_pdu->n_front_load_symb = (dci->antenna_ports.val > 3)?2:1; // FIXME
+      //n_front_load_symb = (dci->antenna_ports.val > 3)?2:1; // FIXME
     }
 
     if (rank == 3){
@@ -446,7 +451,7 @@ void ul_ports_config(NR_UE_MAC_INST_t * mac, nfapi_nr_ue_pusch_pdu_t *pusch_conf
       //pusch_config_pdu->dmrs_ports[0] = table_7_3_1_1_2_14[dci->antenna_ports.val][1];
       //pusch_config_pdu->dmrs_ports[1] = table_7_3_1_1_2_14[dci->antenna_ports.val][2];
       //pusch_config_pdu->dmrs_ports[2] = table_7_3_1_1_2_14[dci->antenna_ports.val][3];
-      //pusch_config_pdu->n_front_load_symb = (dci->antenna_ports.val > 1)?2:1; //FIXME
+      //n_front_load_symb = (dci->antenna_ports.val > 1)?2:1; //FIXME
     }
 
     if (rank == 4){
@@ -456,7 +461,7 @@ void ul_ports_config(NR_UE_MAC_INST_t * mac, nfapi_nr_ue_pusch_pdu_t *pusch_conf
       //pusch_config_pdu->dmrs_ports[1] = table_7_3_1_1_2_15[dci->antenna_ports.val][2];
       //pusch_config_pdu->dmrs_ports[2] = table_7_3_1_1_2_15[dci->antenna_ports.val][3];
       //pusch_config_pdu->dmrs_ports[3] = table_7_3_1_1_2_15[dci->antenna_ports.val][4];
-      //pusch_config_pdu->n_front_load_symb = (dci->antenna_ports.val > 1)?2:1; //FIXME
+      //n_front_load_symb = (dci->antenna_ports.val > 1)?2:1; //FIXME
     }
   }
 
@@ -500,7 +505,7 @@ void ul_ports_config(NR_UE_MAC_INST_t * mac, nfapi_nr_ue_pusch_pdu_t *pusch_conf
     if (rank == 1){
       pusch_config_pdu->num_dmrs_cdm_grps_no_data = table_7_3_1_1_2_20[dci->antenna_ports.val][0]; //TBC
       pusch_config_pdu->dmrs_ports = table_7_3_1_1_2_20[dci->antenna_ports.val][1]; //TBC
-      //pusch_config_pdu->n_front_load_symb = table_7_3_1_1_2_20[dci->antenna_ports.val][2]; //FIXME
+      //n_front_load_symb = table_7_3_1_1_2_20[dci->antenna_ports.val][2]; //FIXME
     }
 
     if (rank == 2){
@@ -508,7 +513,7 @@ void ul_ports_config(NR_UE_MAC_INST_t * mac, nfapi_nr_ue_pusch_pdu_t *pusch_conf
       pusch_config_pdu->dmrs_ports = 0; //FIXME
       //pusch_config_pdu->dmrs_ports[0] = table_7_3_1_1_2_21[dci->antenna_ports.val][1];
       //pusch_config_pdu->dmrs_ports[1] = table_7_3_1_1_2_21[dci->antenna_ports.val][2];
-      //pusch_config_pdu->n_front_load_symb = table_7_3_1_1_2_21[dci->antenna_ports.val][3]; //FIXME
+      //n_front_load_symb = table_7_3_1_1_2_21[dci->antenna_ports.val][3]; //FIXME
       }
 
     if (rank == 3){
@@ -517,7 +522,7 @@ void ul_ports_config(NR_UE_MAC_INST_t * mac, nfapi_nr_ue_pusch_pdu_t *pusch_conf
       //pusch_config_pdu->dmrs_ports[0] = table_7_3_1_1_2_22[dci->antenna_ports.val][1];
       //pusch_config_pdu->dmrs_ports[1] = table_7_3_1_1_2_22[dci->antenna_ports.val][2];
       //pusch_config_pdu->dmrs_ports[2] = table_7_3_1_1_2_22[dci->antenna_ports.val][3];
-      //pusch_config_pdu->n_front_load_symb = table_7_3_1_1_2_22[dci->antenna_ports.val][4]; //FIXME
+      //n_front_load_symb = table_7_3_1_1_2_22[dci->antenna_ports.val][4]; //FIXME
     }
 
     if (rank == 4){
@@ -527,7 +532,7 @@ void ul_ports_config(NR_UE_MAC_INST_t * mac, nfapi_nr_ue_pusch_pdu_t *pusch_conf
       //pusch_config_pdu->dmrs_ports[1] = table_7_3_1_1_2_23[dci->antenna_ports.val][2];
       //pusch_config_pdu->dmrs_ports[2] = table_7_3_1_1_2_23[dci->antenna_ports.val][3];
       //pusch_config_pdu->dmrs_ports[3] = table_7_3_1_1_2_23[dci->antenna_ports.val][4];
-      //pusch_config_pdu->n_front_load_symb = table_7_3_1_1_2_23[dci->antenna_ports.val][5]; //FIXME
+      //n_front_load_symb = table_7_3_1_1_2_23[dci->antenna_ports.val][5]; //FIXME
     }
   }
   LOG_D(NR_MAC,"num_dmrs_cdm_grps_no_data %d, dmrs_ports %d\n",pusch_config_pdu->num_dmrs_cdm_grps_no_data,pusch_config_pdu->dmrs_ports);
@@ -559,23 +564,25 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
   int                N_PRB_oh  = 0;
 
   int rnti_type = get_rnti_type(mac, rnti);
+  NR_BWP_Id_t ul_bwp_id = mac->UL_BWP_Id;
 
   // Common configuration
   pusch_config_pdu->dmrs_config_type = pusch_dmrs_type1;
   pusch_config_pdu->pdu_bit_map      = PUSCH_PDU_BITMAP_PUSCH_DATA;
   pusch_config_pdu->nrOfLayers       = 1;
+  pusch_config_pdu->Tpmi             = 0;
   pusch_config_pdu->rnti             = rnti;
   NR_BWP_UplinkCommon_t *initialUplinkBWP;
   if (mac->scc) initialUplinkBWP = mac->scc->uplinkConfigCommon->initialUplinkBWP;
   else          initialUplinkBWP = &mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP;
 
   pusch_dmrs_AdditionalPosition_t add_pos = pusch_dmrs_pos2;
-  pusch_maxLength_t dmrslength = pusch_len1;
+  int dmrslength = 1;
 
   if (rar_grant) {
 
     // Note: for Msg3 or MsgA PUSCH transmission the N_PRB_oh is always set to 0
-    NR_BWP_Uplink_t *ubwp = mac->ULbwp[0];
+    NR_BWP_Uplink_t *ubwp = ul_bwp_id > 0 ? mac->ULbwp[ul_bwp_id - 1] : NULL;
     NR_BWP_UplinkDedicated_t *ibwp;
     int scs,abwp_start,abwp_size,startSymbolAndLength,mappingtype;
     NR_PUSCH_Config_t *pusch_Config=NULL;
@@ -686,13 +693,12 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
 
     int target_ss;
     bool valid_ptrs_setup = 0;
-    uint16_t n_RB_ULBWP;
-    n_RB_ULBWP = NRRIV2BW(ubwpc->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
+
+    uint16_t n_RB_ULBWP = NRRIV2BW(ubwpc->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
     pusch_config_pdu->bwp_start = NRRIV2PRBOFFSET(ubwpc->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
     pusch_config_pdu->bwp_size = n_RB_ULBWP;
 
-    AssertFatal(ubwpd->pusch_Config != NULL,"pusch_Config shouldn't be null\n");
-    NR_PUSCH_Config_t *pusch_Config = ubwpd->pusch_Config->choice.setup;
+    const NR_PUSCH_Config_t *pusch_Config = ubwpd? ubwpd->pusch_Config->choice.setup : NULL;
 
     // Basic sanity check for MCS value to check for a false or erroneous DCI
     if (dci->mcs > 28) {
@@ -713,11 +719,12 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
     } else if (*dci_format == NR_UL_DCI_FORMAT_0_1) {
 
       config_bwp_ue(mac, &dci->bwp_indicator.val, dci_format);
+
       get_bwp_info(mac,dl_bwp_id,ul_bwp_id,&bwpd,&bwpc,&ubwpd,&ubwpc);
 
       target_ss = NR_SearchSpace__searchSpaceType_PR_ue_Specific;
       ul_layers_config(mac, pusch_config_pdu, dci);
-      ul_ports_config(mac, pusch_config_pdu, dci);
+      ul_ports_config(mac, &dmrslength, pusch_config_pdu, dci);
 
     } else {
 
@@ -725,6 +732,7 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
       return -1;
 
     }
+
     NR_PUSCH_ConfigCommon_t *pusch_ConfigCommon = ubwpc->pusch_ConfigCommon->choice.setup;
     NR_PUSCH_TimeDomainResourceAllocationList_t *pusch_TimeDomainAllocationList = choose_ul_tda_list(pusch_Config,pusch_ConfigCommon);
 
@@ -748,7 +756,8 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
       pusch_config_pdu->num_dmrs_cdm_grps_no_data = 2;
 
       uint32_t n_RS_Id = 0;
-      if (NR_DMRS_ulconfig->transformPrecodingEnabled->nPUSCH_Identity != NULL)
+      if (NR_DMRS_ulconfig->transformPrecodingEnabled &&
+          NR_DMRS_ulconfig->transformPrecodingEnabled->nPUSCH_Identity != NULL)
         n_RS_Id = *NR_DMRS_ulconfig->transformPrecodingEnabled->nPUSCH_Identity;
       else
         n_RS_Id = *mac->scc->physCellId;
@@ -767,10 +776,10 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
                 pusch_config_pdu->dfts_ofdm.low_papr_group_number);
     }
     else {
-      if (pusch_config_pdu->scid == 0 &&
+      if (pusch_config_pdu->scid == 0 && NR_DMRS_ulconfig &&
           NR_DMRS_ulconfig->transformPrecodingDisabled->scramblingID0)
         pusch_config_pdu->ul_dmrs_scrambling_id = *NR_DMRS_ulconfig->transformPrecodingDisabled->scramblingID0;
-      if (pusch_config_pdu->scid == 1 &&
+      if (pusch_config_pdu->scid == 1 && NR_DMRS_ulconfig &&
           NR_DMRS_ulconfig->transformPrecodingDisabled->scramblingID1)
         pusch_config_pdu->ul_dmrs_scrambling_id = *NR_DMRS_ulconfig->transformPrecodingDisabled->scramblingID1;
     }
@@ -823,20 +832,25 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
       pusch_config_pdu->absolute_delta_PUSCH = 4;
     }
 
-    if (NR_DMRS_ulconfig != NULL) {
+    if (NR_DMRS_ulconfig != NULL)
       add_pos = (NR_DMRS_ulconfig->dmrs_AdditionalPosition == NULL) ? 2 : *NR_DMRS_ulconfig->dmrs_AdditionalPosition;
-      dmrslength = NR_DMRS_ulconfig->maxLength == NULL ? pusch_len1 : pusch_len2;
-    }
 
     /* DMRS */
     l_prime_mask = get_l_prime(pusch_config_pdu->nr_of_symbols,
                                mappingtype, add_pos, dmrslength,
                                pusch_config_pdu->start_symbol_index,
                                mac->scc ? mac->scc->dmrs_TypeA_Position : mac->mib->dmrs_TypeA_Position);
-    if ((mac->ULbwp[0] && pusch_config_pdu->transform_precoding == NR_PUSCH_Config__transformPrecoder_disabled))
+    if (ul_bwp_id > 0 &&
+        mac->ULbwp[ul_bwp_id - 1] &&
+        pusch_config_pdu->transform_precoding == NR_PUSCH_Config__transformPrecoder_disabled &&
+        *dci_format != NR_UL_DCI_FORMAT_0_1) {
       pusch_config_pdu->num_dmrs_cdm_grps_no_data = 1;
-    else if (*dci_format == NR_UL_DCI_FORMAT_0_0 || (mac->ULbwp[0] && pusch_config_pdu->transform_precoding == NR_PUSCH_Config__transformPrecoder_enabled))
+    } else if (*dci_format == NR_UL_DCI_FORMAT_0_0 ||
+               (ul_bwp_id > 0 &&
+                mac->ULbwp[ul_bwp_id-1] &&
+                pusch_config_pdu->transform_precoding == NR_PUSCH_Config__transformPrecoder_enabled)) {
       pusch_config_pdu->num_dmrs_cdm_grps_no_data = 2;
+    }
 
     // Num PRB Overhead from PUSCH-ServingCellConfig
     if (mac->cg &&
@@ -850,16 +864,17 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
     else N_PRB_oh = 0;
 
     /* PTRS */
-    if (mac->ULbwp[0] &&
-	mac->ULbwp[0]->bwp_Dedicated &&
-	mac->ULbwp[0]->bwp_Dedicated->pusch_Config &&
-	mac->ULbwp[0]->bwp_Dedicated->pusch_Config->choice.setup &&
-	mac->ULbwp[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB &&
-	mac->ULbwp[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS) {
+    if (ul_bwp_id > 0 &&
+        mac->ULbwp[ul_bwp_id-1] &&
+        mac->ULbwp[ul_bwp_id-1]->bwp_Dedicated &&
+        mac->ULbwp[ul_bwp_id-1]->bwp_Dedicated->pusch_Config &&
+        mac->ULbwp[ul_bwp_id-1]->bwp_Dedicated->pusch_Config->choice.setup &&
+        mac->ULbwp[ul_bwp_id-1]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB &&
+        mac->ULbwp[ul_bwp_id-1]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS) {
       if (pusch_config_pdu->transform_precoding == NR_PUSCH_Config__transformPrecoder_disabled) {
         nfapi_nr_ue_ptrs_ports_t ptrs_ports_list;
         pusch_config_pdu->pusch_ptrs.ptrs_ports_list = &ptrs_ports_list;
-        valid_ptrs_setup = set_ul_ptrs_values(mac->ULbwp[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup,
+        valid_ptrs_setup = set_ul_ptrs_values(mac->ULbwp[ul_bwp_id-1]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup,
                                               pusch_config_pdu->rb_size, pusch_config_pdu->mcs_index, pusch_config_pdu->mcs_table,
                                               &pusch_config_pdu->pusch_ptrs.ptrs_freq_density,&pusch_config_pdu->pusch_ptrs.ptrs_time_density,
                                               &pusch_config_pdu->pusch_ptrs.ptrs_ports_list->ptrs_re_offset,&pusch_config_pdu->pusch_ptrs.num_ptrs_ports,
@@ -882,7 +897,8 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
     rnti_types[rnti_type]);
 
   pusch_config_pdu->ul_dmrs_symb_pos = l_prime_mask;
-  pusch_config_pdu->target_code_rate = nr_get_code_rate_ul(pusch_config_pdu->mcs_index, pusch_config_pdu->mcs_table);
+  uint16_t R = nr_get_code_rate_ul(pusch_config_pdu->mcs_index, pusch_config_pdu->mcs_table);
+  pusch_config_pdu->target_code_rate = R;
   pusch_config_pdu->qam_mod_order = nr_get_Qm_ul(pusch_config_pdu->mcs_index, pusch_config_pdu->mcs_table);
 
   if (pusch_config_pdu->target_code_rate == 0 || pusch_config_pdu->qam_mod_order == 0) {
@@ -901,14 +917,13 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
 
   // Compute TBS
   pusch_config_pdu->pusch_data.tb_size = nr_compute_tbs(pusch_config_pdu->qam_mod_order,
-                                                        pusch_config_pdu->target_code_rate,
+                                                        R,
                                                         pusch_config_pdu->rb_size,
                                                         pusch_config_pdu->nr_of_symbols,
                                                         nb_dmrs_re_per_rb*number_dmrs_symbols,
                                                         N_PRB_oh,
                                                         0, // TBR to verify tb scaling
-                                                        pusch_config_pdu->nrOfLayers)/8;
-
+                                                        pusch_config_pdu->nrOfLayers)>>3;
   return 0;
 
 }
@@ -919,15 +934,23 @@ bool nr_ue_periodic_srs_scheduling(module_id_t mod_id, frame_t frame, slot_t slo
   bool srs_scheduled = false;
 
   NR_UE_MAC_INST_t *mac = get_mac_inst(mod_id);
+  const NR_BWP_Id_t ul_bwp_id = mac->UL_BWP_Id;
 
   NR_SRS_Config_t *srs_config = NULL;
-  if (mac->cg &&
-      mac->cg->spCellConfig &&
-      mac->cg->spCellConfig->spCellConfigDedicated &&
-      mac->cg->spCellConfig->spCellConfigDedicated->uplinkConfig &&
-      mac->cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP) {
+  if (ul_bwp_id > 0 && mac->ULbwp[ul_bwp_id-1]) {
+    if (mac->ULbwp[ul_bwp_id-1]->bwp_Dedicated &&
+        mac->ULbwp[ul_bwp_id-1]->bwp_Dedicated->srs_Config) {
+      srs_config = mac->ULbwp[ul_bwp_id-1]->bwp_Dedicated->srs_Config->choice.setup;
+    }
+  } else if (mac->cg &&
+             mac->cg->spCellConfig &&
+             mac->cg->spCellConfig->spCellConfigDedicated &&
+             mac->cg->spCellConfig->spCellConfigDedicated->uplinkConfig &&
+             mac->cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP) {
     srs_config = mac->cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP->srs_Config->choice.setup;
-  } else {
+  }
+
+  if (!srs_config) {
     return false;
   }
 
@@ -955,9 +978,9 @@ bool nr_ue_periodic_srs_scheduling(module_id_t mod_id, frame_t frame, slot_t slo
       continue;
     }
 
-    NR_BWP_t ubwp = mac->ULbwp[0] ?
-                      mac->ULbwp[0]->bwp_Common->genericParameters :
-                      mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP.genericParameters;
+    NR_BWP_t ubwp = ul_bwp_id > 0 && mac->ULbwp[ul_bwp_id-1] ?
+                    mac->ULbwp[ul_bwp_id-1]->bwp_Common->genericParameters :
+                    mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP.genericParameters;
 
     uint16_t period = srs_period[srs_resource->resourceType.choice.periodic->periodicityAndOffset_p.present];
     uint16_t offset = get_nr_srs_offset(srs_resource->resourceType.choice.periodic->periodicityAndOffset_p);
@@ -1062,9 +1085,6 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
 
     if(mac->cg != NULL){ // we have a cg
 
-      nr_schedule_csirs_reception(mac, rx_frame, rx_slot);
-      nr_schedule_csi_for_im(mac, rx_frame, rx_slot);
-
       dcireq.module_id = mod_id;
       dcireq.gNB_index = gNB_index;
       dcireq.cc_id     = cc_id;
@@ -1074,9 +1094,15 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
       nr_ue_dcireq(&dcireq); //to be replaced with function pointer later
       mac->dl_config_request = dcireq.dl_config_req;
 
+      nr_schedule_csirs_reception(mac, rx_frame, rx_slot);
+      nr_schedule_csi_for_im(mac, rx_frame, rx_slot);
+      dcireq.dl_config_req = mac->dl_config_request;
+
       fill_scheduled_response(&scheduled_response, &dcireq.dl_config_req, NULL, NULL, mod_id, cc_id, rx_frame, rx_slot, dl_info->thread_id, dl_info->phy_data);
-      if(mac->if_module != NULL && mac->if_module->scheduled_response != NULL)
+      if(mac->if_module != NULL && mac->if_module->scheduled_response != NULL) {
+        LOG_D(NR_MAC,"1# scheduled_response transmitted, %d, %d\n", rx_frame, rx_slot);
         mac->if_module->scheduled_response(&scheduled_response);
+      }
     }
     else {
       // this is for Msg2/Msg4
@@ -1087,7 +1113,7 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
         if (mac->ra.ra_state == WAIT_CONTENTION_RESOLUTION)
           rel15->dci_format_options[1] = NR_UL_DCI_FORMAT_0_0; // msg3 retransmission
         config_dci_pdu(mac, rel15, dl_config, mac->ra.ra_state == WAIT_RAR ? NR_RNTI_RA : NR_RNTI_TC , mac->ra.ss->searchSpaceId);
-        fill_dci_search_candidates(mac->ra.ss, rel15);
+        fill_dci_search_candidates(mac->ra.ss, rel15, -1 , -1);
         dl_config->number_pdus = 1;
         LOG_D(MAC,"mac->cg %p: Calling fill_scheduled_response rnti %x, type0_pdcch, num_pdus %d\n",mac->cg,rel15->rnti,dl_config->number_pdus);
         fill_scheduled_response(&scheduled_response, dl_config, NULL, NULL, mod_id, cc_id, rx_frame, rx_slot, dl_info->thread_id, dl_info->phy_data);
@@ -1201,6 +1227,7 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
 
         fill_scheduled_response(&scheduled_response, NULL, ul_config, &tx_req, mod_id, cc_id, frame_tx, slot_tx, ul_info->thread_id, NULL);
         if(mac->if_module != NULL && mac->if_module->scheduled_response != NULL){
+          LOG_D(NR_MAC,"3# scheduled_response transmitted,%d, %d\n", frame_tx, slot_tx);
           mac->if_module->scheduled_response(&scheduled_response);
         }
         pthread_mutex_lock(&ul_config->mutex_ul_config);
@@ -1234,7 +1261,7 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
   }
 
   //Check whether Regular BSR is triggered
-  if (nr_update_bsr(mod_id, txFrameP, txSlotP, gNB_indexP) == TRUE) {
+  if (nr_update_bsr(mod_id, txFrameP, txSlotP, gNB_indexP) == true) {
     // call SR procedure to generate pending SR and BSR for next PUCCH/PUSCH TxOp.  This should implement the procedures
     // outlined in Sections 5.4.4 an 5.4.5 of 38.321
     mac->scheduling_info.SR_pending = 1;
@@ -1247,10 +1274,10 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
 
 }
 
-boolean_t
+bool
 nr_update_bsr(module_id_t module_idP, frame_t frameP, slot_t slotP, uint8_t gNB_index) {
   mac_rlc_status_resp_t rlc_status;
-  boolean_t bsr_regular_triggered = FALSE;
+  bool bsr_regular_triggered = false;
   uint8_t lcid;
   uint8_t lcgid;
   uint8_t num_lcid_with_data = 0; // for LCID with data only if LCGID is defined
@@ -1343,7 +1370,7 @@ nr_update_bsr(module_id_t module_idP, frame_t frameP, slot_t slotP, uint8_t gNB_
          which belong to any LCG and for which data is already available for transmission
        */
       {
-        bsr_regular_triggered = TRUE;
+        bsr_regular_triggered = true;
         LOG_D(NR_MAC, "[UE %d] PDCCH Tick : MAC BSR Triggered LCID%d LCGID%d data become available at frame %d slot %d\n",
               module_idP, lcid,
               mac->scheduling_info.LCGID[lcid],
@@ -1354,7 +1381,7 @@ nr_update_bsr(module_id_t module_idP, frame_t frameP, slot_t slotP, uint8_t gNB_
 
     // Trigger Regular BSR if ReTxBSR Timer has expired and UE has data for transmission
     if (mac->scheduling_info.retxBSR_SF == 0) {
-      bsr_regular_triggered = TRUE;
+      bsr_regular_triggered = true;
 
       if ((mac->BSR_reporting_active & NR_BSR_TRIGGER_REGULAR) == 0) {
         LOG_I(NR_MAC, "[UE %d] PDCCH Tick : MAC BSR Triggered ReTxBSR Timer expiry at frame %d slot %d\n",
@@ -1543,14 +1570,15 @@ int nr_ue_pusch_scheduler(NR_UE_MAC_INST_t *mac,
                           uint8_t tda_id){
 
   int delta = 0;
-  NR_BWP_Uplink_t *ubwp = mac->ULbwp[0];
+  NR_BWP_Id_t ul_bwp_id = mac->UL_BWP_Id;
+
   // Get the numerology to calculate the Tx frame and slot
-  int mu = ubwp ?
-    ubwp->bwp_Common->genericParameters.subcarrierSpacing :
+  int mu = ul_bwp_id > 0 && mac->ULbwp[ul_bwp_id-1] ?
+    mac->ULbwp[ul_bwp_id-1]->bwp_Common->genericParameters.subcarrierSpacing :
     mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP.genericParameters.subcarrierSpacing;
 
-  NR_PUSCH_TimeDomainResourceAllocationList_t *pusch_TimeDomainAllocationList = ubwp ?
-    ubwp->bwp_Common->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList:
+  NR_PUSCH_TimeDomainResourceAllocationList_t *pusch_TimeDomainAllocationList = ul_bwp_id > 0 && mac->ULbwp[ul_bwp_id-1] ?
+    mac->ULbwp[ul_bwp_id-1]->bwp_Common->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList:
     mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP.pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList;
   // k2 as per 3GPP TS 38.214 version 15.9.0 Release 15 ch 6.1.2.1.1
   // PUSCH time domain resource allocation is higher layer configured from uschTimeDomainAllocationList in either pusch-ConfigCommon
@@ -1613,7 +1641,7 @@ static void build_ro_list(NR_UE_MAC_INST_t *mac) {
   int y2;  // PRACH Configuration Index table additional variable used to compute the valid frame numbers
   uint8_t slot_shift_for_map;
   uint8_t map_shift;
-  boolean_t even_slot_invalid;
+  bool even_slot_invalid;
   int64_t s_map;
   uint8_t prach_conf_start_symbol; // Starting symbol of the PRACH occasions in the PRACH slot
   uint8_t N_t_slot; // Number of PRACH occasions in a 14-symbols PRACH slot
@@ -1885,7 +1913,7 @@ static void map_ssb_to_ro(NR_UE_MAC_INST_t *mac) {
     mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP.rach_ConfigCommon->choice.setup;
   NR_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR ssb_perRACH_config = setup->ssb_perRACH_OccasionAndCB_PreamblesPerSSB->present;
 
-  boolean_t multiple_ssb_per_ro; // true if more than one or exactly one SSB per RACH occasion, false if more than one RO per SSB
+  bool multiple_ssb_per_ro; // true if more than one or exactly one SSB per RACH occasion, false if more than one RO per SSB
   uint8_t ssb_rach_ratio; // Nb of SSBs per RACH or RACHs per SSB
   uint16_t required_nb_of_prach_occasion; // Nb of RACH occasions required to map all the SSBs
   uint8_t required_nb_of_prach_conf_period; // Nb of PRACH configuration periods required to map all the SSBs
@@ -2381,9 +2409,17 @@ void nr_schedule_csi_for_im(NR_UE_MAC_INST_t *mac, int frame, int slot) {
   NR_CSI_IM_Resource_t *imcsi;
   int period, offset;
   NR_BWP_Id_t dl_bwp_id = mac->DL_BWP_Id;
-  int mu = mac->DLbwp[dl_bwp_id-1] ?
-    mac->DLbwp[dl_bwp_id-1]->bwp_Common->genericParameters.subcarrierSpacing :
-    mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP.genericParameters.subcarrierSpacing;
+
+  NR_BWP_t *genericParameters = NULL;
+  if(dl_bwp_id > 0 && mac->DLbwp[dl_bwp_id-1]) {
+    genericParameters = &mac->DLbwp[dl_bwp_id-1]->bwp_Common->genericParameters;
+  } else {
+    genericParameters = &mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP.genericParameters;
+  }
+
+  int mu = genericParameters->subcarrierSpacing;
+  uint16_t bwp_size = NRRIV2BW(genericParameters->locationAndBandwidth, MAX_BWP_SIZE);
+  uint16_t bwp_start = NRRIV2PRBOFFSET(genericParameters->locationAndBandwidth, MAX_BWP_SIZE);
 
   for (int id = 0; id < csi_measconfig->csi_IM_ResourceToAddModList->list.count; id++){
     imcsi = csi_measconfig->csi_IM_ResourceToAddModList->list.array[id];
@@ -2391,11 +2427,8 @@ void nr_schedule_csi_for_im(NR_UE_MAC_INST_t *mac, int frame, int slot) {
     if((frame*nr_slots_per_frame[mu]+slot-offset)%period != 0)
       continue;
     fapi_nr_dl_config_csiim_pdu_rel15_t *csiim_config_pdu = &dl_config->dl_config_list[dl_config->number_pdus].csiim_config_pdu.csiim_config_rel15;
-    const NR_BWP_Downlink_t *dlbwp = mac->DLbwp[dl_bwp_id-1];
-    const int locationAndBandwidth = dlbwp != NULL ? dlbwp->bwp_Common->genericParameters.locationAndBandwidth:
-                                     mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP.genericParameters.locationAndBandwidth;
-    csiim_config_pdu->bwp_size = NRRIV2BW(locationAndBandwidth, MAX_BWP_SIZE);
-    csiim_config_pdu->bwp_start = NRRIV2PRBOFFSET(locationAndBandwidth, MAX_BWP_SIZE);
+    csiim_config_pdu->bwp_size = bwp_size;
+    csiim_config_pdu->bwp_start = bwp_start;
     csiim_config_pdu->subcarrier_spacing = mu;
     csiim_config_pdu->start_rb = imcsi->freqBand->startingRB;
     csiim_config_pdu->nr_of_rbs = imcsi->freqBand->nrofRBs;
@@ -2417,7 +2450,7 @@ void nr_schedule_csi_for_im(NR_UE_MAC_INST_t *mac, int frame, int slot) {
         AssertFatal(1==0, "Invalid CSI-IM pattern\n");
     }
     dl_config->dl_config_list[dl_config->number_pdus].pdu_type = FAPI_NR_DL_CONFIG_TYPE_CSI_IM;
-    dl_config->number_pdus = dl_config->number_pdus + 1;
+    dl_config->number_pdus += 1;
   }
 }
 
@@ -2441,9 +2474,17 @@ void nr_schedule_csirs_reception(NR_UE_MAC_INST_t *mac, int frame, int slot) {
   NR_NZP_CSI_RS_Resource_t *nzpcsi;
   int period, offset;
   NR_BWP_Id_t dl_bwp_id = mac->DL_BWP_Id;
-  int mu = mac->DLbwp[dl_bwp_id-1] ?
-    mac->DLbwp[dl_bwp_id-1]->bwp_Common->genericParameters.subcarrierSpacing :
-    mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP.genericParameters.subcarrierSpacing;
+
+  NR_BWP_t *genericParameters = NULL;
+  if(dl_bwp_id > 0 && mac->DLbwp[dl_bwp_id-1]) {
+    genericParameters = &mac->DLbwp[dl_bwp_id-1]->bwp_Common->genericParameters;
+  } else {
+    genericParameters = &mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP.genericParameters;
+  }
+
+  int mu = genericParameters->subcarrierSpacing;
+  uint16_t bwp_size = NRRIV2BW(genericParameters->locationAndBandwidth, MAX_BWP_SIZE);
+  uint16_t bwp_start = NRRIV2PRBOFFSET(genericParameters->locationAndBandwidth, MAX_BWP_SIZE);
 
   for (int id = 0; id < csi_measconfig->nzp_CSI_RS_ResourceToAddModList->list.count; id++){
     nzpcsi = csi_measconfig->nzp_CSI_RS_ResourceToAddModList->list.array[id];
@@ -2452,17 +2493,23 @@ void nr_schedule_csirs_reception(NR_UE_MAC_INST_t *mac, int frame, int slot) {
       continue;
     LOG_D(MAC,"Scheduling reception of CSI-RS in frame %d slot %d\n",frame,slot);
     fapi_nr_dl_config_csirs_pdu_rel15_t *csirs_config_pdu = &dl_config->dl_config_list[dl_config->number_pdus].csirs_config_pdu.csirs_config_rel15;
-
     NR_CSI_RS_ResourceMapping_t  resourceMapping = nzpcsi->resourceMapping;
-
-    const NR_BWP_Downlink_t *dlbwp = mac->DLbwp[dl_bwp_id-1];
-    const int locationAndBandwidth = dlbwp != NULL ? dlbwp->bwp_Common->genericParameters.locationAndBandwidth:
-                                     mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP.genericParameters.locationAndBandwidth;
-    csirs_config_pdu->bwp_size = NRRIV2BW(locationAndBandwidth, MAX_BWP_SIZE);
-    csirs_config_pdu->bwp_start = NRRIV2PRBOFFSET(locationAndBandwidth, MAX_BWP_SIZE);
     csirs_config_pdu->subcarrier_spacing = mu;
-    csirs_config_pdu->start_rb = resourceMapping.freqBand.startingRB;
-    csirs_config_pdu->nr_of_rbs = resourceMapping.freqBand.nrofRBs;
+    csirs_config_pdu->cyclic_prefix = genericParameters->cyclicPrefix ? *genericParameters->cyclicPrefix : 0;
+
+    // According to last paragraph of TS 38.214 5.2.2.3.1
+    if (resourceMapping.freqBand.startingRB < bwp_start) {
+      csirs_config_pdu->start_rb = bwp_start;
+    } else {
+      csirs_config_pdu->start_rb = resourceMapping.freqBand.startingRB;
+    }
+    if (resourceMapping.freqBand.nrofRBs > (bwp_start + bwp_size - csirs_config_pdu->start_rb)) {
+      csirs_config_pdu->nr_of_rbs = bwp_start + bwp_size - csirs_config_pdu->start_rb;
+    } else {
+      csirs_config_pdu->nr_of_rbs = resourceMapping.freqBand.nrofRBs;
+    }
+    AssertFatal(csirs_config_pdu->nr_of_rbs >= 24, "CSI-RS has %d RBs, but the minimum is 24\n", csirs_config_pdu->nr_of_rbs);
+
     csirs_config_pdu->csi_type = 1; // NZP-CSI-RS
     csirs_config_pdu->symb_l0 = resourceMapping.firstOFDMSymbolInTimeDomain;
     if (resourceMapping.firstOFDMSymbolInTimeDomain2)
@@ -2473,6 +2520,11 @@ void nr_schedule_csirs_reception(NR_UE_MAC_INST_t *mac, int frame, int slot) {
         && (resourceMapping.density.choice.dot5 == NR_CSI_RS_ResourceMapping__density__dot5_evenPRBs))
       csirs_config_pdu->freq_density--;
     csirs_config_pdu->scramb_id = nzpcsi->scramblingID;
+    csirs_config_pdu->power_control_offset = nzpcsi->powerControlOffset + 8;
+    if (nzpcsi->powerControlOffsetSS)
+      csirs_config_pdu->power_control_offset_ss = *nzpcsi->powerControlOffsetSS;
+    else
+      csirs_config_pdu->power_control_offset_ss = 1; // 0 dB
     switch(resourceMapping.frequencyDomainAllocation.present){
       case NR_CSI_RS_ResourceMapping__frequencyDomainAllocation_PR_row1:
         csirs_config_pdu->row = 1;
@@ -2553,7 +2605,7 @@ void nr_schedule_csirs_reception(NR_UE_MAC_INST_t *mac, int frame, int slot) {
         AssertFatal(1==0,"Invalid freqency domain allocation in CSI-RS resource\n");
     }
     dl_config->dl_config_list[dl_config->number_pdus].pdu_type = FAPI_NR_DL_CONFIG_TYPE_CSI_RS;
-    dl_config->number_pdus = dl_config->number_pdus + 1;
+    dl_config->number_pdus += 1;
   }
 }
 
@@ -2750,7 +2802,7 @@ void nr_ue_sib1_scheduler(module_id_t module_idP,
   rel15->num_dci_options = 1;
   rel15->dci_format_options[0] = NR_DL_DCI_FORMAT_1_0;
   config_dci_pdu(mac, rel15, dl_config, NR_RNTI_SI, -1);
-  fill_dci_search_candidates(mac->search_space_zero, rel15);
+  fill_dci_search_candidates(mac->search_space_zero, rel15, -1, -1);
 
   if(mac->type0_PDCCH_CSS_config.type0_pdcch_ss_mux_pattern == 1){
     // same frame as ssb
diff --git a/openair2/LAYER2/NR_MAC_gNB/config.c b/openair2/LAYER2/NR_MAC_gNB/config.c
index 9dff368cccd..46ea821a878 100644
--- a/openair2/LAYER2/NR_MAC_gNB/config.c
+++ b/openair2/LAYER2/NR_MAC_gNB/config.c
@@ -160,11 +160,10 @@ void process_CellGroup(NR_CellGroupConfig_t *CellGroup, NR_UE_sched_ctrl_t *sche
 
 }
 
-void config_common(int Mod_idP, int ssb_SubcarrierOffset, rrc_pdsch_AntennaPorts_t dl_antenna_ports_struct, int pusch_AntennaPorts, NR_ServingCellConfigCommon_t *scc) {
+void config_common(int Mod_idP, int pdsch_AntennaPorts, int pusch_AntennaPorts, NR_ServingCellConfigCommon_t *scc) {
 
   nfapi_nr_config_request_scf_t *cfg = &RC.nrmac[Mod_idP]->config[0];
   RC.nrmac[Mod_idP]->common_channels[0].ServingCellConfigCommon = scc;
-  int pdsch_AntennaPorts = dl_antenna_ports_struct.N1 * dl_antenna_ports_struct.N2 * dl_antenna_ports_struct.XP;
 
   // Carrier configuration
 
@@ -336,42 +335,32 @@ void config_common(int Mod_idP, int ssb_SubcarrierOffset, rrc_pdsch_AntennaPorts
   cfg->num_tlv++;
 
   // SSB Table Configuration
-  int scs_scaling = 1<<(cfg->ssb_config.scs_common.value);
-  if (scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencyPointA < 600000)
-    scs_scaling = scs_scaling*3;
-  if (scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencyPointA > 2016666)
-    scs_scaling = scs_scaling>>2;
   uint32_t absolute_diff = (*scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencySSB - scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencyPointA);
-  uint16_t sco = absolute_diff%(12*scs_scaling);
-  // values of subcarrier offset larger than the limit only indicates CORESET for Type0-PDCCH CSS set is not present
-  int ssb_SubcarrierOffset_limit = 0;
-  int offset_scaling = 0;  //15kHz
-  if(frequency_range == FR1) {
-    ssb_SubcarrierOffset_limit = 24;
-    if (ssb_SubcarrierOffset<ssb_SubcarrierOffset_limit)
-      offset_scaling = cfg->ssb_config.scs_common.value;
-  } else
-    ssb_SubcarrierOffset_limit = 12;
-  if (ssb_SubcarrierOffset<ssb_SubcarrierOffset_limit)
-    AssertFatal(sco==(scs_scaling * ssb_SubcarrierOffset),
-                "absoluteFrequencySSB has a subcarrier offset of %d while it should be %d\n",sco/scs_scaling,ssb_SubcarrierOffset);
-  cfg->ssb_table.ssb_offset_point_a.value = absolute_diff/(12*scs_scaling) - 10; //absoluteFrequencySSB is the central frequency of SSB which is made by 20RBs in total
+  const int scaling_5khz = scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencyPointA < 600000 ? 3 : 1;
+  int sco = (absolute_diff/scaling_5khz) % 24;
+  if(frequency_range == FR2)
+    sco >>= 1; // this assumes 120kHz SCS for SSB and subCarrierSpacingCommon (only option supported by OAI for
+  const int scs_scaling = frequency_range == FR2 ? 1 << (*scc->ssbSubcarrierSpacing - 2) : 1 << *scc->ssbSubcarrierSpacing;
+  cfg->ssb_table.ssb_offset_point_a.value = absolute_diff/(12*scaling_5khz) - 10*scs_scaling; //absoluteFrequencySSB is the central frequency of SSB which is made by 20RBs in total
   cfg->ssb_table.ssb_offset_point_a.tl.tag = NFAPI_NR_CONFIG_SSB_OFFSET_POINT_A_TAG;
   cfg->num_tlv++;
   cfg->ssb_table.ssb_period.value = *scc->ssb_periodicityServingCell;
   cfg->ssb_table.ssb_period.tl.tag = NFAPI_NR_CONFIG_SSB_PERIOD_TAG;
   cfg->num_tlv++;
-  cfg->ssb_table.ssb_subcarrier_offset.value = ssb_SubcarrierOffset<<offset_scaling;
+  cfg->ssb_table.ssb_subcarrier_offset.value = sco;
   cfg->ssb_table.ssb_subcarrier_offset.tl.tag = NFAPI_NR_CONFIG_SSB_SUBCARRIER_OFFSET_TAG;
   cfg->num_tlv++;
 
+  RC.nrmac[Mod_idP]->ssb_SubcarrierOffset = cfg->ssb_table.ssb_subcarrier_offset.value;
+  RC.nrmac[Mod_idP]->ssb_OffsetPointA = cfg->ssb_table.ssb_offset_point_a.value;
+
   switch (scc->ssb_PositionsInBurst->present) {
     case 1 :
       cfg->ssb_table.ssb_mask_list[0].ssb_mask.value = scc->ssb_PositionsInBurst->choice.shortBitmap.buf[0]<<24;
       cfg->ssb_table.ssb_mask_list[1].ssb_mask.value = 0;
       break;
     case 2 :
-      cfg->ssb_table.ssb_mask_list[0].ssb_mask.value = scc->ssb_PositionsInBurst->choice.mediumBitmap.buf[0]<<24;
+      cfg->ssb_table.ssb_mask_list[0].ssb_mask.value = ((uint32_t) scc->ssb_PositionsInBurst->choice.mediumBitmap.buf[0]) << 24;
       cfg->ssb_table.ssb_mask_list[1].ssb_mask.value = 0;
       break;
     case 3 :
@@ -416,8 +405,8 @@ void config_common(int Mod_idP, int ssb_SubcarrierOffset, rrc_pdsch_AntennaPorts
   cfg->carrier_config.num_rx_ant.value = pusch_AntennaPorts;
   AssertFatal(pusch_AntennaPorts > 0 && pusch_AntennaPorts < 13, "pusch_AntennaPorts in 1...12\n");
   cfg->carrier_config.num_rx_ant.tl.tag = NFAPI_NR_CONFIG_NUM_RX_ANT_TAG;
-  LOG_I(NR_MAC,"Set TX/RX antenna number to %d (num ssb %d: %x,%x)\n",
-        cfg->carrier_config.num_tx_ant.value,num_ssb,cfg->ssb_table.ssb_mask_list[0].ssb_mask.value,cfg->ssb_table.ssb_mask_list[1].ssb_mask.value);
+  LOG_I(NR_MAC,"Set RX antenna number to %d, Set TX antenna number to %d (num ssb %d: %x,%x)\n",
+        cfg->carrier_config.num_tx_ant.value,cfg->carrier_config.num_rx_ant.value,num_ssb,cfg->ssb_table.ssb_mask_list[0].ssb_mask.value,cfg->ssb_table.ssb_mask_list[1].ssb_mask.value);
   AssertFatal(cfg->carrier_config.num_tx_ant.value > 0,"carrier_config.num_tx_ant.value %d !\n",cfg->carrier_config.num_tx_ant.value );
   cfg->num_tlv++;
   cfg->num_tlv++;
@@ -456,24 +445,21 @@ int nr_mac_enable_ue_rrc_processing_timer(module_id_t Mod_idP, rnti_t rnti, NR_S
   if (rrc_reconfiguration_delay == 0) {
     return -1;
   }
-  const int UE_id = find_nr_UE_id(Mod_idP,rnti);
-  if (UE_id < 0) {
+
+  NR_UE_info_t *UE_info = find_nr_UE(&RC.nrmac[Mod_idP]->UE_info,rnti);
+  if (!UE_info) {
     LOG_W(NR_MAC, "Could not find UE for RNTI 0x%04x\n", rnti);
     return -1;
   }
-
-  NR_UE_info_t *UE_info = &RC.nrmac[Mod_idP]->UE_info;
-  NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
-  const uint16_t sf_ahead = 6/(0x01<<subcarrierSpacing) + ((6%(0x01<<subcarrierSpacing))>0);
-  const uint16_t sl_ahead = sf_ahead * (0x01<<subcarrierSpacing);
+  NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl;
+  const uint16_t sl_ahead = RC.nrmac[Mod_idP]->if_inst->sl_ahead;
   sched_ctrl->rrc_processing_timer = (rrc_reconfiguration_delay<<subcarrierSpacing) + sl_ahead;
-  LOG_I(NR_MAC, "Activating RRC processing timer for UE %d\n", UE_id);
+  LOG_I(NR_MAC, "Activating RRC processing timer for UE %04x with %d ms\n", UE_info->rnti, rrc_reconfiguration_delay);
 
   return 0;
 }
 
 int rrc_mac_config_req_gNB(module_id_t Mod_idP,
-                           int ssb_SubcarrierOffset,
                            rrc_pdsch_AntennaPorts_t pdsch_AntennaPorts,
                            int pusch_AntennaPorts,
                            int sib1_tda,
@@ -488,19 +474,7 @@ int rrc_mac_config_req_gNB(module_id_t Mod_idP,
   if (scc != NULL ) {
     AssertFatal((scc->ssb_PositionsInBurst->present > 0) && (scc->ssb_PositionsInBurst->present < 4), "SSB Bitmap type %d is not valid\n",scc->ssb_PositionsInBurst->present);
 
-    /* dimension UL_tti_req_ahead for number of slots in frame */
     const int n = nr_slots_per_frame[*scc->ssbSubcarrierSpacing];
-    RC.nrmac[Mod_idP]->UL_tti_req_ahead[0] = calloc(n, sizeof(nfapi_nr_ul_tti_request_t));
-    AssertFatal(RC.nrmac[Mod_idP]->UL_tti_req_ahead[0],
-                "could not allocate memory for RC.nrmac[]->UL_tti_req_ahead[]\n");
-    /* fill in slot/frame numbers: slot is fixed, frame will be updated by scheduler
-     * consider that scheduler runs sl_ahead: the first sl_ahead slots are
-     * already "in the past" and thus we put frame 1 instead of 0! */
-    for (int i = 0; i < n; ++i) {
-      nfapi_nr_ul_tti_request_t *req = &RC.nrmac[Mod_idP]->UL_tti_req_ahead[0][i];
-      req->SFN = i < (RC.nrmac[Mod_idP]->if_inst->sl_ahead-1);
-      req->Slot = i;
-    }
     RC.nrmac[Mod_idP]->common_channels[0].vrb_map_UL =
         calloc(n * MAX_BWP_SIZE, sizeof(uint16_t));
     AssertFatal(RC.nrmac[Mod_idP]->common_channels[0].vrb_map_UL,
@@ -508,9 +482,10 @@ int rrc_mac_config_req_gNB(module_id_t Mod_idP,
 
     LOG_I(NR_MAC,"Configuring common parameters from NR ServingCellConfig\n");
 
+    int num_pdsch_antenna_ports = pdsch_AntennaPorts.N1 * pdsch_AntennaPorts.N2 * pdsch_AntennaPorts.XP;
+    RC.nrmac[Mod_idP]->xp_pdsch_antenna_ports = pdsch_AntennaPorts.XP;
     config_common(Mod_idP,
-                  ssb_SubcarrierOffset,
-                  pdsch_AntennaPorts,
+                  num_pdsch_antenna_ports,
                   pusch_AntennaPorts,
 		  scc);
     LOG_D(NR_MAC, "%s() %s:%d RC.nrmac[Mod_idP]->if_inst->NR_PHY_config_req:%p\n", __FUNCTION__, __FILE__, __LINE__, RC.nrmac[Mod_idP]->if_inst->NR_PHY_config_req);
@@ -523,7 +498,6 @@ int rrc_mac_config_req_gNB(module_id_t Mod_idP,
         printf("Waiting for PHY_config_req\n");
       }
     }
-    RC.nrmac[Mod_idP]->ssb_SubcarrierOffset = ssb_SubcarrierOffset;
     RC.nrmac[Mod_idP]->minRXTXTIMEpdsch = minRXTXTIMEpdsch;
 
     NR_PHY_Config_t phycfg;
@@ -550,9 +524,7 @@ int rrc_mac_config_req_gNB(module_id_t Mod_idP,
       AssertFatal(RC.nrmac[Mod_idP]->common_channels[0].frame_type == FDD,"Dynamic TDD not handled yet\n");
 
     for (int slot = 0; slot < n; ++slot) {
-      if (RC.nrmac[Mod_idP]->common_channels[0].frame_type == FDD ||
-          (slot != 0))
-        RC.nrmac[Mod_idP]->dlsch_slot_bitmap[slot / 64] |= (uint64_t)((slot % nr_slots_period) < nr_dl_slots) << (slot % 64);
+      RC.nrmac[Mod_idP]->dlsch_slot_bitmap[slot / 64] |= (uint64_t)((slot % nr_slots_period) < nr_dl_slots) << (slot % 64);
       RC.nrmac[Mod_idP]->ulsch_slot_bitmap[slot / 64] |= (uint64_t)((slot % nr_slots_period) >= nr_ulstart_slot) << (slot % 64);
 
       LOG_I(NR_MAC, "In %s: slot %d DL %d UL %d\n",
@@ -590,37 +562,15 @@ int rrc_mac_config_req_gNB(module_id_t Mod_idP,
 
   if (CellGroup) {
 
-    if (get_softmodem_params()->sa) {
-      calculate_preferred_dl_tda(Mod_idP, NULL);
-    }
-
-    const NR_ServingCellConfig_t *servingCellConfig = NULL;
-    if(CellGroup->spCellConfig && CellGroup->spCellConfig->spCellConfigDedicated) {
-      servingCellConfig = CellGroup->spCellConfig->spCellConfigDedicated;
-      const struct NR_ServingCellConfig__downlinkBWP_ToAddModList *bwpList = servingCellConfig->downlinkBWP_ToAddModList;
-      if(bwpList) {
-        AssertFatal(bwpList->list.count > 0, "downlinkBWP_ToAddModList has no BWPs!\n");
-        for (int i = 0; i < bwpList->list.count; ++i) {
-          const NR_BWP_Downlink_t *bwp = bwpList->list.array[i];
-          calculate_preferred_dl_tda(Mod_idP, bwp);
-        }
-      }
-
-      const struct NR_UplinkConfig__uplinkBWP_ToAddModList *ubwpList = servingCellConfig->uplinkConfig->uplinkBWP_ToAddModList;
-      if(ubwpList) {
-        AssertFatal(ubwpList->list.count > 0, "uplinkBWP_ToAddModList no BWPs!\n");
-        for (int i = 0; i < ubwpList->list.count; ++i) {
-          const NR_BWP_Uplink_t *ubwp = ubwpList->list.array[i];
-          calculate_preferred_ul_tda(Mod_idP, ubwp);
-        }
-      }
-    }
-
-    NR_UE_info_t *UE_info = &RC.nrmac[Mod_idP]->UE_info;
     if (add_ue == 1 && get_softmodem_params()->phy_test) {
-      const int UE_id = add_new_nr_ue(Mod_idP, rnti, CellGroup);
-      LOG_I(NR_MAC,"Added new UE_id %d/%x with initial CellGroup\n",UE_id,rnti);
-      process_CellGroup(CellGroup,&UE_info->UE_sched_ctrl[UE_id]);
+      NR_UE_info_t* UE = add_new_nr_ue(RC.nrmac[Mod_idP], rnti, CellGroup);
+      if (UE) {
+        LOG_I(NR_MAC,"Added new UE %x with initial CellGroup\n", rnti);
+      } else {
+        LOG_E(NR_MAC,"Error adding UE %04x\n", rnti);
+        return -1;
+      }
+      process_CellGroup(CellGroup,&UE->UE_sched_ctrl);
     } else if (add_ue == 1 && !get_softmodem_params()->phy_test) {
       const int CC_id = 0;
       NR_COMMON_channels_t *cc = &RC.nrmac[Mod_idP]->common_channels[CC_id];
@@ -666,49 +616,30 @@ int rrc_mac_config_req_gNB(module_id_t Mod_idP,
       ra->msg3_dcch_dtch = false;
       LOG_I(NR_MAC,"Added new RA process for UE RNTI %04x with initial CellGroup\n", rnti);
     } else { // CellGroup has been updated
-      NR_ServingCellConfigCommon_t *scc = RC.nrmac[Mod_idP]->common_channels[0].ServingCellConfigCommon;
-      const int UE_id = find_nr_UE_id(Mod_idP,rnti);
-      int target_ss;
-      UE_info->CellGroup[UE_id] = CellGroup;
-      LOG_I(NR_MAC,"Modified UE_id %d/%x with CellGroup\n",UE_id,rnti);
-      process_CellGroup(CellGroup,&UE_info->UE_sched_ctrl[UE_id]);
-      NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
-      const NR_PDSCH_ServingCellConfig_t *pdsch = servingCellConfig ? servingCellConfig->pdsch_ServingCellConfig->choice.setup : NULL;
-      if (get_softmodem_params()->sa) {
-        // add all available DL HARQ processes for this UE in SA
-        create_dl_harq_list(sched_ctrl, pdsch);
-      }
-      // update coreset/searchspace
-      void *bwpd = NULL;
-      NR_BWP_t *genericParameters = NULL;
-      target_ss = NR_SearchSpace__searchSpaceType_PR_common;
-      if ((sched_ctrl->active_bwp)) {
-        target_ss = NR_SearchSpace__searchSpaceType_PR_ue_Specific;
-        bwpd = (void*)sched_ctrl->active_bwp->bwp_Dedicated;
-        genericParameters = &sched_ctrl->active_bwp->bwp_Common->genericParameters;
+      NR_UE_info_t *UE = find_nr_UE(&RC.nrmac[Mod_idP]->UE_info, rnti);
+      if (!UE) {
+        LOG_E(NR_MAC, "Can't find UE %04x\n", rnti);
+        return -1;
       }
-      else if (CellGroup->spCellConfig &&
-                 CellGroup->spCellConfig->spCellConfigDedicated &&
-                 (CellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP)) {
-        target_ss = NR_SearchSpace__searchSpaceType_PR_ue_Specific;
-        bwpd = (void*)CellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP;
-        genericParameters = &scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters;
+
+      /* copy CellGroup by calling asn1c encode
+         this is a temporary hack to avoid the gNB having
+         a pointer to RRC CellGroup structure
+         (otherwise it would be applied to early)
+         TODO remove once we have a proper implementation */
+      UE->enc_rval = uper_encode_to_buffer(&asn_DEF_NR_CellGroupConfig,
+                                           NULL,
+                                           (void *) CellGroup,
+                                           UE->cg_buf,
+                                           32768);
+
+      if (UE->enc_rval.encoded == -1) {
+        LOG_E(NR_MAC, "ASN1 message CellGroupConfig encoding failed (%s, %lu)!\n",
+              UE->enc_rval.failed_type->name, UE->enc_rval.encoded);
+        exit(1);
       }
-      sched_ctrl->search_space = get_searchspace(sib1 ? sib1->message.choice.c1->choice.systemInformationBlockType1 : NULL, scc, bwpd, target_ss);
-      sched_ctrl->coreset = get_coreset(Mod_idP, scc, bwpd, sched_ctrl->search_space, target_ss);
-      sched_ctrl->sched_pdcch = set_pdcch_structure(RC.nrmac[Mod_idP],
-                                                    sched_ctrl->search_space,
-                                                    sched_ctrl->coreset,
-                                                    scc,
-                                                    genericParameters,
-                                                    RC.nrmac[Mod_idP]->type0_PDCCH_CSS_config);
-      sched_ctrl->maxL = 2;
-      if (CellGroup->spCellConfig &&
-          CellGroup->spCellConfig->spCellConfigDedicated &&
-          CellGroup->spCellConfig->spCellConfigDedicated->csi_MeasConfig &&
-          CellGroup->spCellConfig->spCellConfigDedicated->csi_MeasConfig->choice.setup
-        )
-      compute_csi_bitlen (CellGroup->spCellConfig->spCellConfigDedicated->csi_MeasConfig->choice.setup, UE_info, UE_id, Mod_idP);
+
+      process_CellGroup(CellGroup,&UE->UE_sched_ctrl);
     }
   }
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_MAC_CONFIG, VCD_FUNCTION_OUT);
diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
index 6520d7c178b..780c47057e0 100644
--- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
+++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
@@ -68,6 +68,8 @@ void clear_nr_nfapi_information(gNB_MAC_INST * gNB,
   NR_ServingCellConfigCommon_t *scc = gNB->common_channels->ServingCellConfigCommon;
   const int num_slots = nr_slots_per_frame[*scc->ssbSubcarrierSpacing];
 
+  UL_tti_req_ahead_initialization(gNB, scc, num_slots, CC_idP);
+
   nfapi_nr_dl_tti_request_t    *DL_req = &gNB->DL_req[0];
   nfapi_nr_dl_tti_pdcch_pdu_rel15_t **pdcch = (nfapi_nr_dl_tti_pdcch_pdu_rel15_t **)gNB->pdcch_pdu_idx[CC_idP];
   nfapi_nr_ul_tti_request_t    *future_ul_tti_req =
@@ -104,167 +106,6 @@ void clear_nr_nfapi_information(gNB_MAC_INST * gNB,
   TX_req[CC_idP].Number_of_PDUs                  = 0;
 
 }
-/*
-void check_nr_ul_failure(module_id_t module_idP,
-                         int CC_id,
-                         int UE_id,
-                         frame_t frameP,
-                         sub_frame_t slotP) {
-
-  NR_UE_info_t                 *UE_info  = &RC.nrmac[module_idP]->UE_info;
-  nfapi_nr_dl_dci_request_t  *DL_req   = &RC.nrmac[module_idP]->DL_req[0];
-  uint16_t                      rnti      = UE_RNTI(module_idP, UE_id);
-  NR_COMMON_channels_t          *cc       = RC.nrmac[module_idP]->common_channels;
-
-  // check uplink failure
-  if ((UE_info->UE_sched_ctrl[UE_id].ul_failure_timer > 0) &&
-      (UE_info->UE_sched_ctrl[UE_id].ul_out_of_sync == 0)) {
-    LOG_I(MAC, "UE %d rnti %x: UL Failure timer %d \n", UE_id, rnti,
-    UE_info->UE_sched_ctrl[UE_id].ul_failure_timer);
-    if (UE_info->UE_sched_ctrl[UE_id].ra_pdcch_order_sent == 0) {
-      UE_info->UE_sched_ctrl[UE_id].ra_pdcch_order_sent = 1;
-
-      // add a format 1A dci for this UE to request an RA procedure (only one UE per subframe)
-      nfapi_nr_dl_dci_request_pdu_t *dl_config_pdu                    = &DL_req[CC_id].dl_tti_request_body.dl_config_pdu_list[DL_req[CC_id].dl_tti_request_body.number_pdu];
-      memset((void *) dl_config_pdu, 0,sizeof(nfapi_dl_dci_request_pdu_t));
-      dl_config_pdu->pdu_type                                         = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE;
-      dl_config_pdu->pdu_size                                         = (uint8_t) (2 + sizeof(nfapi_dl_config_dci_dl_pdu));
-      dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.tl.tag                = NFAPI_DL_DCI_REQUEST_DCI_DL_PDU_REL8_TAG;
-      dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.dci_format            = NFAPI_DL_DCI_FORMAT_1A;
-      dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level     = get_aggregation(get_bw_index(module_idP, CC_id),
-                      UE_info->UE_sched_ctrl[UE_id].
-                      dl_cqi[CC_id], format1A);
-      dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti                  = rnti;
-      dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type             = 1;  // CRNTI : see Table 4-10 from SCF082 - nFAPI specifications
-      dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.transmission_power    = 6000; // equal to RS power
-
-      AssertFatal((cc[CC_id].mib->message.dl_Bandwidth >= 0) && (cc[CC_id].mib->message.dl_Bandwidth < 6),
-      "illegal dl_Bandwidth %d\n",
-      (int) cc[CC_id].mib->message.dl_Bandwidth);
-      dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.resource_block_coding = nr_pdcch_order_table[cc[CC_id].mib->message.dl_Bandwidth];
-      DL_req[CC_id].dl_tti_request_body.number_dci++;
-      DL_req[CC_id].dl_tti_request_body.number_pdu++;
-      DL_req[CC_id].dl_tti_request_body.tl.tag                      = NFAPI_DL_TTI_REQUEST_BODY_TAG;
-      LOG_I(MAC,
-      "UE %d rnti %x: sending PDCCH order for RAPROC (failure timer %d), resource_block_coding %d \n",
-      UE_id, rnti,
-      UE_info->UE_sched_ctrl[UE_id].ul_failure_timer,
-      dl_config_pdu->dci_dl_pdu.
-      dci_dl_pdu_rel8.resource_block_coding);
-    } else {    // ra_pdcch_sent==1
-      LOG_I(MAC,
-      "UE %d rnti %x: sent PDCCH order for RAPROC waiting (failure timer %d) \n",
-      UE_id, rnti,
-      UE_info->UE_sched_ctrl[UE_id].ul_failure_timer);
-      if ((UE_info->UE_sched_ctrl[UE_id].ul_failure_timer % 40) == 0) UE_info->UE_sched_ctrl[UE_id].ra_pdcch_order_sent = 0;  // resend every 4 frames
-    }
-
-    UE_info->UE_sched_ctrl[UE_id].ul_failure_timer++;
-    // check threshold
-    if (UE_info->UE_sched_ctrl[UE_id].ul_failure_timer > 20000) {
-      // inform RRC of failure and clear timer
-      LOG_I(MAC,
-      "UE %d rnti %x: UL Failure after repeated PDCCH orders: Triggering RRC \n",
-      UE_id, rnti);
-      mac_eNB_rrc_ul_failure(module_idP, CC_id, frameP, subframeP,rnti);
-      UE_info->UE_sched_ctrl[UE_id].ul_failure_timer = 0;
-      UE_info->UE_sched_ctrl[UE_id].ul_out_of_sync   = 1;
-
-      //Inform the controller about the UE deactivation. Should be moved to RRC agent in the future
-      if (rrc_agent_registered[module_idP]) {
-        LOG_W(MAC, "notify flexran Agent of UE state change\n");
-        agent_rrc_xface[module_idP]->flexran_agent_notify_ue_state_change(module_idP,
-            rnti, PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_DEACTIVATED);
-      }
-    }
-  }       // ul_failure_timer>0
-
-}
-*/
-/*
-void schedule_nr_SRS(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP)
-{
-  gNB_MAC_INST *gNB = RC.nrmac[module_idP];
-  NR_UE_info_t *UE_info = &gNB->UE_info;
-  nfapi_ul_config_request_body_t *ul_req;
-  int CC_id, UE_id;
-  NR_COMMON_channels_t *cc = RC.nrmac[module_idP]->common_channels;
-  SoundingRS_UL_ConfigCommon_t *soundingRS_UL_ConfigCommon;
-  struct SoundingRS_UL_ConfigDedicated *soundingRS_UL_ConfigDedicated;
-  uint8_t TSFC;
-  uint16_t deltaTSFC;   // bitmap
-  uint8_t srs_SubframeConfig;
-
-  // table for TSFC (Period) and deltaSFC (offset)
-  const uint16_t deltaTSFCTabType1[15][2] = { {1, 1}, {1, 2}, {2, 2}, {1, 5}, {2, 5}, {4, 5}, {8, 5}, {3, 5}, {12, 5}, {1, 10}, {2, 10}, {4, 10}, {8, 10}, {351, 10}, {383, 10} };  // Table 5.5.3.3-2 3GPP 36.211 FDD
-  const uint16_t deltaTSFCTabType2[14][2] = { {2, 5}, {6, 5}, {10, 5}, {18, 5}, {14, 5}, {22, 5}, {26, 5}, {30, 5}, {70, 10}, {74, 10}, {194, 10}, {326, 10}, {586, 10}, {210, 10} }; // Table 5.5.3.3-2 3GPP 36.211 TDD
-
-  uint16_t srsPeriodicity, srsOffset;
-
-  for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) {
-    soundingRS_UL_ConfigCommon = &cc[CC_id].radioResourceConfigCommon->soundingRS_UL_ConfigCommon;
-    // check if SRS is enabled in this frame/subframe
-    if (soundingRS_UL_ConfigCommon) {
-      srs_SubframeConfig = soundingRS_UL_ConfigCommon->choice.setup.srs_SubframeConfig;
-      if (cc[CC_id].tdd_Config == NULL) { // FDD
-  deltaTSFC = deltaTSFCTabType1[srs_SubframeConfig][0];
-  TSFC = deltaTSFCTabType1[srs_SubframeConfig][1];
-      } else {    // TDD
-  deltaTSFC = deltaTSFCTabType2[srs_SubframeConfig][0];
-  TSFC = deltaTSFCTabType2[srs_SubframeConfig][1];
-      }
-      // Sounding reference signal subframes are the subframes satisfying ns/2 mod TSFC (- deltaTSFC
-      uint16_t tmp = (subframeP % TSFC);
-
-      if ((1 << tmp) & deltaTSFC) {
-  // This is an SRS subframe, loop over UEs
-  for (UE_id = 0; UE_id < MAX_MOBILES_PER_GNB; UE_id++) {
-    if (!RC.nrmac[module_idP]->UE_info.active[UE_id]) continue;
-    ul_req = &RC.nrmac[module_idP]->UL_req[CC_id].ul_config_request_body;
-    // drop the allocation if the UE hasn't send RRCConnectionSetupComplete yet
-    if (mac_eNB_get_rrc_status(module_idP,UE_RNTI(module_idP, UE_id)) < RRC_CONNECTED) continue;
-
-    AssertFatal(UE_info->UE_template[CC_id][UE_id].physicalConfigDedicated != NULL,
-          "physicalConfigDedicated is null for UE %d\n",
-          UE_id);
-
-    if ((soundingRS_UL_ConfigDedicated = UE_info->UE_template[CC_id][UE_id].physicalConfigDedicated->soundingRS_UL_ConfigDedicated) != NULL) {
-      if (soundingRS_UL_ConfigDedicated->present == SoundingRS_UL_ConfigDedicated_PR_setup) {
-        get_srs_pos(&cc[CC_id],
-        soundingRS_UL_ConfigDedicated->choice.
-        setup.srs_ConfigIndex,
-        &srsPeriodicity, &srsOffset);
-        if (((10 * frameP + subframeP) % srsPeriodicity) == srsOffset) {
-    // Program SRS
-    ul_req->srs_present = 1;
-    nfapi_ul_config_request_pdu_t * ul_config_pdu = &ul_req->ul_config_pdu_list[ul_req->number_of_pdus];
-    memset((void *) ul_config_pdu, 0, sizeof(nfapi_ul_config_request_pdu_t));
-    ul_config_pdu->pdu_type =  NFAPI_UL_CONFIG_SRS_PDU_TYPE;
-    ul_config_pdu->pdu_size =  2 + (uint8_t) (2 + sizeof(nfapi_ul_config_srs_pdu));
-    ul_config_pdu->srs_pdu.srs_pdu_rel8.tl.tag = NFAPI_UL_CONFIG_REQUEST_SRS_PDU_REL8_TAG;
-    ul_config_pdu->srs_pdu.srs_pdu_rel8.size = (uint8_t)sizeof(nfapi_ul_config_srs_pdu);
-    ul_config_pdu->srs_pdu.srs_pdu_rel8.rnti = UE_info->UE_template[CC_id][UE_id].rnti;
-    ul_config_pdu->srs_pdu.srs_pdu_rel8.srs_bandwidth = soundingRS_UL_ConfigDedicated->choice.setup.srs_Bandwidth;
-    ul_config_pdu->srs_pdu.srs_pdu_rel8.frequency_domain_position = soundingRS_UL_ConfigDedicated->choice.setup.freqDomainPosition;
-    ul_config_pdu->srs_pdu.srs_pdu_rel8.srs_hopping_bandwidth = soundingRS_UL_ConfigDedicated->choice.setup.srs_HoppingBandwidth;;
-    ul_config_pdu->srs_pdu.srs_pdu_rel8.transmission_comb = soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb;
-    ul_config_pdu->srs_pdu.srs_pdu_rel8.i_srs = soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex;
-    ul_config_pdu->srs_pdu.srs_pdu_rel8.sounding_reference_cyclic_shift = soundingRS_UL_ConfigDedicated->choice.setup.cyclicShift;    //              ul_config_pdu->srs_pdu.srs_pdu_rel10.antenna_port                   = ;//
-    //              ul_config_pdu->srs_pdu.srs_pdu_rel13.number_of_combs                = ;//
-    RC.nrmac[module_idP]->UL_req[CC_id].sfn_sf = (frameP << 4) + subframeP;
-    RC.nrmac[module_idP]->UL_req[CC_id].header.message_id = NFAPI_UL_CONFIG_REQUEST;
-    ul_req->number_of_pdus++;
-        } // if (((10*frameP+subframeP) % srsPeriodicity) == srsOffset)
-      } // if (soundingRS_UL_ConfigDedicated->present == SoundingRS_UL_ConfigDedicated_PR_setup)
-    }   // if ((soundingRS_UL_ConfigDedicated = UE_info->UE_template[CC_id][UE_id].physicalConfigDedicated->soundingRS_UL_ConfigDedicated)!=NULL)
-  }   // for (UE_id ...
-      }     // if((1<<tmp) & deltaTSFC)
-
-    }     // SRS config
-  }
-}
-*/
-
 
 bool is_xlsch_in_slot(uint64_t bitmap, sub_frame_t slot) {
   if (slot>=64) return false; //quickfix for FR2 where there are more than 64 slots (bitmap to be removed)
@@ -278,8 +119,6 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
   protocol_ctxt_t   ctxt={0};
   PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, module_idP, ENB_FLAG_YES, NOT_A_RNTI, frame, slot,module_idP);
 
-  char stats_output[16384];
-
   gNB_MAC_INST *gNB = RC.nrmac[module_idP];
   NR_COMMON_channels_t *cc = gNB->common_channels;
   NR_ServingCellConfigCommon_t        *scc     = cc->ServingCellConfigCommon;
@@ -307,8 +146,6 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
     nr_rrc_trigger(&ctxt, 0 /*CC_id*/, frame, slot >> *scc->ssbSubcarrierSpacing);
   }
 
-  for (int i=0; i<MAX_NUM_CORESET; i++)
-    RC.nrmac[module_idP]->pdcch_cand[i] = 0;
   for (int CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) {
     //mbsfn_status[CC_id] = 0;
 
@@ -341,13 +178,16 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
 
 
   if ((slot == 0) && (frame & 127) == 0) {
-     stats_output[0]='\0';
-     dump_mac_stats(RC.nrmac[module_idP],stats_output,16384,true);
-     LOG_I(NR_MAC,"Frame.Slot %d.%d\n%s\n",frame,slot,stats_output);
+    char stats_output[16384];
+    stats_output[0] = '\0';
+    dump_mac_stats(RC.nrmac[module_idP], stats_output, sizeof(stats_output), true);
+    LOG_I(NR_MAC, "Frame.Slot %d.%d\n%s\n", frame, slot, stats_output);
   }
 
   nr_mac_update_timers(module_idP, frame, slot);
 
+  schedule_nr_bwp_switch(module_idP, frame, slot);
+
   // This schedules MIB
   schedule_nr_mib(module_idP, frame, slot);
 
@@ -370,7 +210,6 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
     schedule_nr_prach(module_idP, f, s);
   }
 
-
   // Schedule CSI-RS transmission
   nr_csirs_scheduling(module_idP, frame, slot, nr_slots_per_frame[*scc->ssbSubcarrierSpacing]);
 
@@ -396,10 +235,10 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
   nr_schedule_ue_spec(module_idP, frame, slot); 
   stop_meas(&gNB->schedule_dlsch);
 
-  nr_schedule_pucch(module_idP, frame, slot);
+  nr_schedule_pucch(RC.nrmac[module_idP], frame, slot);
 
   // This schedule SR after PUCCH for multiplexing
-  nr_sr_reporting(module_idP, frame, slot);
+  nr_sr_reporting(RC.nrmac[module_idP], frame, slot);
 
   stop_meas(&RC.nrmac[module_idP]->eNB_scheduler);
   
diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
index a2d56036d48..ef7c91151b6 100644
--- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
+++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
@@ -465,27 +465,24 @@ void nr_schedule_msg2(uint16_t rach_frame, uint16_t rach_slot,
 
   int FR = *scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0] >= 257 ? nr_FR2 : nr_FR1;
 
-  uint8_t start_next_period = (rach_slot-(rach_slot%tdd_period_slot)+tdd_period_slot)%nr_slots_per_frame[mu];
-  *msg2_slot = start_next_period + last_dl_slot_period; // initializing scheduling of slot to next mixed (or last dl) slot
-  *msg2_frame = ((*msg2_slot>(rach_slot))? rach_frame : (rach_frame+1))%1024;
+  uint8_t start_next_period = rach_slot-(rach_slot%tdd_period_slot)+tdd_period_slot;
+  int eff_slot = start_next_period + last_dl_slot_period; // initializing scheduling of slot to next mixed (or last dl) slot
   // we can't schedule msg2 before sl_ahead since prach
-  int eff_slot = *msg2_slot+(*msg2_frame-rach_frame)*nr_slots_per_frame[mu];
   while ((eff_slot-rach_slot)<=sl_ahead) {
-    *msg2_slot = (*msg2_slot+tdd_period_slot)%nr_slots_per_frame[mu];
-    *msg2_frame = ((*msg2_slot>(rach_slot))? rach_frame : (rach_frame+1))%1024;
-    eff_slot = *msg2_slot+(*msg2_frame-rach_frame)*nr_slots_per_frame[mu];
+    eff_slot += tdd_period_slot;
   }
   if (FR==nr_FR2) {
-    int num_tdd_period = *msg2_slot/tdd_period_slot;
+    int num_tdd_period = (eff_slot%nr_slots_per_frame[mu])/tdd_period_slot;
     while((tdd_beam_association[num_tdd_period]!=-1)&&(tdd_beam_association[num_tdd_period]!=beam_index)) {
-      *msg2_slot = (*msg2_slot+tdd_period_slot)%nr_slots_per_frame[mu];
-      *msg2_frame = ((*msg2_slot>(rach_slot))? rach_frame : (rach_frame+1))%1024;
-      num_tdd_period = *msg2_slot/tdd_period_slot;
+      eff_slot += tdd_period_slot;
+      num_tdd_period = (eff_slot % nr_slots_per_frame[mu])/tdd_period_slot;
     }
     if(tdd_beam_association[num_tdd_period] == -1)
       tdd_beam_association[num_tdd_period] = beam_index;
   }
 
+  *msg2_frame=(rach_frame + eff_slot/nr_slots_per_frame[mu])%1024;
+  *msg2_slot=eff_slot%nr_slots_per_frame[mu];
   // go to previous slot if the current scheduled slot is beyond the response window
   // and if the slot is not among the PDCCH monitored ones (38.213 10.1)
   while (*msg2_frame > frame_limit
@@ -540,158 +537,164 @@ void nr_initiate_ra_proc(module_id_t module_idP,
   }
 
   for (int i = 0; i < NR_NB_RA_PROC_MAX; i++) {
+
     NR_RA_t *ra = &cc->ra[i];
-    pr_found = 0;
-    const int UE_id = find_nr_UE_id(module_idP, ra->rnti);
-    if (UE_id != -1) {
+    if (ra->state != RA_IDLE)
       continue;
-    }
-    if (ra->state == RA_IDLE) {
-      for(int j = 0; j < ra->preambles.num_preambles; j++) {
-        //check if the preamble received correspond to one of the listed or configured preambles
-        if (preamble_index == ra->preambles.preamble_list[j]) {
-          if (ra->rnti == 0 && get_softmodem_params()->nsa)
-            continue;
-          pr_found=1;
-          break;
-        }
-      }
-      if (pr_found == 0) {
-         continue;
+
+    pr_found = 0;
+
+    for(int j = 0; j < ra->preambles.num_preambles; j++) {
+      //check if the preamble received correspond to one of the listed or configured preambles
+      if (preamble_index == ra->preambles.preamble_list[j]) {
+        if (ra->rnti == 0 && get_softmodem_params()->nsa)
+          continue;
+        pr_found=1;
+        break;
       }
+    }
+    if (pr_found == 0) {
+       continue;
+    }
 
-      uint16_t ra_rnti;
+    uint16_t ra_rnti;
 
-      // ra_rnti from 5.1.3 in 38.321
-      // FK: in case of long PRACH the phone seems to expect the subframe number instead of the slot number here.
-      if (scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->prach_RootSequenceIndex.present
-          == NR_RACH_ConfigCommon__prach_RootSequenceIndex_PR_l839)
-        ra_rnti = 1 + symbol + (9 /*slotP*/ * 14) + (freq_index * 14 * 80) + (ul_carrier_id * 14 * 80 * 8);
-      else
-        ra_rnti = 1 + symbol + (slotP * 14) + (freq_index * 14 * 80) + (ul_carrier_id * 14 * 80 * 8);
-
-      // This should be handled differently when we use the initialBWP for RA
-      ra->bwp_id = 0;
-      NR_BWP_Downlink_t *bwp=NULL;
-      if (ra->CellGroup && ra->CellGroup->spCellConfig && ra->CellGroup->spCellConfig->spCellConfigDedicated &&
-          ra->CellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList) {
-        ra->bwp_id = 1;
-        bwp = ra->CellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.array[ra->bwp_id - 1];
+    // ra_rnti from 5.1.3 in 38.321
+    // FK: in case of long PRACH the phone seems to expect the subframe number instead of the slot number here.
+    if (scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->prach_RootSequenceIndex.present
+        == NR_RACH_ConfigCommon__prach_RootSequenceIndex_PR_l839)
+      ra_rnti = 1 + symbol + (9 /*slotP*/ * 14) + (freq_index * 14 * 80) + (ul_carrier_id * 14 * 80 * 8);
+    else
+      ra_rnti = 1 + symbol + (slotP * 14) + (freq_index * 14 * 80) + (ul_carrier_id * 14 * 80 * 8);
+
+    // This should be handled differently when we use the initialBWP for RA
+    ra->dl_bwp_id = 0;//TODO
+    ra->ul_bwp_id = 0;
+    NR_BWP_Downlink_t *bwp=NULL;
+    if (ra->CellGroup && ra->CellGroup->spCellConfig && ra->CellGroup->spCellConfig->spCellConfigDedicated) {
+      if (ra->CellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id &&
+        ra->CellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList) {
+        ra->dl_bwp_id = *ra->CellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id;
+        bwp = ra->CellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.array[ra->dl_bwp_id - 1];
       }
+      if (ra->CellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig &&
+          ra->CellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->firstActiveUplinkBWP_Id)
+        ra->ul_bwp_id = *ra->CellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->firstActiveUplinkBWP_Id;
+   }
 
-      VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_INITIATE_RA_PROC, 1);
+    VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_INITIATE_RA_PROC, 1);
 
-      LOG_D(NR_MAC,
-            "[gNB %d][RAPROC] CC_id %d Frame %d, Slot %d  Initiating RA procedure for preamble index %d\n",
+    LOG_D(NR_MAC,
+          "[gNB %d][RAPROC] CC_id %d Frame %d, Slot %d  Initiating RA procedure for preamble index %d\n",
+          module_idP,
+          CC_id,
+          frameP,
+          slotP,
+          preamble_index);
+
+    uint8_t beam_index = ssb_index_from_prach(module_idP, frameP, slotP, preamble_index, freq_index, symbol);
+
+    // the UE sent a RACH either for starting RA procedure or RA procedure failed and UE retries
+    if (ra->cfra) {
+      // if the preamble received correspond to one of the listed
+      if (!(preamble_index == ra->preambles.preamble_list[beam_index])) {
+        LOG_E(
+            NR_MAC,
+            "[gNB %d][RAPROC] FAILURE: preamble %d does not correspond to any of the ones in rach_ConfigDedicated\n",
             module_idP,
-            CC_id,
-            frameP,
-            slotP,
             preamble_index);
-
-      uint8_t beam_index = ssb_index_from_prach(module_idP, frameP, slotP, preamble_index, freq_index, symbol);
-
-      // the UE sent a RACH either for starting RA procedure or RA procedure failed and UE retries
-      if (ra->cfra) {
-        // if the preamble received correspond to one of the listed
-        if (!(preamble_index == ra->preambles.preamble_list[beam_index])) {
-          LOG_E(
-              NR_MAC,
-              "[gNB %d][RAPROC] FAILURE: preamble %d does not correspond to any of the ones in rach_ConfigDedicated\n",
-              module_idP,
-              preamble_index);
-          continue; // if the PRACH preamble does not correspond to any of the ones sent through RRC abort RA proc
-        }
+        continue; // if the PRACH preamble does not correspond to any of the ones sent through RRC abort RA proc
       }
-      LOG_D(NR_MAC, "Frame %d, Slot %d: Activating RA process \n", frameP, slotP);
-      ra->state = Msg2;
-      ra->timing_offset = timing_offset;
-      ra->preamble_slot = slotP;
-
-      NR_SearchSpaceId_t	ra_SearchSpace = 0;
-      struct NR_PDCCH_ConfigCommon__commonSearchSpaceList *commonSearchSpaceList = NULL;
-      NR_BWP_t *genericParameters = NULL;
-      if(bwp) {
-        commonSearchSpaceList = bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList;
-        ra_SearchSpace = *bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->ra_SearchSpace;
-        genericParameters = &bwp->bwp_Common->genericParameters;
-      } else {
-        commonSearchSpaceList = scc->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList;
-        ra_SearchSpace = *scc->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->ra_SearchSpace;
-        genericParameters = &scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters;
-      }
-      AssertFatal(commonSearchSpaceList->list.count > 0, "common SearchSpace list has 0 elements\n");
+    }
+    LOG_D(NR_MAC, "Frame %d, Slot %d: Activating RA process \n", frameP, slotP);
+    ra->state = Msg2;
+    ra->timing_offset = timing_offset;
+    ra->preamble_slot = slotP;
 
-      // Common SearchSpace list
-      for (int i = 0; i < commonSearchSpaceList->list.count; i++) {
-        ss = commonSearchSpaceList->list.array[i];
-        if (ss->searchSpaceId == ra_SearchSpace)
-          ra->ra_ss = ss;
-      }
+    NR_SearchSpaceId_t	ra_SearchSpace = 0;
+    struct NR_PDCCH_ConfigCommon__commonSearchSpaceList *commonSearchSpaceList = NULL;
+    NR_BWP_t *genericParameters = NULL;
+    if(bwp) {
+      commonSearchSpaceList = bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList;
+      ra_SearchSpace = *bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->ra_SearchSpace;
+      genericParameters = &bwp->bwp_Common->genericParameters;
+    } else {
+      commonSearchSpaceList = scc->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList;
+      ra_SearchSpace = *scc->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->ra_SearchSpace;
+      genericParameters = &scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters;
+    }
+    AssertFatal(commonSearchSpaceList->list.count > 0, "common SearchSpace list has 0 elements\n");
 
-      AssertFatal(ra->ra_ss!=NULL,"SearchSpace cannot be null for RA\n");
-
-      ra->coreset = get_coreset(module_idP, scc, bwp, ra->ra_ss, NR_SearchSpace__searchSpaceType_PR_common);
-      ra->sched_pdcch = set_pdcch_structure(nr_mac,
-                                            ra->ra_ss,
-                                            ra->coreset,
-                                            scc,
-                                            genericParameters,
-                                            &nr_mac->type0_PDCCH_CSS_config[ra->beam_id]);
-
-      // retrieving ra pdcch monitoring period and offset
-      find_monitoring_periodicity_offset_common(ra->ra_ss, &monitoring_slot_period, &monitoring_offset);
-
-      nr_schedule_msg2(frameP,
-                       slotP,
-                       &msg2_frame,
-                       &msg2_slot,
-                       scc,
-                       frame_type,
-                       monitoring_slot_period,
-                       monitoring_offset,
-                       beam_index,
-                       cc->num_active_ssb,
-                       nr_mac->tdd_beam_association,
-		       nr_mac->if_inst->sl_ahead);
-
-      ra->Msg2_frame = msg2_frame;
-      ra->Msg2_slot = msg2_slot;
-
-      LOG_D(NR_MAC, "%s() Msg2[%04d%d] SFN/SF:%04d%d\n", __FUNCTION__, ra->Msg2_frame, ra->Msg2_slot, frameP, slotP);
-
-      int loop = 0;
-      if (ra->rnti == 0) { // This condition allows for the usage of a preconfigured rnti for the CFRA
-        do {
-          ra->rnti = (taus() % 65518) + 1;
-          loop++;
-        } while (loop != 100
-                 && !((find_nr_UE_id(module_idP, ra->rnti) == -1) && (find_nr_RA_id(module_idP, CC_id, ra->rnti) == -1)
-                      && ra->rnti >= 1 && ra->rnti <= 65519));
-        if (loop == 100) {
-          LOG_E(NR_MAC, "%s:%d:%s: [RAPROC] initialisation random access aborted\n", __FILE__, __LINE__, __FUNCTION__);
-          abort();
-        }
-      }
+    // Common SearchSpace list
+    for (int i = 0; i < commonSearchSpaceList->list.count; i++) {
+      ss = commonSearchSpaceList->list.array[i];
+      if (ss->searchSpaceId == ra_SearchSpace)
+        ra->ra_ss = ss;
+    }
 
-      ra->RA_rnti = ra_rnti;
-      ra->preamble_index = preamble_index;
-      ra->beam_id = beam_index;
+    AssertFatal(ra->ra_ss!=NULL,"SearchSpace cannot be null for RA\n");
+
+    ra->coreset = get_coreset(nr_mac, scc, bwp, ra->ra_ss, NR_SearchSpace__searchSpaceType_PR_common);
+    ra->sched_pdcch = set_pdcch_structure(nr_mac,
+                                          ra->ra_ss,
+                                          ra->coreset,
+                                          scc,
+                                          genericParameters,
+                                          &nr_mac->type0_PDCCH_CSS_config[ra->beam_id]);
+
+    // retrieving ra pdcch monitoring period and offset
+    find_monitoring_periodicity_offset_common(ra->ra_ss, &monitoring_slot_period, &monitoring_offset);
+
+    nr_schedule_msg2(frameP,
+                     slotP,
+                     &msg2_frame,
+                     &msg2_slot,
+                     scc,
+                     frame_type,
+                     monitoring_slot_period,
+                     monitoring_offset,
+                     beam_index,
+                     cc->num_active_ssb,
+                     nr_mac->tdd_beam_association,
+         nr_mac->if_inst->sl_ahead);
+
+    ra->Msg2_frame = msg2_frame;
+    ra->Msg2_slot = msg2_slot;
+
+    LOG_D(NR_MAC, "%s() Msg2[%04d%d] SFN/SF:%04d%d\n", __FUNCTION__, ra->Msg2_frame, ra->Msg2_slot, frameP, slotP);
+
+    int loop = 0;
+    if (ra->rnti == 0) { // This condition allows for the usage of a preconfigured rnti for the CFRA
+      do {
+        ra->rnti = (taus() % 65518) + 1;
+        loop++;
+      } while (loop != 100
+               && !((find_nr_UE(&nr_mac->UE_info, ra->rnti) == NULL) && (find_nr_RA_id(module_idP, CC_id, ra->rnti) == -1)
+                    && ra->rnti >= 1 && ra->rnti <= 65519));
+      if (loop == 100) {
+        LOG_E(NR_MAC, "%s:%d:%s: [RAPROC] initialisation random access aborted\n", __FILE__, __LINE__, __FUNCTION__);
+        abort();
+      }
+    }
 
-      LOG_I(NR_MAC,
-            "[gNB %d][RAPROC] CC_id %d Frame %d Activating Msg2 generation in frame %d, slot %d using RA rnti %x SSB "
-            "index %u RA index %d\n",
-            module_idP,
-            CC_id,
-            frameP,
-            ra->Msg2_frame,
-            ra->Msg2_slot,
-            ra->RA_rnti,
-            cc->ssb_index[beam_index],
-            i);
+    ra->RA_rnti = ra_rnti;
+    ra->preamble_index = preamble_index;
+    ra->beam_id = beam_index;
+
+    LOG_I(NR_MAC,
+          "[gNB %d][RAPROC] CC_id %d Frame %d Activating Msg2 generation in frame %d, slot %d using RA rnti %x SSB, new rnti %04x "
+          "index %u RA index %d\n",
+          module_idP,
+          CC_id,
+          frameP,
+          ra->Msg2_frame,
+          ra->Msg2_slot,
+          ra->RA_rnti,
+    ra->rnti,
+          cc->ssb_index[beam_index],
+          i);
 
-      return;
-    }
+    return;
   }
   LOG_E(NR_MAC, "[gNB %d][RAPROC] FAILURE: CC_id %d Frame %d initiating RA procedure for preamble index %d\n", module_idP, CC_id, frameP, preamble_index);
 
@@ -741,7 +744,7 @@ void nr_generate_Msg3_retransmission(module_id_t module_idP, int CC_id, frame_t
   NR_PUSCH_TimeDomainResourceAllocationList_t *pusch_TimeDomainAllocationList = NULL;
   NR_BWP_t *genericParameters = NULL;
   if(ra->CellGroup) {
-    ubwp = ra->CellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[ra->bwp_id-1];
+    ubwp = ra->CellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[ra->ul_bwp_id-1];
     ubwpd = ra->CellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP;
     genericParameters = &ubwp->bwp_Common->genericParameters;
     pusch_TimeDomainAllocationList = ubwp->bwp_Common->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList;
@@ -781,8 +784,9 @@ void nr_generate_Msg3_retransmission(module_id_t module_idP, int CC_id, frame_t
 
     uint16_t *vrb_map_UL = &RC.nrmac[module_idP]->common_channels[CC_id].vrb_map_UL[sched_slot * MAX_BWP_SIZE];
 
-    int BWPStart = nr_mac->type0_PDCCH_CSS_config[ra->beam_id].cset_start_rb;
-    int BWPSize  = nr_mac->type0_PDCCH_CSS_config[ra->beam_id].num_rbs;
+    const int BWPSize = NRRIV2BW(scc->uplinkConfigCommon->initialUplinkBWP->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
+    const int BWPStart = NRRIV2PRBOFFSET(scc->uplinkConfigCommon->initialUplinkBWP->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
+
     int rbStart = 0;
     for (int i = 0; (i < ra->msg3_nb_rb) && (rbStart <= (BWPSize - ra->msg3_nb_rb)); i++) {
       if (vrb_map_UL[rbStart + BWPStart + i]&SL_to_bitmap(StartSymbolIndex, NrOfSymbols)) {
@@ -888,7 +892,7 @@ void nr_generate_Msg3_retransmission(module_id_t module_idP, int CC_id, frame_t
                  ra->Msg3_tda_id,
                  ra->msg3_TPC,
                  0, // not used in format 0_0
-                 ra->bwp_id);
+                 ra->ul_bwp_id);
 
     fill_dci_pdu_rel15(scc,
                        ra->CellGroup,
@@ -897,7 +901,8 @@ void nr_generate_Msg3_retransmission(module_id_t module_idP, int CC_id, frame_t
                        NR_UL_DCI_FORMAT_0_0,
                        NR_RNTI_TC,
                        pusch_pdu->bwp_size,
-                       ra->bwp_id,
+                       ra->ul_bwp_id,
+                       coresetid,
                        nr_mac->cset0_bwp_size);
 
     // Mark the corresponding RBs as used
@@ -1012,9 +1017,7 @@ void nr_get_Msg3alloc(module_id_t module_id,
   int bwpStart = NRRIV2PRBOFFSET(scc->uplinkConfigCommon->initialUplinkBWP->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
 
   if (ra->CellGroup) {
-    AssertFatal(ra->CellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.count == 1,
-		"downlinkBWP_ToAddModList has %d BWP!\n", ra->CellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.count);
-    NR_BWP_Uplink_t *ubwp = ra->CellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[ra->bwp_id - 1];
+    NR_BWP_Uplink_t *ubwp = ra->CellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[ra->ul_bwp_id - 1];
     int act_bwp_start = NRRIV2PRBOFFSET(ubwp->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
     int act_bwp_size  = NRRIV2BW(ubwp->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
     if (!((bwpStart >= act_bwp_start) && ((bwpStart+bwpSize) <= (act_bwp_start+act_bwp_size))))
@@ -1087,13 +1090,16 @@ void fill_msg3_pusch_pdu(nfapi_nr_pusch_pdu_t *pusch_pdu,
   pusch_pdu->vrb_to_prb_mapping = 0;
 
   pusch_pdu->frequency_hopping = fh;
-  //pusch_pdu->tx_direct_current_location;//The uplink Tx Direct Current location for the carrier. Only values in the value range of this field between 0 and 3299, which indicate the subcarrier index within the carrier corresponding 1o the numerology of the corresponding uplink BWP and value 3300, which indicates "Outside the carrier" and value 3301, which indicates "Undetermined position within the carrier" are used. [TS38.331, UplinkTxDirectCurrentBWP IE]
+  //pusch_pdu->tx_direct_current_location;
+  //The uplink Tx Direct Current location for the carrier. Only values in the value range of this field between 0 and 3299,
+  //which indicate the subcarrier index within the carrier corresponding 1o the numerology of the corresponding uplink BWP and value 3300,
+  //which indicates "Outside the carrier" and value 3301, which indicates "Undetermined position within the carrier" are used. [TS38.331, UplinkTxDirectCurrentBWP IE]
   pusch_pdu->uplink_frequency_shift_7p5khz = 0;
   //Resource Allocation in time domain
   pusch_pdu->start_symbol_index = start_symbol_index;
   pusch_pdu->nr_of_symbols = nr_of_symbols;
   //Optional Data only included if indicated in pduBitmap
-  pusch_pdu->pusch_data.rv_index = nr_rv_round_map[round];
+  pusch_pdu->pusch_data.rv_index = nr_rv_round_map[round%4];
   pusch_pdu->pusch_data.harq_process_id = 0;
   pusch_pdu->pusch_data.new_data_indicator = 1;
   pusch_pdu->pusch_data.num_cb = 0;
@@ -1104,10 +1110,11 @@ void fill_msg3_pusch_pdu(nfapi_nr_pusch_pdu_t *pusch_pdu,
   int TBS = 0;
   while(TBS<7) {  // TBS for msg3 is 7 bytes (except for RRCResumeRequest1 currently not implemented)
     mcsindex++;
-    pusch_pdu->target_code_rate = nr_get_code_rate_ul(mcsindex,pusch_pdu->mcs_table);
+    int R = nr_get_code_rate_ul(mcsindex,pusch_pdu->mcs_table);
+    pusch_pdu->target_code_rate = R;
     pusch_pdu->qam_mod_order = nr_get_Qm_ul(mcsindex,pusch_pdu->mcs_table);
     TBS = nr_compute_tbs(pusch_pdu->qam_mod_order,
-                         pusch_pdu->target_code_rate,
+                         R,
                          pusch_pdu->rb_size,
                          pusch_pdu->nr_of_symbols,
                          num_dmrs_symb*12, // nb dmrs set for no data in dmrs symbol
@@ -1164,9 +1171,7 @@ void nr_add_msg3(module_id_t module_idP, int CC_id, frame_t frameP, sub_frame_t
   int mappingtype = scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list.array[ra->Msg3_tda_id]->mappingType;
 
   if (ra->CellGroup) {
-    AssertFatal(ra->CellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.count == 1,
-		"downlinkBWP_ToAddModList has %d BWP!\n", ra->CellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.count);
-    NR_BWP_Uplink_t *ubwp = ra->CellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[ra->bwp_id - 1];
+    NR_BWP_Uplink_t *ubwp = ra->CellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[ra->ul_bwp_id - 1];
 
     startSymbolAndLength = ubwp->bwp_Common->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list.array[ra->Msg3_tda_id]->startSymbolAndLength;
     mappingtype = ubwp->bwp_Common->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list.array[ra->Msg3_tda_id]->mappingType;
@@ -1197,20 +1202,13 @@ void nr_add_msg3(module_id_t module_idP, int CC_id, frame_t frameP, sub_frame_t
   nr_fill_rar(module_idP, ra, RAR_pdu, pusch_pdu);
 }
 
-void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_frame_t slotP, NR_RA_t *ra)
-{
+void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_frame_t slotP, NR_RA_t *ra) {
 
   gNB_MAC_INST *nr_mac = RC.nrmac[module_idP];
   NR_COMMON_channels_t *cc = &nr_mac->common_channels[CC_id];
 
   if ((ra->Msg2_frame == frameP) && (ra->Msg2_slot == slotP)) {
 
-    //TODO time domain assignment for msg2 needs to be improved
-    uint8_t time_domain_assignment;
-    if(cc->frame_type == TDD)
-      time_domain_assignment = 1;
-    else
-      time_domain_assignment = 0;
     int mcsIndex = -1;  // initialization value
     int rbStart = 0;
     int rbSize = 8;
@@ -1227,8 +1225,8 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
         ra->CellGroup->spCellConfig &&
         ra->CellGroup->spCellConfig->spCellConfigDedicated &&
         ra->CellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList &&
-        ra->CellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.array[ra->bwp_id-1]) {
-      bwp = ra->CellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.array[ra->bwp_id-1];
+        ra->CellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.array[ra->dl_bwp_id-1]) {
+      bwp = ra->CellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.array[ra->dl_bwp_id-1];
       genericParameters = &bwp->bwp_Common->genericParameters;
       pdsch_TimeDomainAllocationList = bwp->bwp_Common->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList;
     }
@@ -1250,6 +1248,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
     }
 
     // Calculate number of symbols
+    int time_domain_assignment = get_dl_tda(nr_mac, scc, slotP);
     int startSymbolIndex, nrOfSymbols;
     const int startSymbolAndLength = pdsch_TimeDomainAllocationList->list.array[time_domain_assignment]->startSymbolAndLength;
     SLIV2SL(startSymbolAndLength, &startSymbolIndex, &nrOfSymbols);
@@ -1328,7 +1327,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
     dl_req->nPDUs+=1;
     nfapi_nr_dl_tti_pdsch_pdu_rel15_t *pdsch_pdu_rel15 = &dl_tti_pdsch_pdu->pdsch_pdu.pdsch_pdu_rel15;
 
-    LOG_D(NR_MAC,"[gNB %d][RAPROC] CC_id %d Frame %d, slotP %d: Generating RA-Msg2 DCI, rnti 0x%x, state %d, CoreSetType %d\n",
+    LOG_A(NR_MAC,"[gNB %d][RAPROC] CC_id %d Frame %d, slotP %d: Generating RA-Msg2 DCI, rnti 0x%x, state %d, CoreSetType %d\n",
           module_idP, CC_id, frameP, slotP, ra->RA_rnti, ra->state,pdcch_pdu_rel15->CoreSetType);
 
     // SCF222: PDU index incremented for each PDSCH PDU sent in TX control message. This is used to associate control
@@ -1389,7 +1388,8 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
                                                     nr_mac->common_channels->ServingCellConfigCommon->dmrs_TypeA_Position,
                                                     nrOfSymbols,
                                                     startSymbolIndex,
-                                                    mappingtype, 1);
+                                                    mappingtype,
+                                                    1);
 
     uint8_t tb_scaling = 0;
     int R, Qm;
@@ -1424,6 +1424,11 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
       pdsch_pdu_rel15->TBSize[0] = TBS;
     }
 
+    int bw_tbslbrm = get_bw_tbslbrm(genericParameters, ra->CellGroup);
+    pdsch_pdu_rel15->maintenance_parms_v3.tbSizeLbrmBytes = nr_compute_tbslbrm(mcsTableIdx,
+                                                                               bw_tbslbrm,
+                                                                               1);
+
     // Fill PDCCH DL DCI PDU
     nfapi_nr_dl_dci_pdu_t *dci_pdu = &pdcch_pdu_rel15->dci_pdu[pdcch_pdu_rel15->numDlDci];
     pdcch_pdu_rel15->numDlDci++;
@@ -1477,6 +1482,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
                        NR_RNTI_RA,
                        BWPSize,
                        bwpid,
+                       coresetid,
                        nr_mac->cset0_bwp_size);
 
     // DL TX request
@@ -1484,7 +1490,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
 
     // Program UL processing for Msg3
     NR_BWP_Uplink_t *ubwp = ra->CellGroup ?
-      ra->CellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[ra->bwp_id-1] :
+      ra->CellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[ra->dl_bwp_id-1] :
       NULL;
     nr_get_Msg3alloc(module_idP, CC_id, scc, ubwp, slotP, frameP, ra, nr_mac->tdd_beam_association);
     nr_add_msg3(module_idP, CC_id, frameP, slotP, ra, (uint8_t *) &tx_req->TLVs[0].value.direct[0]);
@@ -1516,7 +1522,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
     }
 
     ra->state = WAIT_Msg3;
-    LOG_D(NR_MAC,"[gNB %d][RAPROC] Frame %d, Subframe %d: RA state %d\n", module_idP, frameP, slotP, ra->state);
+    LOG_W(NR_MAC,"[gNB %d][RAPROC] Frame %d, Subframe %d: rnti %04x RA state %d\n", module_idP, frameP, slotP, ra->rnti, ra->state);
   }
 }
 
@@ -1541,8 +1547,8 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
         ra->CellGroup->spCellConfig &&
         ra->CellGroup->spCellConfig->spCellConfigDedicated &&
         ra->CellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList &&
-        ra->CellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.array[ra->bwp_id-1]) {
-      bwp = ra->CellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.array[ra->bwp_id-1];
+        ra->CellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.array[ra->dl_bwp_id-1]) {
+      bwp = ra->CellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.array[ra->dl_bwp_id-1];
       pdsch_TimeDomainAllocationList = bwp->bwp_Common->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList;
     }
     else {
@@ -1559,9 +1565,14 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
       ra->rnti = ra->crnti;
     }
 
-    int UE_id = find_nr_UE_id(module_idP, ra->rnti);
-    NR_UE_info_t *UE_info = &nr_mac->UE_info;
-    NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+    NR_UE_info_t * UE = find_nr_UE(&nr_mac->UE_info, ra->rnti);
+    if (!UE) {
+        LOG_E(NR_MAC,"want to generate Msg4, but rnti %04x not in the table\n", ra->rnti);
+        return;
+    }
+
+    LOG_I(NR_MAC,"Generate msg4, rnti: %04x\n", ra->rnti);
+    NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
 
     NR_BWP_t *genericParameters = bwp ? & bwp->bwp_Common->genericParameters : &scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters;
 
@@ -1594,7 +1605,7 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
 
     // Remove UE associated to TC-RNTI
     if(harq->round==0 && ra->msg3_dcch_dtch) {
-      mac_remove_nr_ue(module_idP, tc_rnti);
+      mac_remove_nr_ue(nr_mac, tc_rnti);
     }
 
     // get CCEindex, needed also for PUCCH and then later for PDCCH
@@ -1625,7 +1636,7 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
 
     LOG_D(NR_MAC,"[RAPROC] Msg4 r_pucch %d (CCEIndex %d, nb_of_candidates %d, delta_PRI %d)\n", r_pucch, CCEIndex, nr_of_candidates, delta_PRI);
 
-    int alloc = nr_acknack_scheduling(module_idP, UE_id, frameP, slotP, r_pucch, 1);
+    int alloc = nr_acknack_scheduling(module_idP, UE, frameP, slotP, r_pucch, 1);
     AssertFatal(alloc>=0,"Couldn't find a pucch allocation for ack nack (msg4)\n");
     NR_sched_pucch_t *pucch = &sched_ctrl->sched_pucch[alloc];
     harq->feedback_slot = pucch->ul_slot;
@@ -1641,13 +1652,25 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
       } else {
         uint16_t mac_pdu_length = nr_write_ce_dlsch_pdu(module_idP, nr_mac->sched_ctrlCommon, buf, 255, ra->cont_res_id);
         LOG_D(NR_MAC,"Encoded contention resolution mac_pdu_length %d\n",mac_pdu_length);
-        uint16_t mac_sdu_length = mac_rrc_nr_data_req(module_idP, CC_id, frameP, CCCH, ra->rnti, 1, &buf[mac_pdu_length+2]);
-        ((NR_MAC_SUBHEADER_SHORT *) &buf[mac_pdu_length])->R = 0;
-        ((NR_MAC_SUBHEADER_SHORT *) &buf[mac_pdu_length])->F = 0;
-        ((NR_MAC_SUBHEADER_SHORT *) &buf[mac_pdu_length])->LCID = DL_SCH_LCID_CCCH;
-        ((NR_MAC_SUBHEADER_SHORT *) &buf[mac_pdu_length])->L = mac_sdu_length;
-        ra->mac_pdu_length = mac_pdu_length + mac_sdu_length + sizeof(NR_MAC_SUBHEADER_SHORT);
-        LOG_D(NR_MAC,"Encoded RRCSetup Piggyback (%d + %d bytes), mac_pdu_length %d\n", mac_sdu_length, (int)sizeof(NR_MAC_SUBHEADER_SHORT), ra->mac_pdu_length);
+        uint8_t buffer[CCCH_SDU_SIZE];
+        uint8_t mac_subheader_len = sizeof(NR_MAC_SUBHEADER_SHORT);
+        uint16_t mac_sdu_length = mac_rrc_nr_data_req(module_idP, CC_id, frameP, CCCH, ra->rnti, 1, buffer);
+        if (mac_sdu_length < 256) {
+          ((NR_MAC_SUBHEADER_SHORT *) &buf[mac_pdu_length])->R = 0;
+          ((NR_MAC_SUBHEADER_SHORT *) &buf[mac_pdu_length])->F = 0;
+          ((NR_MAC_SUBHEADER_SHORT *) &buf[mac_pdu_length])->LCID = DL_SCH_LCID_CCCH;
+          ((NR_MAC_SUBHEADER_SHORT *) &buf[mac_pdu_length])->L = mac_sdu_length;
+          ra->mac_pdu_length = mac_pdu_length + mac_sdu_length + sizeof(NR_MAC_SUBHEADER_SHORT);
+        } else {
+          mac_subheader_len = sizeof(NR_MAC_SUBHEADER_LONG);
+          ((NR_MAC_SUBHEADER_LONG *) &buf[mac_pdu_length])->R = 0;
+          ((NR_MAC_SUBHEADER_LONG *) &buf[mac_pdu_length])->F = 1;
+          ((NR_MAC_SUBHEADER_LONG *) &buf[mac_pdu_length])->LCID = DL_SCH_LCID_CCCH;
+          ((NR_MAC_SUBHEADER_LONG *) &buf[mac_pdu_length])->L = htons(mac_sdu_length);
+          ra->mac_pdu_length = mac_pdu_length + mac_sdu_length + sizeof(NR_MAC_SUBHEADER_LONG);
+        }
+        LOG_I(NR_MAC,"Encoded RRCSetup Piggyback (%d + %d bytes), mac_pdu_length %d\n", mac_sdu_length, mac_subheader_len, ra->mac_pdu_length);
+        memcpy(&buf[mac_pdu_length + mac_subheader_len], buffer, mac_sdu_length);
       }
     }
 
@@ -1663,7 +1686,8 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
                                             scc->dmrs_TypeA_Position,
                                             nrOfSymbols,
                                             startSymbolIndex,
-                                            mappingtype, 1);
+                                            mappingtype,
+                                            1);
 
     uint16_t N_DMRS_SLOT = get_num_dmrs(dlDmrsSymbPos);
 
@@ -1716,6 +1740,8 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
                                      rbSize, nrOfSymbols, N_PRB_DMRS * N_DMRS_SLOT, 0, tb_scaling,1) >> 3;
     } while (harq->tb_size < ra->mac_pdu_length && mcsIndex<=28);
 
+    AssertFatal(harq->tb_size >= ra->mac_pdu_length,"Cannot allocate Msg4\n");
+
     int i = 0;
     while ((i < rbSize) && (rbStart + rbSize <= BWPSize)) {
       if (vrb_map[BWPStart + rbStart + i]&SL_to_bitmap(startSymbolIndex, nrOfSymbols)) {
@@ -1762,7 +1788,7 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
     dl_req->nPDUs+=1;
     nfapi_nr_dl_tti_pdsch_pdu_rel15_t *pdsch_pdu_rel15 = &dl_tti_pdsch_pdu->pdsch_pdu.pdsch_pdu_rel15;
 
-    LOG_D(NR_MAC, "[gNB %d] [RAPROC] CC_id %d Frame %d, slotP %d: Generating RA-Msg4 DCI, state %d\n", module_idP, CC_id, frameP, slotP, ra->state);
+    LOG_A(NR_MAC, "[gNB %d] [RAPROC] CC_id %d Frame %d, slotP %d: Generating RA-Msg4 DCI, state %d\n", module_idP, CC_id, frameP, slotP, ra->state);
 
     // SCF222: PDU index incremented for each PDSCH PDU sent in TX control message. This is used to associate control
     // information to data and is reset every slot.
@@ -1776,11 +1802,12 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
     pdsch_pdu_rel15->SubcarrierSpacing = genericParameters->subcarrierSpacing;
     pdsch_pdu_rel15->CyclicPrefix = 0;
     pdsch_pdu_rel15->NrOfCodewords = 1;
-    pdsch_pdu_rel15->targetCodeRate[0] = nr_get_code_rate_dl(mcsIndex,mcsTableIdx);
+    int R = nr_get_code_rate_dl(mcsIndex,mcsTableIdx);
+    pdsch_pdu_rel15->targetCodeRate[0] = R;
     pdsch_pdu_rel15->qamModOrder[0] = 2;
     pdsch_pdu_rel15->mcsIndex[0] = mcsIndex;
     pdsch_pdu_rel15->mcsTable[0] = mcsTableIdx;
-    pdsch_pdu_rel15->rvIndex[0] = nr_rv_round_map[harq->round];
+    pdsch_pdu_rel15->rvIndex[0] = nr_rv_round_map[harq->round%4];
     pdsch_pdu_rel15->dataScramblingId = *scc->physCellId;
     pdsch_pdu_rel15->nrOfLayers = 1;
     pdsch_pdu_rel15->transmissionScheme = 0;
@@ -1801,6 +1828,11 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
     int x_Overhead = 0;
     nr_get_tbs_dl(&dl_tti_pdsch_pdu->pdsch_pdu, x_Overhead, pdsch_pdu_rel15->numDmrsCdmGrpsNoData, tb_scaling);
 
+    int bw_tbslbrm = get_bw_tbslbrm(genericParameters, ra->CellGroup);
+    pdsch_pdu_rel15->maintenance_parms_v3.tbSizeLbrmBytes = nr_compute_tbslbrm(mcsTableIdx,
+                                                                               bw_tbslbrm,
+                                                                               1);
+
     pdsch_pdu_rel15->precodingAndBeamforming.num_prgs=1;
     pdsch_pdu_rel15->precodingAndBeamforming.prg_size=275;
     pdsch_pdu_rel15->precodingAndBeamforming.dig_bf_interfaces=1;
@@ -1867,6 +1899,7 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
                        NR_RNTI_TC,
                        pdsch_pdu_rel15->BWPSize,
                        bwpid,
+                       coresetid,
                        nr_mac->cset0_bwp_size);
 
     // Add padding header and zero rest out if there is space left
@@ -1920,10 +1953,10 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
 
     if(ra->msg3_dcch_dtch) {
       // If the UE used MSG3 to transfer a DCCH or DTCH message, then contention resolution is successful upon transmission of PDCCH
-      LOG_I(NR_MAC, "(ue %i, rnti 0x%04x) CBRA procedure succeeded!\n", UE_id, ra->rnti);
+      LOG_A(NR_MAC, "(ue rnti 0x%04x) CBRA procedure succeeded!\n", ra->rnti);
       nr_clear_ra_proc(module_idP, CC_id, frameP, ra);
-      UE_info->active[UE_id] = true;
-      UE_info->Msg4_ACKed[UE_id] = true;
+      UE->Msg3_dcch_dtch = true;
+      UE->Msg4_ACKed = true;
 
       remove_front_nr_list(&sched_ctrl->feedback_dl_harq);
       harq->feedback_slot = -1;
@@ -1931,6 +1964,24 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
       add_tail_nr_list(&sched_ctrl->available_dl_harq, current_harq_pid);
       harq->round = 0;
       harq->ndi ^= 1;
+
+      // Pause scheduling according to:
+      // 3GPP TS 38.331 Section 12 Table 12.1-1: UE performance requirements for RRC procedures for UEs
+      const NR_COMMON_channels_t *common_channels = &RC.nrmac[module_idP]->common_channels[0];
+      const NR_SIB1_t *sib1 = common_channels->sib1 ? common_channels->sib1->message.choice.c1->choice.systemInformationBlockType1 : NULL;
+      const NR_ServingCellConfig_t *servingCellConfig = UE->CellGroup ? UE->CellGroup->spCellConfig->spCellConfigDedicated : NULL;
+      NR_BWP_t *genericParameters = get_dl_bwp_genericParameters(sched_ctrl->active_bwp,
+                                                                 common_channels->ServingCellConfigCommon,
+                                                                 sib1);
+      uint32_t delay_ms = servingCellConfig && servingCellConfig->downlinkBWP_ToAddModList ?
+                          NR_RRC_SETUP_DELAY_MS + NR_RRC_BWP_SWITCHING_DELAY_MS : NR_RRC_SETUP_DELAY_MS;
+
+      sched_ctrl->rrc_processing_timer = (delay_ms << genericParameters->subcarrierSpacing);
+      LOG_I(NR_MAC, "(%d.%d) Activating RRC processing timer for UE %04x with %d ms\n", frameP, slotP, UE->rnti, delay_ms);
+
+      // Reset uplink failure flags/counters/timers at MAC so gNB will resume again scheduling resources for this UE
+      UE->UE_sched_ctrl.pusch_consecutive_dtx_cnt = 0;
+      UE->UE_sched_ctrl.ul_failure = 0;
     } else {
       ra->state = WAIT_Msg4_ACK;
       LOG_D(NR_MAC,"[gNB %d][RAPROC] Frame %d, Subframe %d: RA state %d\n", module_idP, frameP, slotP, ra->state);
@@ -1940,41 +1991,45 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
 
 void nr_check_Msg4_Ack(module_id_t module_id, int CC_id, frame_t frame, sub_frame_t slot, NR_RA_t *ra) {
 
-  int UE_id = find_nr_UE_id(module_id, ra->rnti);
+  NR_UE_info_t * UE = find_nr_UE(&RC.nrmac[module_id]->UE_info, ra->rnti);
   const int current_harq_pid = ra->harq_pid;
 
-  NR_UE_info_t *UE_info = &RC.nrmac[module_id]->UE_info;
-  NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+  NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
   NR_UE_harq_t *harq = &sched_ctrl->harq_processes[current_harq_pid];
-  NR_mac_stats_t *stats = &UE_info->mac_stats[UE_id];
+  NR_mac_stats_t *stats = &UE->mac_stats;
 
-  LOG_D(NR_MAC, "ue %d, rnti 0x%04x, harq is waiting %d, round %d, frame %d %d, harq id %d\n", UE_id, ra->rnti, harq->is_waiting, harq->round, frame, slot, current_harq_pid);
+  LOG_D(NR_MAC, "ue rnti 0x%04x, harq is waiting %d, round %d, frame %d %d, harq id %d\n", ra->rnti, harq->is_waiting, harq->round, frame, slot, current_harq_pid);
 
   if (harq->is_waiting == 0) {
     if (harq->round == 0) {
-      if (stats->dlsch_errors == 0) {
-        LOG_I(NR_MAC, "(ue %i, rnti 0x%04x) Received Ack of RA-Msg4. CBRA procedure succeeded!\n", UE_id, ra->rnti);
-        UE_info->active[UE_id] = true;
-        UE_info->Msg4_ACKed[UE_id] = true;
 
-        const NR_SIB1_t *sib1 = RC.nrmac[module_id]->common_channels[0].sib1 ? RC.nrmac[module_id]->common_channels[0].sib1->message.choice.c1->choice.systemInformationBlockType1 : NULL;
+      if (stats->dl.errors == 0) {
+        LOG_A(NR_MAC, "(UE RNTI 0x%04x) Received Ack of RA-Msg4. CBRA procedure succeeded!\n", ra->rnti);
+        UE->Msg4_ACKed = true;
+
+        // Pause scheduling according to:
+        // 3GPP TS 38.331 Section 12 Table 12.1-1: UE performance requirements for RRC procedures for UEs
+        const NR_COMMON_channels_t *common_channels = &RC.nrmac[module_id]->common_channels[0];
+        const NR_SIB1_t *sib1 = common_channels->sib1 ? common_channels->sib1->message.choice.c1->choice.systemInformationBlockType1 : NULL;
+        const NR_ServingCellConfig_t *servingCellConfig = UE->CellGroup ? UE->CellGroup->spCellConfig->spCellConfigDedicated : NULL;
         NR_BWP_t *genericParameters = get_dl_bwp_genericParameters(sched_ctrl->active_bwp,
-                                                                   RC.nrmac[module_id]->common_channels[0].ServingCellConfigCommon,
+                                                                   common_channels->ServingCellConfigCommon,
                                                                    sib1);
-        // 3GPP TS 38.331 Section 12 Table 12.1-1: UE performance requirements for RRC procedures for UEs
-        sched_ctrl->rrc_processing_timer = (NR_RRC_SETUP_DELAY_MS << genericParameters->subcarrierSpacing); // RRCSetup 10 ms
-      }
-      else {
-        LOG_I(NR_MAC, "(ue %i, rnti 0x%04x) RA Procedure failed at Msg4!\n", UE_id, ra->rnti);
+        uint32_t delay_ms = servingCellConfig && servingCellConfig->downlinkBWP_ToAddModList ?
+            NR_RRC_SETUP_DELAY_MS + NR_RRC_BWP_SWITCHING_DELAY_MS : NR_RRC_SETUP_DELAY_MS;
+
+        sched_ctrl->rrc_processing_timer = (delay_ms << genericParameters->subcarrierSpacing);
+        LOG_I(NR_MAC, "(%d.%d) Activating RRC processing timer for UE %04x with %d ms\n", frame, slot, UE->rnti, delay_ms);
+      } else {
+        LOG_I(NR_MAC, "(ue rnti 0x%04x) RA Procedure failed at Msg4!\n", ra->rnti);
       }
 
       nr_clear_ra_proc(module_id, CC_id, frame, ra);
-      if(sched_ctrl->retrans_dl_harq.head >= 0) {
+      if (sched_ctrl->retrans_dl_harq.head >= 0) {
         remove_nr_list(&sched_ctrl->retrans_dl_harq, current_harq_pid);
       }
-    }
-    else {
-      LOG_D(NR_MAC, "(ue %i, rnti 0x%04x) Received Nack of RA-Msg4. Preparing retransmission!\n", UE_id, ra->rnti);
+    } else {
+      LOG_I(NR_MAC, "(UE %04x) Received Nack of RA-Msg4. Preparing retransmission!\n", ra->rnti);
       ra->Msg4_frame = (frame + 1) % 1024;
       ra->Msg4_slot = 1;
       ra->state = Msg4;
diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
index 9229cfbdbd2..a05c782fb06 100644
--- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
+++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
@@ -54,52 +54,6 @@
 
 extern RAN_CONTEXT_t RC;
 
-
-uint16_t get_ssboffset_pointa(NR_ServingCellConfigCommon_t *scc,const long band) {
-
-  int ratio;
-  switch (*scc->ssbSubcarrierSpacing) {
-    case NR_SubcarrierSpacing_kHz15:
-      AssertFatal(band <= 95,
-                  "Band %ld is not possible for SSB with 15 kHz SCS\n",
-                  band);
-      // no band available above 3GHz using 15kHz
-      ratio = 3;  // NRARFCN step is 5 kHz
-      break;
-    case NR_SubcarrierSpacing_kHz30:
-      AssertFatal(band <= 96,
-                  "Band %ld is not possible for SSB with 30 kHz SCS\n",
-                  band);
-      if (band == 46 || band == 48 || band == 77 ||
-          band == 78 || band == 79 || band == 96)  // above 3GHz
-        ratio = 2;    // NRARFCN step is 15 kHz
-      else
-        ratio = 6;  // NRARFCN step is 5 kHz
-      break;
-    case NR_SubcarrierSpacing_kHz120:
-      AssertFatal(band >= 257,
-                  "Band %ld is not possible for SSB with 120 kHz SCS\n",
-                  band);
-      ratio = 2;  // NRARFCN step is 15 kHz
-      break;
-    case NR_SubcarrierSpacing_kHz240:
-      AssertFatal(band >= 257,
-                  "Band %ld is not possible for SSB with 240 kHz SCS\n",
-                  band);
-      ratio = 4;  // NRARFCN step is 15 kHz
-      break;
-    default:
-      AssertFatal(1 == 0, "SCS %ld not allowed for SSB \n",
-                  *scc->ssbSubcarrierSpacing);
-  }
-
-  const uint32_t ssb_offset0 = *scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencySSB - scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencyPointA;
-
-  return (ssb_offset0/(ratio*12) - 10); // absoluteFrequencySSB is the center of SSB
-
-}
-
-
 void schedule_ssb(frame_t frame, sub_frame_t slot,
                   NR_ServingCellConfigCommon_t *scc,
                   nfapi_nr_dl_tti_request_body_t *dl_req,
@@ -190,7 +144,7 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
 
       NR_SubcarrierSpacing_t scs = *scc->ssbSubcarrierSpacing;
       const long band = *scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0];
-      uint16_t offset_pointa = get_ssboffset_pointa(scc,band);
+      const uint16_t offset_pointa = gNB->ssb_OffsetPointA;
       uint8_t ssbSubcarrierOffset = gNB->ssb_SubcarrierOffset;
 
       const BIT_STRING_t *shortBitmap = &scc->ssb_PositionsInBurst->choice.shortBitmap;
@@ -207,8 +161,9 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
               ssb_start_symbol = get_ssb_start_symbol(band,scs,i_ssb);
               // if start symbol is in current slot, schedule current SSB, fill VRB map and call get_type0_PDCCH_CSS_config_parameters
               if ((ssb_start_symbol/14) == rel_slot){
+                const int prb_offset = offset_pointa >> scs;
                 schedule_ssb(frameP, slotP, scc, dl_req, i_ssb, ssbSubcarrierOffset, offset_pointa, (*(uint32_t*)cc->MIB_pdu.payload) & ((1<<24)-1));
-                fill_ssb_vrb_map(cc, offset_pointa, ssb_start_symbol, CC_id);
+                fill_ssb_vrb_map(cc, prb_offset, ssbSubcarrierOffset, ssb_start_symbol, CC_id);
                 if (get_softmodem_params()->sa == 1) {
                   get_type0_PDCCH_CSS_config_parameters(&gNB->type0_PDCCH_CSS_config[i_ssb],
                                                         frameP,
@@ -221,7 +176,7 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
                                                         band,
                                                         i_ssb,
                                                         ssb_frame_periodicity,
-                                                        offset_pointa);
+                                                        prb_offset);
                   gNB->type0_PDCCH_CSS_config[i_ssb].active = true;
                 }
               }
@@ -235,8 +190,9 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
               ssb_start_symbol = get_ssb_start_symbol(band,scs,i_ssb);
               // if start symbol is in current slot, schedule current SSB, fill VRB map and call get_type0_PDCCH_CSS_config_parameters
               if ((ssb_start_symbol/14) == rel_slot){
+                const int prb_offset = offset_pointa >> scs;
                 schedule_ssb(frameP, slotP, scc, dl_req, i_ssb, ssbSubcarrierOffset, offset_pointa, (*(uint32_t*)cc->MIB_pdu.payload) & ((1<<24)-1));
-                fill_ssb_vrb_map(cc, offset_pointa, ssb_start_symbol, CC_id);
+                fill_ssb_vrb_map(cc, prb_offset, ssbSubcarrierOffset, ssb_start_symbol, CC_id);
                 if (get_softmodem_params()->sa == 1) {
                   get_type0_PDCCH_CSS_config_parameters(&gNB->type0_PDCCH_CSS_config[i_ssb],
                                                         frameP,
@@ -249,7 +205,7 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
                                                         band,
                                                         i_ssb,
                                                         ssb_frame_periodicity,
-                                                        offset_pointa);
+                                                        prb_offset);
                   gNB->type0_PDCCH_CSS_config[i_ssb].active = true;
                 }
               }
@@ -264,8 +220,9 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
               ssb_start_symbol = get_ssb_start_symbol(band,scs,i_ssb);
               // if start symbol is in current slot, schedule current SSB, fill VRB map and call get_type0_PDCCH_CSS_config_parameters
               if ((ssb_start_symbol/14) == rel_slot){
+                const int prb_offset = offset_pointa >> (scs-2); // reference 60kHz
                 schedule_ssb(frameP, slotP, scc, dl_req, i_ssb, ssbSubcarrierOffset, offset_pointa, (*(uint32_t*)cc->MIB_pdu.payload) & ((1<<24)-1));
-                fill_ssb_vrb_map(cc, offset_pointa, ssb_start_symbol, CC_id);
+                fill_ssb_vrb_map(cc, prb_offset, ssbSubcarrierOffset, ssb_start_symbol, CC_id);
                 const NR_TDD_UL_DL_Pattern_t *tdd = &scc->tdd_UL_DL_ConfigurationCommon->pattern1;
                 const int n_slots_frame = nr_slots_per_frame[*scc->ssbSubcarrierSpacing];
                 // FR2 is only TDD, to be fixed for flexible TDD
@@ -286,7 +243,7 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
                                                         band,
                                                         i_ssb,
                                                         ssb_frame_periodicity,
-                                                        offset_pointa);
+                                                        prb_offset);
                   gNB->type0_PDCCH_CSS_config[i_ssb].active = true;
                 }
               }
@@ -306,7 +263,7 @@ void schedule_nr_SI(module_id_t module_idP, frame_t frameP, sub_frame_t subframe
 //----------------------------------------  
 }
 
-void fill_ssb_vrb_map (NR_COMMON_channels_t *cc, int rbStart,  uint16_t symStart, int CC_id) {
+void fill_ssb_vrb_map (NR_COMMON_channels_t *cc, int rbStart, int ssb_subcarrier_offset, uint16_t symStart, int CC_id) {
 
   AssertFatal(*cc->ServingCellConfigCommon->ssbSubcarrierSpacing !=
               NR_SubcarrierSpacing_kHz240,
@@ -314,7 +271,8 @@ void fill_ssb_vrb_map (NR_COMMON_channels_t *cc, int rbStart,  uint16_t symStart
 
   uint16_t *vrb_map = cc[CC_id].vrb_map;
 
-  for (int rb = 0; rb < 20; rb++)
+  const int extra_prb = ssb_subcarrier_offset > 0;
+  for (int rb = 0; rb < 20+extra_prb; rb++)
     vrb_map[rbStart + rb] = SL_to_bitmap(symStart, 4);
 
 }
@@ -327,7 +285,7 @@ uint32_t schedule_control_sib1(module_id_t module_id,
                                int nrOfSymbols,
                                uint16_t dlDmrsSymbPos,
                                uint8_t candidate_idx,
-                               int num_total_bytes) {
+                               uint16_t num_total_bytes) {
 
   gNB_MAC_INST *gNB_mac = RC.nrmac[module_id];
   NR_COMMON_channels_t *cc = &gNB_mac->common_channels[CC_id];
@@ -479,7 +437,7 @@ void nr_fill_nfapi_dl_sib1_pdu(int Mod_idP,
   pdsch_pdu_rel15->qamModOrder[0] = 2;
   pdsch_pdu_rel15->mcsIndex[0] = gNB_mac->sched_ctrlCommon->sched_pdsch.mcs;
   pdsch_pdu_rel15->mcsTable[0] = 0;
-  pdsch_pdu_rel15->rvIndex[0] = nr_rv_round_map[0];
+  pdsch_pdu_rel15->rvIndex[0] = 0;
   pdsch_pdu_rel15->dataScramblingId = *scc->physCellId;
   pdsch_pdu_rel15->nrOfLayers = 1;
   pdsch_pdu_rel15->transmissionScheme = 0;
@@ -504,6 +462,10 @@ void nr_fill_nfapi_dl_sib1_pdu(int Mod_idP,
   LOG_D(NR_MAC,"sib1:rbStart %d, rbSize %d\n",pdsch_pdu_rel15->rbStart,pdsch_pdu_rel15->rbSize);
   LOG_D(NR_MAC,"sib1:dlDmrsSymbPos = 0x%x\n", pdsch_pdu_rel15->dlDmrsSymbPos);
 
+  pdsch_pdu_rel15->maintenance_parms_v3.tbSizeLbrmBytes = nr_compute_tbslbrm(0,
+                                                                             pdsch_pdu_rel15->BWPSize,
+                                                                             1);
+
   /* Fill PDCCH DL DCI PDU */
   nfapi_nr_dl_dci_pdu_t *dci_pdu = &pdcch_pdu_rel15->dci_pdu[pdcch_pdu_rel15->numDlDci];
   pdcch_pdu_rel15->numDlDci++;
@@ -548,6 +510,7 @@ void nr_fill_nfapi_dl_sib1_pdu(int Mod_idP,
                      rnti_type,
                      pdsch_pdu_rel15->BWPSize,
                      0,
+                     0,
                      gNB_mac->cset0_bwp_size);
 
   LOG_D(MAC,"BWPSize: %i\n", pdcch_pdu_rel15->BWPSize);
@@ -607,7 +570,7 @@ void schedule_nr_sib1(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
 
       // Get SIB1
       uint8_t sib1_payload[NR_MAX_SIB_LENGTH/8];
-      uint8_t sib1_sdu_length = mac_rrc_nr_data_req(module_idP, CC_id, frameP, BCCH, SI_RNTI, 1, sib1_payload);
+      uint16_t sib1_sdu_length = mac_rrc_nr_data_req(module_idP, CC_id, frameP, BCCH, SI_RNTI, 1, sib1_payload);
       LOG_D(NR_MAC,"sib1_sdu_length = %i\n", sib1_sdu_length);
       LOG_D(NR_MAC,"SIB1: \n");
       for (int k=0;k<sib1_sdu_length;k++)
@@ -635,7 +598,8 @@ void schedule_nr_sib1(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
                                            startSymbolIndex,
                                            nrOfSymbols,
                                            dlDmrsSymbPos,
-                                           candidate_idx, sib1_sdu_length);
+                                           candidate_idx,
+                                           sib1_sdu_length);
 
       nfapi_nr_dl_tti_request_body_t *dl_req = &gNB_mac->DL_req[CC_id].dl_tti_request_body;
       int pdu_index = gNB_mac->pdu_index[0]++;
diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
index 3a67b7fca99..3517c124a57 100644
--- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
@@ -53,105 +53,21 @@
 #define WORD 32
 //#define SIZE_OF_POINTER sizeof (void *)
 
-void calculate_preferred_dl_tda(module_id_t module_id, const NR_BWP_Downlink_t *bwp) {
-  gNB_MAC_INST *nrmac = RC.nrmac[module_id];
-  const int bwp_id = bwp ? bwp->bwp_Id : 0;
+const int get_dl_tda(const gNB_MAC_INST *nrmac, const NR_ServingCellConfigCommon_t *scc, int slot) {
 
-  if (nrmac->preferred_dl_tda[bwp_id])
-    return;
+  const NR_TDD_UL_DL_Pattern_t *tdd = scc->tdd_UL_DL_ConfigurationCommon ? &scc->tdd_UL_DL_ConfigurationCommon->pattern1 : NULL;
+  AssertFatal(tdd || nrmac->common_channels->frame_type == FDD, "Dynamic TDD not handled yet\n");
 
-  /* there is a mixed slot only when in TDD */
-  NR_ServingCellConfigCommon_t *scc = nrmac->common_channels->ServingCellConfigCommon;
-  frame_type_t frame_type = nrmac->common_channels->frame_type;
-  const int n = nr_slots_per_frame[*scc->ssbSubcarrierSpacing];
-  const NR_TDD_UL_DL_Pattern_t *tdd =
-    scc->tdd_UL_DL_ConfigurationCommon ? &scc->tdd_UL_DL_ConfigurationCommon->pattern1 : NULL;
-  int symb_dlMixed = 0;
-  int nr_mix_slots = 0;
-  int nr_slots_period = n;
-
-  if (tdd) {
-    symb_dlMixed = (1 << tdd->nrofDownlinkSymbols) - 1;
-    nr_mix_slots = tdd->nrofDownlinkSymbols != 0 || tdd->nrofUplinkSymbols != 0;
-    nr_slots_period /= get_nb_periods_per_frame(tdd->dl_UL_TransmissionPeriodicity);
-  } else
-    // if TDD configuration is not present and the band is not FDD, it means it is a dynamic TDD configuration
-    AssertFatal(nrmac->common_channels->frame_type == FDD,"Dynamic TDD not handled yet\n");
-
-  int target_ss;
-
-  if (bwp) {
-    target_ss = NR_SearchSpace__searchSpaceType_PR_ue_Specific;
-  } else {
-    target_ss = NR_SearchSpace__searchSpaceType_PR_common;
-  }
+  // Use special TDA in case of CSI-RS
+  if(nrmac->UE_info.sched_csirs)
+    return 1;
 
-  const NR_SIB1_t *sib1 = nrmac->common_channels[0].sib1 ? nrmac->common_channels[0].sib1->message.choice.c1->choice.systemInformationBlockType1 : NULL;
-  NR_SearchSpace_t *search_space = get_searchspace(sib1,
-                                                   scc,
-                                                   bwp ? bwp->bwp_Dedicated : NULL,
-                                                   target_ss);
-
-  NR_ControlResourceSet_t *coreset = get_coreset(module_id, scc, bwp ? bwp->bwp_Dedicated : NULL, search_space, target_ss);
-  // get coreset symbol "map"
-  const uint16_t symb_coreset = (1 << coreset->duration) - 1;
-
-  NR_PDSCH_TimeDomainResourceAllocationList_t *tdaList = get_pdsch_TimeDomainAllocationList(bwp,
-                                                                                            scc,
-                                                                                            sib1);
-  AssertFatal(tdaList->list.count >= 1, "need to have at least one TDA for DL slots\n");
-
-  /* check that TDA index 0 fits into DL and does not overlap CORESET */
-  const NR_PDSCH_TimeDomainResourceAllocation_t *tdaP_DL = tdaList->list.array[0];
-  AssertFatal(!tdaP_DL->k0 || *tdaP_DL->k0 == 0,
-              "TimeDomainAllocation at index 1: non-null k0 (%ld) is not supported by the scheduler\n",
-              *tdaP_DL->k0);
-  int start, len;
-  SLIV2SL(tdaP_DL->startSymbolAndLength, &start, &len);
-  const uint16_t symb_tda = ((1 << len) - 1) << start;
-  // check whether coreset and TDA overlap: then we cannot use it. Note that
-  // here we assume that the coreset is scheduled every slot (which it
-  // currently is) and starting at symbol 0
-  AssertFatal((symb_coreset & symb_tda) == 0, "TDA index 0 for DL overlaps with CORESET\n");
-  /* check that TDA index 1 fits into DL part of mixed slot, if it exists */
-  int tdaMi = -1;
-
-  if (frame_type == TDD && tdaList->list.count > 1) {
-    const NR_PDSCH_TimeDomainResourceAllocation_t *tdaP_Mi = tdaList->list.array[1];
-    AssertFatal(!tdaP_Mi->k0 || *tdaP_Mi->k0 == 0,
-                "TimeDomainAllocation at index 1: non-null k0 (%ld) is not supported by the scheduler\n",
-                *tdaP_Mi->k0);
-    int start, len;
-    SLIV2SL(tdaP_Mi->startSymbolAndLength, &start, &len);
-    const uint16_t symb_tda = ((1 << len) - 1) << start;
-
-    // check whether coreset and TDA overlap: then, we cannot use it. Also,
-    // check whether TDA is entirely within mixed slot DL. Note that
-    // here we assume that the coreset is scheduled every slot (which it
-    // currently is)
-    if ((symb_coreset & symb_tda) == 0 && (symb_dlMixed & symb_tda) == symb_tda) {
-      tdaMi = 1;
-    } else {
-      LOG_E(MAC,
-            "TDA index 1 DL overlaps with CORESET or is not entirely in mixed slot (symb_coreset %x symb_dlMixed %x symb_tda %x), won't schedule DL mixed slot\n",
-            symb_coreset,
-            symb_dlMixed,
-            symb_tda);
-    }
-  }
-
-  nrmac->preferred_dl_tda[bwp_id] = malloc(n * sizeof(*nrmac->preferred_dl_tda[bwp_id]));
-
-  for (int i = 0; i < n; ++i) {
-    nrmac->preferred_dl_tda[bwp_id][i] = -1;
-
-    if (frame_type == FDD || i % nr_slots_period < tdd->nrofDownlinkSlots)
-      nrmac->preferred_dl_tda[bwp_id][i] = 0;
-    else if (nr_mix_slots && i % nr_slots_period == tdd->nrofDownlinkSlots)
-      nrmac->preferred_dl_tda[bwp_id][i] = tdaMi;
-
-    LOG_D(MAC, "slot %d preferred_dl_tda %d\n", i, nrmac->preferred_dl_tda[bwp_id][i]);
+  if (tdd && tdd->nrofDownlinkSymbols > 1) { // if there is a mixed slot where we can transmit DL
+    const int nr_slots_period = tdd->nrofDownlinkSlots + tdd->nrofUplinkSlots + 1;
+    if ((slot%nr_slots_period) == tdd->nrofDownlinkSlots)
+      return 2;
   }
+  return 0; // if FDD or not mixed slot in TDD, for now use default TDA (TODO handle CSI-RS slots)
 }
 
 // Compute and write all MAC CEs and subheaders, and return number of written
@@ -397,88 +313,12 @@ int nr_write_ce_dlsch_pdu(module_id_t module_idP,
   return offset;
 }
 
-#define BLER_UPDATE_FRAME 10
-#define BLER_FILTER 0.9f
-int get_mcs_from_bler(module_id_t mod_id, int CC_id, frame_t frame, sub_frame_t slot, int UE_id, int mcs_table) {
-  gNB_MAC_INST *nrmac = RC.nrmac[mod_id];
-  const NR_ServingCellConfigCommon_t *scc = nrmac->common_channels[CC_id].ServingCellConfigCommon;
-  const int n = nr_slots_per_frame[*scc->ssbSubcarrierSpacing];
-  int max_allowed_mcs = (mcs_table == 1) ? 27 : 28;
-  int max_mcs = nrmac->dl_max_mcs;
-
-  if (nrmac->dl_max_mcs>max_allowed_mcs)
-    max_mcs = max_allowed_mcs;
-
-  NR_DL_bler_stats_t *bler_stats = &nrmac->UE_info.UE_sched_ctrl[UE_id].dl_bler_stats;
-
-  /* first call: everything is zero. Initialize to sensible default */
-  if (bler_stats->last_frame_slot == 0 && bler_stats->mcs == 0) {
-    bler_stats->last_frame_slot = frame * n + slot;
-    bler_stats->mcs = 9;
-    bler_stats->bler = (nrmac->dl_bler_target_lower + nrmac->dl_bler_target_upper) / 2;
-    bler_stats->rd2_bler = nrmac->dl_rd2_bler_threshold;
-  }
-
-  const int now = frame * n + slot;
-  int diff = now - bler_stats->last_frame_slot;
-
-  if (diff < 0) // wrap around
-    diff += 1024 * n;
-
-  const uint8_t old_mcs = bler_stats->mcs;
-  const NR_mac_stats_t *stats = &nrmac->UE_info.mac_stats[UE_id];
-
-  // TODO put back this condition when relevant
-  /*const int dret3x = stats->dlsch_rounds[3] - bler_stats->dlsch_rounds[3];
-  if (dret3x > 0) {
-     if there is a third retransmission, decrease MCS for stabilization and
-     restart averaging window to stabilize transmission
-    bler_stats->last_frame_slot = now;
-    bler_stats->mcs = max(9, bler_stats->mcs - 1);
-    memcpy(bler_stats->dlsch_rounds, stats->dlsch_rounds, sizeof(stats->dlsch_rounds));
-    LOG_D(MAC, "%4d.%2d: %d retx in 3rd round, setting MCS to %d and restarting window\n", frame, slot, dret3x, bler_stats->mcs);
-    return bler_stats->mcs;
-  }*/
-  if (diff < BLER_UPDATE_FRAME * n)
-    return old_mcs; // no update
-
-  // last update is longer than x frames ago
-  const int dtx = (int)(stats->dlsch_rounds[0] - bler_stats->dlsch_rounds[0]);
-  const int dretx = (int)(stats->dlsch_rounds[1] - bler_stats->dlsch_rounds[1]);
-  const int dretx2 = (int)(stats->dlsch_rounds[2] - bler_stats->dlsch_rounds[2]);
-  const float bler_window = dtx > 0 ? (float) dretx / dtx : bler_stats->bler;
-  const float rd2_bler_wnd = dtx > 0 ? (float) dretx2 / dtx : bler_stats->rd2_bler;
-  bler_stats->bler = BLER_FILTER * bler_stats->bler + (1 - BLER_FILTER) * bler_window;
-  bler_stats->rd2_bler = BLER_FILTER / 4 * bler_stats->rd2_bler + (1 - BLER_FILTER / 4) * rd2_bler_wnd;
-  int new_mcs = old_mcs;
-
-  // TODO put back this condition when relevant
-  /* first ensure that number of 2nd retx is below threshold. If this is the
-   * case, use 1st retx to adjust faster
-  if (bler_stats->rd2_bler > nrmac->dl_rd2_bler_threshold && old_mcs > 6) {
-    new_mcs -= 2;
-  } else if (bler_stats->rd2_bler < nrmac->dl_rd2_bler_threshold) {*/
-  if (bler_stats->bler < nrmac->dl_bler_target_lower && old_mcs < max_mcs && dtx > 9)
-    new_mcs += 1;
-  else if (bler_stats->bler > nrmac->dl_bler_target_upper && old_mcs > 6)
-    new_mcs -= 1;
-
-  // else we are within threshold boundaries
-  bler_stats->last_frame_slot = now;
-  bler_stats->mcs = new_mcs;
-  memcpy(bler_stats->dlsch_rounds, stats->dlsch_rounds, sizeof(stats->dlsch_rounds));
-  LOG_D(MAC, "%4d.%2d MCS %d -> %d (dtx %d, dretx %d, BLER wnd %.3f avg %.6f, dretx2 %d, RD2 BLER wnd %.3f avg %.6f)\n",
-        frame, slot, old_mcs, new_mcs, dtx, dretx, bler_window, bler_stats->bler, dretx2, rd2_bler_wnd, bler_stats->rd2_bler);
-  return new_mcs;
-}
-
 void nr_store_dlsch_buffer(module_id_t module_id,
                            frame_t frame,
                            sub_frame_t slot) {
-  NR_UE_info_t *UE_info = &RC.nrmac[module_id]->UE_info;
 
-  for (int UE_id = UE_info->list.head; UE_id >= 0; UE_id = UE_info->list.next[UE_id]) {
-    NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+  UE_iterator(RC.nrmac[module_id]->UE_info.list, UE) {
+    NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
     sched_ctrl->num_total_bytes = 0;
     sched_ctrl->dl_pdus_total = 0;
 
@@ -486,13 +326,11 @@ void nr_store_dlsch_buffer(module_id_t module_id,
     // Note: DL_SCH_LCID_DCCH, DL_SCH_LCID_DCCH1, DL_SCH_LCID_DTCH
     for (int i = 0; i < sched_ctrl->dl_lc_num; ++i) {
       const int lcid = sched_ctrl->dl_lc_ids[i];
-      const uint16_t rnti = UE_info->rnti[UE_id];
-      LOG_D(NR_MAC, "In %s: UE %d/%x: LCID %d\n", __FUNCTION__, UE_id, rnti, lcid);
-
+      const uint16_t rnti = UE->rnti;
+      LOG_D(NR_MAC, "In %s: UE %x: LCID %d\n", __FUNCTION__, rnti, lcid);
       if (lcid == DL_SCH_LCID_DTCH && sched_ctrl->rrc_processing_timer > 0) {
         continue;
       }
-
       start_meas(&RC.nrmac[module_id]->rlc_status_ind);
       sched_ctrl->rlc_status[lcid] = mac_rlc_status_ind(module_id,
                                                         rnti,
@@ -518,7 +356,7 @@ void nr_store_dlsch_buffer(module_id_t module_id,
             slot,
             lcid < 4 ? "DCCH":"DTCH",
             lcid,
-            UE_id,
+            UE->rnti,
             sched_ctrl->rlc_status[lcid].bytes_in_buffer,
             sched_ctrl->num_total_bytes,
             sched_ctrl->dl_pdus_total,
@@ -527,21 +365,42 @@ void nr_store_dlsch_buffer(module_id_t module_id,
   }
 }
 
+void abort_nr_dl_harq(NR_UE_info_t* UE, int8_t harq_pid) {
+
+  NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
+  NR_UE_harq_t *harq = &sched_ctrl->harq_processes[harq_pid];
+
+  harq->ndi ^= 1;
+  harq->round = 0;
+  UE->mac_stats.dl.errors++;
+  add_tail_nr_list(&sched_ctrl->available_dl_harq, harq_pid);
+
+}
+
 bool allocate_dl_retransmission(module_id_t module_id,
                                 frame_t frame,
                                 sub_frame_t slot,
                                 uint16_t *rballoc_mask,
                                 int *n_rb_sched,
-                                int UE_id,
+                                NR_UE_info_t *UE,
                                 int current_harq_pid) {
 
-
   gNB_MAC_INST *nr_mac = RC.nrmac[module_id];
   const NR_ServingCellConfigCommon_t *scc = nr_mac->common_channels->ServingCellConfigCommon;
-  NR_UE_info_t *UE_info = &nr_mac->UE_info;
-  NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+  NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
   NR_sched_pdsch_t *retInfo = &sched_ctrl->harq_processes[current_harq_pid].sched_pdsch;
-  NR_CellGroupConfig_t *cg = UE_info->CellGroup[UE_id];
+  NR_CellGroupConfig_t *cg = UE->CellGroup;
+  NR_pdsch_semi_static_t *ps = &sched_ctrl->pdsch_semi_static;
+
+  //TODO remove this and handle retransmission with old nrOfLayers
+  //     once ps structure is removed
+  if(ps->nrOfLayers < retInfo->nrOfLayers) {
+    LOG_W(NR_MAC,"Cannot schedule retransmission. RI changed from %d to %d\n",
+          retInfo->nrOfLayers, ps->nrOfLayers);
+    abort_nr_dl_harq(UE, current_harq_pid);
+    remove_front_nr_list(&sched_ctrl->retrans_dl_harq);
+    return false;
+  }
 
   NR_BWP_DownlinkDedicated_t *bwpd =
       cg &&
@@ -565,9 +424,8 @@ bool allocate_dl_retransmission(module_id_t module_id,
   const uint16_t bwpSize = coresetid == 0 ? RC.nrmac[module_id]->cset0_bwp_size : NRRIV2BW(genericParameters->locationAndBandwidth, MAX_BWP_SIZE);
 
   int rbStart = 0; // start wrt BWPstart
-  NR_pdsch_semi_static_t *ps = &sched_ctrl->pdsch_semi_static;
   int rbSize = 0;
-  const int tda = RC.nrmac[module_id]->preferred_dl_tda[sched_ctrl->active_bwp ? sched_ctrl->active_bwp->bwp_Id : 0][slot];
+  const int tda = get_dl_tda(RC.nrmac[module_id], scc, slot);
   AssertFatal(tda>=0,"Unable to find PDSCH time domain allocation in list\n");
 
   if (tda == retInfo->time_domain_allocation) {
@@ -581,7 +439,7 @@ bool allocate_dl_retransmission(module_id_t module_id,
         rbStart++;
 
       if (rbStart >= bwpSize) {
-        LOG_D(NR_MAC, "cannot allocate retransmission for UE %d/RNTI %04x: no resources\n", UE_id, UE_info->rnti[UE_id]);
+        LOG_D(NR_MAC, "cannot allocate retransmission for RNTI %04x: no resources\n", UE->rnti);
         return false;
       }
 
@@ -653,8 +511,8 @@ bool allocate_dl_retransmission(module_id_t module_id,
   }
 
   /* Find a free CCE */
-  const int cid = sched_ctrl->coreset->controlResourceSetId;
-  const uint16_t Y = get_Y(cid%3, slot, UE_info->rnti[UE_id]);
+
+  const uint32_t Y = get_Y(sched_ctrl->search_space, slot, UE->rnti);
   uint8_t nr_of_candidates;
 
   for (int i=0; i<5; i++) {
@@ -676,8 +534,8 @@ bool allocate_dl_retransmission(module_id_t module_id,
                                       Y);
 
   if (CCEIndex<0) {
-    LOG_D(MAC, "%4d.%2d could not find CCE for DL DCI retransmission UE %d/RNTI %04x\n",
-          frame, slot, UE_id, UE_info->rnti[UE_id]);
+    LOG_D(MAC, "%4d.%2d could not find CCE for DL DCI retransmission RNTI %04x\n",
+          frame, slot, UE->rnti);
     return false;
   }
 
@@ -685,15 +543,13 @@ bool allocate_dl_retransmission(module_id_t module_id,
    * allocation after CCE alloc fail would be more complex) */
 
   int r_pucch = nr_get_pucch_resource(sched_ctrl->coreset, sched_ctrl->active_ubwp, ubwpd, CCEIndex);
-  const int alloc = nr_acknack_scheduling(module_id, UE_id, frame, slot, r_pucch, 0);
+  const int alloc = nr_acknack_scheduling(module_id, UE, frame, slot, r_pucch, 0);
   if (alloc<0) {
     LOG_D(MAC,
-          "could not find PUCCH for UE %d/%04x@%d.%d\n",
-          UE_id,
-          UE_info->rnti[UE_id],
+          "could not find PUCCH for UE %04x@%d.%d\n",
+          UE->rnti,
           frame,
           slot);
-    RC.nrmac[module_id]->pdcch_cand[cid]--;
     return false;
   }
 
@@ -716,48 +572,54 @@ bool allocate_dl_retransmission(module_id_t module_id,
   return true;
 }
 
-float thr_ue[MAX_MOBILES_PER_GNB];
 uint32_t pf_tbs[3][29]; // pre-computed, approximate TBS values for PF coefficient
+typedef struct UEsched_s {
+  float coef;
+  NR_UE_info_t * UE;
+} UEsched_t;
+
+static int comparator(const void *p, const void *q) {
+  return ((UEsched_t*)p)->coef < ((UEsched_t*)q)->coef;
+}
 
 void pf_dl(module_id_t module_id,
            frame_t frame,
            sub_frame_t slot,
-           NR_list_t *UE_list,
+           NR_UE_info_t **UE_list,
            int max_num_ue,
            int n_rb_sched,
            uint16_t *rballoc_mask) {
   gNB_MAC_INST *mac = RC.nrmac[module_id];
-  NR_UE_info_t *UE_info = &mac->UE_info;
   NR_ServingCellConfigCommon_t *scc=mac->common_channels[0].ServingCellConfigCommon;
-  float coeff_ue[MAX_MOBILES_PER_GNB];
   // UEs that could be scheduled
-  int ue_array[MAX_MOBILES_PER_GNB];
-  int layers[MAX_MOBILES_PER_GNB];
-  NR_list_t UE_sched = { .head = -1, .next = ue_array, .tail = -1, .len = MAX_MOBILES_PER_GNB };
+  UEsched_t UE_sched[MAX_MOBILES_PER_GNB] = {0};
+  int remainUEs = max_num_ue;
+  int curUE = 0;
 
   /* Loop UE_info->list to check retransmission */
-  for (int UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) {
-    if (UE_info->Msg4_ACKed[UE_id] != true) continue;
+  UE_iterator(UE_list, UE) {
+    if (UE->Msg4_ACKed != true)
+      continue;
 
-    NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+    NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
 
     if (sched_ctrl->ul_failure==1 && get_softmodem_params()->phy_test==0) continue;
 
+    const NR_mac_dir_stats_t *stats = &UE->mac_stats.dl;
     NR_sched_pdsch_t *sched_pdsch = &sched_ctrl->sched_pdsch;
     NR_pdsch_semi_static_t *ps = &sched_ctrl->pdsch_semi_static;
     /* get the PID of a HARQ process awaiting retrnasmission, or -1 otherwise */
     sched_pdsch->dl_harq_pid = sched_ctrl->retrans_dl_harq.head;
-    layers[UE_id] = ps->nrOfLayers; // initialization of layers to the previous value in the strcuture
+    UE->layers = ps->nrOfLayers; // initialization of layers to the previous value in the structure
     /* Calculate Throughput */
     const float a = 0.0005f; // corresponds to 200ms window
-    const uint32_t b = UE_info->mac_stats[UE_id].dlsch_current_bytes;
-    thr_ue[UE_id] = (1 - a) * thr_ue[UE_id] + a * b;
+    const uint32_t b = UE->mac_stats.dl.current_bytes;
+    UE->dl_thr_ue = (1 - a) * UE->dl_thr_ue + a * b;
 
     /* retransmission */
     if (sched_pdsch->dl_harq_pid >= 0) {
       /* Allocate retransmission */
-      bool r = allocate_dl_retransmission(
-                 module_id, frame, slot, rballoc_mask, &n_rb_sched, UE_id, sched_pdsch->dl_harq_pid);
+      bool r = allocate_dl_retransmission(module_id, frame, slot, rballoc_mask, &n_rb_sched, UE, sched_pdsch->dl_harq_pid);
 
       if (!r) {
         LOG_D(NR_MAC, "%4d.%2d retransmission can NOT be allocated\n", frame, slot);
@@ -765,18 +627,27 @@ void pf_dl(module_id_t module_id,
       }
 
       /* reduce max_num_ue once we are sure UE can be allocated, i.e., has CCE */
-      max_num_ue--;
+      remainUEs--;
+
+      // we have filled all with mandatory retransmissions
+      // no need to schedule new transmissions
+      if (remainUEs == 0)
+        return;
 
-      if (max_num_ue < 0) return;
     } else {
       /* Check DL buffer and skip this UE if no bytes and no TA necessary */
       if (sched_ctrl->num_total_bytes == 0 && frame != (sched_ctrl->ta_frame + 10) % 1024)
         continue;
 
       /* Calculate coeff */
-      set_dl_mcs(sched_pdsch,sched_ctrl,&mac->dl_max_mcs,ps->mcsTableIdx);
-      sched_pdsch->mcs = get_mcs_from_bler(module_id, /* CC_id = */ 0, frame, slot, UE_id, ps->mcsTableIdx);
-      layers[UE_id] = set_dl_nrOfLayers(sched_ctrl);
+      const NR_bler_options_t *bo = &mac->dl_bler;
+      const int max_mcs_table = ps->mcsTableIdx == 1 ? 27 : 28;
+      const int max_mcs = min(sched_ctrl->dl_max_mcs, max_mcs_table);
+      if (bo->harq_round_max == 1)
+        sched_pdsch->mcs = max_mcs;
+      else
+        sched_pdsch->mcs = get_mcs_from_bler(bo, stats, &sched_ctrl->dl_bler_stats, max_mcs, frame);
+      UE->layers = set_dl_nrOfLayers(sched_ctrl);
       const uint8_t Qm = nr_get_Qm_dl(sched_pdsch->mcs, ps->mcsTableIdx);
       const uint16_t R = nr_get_code_rate_dl(sched_pdsch->mcs, ps->mcsTableIdx);
       uint32_t tbs = nr_compute_tbs(Qm,
@@ -786,40 +657,26 @@ void pf_dl(module_id_t module_id,
                                     0, /* N_PRB_DMRS * N_DMRS_SLOT */
                                     0 /* N_PRB_oh, 0 for initialBWP */,
                                     0 /* tb_scaling */,
-                                    layers[UE_id]) >> 3;
-      coeff_ue[UE_id] = (float) tbs / thr_ue[UE_id];
-      LOG_D(NR_MAC,"b %d, thr_ue[%d] %f, tbs %d, coeff_ue[%d] %f\n",
-            b, UE_id, thr_ue[UE_id], tbs, UE_id, coeff_ue[UE_id]);
+                                    UE->layers) >> 3;
+      float coeff_ue = (float) tbs / UE->dl_thr_ue;
+      LOG_D(NR_MAC,"UE %04x b %d, thr_ue %f, tbs %d, coeff_ue %f\n",
+            UE->rnti, b, UE->dl_thr_ue, tbs, coeff_ue);
       /* Create UE_sched list for UEs eligible for new transmission*/
-      add_tail_nr_list(&UE_sched, UE_id);
+      UE_sched[curUE].coef=coeff_ue;
+      UE_sched[curUE].UE=UE;
+      curUE++;
     }
   }
 
+  qsort(UE_sched, sizeof(*UE_sched), sizeofArray(UE_sched), comparator);
+  UEsched_t *iterator = UE_sched;
+
   const int min_rbSize = 5;
 
   /* Loop UE_sched to find max coeff and allocate transmission */
-  while (max_num_ue > 0 && n_rb_sched >= min_rbSize && UE_sched.head >= 0) {
-    /* Find max coeff from UE_sched*/
-    int *max = &UE_sched.head; /* assume head is max */
-    int *p = &UE_sched.next[*max];
-
-    while (*p >= 0) {
-      /* if the current one has larger coeff, save for later */
-      if (coeff_ue[*p] > coeff_ue[*max])
-        max = p;
-
-      p = &UE_sched.next[*p];
-    }
-
-    /* remove the max one: do not use remove_nr_list() it goes through the
-     * whole list every time. Note that UE_sched.tail might not be set
-     * correctly anymore */
-    const int UE_id = *max;
-    p = &UE_sched.next[*max];
-    *max = UE_sched.next[*max];
-    *p = -1;
-    NR_CellGroupConfig_t *cg = UE_info->CellGroup[UE_id];
+  while (remainUEs> 0 && n_rb_sched >= min_rbSize && iterator->UE != NULL) {
 
+    NR_CellGroupConfig_t *cg = iterator->UE->CellGroup;
 
     NR_BWP_DownlinkDedicated_t *bwpd =
         cg &&
@@ -834,26 +691,32 @@ void pf_dl(module_id_t module_id,
         cg->spCellConfig->spCellConfigDedicated->uplinkConfig ?
         cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP : NULL;
 
-    NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
-    const uint16_t rnti = UE_info->rnti[UE_id];
-    const NR_SIB1_t *sib1 = RC.nrmac[module_id]->common_channels[0].sib1 ? RC.nrmac[module_id]->common_channels[0].sib1->message.choice.c1->choice.systemInformationBlockType1 : NULL;
+    NR_UE_sched_ctrl_t *sched_ctrl = &iterator->UE->UE_sched_ctrl;
+    const uint16_t rnti = iterator->UE->rnti;
+    const NR_SIB1_t *sib1 = RC.nrmac[module_id]->common_channels[0].sib1 ?
+      RC.nrmac[module_id]->common_channels[0].sib1->message.choice.c1->choice.systemInformationBlockType1 :
+      NULL;
 
     NR_BWP_t *genericParameters = get_dl_bwp_genericParameters(sched_ctrl->active_bwp,
                                                                RC.nrmac[module_id]->common_channels[0].ServingCellConfigCommon,
                                                                sib1);
 
-    const int coresetid = (sched_ctrl->active_bwp||bwpd) ? sched_ctrl->coreset->controlResourceSetId : RC.nrmac[module_id]->sched_ctrlCommon->coreset->controlResourceSetId;
-    const uint16_t bwpSize = coresetid == 0 ? RC.nrmac[module_id]->cset0_bwp_size : NRRIV2BW(genericParameters->locationAndBandwidth, MAX_BWP_SIZE);
+    const int coresetid = (sched_ctrl->active_bwp||bwpd) ?
+      sched_ctrl->coreset->controlResourceSetId :
+      RC.nrmac[module_id]->sched_ctrlCommon->coreset->controlResourceSetId;
+    const uint16_t bwpSize = coresetid == 0 ?
+      RC.nrmac[module_id]->cset0_bwp_size :
+      NRRIV2BW(genericParameters->locationAndBandwidth, MAX_BWP_SIZE);
     int rbStart = 0; // start wrt BWPstart
 
     if (sched_ctrl->available_dl_harq.head < 0) {
-      LOG_D(MAC, "UE %d RNTI %04x has no free HARQ process, skipping\n", UE_id, UE_info->rnti[UE_id]);
+      LOG_D(MAC, "RNTI %04x has no free HARQ process, skipping\n", iterator->UE->rnti);
+      iterator++;
       continue;
     }
 
     /* Find a free CCE */
-    const int cid = sched_ctrl->coreset->controlResourceSetId;
-    const uint16_t Y = get_Y(cid%3, slot, UE_info->rnti[UE_id]);
+    const uint32_t Y = get_Y(sched_ctrl->search_space, slot, iterator->UE->rnti);
     uint8_t nr_of_candidates;
 
     for (int i=0; i<5; i++) {
@@ -875,7 +738,8 @@ void pf_dl(module_id_t module_id,
                                         Y);
 
     if (CCEIndex<0) {
-      LOG_D(NR_MAC, "%4d.%2d could not find CCE for DL DCI UE %d/RNTI %04x\n", frame, slot, UE_id, rnti);
+      LOG_D(NR_MAC, "%4d.%2d could not find CCE for DL DCI RNTI %04x\n", frame, slot, rnti);
+      iterator++;
       continue;
     }
 
@@ -883,48 +747,39 @@ void pf_dl(module_id_t module_id,
     * allocation after CCE alloc fail would be more complex) */
 
     int r_pucch = nr_get_pucch_resource(sched_ctrl->coreset, sched_ctrl->active_ubwp, ubwpd, CCEIndex);
-    const int alloc = nr_acknack_scheduling(module_id, UE_id, frame, slot, r_pucch, 0);
+    const int alloc = nr_acknack_scheduling(module_id, iterator->UE, frame, slot, r_pucch, 0);
 
     if (alloc<0) {
       LOG_D(NR_MAC,
-            "could not find PUCCH for UE %d/%04x@%d.%d\n",
-            UE_id,
+            "could not find PUCCH for %04x@%d.%d\n",
             rnti,
             frame,
             slot);
-      mac->pdcch_cand[cid]--;
+      iterator++;
       continue;
     }
 
-    /* reduce max_num_ue once we are sure UE can be allocated, i.e., has CCE
-     * and PUCCH */
-    max_num_ue--;
-    AssertFatal(max_num_ue >= 0, "Illegal max_num_ue %d\n", max_num_ue);
     sched_ctrl->cce_index = CCEIndex;
     fill_pdcch_vrb_map(mac,
                        /* CC_id = */ 0,
                        &sched_ctrl->sched_pdcch,
                        CCEIndex,
                        sched_ctrl->aggregation_level);
-    /* reduce max_num_ue once we are sure UE can be allocated, i.e., has CCE */
-    max_num_ue--;
-
-    if (max_num_ue < 0) return;
 
     /* MCS has been set above */
-    const int tda = RC.nrmac[module_id]->preferred_dl_tda[sched_ctrl->active_bwp ? sched_ctrl->active_bwp->bwp_Id : 0][slot];
+    const int tda = get_dl_tda(RC.nrmac[module_id], scc, slot);
     AssertFatal(tda>=0,"Unable to find PDSCH time domain allocation in list\n");
     NR_sched_pdsch_t *sched_pdsch = &sched_ctrl->sched_pdsch;
     NR_pdsch_semi_static_t *ps = &sched_ctrl->pdsch_semi_static;
 
-    if (ps->nrOfLayers != layers[UE_id] || ps->time_domain_allocation != tda) {
+    if (ps->nrOfLayers != iterator->UE->layers || ps->time_domain_allocation != tda ) {
       nr_set_pdsch_semi_static(sib1,
                                scc,
-                               UE_info->CellGroup[UE_id],
+                               iterator->UE->CellGroup,
                                sched_ctrl->active_bwp,
                                bwpd,
                                tda,
-                               layers[UE_id],
+                               iterator->UE->layers,
                                sched_ctrl,
                                ps);
     }
@@ -969,27 +824,25 @@ void pf_dl(module_id_t module_id,
 
     for (int rb = 0; rb < sched_pdsch->rbSize; rb++)
       rballoc_mask[rb + sched_pdsch->rbStart] ^= slbitmap;
+
+    remainUEs--;
+    iterator++;
   }
 }
 
 void nr_fr1_dlsch_preprocessor(module_id_t module_id, frame_t frame, sub_frame_t slot) {
-  NR_UE_info_t *UE_info = &RC.nrmac[module_id]->UE_info;
+  NR_UEs_t *UE_info = &RC.nrmac[module_id]->UE_info;
 
-  if (UE_info->num_UEs == 0)
+  if (UE_info->list[0] == NULL)
     return;
 
   NR_ServingCellConfigCommon_t *scc = RC.nrmac[module_id]->common_channels[0].ServingCellConfigCommon;
   const int CC_id = 0;
   /* Get bwpSize and TDAfrom the first UE */
   /* This is temporary and it assumes all UEs have the same BWP and TDA*/
-  int UE_id = UE_info->list.head;
-  NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
-  const int bwp_id = sched_ctrl->active_bwp ? sched_ctrl->active_bwp->bwp_Id : 0;
-
-  if (!RC.nrmac[module_id]->preferred_dl_tda[bwp_id])
-    return;
-
-  const int tda = RC.nrmac[module_id]->preferred_dl_tda[bwp_id][slot];
+  NR_UE_info_t *UE=UE_info->list[0];
+  NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
+  const int tda = get_dl_tda(RC.nrmac[module_id], scc, slot);
   int startSymbolIndex, nrOfSymbols;
   const struct NR_PDSCH_TimeDomainResourceAllocationList *tdaList = sched_ctrl->active_bwp ?
         sched_ctrl->active_bwp->bwp_Common->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList :
@@ -998,17 +851,16 @@ void nr_fr1_dlsch_preprocessor(module_id_t module_id, frame_t frame, sub_frame_t
   const int startSymbolAndLength = tdaList->list.array[tda]->startSymbolAndLength;
   SLIV2SL(startSymbolAndLength, &startSymbolIndex, &nrOfSymbols);
 
-
   const NR_SIB1_t *sib1 = RC.nrmac[module_id]->common_channels[0].sib1 ? RC.nrmac[module_id]->common_channels[0].sib1->message.choice.c1->choice.systemInformationBlockType1 : NULL;
   NR_BWP_t *genericParameters = get_dl_bwp_genericParameters(sched_ctrl->active_bwp,
                                                              RC.nrmac[module_id]->common_channels[0].ServingCellConfigCommon,
                                                              sib1);
 
   NR_BWP_DownlinkDedicated_t *bwpd =
-      UE_info->CellGroup[UE_id] &&
-      UE_info->CellGroup[UE_id]->spCellConfig &&
-      UE_info->CellGroup[UE_id]->spCellConfig->spCellConfigDedicated ?
-      UE_info->CellGroup[UE_id]->spCellConfig->spCellConfigDedicated->initialDownlinkBWP : NULL;
+      UE->CellGroup &&
+      UE->CellGroup->spCellConfig &&
+      UE->CellGroup->spCellConfig->spCellConfigDedicated ?
+      UE->CellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP : NULL;
 
   const int coresetid = (sched_ctrl->active_bwp||bwpd) ? sched_ctrl->coreset->controlResourceSetId : RC.nrmac[module_id]->sched_ctrlCommon->coreset->controlResourceSetId;
 
@@ -1026,9 +878,9 @@ void nr_fr1_dlsch_preprocessor(module_id_t module_id, frame_t frame, sub_frame_t
     rballoc_mask[i] = (~vrb_map[i+BWPStart])&0x3fff; //bitwise not and 14 symbols
 
     // if all the pdsch symbols are free
-    if((rballoc_mask[i]&slbitmap) ==
-        slbitmap)
+    if ((rballoc_mask[i]&slbitmap) == slbitmap) {
       n_rb_sched++;
+    }
   }
 
   /* Retrieve amount of data to send for this UE */
@@ -1037,7 +889,7 @@ void nr_fr1_dlsch_preprocessor(module_id_t module_id, frame_t frame, sub_frame_t
   pf_dl(module_id,
         frame,
         slot,
-        &UE_info->list,
+        UE_info->list,
         MAX_MOBILES_PER_GNB,
         n_rb_sched,
         rballoc_mask);
@@ -1078,24 +930,21 @@ void nr_schedule_ue_spec(module_id_t module_id,
   if (!is_xlsch_in_slot(gNB_mac->dlsch_slot_bitmap[slot / 64], slot))
     return;
 
-  //if (slot==7 || slot == 17) return;
-
   /* PREPROCESSOR */
   gNB_mac->pre_processor_dl(module_id, frame, slot);
   const int CC_id = 0;
   NR_ServingCellConfigCommon_t *scc = gNB_mac->common_channels[CC_id].ServingCellConfigCommon;
-  NR_UE_info_t *UE_info = &gNB_mac->UE_info;
+  NR_UEs_t *UE_info = &gNB_mac->UE_info;
   nfapi_nr_dl_tti_request_body_t *dl_req = &gNB_mac->DL_req[CC_id].dl_tti_request_body;
-  NR_list_t *UE_list = &UE_info->list;
 
-  for (int UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) {
-    NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+  UE_iterator(UE_info->list, UE) {
+    NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
 
     if (sched_ctrl->ul_failure==1 && get_softmodem_params()->phy_test==0) continue;
 
     NR_sched_pdsch_t *sched_pdsch = &sched_ctrl->sched_pdsch;
-    UE_info->mac_stats[UE_id].dlsch_current_bytes = 0;
-    NR_CellGroupConfig_t *cg = UE_info->CellGroup[UE_id];
+    UE->mac_stats.dl.current_bytes = 0;
+    NR_CellGroupConfig_t *cg = UE->CellGroup;
 
     NR_BWP_DownlinkDedicated_t *bwpd =
         cg &&
@@ -1109,13 +958,13 @@ void nr_schedule_ue_spec(module_id_t module_id,
      * If we add the CE, ta_apply will be reset */
     if (frame == (sched_ctrl->ta_frame + 10) % 1024) {
       sched_ctrl->ta_apply = true; /* the timer is reset once TA CE is scheduled */
-      LOG_D(NR_MAC, "[UE %d][%d.%d] UL timing alignment procedures: setting flag for Timing Advance command\n", UE_id, frame, slot);
+      LOG_D(NR_MAC, "[UE %04x][%d.%d] UL timing alignment procedures: setting flag for Timing Advance command\n", UE->rnti, frame, slot);
     }
 
     if (sched_pdsch->rbSize <= 0)
       continue;
 
-    const rnti_t rnti = UE_info->rnti[UE_id];
+    const rnti_t rnti = UE->rnti;
     /* pre-computed PDSCH values that only change if time domain
      * allocation/DMRS parameters change. Updated in the preprocessor through
      * nr_set_pdsch_semi_static() */
@@ -1131,8 +980,8 @@ void nr_schedule_ue_spec(module_id_t module_id,
       /* PP has not selected a specific HARQ Process, get a new one */
       current_harq_pid = sched_ctrl->available_dl_harq.head;
       AssertFatal(current_harq_pid >= 0,
-                  "no free HARQ process available for UE %d\n",
-                  UE_id);
+                  "no free HARQ process available for UE %04x\n",
+                  UE->rnti);
       remove_front_nr_list(&sched_ctrl->available_dl_harq);
       sched_pdsch->dl_harq_pid = current_harq_pid;
     } else {
@@ -1152,12 +1001,11 @@ void nr_schedule_ue_spec(module_id_t module_id,
     harq->feedback_frame = pucch->frame;
     harq->feedback_slot = pucch->ul_slot;
     harq->is_waiting = true;
-    UE_info->mac_stats[UE_id].dlsch_rounds[harq->round]++;
+    UE->mac_stats.dl.rounds[harq->round]++;
     LOG_D(NR_MAC,
-          "%4d.%2d [DLSCH/PDSCH/PUCCH] UE %d RNTI %04x DCI L %d start %3d RBs %3d startSymbol %2d nb_symbol %2d dmrspos %x MCS %2d nrOfLayers %d TBS %4d HARQ PID %2d round %d RV %d NDI %d dl_data_to_ULACK %d (%d.%d) PUCCH allocation %d TPC %d\n",
+          "%4d.%2d [DLSCH/PDSCH/PUCCH] RNTI %04x DCI L %d start %3d RBs %3d startSymbol %2d nb_symbol %2d dmrspos %x MCS %2d nrOfLayers %d TBS %4d HARQ PID %2d round %d RV %d NDI %d dl_data_to_ULACK %d (%d.%d) PUCCH allocation %d TPC %d\n",
           frame,
           slot,
-          UE_id,
           rnti,
           sched_ctrl->aggregation_level,
           sched_pdsch->rbStart,
@@ -1170,7 +1018,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
           TBS,
           current_harq_pid,
           harq->round,
-          nr_rv_round_map[harq->round],
+          nr_rv_round_map[harq->round%4],
           harq->ndi,
           pucch->timing_indicator,
           pucch->frame,
@@ -1186,7 +1034,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
 
     NR_SearchSpace_t *ss = (bwp||bwpd) ? sched_ctrl->search_space : gNB_mac->sched_ctrlCommon->search_space;
 
-    const int bwpid = bwp ? bwp->bwp_Id : 0;
+    const int bwp_id = bwp ? bwp->bwp_Id : 0;
     const int coresetid = (bwp||bwpd) ? sched_ctrl->coreset->controlResourceSetId : gNB_mac->sched_ctrlCommon->coreset->controlResourceSetId;
 
     /* look up the PDCCH PDU for this CC, BWP, and CORESET. If it does not exist, create it */
@@ -1200,7 +1048,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
       dl_tti_pdcch_pdu->PDUSize = (uint8_t)(2+sizeof(nfapi_nr_dl_tti_pdcch_pdu));
       dl_req->nPDUs += 1;
       pdcch_pdu = &dl_tti_pdcch_pdu->pdcch_pdu.pdcch_pdu_rel15;
-      LOG_D(NR_MAC,"Trying to configure DL pdcch for UE %d, bwp %d, cs %d\n",UE_id,bwpid,coresetid);
+      LOG_D(NR_MAC,"Trying to configure DL pdcch for UE %04x, bwp %d, cs %d\n", UE->rnti, bwp_id, coresetid);
       NR_ControlResourceSet_t *coreset = (bwp||bwpd)? sched_ctrl->coreset:gNB_mac->sched_ctrlCommon->coreset;
       nr_configure_pdcch(pdcch_pdu, coreset, genericParameters, &sched_ctrl->sched_pdcch);
       gNB_mac->pdcch_pdu_idx[CC_id][coresetid] = pdcch_pdu;
@@ -1232,13 +1080,14 @@ void nr_schedule_ue_spec(module_id_t module_id,
     pdsch_pdu->CyclicPrefix = genericParameters->cyclicPrefix ? *genericParameters->cyclicPrefix : 0;
     // Codeword information
     pdsch_pdu->NrOfCodewords = 1;
+    //number of information bits per 1024 coded bits expressed in 0.1 bit units
     pdsch_pdu->targetCodeRate[0] = R;
     pdsch_pdu->qamModOrder[0] = Qm;
     pdsch_pdu->mcsIndex[0] = sched_pdsch->mcs;
     pdsch_pdu->mcsTable[0] = ps->mcsTableIdx;
     AssertFatal(harq!=NULL,"harq is null\n");
-    AssertFatal(harq->round<4,"%d",harq->round);
-    pdsch_pdu->rvIndex[0] = nr_rv_round_map[harq->round];
+    AssertFatal(harq->round<gNB_mac->dl_bler.harq_round_max,"%d",harq->round);
+    pdsch_pdu->rvIndex[0] = nr_rv_round_map[harq->round%4];
     pdsch_pdu->TBSize[0] = TBS;
     pdsch_pdu->dataScramblingId = *scc->physCellId;
     pdsch_pdu->nrOfLayers = nrOfLayers;
@@ -1259,6 +1108,27 @@ void nr_schedule_ue_spec(module_id_t module_id,
     // Resource Allocation in time domain
     pdsch_pdu->StartSymbolIndex = ps->startSymbolIndex;
     pdsch_pdu->NrOfSymbols = ps->nrOfSymbols;
+    // Precoding
+    if (sched_ctrl->set_pmi) {
+      const int report_id = sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.csi_report_id;
+      nr_csi_report_t *csi_report = &UE->csi_report_template[report_id];
+      pdsch_pdu->precodingAndBeamforming.prg_size = pdsch_pdu->rbSize;
+      pdsch_pdu->precodingAndBeamforming.prgs_list[0].pm_idx = set_pm_index(sched_ctrl,
+                                                                            nrOfLayers,
+                                                                            csi_report->N1,
+                                                                            csi_report->N2,
+                                                                            gNB_mac->xp_pdsch_antenna_ports,
+                                                                            csi_report->codebook_mode);
+    }
+    // TBS_LBRM according to section 5.4.2.1 of 38.212
+    long maxMIMO_Layers = cg && cg->spCellConfig && cg->spCellConfig->spCellConfigDedicated ? *cg->spCellConfig->spCellConfigDedicated->pdsch_ServingCellConfig->choice.setup->ext1->maxMIMO_Layers : 1;
+    int nl_tbslbrm = maxMIMO_Layers < 4 ? maxMIMO_Layers : 4;
+    // Maximum number of PRBs across all configured DL BWPs
+    int bw_tbslbrm = get_bw_tbslbrm(genericParameters, cg);
+    pdsch_pdu->maintenance_parms_v3.tbSizeLbrmBytes = nr_compute_tbslbrm(ps->mcsTableIdx,
+                                                                         bw_tbslbrm,
+                                                                         nl_tbslbrm);
+
     NR_PDSCH_Config_t *pdsch_Config=NULL;
 
     if (bwp &&
@@ -1312,19 +1182,18 @@ void nr_schedule_ue_spec(module_id_t module_id,
     dci_pdu_rel15_t dci_payload;
     memset(&dci_payload, 0, sizeof(dci_pdu_rel15_t));
     // bwp indicator
-    const int n_dl_bwp = bwp ? UE_info->CellGroup[UE_id]->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.count : 0;
-    AssertFatal(n_dl_bwp <= 1, "downlinkBWP_ToAddModList has %d BWP!\n", n_dl_bwp);
+    const int n_dl_bwp = bwp ? cg->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.count : 0;
+    AssertFatal(n_dl_bwp <= NR_MAX_NUM_BWP, "downlinkBWP_ToAddModList has %d BWP!\n", n_dl_bwp);
+
     // as per table 7.3.1.1.2-1 in 38.212
     dci_payload.bwp_indicator.val = bwp ? (n_dl_bwp < 4 ? bwp->bwp_Id : bwp->bwp_Id - 1) : 0;
 
     if (bwp) AssertFatal(bwp->bwp_Dedicated->pdsch_Config->choice.setup->resourceAllocation == NR_PDSCH_Config__resourceAllocation_resourceAllocationType1,
                            "Only frequency resource allocation type 1 is currently supported\n");
 
-    dci_payload.frequency_domain_assignment.val =
-      PRBalloc_to_locationandbandwidth0(
-        pdsch_pdu->rbSize,
-        pdsch_pdu->rbStart,
-        pdsch_pdu->BWPSize);
+    dci_payload.frequency_domain_assignment.val = PRBalloc_to_locationandbandwidth0(pdsch_pdu->rbSize,
+                                                                                    pdsch_pdu->rbStart,
+                                                                                    pdsch_pdu->BWPSize);
     dci_payload.format_indicator = 1;
     dci_payload.time_domain_assignment.val = ps->time_domain_allocation;
     dci_payload.mcs = sched_pdsch->mcs;
@@ -1339,13 +1208,14 @@ void nr_schedule_ue_spec(module_id_t module_id,
     dci_payload.dmrs_sequence_initialization.val = pdsch_pdu->SCID;
     LOG_D(NR_MAC,
           "%4d.%2d DCI type 1 payload: freq_alloc %d (%d,%d,%d), "
-          "time_alloc %d, vrb to prb %d, mcs %d tb_scaling %d ndi %d rv %d tpc %d ti %d\n",
+          "nrOfLayers %d, time_alloc %d, vrb to prb %d, mcs %d tb_scaling %d ndi %d rv %d tpc %d ti %d\n",
           frame,
           slot,
           dci_payload.frequency_domain_assignment.val,
           pdsch_pdu->rbStart,
           pdsch_pdu->rbSize,
           pdsch_pdu->BWPSize,
+          pdsch_pdu->nrOfLayers,
           dci_payload.time_domain_assignment.val,
           dci_payload.vrb_to_prb_mapping.val,
           dci_payload.mcs,
@@ -1355,19 +1225,19 @@ void nr_schedule_ue_spec(module_id_t module_id,
           dci_payload.tpc,
           pucch->timing_indicator);
 
-
     int dci_format = ss && ss->searchSpaceType && ss->searchSpaceType->present == NR_SearchSpace__searchSpaceType_PR_ue_Specific ?
                      NR_DL_DCI_FORMAT_1_1 : NR_DL_DCI_FORMAT_1_0;
 
     const int rnti_type = NR_RNTI_C;
     fill_dci_pdu_rel15(scc,
-                       UE_info->CellGroup[UE_id],
+                       cg,
                        dci_pdu,
                        &dci_payload,
                        dci_format,
                        rnti_type,
                        pdsch_pdu->BWPSize,
-                       bwp? bwp->bwp_Id : 0,
+                       bwp ? bwp->bwp_Id : 0,
+                       coresetid,
                        gNB_mac->cset0_bwp_size);
 
     LOG_D(NR_MAC,
@@ -1381,17 +1251,16 @@ void nr_schedule_ue_spec(module_id_t module_id,
        * from RLC or encode MAC CEs. The TX_req structure is filled below
        * or copy data to FAPI structures */
       LOG_D(NR_MAC,
-            "%d.%2d DL retransmission UE %d/RNTI %04x HARQ PID %d round %d NDI %d\n",
+            "%d.%2d DL retransmission RNTI %04x HARQ PID %d round %d NDI %d\n",
             frame,
             slot,
-            UE_id,
             rnti,
             current_harq_pid,
             harq->round,
             harq->ndi);
       AssertFatal(harq->sched_pdsch.tb_size == TBS,
-                  "UE %d mismatch between scheduled TBS and buffered TB for HARQ PID %d\n",
-                  UE_id,
+                  "UE %04x mismatch between scheduled TBS and buffered TB for HARQ PID %d\n",
+                  UE->rnti,
                   current_harq_pid);
       T(T_GNB_MAC_RETRANSMISSION_DL_PDU_WITH_DATA, T_INT(module_id), T_INT(CC_id), T_INT(rnti),
         T_INT(frame), T_INT(slot), T_INT(current_harq_pid), T_INT(harq->round), T_BUFFER(harq->transportBlock, TBS));
@@ -1428,7 +1297,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
             /* limit requested number of bytes to what preprocessor specified, or
              * such that TBS is full */
             const rlc_buffer_occupancy_t ndata = min(sched_ctrl->rlc_status[lcid].bytes_in_buffer,
-                                                 bufEnd-buf-sizeof(NR_MAC_SUBHEADER_LONG));
+                                                     bufEnd-buf-sizeof(NR_MAC_SUBHEADER_LONG));
             tbs_size_t len = mac_rlc_data_req(module_id,
                                               rnti,
                                               module_id,
@@ -1449,7 +1318,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
                   lcid < 4 ? "DCCH" : "DTCH",
                   lcid,
                   ndata,
-                  bufEnd-buf-+sizeof(NR_MAC_SUBHEADER_LONG));
+                  bufEnd-buf-sizeof(NR_MAC_SUBHEADER_LONG));
 
             if (len == 0)
               break;
@@ -1463,7 +1332,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
             lcid_bytes += len;
           }
 
-          UE_info->mac_stats[UE_id].lc_bytes_tx[lcid] += lcid_bytes;
+          UE->mac_stats.dl.lc_bytes[lcid] += lcid_bytes;
         }
       } else if (get_softmodem_params()->phy_test || get_softmodem_params()->do_ra) {
         /* we will need the large header, phy-test typically allocates all
@@ -1480,6 +1349,8 @@ void nr_schedule_ue_spec(module_id_t module_id,
           header->L = htons(bufEnd-buf);
           dlsch_total_bytes += bufEnd-buf;
 
+          for (; ((intptr_t)buf) % 4; buf++)
+            *buf = lrand48() & 0xff;
           for (; buf < bufEnd - 3; buf += 4) {
             uint32_t *buf32 = (uint32_t *)buf;
             *buf32 = lrand48();
@@ -1501,23 +1372,25 @@ void nr_schedule_ue_spec(module_id_t module_id,
         buf=bufEnd;
       }
 
-      UE_info->mac_stats[UE_id].dlsch_total_bytes += TBS;
-      UE_info->mac_stats[UE_id].dlsch_current_bytes = TBS;
+      UE->mac_stats.dl.total_bytes += TBS;
+      UE->mac_stats.dl.current_bytes = TBS;
       /* save retransmission information */
       harq->sched_pdsch = *sched_pdsch;
       /* save which time allocation has been used, to be used on
        * retransmissions */
       harq->sched_pdsch.time_domain_allocation = ps->time_domain_allocation;
+      /* save nr of layers for retransmissions */
+      harq->sched_pdsch.nrOfLayers = ps->nrOfLayers;
 
       // ta command is sent, values are reset
       if (sched_ctrl->ta_apply) {
         sched_ctrl->ta_apply = false;
         sched_ctrl->ta_frame = frame;
         LOG_D(NR_MAC,
-              "%d.%2d UE %d TA scheduled, resetting TA frame\n",
+              "%d.%2d UE %04x TA scheduled, resetting TA frame\n",
               frame,
               slot,
-              UE_id);
+              UE->rnti);
       }
 
       T(T_GNB_MAC_DL_PDU_WITH_DATA, T_INT(module_id), T_INT(CC_id), T_INT(rnti),
diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
index 5f23a40106a..808fc613f1a 100644
--- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
+++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
@@ -69,7 +69,6 @@ void nr_schedule_css_dlsch_phytest(module_id_t   module_idP,
   nfapi_nr_pdu_t        *TX_req;
 
   uint16_t rnti = 0x1234;
-  
   //  int time_domain_assignment,k0;
 
   NR_ServingCellConfigCommon_t *scc=cc->ServingCellConfigCommon;
@@ -152,8 +151,6 @@ void nr_schedule_css_dlsch_phytest(module_id_t   module_idP,
 	NrOfSymbols = NrOfSymbols_tmp;
         StartSymbolIndex = StartSymbolIndex_tmp;
         mappingtype = mappingtype_tmp;
-	//	k0 = *scc->downlinkConfigCommon->initialDownlinkBWP->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList->list.array[i]->k0;
-	//	time_domain_assignment = i;
       }
     }
     AssertFatal(StartSymbolIndex>=0,"StartSymbolIndex is negative\n");
@@ -163,80 +160,9 @@ void nr_schedule_css_dlsch_phytest(module_id_t   module_idP,
                                                     scc->dmrs_TypeA_Position,
                                                     NrOfSymbols,
                                                     StartSymbolIndex,
-                                                    mappingtype, 1);
-
-    /*
-    AssertFatal(k0==0,"k0 is not zero for Initial DL BWP TimeDomain Alloc\n");
-    nr_configure_css_dci_initial(pdcch_pdu_rel15,
-				 scs, 
-				 scs, 
-				 FR, 
-				 0, 
-				 0, 
-				 0,
-				 sfn_sf, slotP,
-				 slots_per_frame,
-				 dlBWP_carrier_bandwidth);
-    
-    
-    pdu_rel15->frequency_domain_assignment = PRBalloc_to_locationandbandwidth0(pdsch_pdu_rel15->rbSize, 
-                                                                               pdsch_pdu_rel15->rbStart, 
-                                                                               dlBWP_carrier_bandwidth);
-    pdu_rel15->time_domain_assignment = time_domain_assignment;
-    
-    pdu_rel15->vrb_to_prb_mapping = 1;
-    pdu_rel15->mcs = 9;
-    pdu_rel15->tb_scaling = 1;
-    
-    pdu_rel15->ra_preamble_index = 25;
-    pdu_rel15->format_indicator = 1;
-    pdu_rel15->ndi = 1;
-    pdu_rel15->rv = 0;
-    pdu_rel15->harq_pid = 0;
-    pdu_rel15->dai = 2;
-    pdu_rel15->tpc = 2;
-    pdu_rel15->pucch_resource_indicator = 7;
-    pdu_rel15->pdsch_to_harq_feedback_timing_indicator = 7;
-    
-    LOG_D(MAC, "[gNB scheduler phytest] DCI type 1 payload: freq_alloc %d, time_alloc %d, vrb to prb %d, mcs %d tb_scaling %d ndi %d rv %d\n",
-	  pdu_rel15->frequency_domain_assignment,
-	  pdu_rel15->time_domain_assignment,
-	  pdu_rel15->vrb_to_prb_mapping,
-	  pdu_rel15->mcs,
-	  pdu_rel15->tb_scaling,
-	  pdu_rel15->ndi,
-	  pdu_rel15->rv);
-    
-    params_rel15->rnti = rnti;
-    params_rel15->rnti_type = NFAPI_NR_RNTI_C;
-    params_rel15->dci_format = NFAPI_NR_DL_DCI_FORMAT_1_0;
-    //params_rel15->aggregation_level = 1;
-    LOG_D(MAC, "DCI type 1 params: rnti %x, rnti_type %d, dci_format %d\n \
-                coreset params: mux_pattern %d, n_rb %d, n_symb %d, rb_offset %d  \n \
-                ss params : nb_ss_sets_per_slot %d, first symb %d, nb_slots %d, sfn_mod2 %d, first slot %d\n",
-	  params_rel15->rnti,
-	  params_rel15->rnti_type,
-	  params_rel15->dci_format,
-	  params_rel15->mux_pattern,
-	  params_rel15->n_rb,
-	  params_rel15->n_symb,
-	  params_rel15->rb_offset,
-	  params_rel15->nb_ss_sets_per_slot,
-	  params_rel15->first_symbol,
-	  params_rel15->nb_slots,
-	  params_rel15->sfn_mod2,
-	  params_rel15->first_slot);
-    nr_get_tbs_dl(&dl_tti_pdsch_pdu->pdsch_pdu, dl_tti_dci_pdu->dci_dl_pdu,0);
-    LOG_D(MAC, "DLSCH PDU: start PRB %d n_PRB %d start symbol %d nb_symbols %d nb_layers %d nb_codewords %d mcs %d\n",
-	  pdsch_pdu_rel15->rbStart,
-	  pdsch_pdu_rel15->rbSize,
-	  pdsch_pdu_rel15->StartSymbolIndex,
-	  pdsch_pdu_rel15->NrOfSymbols,
-	  pdsch_pdu_rel15->nrOfLayers,
-	  pdsch_pdu_rel15->NrOfCodewords,
-	  pdsch_pdu_rel15->mcsIndex[0]);
-    */
-    
+                                                    mappingtype,
+                                                    1);
+
     nr_mac->DL_req[CC_id].dl_tti_request_body.nPDUs+=2;
     
     TX_req = &nr_mac->TX_req[CC_id].pdu_list[nr_mac->TX_req[CC_id].Number_of_PDUs];
@@ -266,24 +192,21 @@ void nr_preprocessor_phytest(module_id_t module_id,
 {
   if (!is_xlsch_in_slot(dlsch_slot_bitmap, slot))
     return;
-  NR_UE_info_t *UE_info = &RC.nrmac[module_id]->UE_info;
+  NR_UE_info_t *UE = RC.nrmac[module_id]->UE_info.list[0];
   NR_ServingCellConfigCommon_t *scc = RC.nrmac[module_id]->common_channels[0].ServingCellConfigCommon;
-  const int UE_id = 0;
+  NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
   const int CC_id = 0;
-  AssertFatal(UE_info->active[UE_id],
-              "%s(): expected UE %d to be active\n",
-              __func__,
-              UE_id);
-  NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
-  const int tda = sched_ctrl->active_bwp ? RC.nrmac[module_id]->preferred_dl_tda[sched_ctrl->active_bwp->bwp_Id][slot] : 1;
+
+  const int tda = get_dl_tda(RC.nrmac[module_id], scc, slot);
   NR_pdsch_semi_static_t *ps = &sched_ctrl->pdsch_semi_static;
   ps->nrOfLayers = target_dl_Nl;
   if (ps->time_domain_allocation != tda || ps->nrOfLayers != target_dl_Nl)
-    nr_set_pdsch_semi_static(NULL, scc, UE_info->CellGroup[UE_id], sched_ctrl->active_bwp, NULL, tda, target_dl_Nl, sched_ctrl, ps);
+    nr_set_pdsch_semi_static(NULL, scc, UE->CellGroup, sched_ctrl->active_bwp, NULL, tda, target_dl_Nl,sched_ctrl , ps);
 
   /* find largest unallocated chunk */
   const int bwpSize = NRRIV2BW(sched_ctrl->active_bwp->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
   const int BWPStart = NRRIV2PRBOFFSET(sched_ctrl->active_bwp->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
+
   int rbStart = 0;
   int rbSize = 0;
   if (target_dl_bw>bwpSize)
@@ -314,7 +237,7 @@ void nr_preprocessor_phytest(module_id_t module_id,
   sched_ctrl->dl_lc_num = 1;
   const int lcid = DL_SCH_LCID_DTCH;
   sched_ctrl->dl_lc_ids[sched_ctrl->dl_lc_num - 1] = lcid;
-  const uint16_t rnti = UE_info->rnti[UE_id];
+  const uint16_t rnti = UE->rnti;
   /* update sched_ctrl->num_total_bytes so that postprocessor schedules data,
    * if available */
   sched_ctrl->rlc_status[lcid] = mac_rlc_status_ind(module_id,
@@ -340,8 +263,7 @@ void nr_preprocessor_phytest(module_id_t module_id,
   }
   AssertFatal(nr_of_candidates>0,"nr_of_candidates is 0\n");
 
-  const int cid = sched_ctrl->coreset->controlResourceSetId;
-  const uint16_t Y = get_Y(cid%3, slot, UE_info->rnti[UE_id]);
+  const uint32_t Y = get_Y(sched_ctrl->search_space, slot, UE->rnti);
 
   int CCEIndex = find_pdcch_candidate(RC.nrmac[module_id],
                                       CC_id,
@@ -352,21 +274,19 @@ void nr_preprocessor_phytest(module_id_t module_id,
                                       Y);
 
   AssertFatal(CCEIndex >= 0,
-              "%s(): could not find CCE for UE %d\n",
+              "%s(): could not find CCE for UE %04x\n",
               __func__,
-              UE_id);
+              UE->rnti);
 
   int r_pucch = nr_get_pucch_resource(sched_ctrl->coreset, sched_ctrl->active_ubwp, NULL, CCEIndex);
-  const int alloc = nr_acknack_scheduling(module_id, UE_id, frame, slot, r_pucch, 0);
+  const int alloc = nr_acknack_scheduling(module_id, UE, frame, slot, r_pucch, 0);
   if (alloc < 0) {
     LOG_D(MAC,
-          "%s(): could not find PUCCH for UE %d/%04x@%d.%d\n",
+          "%s(): could not find PUCCH for UE %04x@%d.%d\n",
           __func__,
-          UE_id,
           rnti,
           frame,
           slot);
-    RC.nrmac[module_id]->pdcch_cand[cid]--;
     return;
   }
 
@@ -388,6 +308,7 @@ void nr_preprocessor_phytest(module_id_t module_id,
   sched_pdsch->rbSize = rbSize;
 
   sched_pdsch->mcs = target_dl_mcs;
+  sched_ctrl->dl_bler_stats.mcs = target_dl_mcs; /* for logging output */
   sched_pdsch->Qm = nr_get_Qm_dl(sched_pdsch->mcs, ps->mcsTableIdx);
   sched_pdsch->R = nr_get_code_rate_dl(sched_pdsch->mcs, ps->mcsTableIdx);
   sched_pdsch->tb_size = nr_compute_tbs(sched_pdsch->Qm,
@@ -412,6 +333,7 @@ void nr_preprocessor_phytest(module_id_t module_id,
 
 uint32_t target_ul_mcs = 9;
 uint32_t target_ul_bw = 50;
+uint32_t target_ul_Nl = 1;
 uint64_t ulsch_slot_bitmap = (1 << 8);
 bool nr_ul_preprocessor_phytest(module_id_t module_id, frame_t frame, sub_frame_t slot)
 {
@@ -419,32 +341,36 @@ bool nr_ul_preprocessor_phytest(module_id_t module_id, frame_t frame, sub_frame_
   NR_COMMON_channels_t *cc = nr_mac->common_channels;
   NR_ServingCellConfigCommon_t *scc = cc->ServingCellConfigCommon;
   const int mu = scc->uplinkConfigCommon->initialUplinkBWP->genericParameters.subcarrierSpacing;
-  NR_UE_info_t *UE_info = &nr_mac->UE_info;
+  NR_UE_info_t *UE = nr_mac->UE_info.list[0];
 
-  AssertFatal(UE_info->num_UEs <= 1,
-              "%s() cannot handle more than one UE, but found %d\n",
-              __func__,
-              UE_info->num_UEs);
-  if (UE_info->num_UEs == 0)
+  AssertFatal(nr_mac->UE_info.list[1] == NULL,
+              "cannot handle more than one UE\n");
+  if (UE == NULL)
     return false;
 
-  const int UE_id = 0;
   const int CC_id = 0;
 
-  NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+  NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
 
-  const int tda = sched_ctrl->active_ubwp ? RC.nrmac[module_id]->preferred_ul_tda[sched_ctrl->active_ubwp->bwp_Id][slot] : 1;
-  if (tda < 0)
-    return false;
   const struct NR_PUSCH_TimeDomainResourceAllocationList *tdaList =
     sched_ctrl->active_ubwp->bwp_Common->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList;
-  AssertFatal(tda < tdaList->list.count,
+  const int temp_tda = get_ul_tda(nr_mac, scc, slot);
+  if (temp_tda < 0)
+    return false;
+  AssertFatal(temp_tda < tdaList->list.count,
               "time domain assignment %d >= %d\n",
-              tda,
+              temp_tda,
               tdaList->list.count);
-  int K2 = get_K2(scc,NULL,sched_ctrl->active_ubwp, tda, mu);
+  int K2 = get_K2(scc,NULL,sched_ctrl->active_ubwp, temp_tda, mu);
   const int sched_frame = frame + (slot + K2 >= nr_slots_per_frame[mu]);
   const int sched_slot = (slot + K2) % nr_slots_per_frame[mu];
+  const int tda = get_ul_tda(nr_mac, scc, sched_slot);
+  if (tda < 0)
+    return false;
+  AssertFatal(tda < tdaList->list.count,
+              "time domain assignment %d >= %d\n",
+              tda,
+              tdaList->list.count);
   /* check if slot is UL, and that slot is 8 (assuming K2=6 because of UE
    * limitations).  Note that if K2 or the TDD configuration is changed, below
    * conditions might exclude each other and never be true */
@@ -455,15 +381,19 @@ bool nr_ul_preprocessor_phytest(module_id_t module_id, frame_t frame, sub_frame_
                   sched_ctrl->search_space->searchSpaceType->present == NR_SearchSpace__searchSpaceType_PR_ue_Specific) ?
                     sched_ctrl->search_space->searchSpaceType->choice.ue_Specific->dci_Formats : 0;
   const int dci_format = f ? NR_UL_DCI_FORMAT_0_1 : NR_UL_DCI_FORMAT_0_0;
-  const uint8_t num_dmrs_cdm_grps_no_data = 1;
+  uint8_t num_dmrs_cdm_grps_no_data = 1;
+  if ((target_ul_Nl==4)||(target_ul_Nl==3))
+    num_dmrs_cdm_grps_no_data = 2;
+  
   /* we want to avoid a lengthy deduction of DMRS and other parameters in
    * every TTI if we can save it, so check whether dci_format, TDA, or
    * num_dmrs_cdm_grps_no_data has changed and only then recompute */
   NR_pusch_semi_static_t *ps = &sched_ctrl->pusch_semi_static;
   if (ps->time_domain_allocation != tda
       || ps->dci_format != dci_format
+      || ps->nrOfLayers != target_ul_Nl
       || ps->num_dmrs_cdm_grps_no_data != num_dmrs_cdm_grps_no_data)
-    nr_set_pusch_semi_static(NULL, scc, sched_ctrl->active_ubwp, NULL,dci_format, tda, num_dmrs_cdm_grps_no_data, ps);
+    nr_set_pusch_semi_static(NULL, scc, sched_ctrl->active_ubwp, NULL,dci_format, tda, num_dmrs_cdm_grps_no_data,target_ul_Nl,ps);
 
   uint16_t rbStart = 0;
   uint16_t rbSize;
@@ -508,8 +438,7 @@ bool nr_ul_preprocessor_phytest(module_id_t module_id, frame_t frame, sub_frame_
   }
   AssertFatal(nr_of_candidates>0,"nr_of_candidates is 0\n");
 
-  const int cid = sched_ctrl->coreset->controlResourceSetId;
-  const uint16_t Y = get_Y(cid%3, slot, UE_info->rnti[UE_id]);
+  const uint32_t Y = get_Y(sched_ctrl->search_space, slot, UE->rnti);
 
   int CCEIndex = find_pdcch_candidate(nr_mac,
                                       CC_id,
@@ -521,7 +450,6 @@ bool nr_ul_preprocessor_phytest(module_id_t module_id, frame_t frame, sub_frame_
 
   if (CCEIndex < 0) {
     LOG_E(MAC, "%s(): CCE list not empty, couldn't schedule PUSCH\n", __func__);
-    nr_mac->pdcch_cand[cid]--;
     return false;
   }
 
@@ -530,12 +458,14 @@ bool nr_ul_preprocessor_phytest(module_id_t module_id, frame_t frame, sub_frame_
   const int mcs = target_ul_mcs;
   NR_sched_pusch_t *sched_pusch = &sched_ctrl->sched_pusch;
   sched_pusch->mcs = mcs;
+  sched_ctrl->ul_bler_stats.mcs = mcs; /* for logging output */
   sched_pusch->rbStart = rbStart;
   sched_pusch->rbSize = rbSize;
   /* get the PID of a HARQ process awaiting retransmission, or -1 for "any new" */
   sched_pusch->ul_harq_pid = sched_ctrl->retrans_ul_harq.head;
 
   /* Calculate TBS from MCS */
+  ps->nrOfLayers = target_ul_Nl;
   sched_pusch->R = nr_get_code_rate_ul(mcs, ps->mcs_table);
   sched_pusch->Qm = nr_get_Qm_ul(mcs, ps->mcs_table);
   if (ps->pusch_Config->tp_pi2BPSK
@@ -550,7 +480,7 @@ bool nr_ul_preprocessor_phytest(module_id_t module_id, frame_t frame, sub_frame_
                                         ps->N_PRB_DMRS * ps->num_dmrs_symb,
                                         0, // nb_rb_oh
                                         0,
-                                        1 /* NrOfLayers */)
+                                        ps->nrOfLayers /* NrOfLayers */)
                          >> 3;
 
   /* mark the corresponding RBs as used */
diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
index 3f7a908395d..4023c4ed4e1 100644
--- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
@@ -113,18 +113,18 @@ uint8_t nr_ss_first_symb_idx_scs_120_120_mux3[4] = {4,8,2,6};
 uint8_t nr_max_number_of_candidates_per_slot[4] = {44, 36, 22, 20};
 uint8_t nr_max_number_of_cces_per_slot[4] = {56, 56, 48, 32};
 
-// CQI TABLES
+// CQI TABLES (10 times the value in 214 to adequately compare with R)
 // Table 1 (38.214 5.2.2.1-2)
-uint16_t cqi_table1[16][2] = {{0,0},{2,78},{2,120},{2,193},{2,308},{2,449},{2,602},{4,378},
-                              {4,490},{4,616},{6,466},{6,567},{6,666},{6,772},{6,873},{6,948}};
+uint16_t cqi_table1[16][2] = {{0,0},{2,780},{2,1200},{2,1930},{2,3080},{2,4490},{2,6020},{4,3780},
+                              {4,4900},{4,6160},{6,4660},{6,5670},{6,6660},{6,7720},{6,8730},{6,9480}};
 
 // Table 2 (38.214 5.2.2.1-3)
-uint16_t cqi_table2[16][2] = {{0,0},{2,78},{2,193},{2,449},{4,378},{4,490},{4,616},{6,466},
-                              {6,567},{6,666},{6,772},{6,873},{8,711},{8,797},{8,885},{8,948}};
+uint16_t cqi_table2[16][2] = {{0,0},{2,780},{2,1930},{2,4490},{4,3780},{4,4900},{4,6160},{6,4660},
+                              {6,5670},{6,6660},{6,7720},{6,8730},{8,7110},{8,7970},{8,8850},{8,9480}};
 
 // Table 2 (38.214 5.2.2.1-4)
-uint16_t cqi_table3[16][2] = {{0,0},{2,30},{2,50},{2,78},{2,120},{2,193},{2,308},{2,449},
-                              {2,602},{4,378},{4,490},{4,616},{6,466},{6,567},{6,666},{6,772}};
+uint16_t cqi_table3[16][2] = {{0,0},{2,300},{2,500},{2,780},{2,1200},{2,1930},{2,3080},{2,4490},
+                              {2,6020},{4,3780},{4,4900},{4,6160},{6,4660},{6,5670},{6,6660},{6,7720}};
 
 
 static inline uint8_t get_max_candidates(uint8_t scs) {
@@ -145,50 +145,68 @@ uint8_t set_dl_nrOfLayers(NR_UE_sched_ctrl_t *sched_ctrl) {
 
 }
 
-void set_dl_mcs(NR_sched_pdsch_t *sched_pdsch,
-                NR_UE_sched_ctrl_t *sched_ctrl,
-                uint8_t *target_mcs,
-                uint8_t mcs_table_idx) {
-
-  if (sched_ctrl->set_mcs) {
-    // TODO for wideband case and multiple TB
-    int cqi_idx = sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.wb_cqi_1tb;
-    uint16_t target_coderate,target_qm;
-    if (cqi_idx>0) {
-      int cqi_table = sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.cqi_table;
-      if (cqi_table != mcs_table_idx) 
-       LOG_W(NR_MAC,"Indices of MCS tables don't correspond yet, cri_ri_li_pmi_cqi_report.cqi_table %d, mcs_table_index %d\n",cqi_table,mcs_table_idx);
-      switch (cqi_table) {
-        case 0:
-          target_qm = cqi_table1[cqi_idx][0];
-          target_coderate = cqi_table1[cqi_idx][1];
-          break;
-        case 1:
-          target_qm = cqi_table2[cqi_idx][0];
-          target_coderate = cqi_table2[cqi_idx][1];
-          break;
-        case 2:
-          target_qm = cqi_table3[cqi_idx][0];
-          target_coderate = cqi_table3[cqi_idx][1];
-          break;
-        default:
-          AssertFatal(1==0,"Invalid cqi table index %d\n",cqi_table);
-      }
-      int max_mcs = 28;
-      int R,Qm;
-      if (mcs_table_idx == 1)
-        max_mcs = 27;
-      for (int i=0; i<=max_mcs; i++) {
-        R = nr_get_code_rate_dl(i, mcs_table_idx);
-        Qm = nr_get_Qm_dl(i, mcs_table_idx);
-        if ((Qm == target_qm) && (target_coderate <= R)) {
-          *target_mcs = i;
-          break;
-        }
-      }
-    }
-    sched_ctrl->set_mcs = FALSE;
+uint16_t set_pm_index(NR_UE_sched_ctrl_t *sched_ctrl,
+                      int layers,
+                      int N1, int N2,
+                      int xp_pdsch_antenna_ports,
+                      int codebook_mode) {
+
+  int antenna_ports = (N1*N2)<<1;
+  if (xp_pdsch_antenna_ports == 1 &&
+      antenna_ports>1)
+    return 0; //identity matrix (basic 5G configuration handled by PMI report is with XP antennas)
+
+  int x1 = sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.pmi_x1;
+  int x2 = sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.pmi_x2;
+  LOG_D(NR_MAC,"PMI report: x1 %d x2 %d\n",x1,x2);
+
+  sched_ctrl->set_pmi = false;
+
+  if (antenna_ports == 2)
+    return x2;
+  else
+    AssertFatal(1==0,"More than 2 antenna ports not yet supported\n");
+}
+
+uint8_t get_mcs_from_cqi(int mcs_table, int cqi_table, int cqi_idx)
+{
+  if (cqi_idx <= 0) {
+    LOG_E(NR_MAC, "invalid cqi_idx %d, default to MCS 9\n", cqi_idx);
+    return 9;
   }
+
+  if (mcs_table != cqi_table) {
+    LOG_E(NR_MAC, "indices of CQI (%d) and MCS (%d) tables don't correspond yet\n", cqi_table, mcs_table);
+    return 9;
+  }
+
+  uint16_t target_coderate, target_qm;
+  switch (cqi_table) {
+    case 0:
+      target_qm = cqi_table1[cqi_idx][0];
+      target_coderate = cqi_table1[cqi_idx][1];
+      break;
+    case 1:
+      target_qm = cqi_table2[cqi_idx][0];
+      target_coderate = cqi_table2[cqi_idx][1];
+      break;
+    case 2:
+      target_qm = cqi_table3[cqi_idx][0];
+      target_coderate = cqi_table3[cqi_idx][1];
+      break;
+    default:
+      AssertFatal(1==0,"Invalid cqi table index %d\n",cqi_table);
+  }
+  const int max_mcs = mcs_table == 1 ? 27 : 28;
+  for (int i = 0; i <= max_mcs; i++) {
+    const int R = nr_get_code_rate_dl(i, mcs_table);
+    const int Qm = nr_get_Qm_dl(i, mcs_table);
+    if (Qm == target_qm && target_coderate <= R)
+      return i;
+  }
+
+  LOG_E(NR_MAC, "could not find maximum MCS from cqi_idx %d, default to 9\n", cqi_idx);
+  return 9;
 }
 
 void set_dl_dmrs_ports(NR_pdsch_semi_static_t *ps) {
@@ -270,7 +288,7 @@ NR_PDSCH_TimeDomainResourceAllocationList_t *get_pdsch_TimeDomainAllocationList(
 }
 
 
-NR_ControlResourceSet_t *get_coreset(module_id_t module_idP,
+NR_ControlResourceSet_t *get_coreset(gNB_MAC_INST *nrmac,
                                      NR_ServingCellConfigCommon_t *scc,
                                      void *bwp,
                                      NR_SearchSpace_t *ss,
@@ -280,7 +298,7 @@ NR_ControlResourceSet_t *get_coreset(module_id_t module_idP,
   if (ss_type == NR_SearchSpace__searchSpaceType_PR_common) { // common search space
     NR_ControlResourceSet_t *coreset;
     if(coreset_id == 0) {
-      coreset =  RC.nrmac[module_idP]->sched_ctrlCommon->coreset; // this is coreset 0
+      coreset =  nrmac->sched_ctrlCommon->coreset; // this is coreset 0
     } else if (bwp) {
       coreset = ((NR_BWP_Downlink_t*)bwp)->bwp_Common->pdcch_ConfigCommon->choice.setup->commonControlResourceSet;
     } else if (scc->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->commonControlResourceSet) {
@@ -422,36 +440,17 @@ NR_sched_pdcch_t set_pdcch_structure(gNB_MAC_INST *gNB_mac,
 }
 
 
-int cce_to_reg_interleaving(const int R, int k, int n_shift, const int C, int L, const int N_regs) {
-
-  int f;  // interleaving function
-  if(R==0)
-    f = k;
-  else {
-    int c = k/R;
-     int r = k%R;
-     f = (r*C + c + n_shift)%(N_regs/L);
-  }
-  return f;
-}
-
 int find_pdcch_candidate(gNB_MAC_INST *mac,
                          int cc_id,
                          int aggregation,
                          int nr_of_candidates,
                          NR_sched_pdcch_t *pdcch,
                          NR_ControlResourceSet_t *coreset,
-                         uint16_t Y){
+                         uint32_t Y){
 
   uint16_t *vrb_map = mac->common_channels[cc_id].vrb_map;
-  const int next_cand = mac->pdcch_cand[coreset->controlResourceSetId];
   const int N_ci = 0;
 
-  if(next_cand>=nr_of_candidates) {
-    LOG_D(NR_MAC,"No more available candidates for this coreset\n");
-    return -1;
-  }
-
   const int N_rb = pdcch->n_rb;  // nb of rbs of coreset per symbol
   const int N_symb = coreset->duration; // nb of coreset symbols
   const int N_regs = N_rb*N_symb; // nb of REGs per coreset
@@ -463,9 +462,10 @@ int find_pdcch_candidate(gNB_MAC_INST *mac,
 
   // loop over all the available candidates
   // this implements TS 38.211 Sec. 7.3.2.2
-  for(int m=next_cand; m<nr_of_candidates; m++) { // loop over candidates
+  for(int m=0; m<nr_of_candidates; m++) { // loop over candidates
     bool taken = false; // flag if the resource for a given candidate are taken
     int first_cce = aggregation * (( Y + CEILIDIV((m*N_cces),(aggregation*nr_of_candidates)) + N_ci ) % CEILIDIV(N_cces,aggregation));
+    LOG_D(NR_MAC,"Candidate %d of %d first_cce %d (L %d N_cces %d Y %d)\n", m, nr_of_candidates, first_cce, aggregation, N_cces, Y);
     for (int j=first_cce; (j<first_cce+aggregation) && !taken; j++) { // loop over CCEs
       for (int k=6*j/L; (k<(6*j/L+6/L)) && !taken; k++) { // loop over REG bundles
         int f = cce_to_reg_interleaving(R, k, pdcch->ShiftIndex, C, L, N_regs);
@@ -477,10 +477,8 @@ int find_pdcch_candidate(gNB_MAC_INST *mac,
         }
       }
     }
-    if(!taken){
-      mac->pdcch_cand[coreset->controlResourceSetId] = m++; // using candidate m, next available is m+1
+    if(!taken)
       return first_cce;
-    }
   }
   return -1;
 }
@@ -511,7 +509,6 @@ void fill_pdcch_vrb_map(gNB_MAC_INST *mac,
   }
 }
 
-
 bool nr_find_nb_rb(uint16_t Qm,
                    uint16_t R,
                    uint8_t nrOfLayers,
@@ -572,8 +569,7 @@ void nr_set_pdsch_semi_static(const NR_SIB1_t *sib1,
 {
   bool reset_dmrs = false;
 
-  NR_BWP_DownlinkDedicated_t *bwpd;
-
+  NR_BWP_DownlinkDedicated_t *bwpd = NULL;
   if (bwp && bwp->bwp_Dedicated) {
     bwpd = bwp->bwp_Dedicated;
   } else {
@@ -600,26 +596,24 @@ void nr_set_pdsch_semi_static(const NR_SIB1_t *sib1,
   }
   LOG_D(NR_MAC,"MCS Table Index: %d\n",ps->mcsTableIdx);
 
-  NR_PDSCH_Config_t *pdsch_Config=NULL;
-  if (bwpd) pdsch_Config = bwpd->pdsch_Config->choice.setup;
+  NR_PDSCH_Config_t *pdsch_Config = NULL;
+  if (bwpd && bwpd->pdsch_Config) pdsch_Config = bwpd->pdsch_Config->choice.setup;
   LOG_D(NR_MAC,"tda %d, ps->time_domain_allocation %d,layers %d, ps->nrOfLayers %d, pdsch_config %p\n",tda,ps->time_domain_allocation,layers,ps->nrOfLayers,pdsch_Config);
-  if (ps->time_domain_allocation != tda) {
-    reset_dmrs = true;
-    ps->time_domain_allocation = tda;
-    NR_PDSCH_TimeDomainResourceAllocationList_t *tdaList = get_pdsch_TimeDomainAllocationList(bwp, scc, sib1);
-    AssertFatal(tda < tdaList->list.count, "time_domain_allocation %d>=%d\n", tda, tdaList->list.count);
-    ps->mapping_type = tdaList->list.array[tda]->mappingType;
-    if (pdsch_Config) {
-      if (ps->mapping_type == NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeB)
-        ps->dmrsConfigType = pdsch_Config->dmrs_DownlinkForPDSCH_MappingTypeB->choice.setup->dmrs_Type == NULL ? 0 : 1;
-      else
-        ps->dmrsConfigType = pdsch_Config->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_Type == NULL ? 0 : 1;
-    }
+  reset_dmrs = true;
+  ps->time_domain_allocation = tda;
+  NR_PDSCH_TimeDomainResourceAllocationList_t *tdaList = get_pdsch_TimeDomainAllocationList(bwp, scc, sib1);
+  AssertFatal(tda < tdaList->list.count, "time_domain_allocation %d>=%d\n", tda, tdaList->list.count);
+  ps->mapping_type = tdaList->list.array[tda]->mappingType;
+  if (pdsch_Config) {
+    if (ps->mapping_type == NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeB)
+      ps->dmrsConfigType = pdsch_Config->dmrs_DownlinkForPDSCH_MappingTypeB->choice.setup->dmrs_Type != NULL;
     else
-      ps->dmrsConfigType = NFAPI_NR_DMRS_TYPE1;
-    const int startSymbolAndLength = tdaList->list.array[tda]->startSymbolAndLength;
-    SLIV2SL(startSymbolAndLength, &ps->startSymbolIndex, &ps->nrOfSymbols);
+      ps->dmrsConfigType = pdsch_Config->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_Type != NULL;
   }
+  else
+    ps->dmrsConfigType = NFAPI_NR_DMRS_TYPE1;
+  const int startSymbolAndLength = tdaList->list.array[tda]->startSymbolAndLength;
+  SLIV2SL(startSymbolAndLength, &ps->startSymbolIndex, &ps->nrOfSymbols);
 
   const long f = ((bwp || bwpd) &&
                   sched_ctrl->search_space &&
@@ -643,8 +637,8 @@ void nr_set_pdsch_semi_static(const NR_SIB1_t *sib1,
     ps->nrOfLayers = 1;
   }
   else {
-    if (ps->nrOfLayers != layers ||
-        ps->numDmrsCdmGrpsNoData == 0) {
+    LOG_D(NR_MAC,"checking layers\n");
+    if (ps->nrOfLayers != layers || ps->numDmrsCdmGrpsNoData == 0) {
       reset_dmrs = true;
       ps->nrOfLayers = layers;
       set_dl_dmrs_ports(ps);
@@ -667,7 +661,9 @@ void nr_set_pusch_semi_static(const NR_SIB1_t *sib1,
                               long dci_format,
                               int tda,
                               uint8_t num_dmrs_cdm_grps_no_data,
+                              uint8_t nrOfLayers,
                               NR_pusch_semi_static_t *ps) {
+
   ps->dci_format = dci_format;
   ps->time_domain_allocation = tda;
 
@@ -709,6 +705,7 @@ void nr_set_pusch_semi_static(const NR_SIB1_t *sib1,
     num_dmrs_cdm_grps_no_data = 2; // in case of transform precoding - no Data sent in DMRS symbol
   }
 
+  ps->nrOfLayers = nrOfLayers;
   ps->num_dmrs_cdm_grps_no_data = num_dmrs_cdm_grps_no_data;
 
   /* DMRS calculations */
@@ -742,6 +739,51 @@ void nr_set_pusch_semi_static(const NR_SIB1_t *sib1,
       : num_dmrs_cdm_grps_no_data * 4;
 }
 
+#define BLER_UPDATE_FRAME 10
+#define BLER_FILTER 0.9f
+int get_mcs_from_bler(const NR_bler_options_t *bler_options,
+                      const NR_mac_dir_stats_t *stats,
+                      NR_bler_stats_t *bler_stats,
+                      int max_mcs,
+                      frame_t frame)
+{
+  /* first call: everything is zero. Initialize to sensible default */
+  if (bler_stats->last_frame == 0 && bler_stats->mcs == 0) {
+    bler_stats->last_frame = frame;
+    bler_stats->mcs = 9;
+    bler_stats->bler = (bler_options->lower + bler_options->upper) / 2.0f;
+  }
+  int diff = frame - bler_stats->last_frame;
+  if (diff < 0) // wrap around
+    diff += 1024;
+
+  max_mcs = min(max_mcs, bler_options->max_mcs);
+  const uint8_t old_mcs = min(bler_stats->mcs, max_mcs);
+  if (diff < BLER_UPDATE_FRAME)
+    return old_mcs; // no update
+
+  // last update is longer than x frames ago
+  const int dtx = (int)(stats->rounds[0] - bler_stats->rounds[0]);
+  const int dretx = (int)(stats->rounds[1] - bler_stats->rounds[1]);
+  const float bler_window = dtx > 0 ? (float) dretx / dtx : bler_stats->bler;
+  bler_stats->bler = BLER_FILTER * bler_stats->bler + (1 - BLER_FILTER) * bler_window;
+
+  int new_mcs = old_mcs;
+  if (bler_stats->bler < bler_options->lower && old_mcs < max_mcs && dtx > 9)
+    new_mcs += 1;
+  else if ((bler_stats->bler > bler_options->upper && old_mcs > 6) // above threshold
+      || (dtx <= 3 && old_mcs > 9))                                // no activity
+    new_mcs -= 1;
+  // else we are within threshold boundaries
+
+  bler_stats->last_frame = frame;
+  bler_stats->mcs = new_mcs;
+  memcpy(bler_stats->rounds, stats->rounds, sizeof(stats->rounds));
+  LOG_D(MAC, "frame %4d MCS %d -> %d (dtx %d, dretx %d, BLER wnd %.3f avg %.6f)\n",
+        frame, old_mcs, new_mcs, dtx, dretx, bler_window, bler_stats->bler);
+  return new_mcs;
+}
+
 void nr_configure_css_dci_initial(nfapi_nr_dl_tti_pdcch_pdu_rel15_t* pdcch_pdu,
 				  nr_scs_e scs_common,
 				  nr_scs_e pdcch_scs,
@@ -1009,8 +1051,16 @@ void config_uldci(const NR_SIB1_t *sib1,
                     "Non Codebook configuration non supported\n");
         dci_pdu_rel15->srs_resource_indicator.val = 0; // taking resource 0 for SRS
       }
+      dci_pdu_rel15->precoding_information.val= 0;
+      if (pusch_pdu->nrOfLayers == 2)
+        dci_pdu_rel15->precoding_information.val = 4;
+      else if (pusch_pdu->nrOfLayers == 4)
+        dci_pdu_rel15->precoding_information.val = 11;
+
+      // antenna_ports.val = 0 for transform precoder is disabled, dmrs-Type=1, maxLength=1, Rank=1/2/3/4
       // Antenna Ports
-      dci_pdu_rel15->antenna_ports.val = 0; // TODO for now it is hardcoded, it should depends on cdm group no data and rank
+      dci_pdu_rel15->antenna_ports.val = 0;
+
       // DMRS sequence initialization
       dci_pdu_rel15->dmrs_sequence_initialization.val = pusch_pdu->scid;
       break;
@@ -1019,11 +1069,14 @@ void config_uldci(const NR_SIB1_t *sib1,
   }
 
   LOG_D(NR_MAC,
-        "%s() ULDCI type 0 payload: freq_alloc %d, time_alloc %d, freq_hop_flag %d, mcs %d tpc %d ndi %d rv %d\n",
+        "%s() ULDCI type 0 payload: dci_format %d, freq_alloc %d, time_alloc %d, freq_hop_flag %d, precoding_information.val %d antenna_ports.val %d mcs %d tpc %d ndi %d rv %d\n",
         __func__,
+        dci_format,
         dci_pdu_rel15->frequency_domain_assignment.val,
         dci_pdu_rel15->time_domain_assignment.val,
         dci_pdu_rel15->frequency_hopping_flag.val,
+        dci_pdu_rel15->precoding_information.val,
+        dci_pdu_rel15->antenna_ports.val,
         dci_pdu_rel15->mcs,
         dci_pdu_rel15->tpc,
         dci_pdu_rel15->ndi,
@@ -1043,8 +1096,6 @@ int nr_get_default_pucch_res(int pucch_ResourceCommon) {
   return(default_pucch_csset[pucch_ResourceCommon]);
 }
 
-
-
 void nr_configure_pdcch(nfapi_nr_dl_tti_pdcch_pdu_rel15_t *pdcch_pdu,
                         NR_ControlResourceSet_t *coreset,
                         NR_BWP_t *bwp,
@@ -1062,7 +1113,7 @@ void nr_configure_pdcch(nfapi_nr_dl_tti_pdcch_pdu_rel15_t *pdcch_pdu,
   for (int i=0;i<6;i++)
     pdcch_pdu->FreqDomainResource[i] = coreset->frequencyDomainResources.buf[i];
 
-  LOG_D(MAC,"Coreset : BWPstart %d, BWPsize %d, SCS %d, freq %x, , duration %d,  \n",
+  LOG_D(MAC,"Coreset : BWPstart %d, BWPsize %d, SCS %d, freq %x, , duration %d\n",
         pdcch_pdu->BWPStart,pdcch_pdu->BWPSize,(int)pdcch_pdu->SubcarrierSpacing,(int)coreset->frequencyDomainResources.buf[0],(int)coreset->duration);
 
   pdcch_pdu->CceRegMappingType = pdcch->CceRegMappingType;
@@ -1385,7 +1436,6 @@ void set_r_pucch_parms(int rsetindex,
   *start_symbol_index = default_pucch_firstsymb[rsetindex];
 }
 
-
 void prepare_dci(const NR_CellGroupConfig_t *CellGroup,
                  dci_pdu_rel15_t *dci_pdu_rel15,
                  nr_dci_format_t format,
@@ -1486,12 +1536,13 @@ void fill_dci_pdu_rel15(const NR_ServingCellConfigCommon_t *scc,
                         int rnti_type,
                         int N_RB,
                         int bwp_id,
+                        NR_ControlResourceSetId_t coreset_id,
                         uint16_t cset0_bwp_size) {
   uint8_t fsize = 0, pos = 0;
 
   uint64_t *dci_pdu = (uint64_t *)pdcch_dci_pdu->Payload;
   *dci_pdu=0;
-  int dci_size = nr_dci_size(scc->downlinkConfigCommon->initialDownlinkBWP,scc->uplinkConfigCommon->initialUplinkBWP, CellGroup, dci_pdu_rel15, dci_format, rnti_type, N_RB, bwp_id, cset0_bwp_size);
+  int dci_size = nr_dci_size(scc->downlinkConfigCommon->initialDownlinkBWP,scc->uplinkConfigCommon->initialUplinkBWP, CellGroup, dci_pdu_rel15, dci_format, rnti_type, N_RB, bwp_id, coreset_id, cset0_bwp_size);
   pdcch_dci_pdu->PayloadSizeBits = dci_size;
   AssertFatal(dci_size <= 64, "DCI sizes above 64 bits not yet supported");
   if (dci_format == NR_DL_DCI_FORMAT_1_1 || dci_format == NR_UL_DCI_FORMAT_0_1)
@@ -2059,10 +2110,11 @@ int extract_length(int startSymbolAndLength) {
 /*
  * Dump the UL or DL UE_info into LOG_T(MAC)
  */
-void dump_nr_list(NR_list_t *listP)
+void dump_nr_list(NR_UE_info_t **list)
 {
-  for (int j = listP->head; j >= 0; j = listP->next[j])
-    LOG_T(NR_MAC, "NR list node %d => %d\n", j, listP->next[j]);
+  UE_iterator(list, UE) {
+    LOG_T(NR_MAC, "NR list UEs rntis %04x\n", (*list)->rnti);
+  }
 }
 
 /*
@@ -2146,16 +2198,7 @@ void remove_nr_list(NR_list_t *listP, int id)
     prev = cur;
     cur = &listP->next[*cur];
   }
-  if (*cur == -1) {
-     cur = &listP->head;
-     prev=&listP->head;
-     while (*cur != -1 && *cur != id) {
-       LOG_I(NR_MAC,"remove_nr_list : id %d, *cur %d\n",id,*cur);
-       prev = cur;
-       cur = &listP->next[*cur];
-     }
-     AssertFatal(1==0, "ID %d not found in UE_list\n", id);
-  }
+  AssertFatal(*cur != -1, "ID %d not found in UE_list\n", id);
   int *next = &listP->next[*cur];
   *cur = listP->next[*cur];
   *next = -1;
@@ -2200,35 +2243,17 @@ void remove_front_nr_list(NR_list_t *listP)
     listP->tail = -1;
 }
 
-int find_nr_UE_id(module_id_t mod_idP, rnti_t rntiP)
-//------------------------------------------------------------------------------
+NR_UE_info_t *find_nr_UE(NR_UEs_t *UEs, rnti_t rntiP)
 {
-  int UE_id;
-  NR_UE_info_t *UE_info = &RC.nrmac[mod_idP]->UE_info;
 
-  for (UE_id = 0; UE_id < MAX_MOBILES_PER_GNB; UE_id++) {
-    if (UE_info->active[UE_id]) {
-      if (UE_info->rnti[UE_id] == rntiP) {
-        return UE_id;
-      }
+  UE_iterator(UEs->list, UE) {
+    if (UE->rnti == rntiP) {
+      LOG_D(NR_MAC,"Search and found rnti: %04x\n", rntiP);
+      return UE;
     }
   }
-
-  return -1;
-}
-
-uint16_t get_Y(int cid, int slot, rnti_t rnti) {
-
-  const int A[3] = {39827, 39829, 39839};
-  const int D = 65537;
-  int Y;
-
-  Y = (A[cid] * rnti) % D;
-
-  for (int s = 0; s < slot; s++)
-    Y = (A[cid] * Y) % D;
-
-  return Y;
+  LOG_W(NR_MAC,"Search for not existing rnti (ignore for RA): %04x\n", rntiP);
+  return NULL;
 }
 
 int find_nr_RA_id(module_id_t mod_idP, int CC_idP, rnti_t rntiP) {
@@ -2287,42 +2312,86 @@ int get_ul_bwp_id(const NR_ServingCellConfig_t *servingCellConfig)
     return 1;
 }
 
+/* hack data to remove UE in the phy */
+int rnti_to_remove[10];
+volatile int rnti_to_remove_count;
+pthread_mutex_t rnti_to_remove_mutex = PTHREAD_MUTEX_INITIALIZER;
+
+void delete_nr_ue_data(NR_UE_info_t *UE, NR_COMMON_channels_t *ccPtr)
+{
+  NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
+  destroy_nr_list(&sched_ctrl->available_dl_harq);
+  destroy_nr_list(&sched_ctrl->feedback_dl_harq);
+  destroy_nr_list(&sched_ctrl->retrans_dl_harq);
+  destroy_nr_list(&sched_ctrl->available_ul_harq);
+  destroy_nr_list(&sched_ctrl->feedback_ul_harq);
+  destroy_nr_list(&sched_ctrl->retrans_ul_harq);
+  LOG_I(NR_MAC, "Remove NR rnti 0x%04x\n", UE->rnti);
+  const rnti_t rnti = UE->rnti;
+  free(UE);
+  /* hack to remove UE in the phy */
+  if (pthread_mutex_lock(&rnti_to_remove_mutex))
+    exit(1);
+  if (rnti_to_remove_count == 10)
+    exit(1);
+  rnti_to_remove[rnti_to_remove_count] = rnti;
+  LOG_W(NR_MAC, "to remove in mac rnti_to_remove[%d] = 0x%04x\n", rnti_to_remove_count, rnti);
+  rnti_to_remove_count++;
+  if (pthread_mutex_unlock(&rnti_to_remove_mutex))
+    exit(1);
+
+  /* clear RA process(es?) associated to the UE */
+  for (int cc_id = 0; cc_id < NFAPI_CC_MAX; cc_id++) {
+    for (int i = 0; i < NR_NB_RA_PROC_MAX; i++) {
+      NR_COMMON_channels_t *cc = &ccPtr[cc_id];
+      if (cc->ra[i].rnti == rnti) {
+        LOG_D(NR_MAC, "free RA process %d for rnti %04x\n", i, rnti);
+        /* is it enough? */
+        cc->ra[i].cfra  = false;
+        cc->ra[i].rnti  = 0;
+        cc->ra[i].crnti = 0;
+      }
+    }
+  }
+}
+
 //------------------------------------------------------------------------------
-int add_new_nr_ue(module_id_t mod_idP, rnti_t rntiP, NR_CellGroupConfig_t *CellGroup)
+NR_UE_info_t *add_new_nr_ue(gNB_MAC_INST *nr_mac, rnti_t rntiP, NR_CellGroupConfig_t *CellGroup)
 {
-  gNB_MAC_INST *nr_mac = RC.nrmac[mod_idP];
   NR_ServingCellConfigCommon_t *scc = nr_mac->common_channels[0].ServingCellConfigCommon;
-  NR_UE_info_t *UE_info = &nr_mac->UE_info;
-  LOG_I(NR_MAC, "[gNB %d] Adding UE with rnti 0x%04x (num_UEs %d)\n",
-        mod_idP,
-        rntiP,
-        UE_info->num_UEs);
-  dump_nr_list(&UE_info->list);
-
-  for (int i = 0; i < MAX_MOBILES_PER_GNB; i++) {
-    if (UE_info->active[i]) {
-      LOG_D(NR_MAC,"UE %x is active, skipping\n",rntiP);
-      continue;
-    }
-    int UE_id = i;
-    UE_info->num_UEs++;
-    UE_info->active[UE_id] = true;
-    if (CellGroup) UE_info->Msg4_ACKed[UE_id] = true;
-    else           UE_info->Msg4_ACKed[UE_id] = false;
-    UE_info->rnti[UE_id] = rntiP;
-    UE_info->CellGroup[UE_id] = CellGroup;
-    add_nr_list(&UE_info->list, UE_id);
-    memset(&UE_info->mac_stats[UE_id], 0, sizeof(NR_mac_stats_t));
-    if (CellGroup && 
-        CellGroup->spCellConfig && 
-        CellGroup->spCellConfig->spCellConfigDedicated &&
-        CellGroup->spCellConfig->spCellConfigDedicated->csi_MeasConfig &&
-        CellGroup->spCellConfig->spCellConfigDedicated->csi_MeasConfig->choice.setup 
-        )
-      compute_csi_bitlen (CellGroup->spCellConfig->spCellConfigDedicated->csi_MeasConfig->choice.setup, UE_info, UE_id, mod_idP);
-    NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+  NR_UEs_t *UE_info = &nr_mac->UE_info;
+  LOG_I(NR_MAC, "Adding UE with rnti 0x%04x\n",
+        rntiP);
+  dump_nr_list(UE_info->list);
+
+  // We will attach at the end, to mitigate race conditions
+  // This is not good, but we will fix it progressively
+  NR_UE_info_t *UE=calloc(1,sizeof(NR_UE_info_t));
+  if(!UE) {
+    LOG_E(NR_MAC,"want to add UE %04x but the fixed allocated size is full\n",rntiP);
+    return NULL;
+  }
+
+  UE->rnti = rntiP;
+  UE->CellGroup = CellGroup;
+
+  if (CellGroup)
+    UE->Msg4_ACKed = true;
+  else
+    UE->Msg4_ACKed = false;
+
+  if (CellGroup &&
+      CellGroup->spCellConfig &&
+      CellGroup->spCellConfig->spCellConfigDedicated &&
+      CellGroup->spCellConfig->spCellConfigDedicated->csi_MeasConfig &&
+      CellGroup->spCellConfig->spCellConfigDedicated->csi_MeasConfig->choice.setup) {
+    compute_csi_bitlen(CellGroup->spCellConfig->spCellConfigDedicated->csi_MeasConfig->choice.setup, UE->csi_report_template);
+  }
+
+    NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
     memset(sched_ctrl, 0, sizeof(*sched_ctrl));
-    sched_ctrl->set_mcs = true;
+    sched_ctrl->dl_max_mcs = 28; /* do not limit MCS for individual UEs */
+    sched_ctrl->set_pmi = false;
     sched_ctrl->ta_frame = 0;
     sched_ctrl->ta_update = 31;
     sched_ctrl->ta_apply = false;
@@ -2330,7 +2399,6 @@ int add_new_nr_ue(module_id_t mod_idP, rnti_t rntiP, NR_CellGroupConfig_t *CellG
     sched_ctrl->pucch_consecutive_dtx_cnt = 0;
     sched_ctrl->pusch_consecutive_dtx_cnt = 0;
     sched_ctrl->ul_failure                = 0;
-
     sched_ctrl->sched_srs.frame = -1;
     sched_ctrl->sched_srs.slot = -1;
     sched_ctrl->sched_srs.srs_scheduled = false;
@@ -2340,11 +2408,8 @@ int add_new_nr_ue(module_id_t mod_idP, rnti_t rntiP, NR_CellGroupConfig_t *CellG
     sched_ctrl->pusch_semi_static.time_domain_allocation = -1;
     const NR_ServingCellConfig_t *servingCellConfig = CellGroup && CellGroup->spCellConfig ? CellGroup->spCellConfig->spCellConfigDedicated : NULL;
 
-    /* Set default BWPs */
-    const struct NR_ServingCellConfig__downlinkBWP_ToAddModList *bwpList = servingCellConfig ? servingCellConfig->downlinkBWP_ToAddModList : NULL;
-    if (bwpList) AssertFatal(bwpList->list.count == 1,
-			     "downlinkBWP_ToAddModList has %d BWP!\n",
-			     bwpList->list.count);
+  /* Set default BWPs */
+  const struct NR_ServingCellConfig__downlinkBWP_ToAddModList *bwpList = servingCellConfig ? servingCellConfig->downlinkBWP_ToAddModList : NULL;
 
     const int bwp_id = servingCellConfig ? *servingCellConfig->firstActiveDownlinkBWP_Id : 0;
     sched_ctrl->active_bwp = bwpList && bwp_id > 0 ? bwpList->list.array[bwp_id - 1] : NULL;
@@ -2357,26 +2422,31 @@ int add_new_nr_ue(module_id_t mod_idP, rnti_t rntiP, NR_CellGroupConfig_t *CellG
                                                scc,
                                                sched_ctrl->active_bwp ? sched_ctrl->active_bwp->bwp_Dedicated : NULL,
                                                target_ss);
-    sched_ctrl->coreset = get_coreset(mod_idP, scc,
-                                      sched_ctrl->active_bwp ? (void*)sched_ctrl->active_bwp->bwp_Dedicated : NULL,
-                                      sched_ctrl->search_space, target_ss);
-    sched_ctrl->sched_pdcch = set_pdcch_structure(RC.nrmac[mod_idP],
+  sched_ctrl->coreset = get_coreset(nr_mac,
+                                    scc,
+                                    sched_ctrl->active_bwp ? sched_ctrl->active_bwp->bwp_Dedicated : NULL,
+                                      sched_ctrl->search_space,
+                                    target_ss);
+    sched_ctrl->sched_pdcch = set_pdcch_structure(nr_mac,
                                                   sched_ctrl->search_space,
                                                   sched_ctrl->coreset,
                                                   scc,
                                                   genericParameters,
                                                   NULL);
+    sched_ctrl->next_dl_bwp_id = -1;
+    sched_ctrl->next_ul_bwp_id = -1;
     const struct NR_UplinkConfig__uplinkBWP_ToAddModList *ubwpList = servingCellConfig ? servingCellConfig->uplinkConfig->uplinkBWP_ToAddModList : NULL;
-    if (ubwpList) AssertFatal(ubwpList->list.count == 1,
-			      "uplinkBWP_ToAddModList has %d BWP!\n",
-			      ubwpList->list.count);
+    AssertFatal(ubwpList == NULL || ubwpList->list.count <= NR_MAX_NUM_BWP,
+                "uplinkBWP_ToAddModList has %d BWP!\n",
+                ubwpList->list.count);
     const int ul_bwp_id = servingCellConfig ? *servingCellConfig->uplinkConfig->firstActiveUplinkBWP_Id : 0;
     sched_ctrl->active_ubwp = ubwpList && ul_bwp_id > 0 ? ubwpList->list.array[ul_bwp_id - 1] : NULL;
 
     /* get Number of HARQ processes for this UE */
-    if (servingCellConfig) AssertFatal(servingCellConfig->pdsch_ServingCellConfig->present == NR_SetupRelease_PDSCH_ServingCellConfig_PR_setup,
-				       "no pdsch-ServingCellConfig found for UE %d\n",
-				       UE_id);
+    AssertFatal(servingCellConfig == NULL
+                || servingCellConfig->pdsch_ServingCellConfig->present == NR_SetupRelease_PDSCH_ServingCellConfig_PR_setup,
+                "no pdsch-ServingCellConfig found for UE %04x\n",
+                UE->rnti);
     const NR_PDSCH_ServingCellConfig_t *pdsch = servingCellConfig ? servingCellConfig->pdsch_ServingCellConfig->choice.setup : NULL;
     // pdsch == NULL in SA -> will create default (8) number of HARQ processes
     create_dl_harq_list(sched_ctrl, pdsch);
@@ -2387,21 +2457,27 @@ int add_new_nr_ue(module_id_t mod_idP, rnti_t rntiP, NR_CellGroupConfig_t *CellG
       add_tail_nr_list(&sched_ctrl->available_ul_harq, harq);
     create_nr_list(&sched_ctrl->feedback_ul_harq, 16);
     create_nr_list(&sched_ctrl->retrans_ul_harq, 16);
-    LOG_D(NR_MAC, "[gNB %d] Add NR UE_id %d : rnti %x\n",
-          mod_idP,
-          UE_id,
-          rntiP);
-    dump_nr_list(&UE_info->list);
-    return (UE_id);
+
+  pthread_mutex_lock(&UE_info->mutex);
+  int i;
+  for(i=0; i<MAX_MOBILES_PER_GNB; i++)
+    if (UE_info->list[i] == NULL) {
+      UE_info->list[i] = UE;
+      break;
+    }
+  if (i == MAX_MOBILES_PER_GNB) {
+    LOG_E(NR_MAC,"Try to add UE %04x but the list is full\n", rntiP);
+    delete_nr_ue_data(UE, nr_mac->common_channels);
+    pthread_mutex_unlock(&UE_info->mutex);
+    return NULL;
   }
+  pthread_mutex_unlock(&UE_info->mutex);
 
-  // printf("MAC: cannot add new UE for rnti %x\n", rntiP);
-  LOG_E(NR_MAC, "error in add_new_ue(), could not find space in UE_info, Dumping UE list\n");
-  dump_nr_list(&UE_info->list);
-  return -1;
+  LOG_D(NR_MAC, "Add NR rnti %x\n", rntiP);
+  dump_nr_list(UE_info->list);
+  return (UE);
 }
 
-
 void create_dl_harq_list(NR_UE_sched_ctrl_t *sched_ctrl,
                          const NR_PDSCH_ServingCellConfig_t *pdsch) {
   const int nrofHARQ = pdsch && pdsch->nrofHARQ_ProcessesForPDSCH ?
@@ -2434,68 +2510,70 @@ void create_dl_harq_list(NR_UE_sched_ctrl_t *sched_ctrl,
   }
 }
 
-/* hack data to remove UE in the phy */
-int rnti_to_remove[10];
-volatile int rnti_to_remove_count;
-pthread_mutex_t rnti_to_remove_mutex = PTHREAD_MUTEX_INITIALIZER;
+void reset_dl_harq_list(NR_UE_sched_ctrl_t *sched_ctrl) {
+  int harq;
+  while ((harq = sched_ctrl->feedback_dl_harq.head) >= 0) {
+    remove_front_nr_list(&sched_ctrl->feedback_dl_harq);
+    add_tail_nr_list(&sched_ctrl->available_dl_harq, harq);
+  }
 
-void mac_remove_nr_ue(module_id_t mod_id, rnti_t rnti)
-{
-  int UE_id;
-  int i;
-  int cc_id;
-  NR_UE_info_t *UE_info = &RC.nrmac[mod_id]->UE_info;
+  while ((harq = sched_ctrl->retrans_dl_harq.head) >= 0) {
+    remove_front_nr_list(&sched_ctrl->retrans_dl_harq);
+    add_tail_nr_list(&sched_ctrl->available_dl_harq, harq);
+  }
 
-  for (i = 0; i < MAX_MOBILES_PER_GNB; i++) {
+  for (int i = 0; i < NR_MAX_NB_HARQ_PROCESSES; i++) {
+    sched_ctrl->harq_processes[i].feedback_slot = -1;
+    sched_ctrl->harq_processes[i].round = 0;
+    sched_ctrl->harq_processes[i].is_waiting = false;
+  }
+}
 
-    if (UE_info->active[i] != TRUE)
-      continue;
-    if (UE_info->rnti[i] != rnti)
-      continue;
+void reset_ul_harq_list(NR_UE_sched_ctrl_t *sched_ctrl) {
+  int harq;
+  while ((harq = sched_ctrl->feedback_ul_harq.head) >= 0) {
+    remove_front_nr_list(&sched_ctrl->feedback_ul_harq);
+    add_tail_nr_list(&sched_ctrl->available_ul_harq, harq);
+  }
 
-    /* UE found, remove it */
-    UE_id = i;
-
-    UE_info->num_UEs--;
-    UE_info->active[UE_id] = FALSE;
-    UE_info->rnti[UE_id] = 0;
-    remove_nr_list(&UE_info->list, UE_id);
-    NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
-    destroy_nr_list(&sched_ctrl->available_dl_harq);
-    destroy_nr_list(&sched_ctrl->feedback_dl_harq);
-    destroy_nr_list(&sched_ctrl->retrans_dl_harq);
-    destroy_nr_list(&sched_ctrl->available_ul_harq);
-    destroy_nr_list(&sched_ctrl->feedback_ul_harq);
-    destroy_nr_list(&sched_ctrl->retrans_ul_harq);
-    LOG_I(NR_MAC, "[gNB %d] Remove NR UE_id %d: rnti 0x%04x\n",
-          mod_id,
-          UE_id,
-          rnti);
-
-    /* hack to remove UE in the phy */
-    if (pthread_mutex_lock(&rnti_to_remove_mutex)) exit(1);
-    if (rnti_to_remove_count == 10) exit(1);
-    rnti_to_remove[rnti_to_remove_count] = rnti;
-    LOG_W(NR_MAC, "to remove in mac rnti_to_remove[%d] = 0x%04x\n", rnti_to_remove_count, rnti);
-    rnti_to_remove_count++;
-    if (pthread_mutex_unlock(&rnti_to_remove_mutex)) exit(1);
+  while ((harq = sched_ctrl->retrans_ul_harq.head) >= 0) {
+    remove_front_nr_list(&sched_ctrl->retrans_ul_harq);
+    add_tail_nr_list(&sched_ctrl->available_ul_harq, harq);
   }
 
-  /* clear RA process(es?) associated to the UE */
-  for (cc_id = 0; cc_id < NFAPI_CC_MAX; cc_id++) {
-    NR_COMMON_channels_t *cc = &RC.nrmac[mod_id]->common_channels[cc_id];
-    for (i = 0; i < NR_NB_RA_PROC_MAX; i++) {
-      if (cc->ra[i].rnti == rnti) {
-        LOG_D(NR_MAC, "free RA process %d for rnti %d\n", i, rnti);
-        /* is it enough? */
-        cc->ra[i].cfra  = false;
-        cc->ra[i].rnti  = 0;
-        cc->ra[i].crnti = 0;
-      }
-    }
+  for (int i = 0; i < NR_MAX_NB_HARQ_PROCESSES; i++) {
+    sched_ctrl->ul_harq_processes[i].feedback_slot = -1;
+    sched_ctrl->ul_harq_processes[i].round = 0;
+    sched_ctrl->ul_harq_processes[i].is_waiting = false;
   }
 }
 
+void mac_remove_nr_ue(gNB_MAC_INST *nr_mac, rnti_t rnti)
+{
+ NR_UEs_t *UE_info = &nr_mac->UE_info;
+ pthread_mutex_lock(&UE_info->mutex);
+ UE_iterator(UE_info->list, UE) {
+   if (UE->rnti==rnti)
+     break;
+ }
+
+ if (!UE) {
+   LOG_W(NR_MAC,"Call to del rnti %04x, but not existing\n", rnti);
+   pthread_mutex_unlock(&UE_info->mutex);
+   return;
+ }
+
+ NR_UE_info_t * newUEs[MAX_MOBILES_PER_GNB+1]={0};
+ int newListIdx=0;
+ for (int i=0; i<MAX_MOBILES_PER_GNB; i++)
+   if(UE_info->list[i] && UE_info->list[i]->rnti != rnti)
+     newUEs[newListIdx++]=UE_info->list[i];
+ memcpy(UE_info->list, newUEs, sizeof(UE_info->list));
+ pthread_mutex_unlock(&UE_info->mutex);
+
+ delete_nr_ue_data(UE, nr_mac->common_channels);
+}
+
 void nr_mac_remove_ra_rnti(module_id_t mod_id, rnti_t rnti) {
   // Hack to remove UE in the phy (following the same procedure as in function mac_remove_nr_ue)
   if (pthread_mutex_lock(&rnti_to_remove_mutex)) exit(1);
@@ -2517,20 +2595,18 @@ uint8_t nr_get_tpc(int target, uint8_t cqi, int incr) {
 }
 
 
-void get_pdsch_to_harq_feedback(int Mod_idP,
-                                int UE_id,
+void get_pdsch_to_harq_feedback(NR_UE_info_t *UE,
                                 int bwp_id,
                                 NR_SearchSpace__searchSpaceType_PR ss_type,
                                 int *max_fb_time,
                                 uint8_t *pdsch_to_harq_feedback) {
 
-  NR_UE_info_t *UE_info = &RC.nrmac[Mod_idP]->UE_info;
-  NR_CellGroupConfig_t *CellGroup = UE_info->CellGroup[UE_id];
+  NR_CellGroupConfig_t *CellGroup = UE->CellGroup;
   NR_BWP_DownlinkDedicated_t *bwpd=NULL;
   NR_BWP_UplinkDedicated_t *ubwpd=NULL;
 
   if (ss_type == NR_SearchSpace__searchSpaceType_PR_ue_Specific) {
-    AssertFatal(CellGroup!=NULL,"Cellgroup is not defined for UE_id %d\n",UE_id);
+    AssertFatal(CellGroup!=NULL,"Cellgroup is not defined for UE %04x\n",UE->rnti);
     AssertFatal(CellGroup->spCellConfig!=NULL,"Cellgroup->spCellConfig is null\n");
     AssertFatal(CellGroup->spCellConfig->spCellConfigDedicated!=NULL,"CellGroup->spCellConfig->spCellConfigDedicated is null\n");
   }
@@ -2588,7 +2664,6 @@ void get_pdsch_to_harq_feedback(int Mod_idP,
         pdsch_to_harq_feedback[i] = i+1;
         if(pdsch_to_harq_feedback[i]>*max_fb_time)
           *max_fb_time = pdsch_to_harq_feedback[i];
-
       }
     }
     else {
@@ -2606,28 +2681,25 @@ void get_pdsch_to_harq_feedback(int Mod_idP,
   }
 }
 
-
-
 void nr_csirs_scheduling(int Mod_idP,
                          frame_t frame,
                          sub_frame_t slot,
                          int n_slots_frame){
 
   int CC_id = 0;
-  NR_UE_info_t *UE_info = &RC.nrmac[Mod_idP]->UE_info;
-  NR_list_t *UE_list = &UE_info->list;
+  NR_UEs_t *UE_info = &RC.nrmac[Mod_idP]->UE_info;
   gNB_MAC_INST *gNB_mac = RC.nrmac[Mod_idP];
   uint16_t *vrb_map = gNB_mac->common_channels[CC_id].vrb_map;
 
-  for (int UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) {
+  UE_info->sched_csirs = false;
 
-    NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+  UE_iterator(UE_info->list, UE) {
 
+    NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
     if (sched_ctrl->rrc_processing_timer > 0) {
       continue;
     }
-
-    NR_CellGroupConfig_t *CellGroup = UE_info->CellGroup[UE_id];
+    NR_CellGroupConfig_t *CellGroup = UE->CellGroup;
 
     if (!CellGroup || !CellGroup->spCellConfig || !CellGroup->spCellConfig->spCellConfigDedicated ||
 	      !CellGroup->spCellConfig->spCellConfigDedicated->csi_MeasConfig) continue;
@@ -2640,9 +2712,10 @@ void nr_csirs_scheduling(int Mod_idP,
       int period, offset;
 
       nfapi_nr_dl_tti_request_body_t *dl_req = &gNB_mac->DL_req[CC_id].dl_tti_request_body;
-      NR_BWP_t *genericParameters = sched_ctrl->active_bwp ? 
-                                    &sched_ctrl->active_bwp->bwp_Common->genericParameters:
+      NR_BWP_t *genericParameters = sched_ctrl->active_bwp ?
+                                    &sched_ctrl->active_bwp->bwp_Common->genericParameters :
                                     &gNB_mac->common_channels[0].ServingCellConfigCommon->downlinkConfigCommon->initialDownlinkBWP->genericParameters;
+
       for (int id = 0; id < csi_measconfig->nzp_CSI_RS_ResourceToAddModList->list.count; id++){
         nzpcsi = csi_measconfig->nzp_CSI_RS_ResourceToAddModList->list.array[id];
         NR_CSI_RS_ResourceMapping_t  resourceMapping = nzpcsi->resourceMapping;
@@ -2651,6 +2724,7 @@ void nr_csirs_scheduling(int Mod_idP,
         if((frame*n_slots_frame+slot-offset)%period == 0) {
 
           LOG_D(NR_MAC,"Scheduling CSI-RS in frame %d slot %d\n",frame,slot);
+          UE_info->sched_csirs = true;
 
           nfapi_nr_dl_tti_request_pdu_t *dl_tti_csirs_pdu = &dl_req->dl_tti_pdu_list[dl_req->nPDUs];
           memset((void*)dl_tti_csirs_pdu,0,sizeof(nfapi_nr_dl_tti_request_pdu_t));
@@ -2659,16 +2733,27 @@ void nr_csirs_scheduling(int Mod_idP,
 
           nfapi_nr_dl_tti_csi_rs_pdu_rel15_t *csirs_pdu_rel15 = &dl_tti_csirs_pdu->csi_rs_pdu.csi_rs_pdu_rel15;
 
-          csirs_pdu_rel15->bwp_size  = NRRIV2BW(genericParameters->locationAndBandwidth,275);
-          csirs_pdu_rel15->bwp_start = NRRIV2PRBOFFSET(genericParameters->locationAndBandwidth,275);
           csirs_pdu_rel15->subcarrier_spacing = genericParameters->subcarrierSpacing;
           if (genericParameters->cyclicPrefix)
             csirs_pdu_rel15->cyclic_prefix = *genericParameters->cyclicPrefix;
           else
             csirs_pdu_rel15->cyclic_prefix = 0;
 
-          csirs_pdu_rel15->start_rb = resourceMapping.freqBand.startingRB;
-          csirs_pdu_rel15->nr_of_rbs = resourceMapping.freqBand.nrofRBs;
+          // According to last paragraph of TS 38.214 5.2.2.3.1
+          uint16_t BWPSize = NRRIV2BW(genericParameters->locationAndBandwidth, MAX_BWP_SIZE);
+          uint16_t BWPStart = NRRIV2PRBOFFSET(genericParameters->locationAndBandwidth, MAX_BWP_SIZE);
+          if (resourceMapping.freqBand.startingRB < BWPStart) {
+            csirs_pdu_rel15->start_rb = BWPStart;
+          } else {
+            csirs_pdu_rel15->start_rb = resourceMapping.freqBand.startingRB;
+          }
+          if (resourceMapping.freqBand.nrofRBs > (BWPStart + BWPSize - csirs_pdu_rel15->start_rb)) {
+            csirs_pdu_rel15->nr_of_rbs = BWPStart + BWPSize - csirs_pdu_rel15->start_rb;
+          } else {
+            csirs_pdu_rel15->nr_of_rbs = resourceMapping.freqBand.nrofRBs;
+          }
+          AssertFatal(csirs_pdu_rel15->nr_of_rbs >= 24, "CSI-RS has %d RBs, but the minimum is 24\n", csirs_pdu_rel15->nr_of_rbs);
+
           csirs_pdu_rel15->csi_type = 1; // NZP-CSI-RS
           csirs_pdu_rel15->symb_l0 = resourceMapping.firstOFDMSymbolInTimeDomain;
           if (resourceMapping.firstOFDMSymbolInTimeDomain2)
@@ -2689,20 +2774,20 @@ void nr_csirs_scheduling(int Mod_idP,
               csirs_pdu_rel15->row = 1;
               csirs_pdu_rel15->freq_domain = ((resourceMapping.frequencyDomainAllocation.choice.row1.buf[0])>>4)&0x0f;
               for (int rb = csirs_pdu_rel15->start_rb; rb < (csirs_pdu_rel15->start_rb + csirs_pdu_rel15->nr_of_rbs); rb++)
-                vrb_map[rb+csirs_pdu_rel15->bwp_start] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 1);
+                vrb_map[rb] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 1);
               break;
             case NR_CSI_RS_ResourceMapping__frequencyDomainAllocation_PR_row2:
               csirs_pdu_rel15->row = 2;
               csirs_pdu_rel15->freq_domain = (((resourceMapping.frequencyDomainAllocation.choice.row2.buf[1]>>4)&0x0f) |
                                              ((resourceMapping.frequencyDomainAllocation.choice.row2.buf[0]<<4)&0xff0));
               for (int rb = csirs_pdu_rel15->start_rb; rb < (csirs_pdu_rel15->start_rb + csirs_pdu_rel15->nr_of_rbs); rb++)
-                vrb_map[rb+csirs_pdu_rel15->bwp_start] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 1);
+                vrb_map[rb] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 1);
               break;
             case NR_CSI_RS_ResourceMapping__frequencyDomainAllocation_PR_row4:
               csirs_pdu_rel15->row = 4;
               csirs_pdu_rel15->freq_domain = ((resourceMapping.frequencyDomainAllocation.choice.row4.buf[0])>>5)&0x07;
               for (int rb = csirs_pdu_rel15->start_rb; rb < (csirs_pdu_rel15->start_rb + csirs_pdu_rel15->nr_of_rbs); rb++)
-                vrb_map[rb+csirs_pdu_rel15->bwp_start] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 1);
+                vrb_map[rb] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 1);
               break;
             case NR_CSI_RS_ResourceMapping__frequencyDomainAllocation_PR_other:
               csirs_pdu_rel15->freq_domain = ((resourceMapping.frequencyDomainAllocation.choice.other.buf[0])>>2)&0x3f;
@@ -2714,18 +2799,18 @@ void nr_csirs_scheduling(int Mod_idP,
                 case NR_CSI_RS_ResourceMapping__nrofPorts_p2:
                   csirs_pdu_rel15->row = 3;
                   for (int rb = csirs_pdu_rel15->start_rb; rb < (csirs_pdu_rel15->start_rb + csirs_pdu_rel15->nr_of_rbs); rb++)
-                    vrb_map[rb+csirs_pdu_rel15->bwp_start] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 1);
+                    vrb_map[rb] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 1);
                   break;
                 case NR_CSI_RS_ResourceMapping__nrofPorts_p4:
                   csirs_pdu_rel15->row = 5;
                   for (int rb = csirs_pdu_rel15->start_rb; rb < (csirs_pdu_rel15->start_rb + csirs_pdu_rel15->nr_of_rbs); rb++)
-                    vrb_map[rb+csirs_pdu_rel15->bwp_start] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 2);
+                    vrb_map[rb] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 2);
                   break;
                 case NR_CSI_RS_ResourceMapping__nrofPorts_p8:
                   if (resourceMapping.cdm_Type == NR_CSI_RS_ResourceMapping__cdm_Type_cdm4_FD2_TD2) {
                     csirs_pdu_rel15->row = 8;
                     for (int rb = csirs_pdu_rel15->start_rb; rb < (csirs_pdu_rel15->start_rb + csirs_pdu_rel15->nr_of_rbs); rb++)
-                      vrb_map[rb+csirs_pdu_rel15->bwp_start] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 2);
+                      vrb_map[rb] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 2);
                   }
                   else{
                     int num_k = 0;
@@ -2734,12 +2819,12 @@ void nr_csirs_scheduling(int Mod_idP,
                     if(num_k==4) {
                       csirs_pdu_rel15->row = 6;
                       for (int rb = csirs_pdu_rel15->start_rb; rb < (csirs_pdu_rel15->start_rb + csirs_pdu_rel15->nr_of_rbs); rb++)
-                        vrb_map[rb+csirs_pdu_rel15->bwp_start] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 1);
+                        vrb_map[rb] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 1);
                     }
                     else {
                       csirs_pdu_rel15->row = 7;
                       for (int rb = csirs_pdu_rel15->start_rb; rb < (csirs_pdu_rel15->start_rb + csirs_pdu_rel15->nr_of_rbs); rb++)
-                        vrb_map[rb+csirs_pdu_rel15->bwp_start] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 2);
+                        vrb_map[rb] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 2);
                     }
                   }
                   break;
@@ -2747,12 +2832,12 @@ void nr_csirs_scheduling(int Mod_idP,
                   if (resourceMapping.cdm_Type == NR_CSI_RS_ResourceMapping__cdm_Type_cdm4_FD2_TD2) {
                     csirs_pdu_rel15->row = 10;
                     for (int rb = csirs_pdu_rel15->start_rb; rb < (csirs_pdu_rel15->start_rb + csirs_pdu_rel15->nr_of_rbs); rb++)
-                      vrb_map[rb+csirs_pdu_rel15->bwp_start] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 2);
+                      vrb_map[rb] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 2);
                   }
                   else {
                     csirs_pdu_rel15->row = 9;
                     for (int rb = csirs_pdu_rel15->start_rb; rb < (csirs_pdu_rel15->start_rb + csirs_pdu_rel15->nr_of_rbs); rb++)
-                      vrb_map[rb+csirs_pdu_rel15->bwp_start] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 1);
+                      vrb_map[rb] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 1);
                   }
                   break;
                 case NR_CSI_RS_ResourceMapping__nrofPorts_p16:
@@ -2761,24 +2846,24 @@ void nr_csirs_scheduling(int Mod_idP,
                   else
                     csirs_pdu_rel15->row = 11;
                   for (int rb = csirs_pdu_rel15->start_rb; rb < (csirs_pdu_rel15->start_rb + csirs_pdu_rel15->nr_of_rbs); rb++)
-                    vrb_map[rb+csirs_pdu_rel15->bwp_start] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 2);
+                    vrb_map[rb] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 2);
                   break;
                 case NR_CSI_RS_ResourceMapping__nrofPorts_p24:
                   if (resourceMapping.cdm_Type == NR_CSI_RS_ResourceMapping__cdm_Type_cdm4_FD2_TD2) {
                     csirs_pdu_rel15->row = 14;
                     for (int rb = csirs_pdu_rel15->start_rb; rb < (csirs_pdu_rel15->start_rb + csirs_pdu_rel15->nr_of_rbs); rb++)
-                      vrb_map[rb+csirs_pdu_rel15->bwp_start] |= (SL_to_bitmap(csirs_pdu_rel15->symb_l0, 2) | SL_to_bitmap(csirs_pdu_rel15->symb_l1, 2));
+                      vrb_map[rb] |= (SL_to_bitmap(csirs_pdu_rel15->symb_l0, 2) | SL_to_bitmap(csirs_pdu_rel15->symb_l1, 2));
                   }
                   else{
                     if (resourceMapping.cdm_Type == NR_CSI_RS_ResourceMapping__cdm_Type_cdm8_FD2_TD4) {
                       csirs_pdu_rel15->row = 15;
                       for (int rb = csirs_pdu_rel15->start_rb; rb < (csirs_pdu_rel15->start_rb + csirs_pdu_rel15->nr_of_rbs); rb++)
-                        vrb_map[rb+csirs_pdu_rel15->bwp_start] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 3);
+                        vrb_map[rb] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 3);
                     }
                     else {
                       csirs_pdu_rel15->row = 13;
                       for (int rb = csirs_pdu_rel15->start_rb; rb < (csirs_pdu_rel15->start_rb + csirs_pdu_rel15->nr_of_rbs); rb++)
-                        vrb_map[rb+csirs_pdu_rel15->bwp_start] |= (SL_to_bitmap(csirs_pdu_rel15->symb_l0, 2) | SL_to_bitmap(csirs_pdu_rel15->symb_l1, 2));
+                        vrb_map[rb] |= (SL_to_bitmap(csirs_pdu_rel15->symb_l0, 2) | SL_to_bitmap(csirs_pdu_rel15->symb_l1, 2));
                     }
                   }
                   break;
@@ -2786,18 +2871,18 @@ void nr_csirs_scheduling(int Mod_idP,
                   if (resourceMapping.cdm_Type == NR_CSI_RS_ResourceMapping__cdm_Type_cdm4_FD2_TD2) {
                     csirs_pdu_rel15->row = 17;
                     for (int rb = csirs_pdu_rel15->start_rb; rb < (csirs_pdu_rel15->start_rb + csirs_pdu_rel15->nr_of_rbs); rb++)
-                      vrb_map[rb+csirs_pdu_rel15->bwp_start] |= (SL_to_bitmap(csirs_pdu_rel15->symb_l0, 2) | SL_to_bitmap(csirs_pdu_rel15->symb_l1, 2));
+                      vrb_map[rb] |= (SL_to_bitmap(csirs_pdu_rel15->symb_l0, 2) | SL_to_bitmap(csirs_pdu_rel15->symb_l1, 2));
                   }
                   else{
                     if (resourceMapping.cdm_Type == NR_CSI_RS_ResourceMapping__cdm_Type_cdm8_FD2_TD4) {
                       csirs_pdu_rel15->row = 18;
                       for (int rb = csirs_pdu_rel15->start_rb; rb < (csirs_pdu_rel15->start_rb + csirs_pdu_rel15->nr_of_rbs); rb++)
-                        vrb_map[rb+csirs_pdu_rel15->bwp_start] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 3);
+                        vrb_map[rb] |= SL_to_bitmap(csirs_pdu_rel15->symb_l0, 3);
                     }
                     else {
                       csirs_pdu_rel15->row = 16;
                       for (int rb = csirs_pdu_rel15->start_rb; rb < (csirs_pdu_rel15->start_rb + csirs_pdu_rel15->nr_of_rbs); rb++)
-                        vrb_map[rb+csirs_pdu_rel15->bwp_start] |= (SL_to_bitmap(csirs_pdu_rel15->symb_l0, 2) | SL_to_bitmap(csirs_pdu_rel15->symb_l1, 2));
+                        vrb_map[rb] |= (SL_to_bitmap(csirs_pdu_rel15->symb_l0, 2) | SL_to_bitmap(csirs_pdu_rel15->symb_l1, 2));
                     }
                   }
                   break;
@@ -2818,30 +2903,127 @@ void nr_csirs_scheduling(int Mod_idP,
 void nr_mac_update_timers(module_id_t module_id,
                           frame_t frame,
                           sub_frame_t slot) {
-  NR_UE_info_t *UE_info = &RC.nrmac[module_id]->UE_info;
-  const NR_list_t *UE_list = &UE_info->list;
-  for (int UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) {
-    NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+  NR_UEs_t *UE_info = &RC.nrmac[module_id]->UE_info;
+
+  UE_iterator(UE_info->list, UE) {
+    NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
     if (sched_ctrl->rrc_processing_timer > 0) {
       sched_ctrl->rrc_processing_timer--;
       if (sched_ctrl->rrc_processing_timer == 0) {
-        LOG_I(NR_MAC, "(%d.%d) De-activating RRC processing timer for UE %d\n", frame, slot, UE_id);
+        LOG_I(NR_MAC, "(%d.%d) De-activating RRC processing timer for UE %04x\n", frame, slot, UE->rnti);
 
         const NR_SIB1_t *sib1 = RC.nrmac[module_id]->common_channels[0].sib1 ? RC.nrmac[module_id]->common_channels[0].sib1->message.choice.c1->choice.systemInformationBlockType1 : NULL;
+
+        NR_CellGroupConfig_t *cg = NULL;
+        uper_decode(NULL,
+                    &asn_DEF_NR_CellGroupConfig,   //might be added prefix later
+                    (void **)&cg,
+                    (uint8_t *)UE->cg_buf,
+                    (UE->enc_rval.encoded+7)/8, 0, 0);
+        UE->CellGroup = cg;
+
+        if (LOG_DEBUGFLAG(DEBUG_ASN1)) {
+          xer_fprint(stdout, &asn_DEF_NR_CellGroupConfig, (const void *) UE->CellGroup);
+        }
+
         NR_ServingCellConfigCommon_t *scc = RC.nrmac[module_id]->common_channels[0].ServingCellConfigCommon;
-        NR_CellGroupConfig_t *cg = UE_info->CellGroup[UE_id];
+        const NR_ServingCellConfig_t *spCellConfigDedicated = cg && cg->spCellConfig ? cg->spCellConfig->spCellConfigDedicated : NULL;
 
+        LOG_I(NR_MAC,"Modified rnti %04x with CellGroup\n", UE->rnti);
+        process_CellGroup(cg,&UE->UE_sched_ctrl);
+        NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
+
+        const NR_PDSCH_ServingCellConfig_t *pdsch = spCellConfigDedicated ? spCellConfigDedicated->pdsch_ServingCellConfig->choice.setup : NULL;
+        if (get_softmodem_params()->sa) {
+          // add all available DL HARQ processes for this UE in SA
+          create_dl_harq_list(sched_ctrl, pdsch);
+        }
+
+        // If needed, update the Dedicated BWP
+        const int current_bwp_id = sched_ctrl->active_bwp ? sched_ctrl->active_bwp->bwp_Id : 0;
+        const int current_ubwp_id = sched_ctrl->active_ubwp ? sched_ctrl->active_ubwp->bwp_Id : 0;
+        if (UE->Msg3_dcch_dtch) {
+          // 3GPP TS 38.321 Section 5.15 Bandwidth Part (BWP) operation
+          // Currently there are no PRACH occasions configured for any Dedicated BWP, so UE will switch to the initialDownlinkBWP
+          sched_ctrl->active_bwp = NULL;
+          if (current_bwp_id != 0) {
+            LOG_I(NR_MAC, "(%d.%d) Switching to initialDownlinkBWP\n", frame, slot);
+          }
+          // 3GPP TS 38.321 Section 5.15 Bandwidth Part (BWP) operation
+          // Currently there are no PRACH occasions configured for any Dedicated BWP, so UE will switch to the initialUplinkBWP
+          sched_ctrl->active_ubwp = NULL;
+          if (current_ubwp_id != 0) {
+            LOG_I(NR_MAC, "(%d.%d) Switching to initialUplinkBWP\n", frame, slot);
+          }
+          UE->Msg3_dcch_dtch = false;
+
+          // Schedule BWP switching to the first active BWP (previous active BWP before RA with Msg3 carrying DCCH or DTCH message)
+          sched_ctrl->next_dl_bwp_id = current_bwp_id;
+          sched_ctrl->next_ul_bwp_id = current_ubwp_id;
+        } else if (spCellConfigDedicated &&
+            spCellConfigDedicated->downlinkBWP_ToAddModList &&
+            spCellConfigDedicated->uplinkConfig &&
+            spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList) {
+          sched_ctrl->active_bwp = spCellConfigDedicated->downlinkBWP_ToAddModList->list.array[*spCellConfigDedicated->firstActiveDownlinkBWP_Id - 1];
+          if (*spCellConfigDedicated->firstActiveDownlinkBWP_Id != current_bwp_id) {
+            LOG_I(NR_MAC, "(%d.%d) Switching to DL-BWP %li\n", frame, slot, sched_ctrl->active_bwp->bwp_Id);
+          }
+          sched_ctrl->active_ubwp = spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[*spCellConfigDedicated->uplinkConfig->firstActiveUplinkBWP_Id - 1];
+          if (*spCellConfigDedicated->uplinkConfig->firstActiveUplinkBWP_Id != current_ubwp_id) {
+            LOG_I(NR_MAC, "(%d.%d) Switching to UL-BWP %li\n", frame, slot, sched_ctrl->active_ubwp->bwp_Id);
+          }
+
+          // Update next_dl_bwp_id to not trigger BWP switching, UE should be already on active_bwp
+          sched_ctrl->next_dl_bwp_id = sched_ctrl->active_bwp->bwp_Id;
+          // Update next_ul_bwp_id to not trigger BWP switching, UE should be already on active_ubwp
+          sched_ctrl->next_ul_bwp_id = sched_ctrl->active_ubwp->bwp_Id;
+        } else {
+          sched_ctrl->active_bwp = NULL;
+          sched_ctrl->active_ubwp = NULL;
+
+          // Update next_dl_bwp_id to not trigger BWP switching, UE should be already on Initial BWP
+          sched_ctrl->next_dl_bwp_id = 0;
+          // Update next_ul_bwp_id to not trigger BWP switching, UE should be already on Initial BWP
+          sched_ctrl->next_ul_bwp_id = 0;
+        }
+
+        // Update coreset/searchspace
         NR_BWP_Downlink_t *bwp = sched_ctrl->active_bwp;
-        NR_BWP_DownlinkDedicated_t *bwpd = cg &&
-                                           cg->spCellConfig &&
-                                           cg->spCellConfig->spCellConfigDedicated ?
-                                           cg->spCellConfig->spCellConfigDedicated->initialDownlinkBWP : NULL;
-        int **preferred_dl_tda = RC.nrmac[module_id]->preferred_dl_tda;
-        NR_pdsch_semi_static_t *ps = &sched_ctrl->pdsch_semi_static;
+        NR_BWP_DownlinkDedicated_t *bwpd = NULL;
+        NR_BWP_t *genericParameters = NULL;
+        int target_ss = NR_SearchSpace__searchSpaceType_PR_common;
+        if (bwp) {
+          target_ss = NR_SearchSpace__searchSpaceType_PR_ue_Specific;
+          bwpd = sched_ctrl->active_bwp->bwp_Dedicated;
+          genericParameters = &sched_ctrl->active_bwp->bwp_Common->genericParameters;
+        } else if (cg &&
+                   cg->spCellConfig &&
+                   cg->spCellConfig->spCellConfigDedicated &&
+                   (cg->spCellConfig->spCellConfigDedicated->initialDownlinkBWP)) {
+          target_ss = NR_SearchSpace__searchSpaceType_PR_ue_Specific;
+          bwpd = cg->spCellConfig->spCellConfigDedicated->initialDownlinkBWP;
+          genericParameters = &scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters;
+        }
+        sched_ctrl->search_space = get_searchspace(sib1, scc, (void*)bwpd, target_ss);
+        sched_ctrl->coreset = get_coreset(RC.nrmac[module_id], scc, (void*)bwpd, sched_ctrl->search_space, target_ss);
+        sched_ctrl->sched_pdcch = set_pdcch_structure(RC.nrmac[module_id],
+                                                      sched_ctrl->search_space,
+                                                      sched_ctrl->coreset,
+                                                      scc,
+                                                      genericParameters,
+                                                      RC.nrmac[module_id]->type0_PDCCH_CSS_config);
+        sched_ctrl->maxL = 2;
+        if (cg &&
+            cg->spCellConfig &&
+            cg->spCellConfig->spCellConfigDedicated &&
+            cg->spCellConfig->spCellConfigDedicated->csi_MeasConfig &&
+            cg->spCellConfig->spCellConfigDedicated->csi_MeasConfig->choice.setup) {
+          compute_csi_bitlen (cg->spCellConfig->spCellConfigDedicated->csi_MeasConfig->choice.setup, UE->csi_report_template);
+        }
 
+        NR_pdsch_semi_static_t *ps = &sched_ctrl->pdsch_semi_static;
         const uint8_t layers = set_dl_nrOfLayers(sched_ctrl);
-        const int tda = bwp && preferred_dl_tda[bwp->bwp_Id][slot] >= 0 ?
-                        preferred_dl_tda[bwp->bwp_Id][slot] : (ps->time_domain_allocation >= 0 ? ps->time_domain_allocation : 0);
+        const int tda = get_dl_tda(RC.nrmac[module_id], scc, slot);
 
         nr_set_pdsch_semi_static(sib1,
                                  scc,
@@ -2854,18 +3036,21 @@ void nr_mac_update_timers(module_id_t module_id,
                                  ps);
 
         NR_BWP_Uplink_t *ubwp = sched_ctrl->active_ubwp;
-        NR_BWP_UplinkDedicated_t *ubwpd = cg &&
-                                          cg->spCellConfig &&
-                                          cg->spCellConfig->spCellConfigDedicated &&
-                                          cg->spCellConfig->spCellConfigDedicated->uplinkConfig ?
-                                          cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP : NULL;
-        int **preferred_ul_tda = RC.nrmac[module_id]->preferred_ul_tda;
-        NR_pusch_semi_static_t *ups = &sched_ctrl->pusch_semi_static;
+        NR_BWP_UplinkDedicated_t *ubwpd = NULL;
+        if (ubwp) {
+          ubwpd = sched_ctrl->active_ubwp->bwp_Dedicated;
+        } else if (cg &&
+                   cg->spCellConfig &&
+                   cg->spCellConfig->spCellConfigDedicated &&
+                   (cg->spCellConfig->spCellConfigDedicated->initialDownlinkBWP)) {
+          ubwpd = cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP;
+        }
 
+        NR_pusch_semi_static_t *ups = &sched_ctrl->pusch_semi_static;
         int dci_format = get_dci_format(sched_ctrl);
         const uint8_t num_dmrs_cdm_grps_no_data = (ubwp || ubwpd) ? 1 : 2;
-        const int utda = ubwp && preferred_ul_tda[ubwp->bwp_Id][slot] >= 0 ?
-            preferred_ul_tda[ubwp->bwp_Id][slot] : (ups->time_domain_allocation >= 0 ? ups->time_domain_allocation : 0);
+        const uint8_t nrOfLayers = 1;
+        const int utda = get_ul_tda(RC.nrmac[module_id], scc, slot);
 
         nr_set_pusch_semi_static(sib1,
                                  scc,
@@ -2874,312 +3059,63 @@ void nr_mac_update_timers(module_id_t module_id,
                                  dci_format,
                                  utda,
                                  num_dmrs_cdm_grps_no_data,
+                                 nrOfLayers,
                                  ups);
       }
     }
   }
 }
 
-/*void fill_nfapi_coresets_and_searchspaces(NR_CellGroupConfig_t *cg,
-					  nfapi_nr_coreset_t *coreset,
-					  nfapi_nr_search_space_t *search_space) {
-
-  nfapi_nr_coreset_t *cs;
-  nfapi_nr_search_space_t *ss;
-  NR_ServingCellConfigCommon_t *scc=cg->spCellConfig->reconfigurationWithSync->spCellConfigCommon;
-  AssertFatal(cg->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.count == 1,
-	      "downlinkBWP_ToAddModList has %d BWP!\n",
-	      cg->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.count);
-
-  NR_BWP_Downlink_t *bwp=cg->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.array[0];
-  struct NR_PDCCH_Config__controlResourceSetToAddModList *coreset_list = bwp->bwp_Dedicated->pdcch_Config->choice.setup->controlResourceSetToAddModList;
-  AssertFatal(coreset_list->list.count>0,
-	      "cs list has 0 elements\n");
-  for (int i=0;i<coreset_list->list.count;i++) {
-    NR_ControlResourceSet_t *coreset_i=coreset_list->list.array[i];
-    cs = coreset + coreset_i->controlResourceSetId;
-      
-    cs->coreset_id = coreset_i->controlResourceSetId;
-    AssertFatal(coreset_i->frequencyDomainResources.size <=8 && coreset_i->frequencyDomainResources.size>0,
-		"coreset_i->frequencyDomainResources.size=%d\n",
-		(int)coreset_i->frequencyDomainResources.size);
-  
-    for (int f=0;f<coreset_i->frequencyDomainResources.size;f++)
-      ((uint8_t*)&cs->frequency_domain_resources)[coreset_i->frequencyDomainResources.size-1-f]=coreset_i->frequencyDomainResources.buf[f];
-    
-    cs->frequency_domain_resources>>=coreset_i->frequencyDomainResources.bits_unused;
-    
-    cs->duration = coreset_i->duration;
-    // Need to add information about TCI_StateIDs
-
-    if (coreset_i->cce_REG_MappingType.present == NR_ControlResourceSet__cce_REG_MappingType_PR_nonInterleaved)
-      cs->cce_reg_mapping_type = NFAPI_NR_CCE_REG_MAPPING_NON_INTERLEAVED;
-    else {
-      cs->cce_reg_mapping_type = NFAPI_NR_CCE_REG_MAPPING_INTERLEAVED;
+void schedule_nr_bwp_switch(module_id_t module_id,
+                            frame_t frame,
+                            sub_frame_t slot) {
 
-      if (coreset_i->cce_REG_MappingType.choice.interleaved->reg_BundleSize==NR_ControlResourceSet__cce_REG_MappingType__interleaved__reg_BundleSize_n6)
-	cs->reg_bundle_size = 6;
-      else cs->reg_bundle_size = 2+coreset_i->cce_REG_MappingType.choice.interleaved->reg_BundleSize;
+  NR_UEs_t *UE_info = &RC.nrmac[module_id]->UE_info;
 
-      if (coreset_i->cce_REG_MappingType.choice.interleaved->interleaverSize==NR_ControlResourceSet__cce_REG_MappingType__interleaved__interleaverSize_n6)
-	cs->interleaver_size = 6;
-      else cs->interleaver_size = 2+coreset_i->cce_REG_MappingType.choice.interleaved->interleaverSize;
+  // TODO: Implementation of a algorithm to perform:
+  //  - DL BWP selection:     sched_ctrl->next_dl_bwp_id = dl_bwp_id
+  //  - UL BWP selection:     sched_ctrl->next_ul_bwp_id = ul_bwp_id
 
-      if (coreset_i->cce_REG_MappingType.choice.interleaved->shiftIndex)
-	cs->shift_index = *coreset_i->cce_REG_MappingType.choice.interleaved->shiftIndex;
-      else cs->shift_index = 0;
-    }
-    
-    if (coreset_i->precoderGranularity == NR_ControlResourceSet__precoderGranularity_sameAsREG_bundle)
-      cs->precoder_granularity = NFAPI_NR_CSET_SAME_AS_REG_BUNDLE;
-    else cs->precoder_granularity = NFAPI_NR_CSET_ALL_CONTIGUOUS_RBS;
-    if (coreset_i->tci_PresentInDCI == NULL) cs->tci_present_in_dci = 0;
-    else                                     cs->tci_present_in_dci = 1;
-
-    if (coreset_i->tci_PresentInDCI == NULL) cs->dmrs_scrambling_id = 0;
-    else                                     cs->dmrs_scrambling_id = *coreset_i->tci_PresentInDCI;
-  }
-
-  struct NR_PDCCH_ConfigCommon__commonSearchSpaceList *commonSearchSpaceList = bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList;
-  AssertFatal(commonSearchSpaceList->list.count>0,
-	      "common SearchSpace list has 0 elements\n");
-  // Common searchspace list
-  for (int i=0;i<commonSearchSpaceList->list.count;i++) {
-    NR_SearchSpace_t *searchSpace_i=commonSearchSpaceList->list.array[i];  
-    ss=search_space + searchSpace_i->searchSpaceId;
-    if (searchSpace_i->controlResourceSetId) ss->coreset_id = *searchSpace_i->controlResourceSetId;
-    switch(searchSpace_i->monitoringSlotPeriodicityAndOffset->present) {
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL1;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl2:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL2;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl2;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl4:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL4;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl4;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl5:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL5;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl5;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl8:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL8;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl8;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl10:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL10;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl10;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl16:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL16;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl16;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl20:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL20;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl20;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl40:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL40;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl40;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl80:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL80;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl80;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl160:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL160;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl160;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl320:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL320;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl320;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl640:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL640;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl640;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1280:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL1280;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl1280;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl2560:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL2560;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl2560;
-      break;
-    default:
-      AssertFatal(1==0,"Shouldn't get here\n");
-      break;    
-    }
-    if (searchSpace_i->duration) ss->duration = *searchSpace_i->duration;
-    else                         ss->duration = 1;
-
-
-    AssertFatal(searchSpace_i->monitoringSymbolsWithinSlot->size == 2,
-		"ss_i->monitoringSymbolsWithinSlot = %d != 2\n",
-		(int)searchSpace_i->monitoringSymbolsWithinSlot->size);
-    ((uint8_t*)&ss->monitoring_symbols_in_slot)[1] = searchSpace_i->monitoringSymbolsWithinSlot->buf[0];
-    ((uint8_t*)&ss->monitoring_symbols_in_slot)[0] = searchSpace_i->monitoringSymbolsWithinSlot->buf[1];
-
-    AssertFatal(searchSpace_i->nrofCandidates!=NULL,"searchSpace_%d->nrofCandidates is null\n",(int)searchSpace_i->searchSpaceId);
-    if (searchSpace_i->nrofCandidates->aggregationLevel1 == NR_SearchSpace__nrofCandidates__aggregationLevel1_n8)
-      ss->number_of_candidates[0] = 8;
-    else ss->number_of_candidates[0] = searchSpace_i->nrofCandidates->aggregationLevel1;
-    if (searchSpace_i->nrofCandidates->aggregationLevel2 == NR_SearchSpace__nrofCandidates__aggregationLevel2_n8)
-      ss->number_of_candidates[1] = 8;
-    else ss->number_of_candidates[1] = searchSpace_i->nrofCandidates->aggregationLevel2;
-    if (searchSpace_i->nrofCandidates->aggregationLevel4 == NR_SearchSpace__nrofCandidates__aggregationLevel4_n8)
-      ss->number_of_candidates[2] = 8;
-    else ss->number_of_candidates[2] = searchSpace_i->nrofCandidates->aggregationLevel4;
-    if (searchSpace_i->nrofCandidates->aggregationLevel8 == NR_SearchSpace__nrofCandidates__aggregationLevel8_n8)
-      ss->number_of_candidates[3] = 8;
-    else ss->number_of_candidates[3] = searchSpace_i->nrofCandidates->aggregationLevel8;
-    if (searchSpace_i->nrofCandidates->aggregationLevel16 == NR_SearchSpace__nrofCandidates__aggregationLevel16_n8)
-      ss->number_of_candidates[4] = 8;
-    else ss->number_of_candidates[4] = searchSpace_i->nrofCandidates->aggregationLevel16;      
-
-    AssertFatal(searchSpace_i->searchSpaceType->present==NR_SearchSpace__searchSpaceType_PR_common,
-		"searchspace %d is not common\n",(int)searchSpace_i->searchSpaceId);
-    AssertFatal(searchSpace_i->searchSpaceType->choice.common!=NULL,
-		"searchspace %d common is null\n",(int)searchSpace_i->searchSpaceId);
-    ss->search_space_type = NFAPI_NR_SEARCH_SPACE_TYPE_COMMON;
-    if (searchSpace_i->searchSpaceType->choice.common->dci_Format0_0_AndFormat1_0)
-      ss->css_formats_0_0_and_1_0 = 1;
-    if (searchSpace_i->searchSpaceType->choice.common->dci_Format2_0) {
-      ss->css_format_2_0 = 1;
-      // add aggregation info
-    }
-    if (searchSpace_i->searchSpaceType->choice.common->dci_Format2_1)
-      ss->css_format_2_1 = 1;
-    if (searchSpace_i->searchSpaceType->choice.common->dci_Format2_2)
-      ss->css_format_2_2 = 1;
-    if (searchSpace_i->searchSpaceType->choice.common->dci_Format2_3)
-      ss->css_format_2_3 = 1;
-  }
-
-  struct NR_PDCCH_Config__searchSpacesToAddModList *dedicatedSearchSpaceList = bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList;
-  AssertFatal(dedicatedSearchSpaceList->list.count>0,
-	      "Dedicated Search Space list has 0 elements\n");
-  // Dedicated searchspace list
-  for (int i=0;i<dedicatedSearchSpaceList->list.count;i++) {
-    NR_SearchSpace_t *searchSpace_i=dedicatedSearchSpaceList->list.array[i];  
-    ss=search_space + searchSpace_i->searchSpaceId;
-    ss->search_space_id = searchSpace_i->searchSpaceId;
-    if (searchSpace_i->controlResourceSetId) ss->coreset_id = *searchSpace_i->controlResourceSetId;
-    switch(searchSpace_i->monitoringSlotPeriodicityAndOffset->present) {
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL1;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl2:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL2;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl2;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl4:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL4;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl4;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl5:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL5;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl5;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl8:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL8;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl8;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl10:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL10;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl10;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl16:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL16;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl16;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl20:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL20;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl20;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl40:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL40;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl40;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl80:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL80;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl80;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl160:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL160;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl160;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl320:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL320;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl320;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl640:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL640;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl640;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1280:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL1280;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl1280;
-      break;
-    case NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl2560:
-      ss->slot_monitoring_periodicity = NFAPI_NR_SS_PERIODICITY_SL2560;
-      ss->slot_monitoring_offset = searchSpace_i->monitoringSlotPeriodicityAndOffset->choice.sl2560;
-      break;
-    default:
-      AssertFatal(1==0,"Shouldn't get here\n");
-      break;    
-    }
-    if (searchSpace_i->duration) ss->duration = *searchSpace_i->duration;
-    else                         ss->duration = 1;
-    
-    
-    AssertFatal(searchSpace_i->monitoringSymbolsWithinSlot->size == 2,
-		"ss_i->monitoringSymbolsWithinSlot = %d != 2\n",
-		(int)searchSpace_i->monitoringSymbolsWithinSlot->size);
-    ((uint8_t*)&ss->monitoring_symbols_in_slot)[1] = searchSpace_i->monitoringSymbolsWithinSlot->buf[0];
-    ((uint8_t*)&ss->monitoring_symbols_in_slot)[0] = searchSpace_i->monitoringSymbolsWithinSlot->buf[1];
-    
-    AssertFatal(searchSpace_i->nrofCandidates!=NULL,"searchSpace_%d->nrofCandidates is null\n",(int)searchSpace_i->searchSpaceId);
-    if (searchSpace_i->nrofCandidates->aggregationLevel1 == NR_SearchSpace__nrofCandidates__aggregationLevel1_n8)
-      ss->number_of_candidates[0] = 8;
-    else ss->number_of_candidates[0] = searchSpace_i->nrofCandidates->aggregationLevel1;
-    if (searchSpace_i->nrofCandidates->aggregationLevel2 == NR_SearchSpace__nrofCandidates__aggregationLevel2_n8)
-      ss->number_of_candidates[1] = 8;
-    else ss->number_of_candidates[1] = searchSpace_i->nrofCandidates->aggregationLevel2;
-    if (searchSpace_i->nrofCandidates->aggregationLevel4 == NR_SearchSpace__nrofCandidates__aggregationLevel4_n8)
-      ss->number_of_candidates[2] = 8;
-    else ss->number_of_candidates[2] = searchSpace_i->nrofCandidates->aggregationLevel4;
-    if (searchSpace_i->nrofCandidates->aggregationLevel8 == NR_SearchSpace__nrofCandidates__aggregationLevel8_n8)
-      ss->number_of_candidates[3] = 8;
-    else ss->number_of_candidates[3] = searchSpace_i->nrofCandidates->aggregationLevel8;
-    if (searchSpace_i->nrofCandidates->aggregationLevel16 == NR_SearchSpace__nrofCandidates__aggregationLevel16_n8)
-      ss->number_of_candidates[4] = 8;
-    else ss->number_of_candidates[4] = searchSpace_i->nrofCandidates->aggregationLevel16;      
-    
-    if (searchSpace_i->searchSpaceType->present==NR_SearchSpace__searchSpaceType_PR_ue_Specific && searchSpace_i->searchSpaceType->choice.ue_Specific!=NULL) {
-      
-      ss->search_space_type = NFAPI_NR_SEARCH_SPACE_TYPE_UE_SPECIFIC;
-      
-      ss->uss_dci_formats = searchSpace_i->searchSpaceType->choice.ue_Specific-> dci_Formats;
-      
-    } else if (searchSpace_i->searchSpaceType->present==NR_SearchSpace__searchSpaceType_PR_common && searchSpace_i->searchSpaceType->choice.common!=NULL) {
-      ss->search_space_type = NFAPI_NR_SEARCH_SPACE_TYPE_COMMON;
-      
-      if (searchSpace_i->searchSpaceType->choice.common->dci_Format0_0_AndFormat1_0)
-	ss->css_formats_0_0_and_1_0 = 1;
-      if (searchSpace_i->searchSpaceType->choice.common->dci_Format2_0) {
-	ss->css_format_2_0 = 1;
-	// add aggregation info
+  UE_iterator(UE_info->list, UE) {
+    NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
+    if (sched_ctrl->rrc_processing_timer == 0 && UE->Msg4_ACKed && sched_ctrl->next_dl_bwp_id >= 0) {
+
+      int schedule_bwp_switching = false;
+      if (sched_ctrl->active_bwp == NULL) {
+        // Switching from Initial BWP to Dedicated BWP
+        if (sched_ctrl->next_dl_bwp_id > 0 && sched_ctrl->next_ul_bwp_id > 0) {
+          schedule_bwp_switching = true;
+          LOG_W(NR_MAC,"%4d.%2d UE %04x Schedule BWP switch from Initial DL BWP to %ld and from Initial UL BWP to %ld\n",
+                frame, slot, UE->rnti, sched_ctrl->next_dl_bwp_id, sched_ctrl->next_ul_bwp_id);
+        }
+      } else if (sched_ctrl->active_bwp->bwp_Id != sched_ctrl->next_dl_bwp_id && sched_ctrl->active_ubwp->bwp_Id != sched_ctrl->next_ul_bwp_id) {
+        // Switching between Dedicated BWPs
+        schedule_bwp_switching = true;
+        LOG_W(NR_MAC,"%4d.%2d UE %04x Schedule BWP switch from dl_bwp_id %ld to %ld and from ul_bwp_id %ld to %ld\n",
+              frame, slot, UE->rnti, sched_ctrl->active_bwp->bwp_Id, sched_ctrl->next_dl_bwp_id, sched_ctrl->active_ubwp->bwp_Id, sched_ctrl->next_ul_bwp_id);
+      }
+
+      if (schedule_bwp_switching) {
+        AssertFatal(sched_ctrl->next_dl_bwp_id > 0 && sched_ctrl->next_ul_bwp_id > 0, "BWP switching from a Dedicated BWP to the Initial BWP not handled yet!");
+        nr_mac_rrc_bwp_switch_req(module_id, frame, slot, UE->rnti, sched_ctrl->next_dl_bwp_id, sched_ctrl->next_ul_bwp_id);
       }
-      if (searchSpace_i->searchSpaceType->choice.common->dci_Format2_1)
-	ss->css_format_2_1 = 1;
-      if (searchSpace_i->searchSpaceType->choice.common->dci_Format2_2)
-	ss->css_format_2_2 = 1;
-      if (searchSpace_i->searchSpaceType->choice.common->dci_Format2_3)
-	ss->css_format_2_3 = 1;
     }
   }
 }
-*/
+
+void UL_tti_req_ahead_initialization(gNB_MAC_INST * gNB, NR_ServingCellConfigCommon_t *scc, int n, int CCid) {
+
+  if(gNB->UL_tti_req_ahead[CCid]) return;
+
+  gNB->UL_tti_req_ahead[CCid] = calloc(n, sizeof(nfapi_nr_ul_tti_request_t));
+  AssertFatal(gNB->UL_tti_req_ahead[CCid],
+              "could not allocate memory for RC.nrmac[]->UL_tti_req_ahead[]\n");
+  /* fill in slot/frame numbers: slot is fixed, frame will be updated by scheduler
+   * consider that scheduler runs sl_ahead: the first sl_ahead slots are
+   * already "in the past" and thus we put frame 1 instead of 0! */
+  for (int i = 0; i < n; ++i) {
+    nfapi_nr_ul_tti_request_t *req = &gNB->UL_tti_req_ahead[CCid][i];
+    req->SFN = i < (gNB->if_inst->sl_ahead-1);
+    req->Slot = i;
+  }
+}
diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_srs.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_srs.c
index 8680cc25d13..4be176714ec 100644
--- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_srs.c
+++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_srs.c
@@ -34,22 +34,22 @@
 
 extern RAN_CONTEXT_t RC;
 
-void nr_configure_srs(nfapi_nr_srs_pdu_t *srs_pdu, int module_id, int CC_id, int UE_id, NR_SRS_Resource_t *srs_resource) {
+void nr_configure_srs(nfapi_nr_srs_pdu_t *srs_pdu, int module_id, int CC_id,NR_UE_info_t*  UE, NR_SRS_Resource_t *srs_resource) {
 
   gNB_MAC_INST *nrmac = RC.nrmac[module_id];
   NR_ServingCellConfigCommon_t *scc = nrmac->common_channels[CC_id].ServingCellConfigCommon;
-  NR_UE_info_t *UE_info = &nrmac->UE_info;
-  NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+  NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
 
-  NR_BWP_t ubwp = sched_ctrl->active_ubwp ?
-                  sched_ctrl->active_ubwp->bwp_Common->genericParameters :
-                  scc->uplinkConfigCommon->initialUplinkBWP->genericParameters;
+  const NR_SIB1_t *sib1 = nrmac->common_channels[0].sib1 ? nrmac->common_channels[0].sib1->message.choice.c1->choice.systemInformationBlockType1 : NULL;
+  const NR_BWP_t *genericParameters = get_ul_bwp_genericParameters(sched_ctrl->active_ubwp,
+                                                                   scc,
+                                                                   sib1);
 
-  srs_pdu->rnti = UE_info->rnti[UE_id];
+  srs_pdu->rnti = UE->rnti;
   srs_pdu->handle = 0;
-  srs_pdu->bwp_size = NRRIV2BW(ubwp.locationAndBandwidth, MAX_BWP_SIZE);;
-  srs_pdu->bwp_start = NRRIV2PRBOFFSET(ubwp.locationAndBandwidth, MAX_BWP_SIZE);;
-  srs_pdu->subcarrier_spacing = ubwp.subcarrierSpacing;
+  srs_pdu->bwp_size = NRRIV2BW(genericParameters->locationAndBandwidth, MAX_BWP_SIZE);;
+  srs_pdu->bwp_start = NRRIV2PRBOFFSET(genericParameters->locationAndBandwidth, MAX_BWP_SIZE);;
+  srs_pdu->subcarrier_spacing = genericParameters->subcarrierSpacing;
   srs_pdu->cyclic_prefix = 0;
   srs_pdu->num_ant_ports = srs_resource->nrofSRS_Ports;
   srs_pdu->num_symbols = srs_resource->resourceMapping.nrofSymbols;
@@ -82,7 +82,7 @@ void nr_configure_srs(nfapi_nr_srs_pdu_t *srs_pdu, int module_id, int CC_id, int
   srs_pdu->t_offset = get_nr_srs_offset(srs_resource->resourceType.choice.periodic->periodicityAndOffset_p);
 }
 
-void nr_fill_nfapi_srs(int module_id, int CC_id, int UE_id, sub_frame_t slot, NR_SRS_Resource_t *srs_resource) {
+void nr_fill_nfapi_srs(int module_id, int CC_id, NR_UE_info_t* UE, sub_frame_t slot, NR_SRS_Resource_t *srs_resource) {
 
   nfapi_nr_ul_tti_request_t *future_ul_tti_req = &RC.nrmac[module_id]->UL_tti_req_ahead[0][slot];
   AssertFatal(future_ul_tti_req->n_pdus <
@@ -94,7 +94,7 @@ void nr_fill_nfapi_srs(int module_id, int CC_id, int UE_id, sub_frame_t slot, NR
   memset(srs_pdu, 0, sizeof(nfapi_nr_srs_pdu_t));
   future_ul_tti_req->n_pdus += 1;
 
-  nr_configure_srs(srs_pdu, module_id, CC_id, UE_id, srs_resource);
+  nr_configure_srs(srs_pdu, module_id, CC_id, UE, srs_resource);
 }
 
 /*******************************************************************
@@ -111,32 +111,38 @@ void nr_fill_nfapi_srs(int module_id, int CC_id, int UE_id, sub_frame_t slot, NR
 void nr_schedule_srs(int module_id, frame_t frame) {
 
   gNB_MAC_INST *nrmac = RC.nrmac[module_id];
-  NR_UE_info_t *UE_info = &nrmac->UE_info;
-  const NR_list_t *UE_list = &UE_info->list;
-
-  for (int UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) {
+  NR_UEs_t *UE_info = &nrmac->UE_info;
 
+  UE_iterator(UE_info->list, UE) {
     const int CC_id = 0;
     NR_ServingCellConfigCommon_t *scc = RC.nrmac[module_id]->common_channels[CC_id].ServingCellConfigCommon;
-    NR_CellGroupConfig_t *cg = UE_info->CellGroup[UE_id];
-    NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+    NR_CellGroupConfig_t *cg = UE->CellGroup;
+    NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
 
     sched_ctrl->sched_srs.frame = -1;
     sched_ctrl->sched_srs.slot = -1;
     sched_ctrl->sched_srs.srs_scheduled = false;
 
-    if(!UE_info->Msg4_ACKed[UE_id] || sched_ctrl->rrc_processing_timer > 0) {
+    if((sched_ctrl->ul_failure == 1 && get_softmodem_params()->phy_test==0) ||
+       sched_ctrl->rrc_processing_timer > 0) {
       continue;
     }
 
     NR_SRS_Config_t *srs_config = NULL;
-    if (cg &&
-        cg->spCellConfig &&
-        cg->spCellConfig->spCellConfigDedicated &&
-        cg->spCellConfig->spCellConfigDedicated->uplinkConfig &&
-        cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP) {
+    if (sched_ctrl->active_ubwp) {
+      if (sched_ctrl->active_ubwp->bwp_Dedicated &&
+          sched_ctrl->active_ubwp->bwp_Dedicated->srs_Config) {
+        srs_config = sched_ctrl->active_ubwp->bwp_Dedicated->srs_Config->choice.setup;
+      }
+    } else if (cg &&
+               cg->spCellConfig &&
+               cg->spCellConfig->spCellConfigDedicated &&
+               cg->spCellConfig->spCellConfigDedicated->uplinkConfig &&
+               cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP) {
       srs_config = cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP->srs_Config->choice.setup;
-    } else {
+    }
+
+    if (!srs_config) {
       continue;
     }
 
@@ -166,23 +172,24 @@ void nr_schedule_srs(int module_id, frame_t frame) {
         continue;
       }
 
-      NR_BWP_t ubwp = sched_ctrl->active_ubwp ?
-                        sched_ctrl->active_ubwp->bwp_Common->genericParameters :
-                        scc->uplinkConfigCommon->initialUplinkBWP->genericParameters;
+      const NR_SIB1_t *sib1 = nrmac->common_channels[0].sib1 ? nrmac->common_channels[0].sib1->message.choice.c1->choice.systemInformationBlockType1 : NULL;
+      const NR_BWP_t *genericParameters = get_ul_bwp_genericParameters(sched_ctrl->active_ubwp,
+                                                                       scc,
+                                                                       sib1);
 
       uint16_t period = srs_period[srs_resource->resourceType.choice.periodic->periodicityAndOffset_p.present];
       uint16_t offset = get_nr_srs_offset(srs_resource->resourceType.choice.periodic->periodicityAndOffset_p);
 
-      int n_slots_frame = nr_slots_per_frame[ubwp.subcarrierSpacing];
+      const int n_slots_frame = nr_slots_per_frame[genericParameters->subcarrierSpacing];
 
       // Check if UE will transmit the SRS in this frame
       if ( ((frame - offset/n_slots_frame)*n_slots_frame)%period == 0) {
         LOG_D(NR_MAC,"Scheduling SRS reception for %d.%d\n", frame, offset%n_slots_frame);
-        nr_fill_nfapi_srs(module_id, CC_id, UE_id, offset%n_slots_frame, srs_resource);
+        nr_fill_nfapi_srs(module_id, CC_id, UE, offset%n_slots_frame, srs_resource);
         sched_ctrl->sched_srs.frame = frame;
         sched_ctrl->sched_srs.slot = offset%n_slots_frame;
         sched_ctrl->sched_srs.srs_scheduled = true;
       }
     }
   }
-}
\ No newline at end of file
+}
diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
index dda9e097211..b5e90a4dcce 100644
--- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
+++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
@@ -38,30 +38,29 @@
 extern RAN_CONTEXT_t RC;
 
 
-void nr_fill_nfapi_pucch(module_id_t mod_id,
-                         frame_t frame,
-                         sub_frame_t slot,
-                         const NR_sched_pucch_t *pucch,
-                         int UE_id)
-{
-  gNB_MAC_INST *nr_mac = RC.nrmac[mod_id];
-  NR_UE_info_t *UE_info = &nr_mac->UE_info;
 
+static void nr_fill_nfapi_pucch(gNB_MAC_INST *nrmac,
+                                frame_t frame,
+                                sub_frame_t slot,
+                                const NR_sched_pucch_t *pucch,
+                                NR_UE_info_t* UE)
+{
   nfapi_nr_ul_tti_request_t *future_ul_tti_req =
-      &RC.nrmac[mod_id]->UL_tti_req_ahead[0][pucch->ul_slot];
-
-  if (future_ul_tti_req->SFN != pucch->frame || future_ul_tti_req->Slot != pucch->ul_slot)
-    LOG_W(MAC,
-          "Current %d.%d : future UL_tti_req's frame.slot %4d.%2d does not match PUCCH %4d.%2d\n",
-          frame,slot,
-          future_ul_tti_req->SFN,
-          future_ul_tti_req->Slot,
-          pucch->frame,
-          pucch->ul_slot);
-  AssertFatal(future_ul_tti_req->n_pdus <
-              sizeof(future_ul_tti_req->pdus_list) / sizeof(future_ul_tti_req->pdus_list[0]),
-              "Invalid future_ul_tti_req->n_pdus %d\n", future_ul_tti_req->n_pdus);
-
+      &nrmac->UL_tti_req_ahead[0][pucch->ul_slot];
+  AssertFatal(future_ul_tti_req->SFN == pucch->frame
+              && future_ul_tti_req->Slot == pucch->ul_slot,
+              "Current %4d.%2d : future UL_tti_req's frame.slot %4d.%2d does not match PUCCH %4d.%2d\n",
+              frame,slot,
+              future_ul_tti_req->SFN,
+              future_ul_tti_req->Slot,
+              pucch->frame,
+              pucch->ul_slot);
+  // n_pdus is number of pdus, so, in the array, it is the index of the next free element
+  if (future_ul_tti_req->n_pdus >= sizeofArray(future_ul_tti_req->pdus_list) ) {
+    LOG_E(NR_MAC,"future_ul_tti_req->n_pdus %d is full, slot: %d, sr flag %d dropping request\n",
+	  future_ul_tti_req->n_pdus, pucch->ul_slot, pucch->sr_flag);
+    return;
+  }
   future_ul_tti_req->pdus_list[future_ul_tti_req->n_pdus].pdu_type = NFAPI_NR_UL_CONFIG_PUCCH_PDU_TYPE;
   future_ul_tti_req->pdus_list[future_ul_tti_req->n_pdus].pdu_size = sizeof(nfapi_nr_pucch_pdu_t);
   nfapi_nr_pucch_pdu_t *pucch_pdu = &future_ul_tti_req->pdus_list[future_ul_tti_req->n_pdus].pucch_pdu;
@@ -79,9 +78,9 @@ void nr_fill_nfapi_pucch(module_id_t mod_id,
         pucch->dai_c,
         pucch->csi_bits,
         pucch->resource_indicator);
-
-  NR_ServingCellConfigCommon_t *scc = RC.nrmac[mod_id]->common_channels->ServingCellConfigCommon;
-  NR_CellGroupConfig_t *cg=UE_info->CellGroup[UE_id];
+  NR_COMMON_channels_t * common_ch=nrmac->common_channels;
+  NR_ServingCellConfigCommon_t *scc = common_ch->ServingCellConfigCommon;
+  NR_CellGroupConfig_t *cg=UE->CellGroup;
 
   NR_BWP_UplinkDedicated_t *ubwpd = cg && cg->spCellConfig && cg->spCellConfig->spCellConfigDedicated &&
                                     cg->spCellConfig->spCellConfigDedicated->uplinkConfig ?
@@ -90,14 +89,14 @@ void nr_fill_nfapi_pucch(module_id_t mod_id,
   LOG_D(NR_MAC,"%4d.%2d Calling nr_configure_pucch (ubwpd %p,r_pucch %d) pucch to be scheduled in %4d.%2d\n",
         frame,slot,ubwpd,pucch->r_pucch,pucch->frame,pucch->ul_slot);
 
-  const NR_SIB1_t *sib1 = nr_mac->common_channels[0].sib1 ? nr_mac->common_channels[0].sib1->message.choice.c1->choice.systemInformationBlockType1 : NULL;
+  const NR_SIB1_t *sib1 = common_ch->sib1 ? common_ch->sib1->message.choice.c1->choice.systemInformationBlockType1 : NULL;
   nr_configure_pucch(sib1,
                      pucch_pdu,
                      scc,
-                     UE_info->CellGroup[UE_id],
-                     UE_info->UE_sched_ctrl[UE_id].active_ubwp,
+                     UE->CellGroup,
+                     UE->UE_sched_ctrl.active_ubwp,
                      ubwpd,
-                     UE_info->rnti[UE_id],
+                     UE->rnti,
                      pucch->resource_indicator,
                      pucch->csi_bits,
                      pucch->dai_c,
@@ -141,22 +140,18 @@ int diff_rsrp_ssb_csi_meas_10_1_6_1_2[16] = {
 };
 
 
-void nr_schedule_pucch(int Mod_idP,
+void nr_schedule_pucch(gNB_MAC_INST *nrmac,
                        frame_t frameP,
                        sub_frame_t slotP)
 {
-  gNB_MAC_INST *nrmac = RC.nrmac[Mod_idP];
   if (!is_xlsch_in_slot(nrmac->ulsch_slot_bitmap[slotP / 64], slotP))
     return;
 
-  NR_UE_info_t *UE_info = &nrmac->UE_info;
-  const NR_list_t *UE_list = &UE_info->list;
-
-  for (int UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) {
-    NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+  UE_iterator(nrmac->UE_info.list, UE) {
+    NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
     const int n = sizeof(sched_ctrl->sched_pucch) / sizeof(*sched_ctrl->sched_pucch);
     for (int i = 0; i < n; i++) {
-      NR_sched_pucch_t *curr_pucch = &UE_info->UE_sched_ctrl[UE_id].sched_pucch[i];
+      NR_sched_pucch_t *curr_pucch = &UE->UE_sched_ctrl.sched_pucch[i];
       const uint16_t O_ack = curr_pucch->dai_c;
       const uint16_t O_csi = curr_pucch->csi_bits;
       const uint8_t O_sr = curr_pucch->sr_flag;
@@ -164,537 +159,16 @@ void nr_schedule_pucch(int Mod_idP,
           || frameP != curr_pucch->frame
           || slotP != curr_pucch->ul_slot)
         continue;
-      if (O_csi > 0) LOG_D(NR_MAC,"Scheduling PUCCH[%d] RX for UE %d in %4d.%2d O_ack %d, O_sr %d, O_csi %d\n",
-	                   i,UE_id,curr_pucch->frame,curr_pucch->ul_slot,O_ack,O_sr,O_csi);
-      nr_fill_nfapi_pucch(Mod_idP, frameP, slotP, curr_pucch, UE_id);
-      memset(curr_pucch, 0, sizeof(*curr_pucch));
-    }
-  }
-}
-
-
-//! Calculating number of bits set
-uint8_t number_of_bits_set (uint8_t buf){
-  uint8_t nb_of_bits_set = 0;
-  uint8_t mask = 0xff;
-  uint8_t index = 0;
-
-  for (index=7; (buf & mask) && (index>=0)  ; index--){
-    if (buf & (1<<index))
-      nb_of_bits_set++;
-
-    mask>>=1;
-  }
-  return nb_of_bits_set;
-}
-
-
-void compute_rsrp_bitlen(struct NR_CSI_ReportConfig *csi_reportconfig,
-                         uint8_t nb_resources,
-                         nr_csi_report_t *csi_report) {
-
-  if (NR_CSI_ReportConfig__groupBasedBeamReporting_PR_disabled == csi_reportconfig->groupBasedBeamReporting.present) {
-    if (NULL != csi_reportconfig->groupBasedBeamReporting.choice.disabled->nrofReportedRS)
-      csi_report->CSI_report_bitlen.nb_ssbri_cri = *(csi_reportconfig->groupBasedBeamReporting.choice.disabled->nrofReportedRS)+1;
-    else
-      /*! From Spec 38.331
-       * nrofReportedRS
-       * The number (N) of measured RS resources to be reported per report setting in a non-group-based report. N <= N_max, where N_max is either 2 or 4 depending on UE
-       * capability. FFS: The signaling mechanism for the gNB to select a subset of N beams for the UE to measure and report.
-       * When the field is absent the UE applies the value 1
-       */
-      csi_report->CSI_report_bitlen.nb_ssbri_cri= 1;
-  } else
-    csi_report->CSI_report_bitlen.nb_ssbri_cri= 2;
-
-  if (nb_resources) {
-    csi_report->CSI_report_bitlen.cri_ssbri_bitlen =ceil(log2 (nb_resources));
-    csi_report->CSI_report_bitlen.rsrp_bitlen = 7; //From spec 38.212 Table 6.3.1.1.2-6: CRI, SSBRI, and RSRP
-    csi_report->CSI_report_bitlen.diff_rsrp_bitlen =4; //From spec 38.212 Table 6.3.1.1.2-6: CRI, SSBRI, and RSRP
-  } else {
-    csi_report->CSI_report_bitlen.cri_ssbri_bitlen =0;
-    csi_report->CSI_report_bitlen.rsrp_bitlen = 0;
-    csi_report->CSI_report_bitlen.diff_rsrp_bitlen =0;
-  }
-}
-
-
-uint8_t compute_ri_bitlen(struct NR_CSI_ReportConfig *csi_reportconfig,
-                          nr_csi_report_t *csi_report){
-
-  struct NR_CodebookConfig *codebookConfig = csi_reportconfig->codebookConfig;
-  uint8_t nb_allowed_ri, ri_bitlen;
-  uint8_t ri_restriction = 0;
-
-  if (codebookConfig == NULL) {
-    csi_report->csi_meas_bitlen.ri_bitlen=0;
-    return ri_restriction;
-  }
-
-  // codebook type1 single panel
-  if (NR_CodebookConfig__codebookType__type1__subType_PR_typeI_SinglePanel==codebookConfig->codebookType.choice.type1->subType.present){
-    struct NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel *type1single = codebookConfig->codebookType.choice.type1->subType.choice.typeI_SinglePanel;
-    if (type1single->nrOfAntennaPorts.present == NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR_two){
-
-      ri_restriction = csi_reportconfig->codebookConfig->codebookType.choice.type1->subType.choice.typeI_SinglePanel->typeI_SinglePanel_ri_Restriction.buf[0];
-
-      nb_allowed_ri = number_of_bits_set(ri_restriction);
-      ri_bitlen = ceil(log2(nb_allowed_ri));
-
-      ri_bitlen = ri_bitlen<1?ri_bitlen:1; //from the spec 38.212 and table  6.3.1.1.2-3: RI, LI, CQI, and CRI of codebookType=typeI-SinglePanel
-      csi_report->csi_meas_bitlen.ri_bitlen=ri_bitlen;
-    }
-    if (type1single->nrOfAntennaPorts.present == NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR_moreThanTwo){
-      if (type1single->nrOfAntennaPorts.choice.moreThanTwo->n1_n2.present ==
-          NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_two_one_TypeI_SinglePanel_Restriction) {
-        // 4 ports
-
-        ri_restriction = csi_reportconfig->codebookConfig->codebookType.choice.type1->subType.choice.typeI_SinglePanel->typeI_SinglePanel_ri_Restriction.buf[0];
-
-        nb_allowed_ri = number_of_bits_set(ri_restriction);
-        ri_bitlen = ceil(log2(nb_allowed_ri));
-
-        ri_bitlen = ri_bitlen<2?ri_bitlen:2; //from the spec 38.212 and table  6.3.1.1.2-3: RI, LI, CQI, and CRI of codebookType=typeI-SinglePanel
-        csi_report->csi_meas_bitlen.ri_bitlen=ri_bitlen;
-      }
-      else {
-        // more than 4 ports
-
-        ri_restriction = csi_reportconfig->codebookConfig->codebookType.choice.type1->subType.choice.typeI_SinglePanel->typeI_SinglePanel_ri_Restriction.buf[0];
-
-        nb_allowed_ri = number_of_bits_set(ri_restriction);
-        ri_bitlen = ceil(log2(nb_allowed_ri));
-
-        csi_report->csi_meas_bitlen.ri_bitlen=ri_bitlen;
-      }
-    }
-    return ri_restriction;
-  }
-  else 
-    AssertFatal(1==0,"Other configurations not yet implemented\n");
-  return -1;
-}
-
-void compute_li_bitlen(struct NR_CSI_ReportConfig *csi_reportconfig,
-                       uint8_t ri_restriction,
-                       nr_csi_report_t *csi_report){
-
-  struct NR_CodebookConfig *codebookConfig = csi_reportconfig->codebookConfig;
-  for(int i=0; i<8; i++) {
-    if (codebookConfig == NULL || ((ri_restriction>>i)&0x01) == 0)
-      csi_report->csi_meas_bitlen.li_bitlen[i]=0;
-    else {
-      // codebook type1 single panel
-      if (NR_CodebookConfig__codebookType__type1__subType_PR_typeI_SinglePanel==codebookConfig->codebookType.choice.type1->subType.present)
-        csi_report->csi_meas_bitlen.li_bitlen[i]=ceil(log2(i+1))<2?ceil(log2(i+1)):2;
-      else
-        AssertFatal(1==0,"Other configurations not yet implemented\n");
-    }
-  }
-}
-
-
-void get_n1n2_o1o2_singlepanel(int *n1, int *n2, int *o1, int *o2,
-                               struct NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo *morethantwo) {
-
-  // Table 5.2.2.2.1-2 in 38.214 for supported configurations
-  switch(morethantwo->n1_n2.present){
-    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_two_one_TypeI_SinglePanel_Restriction):
-      *n1 = 2;
-      *n2 = 1;
-      *o1 = 4;
-      *o2 = 1;
-      break;
-    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_two_two_TypeI_SinglePanel_Restriction):
-      *n1 = 2;
-      *n2 = 2;
-      *o1 = 4;
-      *o2 = 4;
-      break;
-    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_four_one_TypeI_SinglePanel_Restriction):
-      *n1 = 4;
-      *n2 = 1;
-      *o1 = 4;
-      *o2 = 1;
-      break;
-    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_three_two_TypeI_SinglePanel_Restriction):
-      *n1 = 3;
-      *n2 = 2;
-      *o1 = 4;
-      *o2 = 4;
-      break;
-    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_six_one_TypeI_SinglePanel_Restriction):
-      *n1 = 6;
-      *n2 = 1;
-      *o1 = 4;
-      *o2 = 1;
-      break;
-    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_four_two_TypeI_SinglePanel_Restriction):
-      *n1 = 4;
-      *n2 = 2;
-      *o1 = 4;
-      *o2 = 4;
-      break;
-    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_eight_one_TypeI_SinglePanel_Restriction):
-      *n1 = 8;
-      *n2 = 1;
-      *o1 = 4;
-      *o2 = 1;
-      break;
-    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_four_three_TypeI_SinglePanel_Restriction):
-      *n1 = 4;
-      *n2 = 3;
-      *o1 = 4;
-      *o2 = 4;
-      break;
-    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_six_two_TypeI_SinglePanel_Restriction):
-      *n1 = 4;
-      *n2 = 2;
-      *o1 = 4;
-      *o2 = 4;
-      break;
-    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_twelve_one_TypeI_SinglePanel_Restriction):
-      *n1 = 12;
-      *n2 = 1;
-      *o1 = 4;
-      *o2 = 1;
-      break;
-    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_four_four_TypeI_SinglePanel_Restriction):
-      *n1 = 4;
-      *n2 = 4;
-      *o1 = 4;
-      *o2 = 4;
-      break;
-    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_eight_two_TypeI_SinglePanel_Restriction):
-      *n1 = 8;
-      *n2 = 2;
-      *o1 = 4;
-      *o2 = 4;
-      break;
-    case (NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_sixteen_one_TypeI_SinglePanel_Restriction):
-      *n1 = 16;
-      *n2 = 1;
-      *o1 = 4;
-      *o2 = 1;
-      break;
-  default:
-    AssertFatal(1==0,"Not supported configuration for n1_n2 in codebook configuration");
-  }
-}
-
-void get_x1x2_bitlen_singlepanel(int n1, int n2, int o1, int o2,
-                                 int *x1, int *x2, int rank, int codebook_mode) {
-
-  // Table 6.3.1.1.2-1 in 38.212
-  switch(rank){
-    case 1:
-      if(n2>1) {
-        if (codebook_mode == 1) {
-          *x1 = ceil(log2(n1*o1)) + ceil(log2(n2*o2));
-          *x2 = 2;
-        }
-        else {
-          *x1 = ceil(log2(n1*o1/2)) + ceil(log2(n2*o2/2));
-          *x2 = 4;
-        }
-      }
-      else{
-        if (codebook_mode == 1) {
-          *x1 = ceil(log2(n1*o1)) + ceil(log2(n2*o2));
-          *x2 = 2;
-        }
-        else {
-          *x1 = ceil(log2(n1*o1/2));
-          *x2 = 4;
-        }
-      }
-      break;
-    case 2:
-      if(n1*n2 == 2) {
-        if (codebook_mode == 1) {
-          *x1 = ceil(log2(n1*o1)) + ceil(log2(n2*o2));
-          *x2 = 1;
-        }
-        else {
-          *x1 = ceil(log2(n1*o1/2));
-          *x2 = 3;
-        }
-        *x1 += 1;
-      }
-      else {
-        if(n2>1) {
-          if (codebook_mode == 1) {
-            *x1 = ceil(log2(n1*o1)) + ceil(log2(n2*o2));
-            *x2 = 3;
-          }
-          else {
-            *x1 = ceil(log2(n1*o1/2)) + ceil(log2(n2*o2/2));
-            *x2 = 3;
-          }
-        }
-        else{
-          if (codebook_mode == 1) {
-            *x1 = ceil(log2(n1*o1)) + ceil(log2(n2*o2));
-            *x2 = 1;
-          }
-          else {
-            *x1 = ceil(log2(n1*o1/2));
-            *x2 = 3;
-          }
-        }
-        *x1 += 2;
-      }
-      break;
-    case 3:
-    case 4:
-      if(n1*n2 == 2) {
-        *x1 = ceil(log2(n1*o1)) + ceil(log2(n2*o2));
-        *x2 = 1;
-      }
-      else {
-        if(n1*n2 >= 8) {
-          *x1 = ceil(log2(n1*o1/2)) + ceil(log2(n2*o2)) + 2;
-          *x2 = 1;
-        }
-        else {
-          *x1 = ceil(log2(n1*o1)) + ceil(log2(n2*o2)) + 2;
-          *x2 = 1;
-        }
-      }
-      break;
-    case 5:
-    case 6:
-      *x1 = ceil(log2(n1*o1)) + ceil(log2(n2*o2));
-      *x2 = 1;
-      break;
-    case 7:
-    case 8:
-      if(n1 == 4 && n2 == 1) {
-        *x1 = ceil(log2(n1*o1/2)) + ceil(log2(n2*o2));
-        *x2 = 1;
-      }
-      else {
-        if(n1 > 2 && n2 == 2) {
-          *x1 = ceil(log2(n1*o1)) + ceil(log2(n2*o2/2));
-          *x2 = 1;
-        }
-        else {
-          *x1 = ceil(log2(n1*o1)) + ceil(log2(n2*o2));
-          *x2 = 1;
-        }
-      }
-      break;
-  default:
-    AssertFatal(1==0,"Invalid rank in x1 x2 bit length computation\n");
-  }
-}
-
 
-void compute_pmi_bitlen(struct NR_CSI_ReportConfig *csi_reportconfig,
-                        uint8_t ri_restriction,
-                        nr_csi_report_t *csi_report){
-
-  struct NR_CodebookConfig *codebookConfig = csi_reportconfig->codebookConfig;
-  for(int i=0; i<8; i++) {
-    csi_report->csi_meas_bitlen.pmi_x1_bitlen[i]=0;
-    csi_report->csi_meas_bitlen.pmi_x2_bitlen[i]=0;
-    if (codebookConfig == NULL || ((ri_restriction>>i)&0x01) == 0)
-      return;
-    else {
-      if(codebookConfig->codebookType.present == NR_CodebookConfig__codebookType_PR_type1) {
-        if(codebookConfig->codebookType.choice.type1->subType.present == NR_CodebookConfig__codebookType__type1__subType_PR_typeI_SinglePanel) {
-          if(codebookConfig->codebookType.choice.type1->subType.choice.typeI_SinglePanel->nrOfAntennaPorts.present ==
-             NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR_two) {
-            if (i==0)
-              csi_report->csi_meas_bitlen.pmi_x2_bitlen[i]=2;
-            if (i==1)
-              csi_report->csi_meas_bitlen.pmi_x2_bitlen[i]=1;
-          }
-          else {  // more than two
-            int n1,n2,o1,o2,x1,x2;
-            get_n1n2_o1o2_singlepanel(&n1,&n2,&o1,&o2,codebookConfig->codebookType.choice.type1->subType.choice.typeI_SinglePanel->nrOfAntennaPorts.choice.moreThanTwo);
-            get_x1x2_bitlen_singlepanel(n1,n2,o1,o2,&x1,&x2,i+1,codebookConfig->codebookType.choice.type1->codebookMode);
-            csi_report->csi_meas_bitlen.pmi_x1_bitlen[i]=x1;
-            csi_report->csi_meas_bitlen.pmi_x2_bitlen[i]=x2;
-          }
-        }
-        else
-          AssertFatal(1==0,"Type1 Multi-panel Codebook Config not yet implemented\n");
-      }
-      else
-        AssertFatal(1==0,"Type2 Codebook Config not yet implemented\n");
-    }
-  }
-}
-
-void compute_cqi_bitlen(struct NR_CSI_ReportConfig *csi_reportconfig,
-                        uint8_t ri_restriction,
-                        nr_csi_report_t *csi_report){
-
-  struct NR_CodebookConfig *codebookConfig = csi_reportconfig->codebookConfig;
-  struct NR_CSI_ReportConfig__reportFreqConfiguration *freq_config = csi_reportconfig->reportFreqConfiguration;
-
-  if (*freq_config->cqi_FormatIndicator == NR_CSI_ReportConfig__reportFreqConfiguration__cqi_FormatIndicator_widebandCQI) {
-    for(int i=0; i<8; i++) {
-      if ((ri_restriction>>i)&0x01) {
-        csi_report->csi_meas_bitlen.cqi_bitlen[i] = 4;
-        if(codebookConfig != NULL) {
-          if (NR_CodebookConfig__codebookType__type1__subType_PR_typeI_SinglePanel == codebookConfig->codebookType.choice.type1->subType.present){
-            struct NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel *type1single = codebookConfig->codebookType.choice.type1->subType.choice.typeI_SinglePanel;
-            if (type1single->nrOfAntennaPorts.present == NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR_moreThanTwo) {
-              if (type1single->nrOfAntennaPorts.choice.moreThanTwo->n1_n2.present >
-                  NR_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_two_one_TypeI_SinglePanel_Restriction) {
-                // more than 4 antenna ports
-                if (i > 4)
-                  csi_report->csi_meas_bitlen.cqi_bitlen[i] += 4; // CQI for second TB
-              }
-            }
-          }
-        }
-      }
-      else
-        csi_report->csi_meas_bitlen.cqi_bitlen[i] = 0;
-    }
-  }
-  else
-    AssertFatal(1==0,"Sub-band CQI reporting not yet supported");
-}
-
-
-//!TODO : same function can be written to handle csi_resources
-void compute_csi_bitlen(NR_CSI_MeasConfig_t *csi_MeasConfig, NR_UE_info_t *UE_info, int UE_id, module_id_t Mod_idP){
-  uint8_t csi_report_id = 0;
-  uint8_t nb_resources = 0;
-  NR_CSI_ReportConfig__reportQuantity_PR reportQuantity_type;
-  NR_CSI_ResourceConfigId_t csi_ResourceConfigId;
-  struct NR_CSI_ResourceConfig *csi_resourceconfig;
-
-  // for each CSI measurement report configuration (list of CSI-ReportConfig)
-  LOG_D(NR_MAC,"Searching %d csi_reports\n",csi_MeasConfig->csi_ReportConfigToAddModList->list.count);
-  for (csi_report_id=0; csi_report_id < csi_MeasConfig->csi_ReportConfigToAddModList->list.count; csi_report_id++){
-    struct NR_CSI_ReportConfig *csi_reportconfig = csi_MeasConfig->csi_ReportConfigToAddModList->list.array[csi_report_id];
-    // MAC structure for CSI measurement reports (per UE and per report)
-    nr_csi_report_t *csi_report = &UE_info->csi_report_template[UE_id][csi_report_id];
-    // csi-ResourceConfigId of a CSI-ResourceConfig included in the configuration
-    // (either CSI-RS or SSB)
-    csi_ResourceConfigId = csi_reportconfig->resourcesForChannelMeasurement;
-    // looking for CSI-ResourceConfig
-    int found_resource = 0;
-    int csi_resourceidx = 0;
-    while (found_resource == 0 && csi_resourceidx < csi_MeasConfig->csi_ResourceConfigToAddModList->list.count) {
-      csi_resourceconfig = csi_MeasConfig->csi_ResourceConfigToAddModList->list.array[csi_resourceidx];
-      if ( csi_resourceconfig->csi_ResourceConfigId == csi_ResourceConfigId)
-        found_resource = 1;
-      csi_resourceidx++;
-    }
-    AssertFatal(found_resource==1,"Not able to found any CSI-ResourceConfig with csi-ResourceConfigId %ld\n",
-                csi_ResourceConfigId);
-
-    long resourceType = csi_resourceconfig->resourceType;
-
-    reportQuantity_type = csi_reportconfig->reportQuantity.present;
-    csi_report->reportQuantity_type = reportQuantity_type;
-
-    // setting the CSI or SSB index list
-    if (NR_CSI_ReportConfig__reportQuantity_PR_ssb_Index_RSRP == csi_report->reportQuantity_type) {
-      for (int csi_idx = 0; csi_idx < csi_MeasConfig->csi_SSB_ResourceSetToAddModList->list.count; csi_idx++) {
-        if (csi_MeasConfig->csi_SSB_ResourceSetToAddModList->list.array[csi_idx]->csi_SSB_ResourceSetId ==
-            *(csi_resourceconfig->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->csi_SSB_ResourceSetList->list.array[0])){
-          //We can configure only one SSB resource set from spec 38.331 IE CSI-ResourceConfig
-          nb_resources=  csi_MeasConfig->csi_SSB_ResourceSetToAddModList->list.array[csi_idx]->csi_SSB_ResourceList.list.count;
-          csi_report->SSB_Index_list = csi_MeasConfig->csi_SSB_ResourceSetToAddModList->list.array[csi_idx]->csi_SSB_ResourceList.list.array;
-          csi_report->CSI_Index_list = NULL;
-          break;
-        }
-      }
-    }
-    else {
-      if (resourceType == NR_CSI_ResourceConfig__resourceType_periodic) {
-        AssertFatal(csi_MeasConfig->nzp_CSI_RS_ResourceSetToAddModList != NULL,
-                    "Wrong settings! Report quantity requires CSI-RS but csi_MeasConfig->nzp_CSI_RS_ResourceSetToAddModList is NULL\n");
-        for (int csi_idx = 0; csi_idx < csi_MeasConfig->nzp_CSI_RS_ResourceSetToAddModList->list.count; csi_idx++) {
-          if (csi_MeasConfig->nzp_CSI_RS_ResourceSetToAddModList->list.array[csi_idx]->nzp_CSI_ResourceSetId ==
-              *(csi_resourceconfig->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->nzp_CSI_RS_ResourceSetList->list.array[0])) {
-            //For periodic and semi-persistent CSI Resource Settings, the number of CSI-RS Resource Sets configured is limited to S=1 for spec 38.212
-            nb_resources = csi_MeasConfig->nzp_CSI_RS_ResourceSetToAddModList->list.array[csi_idx]->nzp_CSI_RS_Resources.list.count;
-            csi_report->CSI_Index_list = csi_MeasConfig->nzp_CSI_RS_ResourceSetToAddModList->list.array[csi_idx]->nzp_CSI_RS_Resources.list.array;
-            csi_report->SSB_Index_list = NULL;
-            break;
-          }
-        }
-      }
-      else AssertFatal(1==0,"Only periodic resource configuration currently supported\n");
-    }
-    LOG_D(NR_MAC,"nb_resources %d\n",nb_resources);
-    // computation of bit length depending on the report type
-    switch(reportQuantity_type){
-      case (NR_CSI_ReportConfig__reportQuantity_PR_ssb_Index_RSRP):
-        compute_rsrp_bitlen(csi_reportconfig, nb_resources, csi_report);
-        break;
-      case (NR_CSI_ReportConfig__reportQuantity_PR_cri_RSRP):
-        compute_rsrp_bitlen(csi_reportconfig, nb_resources, csi_report);
-        break;
-      case (NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_CQI):
-        csi_report->csi_meas_bitlen.cri_bitlen=ceil(log2(nb_resources));
-        csi_report->csi_meas_bitlen.ri_restriction = compute_ri_bitlen(csi_reportconfig, csi_report);
-        compute_cqi_bitlen(csi_reportconfig, csi_report->csi_meas_bitlen.ri_restriction, csi_report);
-        break;
-      case (NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_PMI_CQI):
-        csi_report->csi_meas_bitlen.cri_bitlen=ceil(log2(nb_resources));
-        csi_report->csi_meas_bitlen.ri_restriction = compute_ri_bitlen(csi_reportconfig, csi_report);
-        compute_cqi_bitlen(csi_reportconfig, csi_report->csi_meas_bitlen.ri_restriction, csi_report);
-        compute_pmi_bitlen(csi_reportconfig, csi_report->csi_meas_bitlen.ri_restriction, csi_report);
-        break;
-      case (NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_LI_PMI_CQI):
-        csi_report->csi_meas_bitlen.cri_bitlen=ceil(log2(nb_resources));
-        csi_report->csi_meas_bitlen.ri_restriction = compute_ri_bitlen(csi_reportconfig, csi_report);
-        compute_li_bitlen(csi_reportconfig, csi_report->csi_meas_bitlen.ri_restriction, csi_report);
-        compute_cqi_bitlen(csi_reportconfig, csi_report->csi_meas_bitlen.ri_restriction, csi_report);
-        compute_pmi_bitlen(csi_reportconfig, csi_report->csi_meas_bitlen.ri_restriction, csi_report);
-        break;
-    default:
-      AssertFatal(1==0,"Not yet supported CSI report quantity type");
+      if (O_csi > 0)
+         LOG_D(NR_MAC,"Scheduling PUCCH[%d] RX for UE %04x in %4d.%2d O_ack %d, O_sr %d, O_csi %d\n",
+               i,UE->rnti,curr_pucch->frame,curr_pucch->ul_slot,O_ack,O_sr,O_csi);
+      nr_fill_nfapi_pucch(nrmac, frameP, slotP, curr_pucch, UE);
+      memset(curr_pucch, 0, sizeof(*curr_pucch));
     }
   }
 }
 
-
-uint16_t nr_get_csi_bitlen(int Mod_idP,
-                           int UE_id,
-                           uint8_t csi_report_id) {
-
-  uint16_t csi_bitlen = 0;
-  uint16_t max_bitlen = 0;
-  NR_UE_info_t *UE_info = &RC.nrmac[Mod_idP]->UE_info;
-  L1_RSRP_bitlen_t * CSI_report_bitlen = NULL;
-  CSI_Meas_bitlen_t * csi_meas_bitlen = NULL;
-
-  if (NR_CSI_ReportConfig__reportQuantity_PR_ssb_Index_RSRP==UE_info->csi_report_template[UE_id][csi_report_id].reportQuantity_type||
-      NR_CSI_ReportConfig__reportQuantity_PR_cri_RSRP==UE_info->csi_report_template[UE_id][csi_report_id].reportQuantity_type){
-    CSI_report_bitlen = &(UE_info->csi_report_template[UE_id][csi_report_id].CSI_report_bitlen); //This might need to be moodif for Aperiodic CSI-RS measurements
-    csi_bitlen+= ((CSI_report_bitlen->cri_ssbri_bitlen * CSI_report_bitlen->nb_ssbri_cri) +
-                  CSI_report_bitlen->rsrp_bitlen +(CSI_report_bitlen->diff_rsrp_bitlen *
-                  (CSI_report_bitlen->nb_ssbri_cri -1 )));
-  } else{
-   csi_meas_bitlen = &(UE_info->csi_report_template[UE_id][csi_report_id].csi_meas_bitlen); //This might need to be moodif for Aperiodic CSI-RS measurements
-   uint16_t temp_bitlen;
-   for (int i=0; i<8; i++) {
-     temp_bitlen = (csi_meas_bitlen->cri_bitlen+
-                    csi_meas_bitlen->ri_bitlen+
-                    csi_meas_bitlen->li_bitlen[i]+
-                    csi_meas_bitlen->cqi_bitlen[i]+
-                    csi_meas_bitlen->pmi_x1_bitlen[i]+
-                    csi_meas_bitlen->pmi_x2_bitlen[i]);
-     if(temp_bitlen>max_bitlen)
-       max_bitlen = temp_bitlen;
-   }
-   csi_bitlen += max_bitlen;
- }
-
-  return csi_bitlen;
-}
-
-
 void nr_csi_meas_reporting(int Mod_idP,
                            frame_t frame,
                            sub_frame_t slot) {
@@ -702,11 +176,9 @@ void nr_csi_meas_reporting(int Mod_idP,
   NR_ServingCellConfigCommon_t *scc = RC.nrmac[Mod_idP]->common_channels->ServingCellConfigCommon;
   const int n_slots_frame = nr_slots_per_frame[*scc->ssbSubcarrierSpacing];
 
-  NR_UE_info_t *UE_info = &RC.nrmac[Mod_idP]->UE_info;
-  NR_list_t *UE_list = &UE_info->list;
-  for (int UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) {
-    const NR_CellGroupConfig_t *CellGroup = UE_info->CellGroup[UE_id];
-    NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+  UE_iterator(RC.nrmac[Mod_idP]->UE_info.list, UE ) {
+    const NR_CellGroupConfig_t *CellGroup = UE->CellGroup;
+    NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
     if ((sched_ctrl->rrc_processing_timer > 0) || (sched_ctrl->ul_failure==1 && get_softmodem_params()->phy_test==0)) {
       continue;
     }
@@ -718,16 +190,15 @@ void nr_csi_meas_reporting(int Mod_idP,
     NR_PUCCH_Config_t *pucch_Config = NULL;
     if (sched_ctrl->active_ubwp) {
       pucch_Config = sched_ctrl->active_ubwp->bwp_Dedicated->pucch_Config->choice.setup;
-    } else if (RC.nrmac[Mod_idP]->UE_info.CellGroup[UE_id] &&
-             RC.nrmac[Mod_idP]->UE_info.CellGroup[UE_id]->spCellConfig &&
-             RC.nrmac[Mod_idP]->UE_info.CellGroup[UE_id]->spCellConfig->spCellConfigDedicated &&
-             RC.nrmac[Mod_idP]->UE_info.CellGroup[UE_id]->spCellConfig->spCellConfigDedicated->uplinkConfig &&
-             RC.nrmac[Mod_idP]->UE_info.CellGroup[UE_id]->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP &&
-             RC.nrmac[Mod_idP]->UE_info.CellGroup[UE_id]->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP->pucch_Config->choice.setup) {
-      pucch_Config = RC.nrmac[Mod_idP]->UE_info.CellGroup[UE_id]->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP->pucch_Config->choice.setup;
+    } else if (CellGroup &&
+               CellGroup->spCellConfig &&
+               CellGroup->spCellConfig->spCellConfigDedicated &&
+               CellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig &&
+               CellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP &&
+               CellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP->pucch_Config->choice.setup) {
+      pucch_Config = CellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP->pucch_Config->choice.setup;
     }
 
-
     for (int csi_report_id = 0; csi_report_id < csi_measconfig->csi_ReportConfigToAddModList->list.count; csi_report_id++){
       NR_CSI_ReportConfig_t *csirep = csi_measconfig->csi_ReportConfigToAddModList->list.array[csi_report_id];
 
@@ -750,7 +221,7 @@ void nr_csi_meas_reporting(int Mod_idP,
         if (*pucchresset->resourceList.list.array[res_index] == pucchcsires->pucch_Resource)
           break;
       AssertFatal(res_index < n,
-                  "CSI pucch resource %ld not found among PUCCH resources\n",pucchcsires->pucch_Resource);
+                  "CSI pucch resource %ld not found among PUCCH resources\n", pucchcsires->pucch_Resource);
 
       // find free PUCCH that is in order with possibly existing PUCCH
       // schedulings (other CSI, SR)
@@ -759,13 +230,12 @@ void nr_csi_meas_reporting(int Mod_idP,
                   && !curr_pucch->sr_flag
                   && curr_pucch->dai_c == 0,
                   "PUCCH not free at index 1 for UE %04x\n",
-                  UE_info->rnti[UE_id]);
+                  UE->rnti);
       curr_pucch->r_pucch = -1;
       curr_pucch->frame = frame;
       curr_pucch->ul_slot = sched_slot;
       curr_pucch->resource_indicator = res_index;
-      curr_pucch->csi_bits +=
-          nr_get_csi_bitlen(Mod_idP,UE_id,csi_report_id);
+      curr_pucch->csi_bits += nr_get_csi_bitlen(UE->csi_report_template, csi_report_id);
 
       const NR_SIB1_t *sib1 = RC.nrmac[Mod_idP]->common_channels[0].sib1 ? RC.nrmac[Mod_idP]->common_channels[0].sib1->message.choice.c1->choice.systemInformationBlockType1 : NULL;
       NR_BWP_t *genericParameters = get_ul_bwp_genericParameters(sched_ctrl->active_ubwp,
@@ -817,37 +287,30 @@ void nr_csi_meas_reporting(int Mod_idP,
   }
 }
 
-__attribute__((unused))
-static void handle_dl_harq(module_id_t mod_id,
-                           int UE_id,
+static void handle_dl_harq(NR_UE_info_t * UE,
                            int8_t harq_pid,
-                           bool success)
+                           bool success,
+                           int harq_round_max)
 {
-  NR_UE_info_t *UE_info = &RC.nrmac[mod_id]->UE_info;
-  NR_UE_harq_t *harq = &UE_info->UE_sched_ctrl[UE_id].harq_processes[harq_pid];
+  NR_UE_harq_t *harq = &UE->UE_sched_ctrl.harq_processes[harq_pid];
   harq->feedback_slot = -1;
   harq->is_waiting = false;
   if (success) {
-    add_tail_nr_list(&UE_info->UE_sched_ctrl[UE_id].available_dl_harq, harq_pid);
+    add_tail_nr_list(&UE->UE_sched_ctrl.available_dl_harq, harq_pid);
     harq->round = 0;
     harq->ndi ^= 1;
-  } else if (harq->round >= RC.nrmac[mod_id]->harq_round_max - 1) {
-    add_tail_nr_list(&UE_info->UE_sched_ctrl[UE_id].available_dl_harq, harq_pid);
-    harq->round = 0;
-    harq->ndi ^= 1;
-    NR_mac_stats_t *stats = &UE_info->mac_stats[UE_id];
-    stats->dlsch_errors++;
-    LOG_D(NR_MAC, "retransmission error for UE %d (total %"PRIu64")\n", UE_id, stats->dlsch_errors);
+  } else if (harq->round >= harq_round_max - 1) {
+    abort_nr_dl_harq(UE, harq_pid);
+    LOG_D(NR_MAC, "retransmission error for UE %04x (total %"PRIu64")\n", UE->rnti, UE->mac_stats.dl.errors);
   } else {
-    LOG_D(PHY,"NACK for: pid %d, ue %x\n",harq_pid, UE_id);
-    add_tail_nr_list(&UE_info->UE_sched_ctrl[UE_id].retrans_dl_harq, harq_pid);
+    LOG_D(PHY,"NACK for: pid %d, ue %04x\n",harq_pid, UE->rnti);
+    add_tail_nr_list(&UE->UE_sched_ctrl.retrans_dl_harq, harq_pid);
     harq->round++;
   }
 }
 
-int checkTargetSSBInFirst64TCIStates_pdschConfig(int ssb_index_t, int Mod_idP, int UE_id) {
-  NR_UE_info_t *UE_info = &RC.nrmac[Mod_idP]->UE_info;
-  NR_CellGroupConfig_t *CellGroup = UE_info->CellGroup[UE_id] ;
+int checkTargetSSBInFirst64TCIStates_pdschConfig(int ssb_index_t, NR_UE_info_t * UE) {
+  NR_CellGroupConfig_t *CellGroup = UE->CellGroup;
   int nb_tci_states = CellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config->choice.setup->tci_StatesToAddModList->list.count;
   NR_TCI_State_t *tci =NULL;
   int i;
@@ -872,15 +335,13 @@ int checkTargetSSBInFirst64TCIStates_pdschConfig(int ssb_index_t, int Mod_idP, i
   return -1;
 }
 
-int checkTargetSSBInTCIStates_pdcchConfig(int ssb_index_t, int Mod_idP, int UE_id) {
-  NR_UE_info_t *UE_info = &RC.nrmac[Mod_idP]->UE_info;
-  NR_CellGroupConfig_t *CellGroup = UE_info->CellGroup[UE_id] ;
+int checkTargetSSBInTCIStates_pdcchConfig(int ssb_index_t, NR_UE_info_t *UE) {
+  NR_CellGroupConfig_t *CellGroup = UE->CellGroup ;
   int nb_tci_states = CellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config->choice.setup->tci_StatesToAddModList->list.count;
   NR_TCI_State_t *tci =NULL;
   NR_TCI_StateId_t *tci_id = NULL;
-  int bwp_id = 1;
-  NR_BWP_Downlink_t *bwp = CellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.array[bwp_id-1];
-  NR_ControlResourceSet_t *coreset = bwp->bwp_Dedicated->pdcch_Config->choice.setup->controlResourceSetToAddModList->list.array[bwp_id-1];
+  NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
+  NR_ControlResourceSet_t *coreset = sched_ctrl->coreset;
   int i;
   int flag = 0;
   int tci_stateID = -1;
@@ -934,7 +395,7 @@ int get_diff_rsrp(uint8_t index, int strongest_rsrp) {
 //identifies the target SSB Beam index
 //keeps the required date for PDCCH and PDSCH TCI state activation/deactivation CE consutruction globally
 //handles triggering of PDCCH and PDSCH MAC CEs
-void tci_handling(module_id_t Mod_idP, int UE_id, frame_t frame, slot_t slot) {
+void tci_handling(NR_UE_info_t *UE, frame_t frame, slot_t slot) {
 
   int strongest_ssb_rsrp = 0;
   int cqi_idx = 0;
@@ -946,23 +407,20 @@ void tci_handling(module_id_t Mod_idP, int UE_id, frame_t frame, slot_t slot) {
   int ssb_index[MAX_NUM_SSB] = {0};
   int ssb_rsrp[MAX_NUM_SSB] = {0};
   uint8_t idx = 0;
-  NR_UE_info_t *UE_info = &RC.nrmac[Mod_idP]->UE_info;
-  NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
-  int bwp_id  = sched_ctrl->active_bwp ? 1 : 0;
-  NR_CellGroupConfig_t *CellGroup = UE_info->CellGroup[UE_id];
-  NR_BWP_Downlink_t *bwp = bwp_id>0 ? 
-                           sched_ctrl->active_bwp:
-                           NULL;
-
-                               
+
+  NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
+  const int bwp_id = sched_ctrl->active_bwp ? sched_ctrl->active_bwp->bwp_Id : 0;
+  NR_CellGroupConfig_t *CellGroup = UE->CellGroup;
+
   //bwp indicator
   int n_dl_bwp=0;
-  if (CellGroup->spCellConfig->spCellConfigDedicated &&
+  if (CellGroup->spCellConfig &&
+      CellGroup->spCellConfig->spCellConfigDedicated &&
       CellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList)
-      n_dl_bwp = CellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.count;
+    n_dl_bwp = CellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.count;
 
   uint8_t nr_ssbri_cri = 0;
-  uint8_t nb_of_csi_ssb_report = UE_info->csi_report_template[UE_id][cqi_idx].nb_of_csi_ssb_report;
+  uint8_t nb_of_csi_ssb_report = UE->csi_report_template[cqi_idx].nb_of_csi_ssb_report;
   int better_rsrp_reported = -140-(-0); /*minimum_measured_RSRP_value - minimum_differntail_RSRP_value*///considering the minimum RSRP value as better RSRP initially
   uint8_t diff_rsrp_idx = 0;
   uint8_t i, j;
@@ -1033,7 +491,7 @@ void tci_handling(module_id_t Mod_idP, int UE_id, frame_t frame, slot_t slot) {
     The length of the field is 7 bits
      */
     if(sched_ctrl->UE_mac_ce_ctrl.pdcch_state_ind.coresetId == 0) {
-      int tci_state_id = checkTargetSSBInFirst64TCIStates_pdschConfig(ssb_index[target_ssb_beam_index], Mod_idP, UE_id);
+      int tci_state_id = checkTargetSSBInFirst64TCIStates_pdschConfig(ssb_index[target_ssb_beam_index], UE);
 
       if( tci_state_id != -1)
         sched_ctrl->UE_mac_ce_ctrl.pdcch_state_ind.tciStateId = tci_state_id;
@@ -1043,7 +501,7 @@ void tci_handling(module_id_t Mod_idP, int UE_id, frame_t frame, slot_t slot) {
         int flag = 0;
 
         for(i =0; ssb_index_sorted[i]!=0; i++) {
-          tci_state_id = checkTargetSSBInFirst64TCIStates_pdschConfig(ssb_index_sorted[i], Mod_idP, UE_id) ;
+          tci_state_id = checkTargetSSBInFirst64TCIStates_pdschConfig(ssb_index_sorted[i],UE) ;
 
           if(tci_state_id != -1 && ssb_rsrp_sorted[i] > ssb_rsrp[curr_ssb_beam_index] && ssb_rsrp_sorted[i] - ssb_rsrp[curr_ssb_beam_index] > L1_RSRP_HYSTERIS) {
             sched_ctrl->UE_mac_ce_ctrl.pdcch_state_ind.tciStateId = tci_state_id;
@@ -1057,7 +515,7 @@ void tci_handling(module_id_t Mod_idP, int UE_id, frame_t frame, slot_t slot) {
         }
       }
     } else {
-      int tci_state_id = checkTargetSSBInTCIStates_pdcchConfig(ssb_index[target_ssb_beam_index], Mod_idP, UE_id);
+      int tci_state_id = checkTargetSSBInTCIStates_pdcchConfig(ssb_index[target_ssb_beam_index], UE);
 
       if (tci_state_id !=-1)
         sched_ctrl->UE_mac_ce_ctrl.pdcch_state_ind.tciStateId = tci_state_id;
@@ -1067,7 +525,7 @@ void tci_handling(module_id_t Mod_idP, int UE_id, frame_t frame, slot_t slot) {
         int flag = 0;
 
         for(i =0; ssb_index_sorted[i]!=0; i++) {
-          tci_state_id = checkTargetSSBInTCIStates_pdcchConfig(ssb_index_sorted[i], Mod_idP, UE_id);
+          tci_state_id = checkTargetSSBInTCIStates_pdcchConfig(ssb_index_sorted[i], UE);
 
           if( tci_state_id != -1 && ssb_rsrp_sorted[i] > ssb_rsrp[curr_ssb_beam_index] && ssb_rsrp_sorted[i] - ssb_rsrp[curr_ssb_beam_index] > L1_RSRP_HYSTERIS) {
             sched_ctrl->UE_mac_ce_ctrl.pdcch_state_ind.tciStateId = tci_state_id;
@@ -1082,10 +540,8 @@ void tci_handling(module_id_t Mod_idP, int UE_id, frame_t frame, slot_t slot) {
       }
     }
 
-    sched_ctrl->UE_mac_ce_ctrl.pdcch_state_ind.tci_present_inDCI = bwp ? 
-                                                                   bwp->bwp_Dedicated->pdcch_Config->choice.setup->controlResourceSetToAddModList->list.array[bwp_id-1]->tci_PresentInDCI :
-                                                                   CellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdcch_Config->choice.setup->controlResourceSetToAddModList->list.array[0]->tci_PresentInDCI;
-
+    sched_ctrl->UE_mac_ce_ctrl.pdcch_state_ind.tci_present_inDCI = sched_ctrl->coreset ?
+                                                                   sched_ctrl->coreset->tci_PresentInDCI : NULL;
 
     //filling pdsch tci state activation deactivation mac ce structure fields
     if(sched_ctrl->UE_mac_ce_ctrl.pdcch_state_ind.tci_present_inDCI) {
@@ -1130,15 +586,14 @@ uint8_t pickandreverse_bits(uint8_t *payload, uint16_t bitlen, uint8_t start_bit
 }
 
 
-void evaluate_rsrp_report(NR_UE_info_t *UE_info,
+void evaluate_rsrp_report(NR_UE_info_t *UE,
                           NR_UE_sched_ctrl_t *sched_ctrl,
-                          int UE_id,
                           uint8_t csi_report_id,
                           uint8_t *payload,
                           int *cumul_bits,
                           NR_CSI_ReportConfig__reportQuantity_PR reportQuantity_type){
 
-  nr_csi_report_t *csi_report = &UE_info->csi_report_template[UE_id][csi_report_id];
+  nr_csi_report_t *csi_report = &UE->csi_report_template[csi_report_id];
   uint8_t cri_ssbri_bitlen = csi_report->CSI_report_bitlen.cri_ssbri_bitlen;
   uint16_t curr_payload;
 
@@ -1190,13 +645,12 @@ void evaluate_rsrp_report(NR_UE_info_t *UE_info,
   }
   csi_report->nb_of_csi_ssb_report++;
   int strongest_ssb_rsrp = get_measured_rsrp(sched_ctrl->CSI_report.ssb_cri_report.RSRP);
-  NR_mac_stats_t *stats = &UE_info->mac_stats[UE_id];
+  NR_mac_stats_t *stats = &UE->mac_stats;
   // including ssb rsrp in mac stats
   stats->cumul_rsrp += strongest_ssb_rsrp;
   stats->num_rsrp_meas++;
 }
 
-
 void evaluate_cri_report(uint8_t *payload,
                          uint8_t cri_bitlen,
                          int cumul_bits,
@@ -1254,7 +708,12 @@ void evaluate_cqi_report(uint8_t *payload,
     sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.wb_cqi_2tb = temp_cqi;
     LOG_D(MAC,"Wide-band CQI for the second TB %d\n", temp_cqi);
   }
-  sched_ctrl->set_mcs = TRUE;
+
+  // TODO for wideband case and multiple TB
+  const int cqi_idx = sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.wb_cqi_1tb;
+  const int mcs_table = sched_ctrl->pdsch_semi_static.mcsTableIdx;
+  const int cqi_table = sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.cqi_table;
+  sched_ctrl->dl_max_mcs = get_mcs_from_cqi(mcs_table, cqi_table, cqi_idx);
 }
 
 
@@ -1277,6 +736,7 @@ uint8_t evaluate_pmi_report(uint8_t *payload,
         sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.pmi_x1,
         sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.pmi_x2);
 
+  sched_ctrl->set_pmi = true;
   return tot_bitlen;
 
 }
@@ -1322,22 +782,19 @@ void extract_pucch_csi_report(NR_CSI_MeasConfig_t *csi_MeasConfig,
                               const nfapi_nr_uci_pucch_pdu_format_2_3_4_t *uci_pdu,
                               frame_t frame,
                               slot_t slot,
-                              int UE_id,
-                              module_id_t Mod_idP) {
-
+                              NR_UE_info_t *UE,
+                              NR_ServingCellConfigCommon_t *scc)
+{
   /** From Table 6.3.1.1.2-3: RI, LI, CQI, and CRI of codebookType=typeI-SinglePanel */
-  NR_ServingCellConfigCommon_t *scc =
-      RC.nrmac[Mod_idP]->common_channels->ServingCellConfigCommon;
   const int n_slots_frame = nr_slots_per_frame[*scc->ssbSubcarrierSpacing];
   uint8_t *payload = uci_pdu->csi_part1.csi_part1_payload;
   uint16_t bitlen = uci_pdu->csi_part1.csi_part1_bit_len;
   NR_CSI_ReportConfig__reportQuantity_PR reportQuantity_type = NR_CSI_ReportConfig__reportQuantity_PR_NOTHING;
-  NR_UE_info_t *UE_info = &(RC.nrmac[Mod_idP]->UE_info);
-  NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+  NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
   int cumul_bits = 0;
   int r_index = -1;
   for (int csi_report_id = 0; csi_report_id < csi_MeasConfig->csi_ReportConfigToAddModList->list.count; csi_report_id++ ) {
-    nr_csi_report_t *csi_report = &UE_info->csi_report_template[UE_id][csi_report_id];
+    nr_csi_report_t *csi_report = &UE->csi_report_template[csi_report_id];
     csi_report->nb_of_csi_ssb_report = 0;
     uint8_t cri_bitlen = 0;
     uint8_t ri_bitlen = 0;
@@ -1352,10 +809,10 @@ void extract_pucch_csi_report(NR_CSI_MeasConfig_t *csi_MeasConfig,
       LOG_D(MAC,"SFN/SF:%d/%d reportQuantity type = %d\n",frame,slot,reportQuantity_type);
       switch(reportQuantity_type){
         case NR_CSI_ReportConfig__reportQuantity_PR_cri_RSRP:
-          evaluate_rsrp_report(UE_info,sched_ctrl,UE_id,csi_report_id,payload,&cumul_bits,reportQuantity_type);
+          evaluate_rsrp_report(UE,sched_ctrl,csi_report_id,payload,&cumul_bits,reportQuantity_type);
           break;
         case NR_CSI_ReportConfig__reportQuantity_PR_ssb_Index_RSRP:
-          evaluate_rsrp_report(UE_info,sched_ctrl,UE_id,csi_report_id,payload,&cumul_bits,reportQuantity_type);
+          evaluate_rsrp_report(UE,sched_ctrl,csi_report_id,payload,&cumul_bits,reportQuantity_type);
           break;
         case NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_CQI:
           cri_bitlen = csi_report->csi_meas_bitlen.cri_bitlen;
@@ -1382,6 +839,7 @@ void extract_pucch_csi_report(NR_CSI_MeasConfig_t *csi_MeasConfig,
           if (r_index != -1)
             skip_zero_padding(&cumul_bits,csi_report,r_index,bitlen);
           pmi_bitlen = evaluate_pmi_report(payload,csi_report,cumul_bits,r_index,sched_ctrl);
+          sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.csi_report_id = csi_report_id;
           cumul_bits += pmi_bitlen;
           evaluate_cqi_report(payload,csi_report,cumul_bits,r_index,sched_ctrl,csirep->cqi_Table);
           break;
@@ -1399,6 +857,7 @@ void extract_pucch_csi_report(NR_CSI_MeasConfig_t *csi_MeasConfig,
           if (r_index != -1)
             skip_zero_padding(&cumul_bits,csi_report,r_index,bitlen);
           pmi_bitlen = evaluate_pmi_report(payload,csi_report,cumul_bits,r_index,sched_ctrl);
+          sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.csi_report_id = csi_report_id;
           cumul_bits += pmi_bitlen;
           evaluate_cqi_report(payload,csi_report,cumul_bits,r_index,sched_ctrl,csirep->cqi_Table);
           break;
@@ -1409,7 +868,7 @@ void extract_pucch_csi_report(NR_CSI_MeasConfig_t *csi_MeasConfig,
   }
 }
 
-static NR_UE_harq_t *find_harq(module_id_t mod_id, frame_t frame, sub_frame_t slot, int UE_id)
+static NR_UE_harq_t *find_harq(frame_t frame, sub_frame_t slot, NR_UE_info_t * UE, int harq_round_max)
 {
   /* In case of realtime problems: we can only identify a HARQ process by
    * timing. If the HARQ process's feedback_frame/feedback_slot is not the one we
@@ -1417,7 +876,7 @@ static NR_UE_harq_t *find_harq(module_id_t mod_id, frame_t frame, sub_frame_t sl
    * skip this HARQ process, which is what happens in the loop below.
    * Similarly, we might be "in advance", in which case we need to skip
    * this result. */
-  NR_UE_sched_ctrl_t *sched_ctrl = &RC.nrmac[mod_id]->UE_info.UE_sched_ctrl[UE_id];
+  NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
   int8_t pid = sched_ctrl->feedback_dl_harq.head;
   if (pid < 0)
     return NULL;
@@ -1433,7 +892,7 @@ static NR_UE_harq_t *find_harq(module_id_t mod_id, frame_t frame, sub_frame_t sl
           frame,
           slot);
     remove_front_nr_list(&sched_ctrl->feedback_dl_harq);
-    handle_dl_harq(mod_id, UE_id, pid, 0);
+    handle_dl_harq(UE, pid, 0, harq_round_max);
     pid = sched_ctrl->feedback_dl_harq.head;
     if (pid < 0)
       return NULL;
@@ -1458,20 +917,19 @@ void handle_nr_uci_pucch_0_1(module_id_t mod_id,
                              sub_frame_t slot,
                              const nfapi_nr_uci_pucch_pdu_format_0_1_t *uci_01)
 {
-  int UE_id = find_nr_UE_id(mod_id, uci_01->rnti);
-  if (UE_id < 0) {
+  NR_UE_info_t * UE = find_nr_UE(&RC.nrmac[mod_id]->UE_info, uci_01->rnti);
+  if (!UE) {
     LOG_E(NR_MAC, "%s(): unknown RNTI %04x in PUCCH UCI\n", __func__, uci_01->rnti);
     return;
   }
-  NR_UE_info_t *UE_info = &RC.nrmac[mod_id]->UE_info;
-  NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+  NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
 
   if (((uci_01->pduBitmap >> 1) & 0x01)) {
     // iterate over received harq bits
     for (int harq_bit = 0; harq_bit < uci_01->harq->num_harq; harq_bit++) {
       const uint8_t harq_value = uci_01->harq->harq_list[harq_bit].harq_value;
       const uint8_t harq_confidence = uci_01->harq->harq_confidence_level;
-      NR_UE_harq_t *harq = find_harq(mod_id, frame, slot, UE_id);
+      NR_UE_harq_t *harq = find_harq(frame, slot, UE, RC.nrmac[mod_id]->dl_bler.harq_round_max);
       if (!harq) {
         LOG_E(NR_MAC, "Oh no! Could not find a harq in %s!\n", __FUNCTION__);
         break;
@@ -1480,8 +938,8 @@ void handle_nr_uci_pucch_0_1(module_id_t mod_id,
       const int8_t pid = sched_ctrl->feedback_dl_harq.head;
       remove_front_nr_list(&sched_ctrl->feedback_dl_harq);
       LOG_D(NR_MAC,"%4d.%2d bit %d pid %d ack/nack %d\n",frame, slot, harq_bit,pid,harq_value);
-      handle_dl_harq(mod_id, UE_id, pid, harq_value == 0 && harq_confidence == 0);
-      if (harq_confidence == 1)  UE_info->mac_stats[UE_id].pucch0_DTX++;
+      handle_dl_harq(UE, pid, harq_value == 0 && harq_confidence == 0, RC.nrmac[mod_id]->dl_bler.harq_round_max);
+      if (harq_confidence == 1)  UE->mac_stats.pucch0_DTX++;
     }
   }
 
@@ -1506,19 +964,21 @@ void handle_nr_uci_pucch_2_3_4(module_id_t mod_id,
                                sub_frame_t slot,
                                const nfapi_nr_uci_pucch_pdu_format_2_3_4_t *uci_234)
 {
-  int UE_id = find_nr_UE_id(mod_id, uci_234->rnti);
-  if (UE_id < 0) {
+  NR_UE_info_t * UE = find_nr_UE(&RC.nrmac[mod_id]->UE_info, uci_234->rnti);
+  if (!UE) {
     LOG_E(NR_MAC, "%s(): unknown RNTI %04x in PUCCH UCI\n", __func__, uci_234->rnti);
     return;
   }
-  AssertFatal(RC.nrmac[mod_id]->UE_info.CellGroup[UE_id],"Cellgroup is null for UE %d/%x\n",UE_id,uci_234->rnti);
-  AssertFatal(RC.nrmac[mod_id]->UE_info.CellGroup[UE_id]->spCellConfig, "Cellgroup->spCellConfig is null for UE %d/%x\n",UE_id,uci_234->rnti);
-  AssertFatal(RC.nrmac[mod_id]->UE_info.CellGroup[UE_id]->spCellConfig->spCellConfigDedicated, "Cellgroup->spCellConfig->spCellConfigDedicated is null for UE %d/%x\n",UE_id,uci_234->rnti);
-  if ( RC.nrmac[mod_id]->UE_info.CellGroup[UE_id]->spCellConfig->spCellConfigDedicated->csi_MeasConfig==NULL) return;
+  AssertFatal(UE->CellGroup,"Cellgroup is null for UE %04x\n", uci_234->rnti);
+  AssertFatal(UE->CellGroup->spCellConfig,
+             "Cellgroup->spCellConfig is null for UE %04x\n", uci_234->rnti);
+  AssertFatal(UE->CellGroup->spCellConfig->spCellConfigDedicated,
+              "Cellgroup->spCellConfig->spCellConfigDedicated is null for UE %04x\n", uci_234->rnti);
+  if ( UE->CellGroup->spCellConfig->spCellConfigDedicated->csi_MeasConfig==NULL)
+    return;
 
-  NR_CSI_MeasConfig_t *csi_MeasConfig = RC.nrmac[mod_id]->UE_info.CellGroup[UE_id]->spCellConfig->spCellConfigDedicated->csi_MeasConfig->choice.setup;
-  NR_UE_info_t *UE_info = &RC.nrmac[mod_id]->UE_info;
-  NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+  NR_CSI_MeasConfig_t *csi_MeasConfig = UE->CellGroup->spCellConfig->spCellConfigDedicated->csi_MeasConfig->choice.setup;
+  NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
 
   // tpc (power control)
   // TODO PUCCH2 SNR computation is not correct -> ignore the following
@@ -1531,20 +991,20 @@ void handle_nr_uci_pucch_2_3_4(module_id_t mod_id,
     // iterate over received harq bits
     for (int harq_bit = 0; harq_bit < uci_234->harq.harq_bit_len; harq_bit++) {
       const int acknack = ((uci_234->harq.harq_payload[harq_bit >> 3]) >> harq_bit) & 0x01;
-      NR_UE_harq_t *harq = find_harq(mod_id, frame, slot, UE_id);
+      NR_UE_harq_t *harq = find_harq(frame, slot, UE, RC.nrmac[mod_id]->dl_bler.harq_round_max);
       if (!harq)
         break;
       DevAssert(harq->is_waiting);
       const int8_t pid = sched_ctrl->feedback_dl_harq.head;
       remove_front_nr_list(&sched_ctrl->feedback_dl_harq);
-      handle_dl_harq(mod_id, UE_id, pid, uci_234->harq.harq_crc != 1 && acknack);
+      handle_dl_harq(UE, pid, uci_234->harq.harq_crc != 1 && acknack, RC.nrmac[mod_id]->dl_bler.harq_round_max);
     }
   }
   if ((uci_234->pduBitmap >> 2) & 0x01) {
     //API to parse the csi report and store it into sched_ctrl
-    extract_pucch_csi_report(csi_MeasConfig, uci_234, frame, slot, UE_id, mod_id);
+    extract_pucch_csi_report(csi_MeasConfig, uci_234, frame, slot, UE, RC.nrmac[mod_id]->common_channels->ServingCellConfigCommon);
     //TCI handling function
-    tci_handling(mod_id, UE_id,frame, slot);
+    tci_handling(UE,frame, slot);
   }
   if ((uci_234->pduBitmap >> 3) & 0x01) {
     //@TODO:Handle CSI Report 2
@@ -1606,18 +1066,16 @@ bool test_acknack_vrb_occupation(NR_UE_sched_ctrl_t *sched_ctrl,
   return true;
 }
 
-
 // this function returns an index to NR_sched_pucch structure
 // currently this structure contains PUCCH0 at index 0 and PUCCH2 at index 1
 // if the function returns -1 it was not possible to schedule acknack
 // when current pucch is ready to be scheduled nr_fill_nfapi_pucch is called
 int nr_acknack_scheduling(int mod_id,
-                          int UE_id,
+                          NR_UE_info_t *UE,
                           frame_t frame,
                           sub_frame_t slot,
                           int r_pucch,
                           int is_common) {
-
   const int CC_id = 0;
   const int minfbtime = RC.nrmac[mod_id]->minRXTXTIMEpdsch;
   const NR_ServingCellConfigCommon_t *scc = RC.nrmac[mod_id]->common_channels[CC_id].ServingCellConfigCommon;
@@ -1635,8 +1093,8 @@ int nr_acknack_scheduling(int mod_id,
    * * SR uses format 0 and is allocated in the first UL (mixed) slot (and not
    *   later)
    * * each UE has dedicated PUCCH Format 0 resources, and we use index 0! */
-  NR_UE_sched_ctrl_t *sched_ctrl = &RC.nrmac[mod_id]->UE_info.UE_sched_ctrl[UE_id];
-  NR_CellGroupConfig_t *cg = RC.nrmac[mod_id]->UE_info.CellGroup[UE_id];
+  NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
+  NR_CellGroupConfig_t *cg = UE->CellGroup;
 
   NR_PUCCH_Config_t *pucch_Config = NULL;
   if (sched_ctrl->active_ubwp) {
@@ -1671,11 +1129,13 @@ int nr_acknack_scheduling(int mod_id,
     const int f = pucch->frame;
     const int s = pucch->ul_slot;
     LOG_D(NR_MAC, "In %s: %4d.%2d DAI = 2 pucch currently in %4d.%2d, advancing by 1 slot\n", __FUNCTION__, frame, slot, f, s);
-    if (!(csi_pucch 
-        && csi_pucch->csi_bits > 0
-        && csi_pucch->frame == f
-        && csi_pucch->ul_slot == s)) 
-      nr_fill_nfapi_pucch(mod_id, frame, slot, pucch, UE_id);
+
+    if (!(csi_pucch
+          && csi_pucch->csi_bits > 0
+          && csi_pucch->frame == f
+          && csi_pucch->ul_slot == s))
+      nr_fill_nfapi_pucch(RC.nrmac[mod_id], frame, slot, pucch, UE);
+
     memset(pucch, 0, sizeof(*pucch));
     pucch->frame = s == n_slots_frame - 1 ? (f + 1) % 1024 : f;
     if(((s + 1)%nr_slots_period) == 0)
@@ -1686,13 +1146,14 @@ int nr_acknack_scheduling(int mod_id,
     // skip the CSI PUCCH if it is present and if in the next frame/slot
     // and if we don't multiplex
     csi_pucch->r_pucch=-1;
-    if (csi_pucch 
+    if (csi_pucch
         && csi_pucch->csi_bits > 0
         && csi_pucch->frame == pucch->frame
         && csi_pucch->ul_slot == pucch->ul_slot
         && !csi_pucch->simultaneous_harqcsi) {
       LOG_D(NR_MAC,"Cannot multiplex csi_pucch for %d.%d\n",csi_pucch->frame,csi_pucch->ul_slot);
-      nr_fill_nfapi_pucch(mod_id, frame, slot, csi_pucch, UE_id);
+      nr_fill_nfapi_pucch(RC.nrmac[mod_id], frame, slot, csi_pucch, UE);
+
       memset(csi_pucch, 0, sizeof(*csi_pucch));
       pucch->frame = pucch->ul_slot == n_slots_frame - 1 ? (pucch->frame + 1) % 1024 : pucch->frame;
       if(((pucch->ul_slot + 1)%nr_slots_period) == 0)
@@ -1716,11 +1177,10 @@ int nr_acknack_scheduling(int mod_id,
 
   NR_SearchSpace__searchSpaceType_PR ss_type = (is_common==0 && (sched_ctrl->active_bwp || ubwpd)) ? NR_SearchSpace__searchSpaceType_PR_ue_Specific: NR_SearchSpace__searchSpaceType_PR_common;
   uint8_t pdsch_to_harq_feedback[8];
-  int bwp_Id = 0;
-  if (sched_ctrl->active_ubwp) bwp_Id = sched_ctrl->active_ubwp->bwp_Id;
+  const int bwp_id = sched_ctrl->active_bwp ? sched_ctrl->active_bwp->bwp_Id : 0;
 
   int max_fb_time = 0;
-  get_pdsch_to_harq_feedback(mod_id, UE_id, bwp_Id, ss_type, &max_fb_time, pdsch_to_harq_feedback);
+  get_pdsch_to_harq_feedback(UE, bwp_id, ss_type, &max_fb_time, pdsch_to_harq_feedback);
 
   LOG_D(NR_MAC, "In %s: 1b. DL %4d.%2d, UL_ACK %4d.%2d, DAI_C %d\n", __FUNCTION__, frame,slot,pucch->frame,pucch->ul_slot,pucch->dai_c);
   /* there is a HARQ. Check whether we can use it for this ACKNACK */
@@ -1747,14 +1207,14 @@ int nr_acknack_scheduling(int mod_id,
           csi_pucch->csi_bits > 0 &&
           csi_pucch->frame == f &&
           csi_pucch->ul_slot == s))
-        nr_fill_nfapi_pucch(mod_id, frame, slot, pucch, UE_id);
+        nr_fill_nfapi_pucch(RC.nrmac[mod_id], frame, slot, pucch, UE);
       memset(pucch, 0, sizeof(*pucch));
       pucch->frame = s == n_slots_frame - 1 ? (f + 1) % 1024 : f;
       if(((s + 1)%nr_slots_period) == 0)
         pucch->ul_slot = (s + 1 + first_ul_slot_period) % n_slots_frame;
       else
         pucch->ul_slot = (s + 1) % n_slots_frame;
-      return nr_acknack_scheduling(mod_id, UE_id, frame, slot, r_pucch,is_common);
+      return nr_acknack_scheduling(mod_id, UE, frame, slot, r_pucch,is_common);
     }
 
     pucch->timing_indicator = i;
@@ -1780,8 +1240,8 @@ int nr_acknack_scheduling(int mod_id,
       ((pucch->frame*n_slots_frame + pucch->ul_slot) <
       (frame*n_slots_frame + slot))) {
     AssertFatal(pucch->sr_flag + pucch->dai_c == 0,
-                "expected no SR/AckNack for UE %d in %4d.%2d, but has %d/%d for %4d.%2d\n",
-                UE_id, frame, slot, pucch->sr_flag, pucch->dai_c, pucch->frame, pucch->ul_slot);
+                "expected no SR/AckNack for UE %04x in %4d.%2d, but has %d/%d for %4d.%2d\n",
+                UE->rnti, frame, slot, pucch->sr_flag, pucch->dai_c, pucch->frame, pucch->ul_slot);
     const int s = next_ul_slot;
     pucch->frame = s < n_slots_frame ? frame : (frame + 1) % 1024;
     pucch->ul_slot = s % n_slots_frame;
@@ -1831,11 +1291,11 @@ int nr_acknack_scheduling(int mod_id,
   }
   if (ind_found==-1) {
     LOG_D(NR_MAC,
-          "%4d.%2d could not find pdsch_to_harq_feedback for UE %d: earliest "
+          "%4d.%2d could not find pdsch_to_harq_feedback for UE %04x: earliest "
           "ack slot %d\n",
           frame,
           slot,
-          UE_id,
+          UE->rnti,
           pucch->ul_slot);
     return -1;
   }
@@ -1850,7 +1310,7 @@ int nr_acknack_scheduling(int mod_id,
     if(!csi_pucch->simultaneous_harqcsi
        || ((csi_pucch->csi_bits + csi_pucch->dai_c) >= 11)) {
       LOG_D(NR_MAC,"Cannot multiplex csi_pucch %d +csi_pucch->dai_c %d for %d.%d\n",csi_pucch->csi_bits,csi_pucch->dai_c,csi_pucch->frame,csi_pucch->ul_slot);
-      nr_fill_nfapi_pucch(mod_id, frame, slot, csi_pucch, UE_id);
+      nr_fill_nfapi_pucch(RC.nrmac[mod_id], frame, slot, csi_pucch, UE);
       memset(csi_pucch, 0, sizeof(*csi_pucch));
       /* advance the UL slot information in PUCCH by one so we won't schedule in
        * the same slot again */
@@ -1862,7 +1322,7 @@ int nr_acknack_scheduling(int mod_id,
         pucch->ul_slot = (s + 1 + first_ul_slot_period) % n_slots_frame;
       else
         pucch->ul_slot = (s + 1) % n_slots_frame;
-      return nr_acknack_scheduling(mod_id, UE_id, frame, slot, r_pucch,is_common);
+      return nr_acknack_scheduling(mod_id, UE, frame, slot, r_pucch,is_common);
     }
     // multiplexing harq and csi in a pucch
     else {
@@ -1899,31 +1359,27 @@ int nr_acknack_scheduling(int mod_id,
 }
 
 
-void nr_sr_reporting(int Mod_idP, frame_t SFN, sub_frame_t slot)
+void nr_sr_reporting(gNB_MAC_INST *nrmac, frame_t SFN, sub_frame_t slot)
 {
-  gNB_MAC_INST *nrmac = RC.nrmac[Mod_idP];
   if (!is_xlsch_in_slot(nrmac->ulsch_slot_bitmap[slot / 64], slot))
     return;
   NR_ServingCellConfigCommon_t *scc = nrmac->common_channels->ServingCellConfigCommon;
   const int n_slots_frame = nr_slots_per_frame[*scc->ssbSubcarrierSpacing];
-  NR_UE_info_t *UE_info = &nrmac->UE_info;
-  NR_list_t *UE_list = &UE_info->list;
-  for (int UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) {
-    NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+  UE_iterator(nrmac->UE_info.list, UE) {
+    NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
 
-    if (sched_ctrl->ul_failure==1) continue;
+    if (sched_ctrl->ul_failure==1 || sched_ctrl->rrc_processing_timer>0) continue;
     NR_PUCCH_Config_t *pucch_Config = NULL;
     if (sched_ctrl->active_ubwp) {
       pucch_Config = sched_ctrl->active_ubwp->bwp_Dedicated->pucch_Config->choice.setup;
-    } else if (RC.nrmac[Mod_idP]->UE_info.CellGroup[UE_id] &&
-             RC.nrmac[Mod_idP]->UE_info.CellGroup[UE_id]->spCellConfig &&
-             RC.nrmac[Mod_idP]->UE_info.CellGroup[UE_id]->spCellConfig->spCellConfigDedicated &&
-             RC.nrmac[Mod_idP]->UE_info.CellGroup[UE_id]->spCellConfig->spCellConfigDedicated->uplinkConfig &&
-             RC.nrmac[Mod_idP]->UE_info.CellGroup[UE_id]->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP &&
-             RC.nrmac[Mod_idP]->UE_info.CellGroup[UE_id]->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP->pucch_Config->choice.setup) {
-      pucch_Config = RC.nrmac[Mod_idP]->UE_info.CellGroup[UE_id]->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP->pucch_Config->choice.setup;
+    } else if (UE->CellGroup &&
+             UE->CellGroup->spCellConfig &&
+             UE->CellGroup->spCellConfig->spCellConfigDedicated &&
+             UE->CellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig &&
+             UE->CellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP &&
+             UE->CellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP->pucch_Config->choice.setup) {
+      pucch_Config = UE->CellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP->pucch_Config->choice.setup;
     }
-
     else continue;
     if (!pucch_Config->schedulingRequestResourceToAddModList) 
         continue;
@@ -1968,7 +1424,7 @@ void nr_sr_reporting(int Mod_idP, frame_t SFN, sub_frame_t slot)
           continue;
         nfapi_nr_pucch_pdu_t *pdu = &ul_tti_req->pdus_list[i].pucch_pdu;
         /* check that it is our PUCCH F0. Assuming there can be only one */
-        if (pdu->rnti == UE_info->rnti[UE_id]
+        if (pdu->rnti == UE->rnti
             && pdu->format_type == 0 // does not use NR_PUCCH_Resource__format_PR_format0
             && pdu->initial_cyclic_shift == pucch_res->format.choice.format0->initialCyclicShift
             && pdu->nr_of_symbols == pucch_res->format.choice.format0->nrofSymbols
@@ -1977,8 +1433,7 @@ void nr_sr_reporting(int Mod_idP, frame_t SFN, sub_frame_t slot)
           pdu->sr_flag = 1;
           nfapi_allocated = true;
           break;
-        }
-        else if (pdu->rnti == UE_info->rnti[UE_id]
+        } else if (pdu->rnti == UE->rnti
             && pdu->format_type == 2 // does not use NR_PUCCH_Resource__format_PR_format0
             && pdu->nr_of_symbols == pucch_res->format.choice.format2->nrofSymbols
             && pdu->start_symbol_index == pucch_res->format.choice.format2->startingSymbolIndex) {
@@ -1986,9 +1441,7 @@ void nr_sr_reporting(int Mod_idP, frame_t SFN, sub_frame_t slot)
           pdu->sr_flag = 1;
           nfapi_allocated = true;
           break;
-
-        }
-        else if (pdu->rnti == UE_info->rnti[UE_id]
+        } else if (pdu->rnti == UE->rnti
             && pdu->format_type == 1 // does not use NR_PUCCH_Resource__format_PR_format0
             && pdu->nr_of_symbols == pucch_res->format.choice.format1->nrofSymbols
             && pdu->start_symbol_index == pucch_res->format.choice.format1->startingSymbolIndex) {
@@ -1996,9 +1449,7 @@ void nr_sr_reporting(int Mod_idP, frame_t SFN, sub_frame_t slot)
           pdu->sr_flag = 1;
           nfapi_allocated = true;
           break;
-
-        }
-        else if (pdu->rnti == UE_info->rnti[UE_id]
+        } else if (pdu->rnti == UE->rnti
             && pdu->format_type == 3 // does not use NR_PUCCH_Resource__format_PR_format0
             && pdu->nr_of_symbols == pucch_res->format.choice.format3->nrofSymbols
             && pdu->start_symbol_index == pucch_res->format.choice.format3->startingSymbolIndex) {
@@ -2006,9 +1457,7 @@ void nr_sr_reporting(int Mod_idP, frame_t SFN, sub_frame_t slot)
           pdu->sr_flag = 1;
           nfapi_allocated = true;
           break;
-
-        }
-        else if (pdu->rnti == UE_info->rnti[UE_id]
+        } else if (pdu->rnti == UE->rnti
             && pdu->format_type == 4 // does not use NR_PUCCH_Resource__format_PR_format0
             && pdu->nr_of_symbols == pucch_res->format.choice.format4->nrofSymbols
             && pdu->start_symbol_index == pucch_res->format.choice.format4->startingSymbolIndex) {
@@ -2016,7 +1465,6 @@ void nr_sr_reporting(int Mod_idP, frame_t SFN, sub_frame_t slot)
           pdu->sr_flag = 1;
           nfapi_allocated = true;
           break;
-
         }
       }
 
@@ -2040,7 +1488,7 @@ void nr_sr_reporting(int Mod_idP, frame_t SFN, sub_frame_t slot)
           .resource_indicator = found,
           .r_pucch = -1
         };
-        nr_fill_nfapi_pucch(Mod_idP, SFN, slot, &sched_sr, UE_id);
+        nr_fill_nfapi_pucch(nrmac, SFN, slot, &sched_sr, UE);
       }
     }
   }
diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
index 8831a69f0c5..a6e20a7e4d9 100644
--- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
@@ -36,6 +36,9 @@
 #include <openair2/UTIL/OPT/opt.h>
 
 #include "LAYER2/NR_MAC_COMMON/nr_mac_extern.h"
+extern void process_CellGroup(NR_CellGroupConfig_t *CellGroup, NR_UE_sched_ctrl_t *sched_ctrl);
+
+//#define SRS_IND_DEBUG
 
 int get_dci_format(NR_UE_sched_ctrl_t *sched_ctrl) {
 
@@ -46,138 +49,18 @@ int get_dci_format(NR_UE_sched_ctrl_t *sched_ctrl) {
   return(dci_format);
 }
 
-void calculate_preferred_ul_tda(module_id_t module_id, const NR_BWP_Uplink_t *ubwp)
-{
-  gNB_MAC_INST *nrmac = RC.nrmac[module_id];
-  const int bwp_id = ubwp->bwp_Id;
-  if (nrmac->preferred_ul_tda[bwp_id])
-    return;
+const int get_ul_tda(const gNB_MAC_INST *nrmac, const NR_ServingCellConfigCommon_t *scc, int slot) {
 
   /* there is a mixed slot only when in TDD */
-  NR_ServingCellConfigCommon_t *scc = nrmac->common_channels->ServingCellConfigCommon;
-  frame_type_t frame_type = nrmac->common_channels->frame_type;
-  const int n = nr_slots_per_frame[*scc->ssbSubcarrierSpacing];
-
-  NR_ServingCellConfigCommonSIB_t *scc_sib1 = get_softmodem_params()->sa ?
-      RC.nrmac[module_id]->common_channels[0].sib1->message.choice.c1->choice.systemInformationBlockType1->servingCellConfigCommon : NULL;
-
-  AssertFatal(scc!=NULL || scc_sib1!=NULL,"We need one serving cell config common\n");
-
-  const int mu = scc ? scc->uplinkConfigCommon->initialUplinkBWP->genericParameters.subcarrierSpacing :
-                 scc_sib1->uplinkConfigCommon->initialUplinkBWP.genericParameters.subcarrierSpacing;
-
-  NR_TDD_UL_DL_Pattern_t *tdd = NULL;
-  if (scc && scc->tdd_UL_DL_ConfigurationCommon) {
-    tdd = &scc->tdd_UL_DL_ConfigurationCommon->pattern1;
-  } else if (scc_sib1 && scc_sib1->tdd_UL_DL_ConfigurationCommon) {
-    tdd = &scc_sib1->tdd_UL_DL_ConfigurationCommon->pattern1;
-  }
-
-  /* Uplink symbols are at the end of the slot */
-  int symb_ulMixed = 0;
-  int nr_mix_slots = 0;
-  int nr_slots_period = n;
-  if (tdd) {
-    symb_ulMixed = ((1 << tdd->nrofUplinkSymbols) - 1) << (14 - tdd->nrofUplinkSymbols);
-    nr_mix_slots = tdd->nrofDownlinkSymbols != 0 || tdd->nrofUplinkSymbols != 0;
-    nr_slots_period /= get_nb_periods_per_frame(tdd->dl_UL_TransmissionPeriodicity);
-  }
-  else
-    // if TDD configuration is not present and the band is not FDD, it means it is a dynamic TDD configuration
-    AssertFatal(nrmac->common_channels->frame_type == FDD,"Dynamic TDD not handled yet\n");
-
-  const struct NR_PUCCH_Config__resourceToAddModList *resList = ubwp->bwp_Dedicated->pucch_Config->choice.setup->resourceToAddModList;
-  // for the moment, just block any symbol that might hold a PUCCH, regardless
-  // of the RB. This is a big simplification, as most RBs will NOT have a PUCCH
-  // in the respective symbols, but it simplifies scheduling
-  uint16_t symb_pucch = 0;
-  for (int i = 0; i < resList->list.count; ++i) {
-    const NR_PUCCH_Resource_t *resource = resList->list.array[i];
-    int nrofSymbols = 0;
-    int startingSymbolIndex = 0;
-    switch (resource->format.present) {
-      case NR_PUCCH_Resource__format_PR_format0:
-        nrofSymbols = resource->format.choice.format0->nrofSymbols;
-        startingSymbolIndex = resource->format.choice.format0->startingSymbolIndex;
-        break;
-      case NR_PUCCH_Resource__format_PR_format1:
-        nrofSymbols = resource->format.choice.format1->nrofSymbols;
-        startingSymbolIndex = resource->format.choice.format1->startingSymbolIndex;
-        break;
-      case NR_PUCCH_Resource__format_PR_format2:
-        nrofSymbols = resource->format.choice.format2->nrofSymbols;
-        startingSymbolIndex = resource->format.choice.format2->startingSymbolIndex;
-        break;
-      case NR_PUCCH_Resource__format_PR_format3:
-        nrofSymbols = resource->format.choice.format3->nrofSymbols;
-        startingSymbolIndex = resource->format.choice.format3->startingSymbolIndex;
-        break;
-      case NR_PUCCH_Resource__format_PR_format4:
-        nrofSymbols = resource->format.choice.format4->nrofSymbols;
-        startingSymbolIndex = resource->format.choice.format4->startingSymbolIndex;
-        break;
-      default:
-        AssertFatal(0, "found NR_PUCCH format index %d\n", resource->format.present);
-        break;
-    }
-    symb_pucch |= ((1 << nrofSymbols) - 1) << startingSymbolIndex;
-  }
-
-  /* check that TDA index 1 fits into UL slot and does not overlap with PUCCH */
-  const struct NR_PUSCH_TimeDomainResourceAllocationList *tdaList = ubwp->bwp_Common->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList;
-  const NR_PUSCH_TimeDomainResourceAllocation_t *tdaP_UL = tdaList->list.array[0];
-  const int k2 = get_K2(scc, scc_sib1, (NR_BWP_Uplink_t*)ubwp,0, mu);
-  int start, len;
-  SLIV2SL(tdaP_UL->startSymbolAndLength, &start, &len);
-  const uint16_t symb_tda = ((1 << len) - 1) << start;
-  // check whether PUCCH and TDA overlap: then, we cannot use it. Note that
-  // here we assume that the PUCCH is scheduled in every slot, and on all RBs
-  // (which is mostly not true, this is a simplification)
-  AssertFatal((symb_pucch & symb_tda) == 0, "TDA index 0 for UL overlaps with PUCCH\n");
-
-  // get largest time domain allocation (TDA) for UL slot and UL in mixed slot
-  int tdaMi = -1;
-  if (nr_mix_slots>0) {
-    const NR_PUSCH_TimeDomainResourceAllocation_t *tdaP_Mi = tdaList->list.array[1];
-    AssertFatal(k2 == get_K2(scc, scc_sib1, (NR_BWP_Uplink_t*)ubwp, 1, mu),
-                "scheduler cannot handle different k2 for UL slot (%d) and UL Mixed slot (%ld)\n",
-                k2,
-                get_K2(scc, scc_sib1, (NR_BWP_Uplink_t*)ubwp, 1, mu));
-    SLIV2SL(tdaP_Mi->startSymbolAndLength, &start, &len);
-    const uint16_t symb_tda_mi = ((1 << len) - 1) << start;
-    // check whether PUCCH and TDA overlap: then, we cannot use it. Also, check
-    // whether TDA is entirely within mixed slot, UL. Note that here we assume
-    // that the PUCCH is scheduled in every slot, and on all RBs (which is
-    // mostly not true, this is a simplification)
-    if ((symb_pucch & symb_tda_mi) == 0 && (symb_ulMixed & symb_tda_mi) == symb_tda_mi) {
-      tdaMi = 1;
-    } else {
-      LOG_E(NR_MAC,
-            "TDA index 1 UL overlaps with PUCCH or is not entirely in mixed slot (symb_pucch %x symb_ulMixed %x symb_tda_mi %x), won't schedule UL mixed slot\n",
-            symb_pucch,
-            symb_ulMixed,
-            symb_tda_mi);
-    }
-  }
-
-  nrmac->preferred_ul_tda[bwp_id] = malloc(n * sizeof(*nrmac->preferred_ul_tda[bwp_id]));
-
-  for (int slot = 0; slot < n; ++slot) {
-    const int sched_slot = (slot + k2) % n;
-    nrmac->preferred_ul_tda[bwp_id][slot] = -1;
-    if (frame_type == FDD || sched_slot % nr_slots_period >= tdd->nrofDownlinkSlots + nr_mix_slots)
-      nrmac->preferred_ul_tda[bwp_id][slot] = 0;
-    else if (nr_mix_slots && sched_slot % nr_slots_period == tdd->nrofDownlinkSlots)
-      nrmac->preferred_ul_tda[bwp_id][slot] = tdaMi;
-    LOG_D(MAC, "DL slot %d UL slot %d preferred_ul_tda %d\n", slot, sched_slot, nrmac->preferred_ul_tda[bwp_id][slot]);
-  }
+  const NR_TDD_UL_DL_Pattern_t *tdd = scc->tdd_UL_DL_ConfigurationCommon ? &scc->tdd_UL_DL_ConfigurationCommon->pattern1 : NULL;
+  AssertFatal(tdd || nrmac->common_channels->frame_type == FDD, "Dynamic TDD not handled yet\n");
 
-  if (tdd && k2 < tdd->nrofUplinkSlots) {
-    LOG_W(NR_MAC,
-          "k2 %d < tdd->nrofUplinkSlots %ld: not all UL slots can be scheduled\n",
-          k2,
-          tdd->nrofUplinkSlots);
+  if (tdd && tdd->nrofUplinkSymbols > 1) { // if there is uplink symbols in mixed slot
+    const int nr_slots_period = tdd->nrofDownlinkSlots + tdd->nrofUplinkSlots + 1;
+    if ((slot%nr_slots_period) == tdd->nrofDownlinkSlots)
+      return 1;
   }
+  return 0; // if FDD or not mixed slot in TDD, for now use default TDA (TODO handle CSI-RS slots)
 }
 
 //  For both UL-SCH except:
@@ -204,8 +87,8 @@ void calculate_preferred_ul_tda(module_id_t module_id, const NR_BWP_Uplink_t *ub
 //  F: length of L is 0:8 or 1:16 bits wide
 //  R: Reserved bit, set to zero.
 
-int nr_process_mac_pdu(module_id_t module_idP,
-                        int UE_id,
+int nr_process_mac_pdu( instance_t module_idP,
+			NR_UE_info_t* UE,
                         uint8_t CC_id,
                         frame_t frameP,
                         sub_frame_t slot,
@@ -216,11 +99,10 @@ int nr_process_mac_pdu(module_id_t module_idP,
 
     uint8_t done = 0;
 
-    NR_UE_info_t *UE_info = &RC.nrmac[module_idP]->UE_info;
-    NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+    NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
 
     if ( pduP[0] != UL_SCH_LCID_PADDING )
-      trace_NRpdu(DIRECTION_UPLINK, pduP, pdu_len, UE_id, WS_C_RNTI, UE_info->rnti[UE_id], frameP, 0, 0, 0);
+      trace_NRpdu(DIRECTION_UPLINK, pduP, pdu_len, WS_C_RNTI, UE->rnti, frameP, 0, 0, 0);
 
     #ifdef ENABLE_MAC_PAYLOAD_DEBUG
     LOG_I(NR_MAC, "In %s: dumping MAC PDU in %d.%d:\n", __func__, frameP, slot);
@@ -317,7 +199,7 @@ int nr_process_mac_pdu(module_id_t module_idP,
 
           for (int i = 0; i < NR_NB_RA_PROC_MAX; i++) {
             NR_RA_t *ra = &RC.nrmac[module_idP]->common_channels[CC_id].ra[i];
-            if (ra->state >= WAIT_Msg3 && ra->rnti == UE_info->rnti[UE_id]) {
+            if (ra->state >= WAIT_Msg3 && ra->rnti == UE->rnti) {
               ra->crnti = ((pduP[1]&0xFF)<<8)|(pduP[2]&0xFF);
               ra->msg3_dcch_dtch = true;
               LOG_I(NR_MAC, "Received UL_SCH_LCID_C_RNTI with C-RNTI 0x%04x\n", ra->crnti);
@@ -378,22 +260,23 @@ int nr_process_mac_pdu(module_id_t module_idP,
 	  if (!get_mac_len(pduP, pdu_len, &mac_len, &mac_subheader_len))
 	    return 0;
 
-          rnti_t crnti = UE_info->rnti[UE_id];
-          int UE_idx = UE_id;
+          rnti_t crnti = UE->rnti;
+	  NR_UE_info_t* UE_idx = UE;
           for (int i = 0; i < NR_NB_RA_PROC_MAX; i++) {
             NR_RA_t *ra = &RC.nrmac[module_idP]->common_channels[CC_id].ra[i];
-            if (ra->state >= WAIT_Msg3 && ra->rnti == UE_info->rnti[UE_id]) {
+            if (ra->state >= WAIT_Msg3 && ra->rnti == UE->rnti) {
               uint8_t *next_subpduP = pduP + mac_subheader_len + mac_len;
               if ((pduP[mac_subheader_len+mac_len] & 0x3F) == UL_SCH_LCID_C_RNTI) {
                 crnti = ((next_subpduP[1]&0xFF)<<8)|(next_subpduP[2]&0xFF);
-                UE_idx = find_nr_UE_id(module_idP, crnti);
+		LOG_W(NR_MAC, " UL_SCH_LCID_SRB for rnti %04x\n", crnti);
+                UE_idx = find_nr_UE(&RC.nrmac[module_idP]->UE_info, crnti);
                 break;
               }
             }
           }
 
-          if (UE_info->CellGroup[UE_idx]) {
-            LOG_D(NR_MAC, "[UE %d] Frame %d : ULSCH -> UL-DCCH %d (gNB %d, %d bytes), rnti: 0x%04x \n", module_idP, frameP, rx_lcid, module_idP, mac_len, crnti);
+          if (UE_idx->CellGroup) {
+            LOG_D(NR_MAC, "Frame %d : ULSCH -> UL-DCCH %d (gNB %ld, %d bytes), rnti: 0x%04x \n", frameP, rx_lcid, module_idP, mac_len, crnti);
             mac_rlc_data_ind(module_idP,
                              crnti,
                              module_idP,
@@ -406,7 +289,7 @@ int nr_process_mac_pdu(module_id_t module_idP,
                              1,
                              NULL);
           } else {
-            AssertFatal(1==0,"[UE %d] Frame/Slot %d.%d : Received LCID %d which is not configured, dropping packet\n",UE_id,frameP,slot,rx_lcid);
+            AssertFatal(1==0,"[UE %04x] Frame/Slot %d.%d : Received LCID %d which is not configured, dropping packet\n",UE->rnti,frameP,slot,rx_lcid);
           }
           break;
         case UL_SCH_LCID_SRB3:
@@ -444,46 +327,50 @@ int nr_process_mac_pdu(module_id_t module_idP,
                               frameP,
                               0,
                               0,
-                              UE_info->rnti[UE_id],
+                              UE->rnti,
                               CCCH,
                               pduP + mac_subheader_len,
                               mac_len,
                               0);
           break;
 
-        case UL_SCH_LCID_DTCH:
+        case UL_SCH_LCID_DTCH ... (UL_SCH_LCID_DTCH + 28):
           //  check if LCID is valid at current time.
-	  if (!get_mac_len(pduP, pdu_len, &mac_len, &mac_subheader_len))
-	    return 0;
+          if (!get_mac_len(pduP, pdu_len, &mac_len, &mac_subheader_len)) {
+            return 0;
+          }
 
-          LOG_D(NR_MAC, "[UE %x] %d.%d: ULSCH -> UL-%s %d (gNB %d, %d bytes)\n",
-                UE_info->rnti[UE_id],
-                frameP,
-                slot,
-                rx_lcid<4?"DCCH":"DTCH",
-                rx_lcid,
-                module_idP,
-                mac_len);
-          UE_info->mac_stats[UE_id].lc_bytes_rx[rx_lcid] += mac_len;
-
-          mac_rlc_data_ind(module_idP,
-                           UE_info->rnti[UE_id],
-                           module_idP,
-                           frameP,
-                           ENB_FLAG_YES,
-                           MBMS_FLAG_NO,
-                           rx_lcid,
-                           (char *)(pduP + mac_subheader_len),
-                           mac_len,
-                           1,
-                           NULL);
-
-          /* Updated estimated buffer when receiving data */
-          if (sched_ctrl->estimated_ul_buffer >= mac_len)
-            sched_ctrl->estimated_ul_buffer -= mac_len;
-          else
-            sched_ctrl->estimated_ul_buffer = 0;
-          break;
+
+            LOG_D(NR_MAC, "[UE %04x] %d.%d : ULSCH -> UL-%s %d (gNB %ld, %d bytes)\n",
+                  UE->rnti,
+                  frameP,
+                  slot,
+                  rx_lcid<4?"DCCH":"DTCH",
+                  rx_lcid,
+                  module_idP,
+                  mac_len);
+            UE->mac_stats.ul.lc_bytes[rx_lcid] += mac_len;
+
+            mac_rlc_data_ind(module_idP,
+                             UE->rnti,
+                             module_idP,
+                             frameP,
+                             ENB_FLAG_YES,
+                             MBMS_FLAG_NO,
+                             rx_lcid,
+                             (char *)(pduP + mac_subheader_len),
+                             mac_len,
+                             1,
+                             NULL);
+
+            /* Updated estimated buffer when receiving data */
+            if (sched_ctrl->estimated_ul_buffer >= mac_len) {
+              sched_ctrl->estimated_ul_buffer -= mac_len;
+            } else {
+              sched_ctrl->estimated_ul_buffer = 0;
+            }
+
+            break;
 
         default:
           LOG_E(NR_MAC, "Received unknown MAC header (LCID = 0x%02x)\n", rx_lcid);
@@ -518,15 +405,14 @@ int nr_process_mac_pdu(module_id_t module_idP,
   return 0;
 }
 
-void abort_nr_ul_harq(module_id_t mod_id, int UE_id, int8_t harq_pid)
+void abort_nr_ul_harq(NR_UE_info_t *UE, int8_t harq_pid)
 {
-  NR_UE_info_t *UE_info = &RC.nrmac[mod_id]->UE_info;
-  NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+  NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
   NR_UE_ul_harq_t *harq = &sched_ctrl->ul_harq_processes[harq_pid];
 
   harq->ndi ^= 1;
   harq->round = 0;
-  UE_info->mac_stats[UE_id].ulsch_errors++;
+  UE->mac_stats.ul.errors++;
   add_tail_nr_list(&sched_ctrl->available_ul_harq, harq_pid);
 
   /* the transmission failed: the UE won't send the data we expected initially,
@@ -542,11 +428,11 @@ void handle_nr_ul_harq(const int CC_idP,
                        sub_frame_t slot,
                        const nfapi_nr_crc_t *crc_pdu)
 {
-  gNB_MAC_INST *gNB_mac = RC.nrmac[mod_id];
-  int UE_id = find_nr_UE_id(mod_id, crc_pdu->rnti);
-  if (UE_id < 0) {
+  NR_UE_info_t* UE = find_nr_UE(&RC.nrmac[mod_id]->UE_info, crc_pdu->rnti);
+  if (!UE) {
+    LOG_W(NR_MAC, "handle harq for rnti %04x, in RA process\n", crc_pdu->rnti);
     for (int i = 0; i < NR_NB_RA_PROC_MAX; ++i) {
-      NR_RA_t *ra = &gNB_mac->common_channels[CC_idP].ra[i];
+      NR_RA_t *ra = &RC.nrmac[mod_id]->common_channels[CC_idP].ra[i];
       if (ra->state >= WAIT_Msg3 &&
           ra->rnti == crc_pdu->rnti)
         return;
@@ -554,8 +440,7 @@ void handle_nr_ul_harq(const int CC_idP,
     LOG_E(NR_MAC, "%s(): unknown RNTI 0x%04x in PUSCH\n", __func__, crc_pdu->rnti);
     return;
   }
-  NR_UE_info_t *UE_info = &RC.nrmac[mod_id]->UE_info;
-  NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+  NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
   int8_t harq_pid = sched_ctrl->feedback_ul_harq.head;
   LOG_D(NR_MAC, "Comparing crc_pdu->harq_id vs feedback harq_pid = %d %d\n",crc_pdu->harq_id, harq_pid);
   while (crc_pdu->harq_id != harq_pid || harq_pid < 0) {
@@ -569,8 +454,9 @@ void handle_nr_ul_harq(const int CC_idP,
 
     remove_front_nr_list(&sched_ctrl->feedback_ul_harq);
     sched_ctrl->ul_harq_processes[harq_pid].is_waiting = false;
-    if(sched_ctrl->ul_harq_processes[harq_pid].round >= gNB_mac->harq_round_max - 1) {
-      abort_nr_ul_harq(mod_id, UE_id, harq_pid);
+
+    if(sched_ctrl->ul_harq_processes[harq_pid].round >= RC.nrmac[mod_id]->ul_bler.harq_round_max - 1) {
+      abort_nr_ul_harq(UE, harq_pid);
     } else {
       sched_ctrl->ul_harq_processes[harq_pid].round++;
       add_tail_nr_list(&sched_ctrl->retrans_ul_harq, harq_pid);
@@ -590,8 +476,8 @@ void handle_nr_ul_harq(const int CC_idP,
           harq_pid,
           crc_pdu->rnti);
     add_tail_nr_list(&sched_ctrl->available_ul_harq, harq_pid);
-  } else if (harq->round >= gNB_mac->harq_round_max - 1) {
-    abort_nr_ul_harq(mod_id, UE_id, harq_pid);
+  } else if (harq->round >= RC.nrmac[mod_id]->ul_bler.harq_round_max  - 1) {
+    abort_nr_ul_harq(UE, harq_pid);
     LOG_D(NR_MAC,
           "RNTI %04x: Ulharq id %d crc failed in all rounds\n",
           crc_pdu->rnti,
@@ -621,15 +507,15 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
                const uint16_t rssi){
 
   gNB_MAC_INST *gNB_mac = RC.nrmac[gnb_mod_idP];
-  NR_UE_info_t *UE_info = &gNB_mac->UE_info;
 
   const int current_rnti = rntiP;
-  const int UE_id = find_nr_UE_id(gnb_mod_idP, current_rnti);
+  LOG_D(NR_MAC, "rx_sdu for rnti %04x\n", current_rnti);
   const int target_snrx10 = gNB_mac->pusch_target_snrx10;
   const int pusch_failure_thres = gNB_mac->pusch_failure_thres;
-
-  if (UE_id != -1) {
-    NR_UE_sched_ctrl_t *UE_scheduling_control = &UE_info->UE_sched_ctrl[UE_id];
+  
+  NR_UE_info_t* UE = find_nr_UE(&gNB_mac->UE_info, current_rnti);
+  if (UE) {
+    NR_UE_sched_ctrl_t *UE_scheduling_control = &UE->UE_sched_ctrl;
     const int8_t harq_pid = UE_scheduling_control->feedback_ul_harq.head;
 
     if (sduP)
@@ -637,15 +523,14 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
         T_INT(rntiP), T_INT(frameP), T_INT(slotP), T_INT(harq_pid),
         T_BUFFER(sduP, sdu_lenP));
 
-    UE_info->mac_stats[UE_id].ulsch_total_bytes_rx += sdu_lenP;
-    LOG_D(NR_MAC, "[gNB %d][PUSCH %d] CC_id %d %d.%d Received ULSCH sdu from PHY (rnti %x, UE_id %d) ul_cqi %d TA %d sduP %p, rssi %d\n",
+    UE->mac_stats.ul.total_bytes += sdu_lenP;
+    LOG_D(NR_MAC, "[gNB %d][PUSCH %d] CC_id %d %d.%d Received ULSCH sdu from PHY (rnti %04x) ul_cqi %d TA %d sduP %p, rssi %d\n",
           gnb_mod_idP,
           harq_pid,
           CC_idP,
           frameP,
           slotP,
           current_rnti,
-          UE_id,
           ul_cqi,
           timing_advance,
           sduP,
@@ -658,10 +543,11 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
         UE_scheduling_control->ta_update = timing_advance;
       UE_scheduling_control->raw_rssi = rssi;
       UE_scheduling_control->pusch_snrx10 = ul_cqi * 5 - 640;
-      LOG_D(NR_MAC, "[UE %d] PUSCH TPC %d(SNRx10 %d) and TA %d\n",UE_id,UE_scheduling_control->tpc0,UE_scheduling_control->pusch_snrx10,UE_scheduling_control->ta_update);
+
+      LOG_D(NR_MAC, "[UE %04x] PUSCH TPC %d and TA %d\n",UE->rnti,UE_scheduling_control->tpc0,UE_scheduling_control->ta_update);
     }
     else{
-      LOG_D(NR_MAC,"[UE %d] Detected DTX : increasing UE TX power\n",UE_id);
+      LOG_D(NR_MAC,"[UE %04x] Detected DTX : increasing UE TX power\n",UE->rnti);
       UE_scheduling_control->tpc0 = 1;
     }
 
@@ -680,13 +566,13 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
     if (sduP != NULL){
       LOG_D(NR_MAC, "Received PDU at MAC gNB \n");
 
-      UE_info->UE_sched_ctrl[UE_id].pusch_consecutive_dtx_cnt = 0;
+      UE->UE_sched_ctrl.pusch_consecutive_dtx_cnt = 0;
       const uint32_t tb_size = UE_scheduling_control->ul_harq_processes[harq_pid].sched_pusch.tb_size;
       UE_scheduling_control->sched_ul_bytes -= tb_size;
       if (UE_scheduling_control->sched_ul_bytes < 0)
         UE_scheduling_control->sched_ul_bytes = 0;
 
-      nr_process_mac_pdu(gnb_mod_idP, UE_id, CC_idP, frameP, slotP, sduP, sdu_lenP);
+      nr_process_mac_pdu(gnb_mod_idP, UE, CC_idP, frameP, slotP, sduP, sdu_lenP);
     }
     else {
       NR_UE_ul_harq_t *cur_harq = &UE_scheduling_control->ul_harq_processes[harq_pid];
@@ -698,13 +584,15 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
           UE_scheduling_control->sched_ul_bytes = 0;
       }
       if (ul_cqi <= 128) {
-        UE_info->UE_sched_ctrl[UE_id].pusch_consecutive_dtx_cnt++;
-        UE_info->mac_stats[UE_id].ulsch_DTX++;
+        UE->UE_sched_ctrl.pusch_consecutive_dtx_cnt++;
+        UE->mac_stats.ulsch_DTX++;
       }
-      if (!get_softmodem_params()->phy_test && UE_info->UE_sched_ctrl[UE_id].pusch_consecutive_dtx_cnt >= pusch_failure_thres) {
-         LOG_W(NR_MAC,"%d.%d Detected UL Failure on PUSCH after %d PUSCH DTX, stopping scheduling\n",
-               frameP,slotP,UE_info->UE_sched_ctrl[UE_id].pusch_consecutive_dtx_cnt);
-         UE_info->UE_sched_ctrl[UE_id].ul_failure = 1;
+
+      if (!get_softmodem_params()->phy_test && UE->UE_sched_ctrl.pusch_consecutive_dtx_cnt >= pusch_failure_thres) {
+         LOG_W(NR_MAC,"Detected UL Failure on PUSCH after %d PUSCH DTX, stopping scheduling\n",
+               UE->UE_sched_ctrl.pusch_consecutive_dtx_cnt);
+         UE->UE_sched_ctrl.ul_failure = 1;
+
          nr_mac_gNB_rrc_ul_failure(gnb_mod_idP,CC_idP,frameP,slotP,rntiP);
       }
     }
@@ -725,7 +613,7 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
     T(T_GNB_MAC_UL_PDU_WITH_DATA, T_INT(gnb_mod_idP), T_INT(CC_idP),
       T_INT(rntiP), T_INT(frameP), T_INT(slotP), T_INT(-1) /* harq_pid */,
       T_BUFFER(sduP, sdu_lenP));
-
+    
     /* we don't know this UE (yet). Check whether there is a ongoing RA (Msg 3)
      * and check the corresponding UE's RNTI match, in which case we activate
      * it. */
@@ -733,7 +621,7 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
       NR_RA_t *ra = &gNB_mac->common_channels[CC_idP].ra[i];
       if (ra->state != WAIT_Msg3)
         continue;
-
+      
       if(no_sig) {
         LOG_D(NR_MAC, "Random Access %i failed at state %i (no signal)\n", i, ra->state);
         nr_mac_remove_ra_rnti(gnb_mod_idP, ra->rnti);
@@ -756,20 +644,20 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
           continue;
         }
 
-        int UE_id=-1;
 
-        UE_id = add_new_nr_ue(gnb_mod_idP, ra->rnti, ra->CellGroup);
-        if (UE_id<0) {
-          LOG_D(NR_MAC, "Random Access %i discarded at state %i (TC_RNTI %04x RNTI %04x): max number of users achieved!\n", i, ra->state,ra->rnti,current_rnti);
+	NR_UE_info_t* UE = add_new_nr_ue(gNB_mac, ra->rnti, ra->CellGroup);
+        if (!UE) {
+          LOG_W(NR_MAC, "Random Access %i discarded at state %i (TC_RNTI %04x RNTI %04x): max number of users achieved!\n", i, ra->state,ra->rnti,current_rnti);
+
           nr_mac_remove_ra_rnti(gnb_mod_idP, ra->rnti);
           nr_clear_ra_proc(gnb_mod_idP, CC_idP, frameP, ra);
           return;
         }
 
-        UE_info->UE_beam_index[UE_id] = ra->beam_id;
+        UE->UE_beam_index = ra->beam_id;
 
         // re-initialize ta update variables after RA procedure completion
-        UE_info->UE_sched_ctrl[UE_id].ta_frame = frameP;
+        UE->UE_sched_ctrl.ta_frame = frameP;
 
         LOG_D(NR_MAC,
               "reset RA state information for RA-RNTI 0x%04x/index %d\n",
@@ -778,27 +666,24 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
 
         LOG_I(NR_MAC,
               "[gNB %d][RAPROC] PUSCH with TC_RNTI 0x%04x received correctly, "
-              "adding UE MAC Context UE_id %d/RNTI 0x%04x\n",
+              "adding UE MAC Context RNTI 0x%04x\n",
               gnb_mod_idP,
               current_rnti,
-              UE_id,
               ra->rnti);
 
-      NR_UE_sched_ctrl_t *UE_scheduling_control = &UE_info->UE_sched_ctrl[UE_id];
+      NR_UE_sched_ctrl_t *UE_scheduling_control = &UE->UE_sched_ctrl;
 
       UE_scheduling_control->tpc0 = nr_get_tpc(target_snrx10,ul_cqi,30);
       if (timing_advance != 0xffff)
         UE_scheduling_control->ta_update = timing_advance;
       UE_scheduling_control->raw_rssi = rssi;
       UE_scheduling_control->pusch_snrx10 = ul_cqi * 5 - 640;
-      LOG_D(NR_MAC, "[UE %d] PUSCH TPC %d and TA %d\n",UE_id,UE_scheduling_control->tpc0,UE_scheduling_control->ta_update);
+      LOG_D(NR_MAC, "[UE %04x] PUSCH TPC %d and TA %d\n",UE->rnti,UE_scheduling_control->tpc0,UE_scheduling_control->ta_update);
         if(ra->cfra) {
 
-          LOG_A(NR_MAC, "(ue %i, rnti 0x%04x) CFRA procedure succeeded!\n", UE_id, ra->rnti);
+          LOG_A(NR_MAC, "(rnti 0x%04x) CFRA procedure succeeded!\n", ra->rnti);
           nr_mac_remove_ra_rnti(gnb_mod_idP, ra->rnti);
           nr_clear_ra_proc(gnb_mod_idP, CC_idP, frameP, ra);
-          UE_info->active[UE_id] = true;
-
           process_CellGroup(ra->CellGroup, UE_scheduling_control);
 
         } else {
@@ -814,26 +699,28 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
           // First byte corresponds to R/LCID MAC sub-header
           memcpy(ra->cont_res_id, &sduP[1], sizeof(uint8_t) * 6);
 
-          if (nr_process_mac_pdu(gnb_mod_idP, UE_id, CC_idP, frameP, slotP, sduP, sdu_lenP) == 0) {
+          if (nr_process_mac_pdu(gnb_mod_idP, UE, CC_idP, frameP, slotP, sduP, sdu_lenP) == 0) {
             ra->state = Msg4;
             ra->Msg4_frame = (frameP + 2) % 1024;
             ra->Msg4_slot = 1;
             
             if (ra->msg3_dcch_dtch) {
               // Check if the UE identified by C-RNTI still exists at the gNB
-              int UE_id_C = find_nr_UE_id(gnb_mod_idP, ra->crnti);
-              if (UE_id_C < 0) {
+              NR_UE_info_t * UE_C = find_nr_UE(&gNB_mac->UE_info, ra->crnti);
+              if (!UE_C) {
                 // The UE identified by C-RNTI no longer exists at the gNB
                 // Let's abort the current RA, so the UE will trigger a new RA later but using RRCSetupRequest instead. A better solution may be implemented
-                mac_remove_nr_ue(gnb_mod_idP, ra->rnti);
+                mac_remove_nr_ue(gNB_mac, ra->rnti);
                 nr_clear_ra_proc(gnb_mod_idP, CC_idP, frameP, ra);
                 return;
               } else {
                 // The UE identified by C-RNTI still exists at the gNB
-                // Reset uplink failure flags/counters/timers at MAC and at RRC so gNB will resume again scheduling resources for this UE
-                UE_info->UE_sched_ctrl[UE_id_C].pusch_consecutive_dtx_cnt = 0;
-                UE_info->UE_sched_ctrl[UE_id_C].ul_failure = 0;
+                // Reset uplink failure flags/counters/timers at RRC
                 nr_mac_gNB_rrc_ul_failure_reset(gnb_mod_idP, frameP, slotP, ra->crnti);
+
+                // Reset HARQ processes
+                reset_dl_harq_list(&UE_C->UE_sched_ctrl);
+                reset_ul_harq_list(&UE_C->UE_sched_ctrl);
               }
             }
             LOG_I(NR_MAC, "Scheduling RA-Msg4 for TC_RNTI 0x%04x (state %d, frame %d, slot %d)\n",
@@ -864,20 +751,71 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
         return;
       }
 
-      if (ra->msg3_round >= MAX_HARQ_ROUNDS - 1) {
-        LOG_D(NR_MAC, "Random Access %i failed at state %i (Reached msg3 max harq rounds)\n", i, ra->state);
+      if (ra->msg3_round >= gNB_mac->ul_bler.harq_round_max - 1) {
+        LOG_W(NR_MAC, "Random Access %i failed at state %i (Reached msg3 max harq rounds)\n", i, ra->state);
         nr_mac_remove_ra_rnti(gnb_mod_idP, ra->rnti);
         nr_clear_ra_proc(gnb_mod_idP, CC_idP, frameP, ra);
         return;
       }
 
       LOG_D(NR_MAC, "Random Access %i Msg3 CRC did not pass)\n", i);
+
       ra->msg3_round++;
       ra->state = Msg3_retransmission;
     }
   }
 }
 
+void handle_nr_srs_measurements(const module_id_t module_id,
+                                const frame_t frame,
+                                const sub_frame_t slot,
+                                const rnti_t rnti,
+                                const uint16_t timing_advance,
+                                const uint8_t num_symbols,
+                                const uint8_t wide_band_snr,
+                                const uint8_t num_reported_symbols,
+                                nfapi_nr_srs_indication_reported_symbol_t* reported_symbol_list) {
+
+  LOG_D(NR_MAC, "(%d.%d) Received SRS indication for rnti: 0x%04x\n", frame, slot, rnti);
+
+#ifdef SRS_IND_DEBUG
+  LOG_I(NR_MAC, "frame = %i\n", frame);
+  LOG_I(NR_MAC, "slot = %i\n", slot);
+  LOG_I(NR_MAC, "rnti = 0x%04x\n", rnti);
+  LOG_I(NR_MAC, "timing_advance = %i\n", timing_advance);
+  LOG_I(NR_MAC, "num_symbols = %i\n", num_symbols);
+  LOG_I(NR_MAC, "wide_band_snr = %i (%i dB)\n", wide_band_snr, (wide_band_snr>>1)-64);
+  LOG_I(NR_MAC, "num_reported_symbols = %i\n", num_reported_symbols);
+  LOG_I(NR_MAC, "reported_symbol_list[0].num_rbs = %i\n", reported_symbol_list[0].num_rbs);
+  for(int rb = 0; rb < reported_symbol_list[0].num_rbs; rb++) {
+    LOG_I(NR_MAC, "reported_symbol_list[0].rb_list[%3i].rb_snr = %i (%i dB)\n",
+          rb, reported_symbol_list[0].rb_list[rb].rb_snr, (reported_symbol_list[0].rb_list[rb].rb_snr>>1)-64);
+  }
+#endif
+
+  NR_UE_info_t *UE = find_nr_UE(&RC.nrmac[module_id]->UE_info, rnti);
+  if (!UE) {
+    LOG_W(NR_MAC, "Could not find UE for RNTI 0x%04x\n", rnti);
+    return;
+  }
+
+  gNB_MAC_INST *nr_mac = RC.nrmac[module_id];
+  NR_mac_stats_t *stats = &UE->mac_stats;
+  stats->srs_wide_band_snr = (wide_band_snr>>1)-64;
+
+  const int ul_prbblack_SNR_threshold = nr_mac->ul_prbblack_SNR_threshold;
+  uint16_t *ulprbbl = nr_mac->ulprbbl;
+
+  memset(ulprbbl, 0, reported_symbol_list[0].num_rbs*sizeof(uint16_t));
+  for (int rb = 0; rb < reported_symbol_list[0].num_rbs; rb++) {
+    int snr = (reported_symbol_list[0].rb_list[rb].rb_snr>>1)-64;
+    if (snr < ul_prbblack_SNR_threshold) {
+      ulprbbl[rb] = 0x3FFF; // all symbols taken
+    }
+    LOG_D(NR_MAC, "ulprbbl[%3i] = 0x%x\n", rb, ulprbbl[rb]);
+  }
+}
+
 long get_K2(NR_ServingCellConfigCommon_t *scc,
             NR_ServingCellConfigCommonSIB_t *scc_sib1,
             NR_BWP_Uplink_t *ubwp,
@@ -903,37 +841,35 @@ long get_K2(NR_ServingCellConfigCommon_t *scc,
     return 3;
 }
 
-bool nr_UE_is_to_be_scheduled(module_id_t mod_id, int CC_id, int UE_id, frame_t frame, sub_frame_t slot)
+static bool nr_UE_is_to_be_scheduled(const NR_ServingCellConfigCommon_t *scc,
+			      int CC_id,  NR_UE_info_t* UE, frame_t frame, sub_frame_t slot, uint32_t ulsch_max_frame_inactivity)
 {
-  const NR_ServingCellConfigCommon_t *scc = RC.nrmac[mod_id]->common_channels->ServingCellConfigCommon;
   const int n = nr_slots_per_frame[*scc->ssbSubcarrierSpacing];
   const int now = frame * n + slot;
 
-  const struct gNB_MAC_INST_s *nrmac = RC.nrmac[mod_id];
-  const NR_UE_sched_ctrl_t *sched_ctrl = &nrmac->UE_info.UE_sched_ctrl[UE_id];
+  const NR_UE_sched_ctrl_t *sched_ctrl =&UE->UE_sched_ctrl;
 
   const NR_TDD_UL_DL_Pattern_t *tdd =
       scc->tdd_UL_DL_ConfigurationCommon ? &scc->tdd_UL_DL_ConfigurationCommon->pattern1 : NULL;
   int num_slots_per_period;
-  int last_ul_slot,last_ul_sched;
+  int last_ul_slot;
   int tdd_period_len[8] = {500,625,1000,1250,2000,2500,5000,10000};
   if (tdd) { // Force the default transmission in a full slot as early as possible in the UL portion of TDD period (last_ul_slot)
     num_slots_per_period = n*tdd_period_len[tdd->dl_UL_TransmissionPeriodicity]/10000;
     last_ul_slot=1+tdd->nrofDownlinkSlots;
-  }
-  else {
+  } else {
     num_slots_per_period = n;
-    last_ul_slot = sched_ctrl->last_ul_slot; 
+    last_ul_slot = sched_ctrl->last_ul_slot;
   }
 
-  last_ul_sched = sched_ctrl->last_ul_frame * n + last_ul_slot;
+  const int last_ul_sched = sched_ctrl->last_ul_frame * n + last_ul_slot;
   const int diff = (now - last_ul_sched + 1024 * n) % (1024 * n);
   /* UE is to be scheduled if
    * (1) we think the UE has more bytes awaiting than what we scheduled
    * (2) there is a scheduling request
    * (3) or we did not schedule it in more than 10 frames */
   const bool has_data = sched_ctrl->estimated_ul_buffer > sched_ctrl->sched_ul_bytes;
-  const bool high_inactivity = diff >= (nrmac->ulsch_max_frame_inactivity>0 ? (nrmac->ulsch_max_frame_inactivity * n) : num_slots_per_period);
+  const bool high_inactivity = diff >= (ulsch_max_frame_inactivity > 0 ? ulsch_max_frame_inactivity * n : num_slots_per_period);
   LOG_D(NR_MAC,
         "%4d.%2d UL inactivity %d slots has_data %d SR %d\n",
         frame,
@@ -944,43 +880,34 @@ bool nr_UE_is_to_be_scheduled(module_id_t mod_id, int CC_id, int UE_id, frame_t
   return has_data || sched_ctrl->SR || high_inactivity;
 }
 
-int next_list_entry_looped(NR_list_t *list, int UE_id)
-{
-  if (UE_id < 0)
-    return list->head;
-  return list->next[UE_id] < 0 ? list->head : list->next[UE_id];
-}
-
-bool allocate_ul_retransmission(module_id_t module_id,
-                                frame_t frame,
-                                sub_frame_t slot,
-                                uint16_t *rballoc_mask,
-                                int *n_rb_sched,
-                                int UE_id,
-                                int harq_pid)
+static bool allocate_ul_retransmission(gNB_MAC_INST *nrmac,
+				       frame_t frame,
+				       sub_frame_t slot,
+				       uint16_t *rballoc_mask,
+				       int *n_rb_sched,
+				       NR_UE_info_t* UE,
+				       int harq_pid,
+				       const NR_SIB1_t *sib1,
+				       const NR_ServingCellConfigCommon_t *scc,
+				       const int tda)
 {
   const int CC_id = 0;
-  gNB_MAC_INST *nr_mac = RC.nrmac[module_id];
-  const NR_ServingCellConfigCommon_t *scc = nr_mac->common_channels[CC_id].ServingCellConfigCommon;
-  NR_UE_info_t *UE_info = &nr_mac->UE_info;
-  NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+  NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
   NR_sched_pusch_t *retInfo = &sched_ctrl->ul_harq_processes[harq_pid].sched_pusch;
-  NR_CellGroupConfig_t *cg = UE_info->CellGroup[UE_id];
+  NR_CellGroupConfig_t *cg = UE->CellGroup;
 
   NR_BWP_UplinkDedicated_t *ubwpd = cg && cg->spCellConfig && cg->spCellConfig->spCellConfigDedicated &&
                                     cg->spCellConfig->spCellConfigDedicated->uplinkConfig ?
                                     cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP : NULL;
 
-  const NR_SIB1_t *sib1 = RC.nrmac[module_id]->common_channels[0].sib1 ? RC.nrmac[module_id]->common_channels[0].sib1->message.choice.c1->choice.systemInformationBlockType1 : NULL;
   NR_BWP_t *genericParameters = get_ul_bwp_genericParameters(sched_ctrl->active_ubwp,
                                                              (NR_ServingCellConfigCommon_t *)scc,
                                                              sib1);
 
   int rbStart = 0; // wrt BWP start
   const uint16_t bwpSize = NRRIV2BW(genericParameters->locationAndBandwidth, MAX_BWP_SIZE);
-
+  const uint8_t nrOfLayers = 1;
   const uint8_t num_dmrs_cdm_grps_no_data = (sched_ctrl->active_bwp || ubwpd) ? 1 : 2;
-  const int tda = sched_ctrl->active_ubwp ? RC.nrmac[module_id]->preferred_ul_tda[sched_ctrl->active_ubwp->bwp_Id][slot] : 0;
   LOG_D(NR_MAC,"retInfo->time_domain_allocation = %d, tda = %d\n", retInfo->time_domain_allocation, tda);
   LOG_D(NR_MAC,"num_dmrs_cdm_grps_no_data %d, tbs %d\n",num_dmrs_cdm_grps_no_data, retInfo->tb_size);
   if (tda == retInfo->time_domain_allocation) {
@@ -992,6 +919,7 @@ bool allocate_ul_retransmission(module_id_t module_id,
 
     if (ps->time_domain_allocation != tda
         || ps->dci_format != dci_format
+        || ps->nrOfLayers != nrOfLayers
         || ps->num_dmrs_cdm_grps_no_data != num_dmrs_cdm_grps_no_data) {
       nr_set_pusch_semi_static(sib1,
                                scc,
@@ -1000,6 +928,7 @@ bool allocate_ul_retransmission(module_id_t module_id,
                                dci_format,
                                tda,
                                num_dmrs_cdm_grps_no_data,
+                               nrOfLayers,
                                ps);
     }
 
@@ -1008,7 +937,7 @@ bool allocate_ul_retransmission(module_id_t module_id,
     while (rbStart < bwpSize && (rballoc_mask[rbStart] & slbitmap) != slbitmap)
       rbStart++;
     if (rbStart + retInfo->rbSize > bwpSize) {
-      LOG_W(NR_MAC, "cannot allocate retransmission of UE %d/RNTI %04x: no resources (rbStart %d, retInfo->rbSize %d, bwpSize %d\n", UE_id, UE_info->rnti[UE_id], rbStart, retInfo->rbSize, bwpSize);
+      LOG_W(NR_MAC, "cannot allocate retransmission of RNTI %04x: no resources (rbStart %d, retInfo->rbSize %d, bwpSize %d\n", UE->rnti, rbStart, retInfo->rbSize, bwpSize);
       return false;
     }
     LOG_D(NR_MAC, "%s(): retransmission keeping TDA %d and TBS %d\n", __func__, tda, retInfo->tb_size);
@@ -1022,6 +951,7 @@ bool allocate_ul_retransmission(module_id_t module_id,
                              dci_format,
                              tda,
                              num_dmrs_cdm_grps_no_data,
+                             nrOfLayers,
                              &temp_ps);
     /* the retransmission will use a different time domain allocation, check
      * that we have enough resources */
@@ -1057,8 +987,7 @@ bool allocate_ul_retransmission(module_id_t module_id,
   }
 
   /* Find a free CCE */
-  const int cid = sched_ctrl->coreset->controlResourceSetId;
-  const uint16_t Y = get_Y(cid%3, slot, UE_info->rnti[UE_id]);
+  const uint32_t Y = get_Y(sched_ctrl->search_space, slot, UE->rnti);
   uint8_t nr_of_candidates;
   for (int i=0; i<5; i++) {
     // for now taking the lowest value among the available aggregation levels
@@ -1068,7 +997,7 @@ bool allocate_ul_retransmission(module_id_t module_id,
                                 1<<i);
     if(nr_of_candidates>0) break;
   }
-  int CCEIndex = find_pdcch_candidate(RC.nrmac[module_id],
+  int CCEIndex = find_pdcch_candidate(nrmac,
                                       CC_id,
                                       sched_ctrl->aggregation_level,
                                       nr_of_candidates,
@@ -1077,12 +1006,12 @@ bool allocate_ul_retransmission(module_id_t module_id,
                                       Y);
 
   if (CCEIndex<0) {
-    LOG_D(NR_MAC, "%4d.%2d no free CCE for retransmission UL DCI UE %04x\n", frame, slot, UE_info->rnti[UE_id]);
+    LOG_D(NR_MAC, "%4d.%2d no free CCE for retransmission UL DCI UE %04x\n", frame, slot, UE->rnti);
     return false;
   }
 
   sched_ctrl->cce_index = CCEIndex;
-  fill_pdcch_vrb_map(RC.nrmac[module_id],
+  fill_pdcch_vrb_map(nrmac,
                      CC_id,
                      &sched_ctrl->sched_pdcch,
                      CCEIndex,
@@ -1098,11 +1027,10 @@ bool allocate_ul_retransmission(module_id_t module_id,
   NR_sched_pusch_t *sched_pusch = &sched_ctrl->sched_pusch;
 
   LOG_D(NR_MAC,
-        "%4d.%2d Allocate UL retransmission UE %d/RNTI %04x sched %4d.%2d (%d RBs)\n",
+        "%4d.%2d Allocate UL retransmission RNTI %04x sched %4d.%2d (%d RBs)\n",
         frame,
         slot,
-        UE_id,
-        UE_info->rnti[UE_id],
+        UE->rnti,
         sched_pusch->frame,
         sched_pusch->slot,
         sched_pusch->rbSize);
@@ -1129,12 +1057,20 @@ void update_ul_ue_R_Qm(NR_sched_pusch_t *sched_pusch, const NR_pusch_semi_static
   }
 }
 
-float ul_thr_ue[MAX_MOBILES_PER_GNB];
 uint32_t ul_pf_tbs[3][29]; // pre-computed, approximate TBS values for PF coefficient
+typedef struct UEsched_s {
+  float coef;
+  NR_UE_info_t * UE;
+} UEsched_t;
+
+static int comparator(const void *p, const void *q) {
+  return ((UEsched_t*)p)->coef < ((UEsched_t*)q)->coef;
+}
+
 void pf_ul(module_id_t module_id,
            frame_t frame,
            sub_frame_t slot,
-           NR_list_t *UE_list,
+           NR_UE_info_t *UE_list[],
            int max_num_ue,
            int n_rb_sched,
            uint16_t *rballoc_mask) {
@@ -1142,28 +1078,29 @@ void pf_ul(module_id_t module_id,
   const int CC_id = 0;
   gNB_MAC_INST *nrmac = RC.nrmac[module_id];
   NR_ServingCellConfigCommon_t *scc = nrmac->common_channels[CC_id].ServingCellConfigCommon;
-  NR_UE_info_t *UE_info = &nrmac->UE_info;
   const NR_SIB1_t *sib1 = RC.nrmac[module_id]->common_channels[0].sib1 ? RC.nrmac[module_id]->common_channels[0].sib1->message.choice.c1->choice.systemInformationBlockType1 : NULL;
-  const int min_rb = nrmac->min_grant_prb;
-  float coeff_ue[MAX_MOBILES_PER_GNB];
+  
+  const int min_rb = 5;
   // UEs that could be scheduled
-  int ue_array[MAX_MOBILES_PER_GNB];
-  NR_list_t UE_sched = { .head = -1, .next = ue_array, .tail = -1, .len = MAX_MOBILES_PER_GNB };
+  UEsched_t UE_sched[MAX_MOBILES_PER_GNB] = {0};
+  int remainUEs=max_num_ue;
+  int curUE=0;
 
   /* Loop UE_list to calculate throughput and coeff */
-  for (int UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) {
+  UE_iterator(UE_list, UE) {
 
-    if (UE_info->Msg4_ACKed[UE_id] != true) continue;
+    if (UE->Msg4_ACKed != true)
+      continue;
 
-    LOG_D(NR_MAC,"pf_ul: preparing UL scheduling for UE %d\n",UE_id);
-    NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+    LOG_D(NR_MAC,"pf_ul: preparing UL scheduling for UE %04x\n",UE->rnti);
+    NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
 
     NR_BWP_t *genericParameters = get_ul_bwp_genericParameters(sched_ctrl->active_ubwp,
                                                                scc,
                                                                sib1);
 
     int rbStart = 0; // wrt BWP start
-    NR_CellGroupConfig_t *cg = UE_info->CellGroup[UE_id];
+    NR_CellGroupConfig_t *cg = UE->CellGroup;
     NR_BWP_UplinkDedicated_t *ubwpd = cg && cg->spCellConfig && cg->spCellConfig->spCellConfigDedicated &&
                                       cg->spCellConfig->spCellConfigDedicated->uplinkConfig ?
                                       cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP : NULL;
@@ -1171,48 +1108,58 @@ void pf_ul(module_id_t module_id,
     const uint16_t bwpSize = NRRIV2BW(genericParameters->locationAndBandwidth, MAX_BWP_SIZE);
     NR_sched_pusch_t *sched_pusch = &sched_ctrl->sched_pusch;
     NR_pusch_semi_static_t *ps = &sched_ctrl->pusch_semi_static;
+    const NR_mac_dir_stats_t *stats = &UE->mac_stats.ul;
 
     /* Calculate throughput */
     const float a = 0.0005f; // corresponds to 200ms window
-    const uint32_t b = UE_info->mac_stats[UE_id].ulsch_current_bytes;
-    ul_thr_ue[UE_id] = (1 - a) * ul_thr_ue[UE_id] + a * b;
+    const uint32_t b = stats->current_bytes;
+    UE->ul_thr_ue = (1 - a) * UE->ul_thr_ue + a * b;
 
     /* Check if retransmission is necessary */
     sched_pusch->ul_harq_pid = sched_ctrl->retrans_ul_harq.head;
-    LOG_D(NR_MAC,"pf_ul: UE %d harq_pid %d\n",UE_id,sched_pusch->ul_harq_pid);
+    LOG_D(NR_MAC,"pf_ul: UE %04x harq_pid %d\n",UE->rnti,sched_pusch->ul_harq_pid);
     if (sched_pusch->ul_harq_pid >= 0) {
       /* Allocate retransmission*/
-      bool r = allocate_ul_retransmission(
-          module_id, frame, slot, rballoc_mask, &n_rb_sched, UE_id, sched_pusch->ul_harq_pid);
+      const int tda = get_ul_tda(nrmac, scc, sched_pusch->slot);
+      bool r = allocate_ul_retransmission(nrmac, frame, slot, rballoc_mask, &n_rb_sched, UE, sched_pusch->ul_harq_pid, sib1, scc, tda);
       if (!r) {
-        LOG_D(NR_MAC, "%4d.%2d UL retransmission UE RNTI %04x can NOT be allocated\n", frame, slot, UE_info->rnti[UE_id]);
+        LOG_D(NR_MAC, "%4d.%2d UL retransmission UE RNTI %04x can NOT be allocated\n", frame, slot, UE->rnti);
         continue;
       }
-      else LOG_D(NR_MAC,"%4d.%2d UL Retransmission UE RNTI %04x to be allocated, max_num_ue %d\n",frame,slot,UE_info->rnti[UE_id],max_num_ue);
+      else LOG_D(NR_MAC,"%4d.%2d UL Retransmission UE RNTI %04x to be allocated, max_num_ue %d\n",frame,slot,UE->rnti,max_num_ue);
 
       /* reduce max_num_ue once we are sure UE can be allocated, i.e., has CCE */
-      max_num_ue--;
-      if (max_num_ue < 0)
-        return;
-      continue;
-    }
+      remainUEs--;
+
+      // we have filled all with mandatory retransmissions
+      // no need to schedule new transmissions
+      if (remainUEs == 0)
+	      return;
 
+      continue;
+    } 
     const int B = max(0, sched_ctrl->estimated_ul_buffer - sched_ctrl->sched_ul_bytes);
     /* preprocessor computed sched_frame/sched_slot */
-    const bool do_sched = nr_UE_is_to_be_scheduled(module_id, 0, UE_id, sched_pusch->frame, sched_pusch->slot);
+    const bool do_sched = nr_UE_is_to_be_scheduled(scc, 0, UE, sched_pusch->frame, sched_pusch->slot, nrmac->ulsch_max_frame_inactivity);
 
-    LOG_D(NR_MAC,"pf_ul: do_sched UE %d => %s\n",UE_id,do_sched ? "yes" : "no");
+    LOG_D(NR_MAC,"pf_ul: do_sched UE %04x => %s\n",UE->rnti,do_sched ? "yes" : "no");
     if ((B == 0 && !do_sched) || (sched_ctrl->rrc_processing_timer > 0)) {
       continue;
     }
 
+    const NR_bler_options_t *bo = &nrmac->ul_bler;
+    const int max_mcs = bo->max_mcs; /* no per-user maximum MCS yet */
+    if (bo->harq_round_max == 1)
+      sched_pusch->mcs = max_mcs;
+    else
+      sched_pusch->mcs = get_mcs_from_bler(bo, stats, &UE->UE_sched_ctrl.ul_bler_stats, max_mcs, frame);
+
     /* Schedule UE on SR or UL inactivity and no data (otherwise, will be scheduled
      * based on data to transmit) */
     if (B == 0 && do_sched) {
       /* if no data, pre-allocate 5RB */
       /* Find a free CCE */
-      const int cid = sched_ctrl->coreset->controlResourceSetId;
-      const uint16_t Y = get_Y(cid%3, slot, UE_info->rnti[UE_id]);
+      const uint32_t Y = get_Y(sched_ctrl->search_space, slot, UE->rnti);
       uint8_t nr_of_candidates;
       for (int i=0; i<5; i++) {
         // for now taking the lowest value among the available aggregation levels
@@ -1223,31 +1170,37 @@ void pf_ul(module_id_t module_id,
         if(nr_of_candidates>0) break;
       }
       int CCEIndex = find_pdcch_candidate(RC.nrmac[module_id],
-                                          CC_id,
-                                          sched_ctrl->aggregation_level,
-                                          nr_of_candidates,
-                                          &sched_ctrl->sched_pdcch,
-                                          sched_ctrl->coreset,
-                                          Y);
+					  CC_id,
+					  sched_ctrl->aggregation_level,
+					  nr_of_candidates,
+					  &sched_ctrl->sched_pdcch,
+					  sched_ctrl->coreset,
+					  Y);
 
       if (CCEIndex<0) {
-        LOG_D(NR_MAC, "%4d.%2d no free CCE for UL DCI UE %04x (BSR 0)\n", frame, slot, UE_info->rnti[UE_id]);
+        LOG_D(NR_MAC, "%4d.%2d no free CCE for UL DCI UE %04x (BSR 0)\n", frame, slot, UE->rnti);
         continue;
       }
+
       /* reduce max_num_ue once we are sure UE can be allocated, i.e., has CCE */
-      max_num_ue--;
-      if (max_num_ue < 0)
+      remainUEs--;
+
+      // we have filled all with mandatory retransmissions
+      // no need to schedule new transmissions
+      if (remainUEs == 0)
         return;
 
       /* Save PUSCH field */
       /* we want to avoid a lengthy deduction of DMRS and other parameters in
        * every TTI if we can save it, so check whether dci_format, TDA, or
        * num_dmrs_cdm_grps_no_data has changed and only then recompute */
+      const uint8_t nrOfLayers = 1;
       const uint8_t num_dmrs_cdm_grps_no_data = (sched_ctrl->active_ubwp || ubwpd) ? 1 : 2;
       int dci_format = get_dci_format(sched_ctrl);
-      const int tda = sched_ctrl->active_ubwp ? nrmac->preferred_ul_tda[sched_ctrl->active_ubwp->bwp_Id][slot] : 0;
+      const int tda = get_ul_tda(nrmac, scc, sched_pusch->slot);
       if (ps->time_domain_allocation != tda
           || ps->dci_format != dci_format
+          || ps->nrOfLayers != nrOfLayers
           || ps->num_dmrs_cdm_grps_no_data != num_dmrs_cdm_grps_no_data) {
         nr_set_pusch_semi_static(sib1,
                                  scc,
@@ -1256,16 +1209,18 @@ void pf_ul(module_id_t module_id,
                                  dci_format,
                                  tda,
                                  num_dmrs_cdm_grps_no_data,
+                                 nrOfLayers,
                                  ps);
       }
 
-      LOG_D(NR_MAC,"Looking for min_rb %d RBs, starting at %d\n", min_rb, rbStart);
+      LOG_D(NR_MAC,"Looking for min_rb %d RBs, starting at %d num_dmrs_cdm_grps_no_data %d\n",
+            min_rb, rbStart, ps->num_dmrs_cdm_grps_no_data);
       const uint16_t slbitmap = SL_to_bitmap(ps->startSymbolIndex, ps->nrOfSymbols);
       while (rbStart < bwpSize && (rballoc_mask[rbStart] & slbitmap) != slbitmap)
         rbStart++;
       if (rbStart + min_rb >= bwpSize) {
-        LOG_W(NR_MAC, "cannot allocate continuous UL data for UE %d/RNTI %04x: no resources (rbStart %d, min_rb %d, bwpSize %d\n",
-              UE_id, UE_info->rnti[UE_id],rbStart,min_rb,bwpSize);
+        LOG_W(NR_MAC, "cannot allocate continuous UL data for RNTI %04x: no resources (rbStart %d, min_rb %d, bwpSize %d\n",
+              UE->rnti,rbStart,min_rb,bwpSize);
         return;
       }
 
@@ -1277,7 +1232,7 @@ void pf_ul(module_id_t module_id,
                          sched_ctrl->aggregation_level);
 
       NR_sched_pusch_t *sched_pusch = &sched_ctrl->sched_pusch;
-      sched_pusch->mcs = nrmac->min_grant_mcs;
+      sched_pusch->mcs = min(nrmac->min_grant_mcs, sched_pusch->mcs);
       update_ul_ue_R_Qm(sched_pusch, ps);
       sched_pusch->rbStart = rbStart;
       sched_pusch->rbSize = min_rb;
@@ -1288,7 +1243,7 @@ void pf_ul(module_id_t module_id,
                                             ps->N_PRB_DMRS * ps->num_dmrs_symb,
                                             0, // nb_rb_oh
                                             0,
-                                            1 /* NrOfLayers */)
+                                            ps->nrOfLayers)
                              >> 3;
 
       /* Mark the corresponding RBs as used */
@@ -1300,41 +1255,26 @@ void pf_ul(module_id_t module_id,
     }
 
     /* Create UE_sched for UEs eligibale for new data transmission*/
-    add_tail_nr_list(&UE_sched, UE_id);
-
     /* Calculate coefficient*/
-    sched_pusch->mcs = nrmac->min_grant_mcs;
     const uint32_t tbs = ul_pf_tbs[ps->mcs_table][sched_pusch->mcs];
-    coeff_ue[UE_id] = (float) tbs / ul_thr_ue[UE_id];
-    LOG_D(NR_MAC,"b %d, ul_thr_ue[%d] %f, tbs %d, coeff_ue[%d] %f\n",
-          b, UE_id, ul_thr_ue[UE_id], tbs, UE_id, coeff_ue[UE_id]);
+    float coeff_ue = (float) tbs / UE->ul_thr_ue;
+    LOG_D(NR_MAC,"rnti %04x b %d, ul_thr_ue %f, tbs %d, coeff_ue %f\n",
+          UE->rnti, b, UE->ul_thr_ue, tbs, coeff_ue);
+    UE_sched[curUE].coef=coeff_ue;
+    UE_sched[curUE].UE=UE;
+    curUE++;
   }
 
-
+  qsort(UE_sched, sizeof(*UE_sched), sizeofArray(UE_sched), comparator);
+  UEsched_t *iterator=UE_sched;
+  
   const int min_rbSize = 5;
   /* Loop UE_sched to find max coeff and allocate transmission */
-  while (UE_sched.head >= 0 && max_num_ue> 0 && n_rb_sched >= min_rbSize) {
-    /* Find max coeff */
-    int *max = &UE_sched.head; /* Find max coeff: assume head is max */
-    int *p = &UE_sched.next[*max];
-    while (*p >= 0) {
-      /* Find max coeff: if the current one has larger coeff, save for later */
-      if (coeff_ue[*p] > coeff_ue[*max])
-        max = p;
-      p = &UE_sched.next[*p];
-    }
-    /* Find max coeff: remove the max one: do not use remove_nr_list() since it
-     * goes through the whole list every time. Note that UE_sched.tail might
-     * not be set correctly anymore */
-    const int UE_id = *max;
-    p = &UE_sched.next[*max];
-    *max = UE_sched.next[*max];
-    *p = -1;
-
-    NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
-
-    const int cid = sched_ctrl->coreset->controlResourceSetId;
-    const uint16_t Y = get_Y(cid%3, slot, UE_info->rnti[UE_id]);
+  while (remainUEs> 0 && n_rb_sched >= min_rbSize && iterator->UE != NULL) {
+
+    NR_UE_sched_ctrl_t *sched_ctrl = &iterator->UE->UE_sched_ctrl;
+
+    const uint32_t Y = get_Y(sched_ctrl->search_space, slot, iterator->UE->rnti);
     uint8_t nr_of_candidates;
     for (int i=0; i<5; i++) {
       // for now taking the lowest value among the available aggregation levels
@@ -1342,7 +1282,8 @@ void pf_ul(module_id_t module_id,
                                   &nr_of_candidates,
                                   sched_ctrl->search_space,
                                   1<<i);
-      if(nr_of_candidates>0) break;
+      if(nr_of_candidates>0)
+        break;
     }
     int CCEIndex = find_pdcch_candidate(RC.nrmac[module_id],
                                         CC_id,
@@ -1352,16 +1293,13 @@ void pf_ul(module_id_t module_id,
                                         sched_ctrl->coreset,
                                         Y);
     if (CCEIndex<0) {
-      LOG_D(NR_MAC, "%4d.%2d no free CCE for UL DCI UE %04x\n", frame, slot, UE_info->rnti[UE_id]);
+      LOG_D(NR_MAC, "%4d.%2d no free CCE for UL DCI UE %04x\n", frame, slot, iterator->UE->rnti);
+      iterator++;
       continue;
     }
-    else LOG_D(NR_MAC, "%4d.%2d free CCE for UL DCI UE %04x\n",frame,slot, UE_info->rnti[UE_id]);
-
-    /* reduce max_num_ue once we are sure UE can be allocated, i.e., has CCE */
-    max_num_ue--;
-    AssertFatal(max_num_ue >= 0, "Illegal max_num_ue %d\n", max_num_ue);
+    else LOG_D(NR_MAC, "%4d.%2d free CCE for UL DCI UE %04x\n",frame,slot, iterator->UE->rnti);
 
-    NR_CellGroupConfig_t *cg = UE_info->CellGroup[UE_id];
+    NR_CellGroupConfig_t *cg = iterator->UE->CellGroup;
     NR_BWP_UplinkDedicated_t *ubwpd = cg && cg->spCellConfig && cg->spCellConfig->spCellConfigDedicated
                                       && cg->spCellConfig->spCellConfigDedicated->uplinkConfig ?
                                       cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP : NULL;
@@ -1379,11 +1317,13 @@ void pf_ul(module_id_t module_id,
     /* we want to avoid a lengthy deduction of DMRS and other parameters in
      * every TTI if we can save it, so check whether dci_format, TDA, or
      * num_dmrs_cdm_grps_no_data has changed and only then recompute */
+    const uint8_t nrOfLayers = 1;
     const uint8_t num_dmrs_cdm_grps_no_data = (sched_ctrl->active_ubwp || ubwpd) ? 1 : 2;
     int dci_format = get_dci_format(sched_ctrl);
-    const int tda = sched_ctrl->active_ubwp ? nrmac->preferred_ul_tda[sched_ctrl->active_ubwp->bwp_Id][slot] : 0;
+    const int tda = get_ul_tda(nrmac, scc, sched_pusch->slot);
     if (ps->time_domain_allocation != tda
         || ps->dci_format != dci_format
+        || ps->nrOfLayers != nrOfLayers
         || ps->num_dmrs_cdm_grps_no_data != num_dmrs_cdm_grps_no_data) {
       nr_set_pusch_semi_static(sib1,
                                scc,
@@ -1392,6 +1332,7 @@ void pf_ul(module_id_t module_id,
                                dci_format,
                                tda,
                                num_dmrs_cdm_grps_no_data,
+                               nrOfLayers,
                                ps);
     }
     update_ul_ue_R_Qm(sched_pusch, ps);
@@ -1405,18 +1346,18 @@ void pf_ul(module_id_t module_id,
       max_rbSize++;
 
     if (rbStart + min_rb >= bwpSize) {
-      LOG_W(NR_MAC, "cannot allocate UL data for UE %d/RNTI %04x: no resources (rbStart %d, min_rb %d, bwpSize %d\n",
-	    UE_id, UE_info->rnti[UE_id],rbStart,min_rb,bwpSize);
+      LOG_W(NR_MAC, "cannot allocate UL data for RNTI %04x: no resources (rbStart %d, min_rb %d, bwpSize %d)\n",
+	    iterator->UE->rnti,rbStart,min_rb,bwpSize);
       return;
     }
-    else LOG_D(NR_MAC,"allocating UL data for UE %d/RNTI %04x (rbStsart %d, min_rb %d, bwpSize %d\n",UE_id, UE_info->rnti[UE_id],rbStart,min_rb,bwpSize);
-
+    else
+      LOG_D(NR_MAC,"allocating UL data for RNTI %04x (rbStsart %d, min_rb %d, bwpSize %d)\n", iterator->UE->rnti,rbStart,min_rb,bwpSize);
 
     /* Calculate the current scheduling bytes and the necessary RBs */
     const int B = cmax(sched_ctrl->estimated_ul_buffer - sched_ctrl->sched_ul_bytes, 0);
     uint16_t rbSize = 0;
     uint32_t TBS = 0;
-    
+
     nr_find_nb_rb(sched_pusch->Qm,
                   sched_pusch->R,
                   1, // layers
@@ -1444,6 +1385,10 @@ void pf_ul(module_id_t module_id,
     n_rb_sched -= sched_pusch->rbSize;
     for (int rb = 0; rb < sched_ctrl->sched_pusch.rbSize; rb++)
       rballoc_mask[rb + sched_ctrl->sched_pusch.rbStart] ^= slbitmap;
+
+    /* reduce max_num_ue once we are sure UE can be allocated, i.e., has CCE */
+    remainUEs--;
+    iterator++;
   }
 }
 
@@ -1460,9 +1405,8 @@ bool nr_fr1_ulsch_preprocessor(module_id_t module_id, frame_t frame, sub_frame_t
   const int mu = scc ? scc->uplinkConfigCommon->initialUplinkBWP->genericParameters.subcarrierSpacing :
                  scc_sib1->uplinkConfigCommon->initialUplinkBWP.genericParameters.subcarrierSpacing;
 
-  NR_UE_info_t *UE_info = &nr_mac->UE_info;
-
-  if (UE_info->num_UEs == 0)
+  // no UEs
+  if (nr_mac->UE_info.list[0] == NULL)
     return false;
 
   const int CC_id = 0;
@@ -1471,14 +1415,15 @@ bool nr_fr1_ulsch_preprocessor(module_id_t module_id, frame_t frame, sub_frame_t
    * have the same K2 (we don't support multiple/different K2s via different
    * TDAs yet). If the TDA is negative, it means that there is no UL slot to
    * schedule now (slot + k2 is not UL slot) */
-  int UE_id = UE_info->list.head;
-  NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
-  const int tda = sched_ctrl->active_ubwp ? nr_mac->preferred_ul_tda[sched_ctrl->active_ubwp->bwp_Id][slot] : 0;
+  NR_UE_sched_ctrl_t *sched_ctrl = &nr_mac->UE_info.list[0]->UE_sched_ctrl;
+  const int temp_tda = get_ul_tda(nr_mac, scc, slot);
+  int K2 = get_K2(scc, scc_sib1, sched_ctrl->active_ubwp, temp_tda, mu);
+  const int sched_frame = (frame + (slot + K2 >= nr_slots_per_frame[mu])) & 1023;
+  const int sched_slot = (slot + K2) % nr_slots_per_frame[mu];
+  const int tda = get_ul_tda(nr_mac, scc, sched_slot);
   if (tda < 0)
     return false;
-  int K2 = get_K2(scc, scc_sib1, sched_ctrl->active_ubwp, tda, mu);
-  const int sched_frame = (frame + (slot + K2 >= nr_slots_per_frame[mu])) % 1024;
-  const int sched_slot = (slot + K2) % nr_slots_per_frame[mu];
+  DevAssert(K2 == get_K2(scc, scc_sib1, sched_ctrl->active_ubwp, tda, mu));
 
   if (!is_xlsch_in_slot(nr_mac->ulsch_slot_bitmap[sched_slot / 64], sched_slot))
     return false;
@@ -1496,9 +1441,8 @@ bool nr_fr1_ulsch_preprocessor(module_id_t module_id, frame_t frame, sub_frame_t
     return false;
 
   // Avoid slots with the SRS
-  const NR_list_t *UE_list = &UE_info->list;
-  for (int UE_idx = UE_list->head; UE_idx >= 0; UE_idx = UE_list->next[UE_idx]) {
-    NR_sched_srs_t sched_srs = UE_info->UE_sched_ctrl[UE_idx].sched_srs;
+  UE_iterator(nr_mac->UE_info.list, UE) {
+    NR_sched_srs_t sched_srs = UE->UE_sched_ctrl.sched_srs;
     if(sched_srs.srs_scheduled && sched_srs.frame==sched_frame && sched_srs.slot==sched_slot) {
       return false;
     }
@@ -1506,10 +1450,10 @@ bool nr_fr1_ulsch_preprocessor(module_id_t module_id, frame_t frame, sub_frame_t
 
   sched_ctrl->sched_pusch.slot = sched_slot;
   sched_ctrl->sched_pusch.frame = sched_frame;
-  for (UE_id = UE_info->list.next[UE_id]; UE_id >= 0; UE_id = UE_info->list.next[UE_id]) {
-    NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+  UE_iterator(nr_mac->UE_info.list, UE2) {
+    NR_UE_sched_ctrl_t *sched_ctrl = &UE2->UE_sched_ctrl;
     AssertFatal(K2 == get_K2(scc,scc_sib1,sched_ctrl->active_ubwp, tda, mu),
-                "Different K2, %d(UE%d) != %ld(UE%d)\n", K2, 0, get_K2(scc,scc_sib1,sched_ctrl->active_ubwp, tda, mu), UE_id);
+                "Different K2, %d(UE%d) != %ld(UE%04x)\n", K2, 0, get_K2(scc,scc_sib1,sched_ctrl->active_ubwp, tda, mu), UE2->rnti);
     sched_ctrl->sched_pusch.slot = sched_slot;
     sched_ctrl->sched_pusch.frame = sched_frame;
   }
@@ -1569,7 +1513,7 @@ bool nr_fr1_ulsch_preprocessor(module_id_t module_id, frame_t frame, sub_frame_t
   pf_ul(module_id,
         frame,
         slot,
-        &UE_info->list,
+        nr_mac->UE_info.list,
         2,
         len,
         rballoc_mask);
@@ -1590,7 +1534,7 @@ nr_pp_impl_ul nr_init_fr1_ulsch_preprocessor(module_id_t module_id, int CC_id)
       if (mcs > 27 && mcsTableIdx == 1)
         continue;
       const uint8_t Qm = nr_get_Qm_dl(mcs, mcsTableIdx);
-      const uint16_t R = nr_get_code_rate_dl(mcs, mcsTableIdx);
+      const uint16_t R = nr_get_code_rate_ul(mcs, mcsTableIdx);
       /* note: we do not update R/Qm based on low MCS or pi2BPSK */
       ul_pf_tbs[mcsTableIdx][mcs] = nr_compute_tbs(Qm,
                                                    R,
@@ -1630,29 +1574,28 @@ void nr_schedule_ulsch(module_id_t module_id, frame_t frame, sub_frame_t slot)
 
 
   NR_ServingCellConfigCommon_t *scc = RC.nrmac[module_id]->common_channels[0].ServingCellConfigCommon;
-  NR_UE_info_t *UE_info = &RC.nrmac[module_id]->UE_info;
+  NR_UEs_t *UE_info = &RC.nrmac[module_id]->UE_info;
   const NR_SIB1_t *sib1 = RC.nrmac[module_id]->common_channels[0].sib1 ? RC.nrmac[module_id]->common_channels[0].sib1->message.choice.c1->choice.systemInformationBlockType1 : NULL;
-  const NR_list_t *UE_list = &UE_info->list;
-  for (int UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) {
-    NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
+  UE_iterator( UE_info->list, UE) {
+    NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
     if (sched_ctrl->ul_failure == 1 && get_softmodem_params()->phy_test==0) continue;
 
-    NR_CellGroupConfig_t *cg = UE_info->CellGroup[UE_id];
+    NR_CellGroupConfig_t *cg = UE->CellGroup;
 
     NR_BWP_UplinkDedicated_t *ubwpd = cg && cg->spCellConfig && cg->spCellConfig->spCellConfigDedicated &&
                                       cg->spCellConfig->spCellConfigDedicated->uplinkConfig ?
                                       cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP : NULL;
 
-    UE_info->mac_stats[UE_id].ulsch_current_bytes = 0;
+    UE->mac_stats.ul.current_bytes = 0;
 
     /* dynamic PUSCH values (RB alloc, MCS, hence R, Qm, TBS) that change in
      * every TTI are pre-populated by the preprocessor and used below */
     NR_sched_pusch_t *sched_pusch = &sched_ctrl->sched_pusch;
-    LOG_D(NR_MAC,"UE %x : sched_pusch->rbSize %d\n",UE_info->rnti[UE_id],sched_pusch->rbSize);
+    LOG_D(NR_MAC,"UE %04x : sched_pusch->rbSize %d\n",UE->rnti,sched_pusch->rbSize);
     if (sched_pusch->rbSize <= 0)
       continue;
 
-    uint16_t rnti = UE_info->rnti[UE_id];
+    uint16_t rnti = UE->rnti;
     sched_ctrl->SR = false;
 
     int8_t harq_id = sched_pusch->ul_harq_pid;
@@ -1660,8 +1603,8 @@ void nr_schedule_ulsch(module_id_t module_id, frame_t frame, sub_frame_t slot)
       /* PP has not selected a specific HARQ Process, get a new one */
       harq_id = sched_ctrl->available_ul_harq.head;
       AssertFatal(harq_id >= 0,
-                  "no free HARQ process available for UE %d\n",
-                  UE_id);
+                  "no free HARQ process available for UE %04x\n",
+                  UE->rnti);
       remove_front_nr_list(&sched_ctrl->available_ul_harq);
       sched_pusch->ul_harq_pid = harq_id;
     } else {
@@ -1687,10 +1630,10 @@ void nr_schedule_ulsch(module_id_t module_id, frame_t frame, sub_frame_t slot)
     NR_pusch_semi_static_t *ps = &sched_ctrl->pusch_semi_static;
 
     /* Statistics */
-    AssertFatal(cur_harq->round < 8, "Indexing ulsch_rounds[%d] is out of bounds\n", cur_harq->round);
-    UE_info->mac_stats[UE_id].ulsch_rounds[cur_harq->round]++;
+    AssertFatal(cur_harq->round < nr_mac->ul_bler.harq_round_max, "Indexing ulsch_rounds[%d] is out of bounds\n", cur_harq->round);
+    UE->mac_stats.ul.rounds[cur_harq->round]++;
     if (cur_harq->round == 0) {
-      UE_info->mac_stats[UE_id].ulsch_total_bytes_scheduled += sched_pusch->tb_size;
+      UE->mac_stats.ulsch_total_bytes_scheduled += sched_pusch->tb_size;
       /* Save information on MCS, TBS etc for the current initial transmission
        * so we have access to it when retransmitting */
       cur_harq->sched_pusch = *sched_pusch;
@@ -1710,12 +1653,12 @@ void nr_schedule_ulsch(module_id_t module_id, frame_t frame, sub_frame_t slot)
             cur_harq->round,
             cur_harq->ndi);
     }
-    UE_info->mac_stats[UE_id].ulsch_current_bytes = sched_pusch->tb_size;
+    UE->mac_stats.ul.current_bytes = sched_pusch->tb_size;
     sched_ctrl->last_ul_frame = sched_pusch->frame;
     sched_ctrl->last_ul_slot = sched_pusch->slot;
 
     LOG_D(NR_MAC,
-          "ULSCH/PUSCH: %4d.%2d RNTI %04x UL sched %4d.%2d DCI L %d start %2d RBS %3d startSymbol %2d nb_symbol %2d dmrs_pos %x MCS %2d TBS %4d HARQ PID %2d round %d RV %d NDI %d est %6d sched %6d est BSR %6d TPC %d\n",
+          "ULSCH/PUSCH: %4d.%2d RNTI %04x UL sched %4d.%2d DCI L %d start %2d RBS %3d startSymbol %2d nb_symbol %2d dmrs_pos %x MCS %2d nrOfLayers %2d num_dmrs_cdm_grps_no_data %2d TBS %4d HARQ PID %2d round %d RV %d NDI %d est %6d sched %6d est BSR %6d TPC %d\n",
           frame,
           slot,
           rnti,
@@ -1728,10 +1671,12 @@ void nr_schedule_ulsch(module_id_t module_id, frame_t frame, sub_frame_t slot)
           ps->nrOfSymbols,
           ps->ul_dmrs_symb_pos,
           sched_pusch->mcs,
+          ps->nrOfLayers,
+          ps->num_dmrs_cdm_grps_no_data,
           sched_pusch->tb_size,
           harq_id,
           cur_harq->round,
-          nr_rv_round_map[cur_harq->round],
+          nr_rv_round_map[cur_harq->round%4],
           cur_harq->ndi,
           sched_ctrl->estimated_ul_buffer,
           sched_ctrl->sched_ul_bytes,
@@ -1785,7 +1730,8 @@ void nr_schedule_ulsch(module_id_t module_id, frame_t frame, sub_frame_t slot)
       pusch_pdu->data_scrambling_id = *ps->pusch_Config->dataScramblingIdentityPUSCH;
     else
       pusch_pdu->data_scrambling_id = *scc->physCellId;
-    pusch_pdu->nrOfLayers = 1;
+    pusch_pdu->nrOfLayers = ps->nrOfLayers;
+    pusch_pdu->num_dmrs_cdm_grps_no_data = ps->num_dmrs_cdm_grps_no_data;
 
     /* FAPI: DMRS */
     pusch_pdu->ul_dmrs_symb_pos = ps->ul_dmrs_symb_pos;
@@ -1810,7 +1756,7 @@ void nr_schedule_ulsch(module_id_t module_id, frame_t frame, sub_frame_t slot)
     }
     pusch_pdu->scid = 0;      // DMRS sequence initialization [TS38.211, sec 6.4.1.1.1]
     pusch_pdu->num_dmrs_cdm_grps_no_data = ps->num_dmrs_cdm_grps_no_data;
-    pusch_pdu->dmrs_ports = 1;
+    pusch_pdu->dmrs_ports = ((1<<ps->nrOfLayers) - 1);
 
     /* FAPI: Pusch Allocation in frequency domain */
     pusch_pdu->resource_alloc = 1; //type 1
@@ -1827,13 +1773,15 @@ void nr_schedule_ulsch(module_id_t module_id, frame_t frame, sub_frame_t slot)
     pusch_pdu->nr_of_symbols = ps->nrOfSymbols;
 
     /* PUSCH PDU */
-    AssertFatal(cur_harq->round < 4, "Indexing nr_rv_round_map[%d] is out of bounds\n", cur_harq->round);
-    pusch_pdu->pusch_data.rv_index = nr_rv_round_map[cur_harq->round];
+    AssertFatal(cur_harq->round < nr_mac->ul_bler.harq_round_max, "Indexing nr_rv_round_map[%d] is out of bounds\n", cur_harq->round%4);
+    pusch_pdu->pusch_data.rv_index = nr_rv_round_map[cur_harq->round%4];
     pusch_pdu->pusch_data.harq_process_id = harq_id;
     pusch_pdu->pusch_data.new_data_indicator = cur_harq->ndi;
     pusch_pdu->pusch_data.tb_size = sched_pusch->tb_size;
     pusch_pdu->pusch_data.num_cb = 0; //CBG not supported
 
+    pusch_pdu->maintenance_parms_v3.tbSizeLbrmBytes = 0;
+
     LOG_D(NR_MAC,"PUSCH PDU : data_scrambling_identity %x, dmrs_scrambling_id %x\n",pusch_pdu->data_scrambling_id,pusch_pdu->ul_dmrs_scrambling_id);
     /* TRANSFORM PRECODING --------------------------------------------------------*/
 
@@ -1873,7 +1821,7 @@ void nr_schedule_ulsch(module_id_t module_id, frame_t frame, sub_frame_t slot)
 
     /* look up the PDCCH PDU for this BWP and CORESET. If it does not exist,
      * create it */
-    const int bwpid = sched_ctrl->active_bwp ? sched_ctrl->active_bwp->bwp_Id : 0;
+    const int bwp_id = sched_ctrl->active_bwp ? sched_ctrl->active_bwp->bwp_Id : 0;
     NR_SearchSpace_t *ss = (sched_ctrl->active_bwp || ubwpd) ? sched_ctrl->search_space: RC.nrmac[module_id]->sched_ctrlCommon->search_space;
     NR_ControlResourceSet_t *coreset = (sched_ctrl->active_bwp || ubwpd) ? sched_ctrl->coreset: RC.nrmac[module_id]->sched_ctrlCommon->coreset;
     const int coresetid = coreset->controlResourceSetId;
@@ -1889,7 +1837,7 @@ void nr_schedule_ulsch(module_id_t module_id, frame_t frame, sub_frame_t slot)
       pdcch_pdu_coreset[coresetid] = pdcch_pdu;
     }
 
-    LOG_D(NR_MAC,"Configuring ULDCI/PDCCH in %d.%d at CCE %d, rnti %x\n", frame,slot,sched_ctrl->cce_index,rnti);
+    LOG_D(NR_MAC,"Configuring ULDCI/PDCCH in %d.%d at CCE %d, rnti %04x\n", frame,slot,sched_ctrl->cce_index,rnti);
 
     /* Fill PDCCH DL DCI PDU */
     nfapi_nr_dl_dci_pdu_t *dci_pdu = &pdcch_pdu->dci_pdu[pdcch_pdu->numDlDci];
@@ -1927,9 +1875,9 @@ void nr_schedule_ulsch(module_id_t module_id, frame_t frame, sub_frame_t slot)
                  &uldci_payload,
                  ps->dci_format,
                  ps->time_domain_allocation,
-                 UE_info->UE_sched_ctrl[UE_id].tpc0,
+                 UE->UE_sched_ctrl.tpc0,
                  n_ubwp,
-                 bwpid);
+                 bwp_id);
     fill_dci_pdu_rel15(scc,
                        cg,
                        dci_pdu,
@@ -1937,10 +1885,10 @@ void nr_schedule_ulsch(module_id_t module_id, frame_t frame, sub_frame_t slot)
                        ps->dci_format,
                        rnti_types[0],
                        pusch_pdu->bwp_size,
-                       bwpid,
+                       bwp_id,
+                       coresetid,
                        nr_mac->cset0_bwp_size);
 
     memset(sched_pusch, 0, sizeof(*sched_pusch));
   }
 }
-
diff --git a/openair2/LAYER2/NR_MAC_gNB/mac_proto.h b/openair2/LAYER2/NR_MAC_gNB/mac_proto.h
index 9cb4dd88b27..75902ca60a6 100644
--- a/openair2/LAYER2/NR_MAC_gNB/mac_proto.h
+++ b/openair2/LAYER2/NR_MAC_gNB/mac_proto.h
@@ -41,8 +41,7 @@ void mac_top_init_gNB(void);
 void process_CellGroup(NR_CellGroupConfig_t *CellGroup, NR_UE_sched_ctrl_t *sched_ctrl);
 
 void config_common(int Mod_idP,
-                   int ssb_SubcarrierOffset,
-                   rrc_pdsch_AntennaPorts_t pdsch_AntennaPorts,
+                   int pdsch_AntennaPorts,
                    int pusch_AntennaPorts,
                    NR_ServingCellConfigCommon_t *scc);
 
@@ -52,7 +51,6 @@ int nr_mac_enable_ue_rrc_processing_timer(module_id_t Mod_idP,
                                           uint32_t rrc_reconfiguration_delay);
 
 int rrc_mac_config_req_gNB(module_id_t Mod_idP,
-                           int ssb_SubcarrierOffset,
                            rrc_pdsch_AntennaPorts_t pdsch_AntennaPorts,
                            int pusch_AntennaPorts,
                            int sib1_tda,
@@ -76,6 +74,10 @@ void nr_mac_update_timers(module_id_t module_id,
 void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
 			       frame_t frame_rxP, sub_frame_t slot_rxP);
 
+void schedule_nr_bwp_switch(module_id_t module_id,
+                            frame_t frame,
+                            sub_frame_t slot);
+
 /* \brief main DL scheduler function. Calls a preprocessor to decide on
  * resource allocation, then "post-processes" resource allocation (nFAPI
  * messages, statistics, HARQ handling, CEs, ... */
@@ -91,7 +93,7 @@ uint32_t schedule_control_sib1(module_id_t module_id,
                                int nrOfSymbols,
                                uint16_t dlDmrsSymbPos,
                                uint8_t candidate_idx,
-                               int num_total_bytes);
+                               uint16_t num_total_bytes);
 
 /* \brief default FR1 DL preprocessor init routine, returns preprocessor to call */
 nr_pp_impl_dl nr_init_fr1_dlsch_preprocessor(module_id_t module_id, int CC_id);
@@ -199,7 +201,7 @@ void config_uldci(const NR_SIB1_t *sib1,
                   int n_ubwp,
                   int bwp_id);
 
-void nr_schedule_pucch(int Mod_idP,
+void nr_schedule_pucch(gNB_MAC_INST *nrmac,
                        frame_t frameP,
                        sub_frame_t slotP);
 
@@ -215,14 +217,13 @@ void nr_csi_meas_reporting(int Mod_idP,
                            sub_frame_t slotP);
 
 int nr_acknack_scheduling(int Mod_idP,
-                           int UE_id,
-                           frame_t frameP,
-                           sub_frame_t slotP,
-                           int r_pucch,
-                           int do_common);
+                          NR_UE_info_t *UE,
+                          frame_t frameP,
+                          sub_frame_t slotP,
+                          int r_pucch,
+                          int do_common);
 
-void get_pdsch_to_harq_feedback(int Mod_idP,
-                                int UE_id,
+void get_pdsch_to_harq_feedback(NR_UE_info_t *,
                                 int bwp_id,
                                 NR_SearchSpace__searchSpaceType_PR ss_type,
                                 int *max_fb_time,
@@ -287,7 +288,7 @@ int find_pdcch_candidate(gNB_MAC_INST *mac,
                          int nr_of_candidates,
                          NR_sched_pdcch_t *pdcch,
                          NR_ControlResourceSet_t *coreset,
-                         uint16_t Y);
+                         uint32_t Y);
 
 void fill_pdcch_vrb_map(gNB_MAC_INST *mac,
                         int CC_id,
@@ -303,6 +304,7 @@ void fill_dci_pdu_rel15(const NR_ServingCellConfigCommon_t *scc,
                         int rnti_types,
                         int N_RB,
                         int bwp_id,
+                        NR_ControlResourceSetId_t coreset_id,
                         uint16_t cset0_bwp_size);
 
 void prepare_dci(const NR_CellGroupConfig_t *CellGroup,
@@ -331,7 +333,7 @@ NR_PDSCH_TimeDomainResourceAllocationList_t *get_pdsch_TimeDomainAllocationList(
                                                                                 const NR_SIB1_t *sib1);
 
 /* find coreset within the search space */
-NR_ControlResourceSet_t *get_coreset(module_id_t module_idP,
+NR_ControlResourceSet_t *get_coreset(gNB_MAC_INST *nrmac,
                                      NR_ServingCellConfigCommon_t *scc,
                                      void *bwp,
                                      NR_SearchSpace_t *ss,
@@ -366,10 +368,9 @@ void nr_set_pusch_semi_static(const NR_SIB1_t *sib1,
                               long dci_format,
                               int tda,
                               uint8_t num_dmrs_cdm_grps_no_data,
+                              uint8_t nrOfLayers,
                               NR_pusch_semi_static_t *ps);
 
-uint16_t get_Y(int cid, int slot, rnti_t rnti);
-
 uint8_t nr_get_tpc(int target, uint8_t cqi, int incr);
 
 int get_spf(nfapi_nr_config_request_scf_t *cfg);
@@ -382,20 +383,12 @@ void nr_get_tbs_dl(nfapi_nr_dl_tti_pdsch_pdu *pdsch_pdu,
 		   int x_overhead,
                    uint8_t numdmrscdmgroupnodata,
                    uint8_t tb_scaling);
-/** \brief Computes Q based on I_MCS PDSCH and table_idx for downlink. Implements MCS Tables from 38.214. */
-uint8_t nr_get_Qm_dl(uint8_t Imcs, uint8_t table_idx);
-uint32_t nr_get_code_rate_dl(uint8_t Imcs, uint8_t table_idx);
-
-/** \brief Computes Q based on I_MCS PDSCH and table_idx for uplink. Implements MCS Tables from 38.214. */
-uint8_t nr_get_Qm_ul(uint8_t Imcs, uint8_t table_idx);
-uint32_t nr_get_code_rate_ul(uint8_t Imcs, uint8_t table_idx);
 
 int NRRIV2BW(int locationAndBandwidth,int N_RB);
 
 int NRRIV2PRBOFFSET(int locationAndBandwidth,int N_RB);
 
 /* Functions to manage an NR_list_t */
-void dump_nr_list(NR_list_t *listP);
 void create_nr_list(NR_list_t *listP, int len);
 void resize_nr_list(NR_list_t *list, int new_len);
 void destroy_nr_list(NR_list_t *list);
@@ -405,44 +398,24 @@ void add_tail_nr_list(NR_list_t *listP, int id);
 void add_front_nr_list(NR_list_t *listP, int id);
 void remove_front_nr_list(NR_list_t *listP);
 
-int find_nr_UE_id(module_id_t mod_idP, rnti_t rntiP);
+NR_UE_info_t * find_nr_UE(NR_UEs_t* UEs, rnti_t rntiP);
 
 int find_nr_RA_id(module_id_t mod_idP, int CC_idP, rnti_t rntiP);
 
-int add_new_nr_ue(module_id_t mod_idP, rnti_t rntiP, NR_CellGroupConfig_t *CellGroup);
+NR_UE_info_t*add_new_nr_ue(gNB_MAC_INST *nr_mac, rnti_t rntiP, NR_CellGroupConfig_t *CellGroup);
 
-void mac_remove_nr_ue(module_id_t mod_id, rnti_t rnti);
+void mac_remove_nr_ue(gNB_MAC_INST *nr_mac, rnti_t rnti);
 
 void nr_mac_remove_ra_rnti(module_id_t mod_id, rnti_t rnti);
 
-int allocate_nr_CCEs(gNB_MAC_INST *nr_mac,
-                     NR_BWP_Downlink_t *bwp,
-                     NR_ControlResourceSet_t *coreset,
-                     int aggregation,
-                     uint16_t Y,
-                     int m,
-                     int nr_of_candidates);
-
 int nr_get_default_pucch_res(int pucch_ResourceCommon);
 
-void compute_csi_bitlen(NR_CSI_MeasConfig_t *csi_MeasConfig, NR_UE_info_t *UE_info, int UE_id, module_id_t Mod_idP);
-
 int get_dlscs(nfapi_nr_config_request_t *cfg);
 
 int get_ulscs(nfapi_nr_config_request_t *cfg);
 
 int get_symbolsperslot(nfapi_nr_config_request_t *cfg);
 
-void config_nr_mib(int Mod_idP, 
-                   int CC_idP,
-                   int p_gNBP,
-                   int subCarrierSpacingCommon,
-                   uint32_t ssb_SubcarrierOffset,
-                   int dmrs_TypeA_Position,
-                   uint32_t pdcch_ConfigSIB1,
-                   int cellBarred,
-                   int intraFreqReselection);
-
 int nr_write_ce_dlsch_pdu(module_id_t module_idP,
                           const NR_UE_sched_ctrl_t *ue_sched_ctl,
                           unsigned char *mac_pdu,
@@ -459,7 +432,7 @@ int binomial(int n, int k);
 
 bool is_xlsch_in_slot(uint64_t bitmap, sub_frame_t slot);
 
-void fill_ssb_vrb_map (NR_COMMON_channels_t *cc, int rbStart, uint16_t symStart, int CC_id);
+void fill_ssb_vrb_map (NR_COMMON_channels_t *cc, int rbStart, int ssb_subcarrier_offset, uint16_t symStart, int CC_id);
 
 
 /* \brief Function to indicate a received SDU on ULSCH.
@@ -485,15 +458,29 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
 void create_dl_harq_list(NR_UE_sched_ctrl_t *sched_ctrl,
                          const NR_PDSCH_ServingCellConfig_t *pdsch);
 
+void reset_dl_harq_list(NR_UE_sched_ctrl_t *sched_ctrl);
+
+void reset_ul_harq_list(NR_UE_sched_ctrl_t *sched_ctrl);
+
 void handle_nr_ul_harq(const int CC_idP,
                        module_id_t mod_id,
                        frame_t frame,
                        sub_frame_t slot,
                        const nfapi_nr_crc_t *crc_pdu);
 
+void handle_nr_srs_measurements(const module_id_t module_id,
+                                const frame_t frame,
+                                const sub_frame_t slot,
+                                const rnti_t rnti,
+                                const uint16_t timing_advance,
+                                const uint8_t num_symbols,
+                                const uint8_t wide_band_snr,
+                                const uint8_t num_reported_symbols,
+                                nfapi_nr_srs_indication_reported_symbol_t* reported_symbol_list);
+
 int16_t ssb_index_from_prach(module_id_t module_idP,
                              frame_t frameP,
-			     sub_frame_t slotP,
+                             sub_frame_t slotP,
                              uint16_t preamble_index,
                              uint8_t freq_index,
                              uint8_t symbol);
@@ -502,18 +489,21 @@ void find_SSB_and_RO_available(module_id_t module_idP);
 
 void set_dl_dmrs_ports(NR_pdsch_semi_static_t *ps);
 
-void set_dl_mcs(NR_sched_pdsch_t *sched_pdsch,
-                NR_UE_sched_ctrl_t *sched_ctrl,
-                uint8_t *target_mcs,
-                uint8_t mcs_table_idx);
+uint16_t set_pm_index(NR_UE_sched_ctrl_t *sched_ctrl,
+                      int layers,
+                      int N1, int N2,
+                      int xp_pdsch_antenna_ports,
+                      int codebook_mode);
+
+uint8_t get_mcs_from_cqi(int mcs_table, int cqi_table, int cqi_idx);
 
 uint8_t set_dl_nrOfLayers(NR_UE_sched_ctrl_t *sched_ctrl);
 
 int get_dci_format(NR_UE_sched_ctrl_t *sched_ctrl);
-void calculate_preferred_dl_tda(module_id_t module_id, const NR_BWP_Downlink_t *bwp);
-void calculate_preferred_ul_tda(module_id_t module_id, const NR_BWP_Uplink_t *ubwp);
+const int get_dl_tda(const gNB_MAC_INST *nrmac, const NR_ServingCellConfigCommon_t *scc, int slot);
+const int get_ul_tda(const gNB_MAC_INST *nrmac, const NR_ServingCellConfigCommon_t *scc, int slot);
 
-bool find_free_CCE(module_id_t module_id, sub_frame_t slot, int UE_id);
+bool find_free_CCE(sub_frame_t slot, NR_UE_info_t *UE);
 
 bool nr_find_nb_rb(uint16_t Qm,
                    uint16_t R,
@@ -526,10 +516,20 @@ bool nr_find_nb_rb(uint16_t Qm,
                    uint32_t *tbs,
                    uint16_t *nb_rb);
 
-void nr_sr_reporting(int Mod_idP, frame_t frameP, sub_frame_t slotP);
+int get_mcs_from_bler(const NR_bler_options_t *bler_options,
+                      const NR_mac_dir_stats_t *stats,
+                      NR_bler_stats_t *bler_stats,
+                      int max_mcs,
+                      frame_t frame);
 
-void dump_mac_stats(gNB_MAC_INST *gNB, char *output, int strlen, bool reset_rsrp);
+void UL_tti_req_ahead_initialization(gNB_MAC_INST * gNB, NR_ServingCellConfigCommon_t *scc, int n, int CCid);
+
+void nr_sr_reporting(gNB_MAC_INST *nrmac, frame_t frameP, sub_frame_t slotP);
+
+size_t dump_mac_stats(gNB_MAC_INST *gNB, char *output, size_t strlen, bool reset_rsrp);
 
 void process_CellGroup(NR_CellGroupConfig_t *CellGroup, NR_UE_sched_ctrl_t *sched_ctrl);
 
+void abort_nr_dl_harq(NR_UE_info_t* UE, int8_t harq_pid);
+
 #endif /*__LAYER2_NR_MAC_PROTO_H__*/
diff --git a/openair2/LAYER2/NR_MAC_gNB/main.c b/openair2/LAYER2/NR_MAC_gNB/main.c
index e047494b529..12c9846037f 100644
--- a/openair2/LAYER2/NR_MAC_gNB/main.c
+++ b/openair2/LAYER2/NR_MAC_gNB/main.c
@@ -45,107 +45,138 @@
 extern RAN_CONTEXT_t RC;
 
 
-#define MACSTATSSTRLEN 16384
+#define MACSTATSSTRLEN 65536
 
 void *nrmac_stats_thread(void *arg) {
 
   gNB_MAC_INST *gNB = (gNB_MAC_INST *)arg;
 
-  char output[MACSTATSSTRLEN];
-  memset(output,0,MACSTATSSTRLEN);
-  FILE *fd=fopen("nrMAC_stats.log","w");
-  AssertFatal(fd!=NULL,"Cannot open nrMAC_stats.log, error %s\n",strerror(errno));
+  char output[MACSTATSSTRLEN] = {0};
+  const char *end = output + MACSTATSSTRLEN;
+  FILE *file = fopen("nrMAC_stats.log","w");
+  AssertFatal(file!=NULL,"Cannot open nrMAC_stats.log, error %s\n",strerror(errno));
 
   while (oai_exit == 0) {
-     dump_mac_stats(gNB,output,MACSTATSSTRLEN,false);
-     fprintf(fd,"%s\n",output);
-     fflush(fd);
-     usleep(200000);
-     fseek(fd,0,SEEK_SET);
+    char *p = output;
+    p += dump_mac_stats(gNB, p, end - p, false);
+    p += snprintf(p, end - p, "\n");
+    p += print_meas_log(&gNB->eNB_scheduler, "DL & UL scheduling timing", NULL, NULL, p, end - p);
+    p += print_meas_log(&gNB->schedule_dlsch, "dlsch scheduler", NULL, NULL, p, end - p);
+    p += print_meas_log(&gNB->rlc_data_req, "rlc_data_req", NULL, NULL, p, end - p);
+    p += print_meas_log(&gNB->rlc_status_ind, "rlc_status_ind", NULL, NULL, p, end - p);
+    fwrite(output, p - output, 1, file);
+    fflush(file);
+    sleep(1);
+    fseek(file,0,SEEK_SET);
   }
-  fclose(fd);
+  fclose(file);
   return NULL;
 }
 
 void clear_mac_stats(gNB_MAC_INST *gNB) {
-  memset((void*)gNB->UE_info.mac_stats,0,MAX_MOBILES_PER_GNB*sizeof(NR_mac_stats_t));
+  UE_iterator(gNB->UE_info.list, UE) {
+    memset(&UE->mac_stats,0,sizeof(UE->mac_stats));
+  }
 }
 
-void dump_mac_stats(gNB_MAC_INST *gNB, char *output, int strlen, bool reset_rsrp)
+size_t dump_mac_stats(gNB_MAC_INST *gNB, char *output, size_t strlen, bool reset_rsrp)
 {
-  NR_UE_info_t *UE_info = &gNB->UE_info;
   int num = 1;
- 
-  int stroff=0;
-  if (UE_info->num_UEs == 0) return;
-
-  for (int UE_id = UE_info->list.head; UE_id >= 0; UE_id = UE_info->list.next[UE_id]) {
+  const char *begin = output;
+  const char *end = output + strlen;
 
-    const NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
-    NR_mac_stats_t *stats = &UE_info->mac_stats[UE_id];
+  pthread_mutex_lock(&gNB->UE_info.mutex);
+  UE_iterator(gNB->UE_info.list, UE) {
+    NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
+    NR_mac_stats_t *stats = &UE->mac_stats;
     const int avg_rsrp = stats->num_rsrp_meas > 0 ? stats->cumul_rsrp / stats->num_rsrp_meas : 0;
-    stroff+=sprintf(output+stroff,"UE ID %d RNTI %04x (%d/%d) PH %d dB PCMAX %d dBm, average RSRP %d (%d meas)\n",
-      UE_id,
-      UE_info->rnti[UE_id],
-      num++,
-      UE_info->num_UEs,
-      sched_ctrl->ph,
-      sched_ctrl->pcmax,
-      avg_rsrp,
-      stats->num_rsrp_meas);
-    stroff+=sprintf(output+stroff,"UE %d: CQI %d, RI %d, PMI (%d,%d)\n",
-                    UE_id,
-                    UE_info->UE_sched_ctrl[UE_id].CSI_report.cri_ri_li_pmi_cqi_report.wb_cqi_1tb,
-                    UE_info->UE_sched_ctrl[UE_id].CSI_report.cri_ri_li_pmi_cqi_report.ri+1,
-                    UE_info->UE_sched_ctrl[UE_id].CSI_report.cri_ri_li_pmi_cqi_report.pmi_x1,
-                    UE_info->UE_sched_ctrl[UE_id].CSI_report.cri_ri_li_pmi_cqi_report.pmi_x2);
-
-    stroff+=sprintf(output+stroff,"UE %d: dlsch_rounds %"PRIu64"/%"PRIu64"/%"PRIu64"/%"PRIu64", dlsch_errors %"PRIu64", pucch0_DTX %d, BLER %.5f MCS %d\n",
-                    UE_id,
-                    stats->dlsch_rounds[0], stats->dlsch_rounds[1],
-                    stats->dlsch_rounds[2], stats->dlsch_rounds[3],
-                    stats->dlsch_errors,
-                    stats->pucch0_DTX,
-                    sched_ctrl->dl_bler_stats.bler,
-                    sched_ctrl->dl_bler_stats.mcs);
+
+    output += snprintf(output,
+                       end - output,
+                       "UE RNTI %04x (%d) PH %d dB PCMAX %d dBm, average RSRP %d (%d meas), UL-SNR %d dB\n",
+                       UE->rnti,
+                       num++,
+                       sched_ctrl->ph,
+                       sched_ctrl->pcmax,
+                       avg_rsrp,
+                       stats->num_rsrp_meas,
+                       stats->srs_wide_band_snr);
+    output += snprintf(output,
+                       end - output,
+                       "UE %04x: CQI %d, RI %d, PMI (%d,%d)\n",
+                       UE->rnti,
+                       sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.wb_cqi_1tb,
+                       sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.ri+1,
+                       sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.pmi_x1,
+                       sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.pmi_x2);
+
+    output += snprintf(output,
+                       end - output,
+                       "UE %04x: dlsch_rounds ", UE->rnti);
+    output += snprintf(output, end - output, "%"PRIu64, stats->dl.rounds[0]);
+    for (int i = 1; i < gNB->dl_bler.harq_round_max; i++)
+      output += snprintf(output, end - output, "/%"PRIu64, stats->dl.rounds[i]);
+
+    output += snprintf(output,
+                       end - output,
+                       ", dlsch_errors %"PRIu64", pucch0_DTX %d, BLER %.5f MCS %d\n",
+                       stats->dl.errors,
+                       stats->pucch0_DTX,
+                       sched_ctrl->dl_bler_stats.bler,
+                       sched_ctrl->dl_bler_stats.mcs);
     if (reset_rsrp) {
       stats->num_rsrp_meas = 0;
       stats->cumul_rsrp = 0;
     }
-    stroff+=sprintf(output+stroff,"UE %d: dlsch_total_bytes %"PRIu64"\n", UE_id, stats->dlsch_total_bytes);
-    stroff+=sprintf(output+stroff,"UE %d: ulsch_rounds %"PRIu64"/%"PRIu64"/%"PRIu64"/%"PRIu64", ulsch_DTX %d, ulsch_errors %"PRIu64"\n",
-                    UE_id,
-                    stats->ulsch_rounds[0], stats->ulsch_rounds[1],
-                    stats->ulsch_rounds[2], stats->ulsch_rounds[3],
-                    stats->ulsch_DTX,
-                    stats->ulsch_errors);
-    stroff+=sprintf(output+stroff,
-                    "UE %d: ulsch_total_bytes_scheduled %"PRIu64", ulsch_total_bytes_received %"PRIu64"\n",
-                    UE_id,
-                    stats->ulsch_total_bytes_scheduled, stats->ulsch_total_bytes_rx);
+    output += snprintf(output,
+                       end - output,
+                       "UE %04x: dlsch_total_bytes %"PRIu64"\n",
+                       UE->rnti, stats->dl.total_bytes);
+    output += snprintf(output,
+                       end - output,
+                       "UE %04x: ulsch_rounds ", UE->rnti);
+    output += snprintf(output, end - output, "%"PRIu64, stats->ul.rounds[0]);
+    for (int i = 1; i < gNB->ul_bler.harq_round_max; i++)
+      output += snprintf(output, end - output, "/%"PRIu64, stats->ul.rounds[i]);
+
+    output += snprintf(output,
+                       end - output,
+                       ", ulsch_DTX %d, ulsch_errors %"PRIu64", BLER %.5f MCS %d\n",
+                       stats->ulsch_DTX,
+                       stats->ul.errors,
+                       sched_ctrl->ul_bler_stats.bler,
+                       sched_ctrl->ul_bler_stats.mcs);
+    output += snprintf(output,
+                       end - output,
+                       "UE %04x: ulsch_total_bytes_scheduled %"PRIu64", ulsch_total_bytes_received %"PRIu64"\n",
+                       UE->rnti,
+                       stats->ulsch_total_bytes_scheduled, stats->ul.total_bytes);
+
     for (int lc_id = 0; lc_id < 63; lc_id++) {
-      if (stats->lc_bytes_tx[lc_id] > 0) {
-        stroff+=sprintf(output+stroff, "UE %d: LCID %d: %"PRIu64" bytes TX\n", UE_id, lc_id, stats->lc_bytes_tx[lc_id]);
-	LOG_D(NR_MAC, "UE %d: LCID %d: %"PRIu64" bytes TX\n", UE_id, lc_id, stats->lc_bytes_tx[lc_id]);
-      }
-      if (stats->lc_bytes_rx[lc_id] > 0) {
-        stroff+=sprintf(output+stroff, "UE %d: LCID %d: %"PRIu64" bytes RX\n", UE_id, lc_id, stats->lc_bytes_rx[lc_id]);
-	LOG_D(NR_MAC, "UE %d: LCID %d: %"PRIu64" bytes RX\n", UE_id, lc_id, stats->lc_bytes_rx[lc_id]);
-      }
+      if (stats->dl.lc_bytes[lc_id] > 0)
+        output += snprintf(output,
+                           end - output,
+                           "UE %04x: LCID %d: %"PRIu64" bytes TX\n",
+                           UE->rnti,
+                           lc_id,
+                           stats->dl.lc_bytes[lc_id]);
+      if (stats->ul.lc_bytes[lc_id] > 0)
+        output += snprintf(output,
+                           end - output,
+                           "UE %04x: LCID %d: %"PRIu64" bytes RX\n",
+                           UE->rnti,
+                           lc_id,
+                           stats->ul.lc_bytes[lc_id]);
     }
   }
-  print_meas(&gNB->eNB_scheduler, "DL & UL scheduling timing stats", NULL, NULL);
-  print_meas(&gNB->schedule_dlsch,"dlsch scheduler",NULL,NULL);
-  print_meas(&gNB->rlc_data_req, "rlc_data_req",NULL,NULL);
-  print_meas(&gNB->rlc_status_ind,"rlc_status_ind",NULL,NULL);
+  pthread_mutex_unlock(&gNB->UE_info.mutex);
+  return output - begin;
 }
 
 
 void mac_top_init_gNB(void)
 {
   module_id_t     i;
-  int             list_el;
-  NR_UE_info_t    *UE_info;
   gNB_MAC_INST    *nrmac;
 
   LOG_I(MAC, "[MAIN] Init function start:nb_nr_macrlc_inst=%d\n",RC.nb_nr_macrlc_inst);
@@ -179,6 +210,8 @@ void mac_top_init_gNB(void)
 
       RC.nrmac[i]->first_MIB = true;
 
+      pthread_mutex_init(&RC.nrmac[i]->UE_info.mutex, NULL);
+
       if (get_softmodem_params()->phy_test) {
         RC.nrmac[i]->pre_processor_dl = nr_preprocessor_phytest;
         RC.nrmac[i]->pre_processor_ul = nr_ul_preprocessor_phytest;
@@ -186,8 +219,8 @@ void mac_top_init_gNB(void)
         RC.nrmac[i]->pre_processor_dl = nr_init_fr1_dlsch_preprocessor(i, 0);
         RC.nrmac[i]->pre_processor_ul = nr_init_fr1_ulsch_preprocessor(i, 0);
       }
-      pthread_create(&RC.nrmac[i]->stats_thread,NULL,nrmac_stats_thread,(void*)RC.nrmac[i]);
-
+      if (!IS_SOFTMODEM_NOSTATS_BIT)
+        pthread_create(&RC.nrmac[i]->stats_thread, NULL, nrmac_stats_thread, (void*)RC.nrmac[i]);
     }//END for (i = 0; i < RC.nb_nr_macrlc_inst; i++)
 
     AssertFatal(rlc_module_init(1) == 0,"Could not initialize RLC layer\n");
@@ -207,16 +240,9 @@ void mac_top_init_gNB(void)
 
   // Initialize Linked-List for Active UEs
   for (i = 0; i < RC.nb_nr_macrlc_inst; i++) {
-
     nrmac = RC.nrmac[i];
     nrmac->if_inst = NR_IF_Module_init(i);
-    
-    UE_info = &nrmac->UE_info;
-    UE_info->num_UEs = 0;
-    create_nr_list(&UE_info->list, MAX_MOBILES_PER_GNB);
-    for (list_el = 0; list_el < MAX_MOBILES_PER_GNB; list_el++) {
-      UE_info->active[list_el] = false;
-    }
+    memset(&nrmac->UE_info, 0, sizeof(nrmac->UE_info));
   }
 
   srand48(0);
diff --git a/openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h b/openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
index a2c77234c0c..3ec0de57e48 100644
--- a/openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
+++ b/openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
@@ -72,14 +72,15 @@
 
 
 /* Defs */
-#define MAX_NUM_BWP 2
+#define MAX_NUM_BWP 5
 #define MAX_NUM_CORESET 12
 #define MAX_NUM_CCE 90
-#define MAX_HARQ_ROUNDS 4
 /*!\brief Maximum number of random access process */
 #define NR_NB_RA_PROC_MAX 4
 #define MAX_NUM_OF_SSB 64
 
+#define MIN_NUM_PRBS_TO_SCHEDULE  5
+
 /*! \brief NR_list_t is a "list" (of users, HARQ processes, slices, ...).
  * Especially useful in the scheduler and to keep "classes" of users. */
 typedef struct {
@@ -89,6 +90,7 @@ typedef struct {
   int len;
 } NR_list_t;
 
+
 typedef enum {
   RA_IDLE = 0,
   Msg2 = 1,
@@ -121,8 +123,10 @@ typedef struct NR_sched_pdcch {
 typedef struct {
   /// Flag to indicate this process is active
   RA_gNB_state_t state;
-  /// BWP id of RA process
-  int bwp_id;
+  /// DL BWP id of RA process
+  int dl_bwp_id;
+  /// UL BWP id of RA process
+  int ul_bwp_id;
   /// CORESET0 configured flag
   int coreset0_configured;
   /// Slot where preamble was received
@@ -343,6 +347,7 @@ typedef struct NR_sched_pucch {
 typedef struct NR_pusch_semi_static_t {
   int dci_format;
   int time_domain_allocation;
+  uint8_t nrOfLayers;
   uint8_t num_dmrs_cdm_grps_no_data;
 
   int startSymbolIndex;
@@ -434,6 +439,7 @@ typedef struct NR_sched_pdsch {
   /// only important for retransmissions; otherwise, the TDA in
   /// NR_pdsch_semi_static_t has precedence
   int time_domain_allocation;
+  uint8_t nrOfLayers;
 } NR_sched_pdsch_t;
 
 typedef struct NR_UE_harq {
@@ -454,13 +460,12 @@ typedef struct NR_UE_harq {
 
 //! fixme : need to enhace for the multiple TB CQI report
 
-typedef struct NR_DL_bler_stats {
-  frame_t last_frame_slot;
+typedef struct NR_bler_stats {
+  frame_t last_frame;
   float bler;
-  float rd2_bler;
   uint8_t mcs;
-  uint64_t dlsch_rounds[8];
-} NR_DL_bler_stats_t;
+  uint64_t rounds[8];
+} NR_bler_stats_t;
 
 //
 /*! As per spec 38.214 section 5.2.1.4.2
@@ -486,6 +491,7 @@ struct CRI_RI_LI_PMI_CQI {
   uint8_t wb_cqi_1tb;
   uint8_t wb_cqi_2tb;
   uint8_t cqi_table;
+  uint8_t csi_report_id;
 };
 
 typedef struct CRI_SSB_RSRP {
@@ -502,35 +508,6 @@ struct CSI_Report {
 
 #define MAX_SR_BITLEN 8
 
-typedef struct {
-  uint8_t nb_ssbri_cri;
-  uint8_t cri_ssbri_bitlen;
-  uint8_t rsrp_bitlen;
-  uint8_t diff_rsrp_bitlen;
-}L1_RSRP_bitlen_t;
-
-typedef struct{
-  uint8_t ri_restriction;
-  uint8_t cri_bitlen;
-  uint8_t ri_bitlen;
-  uint8_t li_bitlen[8];
-  uint8_t pmi_x1_bitlen[8];
-  uint8_t pmi_x2_bitlen[8];
-  uint8_t cqi_bitlen[8];
-} CSI_Meas_bitlen_t;
-
-typedef struct nr_csi_report {
-  NR_CSI_ReportConfig__reportQuantity_PR reportQuantity_type;
-  long periodicity;
-  uint16_t offset;
-  long ** SSB_Index_list;
-  long ** CSI_Index_list;
-//  uint8_t nb_of_nzp_csi_report;
-  uint8_t nb_of_csi_ssb_report;
-  L1_RSRP_bitlen_t CSI_report_bitlen;
-  CSI_Meas_bitlen_t csi_meas_bitlen;
-} nr_csi_report_t;
-
 /*! As per the spec 38.212 and table:  6.3.1.1.2-12 in a single UCI sequence we can have multiple CSI_report 
   the number of CSI_report will depend on number of CSI resource sets that are configured in CSI-ResourceConfig RRC IE
   From spec 38.331 from the IE CSI-ResourceConfig for SSB RSRP reporting we can configure only one resource set 
@@ -561,6 +538,12 @@ typedef struct {
   NR_BWP_Downlink_t *active_bwp;
   /// the currently active BWP in UL
   NR_BWP_Uplink_t *active_ubwp;
+
+  /// the next active BWP ID in DL
+  NR_BWP_Id_t next_dl_bwp_id;
+  /// the next active BWP ID in UL
+  NR_BWP_Id_t next_ul_bwp_id;
+
   /// CCE index and aggregation, should be coherent with cce_list
   NR_SearchSpace_t *search_space;
   NR_ControlResourceSet_t *coreset;
@@ -598,6 +581,9 @@ typedef struct {
   NR_pdsch_semi_static_t pdsch_semi_static;
   /// Sched PDSCH: scheduling decisions, copied into HARQ and cleared every TTI
   NR_sched_pdsch_t sched_pdsch;
+  /// UE-estimated maximum MCS (from CSI-RS)
+  uint8_t dl_max_mcs;
+
   /// For UL synchronization: store last UL scheduling grant
   frame_t last_ul_frame;
   sub_frame_t last_ul_slot;
@@ -609,7 +595,8 @@ typedef struct {
   mac_rlc_status_resp_t rlc_status[NR_MAX_NUM_LCID];
 
   /// Estimation of HARQ from BLER
-  NR_DL_bler_stats_t dl_bler_stats;
+  NR_bler_stats_t dl_bler_stats;
+  NR_bler_stats_t ul_bler_stats;
 
   uint16_t ta_frame;
   int16_t ta_update;
@@ -626,7 +613,7 @@ typedef struct {
   int ul_failure;
   struct CSI_Report CSI_report;
   bool SR;
-  bool set_mcs;
+  bool set_pmi;
   /// information about every HARQ process
   NR_UE_harq_t harq_processes[NR_MAX_NB_HARQ_PROCESSES];
   /// HARQ processes that are free
@@ -654,49 +641,68 @@ typedef struct {
 } NR_UE_sched_ctrl_t;
 
 typedef struct {
-  boolean_t fiveG_connected;
   uicc_t *uicc;
 } NRUEcontext_t;
 
-typedef struct {
-  uint64_t lc_bytes_tx[64];
-  uint64_t lc_bytes_rx[64];
-  uint64_t dlsch_rounds[8];
-  uint64_t dlsch_errors;
-  uint64_t dlsch_total_bytes;
-  int dlsch_current_bytes;
-  uint64_t ulsch_rounds[8];
-  uint64_t ulsch_errors;
+typedef struct NR_mac_dir_stats {
+  uint64_t lc_bytes[64];
+  uint64_t rounds[8];
+  uint64_t errors;
+  uint64_t total_bytes;
+  uint32_t current_bytes;
+} NR_mac_dir_stats_t;
+
+typedef struct NR_mac_stats {
+  NR_mac_dir_stats_t dl;
+  NR_mac_dir_stats_t ul;
   uint32_t ulsch_DTX;
   uint64_t ulsch_total_bytes_scheduled;
-  uint64_t ulsch_total_bytes_rx;
-  int ulsch_current_bytes;
   uint32_t pucch0_DTX;
   int cumul_rsrp;
   uint8_t num_rsrp_meas;
+  int8_t srs_wide_band_snr;
 } NR_mac_stats_t;
 
+typedef struct NR_bler_options {
+  double upper;
+  double lower;
+  uint8_t max_mcs;
+  uint8_t harq_round_max;
+} NR_bler_options_t;
 
 /*! \brief UE list used by gNB to order UEs/CC for scheduling*/
-#define MAX_CSI_REPORTCONFIG 48
 typedef struct {
+  rnti_t rnti;
   /// scheduling control info
-  nr_csi_report_t csi_report_template[MAX_MOBILES_PER_GNB][MAX_CSI_REPORTCONFIG];
-  NR_UE_sched_ctrl_t UE_sched_ctrl[MAX_MOBILES_PER_GNB];
-  NR_mac_stats_t mac_stats[MAX_MOBILES_PER_GNB];
-  NR_list_t list;
-  int num_UEs;
-  bool active[MAX_MOBILES_PER_GNB];
-  rnti_t rnti[MAX_MOBILES_PER_GNB];
-  NR_CellGroupConfig_t *CellGroup[MAX_MOBILES_PER_GNB];
+  nr_csi_report_t csi_report_template[MAX_CSI_REPORTCONFIG];
+  NR_UE_sched_ctrl_t UE_sched_ctrl;
+  NR_mac_stats_t mac_stats;
+  NR_CellGroupConfig_t *CellGroup;
+  char cg_buf[32768]; /* arbitrary size */
+  asn_enc_rval_t enc_rval;
   /// CCE indexing
-  int m[MAX_MOBILES_PER_GNB];
+  int m;
   // UE selected beam index
-  uint8_t UE_beam_index[MAX_MOBILES_PER_GNB];
-  bool Msg4_ACKed[MAX_MOBILES_PER_GNB];
-
+  uint8_t UE_beam_index;
+  bool Msg3_dcch_dtch;
+  bool Msg4_ACKed;
+  /// Sched CSI-RS: scheduling decisions
+  NR_gNB_UCI_STATS_t uci_statS;
+  float ul_thr_ue;
+  float dl_thr_ue;
+  int layers; 
 } NR_UE_info_t;
 
+typedef struct {
+  /// scheduling control info
+  // last element always NULL
+  pthread_mutex_t mutex;
+  NR_UE_info_t *list[MAX_MOBILES_PER_GNB+1];
+  bool sched_csirs;
+} NR_UEs_t;
+
+#define UE_iterator(BaSe, VaR) NR_UE_info_t ** VaR##pptr=BaSe, *VaR; while ((VaR=*(VaR##pptr++)))
+
 typedef void (*nr_pp_impl_dl)(module_id_t mod_id,
                               frame_t frame,
                               sub_frame_t slot);
@@ -721,12 +727,15 @@ typedef struct gNB_MAC_INST_s {
   int                             pusch_target_snrx10;
   /// Pucch target SNR
   int                             pucch_target_snrx10;
+  /// SNR threshold needed to put or not a PRB in the black list
+  int                             ul_prbblack_SNR_threshold;
   /// PUCCH Failure threshold (compared to consecutive PUCCH DTX)
   int                             pucch_failure_thres;
   /// PUSCH Failure threshold (compared to consecutive PUSCH DTX)
   int                             pusch_failure_thres;
   /// Subcarrier Offset
   int                             ssb_SubcarrierOffset;
+  int                             ssb_OffsetPointA;
   /// SIB1 Time domain allocation
   int                             sib1_tda;
   int                             minRXTXTIMEpdsch;
@@ -735,7 +744,7 @@ typedef struct gNB_MAC_INST_s {
   /// current PDU index (BCH,DLSCH)
   uint16_t pdu_index[NFAPI_CC_MAX];
   int num_ulprbbl;
-  uint16_t ulprbbl[275];
+  uint16_t ulprbbl[MAX_BWP_SIZE];
   /// NFAPI Config Request Structure
   nfapi_nr_config_request_scf_t     config[NFAPI_CC_MAX];
   /// NFAPI DL Config Request Structure
@@ -754,8 +763,8 @@ typedef struct gNB_MAC_INST_s {
   nfapi_nr_ul_dci_request_t         UL_dci_req[NFAPI_CC_MAX];
   /// NFAPI DL PDU structure
   nfapi_nr_tx_data_request_t        TX_req[NFAPI_CC_MAX];
-  int pdcch_cand[MAX_NUM_CORESET];
-  NR_UE_info_t UE_info;
+
+  NR_UEs_t UE_info;
 
   /// UL handle
   uint32_t ul_handle;
@@ -791,15 +800,8 @@ typedef struct gNB_MAC_INST_s {
 
   /// bitmap of DLSCH slots, can hold up to 160 slots
   uint64_t dlsch_slot_bitmap[3];
-  /// Lookup for preferred time domain allocation for BWP, in DL, slots
-  /// dynamically allocated
-  int *preferred_dl_tda[MAX_NUM_BWP];
   /// bitmap of ULSCH slots, can hold up to 160 slots
   uint64_t ulsch_slot_bitmap[3];
-  /// Lookup for preferred time domain allocation for UL BWP, dynamically
-  /// allocated. The index refers to the DL slot, and the indicated TDA's k2
-  /// points to the right UL slot
-  int *preferred_ul_tda[MAX_NUM_BWP];
 
   /// maximum number of slots before a UE will be scheduled ULSCH automatically
   uint32_t ulsch_max_frame_inactivity;
@@ -814,12 +816,11 @@ typedef struct gNB_MAC_INST_s {
   uint16_t cset0_bwp_size;
   NR_Type0_PDCCH_CSS_config_t type0_PDCCH_CSS_config[64];
 
+  int xp_pdsch_antenna_ports;
+
   bool first_MIB;
-  double dl_bler_target_upper;
-  double dl_bler_target_lower;
-  double dl_rd2_bler_threshold;
-  uint8_t dl_max_mcs;
-  uint8_t harq_round_max;
+  NR_bler_options_t dl_bler;
+  NR_bler_options_t ul_bler;
   uint8_t min_grant_prb;
   uint8_t min_grant_mcs;
 } gNB_MAC_INST;
diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c
index 108a5dbe914..9adc6ecb5df 100644
--- a/openair2/LAYER2/PDCP_v10.1.0/pdcp.c
+++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c
@@ -139,7 +139,7 @@ extern volatile int oai_exit;
 pthread_t pdcp_stats_thread_desc;
 
 // will be called when 4G F1 implementation will use GTP-U instead of protobuf
-boolean_t cu_f1u_data_req(
+bool cu_f1u_data_req(
   protocol_ctxt_t  *ctxt_pP,
   const srb_flag_t srb_flagP,
   const rb_id_t rb_id,
@@ -228,7 +228,7 @@ rlc_op_status_t cu_send_to_du(const protocol_ctxt_t *const ctxt,
 	__func__, rb_id, size);
   extern instance_t CUuniqInstance;
   itti_send_msg_to_task(TASK_GTPV1_U, CUuniqInstance, message_p);
-  return TRUE;
+  return true;
 }
 
 //-----------------------------------------------------------------------------
@@ -239,18 +239,16 @@ rlc_op_status_t cu_send_to_du(const protocol_ctxt_t *const ctxt,
  * this mem_block_t to be dissected for testing purposes. For further details see test
  * code at targets/TEST/PDCP/test_pdcp.c:test_pdcp_data_req()
  */
-boolean_t pdcp_data_req(
-  protocol_ctxt_t  *ctxt_pP,
-  const srb_flag_t     srb_flagP,
-  const rb_id_t        rb_idP,
-  const mui_t          muiP,
-  const confirm_t      confirmP,
-  const sdu_size_t     sdu_buffer_sizeP,
-  unsigned char *const sdu_buffer_pP,
-  const pdcp_transmission_mode_t modeP,
-  const uint32_t *const sourceL2Id,
-  const uint32_t *const destinationL2Id
-)
+bool pdcp_data_req(protocol_ctxt_t  *ctxt_pP,
+                   const srb_flag_t     srb_flagP,
+                   const rb_id_t        rb_idP,
+                   const mui_t          muiP,
+                   const confirm_t      confirmP,
+                   const sdu_size_t     sdu_buffer_sizeP,
+                   unsigned char *const sdu_buffer_pP,
+                   const pdcp_transmission_mode_t modeP,
+                   const uint32_t *const sourceL2Id,
+                   const uint32_t *const destinationL2Id)
 //-----------------------------------------------------------------------------
 {
   pdcp_t            *pdcp_p          = NULL;
@@ -261,7 +259,7 @@ boolean_t pdcp_data_req(
   uint16_t           current_sn      = 0;
   mem_block_t       *pdcp_pdu_p      = NULL;
   rlc_op_status_t    rlc_status;
-  boolean_t          ret             = TRUE;
+  bool               ret             = true;
   hash_key_t         key             = HASHTABLE_NOT_A_KEY_VALUE;
   hashtable_rc_t     h_rc;
   uint8_t            rb_offset= (srb_flagP == 0) ? DTCH -1 : 0;
@@ -277,7 +275,7 @@ boolean_t pdcp_data_req(
 
   if (sdu_buffer_sizeP == 0) {
     LOG_W(PDCP, "Handed SDU is of size 0! Ignoring...\n");
-    return FALSE;
+    return false;
   }
 
   /*
@@ -287,12 +285,12 @@ boolean_t pdcp_data_req(
               sdu_buffer_sizeP, MAX_IP_PACKET_SIZE);
 
   if (modeP == PDCP_TRANSMISSION_MODE_TRANSPARENT) {
-    AssertError (rb_idP < NB_RB_MBMS_MAX, return FALSE, "RB id is too high (%ld/%d) %u %u!\n", rb_idP, NB_RB_MBMS_MAX, ctxt_pP->module_id, ctxt_pP->rnti);
+    AssertError (rb_idP < NB_RB_MBMS_MAX, return false, "RB id is too high (%ld/%d) %u %u!\n", rb_idP, NB_RB_MBMS_MAX, ctxt_pP->module_id, ctxt_pP->rnti);
   } else {
     if (srb_flagP) {
-      AssertError (rb_idP < 3, return FALSE, "RB id is too high (%ld/%d) %u %u!\n", rb_idP, 3, ctxt_pP->module_id, ctxt_pP->rnti);
+      AssertError (rb_idP < 3, return false, "RB id is too high (%ld/%d) %u %u!\n", rb_idP, 3, ctxt_pP->module_id, ctxt_pP->rnti);
     } else {
-      AssertError (rb_idP < LTE_maxDRB, return FALSE, "RB id is too high (%ld/%d) %u %u!\n", rb_idP, LTE_maxDRB, ctxt_pP->module_id, ctxt_pP->rnti);
+      AssertError (rb_idP < LTE_maxDRB, return false, "RB id is too high (%ld/%d) %u %u!\n", rb_idP, LTE_maxDRB, ctxt_pP->module_id, ctxt_pP->rnti);
     }
   }
 
@@ -304,7 +302,7 @@ boolean_t pdcp_data_req(
       LOG_W(PDCP, PROTOCOL_CTXT_FMT" Instance is not configured for rb_id %ld Ignoring SDU...\n",
             PROTOCOL_CTXT_ARGS(ctxt_pP),
             rb_idP);
-      return FALSE;
+      return false;
     }
   }
 
@@ -371,7 +369,7 @@ boolean_t pdcp_data_req(
         memset(&pdu_header.mac_i[0],0,PDCP_CONTROL_PLANE_DATA_PDU_MAC_I_SIZE);
         memset(&pdcp_pdu_p->data[sdu_buffer_sizeP + pdcp_header_len],0,PDCP_CONTROL_PLANE_DATA_PDU_MAC_I_SIZE);
 
-        if (pdcp_serialize_control_plane_data_pdu_with_SRB_sn_buffer((unsigned char *)pdcp_pdu_p->data, &pdu_header) == FALSE) {
+        if (pdcp_serialize_control_plane_data_pdu_with_SRB_sn_buffer((unsigned char *)pdcp_pdu_p->data, &pdu_header) == false) {
           LOG_E(PDCP, PROTOCOL_PDCP_CTXT_FMT" Cannot fill PDU buffer with relevant header fields!\n",
                 PROTOCOL_PDCP_CTXT_ARGS(ctxt_pP,pdcp_p));
 
@@ -382,7 +380,7 @@ boolean_t pdcp_data_req(
           }
 
           VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_DATA_REQ,VCD_FUNCTION_OUT);
-          return FALSE;
+          return false;
         }
       } else {
         pdcp_user_plane_data_pdu_header_with_long_sn pdu_header;
@@ -390,7 +388,7 @@ boolean_t pdcp_data_req(
         pdu_header.sn = pdcp_get_next_tx_seq_number(pdcp_p);
         current_sn = pdu_header.sn ;
 
-        if (pdcp_serialize_user_plane_data_pdu_with_long_sn_buffer((unsigned char *)pdcp_pdu_p->data, &pdu_header) == FALSE) {
+        if (pdcp_serialize_user_plane_data_pdu_with_long_sn_buffer((unsigned char *)pdcp_pdu_p->data, &pdu_header) == false) {
           LOG_E(PDCP, PROTOCOL_PDCP_CTXT_FMT" Cannot fill PDU buffer with relevant header fields!\n",
                 PROTOCOL_PDCP_CTXT_ARGS(ctxt_pP,pdcp_p));
 
@@ -401,7 +399,7 @@ boolean_t pdcp_data_req(
           }
 
           VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_DATA_REQ,VCD_FUNCTION_OUT);
-          return FALSE;
+          return false;
         }
       }
 
@@ -422,7 +420,7 @@ boolean_t pdcp_data_req(
         }
 
         VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_DATA_REQ,VCD_FUNCTION_OUT);
-        return FALSE;
+        return false;
       }
 
       LOG_D(PDCP, "Sequence number %d is assigned to current PDU\n", current_sn);
@@ -481,7 +479,7 @@ boolean_t pdcp_data_req(
             ctxt_pP->module_id,
             rb_idP);
       VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_DATA_REQ,VCD_FUNCTION_OUT);
-      return FALSE;
+      return false;
     }
 
     /*
@@ -497,16 +495,16 @@ boolean_t pdcp_data_req(
 
       if (ctxt_pP->enb_flag == ENB_FLAG_YES && NODE_IS_DU(RC.rrc[ctxt_pP->module_id]->node_type)) {
         LOG_E(PDCP, "Can't be DU, bad node type %d \n", RC.rrc[ctxt_pP->module_id]->node_type);
-        ret=FALSE;
+        ret = false;
       } else {
         rlc_status = pdcp_params.send_rlc_data_req_func(ctxt_pP, srb_flagP, MBMS_FLAG_NO, rb_idP, muiP,
                      confirmP, pdcp_pdu_size, pdcp_pdu_p,sourceL2Id,
                      destinationL2Id);
-	ret=FALSE;
+        ret = false;
         switch (rlc_status) {
           case RLC_OP_STATUS_OK:
             LOG_D(PDCP, "Data sending request over RLC succeeded!\n");
-            ret=TRUE;
+            ret=true;
             break;
 
           case RLC_OP_STATUS_BAD_PARAMETER:
@@ -544,7 +542,7 @@ boolean_t pdcp_data_req(
         itti_send_msg_to_task (TASK_CU_F1, ctxt_pP->module_id, message_p);
         //CU_send_DL_RRC_MESSAGE_TRANSFER(ctxt_pP->module_id, message_p);
         LOG_I(PDCP, "Send F1AP_DL_RRC_MESSAGE with ITTI\n");
-        ret=TRUE;
+        ret=true;
       } else {
         rlc_status = rlc_data_req(ctxt_pP
                                   , srb_flagP
@@ -561,27 +559,27 @@ boolean_t pdcp_data_req(
         switch (rlc_status) {
           case RLC_OP_STATUS_OK:
             LOG_D(PDCP, "Data sending request over RLC succeeded!\n");
-            ret=TRUE;
+            ret=true;
             break;
 
           case RLC_OP_STATUS_BAD_PARAMETER:
             LOG_W(PDCP, "Data sending request over RLC failed with 'Bad Parameter' reason!\n");
-            ret= FALSE;
+            ret= false;
             break;
 
           case RLC_OP_STATUS_INTERNAL_ERROR:
             LOG_W(PDCP, "Data sending request over RLC failed with 'Internal Error' reason!\n");
-            ret= FALSE;
+            ret= false;
             break;
 
           case RLC_OP_STATUS_OUT_OF_RESSOURCES:
             LOG_W(PDCP, "Data sending request over RLC failed with 'Out of Resources' reason!\n");
-            ret= FALSE;
+            ret= false;
             break;
 
           default:
             LOG_W(PDCP, "RLC returned an unknown status code after PDCP placed the order to send some data (Status Code:%d)\n", rlc_status);
-            ret= FALSE;
+            ret= false;
             break;
         } // switch case
       }
@@ -596,7 +594,7 @@ boolean_t pdcp_data_req(
 
   /*
    * Control arrives here only if rlc_data_req() returns RLC_OP_STATUS_OK
-   * so we return TRUE afterwards
+   * so we return true afterwards
    */
 
   for (pdcp_uid=0; pdcp_uid< MAX_MOBILES_PER_ENB; pdcp_uid++) {
@@ -619,7 +617,7 @@ boolean_t pdcp_data_req(
 
 
 //-----------------------------------------------------------------------------
-boolean_t
+bool
 pdcp_data_ind(
   const protocol_ctxt_t *const ctxt_pP,
   const srb_flag_t   srb_flagP,
@@ -638,7 +636,7 @@ pdcp_data_ind(
   pdcp_sn_t    sequence_number = 0;
   volatile sdu_size_t   payload_offset  = 0;
   rb_id_t      rb_id            = rb_idP;
-  boolean_t    packet_forwarded = FALSE;
+  bool         packet_forwarded = false;
   hash_key_t      key             = HASHTABLE_NOT_A_KEY_VALUE;
   hashtable_rc_t  h_rc;
   uint8_t      rb_offset= (srb_flagP == 0) ? DTCH -1 :0;
@@ -654,7 +652,7 @@ pdcp_data_ind(
               "[MSG] PDCP UL %s PDU on rb_id %ld\n", (srb_flagP)? "CONTROL" : "DATA", rb_idP);
 
   if (MBMS_flagP) {
-    AssertError (rb_idP < NB_RB_MBMS_MAX, return FALSE,
+    AssertError (rb_idP < NB_RB_MBMS_MAX, return false,
                  "RB id is too high (%ld/%d) %u rnti %x!\n",
                  rb_idP,
                  NB_RB_MBMS_MAX,
@@ -680,12 +678,12 @@ pdcp_data_ind(
     }
   } else {
     rb_id = rb_idP % LTE_maxDRB;
-    AssertError (rb_id < LTE_maxDRB, return FALSE, "RB id is too high (%ld/%d) %u UE %x!\n",
+    AssertError (rb_id < LTE_maxDRB, return false, "RB id is too high (%ld/%d) %u UE %x!\n",
                  rb_id,
                  LTE_maxDRB,
                  ctxt_pP->module_id,
                  ctxt_pP->rnti);
-    AssertError (rb_id > 0, return FALSE, "RB id is too low (%ld/%d) %u UE %x!\n",
+    AssertError (rb_id > 0, return false, "RB id is too low (%ld/%d) %u UE %x!\n",
                  rb_id,
                  LTE_maxDRB,
                  ctxt_pP->module_id,
@@ -700,14 +698,14 @@ pdcp_data_ind(
             key);
       free_mem_block(sdu_buffer_pP, __func__);
       VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_DATA_IND,VCD_FUNCTION_OUT);
-      return FALSE;
+      return false;
     }
   }
 
 
   if (sdu_buffer_sizeP == 0) {
     LOG_W(PDCP, "SDU buffer size is zero! Ignoring this chunk!\n");
-    return FALSE;
+    return false;
   }
 
   if (ctxt_pP->enb_flag) {
@@ -764,13 +762,13 @@ pdcp_data_ind(
       }
 
       VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_DATA_IND,VCD_FUNCTION_OUT);
-      return FALSE;
+      return false;
     }
 
 #if 0
 
     /* Removed by Cedric */
-    if (pdcp_is_rx_seq_number_valid(sequence_number, pdcp_p, srb_flagP) == TRUE) {
+    if (pdcp_is_rx_seq_number_valid(sequence_number, pdcp_p, srb_flagP) == true) {
       LOG_T(PDCP, "Incoming PDU has a sequence number (%d) in accordance with RX window\n", sequence_number);
       /* if (dc == PDCP_DATA_PDU )
       LOG_D(PDCP, "Passing piggybacked SDU to NAS driver...\n");
@@ -788,7 +786,7 @@ pdcp_data_ind(
        */
       LOG_W(PDCP, "Ignoring PDU...\n");
       free_mem_block(sdu_buffer_pP, __func__);
-      return FALSE;
+      return false;
     }
 
 #endif
@@ -837,7 +835,7 @@ pdcp_data_ind(
         LOG_W(PDCP, "Ignoring PDU...\n");
         free_mem_block(sdu_buffer_pP, __func__);
         /* TODO: indicate integrity verification failure to upper layer */
-        return FALSE;
+        return false;
       }
 
       if (sequence_number < pdcp_p->next_pdcp_rx_sn)
@@ -864,7 +862,7 @@ pdcp_data_ind(
       }
 
       VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_DATA_IND,VCD_FUNCTION_OUT);
-      return TRUE;
+      return true;
     } /* if (srb_flagP) */
 
     /*
@@ -892,7 +890,7 @@ pdcp_data_ind(
           LOG_W(PDCP, "Ignoring PDU...\n");
           free_mem_block(sdu_buffer_pP, __func__);
           /* TODO: indicate integrity verification failure to upper layer */
-          return FALSE;
+          return false;
         } else if (pdcp_p->next_pdcp_rx_sn - sequence_number > reordering_window) {
           pdcp_p->rx_hfn++;
           rx_hfn_for_count  = pdcp_p->rx_hfn;
@@ -948,7 +946,7 @@ pdcp_data_ind(
           LOG_W(PDCP, "Ignoring PDU...\n");
           free_mem_block(sdu_buffer_pP, __func__);
           /* TODO: indicate integrity verification failure to upper layer */
-          return FALSE;
+          return false;
         }
 
         /* TODO: specs say we have to store this PDU in a list and then deliver
@@ -1015,7 +1013,7 @@ pdcp_data_ind(
           LOG_W(PDCP, "Ignoring PDU...\n");
           free_mem_block(sdu_buffer_pP, __func__);
           /* TODO: indicate integrity verification failure to upper layer */
-          return FALSE;
+          return false;
         }
 
         break;
@@ -1039,7 +1037,7 @@ pdcp_data_ind(
     }
 
     VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_DATA_IND,VCD_FUNCTION_OUT);
-    return TRUE;
+    return true;
   }
 
   // XXX Decompression would be done at this point
@@ -1051,7 +1049,7 @@ pdcp_data_ind(
    */
 
   if (LINK_ENB_PDCP_TO_GTPV1U) {
-    if ((TRUE == ctxt_pP->enb_flag) && (FALSE == srb_flagP)) {
+    if ((true == ctxt_pP->enb_flag) && (false == srb_flagP)) {
       LOG_D(PDCP, "Sending packet to GTP, Calling GTPV1U_ENB_TUNNEL_DATA_REQ  ue %x rab %ld len %u\n",
             ctxt_pP->rnti,
             rb_id + 4,
@@ -1069,10 +1067,10 @@ pdcp_data_ind(
       GTPV1U_ENB_TUNNEL_DATA_REQ(message_p).rnti         = ctxt_pP->rnti;
       GTPV1U_ENB_TUNNEL_DATA_REQ(message_p).rab_id       = rb_id + 4;
       itti_send_msg_to_task(TASK_GTPV1_U, INSTANCE_DEFAULT, message_p);
-      packet_forwarded = TRUE;
+      packet_forwarded = true;
     }
   } else {
-    packet_forwarded = FALSE;
+    packet_forwarded = false;
   }
 
 #ifdef MBMS_MULTICAST_OUT
@@ -1086,13 +1084,13 @@ pdcp_data_ind(
    // dest_addr.sin_addr.s_addr = ip_header->daddr;
 
    // sendto(mbms_socket, &sdu_buffer_pP->data[payload_offset], sdu_buffer_sizeP - payload_offset, MSG_DONTWAIT, (struct sockaddr*)&dest_addr, sizeof(dest_addr));
-   // //packet_forwarded = TRUE;
+   // //packet_forwarded = true;
 
   }
 
 #endif
 
-  if (FALSE == packet_forwarded) {
+  if (false == packet_forwarded) {
     notifiedFIFO_elt_t * new_sdu_p = newNotifiedFIFO_elt(sdu_buffer_sizeP - payload_offset + sizeof (pdcp_data_ind_header_t), 0, NULL, NULL);
 
       if ((MBMS_flagP == 0) && (pdcp_p->rlc_mode == RLC_MODE_AM)) {
@@ -1185,7 +1183,7 @@ pdcp_data_ind(
   }
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_DATA_IND,VCD_FUNCTION_OUT);
-  return TRUE;
+  return true;
 }
 
 void pdcp_update_stats(const protocol_ctxt_t *const  ctxt_pP) {
@@ -1297,7 +1295,7 @@ pdcp_run (
                                   NULL, NULL
                                  );
 
-          if (result != TRUE)
+          if (result != true)
             LOG_E(PDCP, "PDCP data request failed!\n");
 
           // Message buffer has been processed, free it now.
@@ -1420,7 +1418,7 @@ pdcp_mbms_run (
 //                                  NULL, NULL
 //                                 );
 //
-//          if (result != TRUE)
+//          if (result != true)
 //            LOG_E(PDCP, "PDCP data request failed!\n");
 //
 //          // Message buffer has been processed, free it now.
@@ -1549,10 +1547,7 @@ void pdcp_add_UE(const protocol_ctxt_t *const  ctxt_pP) {
 }
 
 //-----------------------------------------------------------------------------
-boolean_t
-pdcp_remove_UE(
-  const protocol_ctxt_t *const  ctxt_pP
-)
+bool pdcp_remove_UE(const protocol_ctxt_t *const  ctxt_pP)
 //-----------------------------------------------------------------------------
 {
   LTE_DRB_Identity_t  srb_id         = 0;
@@ -1599,19 +1594,17 @@ pdcp_remove_UE(
 
 
 //-----------------------------------------------------------------------------
-boolean_t
-rrc_pdcp_config_asn1_req (
-  const protocol_ctxt_t *const  ctxt_pP,
-  LTE_SRB_ToAddModList_t  *const srb2add_list_pP,
-  LTE_DRB_ToAddModList_t  *const drb2add_list_pP,
-  LTE_DRB_ToReleaseList_t *const drb2release_list_pP,
-  const uint8_t                   security_modeP,
-  uint8_t                  *const kRRCenc_pP,
-  uint8_t                  *const kRRCint_pP,
-  uint8_t                  *const kUPenc_pP,
-  LTE_PMCH_InfoList_r9_t  *const pmch_InfoList_r9_pP,
-  rb_id_t                 *const defaultDRB
-)
+bool
+rrc_pdcp_config_asn1_req(const protocol_ctxt_t *const  ctxt_pP,
+                         LTE_SRB_ToAddModList_t  *const srb2add_list_pP,
+                         LTE_DRB_ToAddModList_t  *const drb2add_list_pP,
+                         LTE_DRB_ToReleaseList_t *const drb2release_list_pP,
+                         const uint8_t                   security_modeP,
+                         uint8_t                  *const kRRCenc_pP,
+                         uint8_t                  *const kRRCint_pP,
+                         uint8_t                  *const kUPenc_pP,
+                         LTE_PMCH_InfoList_r9_t  *const pmch_InfoList_r9_pP,
+                         rb_id_t                 *const defaultDRB)
 //-----------------------------------------------------------------------------
 {
   long int        lc_id          = 0;
@@ -1669,7 +1662,7 @@ rrc_pdcp_config_asn1_req (
                 PROTOCOL_PDCP_CTXT_ARGS(ctxt_pP, pdcp_p),
                 key);
           free(pdcp_p);
-          return TRUE;
+          return true;
         } else {
           LOG_D(PDCP, PROTOCOL_PDCP_CTXT_FMT" CONFIG_ACTION_ADD key 0x%"PRIx64"\n",
                 PROTOCOL_PDCP_CTXT_ARGS(ctxt_pP, pdcp_p),
@@ -1784,13 +1777,13 @@ rrc_pdcp_config_asn1_req (
                 PROTOCOL_PDCP_CTXT_ARGS(ctxt_pP, pdcp_p),
                 key_defaultDRB);
           free(pdcp_p);
-          return TRUE;
+          return true;
         } else if (h_rc != HASH_TABLE_OK) {
           LOG_E(PDCP, PROTOCOL_PDCP_CTXT_FMT" CONFIG_ACTION_ADD ADD key 0x%"PRIx64" FAILED\n",
                 PROTOCOL_PDCP_CTXT_ARGS(ctxt_pP, pdcp_p),
                 key);
           free(pdcp_p);
-          return TRUE;
+          return true;
         } else {
           LOG_D(PDCP, PROTOCOL_PDCP_CTXT_FMT" CONFIG_ACTION_ADD ADD key 0x%"PRIx64"\n",
                 PROTOCOL_PDCP_CTXT_ARGS(ctxt_pP, pdcp_p),
@@ -1944,7 +1937,7 @@ rrc_pdcp_config_asn1_req (
         if (ctxt_pP->enb_flag) {
           drb_id =  (mch_id * LTE_maxSessionPerPMCH ) + lc_id ;//+ (LTE_maxDRB + 3)*MAX_MOBILES_PER_ENB; // 1
 
-          if (pdcp_mbms_array_eNB[ctxt_pP->module_id][mch_id][lc_id].instanciated_instance == TRUE) {
+          if (pdcp_mbms_array_eNB[ctxt_pP->module_id][mch_id][lc_id].instanciated_instance == true) {
             action = CONFIG_ACTION_MBMS_MODIFY;
           } else {
             action = CONFIG_ACTION_MBMS_ADD;
@@ -1952,7 +1945,7 @@ rrc_pdcp_config_asn1_req (
         } else {
           drb_id =  (mch_id * LTE_maxSessionPerPMCH ) + lc_id; // + (LTE_maxDRB + 3); // 15
 
-          if (pdcp_mbms_array_ue[ctxt_pP->module_id][mch_id][lc_id].instanciated_instance == TRUE) {
+          if (pdcp_mbms_array_ue[ctxt_pP->module_id][mch_id][lc_id].instanciated_instance == true) {
             action = CONFIG_ACTION_MBMS_MODIFY;
           } else {
             action = CONFIG_ACTION_MBMS_ADD;
@@ -1990,23 +1983,22 @@ rrc_pdcp_config_asn1_req (
 }
 
 //-----------------------------------------------------------------------------
-boolean_t
-pdcp_config_req_asn1 (
-  const protocol_ctxt_t *const  ctxt_pP,
-  pdcp_t          *const        pdcp_pP,
-  const srb_flag_t              srb_flagP,
-  const rlc_mode_t              rlc_modeP,
-  const config_action_t         actionP,
-  const uint16_t                lc_idP,
-  const uint16_t                mch_idP,
-  const rb_id_t                 rb_idP,
-  const uint8_t                 rb_snP,
-  const uint8_t                 rb_reportP,
-  const uint16_t                header_compression_profileP,
-  const uint8_t                 security_modeP,
-  uint8_t         *const        kRRCenc_pP,
-  uint8_t         *const        kRRCint_pP,
-  uint8_t         *const        kUPenc_pP)
+bool
+pdcp_config_req_asn1(const protocol_ctxt_t *const  ctxt_pP,
+                     pdcp_t          *const        pdcp_pP,
+                     const srb_flag_t              srb_flagP,
+                     const rlc_mode_t              rlc_modeP,
+                     const config_action_t         actionP,
+                     const uint16_t                lc_idP,
+                     const uint16_t                mch_idP,
+                     const rb_id_t                 rb_idP,
+                     const uint8_t                 rb_snP,
+                     const uint8_t                 rb_reportP,
+                     const uint16_t                header_compression_profileP,
+                     const uint8_t                 security_modeP,
+                     uint8_t         *const        kRRCenc_pP,
+                     uint8_t         *const        kRRCint_pP,
+                     uint8_t         *const        kUPenc_pP)
 //-----------------------------------------------------------------------------
 {
 
@@ -2015,7 +2007,7 @@ pdcp_config_req_asn1 (
       DevAssert(pdcp_pP != NULL);
 
       if (ctxt_pP->enb_flag == ENB_FLAG_YES) {
-        pdcp_pP->is_ue = FALSE;
+        pdcp_pP->is_ue = false;
         pdcp_add_UE(ctxt_pP);
 
         //pdcp_eNB_UE_instance_to_rnti[ctxtP->module_id] = ctxt_pP->rnti;
@@ -2035,11 +2027,11 @@ pdcp_config_req_asn1 (
 
         //pdcp_eNB_UE_instance_to_rnti_index = (pdcp_eNB_UE_instance_to_rnti_index + 1) % MAX_MOBILES_PER_ENB;
       } else {
-        pdcp_pP->is_ue = TRUE;
+        pdcp_pP->is_ue = true;
         pdcp_UE_UE_module_id_to_rnti[ctxt_pP->module_id] = ctxt_pP->rnti;
       }
 
-      pdcp_pP->is_srb                     = (srb_flagP == SRB_FLAG_YES) ? TRUE : FALSE;
+      pdcp_pP->is_srb                     = srb_flagP == SRB_FLAG_YES;
       pdcp_pP->lcid                       = lc_idP;
       pdcp_pP->rb_id                      = rb_idP;
       pdcp_pP->header_compression_profile = header_compression_profileP;
@@ -2162,10 +2154,10 @@ pdcp_config_req_asn1 (
             rb_idP);
 
       if (ctxt_pP->enb_flag == ENB_FLAG_YES) {
-        pdcp_mbms_array_eNB[ctxt_pP->module_id][mch_idP][lc_idP].instanciated_instance = TRUE ;
+        pdcp_mbms_array_eNB[ctxt_pP->module_id][mch_idP][lc_idP].instanciated_instance = true ;
         pdcp_mbms_array_eNB[ctxt_pP->module_id][mch_idP][lc_idP].rb_id = rb_idP;
       } else {
-        pdcp_mbms_array_ue[ctxt_pP->module_id][mch_idP][lc_idP].instanciated_instance = TRUE ;
+        pdcp_mbms_array_ue[ctxt_pP->module_id][mch_idP][lc_idP].instanciated_instance = true ;
         pdcp_mbms_array_ue[ctxt_pP->module_id][mch_idP][lc_idP].rb_id = rb_idP;
       }
 
@@ -2245,10 +2237,10 @@ void rrc_pdcp_config_req (
         pdcp_p->rb_id  = rb_idP;
 
         if (ctxt_pP->enb_flag == ENB_FLAG_NO) {
-          pdcp_p->is_ue = TRUE;
+          pdcp_p->is_ue = true;
           pdcp_UE_UE_module_id_to_rnti[ctxt_pP->module_id] = ctxt_pP->rnti;
         } else {
-          pdcp_p->is_ue = FALSE;
+          pdcp_p->is_ue = false;
         }
 
         pdcp_p->next_pdcp_tx_sn = 0;
@@ -2321,10 +2313,10 @@ void rrc_pdcp_config_req (
           pdcp_p->rb_id  = rb_idP;
 
           if (ctxt_pP->enb_flag == ENB_FLAG_NO) {
-            pdcp_p->is_ue = TRUE;
+            pdcp_p->is_ue = true;
             pdcp_UE_UE_module_id_to_rnti[ctxt_pP->module_id] = ctxt_pP->rnti;
           } else {
-            pdcp_p->is_ue = FALSE;
+            pdcp_p->is_ue = false;
           }
 
           pdcp_p->next_pdcp_tx_sn = 0;
diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp.h b/openair2/LAYER2/PDCP_v10.1.0/pdcp.h
index 332ee382d71..8cbc49d7563 100644
--- a/openair2/LAYER2/PDCP_v10.1.0/pdcp.h
+++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp.h
@@ -51,7 +51,7 @@ typedef rlc_op_status_t  (*send_rlc_data_req_func_t)(const protocol_ctxt_t *cons
 						     const rb_id_t, const mui_t,
     confirm_t, sdu_size_t, mem_block_t *,const uint32_t *const, const uint32_t *const);
 
-typedef boolean_t (pdcp_data_ind_t)( const protocol_ctxt_t *, const srb_flag_t,
+typedef bool (pdcp_data_ind_t)( const protocol_ctxt_t *, const srb_flag_t,
 						 const MBMS_flag_t, const rb_id_t, const sdu_size_t,
 						 mem_block_t *,const uint32_t *const, const uint32_t *const);
 typedef pdcp_data_ind_t* pdcp_data_ind_func_t;
@@ -153,14 +153,13 @@ typedef struct pdcp_stats_s {
 
 
 typedef struct pdcp_s {
-  //boolean_t     instanciated_instance;
   uint16_t       header_compression_profile;
 
   /* SR: added this flag to distinguish UE/eNB instance as pdcp_run for virtual
    * mode can receive data on NETLINK for eNB while eNB_flag = 0 and for UE when eNB_flag = 1
    */
-  boolean_t is_ue;
-  boolean_t is_srb;
+  bool is_ue;
+  bool is_srb;
 
   /* Configured security algorithms */
   uint8_t cipheringAlgorithm;
@@ -217,7 +216,7 @@ typedef struct pdcp_s {
 } pdcp_t;
 
 typedef struct pdcp_mbms_s {
-  boolean_t instanciated_instance;
+  bool instanciated_instance;
   rb_id_t   rb_id;
 } pdcp_mbms_t;
 
@@ -230,7 +229,7 @@ typedef struct pdcp_mbms_s {
  * under targets/TEST/PDCP/
  */
 
-/*! \fn boolean_t pdcp_data_req(const protocol_ctxt_t* const  , srb_flag_t , rb_id_t , mui_t , confirm_t ,sdu_size_t , unsigned char* , pdcp_transmission_mode_t )
+/*! \fn bool pdcp_data_req(const protocol_ctxt_t* const  , srb_flag_t , rb_id_t , mui_t , confirm_t ,sdu_size_t , unsigned char* , pdcp_transmission_mode_t )
 * \brief This functions handles data transfer requests coming either from RRC or from IP
 * \param[in] ctxt_pP        Running context.
 * \param[in] rab_id         Radio Bearer ID
@@ -239,38 +238,34 @@ typedef struct pdcp_mbms_s {
 * \param[in] sdu_buffer_size Size of incoming SDU in bytes
 * \param[in] sdu_buffer      Buffer carrying SDU
 * \param[in] mode            flag to indicate whether the userplane data belong to the control plane or data plane or transparent
-* \return TRUE on success, FALSE otherwise
+* \return true on success, false otherwise
 * \note None
 * @ingroup _pdcp
 */
 
-boolean_t pdcp_data_req(
-  protocol_ctxt_t  *ctxt_pP,
-  const srb_flag_t srb_flagP,
-  const rb_id_t rb_id,
-  const mui_t muiP,
-  const confirm_t confirmP,
-  const sdu_size_t sdu_buffer_size,
-  unsigned char *const sdu_buffer,
-  const pdcp_transmission_mode_t mode,
-  const uint32_t * sourceL2Id,
-  const uint32_t * destinationL2Id
-);
-
-boolean_t cu_f1u_data_req(
-  protocol_ctxt_t  *ctxt_pP,
-  const srb_flag_t srb_flagP,
-  const rb_id_t rb_id,
-  const mui_t muiP,
-  const confirm_t confirmP,
-  const sdu_size_t sdu_buffer_size,
-  unsigned char *const sdu_buffer,
-  const pdcp_transmission_mode_t mode,
-  const uint32_t *const sourceL2Id,
-  const uint32_t *const destinationL2Id
-  );
-
-/*! \fn boolean_t pdcp_data_ind(const protocol_ctxt_t* const, srb_flag_t, MBMS_flag_t, rb_id_t, sdu_size_t, mem_block_t*, boolean_t)
+bool pdcp_data_req(protocol_ctxt_t  *ctxt_pP,
+                   const srb_flag_t srb_flagP,
+                   const rb_id_t rb_id,
+                   const mui_t muiP,
+                   const confirm_t confirmP,
+                   const sdu_size_t sdu_buffer_size,
+                   unsigned char *const sdu_buffer,
+                   const pdcp_transmission_mode_t mode,
+                   const uint32_t * sourceL2Id,
+                   const uint32_t * destinationL2Id);
+
+bool cu_f1u_data_req(protocol_ctxt_t  *ctxt_pP,
+                     const srb_flag_t srb_flagP,
+                     const rb_id_t rb_id,
+                     const mui_t muiP,
+                     const confirm_t confirmP,
+                     const sdu_size_t sdu_buffer_size,
+                     unsigned char *const sdu_buffer,
+                     const pdcp_transmission_mode_t mode,
+                     const uint32_t *const sourceL2Id,
+                     const uint32_t *const destinationL2Id);
+
+/*! \fn bool pdcp_data_ind(const protocol_ctxt_t* const, srb_flag_t, MBMS_flag_t, rb_id_t, sdu_size_t, mem_block_t*, bool)
 * \brief This functions handles data transfer indications coming from RLC
 * \param[in] ctxt_pP        Running context.
 * \param[in] Shows if rb is SRB
@@ -279,7 +274,7 @@ boolean_t cu_f1u_data_req(
 * \param[in] sdu_buffer_size Size of incoming SDU in bytes
 * \param[in] sdu_buffer Buffer carrying SDU
 * \param[in] is_data_plane flag to indicate whether the userplane data belong to the control plane or data plane
-* \return TRUE on success, FALSE otherwise
+* \return TRUE on success, false otherwise
 * \note None
 * @ingroup _pdcp
 */
@@ -316,20 +311,18 @@ void rrc_pdcp_config_req (
 * \param[in]  defaultDRB        Default DRB ID
 * \return     A status about the processing, OK or error code.
 */
-boolean_t rrc_pdcp_config_asn1_req (
-  const protocol_ctxt_t *const  ctxt_pP,
-  LTE_SRB_ToAddModList_t  *const srb2add_list,
-  LTE_DRB_ToAddModList_t  *const drb2add_list,
-  LTE_DRB_ToReleaseList_t *const drb2release_list,
-  const uint8_t                   security_modeP,
-  uint8_t                  *const kRRCenc,
-  uint8_t                  *const kRRCint,
-  uint8_t                  *const kUPenc,
-  LTE_PMCH_InfoList_r9_t  *pmch_InfoList_r9,
-  rb_id_t                 *const defaultDRB
-);
-
-/*! \fn boolean_t pdcp_config_req_asn1 (const protocol_ctxt_t* const ctxt_pP, srb_flag_t srb_flagP, uint32_t  action, rb_id_t rb_id, uint8_t rb_sn, uint8_t rb_report, uint16_t header_compression_profile, uint8_t security_mode)
+bool rrc_pdcp_config_asn1_req(const protocol_ctxt_t *const  ctxt_pP,
+                              LTE_SRB_ToAddModList_t  *const srb2add_list,
+                              LTE_DRB_ToAddModList_t  *const drb2add_list,
+                              LTE_DRB_ToReleaseList_t *const drb2release_list,
+                              const uint8_t                   security_modeP,
+                              uint8_t                  *const kRRCenc,
+                              uint8_t                  *const kRRCint,
+                              uint8_t                  *const kUPenc,
+                              LTE_PMCH_InfoList_r9_t  *pmch_InfoList_r9,
+                              rb_id_t                 *const defaultDRB);
+
+/*! \fn bool pdcp_config_req_asn1 (const protocol_ctxt_t* const ctxt_pP, srb_flag_t srb_flagP, uint32_t  action, rb_id_t rb_id, uint8_t rb_sn, uint8_t rb_report, uint16_t header_compression_profile, uint8_t security_mode)
 * \brief  Function for RRC to configure a Radio Bearer.
 * \param[in]  ctxt_pP           Running context.
 * \param[in]  pdcp_pP            Pointer on PDCP structure.
@@ -349,22 +342,21 @@ boolean_t rrc_pdcp_config_asn1_req (
 * \param[in]  kUPenc             User-Plane encryption key
 * \return     A status about the processing, OK or error code.
 */
-boolean_t pdcp_config_req_asn1 (
-  const protocol_ctxt_t *const  ctxt_pP,
-  pdcp_t         *const pdcp_pP,
-  const srb_flag_t       srb_flagP,
-  const rlc_mode_t       rlc_mode,
-  const uint32_t         action,
-  const uint16_t         lc_id,
-  const uint16_t         mch_id,
-  const rb_id_t          rb_id,
-  const uint8_t          rb_sn,
-  const uint8_t          rb_report,
-  const uint16_t         header_compression_profile,
-  const uint8_t          security_mode,
-  uint8_t         *const kRRCenc,
-  uint8_t         *const kRRCint,
-  uint8_t         *const kUPenc);
+bool pdcp_config_req_asn1(const protocol_ctxt_t *const  ctxt_pP,
+                          pdcp_t         *const pdcp_pP,
+                          const srb_flag_t       srb_flagP,
+                          const rlc_mode_t       rlc_mode,
+                          const uint32_t         action,
+                          const uint16_t         lc_id,
+                          const uint16_t         mch_id,
+                          const rb_id_t          rb_id,
+                          const uint8_t          rb_sn,
+                          const uint8_t          rb_report,
+                          const uint16_t         header_compression_profile,
+                          const uint8_t          security_mode,
+                          uint8_t         *const kRRCenc,
+                          uint8_t         *const kRRCint,
+                          uint8_t         *const kUPenc);
 
 /*! \fn void pdcp_add_UE(const protocol_ctxt_t* const  ctxt_pP)
 * \brief  Function (for RRC) to add a new UE in PDCP module
@@ -373,13 +365,12 @@ boolean_t pdcp_config_req_asn1 (
 */
 void pdcp_add_UE(const protocol_ctxt_t *const  ctxt_pP);
 
-/*! \fn boolean_t pdcp_remove_UE(const protocol_ctxt_t* const  ctxt_pP)
+/*! \fn bool pdcp_remove_UE(const protocol_ctxt_t* const  ctxt_pP)
 * \brief  Function for RRC to remove UE from PDCP module hashtable
 * \param[in]  ctxt_pP           Running context.
 * \return     A status about the processing, OK or error code.
 */
-boolean_t pdcp_remove_UE(
-  const protocol_ctxt_t *const  ctxt_pP);
+bool pdcp_remove_UE(const protocol_ctxt_t *const  ctxt_pP);
 
 /*! \fn void rrc_pdcp_config_release( const protocol_ctxt_t* const, rb_id_t)
 * \brief This functions is unused
diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c
index ef674132c45..77d3cf3857a 100644
--- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c
+++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c
@@ -32,7 +32,7 @@
 #include "pdcp.h"
 #include "pdcp_primitives.h"
 
-extern boolean_t util_mark_nth_bit_of_octet(uint8_t* octet, uint8_t index);
+extern bool util_mark_nth_bit_of_octet(uint8_t* octet, uint8_t index);
 
 /*
  * Parses data/control field out of buffer of User Plane PDCP Data PDU with
@@ -123,13 +123,13 @@ uint8_t pdcp_get_sequence_number_of_pdu_with_SRB_sn(unsigned char* pdu_buffer)
  * Fills the incoming buffer with the fields of the header for srb sn
  *
  * @param pdu_buffer PDCP PDU buffer
- * @return TRUE on success, FALSE otherwise
+ * @return true on success, false otherwise
  */
-boolean_t pdcp_serialize_control_plane_data_pdu_with_SRB_sn_buffer(unsigned char* pdu_buffer, \
-    pdcp_control_plane_data_pdu_header* pdu)
+bool pdcp_serialize_control_plane_data_pdu_with_SRB_sn_buffer(unsigned char* pdu_buffer,
+                                                              pdcp_control_plane_data_pdu_header* pdu)
 {
   if (pdu_buffer == NULL || pdu == NULL) {
-    return FALSE;
+    return false;
   }
 
   /*
@@ -138,20 +138,20 @@ boolean_t pdcp_serialize_control_plane_data_pdu_with_SRB_sn_buffer(unsigned char
   uint8_t sequence_number = pdu->sn;
   pdu_buffer[0] = sequence_number & 0x1F; // 5bit sn
 
-  return TRUE;
+  return true;
 }
 
 /*
  * Fills the incoming buffer with the fields of the header for long sn
  *
  * @param pdu_buffer PDCP PDU buffer
- * @return TRUE on success, FALSE otherwise
+ * @return true on success, false otherwise
  */
-boolean_t pdcp_serialize_user_plane_data_pdu_with_long_sn_buffer(unsigned char* pdu_buffer, \
-    pdcp_user_plane_data_pdu_header_with_long_sn* pdu)
+bool pdcp_serialize_user_plane_data_pdu_with_long_sn_buffer(unsigned char* pdu_buffer,
+                                                            pdcp_user_plane_data_pdu_header_with_long_sn* pdu)
 {
   if (pdu_buffer == NULL || pdu == NULL) {
-    return FALSE;
+    return false;
   }
 
   /*
@@ -170,7 +170,7 @@ boolean_t pdcp_serialize_user_plane_data_pdu_with_long_sn_buffer(unsigned char*
     pdu_buffer[0] |= 0x80; // set the first bit as 1
   }
 
-  return TRUE;
+  return true;
 }
 
 /*
@@ -178,13 +178,14 @@ boolean_t pdcp_serialize_user_plane_data_pdu_with_long_sn_buffer(unsigned char*
  *
  * @param pdu_buffer The buffer that PDU will be serialized into
  * @param pdu A status report header
- * @return TRUE on success, FALSE otherwise
+ * @return true on success, false otherwise
  */
-boolean_t pdcp_serialize_control_pdu_for_pdcp_status_report(unsigned char* pdu_buffer, \
-    uint8_t bitmap[512], pdcp_control_pdu_for_pdcp_status_report* pdu)
+bool pdcp_serialize_control_pdu_for_pdcp_status_report(unsigned char* pdu_buffer,
+                                                       uint8_t bitmap[512],
+                                                       pdcp_control_pdu_for_pdcp_status_report* pdu)
 {
   if (pdu_buffer == NULL || pdu == NULL) {
-    return FALSE;
+    return false;
   }
 
   /*
@@ -205,6 +206,6 @@ boolean_t pdcp_serialize_control_pdu_for_pdcp_status_report(unsigned char* pdu_b
    */
   memcpy(pdu_buffer + 2, bitmap, 512);
 
-  return TRUE;
+  return true;
 }
 
diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.h b/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.h
index 8b5ebe7287c..423f69afc9c 100644
--- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.h
+++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.h
@@ -142,18 +142,18 @@ uint8_t pdcp_get_sequence_number_of_pdu_with_SRB_sn(unsigned char* pdu_buffer);
  * Fills the incoming buffer with the fields of the header for SRB1
  *
  * @param pdu_buffer PDCP PDU buffer
- * @return TRUE on success, FALSE otherwise
+ * @return true on success, false otherwise
  */
-boolean_t pdcp_serialize_control_plane_data_pdu_with_SRB_sn_buffer(unsigned char* pdu_buffer, \
-    pdcp_control_plane_data_pdu_header* pdu);
+bool pdcp_serialize_control_plane_data_pdu_with_SRB_sn_buffer(unsigned char* pdu_buffer,
+                                                              pdcp_control_plane_data_pdu_header* pdu);
 /*
  * Fills the incoming buffer with the fields of the header for long SN (RLC UM and AM)
  *
  * @param pdu_buffer PDCP PDU buffer
- * @return TRUE on success, FALSE otherwise
+ * @return true on success, false otherwise
  */
-boolean_t pdcp_serialize_user_plane_data_pdu_with_long_sn_buffer(unsigned char* pdu_buffer, \
-    pdcp_user_plane_data_pdu_header_with_long_sn* pdu);
+bool pdcp_serialize_user_plane_data_pdu_with_long_sn_buffer(unsigned char* pdu_buffer,
+                                                            pdcp_user_plane_data_pdu_header_with_long_sn* pdu);
 
 /*
  * Fills the incoming status report header with given value of bitmap
@@ -162,10 +162,11 @@ boolean_t pdcp_serialize_user_plane_data_pdu_with_long_sn_buffer(unsigned char*
  * @param FMS First Missing PDCP SN
  * @param bitmap Received/Missing sequence number bitmap
  * @param pdu A status report header
- * @return TRUE on success, FALSE otherwise
+ * @return true on success, false otherwise
  */
-boolean_t pdcp_serialize_control_pdu_for_pdcp_status_report(unsigned char* pdu_buffer, \
-    uint8_t bitmap[512], pdcp_control_pdu_for_pdcp_status_report* pdu);
+bool pdcp_serialize_control_pdu_for_pdcp_status_report(unsigned char* pdu_buffer,
+                                                       uint8_t bitmap[512],
+                                                       pdcp_control_pdu_for_pdcp_status_report* pdu);
 
 int pdcp_netlink_dequeue_element(const protocol_ctxt_t* const  ctxt_pP,
                                  struct pdcp_netlink_element_s **data_ppP);
diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c
index cdc583ef217..31beb3a9e06 100644
--- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c
+++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c
@@ -33,12 +33,12 @@
 /*
  * Initializes sequence numbering state
  * @param pdcp_entity The PDCP entity to be initialized
- * @return boolean_t TRUE on success, FALSE otherwise
+ * @return bool true on success, false otherwise
  */
-boolean_t pdcp_init_seq_numbers(pdcp_t* pdcp_entity)
+bool pdcp_init_seq_numbers(pdcp_t* pdcp_entity)
 {
   if (pdcp_entity == NULL) {
-    return FALSE;
+    return false;
   }
 
   /* Sequence number state variables */
@@ -55,34 +55,34 @@ boolean_t pdcp_init_seq_numbers(pdcp_t* pdcp_entity)
   // Shall UE and eNB behave differently on initialization? (see 7.1.e)
   pdcp_entity->last_submitted_pdcp_rx_sn = 4095;
 
-  return TRUE;
+  return true;
 }
 
-boolean_t pdcp_is_seq_num_size_valid(pdcp_t* pdcp_entity)
+bool pdcp_is_seq_num_size_valid(pdcp_t* pdcp_entity)
 {
   if (pdcp_entity == NULL) {
-    return FALSE;
+    return false;
   }
 
   // Check if the size of SN is valid (see 3GPP TS 36.323 v10.1.0 item 6.3.2)
   if (pdcp_entity->seq_num_size != 5 && pdcp_entity->seq_num_size != 7 && pdcp_entity->seq_num_size != 12) {
     LOG_W(PDCP, "Incoming SN size is invalid! (Expected: {5 | 7 | 12}, Received: %d\n", pdcp_entity->seq_num_size);
-    return FALSE;
+    return false;
   }
 
-  return TRUE;
+  return true;
 }
 
 /**
  * Check if SN number is in the range according to SN size
  */
-boolean_t pdcp_is_seq_num_valid(uint16_t seq_num, uint8_t seq_num_size)
+bool pdcp_is_seq_num_valid(uint16_t seq_num, uint8_t seq_num_size)
 {
   if (seq_num >= 0 && seq_num <= pdcp_calculate_max_seq_num_for_given_size(seq_num_size)) {
-    return TRUE;
+    return true;
   }
 
-  return FALSE;
+  return false;
 }
 
 uint16_t pdcp_calculate_max_seq_num_for_given_size(uint8_t seq_num_size)
@@ -96,7 +96,7 @@ uint16_t pdcp_calculate_max_seq_num_for_given_size(uint8_t seq_num_size)
 
 uint16_t pdcp_get_next_tx_seq_number(pdcp_t* pdcp_entity)
 {
-  if (pdcp_is_seq_num_size_valid(pdcp_entity) == FALSE) {
+  if (pdcp_is_seq_num_size_valid(pdcp_entity) == false) {
     return -1;
   }
 
@@ -118,10 +118,10 @@ uint16_t pdcp_get_next_tx_seq_number(pdcp_t* pdcp_entity)
   return pdcp_seq_num;
 }
 
-boolean_t pdcp_advance_rx_window(pdcp_t* pdcp_entity)
+bool pdcp_advance_rx_window(pdcp_t* pdcp_entity)
 {
-  if (pdcp_is_seq_num_size_valid(pdcp_entity) == FALSE) {
-    return FALSE;
+  if (pdcp_is_seq_num_size_valid(pdcp_entity) == false) {
+    return false;
   }
 
   /*
@@ -137,10 +137,10 @@ boolean_t pdcp_advance_rx_window(pdcp_t* pdcp_entity)
     pdcp_entity->next_pdcp_rx_sn++;
   }
 
-  return TRUE;
+  return true;
 }
 
-boolean_t pdcp_mark_current_pdu_as_received(uint16_t seq_num, pdcp_t* pdcp_entity)
+bool pdcp_mark_current_pdu_as_received(uint16_t seq_num, pdcp_t* pdcp_entity)
 {
   /*
    * Incoming sequence number and PDCP entity were already
@@ -158,5 +158,5 @@ boolean_t pdcp_mark_current_pdu_as_received(uint16_t seq_num, pdcp_t* pdcp_entit
   LOG_D(PDCP, "Marking %d. bit of %d. octet of status bitmap\n", (seq_num % 8) + 1, octet_index);
   util_mark_nth_bit_of_octet(&pdcp_entity->missing_pdu_bitmap[octet_index], seq_num % 8);
   util_print_binary_representation((uint8_t*)"Current state of relevant octet: ", pdcp_entity->missing_pdu_bitmap[octet_index]);
-  return TRUE;
+  return true;
 }
diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.h b/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.h
index 172c9810e69..bff98d1b00e 100644
--- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.h
+++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.h
@@ -35,17 +35,17 @@
  * @param pdcp_entity The PDCP entity to be initialized
  * @return none
  */
-boolean_t pdcp_init_seq_numbers(pdcp_t* pdcp_entity);
+bool pdcp_init_seq_numbers(pdcp_t* pdcp_entity);
 /**
  * Checks if incoming PDCP entitiy pointer and relevant sequence number size is valid
- * @return TRUE (0x01) if it is valid, FALSE (0x00) otherwise
+ * @return true (0x01) if it is valid, false (0x00) otherwise
  */
-boolean_t pdcp_is_seq_num_size_valid(pdcp_t* pdcp_entity);
+bool pdcp_is_seq_num_size_valid(pdcp_t* pdcp_entity);
 /**
  * Check if SN number is in the range according to SN size
- * @return TRUE if it is valid, FALSE otherwise
+ * @return true if it is valid, false otherwise
  */
-boolean_t pdcp_is_seq_num_valid(uint16_t seq_num, uint8_t seq_num_size);
+bool pdcp_is_seq_num_valid(uint16_t seq_num, uint8_t seq_num_size);
 /**
  * Returns the maximum allowed sequence number value for given size of SN field
  * @return Max sequence number value
@@ -58,11 +58,11 @@ uint16_t pdcp_get_next_tx_seq_number(pdcp_t* pdcp_entity);
 /**
  * Advances the RX window state of given PDCP entity upon successfull receipt of a SDU
  */
-boolean_t pdcp_advance_rx_window(pdcp_t* pdcp_entity);
+bool pdcp_advance_rx_window(pdcp_t* pdcp_entity);
 /**
 * Updates missing PDU bitmap with incoming sequence number
-* @return TRUE if successful, FALSE otherwise
+* @return true if successful, false otherwise
 */
-boolean_t pdcp_mark_current_pdu_as_received(uint16_t seq_num, pdcp_t* pdcp_entity);
+bool pdcp_mark_current_pdu_as_received(uint16_t seq_num, pdcp_t* pdcp_entity);
 
 #endif
diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c
index cf8218829fe..79f6d688203 100644
--- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c
+++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c
@@ -130,9 +130,9 @@ void util_print_binary_representation(unsigned char* message, uint8_t octet)
  *
  * @param octet 8-bit data
  * @param index Index of bit to be set
- * @return TRUE on success, FALSE otherwise
+ * @return true on success, false otherwise
  */
-boolean_t util_mark_nth_bit_of_octet(uint8_t* octet, uint8_t index)
+bool util_mark_nth_bit_of_octet(uint8_t* octet, uint8_t index)
 {
   uint8_t mask = 0x80;
 
@@ -148,6 +148,6 @@ boolean_t util_mark_nth_bit_of_octet(uint8_t* octet, uint8_t index)
    */
   *octet |= mask;
 
-  return TRUE;
+  return true;
 }
 
diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h b/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h
index 49846c7a9fb..89b8ff672f7 100644
--- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h
+++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h
@@ -66,8 +66,8 @@ void util_print_binary_representation(unsigned char* message, uint8_t octet);
  *
  * @param octet Octet
  * @param index Index
- * @return TRUE on success, FALSE otherwise
+ * @return true on success, false otherwise
  */
-boolean_t util_mark_nth_bit_of_octet(uint8_t* octet, uint8_t index);
+bool util_mark_nth_bit_of_octet(uint8_t* octet, uint8_t index);
 
 #endif // PDCP_UTIL_H
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c
index 4eb0907046a..ddc7bf85e85 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c
@@ -52,7 +52,7 @@ rlc_am_get_status_pdu_buffer_occupancy(
   rlc_sn_t sn_cursor = rlc_pP->vr_r;
   rlc_sn_t sn_prev = rlc_pP->vr_r;
   rlc_sn_t sn_end = rlc_pP->vr_ms;
-  boolean_t segment_loop_end    = false;
+  bool segment_loop_end    = false;
 
   if (sn_prev != sn_end) {
     while ((RLC_AM_DIFF_SN(sn_prev,rlc_pP->vr_r) < RLC_AM_DIFF_SN(sn_end,rlc_pP->vr_r)) && (cursor_p != NULL)) {
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_entity.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_entity.h
index 1b6d8375655..95c47943a49 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_entity.h
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_entity.h
@@ -54,7 +54,7 @@ typedef struct rlc_am_entity_s {
 
   rb_id_t           rb_id;                              /*!< \brief Radio bearer identifier, for statistics and trace purpose. */
   logical_chan_id_t channel_id;                         /*!< \brief Transport channel identifier. */
-  boolean_t         is_data_plane;                      /*!< \brief To know if the RLC belongs to a data radio bearer or a signalling radio bearer, for statistics and trace purpose. */
+  bool              is_data_plane;                      /*!< \brief To know if the RLC belongs to a data radio bearer or a signalling radio bearer, for statistics and trace purpose. */
 
   rlc_buffer_occupancy_t sdu_buffer_occupancy;               /*!< \brief Number of bytes of unsegmented SDUs. */
   rlc_buffer_occupancy_t status_buffer_occupancy;            /*!< \brief Number of bytes of control PDUs waiting for transmission. */
@@ -76,7 +76,7 @@ typedef struct rlc_am_entity_s {
   rlc_am_tx_data_pdu_management_t *tx_data_pdu_buffer;       /*!< \brief Transmission PDU data buffer. Used also for retransmissions */
   signed int      retrans_num_pdus;                          /*!< \brief Number of PDUs in the retransmission buffer. */
   signed int      retrans_num_bytes_to_retransmit;           /*!< \brief Number of bytes in the retransmission buffer to be retransmitted. Only payload is taken into account */
-  boolean_t       force_poll;                                /*!< \brief force poll due to t_poll_retransmit time-out. */
+  bool            force_poll;                                /*!< \brief force poll due to t_poll_retransmit time-out. */
 
   //---------------------------------------------------------------------
   // RX BUFFERS
@@ -186,8 +186,8 @@ typedef struct rlc_am_entity_s {
   // note occupancy of other buffers is deducted from nb elements in lists
   rlc_buffer_occupancy_t  buffer_occupancy_retransmission_buffer;   /*!< \brief Number of PDUs. */
 
-  boolean_t               initialized;                               /*!< \brief Boolean for rlc_am_entity_t struct initialization. */
-  boolean_t               configured;                               /*!< \brief Boolean for rlc_am_entity_t struct  configuration. */
+  bool                    initialized;                               /*!< \brief Boolean for rlc_am_entity_t struct initialization. */
+  bool                    configured;                               /*!< \brief Boolean for rlc_am_entity_t struct  configuration. */
 } rlc_am_entity_t;
 /** @} */
 #    endif
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c
index cb09f24855a..8ff29fa44bf 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c
@@ -32,7 +32,7 @@ rlc_am_init(
   const protocol_ctxt_t* const  ctxt_pP,
   rlc_am_entity_t *const        rlc_pP)
 {
-  if (rlc_pP->initialized == TRUE) {
+  if (rlc_pP->initialized == true) {
     LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[AM INIT] INITIALIZATION ALREADY DONE, DOING NOTHING\n",
           PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP));
   } else {
@@ -79,7 +79,7 @@ rlc_am_init(
 
     rlc_pP->last_absolute_subframe_status_indication = 0xFFFFFFFF; // any value > 1
 
-    rlc_pP->initialized                  = TRUE;
+    rlc_pP->initialized                  = true;
   }
 }
 //-----------------------------------------------------------------------------
@@ -134,7 +134,7 @@ rlc_am_reestablish(
 
   rlc_pP->last_absolute_subframe_status_indication = 0xFFFFFFFF; // any value > 1
 
-  rlc_pP->initialized                  = TRUE;
+  rlc_pP->initialized                  = true;
 
 }
 
@@ -197,7 +197,7 @@ rlc_am_configure(
   const uint32_t                t_reorderingP,
   const uint32_t                t_status_prohibitP)
 {
-  if (rlc_pP->configured == TRUE) {
+  if (rlc_pP->configured == true) {
     LOG_I(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[RECONFIGURE] max_retx_threshold %d poll_pdu %d poll_byte %d t_poll_retransmit %d t_reordering %d t_status_prohibit %d\n",
           PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP),
           max_retx_thresholdP,
@@ -235,7 +235,7 @@ rlc_am_configure(
     rlc_am_init_timer_reordering     (ctxt_pP, rlc_pP, t_reorderingP);
     rlc_am_init_timer_status_prohibit(ctxt_pP, rlc_pP, t_status_prohibitP);
 
-    rlc_pP->configured = TRUE;
+    rlc_pP->configured = true;
   }
 
 }
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c
index 0957c20bdfc..a5f0b4f9ef0 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c
@@ -183,12 +183,10 @@ rlc_am_send_sdu (
   }
 }
 //-----------------------------------------------------------------------------
-void
-rlc_am_reassemble_pdu(
-  const protocol_ctxt_t *const ctxt_pP,
-  rlc_am_entity_t *const      rlc_pP,
-  mem_block_t *const          tb_pP,
-  boolean_t free_rlc_pdu) {
+void rlc_am_reassemble_pdu(const protocol_ctxt_t *const ctxt_pP,
+                           rlc_am_entity_t *const      rlc_pP,
+                           mem_block_t *const          tb_pP,
+                           bool free_rlc_pdu) {
   int i,j;
   rlc_am_pdu_info_t *pdu_info        = &((rlc_am_rx_pdu_management_t *)(tb_pP->data))->pdu_info;
   LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[REASSEMBLY PDU] TRY REASSEMBLY PDU SN=%03d\n",
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h
index bf9bd58fb52..839e7d9304f 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h
@@ -57,14 +57,14 @@ void rlc_am_reassembly   (const protocol_ctxt_t* const ctxtP, rlc_am_entity_t *
 */
 void rlc_am_send_sdu     (const protocol_ctxt_t* const ctxtP, rlc_am_entity_t * const rlc_pP);
 
-/*! \fn void rlc_am_reassemble_pdu(const protocol_ctxt_t* const ctxtP, rlc_am_entity_t * const rlc_pP, const  mem_block_t* const tb_pP,boolean_t free_rlc_pdu)
+/*! \fn void rlc_am_reassemble_pdu(const protocol_ctxt_t* const ctxtP, rlc_am_entity_t * const rlc_pP, const  mem_block_t* const tb_pP, bool free_rlc_pdu)
 * \brief    Reassembly a RLC AM PDU, depending of the content of this PDU, data will be reassemblied to the current output SDU, the current will be sent to higher layers or not, after or before the reassembly, or no send of SDU will be triggered, depending on FI field in PDU header.
 * \param[in]  ctxtP                       Running context.
 * \param[in]  rlc_pP                      RLC AM protocol instance pointer.
 * \param[in]  tb_pP                       RLC AM PDU embedded in a mem_block_t.
 * \param[in]  free_rlc_pdu                Flag for freeing RLC AM PDU after reassembly.
 */
-void rlc_am_reassemble_pdu(const protocol_ctxt_t* const ctxtP, rlc_am_entity_t * const rlc_pP, mem_block_t* const tb_pP,boolean_t free_rlc_pdu);
+void rlc_am_reassemble_pdu(const protocol_ctxt_t* const ctxtP, rlc_am_entity_t * const rlc_pP, mem_block_t* const tb_pP, bool free_rlc_pdu);
 /** @} */
 #endif
 
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c
index 916d1513b0f..a749aa035e1 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c
@@ -328,7 +328,7 @@ rlc_am_receive_process_data_pdu (
   rlc_am_pdu_info_t*  pdu_info_p         = &((rlc_am_rx_pdu_management_t*)(tb_pP->data))->pdu_info;
   rlc_am_pdu_sn_10_t* rlc_am_pdu_sn_10_p = (rlc_am_pdu_sn_10_t*)first_byte_pP;
   rlc_am_rx_pdu_status_t pdu_status		= RLC_AM_DATA_PDU_STATUS_OK;
-  boolean_t		reassemble = false;
+  bool reassemble = false;
 
   if (rlc_am_get_data_pdu_infos(ctxt_pP,rlc_pP, rlc_am_pdu_sn_10_p, tb_size_in_bytesP, pdu_info_p) >= 0) {
 
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c
index 56b37e1e395..7129307739a 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c
@@ -29,13 +29,12 @@
 #include "LAYER2/MAC/mac_extern.h"
 #include "common/utils/LOG/log.h"
 //-----------------------------------------------------------------------------
-boolean_t rlc_am_nack_pdu (
-  const protocol_ctxt_t* const  ctxt_pP,
-  rlc_am_entity_t *const rlc_pP,
-  const rlc_sn_t snP,
-  const rlc_sn_t prev_nack_snP,
-  sdu_size_t so_startP,
-  sdu_size_t so_endP)
+bool rlc_am_nack_pdu(const protocol_ctxt_t* const  ctxt_pP,
+                     rlc_am_entity_t *const rlc_pP,
+                     const rlc_sn_t snP,
+                     const rlc_sn_t prev_nack_snP,
+                     sdu_size_t so_startP,
+                     sdu_size_t so_endP)
 {
   // 5.2.1 Retransmission
   // ...
@@ -54,8 +53,8 @@ boolean_t rlc_am_nack_pdu (
   rlc_am_tx_data_pdu_management_t *tx_data_pdu_buffer_p = &rlc_pP->tx_data_pdu_buffer[snP % RLC_AM_WINDOW_SIZE];
   //int          pdu_sdu_index;
   //int          sdu_index;
-  boolean_t status = TRUE;
-  boolean_t retx_count_increment = FALSE;
+  bool status = true;
+  bool retx_count_increment = false;
   sdu_size_t pdu_data_to_retx = 0;
 
   if (mb_p != NULL) {
@@ -63,7 +62,7 @@ boolean_t rlc_am_nack_pdu (
     if(so_startP > so_endP) {
       LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[NACK-PDU] ERROR NACK MISSING PDU, so_startP %d, so_endP %d\n",
             PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP),so_startP, so_endP);
-      status = FALSE;
+      status = false;
     }
     // Handle full PDU NACK first
     else if ((so_startP == 0) && (so_endP == 0x7FFF)) {
@@ -71,9 +70,7 @@ boolean_t rlc_am_nack_pdu (
     		pdu_data_to_retx = tx_data_pdu_buffer_p->payload_size;
             /* Increment VtReTxNext if this is the first NACK or if some segments have already been transmitted */
             if ((tx_data_pdu_buffer_p->flags.retransmit == 0) || (tx_data_pdu_buffer_p->nack_so_start))
-            {
-            	retx_count_increment = TRUE;
-            }
+              retx_count_increment = true;
 
             tx_data_pdu_buffer_p->nack_so_start = 0;
             tx_data_pdu_buffer_p->num_holes     = 0;
@@ -89,11 +86,11 @@ boolean_t rlc_am_nack_pdu (
     	      if(tx_data_pdu_buffer_p->nack_so_start >= tx_data_pdu_buffer_p->payload_size){
               LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[NACK-PDU] ERROR NACK MISSING PDU, nack_so_start %d, payload_size %d\n",
                     PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP),tx_data_pdu_buffer_p->nack_so_start, tx_data_pdu_buffer_p->payload_size);
-    	        status = FALSE;
+              status = false;
     	      }
     	}
     	else {
-    		status = FALSE;
+        status = false;
     	}
     }
     else if (tx_data_pdu_buffer_p->flags.max_retransmit == 0) {
@@ -107,9 +104,8 @@ boolean_t rlc_am_nack_pdu (
 	    	if (prev_nack_snP != snP) {
 	    		/* New NACK_SN with SO */
                 /* check whether a new segment is to be placed in Retransmission Buffer, then increment vrReTx */
-                if ((tx_data_pdu_buffer_p->flags.retransmit == 0) || (so_startP < tx_data_pdu_buffer_p->nack_so_start)) {
-                	retx_count_increment = TRUE;
-                }
+                if ((tx_data_pdu_buffer_p->flags.retransmit == 0) || (so_startP < tx_data_pdu_buffer_p->nack_so_start))
+                  retx_count_increment = true;
 
 	            tx_data_pdu_buffer_p->num_holes     = 1;
 	            tx_data_pdu_buffer_p->retx_hole_index = 0;
@@ -129,21 +125,18 @@ boolean_t rlc_am_nack_pdu (
 		            tx_data_pdu_buffer_p->nack_so_stop = so_endP;
 		            tx_data_pdu_buffer_p->num_holes ++;
 		            pdu_data_to_retx = so_endP - so_startP + 1;
+          } else {
+            status = false;
 	    		}
-	    		else {
-	    			status = FALSE;
-	    		}
-	    	}
-	    	else {
-	    		status = FALSE;
+        } else {
+          status = false;
 	    	}
 		}
 		else {
-			status = FALSE;
+      status = false;
 		}
-    }
-    else {
-    	status = FALSE;
+    } else {
+      status = false;
     }
 
     if (status) {
@@ -175,17 +168,16 @@ boolean_t rlc_am_nack_pdu (
     LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[NACK-PDU] ERROR NACK MISSING PDU SN %05d\n",
           PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP),
           snP);
-    status = FALSE;
+    status = false;
   }
 
   return status;
 }
 //-----------------------------------------------------------------------------
-void rlc_am_ack_pdu (
-  const protocol_ctxt_t* const  ctxt_pP,
-  rlc_am_entity_t *const rlc_pP,
-  const rlc_sn_t snP,
-  boolean_t free_pdu)
+void rlc_am_ack_pdu(const protocol_ctxt_t* const  ctxt_pP,
+                    rlc_am_entity_t *const rlc_pP,
+                    const rlc_sn_t snP,
+                    bool free_pdu)
 {
   mem_block_t* mb_p         = rlc_pP->tx_data_pdu_buffer[snP % RLC_AM_WINDOW_SIZE].mem_block;
   rlc_am_tx_data_pdu_management_t *tx_data_pdu_buffer = &rlc_pP->tx_data_pdu_buffer[snP % RLC_AM_WINDOW_SIZE];
@@ -283,7 +275,7 @@ mem_block_t* rlc_am_retransmit_get_am_segment(
 	sdu_size_t     retx_so_start,retx_so_stop; //starting and ending SO for retransmission in this PDU
 	rlc_sn_t sn = pdu_mngt->sn;
 	uint16_t	header_so_part;
-	boolean_t fi_start, fi_end;
+	bool fi_start, fi_end;
 	uint8_t sdu_index = 0;
 	uint8_t sdu_segment_index = 0;
 	uint8_t num_LIs_pdu_segment = pdu_mngt->nb_sdus - 1;
@@ -377,11 +369,11 @@ mem_block_t* rlc_am_retransmit_get_am_segment(
 		/* Set FI part to false if SO Start and SO End are different from PDU boundaries */
 		if (retx_so_start)
 		{
-			fi_start = FALSE;
+			fi_start = false;
 		}
 		if (retx_so_stop < pdu_mngt->payload_size - 1)
 		{
-			fi_end = FALSE;
+			fi_end = false;
 		}
 
 		/* Header content is filled at the end */
@@ -423,7 +415,7 @@ mem_block_t* rlc_am_retransmit_get_am_segment(
 			else
 			{
 				/* if retx_so_start is still not included then set data_size with full original PDU data size */
-				/* Set fi_start to FALSE in this case */
+				/* Set fi_start to false in this case */
 				data_size = pdu_mngt->payload_size;
 			}
 			sdu_index ++;
@@ -432,7 +424,7 @@ mem_block_t* rlc_am_retransmit_get_am_segment(
 		if (retx_so_start == data_size)
 		{
 			/* Set FI Start if retx_so_start = cumulated data size */
-			fi_start = TRUE;
+			fi_start = true;
 			/* there must be at least one SDU more */
 //Assertion(eNB)_PRAN_DesignDocument_annex No.778
             if(sdu_index >= pdu_mngt->nb_sdus)
@@ -464,8 +456,8 @@ mem_block_t* rlc_am_retransmit_get_am_segment(
 		}
 		else if (retx_so_start != 0)
 		{
-			/* in all other cases set fi_start to FALSE if it SO Start is not 0 */
-			fi_start = FALSE;
+			/* in all other cases set fi_start to false if it SO Start is not 0 */
+			fi_start = false;
 		}
 
 		/* Set first SDU portion of the segment */
@@ -582,10 +574,10 @@ mem_block_t* rlc_am_retransmit_get_am_segment(
 				"RLC AM Tx PDU Segment Data Error: retx_so_stop=%d OriginalPDUDataLength=%d SOStart=%d SegmentLength=%d numLISegment=%d numLIPDU=%d sn=%d LcId=%d !\n",
 				retx_so_stop,pdu_mngt->payload_size,retx_so_start,*payload_sizeP,num_LIs_pdu_segment,pdu_mngt->nb_sdus - 1,sn,rlc_pP->channel_id);
 */
-		/* init FI End to FALSE if retx_so_stop is not end of PDU */
+		/* init FI End to false if retx_so_stop is not end of PDU */
 		if (retx_so_stop != pdu_mngt->payload_size - 1)
 		{
-			fi_end = FALSE;
+			fi_end = false;
 		}
 
 		/* Check consistency between sdus_segment_size and payload_sizeP */
@@ -596,7 +588,7 @@ mem_block_t* rlc_am_retransmit_get_am_segment(
 			data_size += sdus_segment_size[i];
 			if ((retx_so_stop == data_size - 1) && (i < num_LIs_pdu_segment))
 			{
-				fi_end = TRUE;
+				fi_end = true;
 			}
 		}
 //Assertion(eNB)_PRAN_DesignDocument_annex No.782
@@ -665,7 +657,7 @@ mem_block_t* rlc_am_retransmit_get_am_segment(
 			pdu_mngt->nack_so_start = pdu_mngt->hole_so_start[pdu_mngt->retx_hole_index];
 		}
 
-		/* Content is supposed to be init with 0 so with FIStart=FIEnd=TRUE */
+		/* Content is supposed to be init with 0 so with FIStart=FIEnd=true */
 		RLC_AM_PDU_SET_D_C(*pdu_segment_header_p);
 		RLC_AM_PDU_SET_RF(*pdu_segment_header_p);
 		/* Change FI */
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h
index fc526893142..c34d06337da 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h
@@ -35,7 +35,7 @@
 #    ifndef __RLC_AM_RETRANSMIT_H__
 #        define __RLC_AM_RETRANSMIT_H__
 //-----------------------------------------------------------------------------
-/*! \fn boolean_t  rlc_am_nack_pdu (const protocol_ctxt_t* const  ctxt_pP, rlc_am_entity_t *rlcP, int16_t snP, int16_t prev_nack_snP,sdu_size_t so_startP, sdu_size_t so_endP)
+/*! \fn bool  rlc_am_nack_pdu (const protocol_ctxt_t* const  ctxt_pP, rlc_am_entity_t *rlcP, int16_t snP, int16_t prev_nack_snP,sdu_size_t so_startP, sdu_size_t so_endP)
 * \brief      The RLC AM PDU which have the sequence number snP is marked NACKed with segment offset fields.
 * \param[in]  ctxtP        Running context.
 * \param[in]  rlcP         RLC AM protocol instance pointer.
@@ -46,13 +46,12 @@
 * \return                  OK/KO
 * \note It may appear a new hole in the retransmission buffer depending on the segment offset informations. Depending on the state of the retransmission buffer, negative confirmation can be sent to higher layers about the drop by the RLC AM instance of a particular SDU.
 */
-boolean_t         rlc_am_nack_pdu (
-                              const protocol_ctxt_t* const  ctxt_pP,
-                              rlc_am_entity_t *const rlcP,
-                              const rlc_sn_t snP,
-							  const rlc_sn_t prev_nack_snP,
-                              sdu_size_t so_startP,
-                              sdu_size_t so_endP);
+bool rlc_am_nack_pdu(const protocol_ctxt_t* const  ctxt_pP,
+                     rlc_am_entity_t *const rlcP,
+                     const rlc_sn_t snP,
+                     const rlc_sn_t prev_nack_snP,
+                     sdu_size_t so_startP,
+                     sdu_size_t so_endP);
 
 /*! \fn void rlc_am_ack_pdu (const protocol_ctxt_t* const  ctxt_pP,rlc_am_entity_t *rlcP, rlc_sn_t snP)
 * \brief      The RLC AM PDU which have the sequence number snP is marked ACKed.
@@ -62,11 +61,10 @@ boolean_t         rlc_am_nack_pdu (
 * \param[in]  free_pdu     Boolean indicating that the PDU can be freed because smaller than new vtA.
 * \note                    Depending on the state of the retransmission buffer, positive confirmation can be sent to higher layers about the receiving by the peer RLC AM instance of a particular SDU.
 */
-void         rlc_am_ack_pdu (
-                              const protocol_ctxt_t* const  ctxt_pP,
-                              rlc_am_entity_t *const rlcP,
-                              const rlc_sn_t snP,
-							  boolean_t free_pdu);
+void rlc_am_ack_pdu(const protocol_ctxt_t* const  ctxt_pP,
+                    rlc_am_entity_t *const rlcP,
+                    const rlc_sn_t snP,
+							      bool free_pdu);
 
 /*! \fn mem_block_t* rlc_am_retransmit_get_copy (const protocol_ctxt_t* const  ctxt_pP, rlc_am_entity_t *rlcP, rlc_sn_t snP)
 * \brief      The RLC AM PDU which have the sequence number snP is marked ACKed.
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c
index 4a065539013..bd578abab2a 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c
@@ -31,14 +31,13 @@
 #include "common/utils/LOG/log.h"
 
 
-boolean_t rlc_am_rx_check_vr_reassemble(
-		  const protocol_ctxt_t* const ctxt_pP,
-		  const rlc_am_entity_t* const rlc_pP)
+bool rlc_am_rx_check_vr_reassemble(const protocol_ctxt_t* const ctxt_pP,
+                                   const rlc_am_entity_t* const rlc_pP)
 {
 	mem_block_t*       cursor_p                    = rlc_pP->receiver_buffer.head;
 	rlc_am_rx_pdu_management_t * pdu_cursor_mgnt_p = NULL;
 	sdu_size_t          next_waited_so = 0;
-	boolean_t reassemble = FALSE;
+	bool reassemble = false;
 
 	if (cursor_p != NULL) {
 
@@ -48,7 +47,7 @@ boolean_t rlc_am_rx_check_vr_reassemble(
 		if (sn_ref != rlc_pP->vr_r) {
 			/* Case vrR has advanced from head : most likely case */
 
-			reassemble = TRUE;
+			reassemble = true;
 			/* Handle first SN if it is made of PDU segments : set them all to be reassembled */
 			if (pdu_info_p->rf) {
 				pdu_cursor_mgnt_p = (rlc_am_rx_pdu_management_t *) (cursor_p->data);
@@ -58,7 +57,7 @@ boolean_t rlc_am_rx_check_vr_reassemble(
                 {
                    LOG_E(RLC, "AM Rx Check Reassembly head SN=%d with PDU segments != vrR=%d should be fully received LCID=%d\n",
                          sn_ref,rlc_pP->vr_r,rlc_pP->channel_id);
-                   return FALSE;
+                   return false;
                 }
 /*
 				AssertFatal(pdu_cursor_mgnt_p->all_segments_received > 0,"AM Rx Check Reassembly head SN=%d with PDU segments != vrR=%d should be fully received LCID=%d\n",
@@ -94,7 +93,7 @@ boolean_t rlc_am_rx_check_vr_reassemble(
               {
                  LOG_E(RLC, "AM Rx Check Reassembly vr=%d should be partly received SNHead=%d LCID=%d\n",
                        rlc_pP->vr_r,sn_ref,rlc_pP->channel_id);
-                 return FALSE;
+                 return false;
               }
 /*
 				AssertFatal(pdu_cursor_mgnt_p->all_segments_received == 0,"AM Rx Check Reassembly vr=%d should be partly received SNHead=%d LCID=%d\n",
@@ -123,7 +122,7 @@ boolean_t rlc_am_rx_check_vr_reassemble(
             {
                LOG_E(RLC, "AM Rx Check Reassembly SNHead=vr=%d should be partly received LCID=%d\n",
                      rlc_pP->vr_r,rlc_pP->channel_id);
-               return FALSE;
+               return false;
             }
 /*
 			AssertFatal(pdu_cursor_mgnt_p->all_segments_received == 0,"AM Rx Check Reassembly SNHead=vr=%d should be partly received LCID=%d\n",
@@ -132,7 +131,7 @@ boolean_t rlc_am_rx_check_vr_reassemble(
 			while ((cursor_p != NULL) && (pdu_info_p->sn == rlc_pP->vr_r) && (pdu_info_p->so == next_waited_so)) {
 				if (pdu_cursor_mgnt_p->segment_reassembled == RLC_AM_RX_PDU_SEGMENT_REASSEMBLE_NO) {
 					pdu_cursor_mgnt_p->segment_reassembled = RLC_AM_RX_PDU_SEGMENT_REASSEMBLE_PENDING;
-					reassemble = TRUE;
+					reassemble = true;
 				}
 				next_waited_so += pdu_info_p->payload_size;
 				cursor_p = cursor_p->next;
@@ -157,7 +156,7 @@ mem_block_t * create_new_segment_from_pdu(
 	int16_t  new_li_list[RLC_AM_MAX_SDU_IN_PDU];
 	int16_t header_size = 0;
 	uint8_t	num_li = 0;
-	boolean_t fi_start, fi_end, lsf;
+	bool fi_start, fi_end, lsf;
 
 	/* Init some PDU Segment header fixed parameters */
 	fi_start = !((pdu_rx_info_p->fi & 0x2) >> 1);
@@ -170,11 +169,11 @@ mem_block_t * create_new_segment_from_pdu(
 		header_size = RLC_AM_PDU_SEGMENT_HEADER_MIN_SIZE;
 
 		if (so_offset) {
-			fi_start = FALSE;
+			fi_start = false;
 		}
 		if (so_offset + data_length_to_copy != pdu_rx_info_p->payload_size) {
-			fi_end = FALSE;
-			lsf = FALSE;
+			fi_end = false;
+			lsf = false;
 		}
 	} // end no LI in original segment
 	else {
@@ -185,7 +184,7 @@ mem_block_t * create_new_segment_from_pdu(
 
 		/* set LSF to false if we know that end of the original segment will not be copied */
 		if (so_offset + data_length_to_copy != pdu_rx_info_p->payload_size) {
-			lsf = FALSE;
+			lsf = false;
 		}
 
 		/* catch the first LI containing so_offset */
@@ -223,7 +222,7 @@ mem_block_t * create_new_segment_from_pdu(
 				num_li = j;
 				/* set FI End if remaining size = 0  */
 				if (remaining_size == 0) {
-					fi_end = TRUE;
+					fi_end = true;
 				}
 			}
 		}
@@ -263,7 +262,7 @@ mem_block_t * create_new_segment_from_pdu(
 		}
 
 		/* Fill Header part in the buffer */
-		/* Content is supposed to be init with 0 so with FIStart=FIEnd=TRUE */
+		/* Content is supposed to be init with 0 so with FIStart=FIEnd=true */
 		/* copy first two bytes from original: D/C + RF + FI + E+ SN*/
 		memset(pdu_segment_header_p, 0, header_size);
 		RLC_AM_PDU_SET_D_C(*pdu_segment_header_p);
@@ -1106,7 +1105,7 @@ rlc_am_rx_list_reassemble_rlc_sdus(
   do {
     if (rlc_am_rx_pdu_management_p->all_segments_received > 0) {
       cursor_p = list2_remove_head(&rlc_pP->receiver_buffer);
-      rlc_am_reassemble_pdu(ctxt_pP, rlc_pP, cursor_p,TRUE);
+      rlc_am_reassemble_pdu(ctxt_pP, rlc_pP, cursor_p, true);
       rlc_am_rx_old_pdu_management = rlc_am_rx_pdu_management_p;
       cursor_p = list2_get_head(&rlc_pP->receiver_buffer);
 
@@ -1123,7 +1122,7 @@ rlc_am_rx_list_reassemble_rlc_sdus(
     else if (rlc_am_rx_pdu_management_p->segment_reassembled == RLC_AM_RX_PDU_SEGMENT_REASSEMBLE_PENDING) {
     	rlc_am_rx_pdu_management_p->segment_reassembled = RLC_AM_RX_PDU_SEGMENT_REASSEMBLED;
 
-        rlc_am_reassemble_pdu(ctxt_pP, rlc_pP, cursor_p,FALSE);
+        rlc_am_reassemble_pdu(ctxt_pP, rlc_pP, cursor_p, false);
         rlc_am_rx_old_pdu_management = rlc_am_rx_pdu_management_p;
         cursor_p = cursor_p->next;
 
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h
index fd8704964d1..18e423312cb 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h
@@ -61,13 +61,13 @@ rlc_am_rx_pdu_status_t rlc_am_rx_list_check_duplicate_insert_pdu(const protocol_
 */
 signed int rlc_am_rx_list_insert_pdu(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlcP,  mem_block_t* const tbP);
 
-/*! \fn boolean_t rlc_am_rx_check_vr_reassemble(const protocol_ctxt_t* const ctxt_pP,const rlc_am_entity_t* const rlc_pP)
+/*! \fn bool rlc_am_rx_check_vr_reassemble(const protocol_ctxt_t* const ctxt_pP,const rlc_am_entity_t* const rlc_pP)
 * \brief      Check if reassembly taking into account potential new vrR value
 * \param[in]  ctxt_pP        Running context.
 * \param[in]  rlcP         RLC AM protocol instance pointer.
-* \return     TRUE if reassembly must be done, FALSE else
+* \return     true if reassembly must be done, false else
 */
-boolean_t rlc_am_rx_check_vr_reassemble(const protocol_ctxt_t* const ctxt_pP,const rlc_am_entity_t* const rlc_pP);
+bool rlc_am_rx_check_vr_reassemble(const protocol_ctxt_t* const ctxt_pP,const rlc_am_entity_t* const rlc_pP);
 
 /*! \fn void rlc_am_rx_check_all_byte_segments(const protocol_ctxt_t* const ctxt_pP, rlc_am_entity_t* const rlcP, mem_block_t* const tbP)
 * \brief      Check if all sub-segments of a PDU are received, if yes then call rlc_am_rx_mark_all_segments_received() procedure.
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c
index ed81e119acb..9e7c3338f81 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c
@@ -32,12 +32,11 @@
 #include "common/utils/LOG/log.h"
 
 //-----------------------------------------------------------------------------
-void rlc_am_pdu_polling (
-  const protocol_ctxt_t* const  ctxt_pP,
-  rlc_am_entity_t *const rlc_pP,
-  rlc_am_pdu_sn_10_t *const pdu_pP,
-  const int16_t payload_sizeP,
-  boolean_t is_new_pdu)
+void rlc_am_pdu_polling(const protocol_ctxt_t* const  ctxt_pP,
+                        rlc_am_entity_t *const rlc_pP,
+                        rlc_am_pdu_sn_10_t *const pdu_pP,
+                        const int16_t payload_sizeP,
+                        bool is_new_pdu)
 {
   // 5.2.2 Polling
   // An AM RLC entity can poll its peer AM RLC entity in order to trigger STATUS reporting at the peer AM RLC entity.
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h
index dc754d08e49..1e472302c82 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h
@@ -36,14 +36,14 @@
 #        define __RLC_AM_SEGMENT_H__
 //-----------------------------------------------------------------------------
 
-/*! \fn void rlc_am_pdu_polling (const protocol_ctxt_t* const  ctxt_pP, rlc_am_entity_t *const rlcP, rlc_am_pdu_sn_10_t *pduP, int16_t payload_sizeP,boolean_t is_new_pdu)
+/*! \fn void rlc_am_pdu_polling (const protocol_ctxt_t* const  ctxt_pP, rlc_am_entity_t *const rlcP, rlc_am_pdu_sn_10_t *pduP, int16_t payload_sizeP, bool is_new_pdu)
 * \brief      Set or not the poll bit in the PDU header depending on RLC AM protocol variables.
 * \param[in]  ctxt_pP          Running context.
 * \param[in]  rlcP           RLC AM protocol instance pointer.
 * \param[in]  pduP           Pointer on the header of the PDU in order to be able to set the poll bit if necessary.
 * \param[in]  payload_sizeP  Size of the payload of the PDU.
 */
-void rlc_am_pdu_polling (const protocol_ctxt_t* const  ctxt_pP, rlc_am_entity_t *const rlcP, rlc_am_pdu_sn_10_t *pduP, int16_t payload_sizeP,boolean_t is_new_pdu);
+void rlc_am_pdu_polling (const protocol_ctxt_t* const  ctxt_pP, rlc_am_entity_t *const rlcP, rlc_am_pdu_sn_10_t *pduP, int16_t payload_sizeP, bool is_new_pdu);
 
 /*! \fn void rlc_am_segment_10 (const protocol_ctxt_t* const  ctxt_pP, rlc_am_entity_t * const rlcP)
 * \brief      Segment a PDU with 10 bits sequence number, based on segmentation information given by MAC (size to transmit).
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c
index 02a0247a03d..f1e6c961e70 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c
@@ -237,7 +237,7 @@ rlc_am_receive_process_control_pdu(
   rlc_sn_t        nack_sn,prev_nack_sn;
   sdu_size_t    data_cnf_so_stop = 0x7FFF;
   unsigned int nack_index;
-  boolean_t status = TRUE;
+  bool status = true;
 
   if (rlc_am_get_control_pdu_infos(rlc_am_pdu_sn_10_p, tb_size_in_bytes_pP, &rlc_pP->control_pdu_info) >= 0) {
     rlc_am_tx_buffer_display(ctxt_pP, rlc_pP, " TX BUFFER BEFORE PROCESS OF STATUS PDU");
@@ -282,7 +282,7 @@ rlc_am_receive_process_control_pdu(
     if (RLC_AM_DIFF_SN(rlc_pP->vt_s,rlc_pP->vt_a) >= RLC_AM_DIFF_SN(ack_sn,rlc_pP->vt_a)) {
       if (rlc_pP->control_pdu_info.num_nack == 0) {
         while (sn_cursor != ack_sn) {
-          rlc_am_ack_pdu(ctxt_pP, rlc_pP, sn_cursor,TRUE);
+          rlc_am_ack_pdu(ctxt_pP, rlc_pP, sn_cursor, true);
           sn_cursor = RLC_AM_NEXT_SN(sn_cursor);
         }
 
@@ -294,7 +294,7 @@ rlc_am_receive_process_control_pdu(
         prev_nack_sn = 0x3FFF;
 
         while (sn_cursor != nack_sn) {
-          rlc_am_ack_pdu(ctxt_pP, rlc_pP, sn_cursor,TRUE);
+          rlc_am_ack_pdu(ctxt_pP, rlc_pP, sn_cursor, true);
           sn_cursor = RLC_AM_NEXT_SN(sn_cursor);
         }
 
@@ -316,7 +316,7 @@ rlc_am_receive_process_control_pdu(
             rlc_am_ack_pdu(ctxt_pP,
                            rlc_pP,
                            sn_cursor,
-                           FALSE);
+                           false);
           } else {
             status = rlc_am_nack_pdu (ctxt_pP,
                                       rlc_pP,
@@ -348,13 +348,13 @@ rlc_am_receive_process_control_pdu(
       LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT" WARNING CONTROL PDU ACK SN %d OUT OF WINDOW vtA=%d vtS=%d\n",
             PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP),ack_sn,rlc_pP->vt_a,rlc_pP->vt_s);
       *tb_size_in_bytes_pP = 0;
-      status = FALSE;
+      status = false;
     }
   } else {
     LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT" ERROR IN DECODING CONTROL PDU\n",
           PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP));
     *tb_size_in_bytes_pP = 0;
-    status = FALSE;
+    status = false;
   }
 
   if (status) {
@@ -480,8 +480,8 @@ rlc_am_send_status_pdu(
   int                           waited_so             = 0;
   mem_block_t                  *tb_p                  = NULL;
   sdu_size_t                    pdu_size              = 0;
-  boolean_t           status_report_completed = false;
-  boolean_t           segment_loop_end    = false;
+  bool                          status_report_completed = false;
+  bool                          segment_loop_end    = false;
   memset(&control_pdu_info, 0, sizeof(rlc_am_control_pdu_info_t));
   LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] nb_bits_to_transmit %d (15 already allocated for header)\n",
         PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP),
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c
index 7a95a62787a..e898a601c2c 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c
@@ -1170,7 +1170,7 @@ void rlc_am_v9_3_0_test(void)
 {
   //     initscr();
   //     cbreak();
-  //     keypad(stdscr, TRUE);
+  //     keypad(stdscr, true);
   // under test
   pool_buffer_init();
   set_comp_log(RLC, LOG_ERR, LOG_MED, 1);
diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c
index 969ed2d7a54..7aead2f30a4 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c
@@ -111,7 +111,7 @@ rlc_am_check_timer_poll_retransmit(
 	  }
 
 
-      rlc_pP->force_poll= TRUE;
+      rlc_pP->force_poll = true;
       //BugFix : new ms_time_out is computed when next poll is transmitter
     }
   }
diff --git a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c
index 4e3fffe176e..f079696aa91 100644
--- a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c
+++ b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c
@@ -31,13 +31,11 @@
 #include "list.h"
 #include "LAYER2/MAC/mac_extern.h"
 //-----------------------------------------------------------------------------
-void
-rlc_tm_send_sdu (
-  const protocol_ctxt_t* const  ctxt_pP,
-  rlc_tm_entity_t * const rlc_pP,
-  const boolean_t         error_indicationP,
-  uint8_t * const         srcP,
-  const sdu_size_t        length_in_bitsP)
+void rlc_tm_send_sdu(const protocol_ctxt_t* const ctxt_pP,
+                     rlc_tm_entity_t *      const rlc_pP,
+                     const bool                   error_indicationP,
+                     uint8_t *              const srcP,
+                     const sdu_size_t             length_in_bitsP)
 {
   int             length_in_bytes;
 #if DEBUG_RLC_TM_DISPLAY_ASCII_DATA
diff --git a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h
index d2bab33b1a4..de7b9b81706 100644
--- a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h
+++ b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h
@@ -51,7 +51,7 @@
 /*! \fn void rlc_tm_send_sdu (
 *        const protocol_ctxt_t* const  ctxt_pP,
 *        rlc_tm_entity_t * const rlc_pP,
-*        const boolean_t         error_indicationP,
+*        const bool            error_indicationP,
 *        uint8_t * const         srcP,
 *        const sdu_size_t        length_in_bitsP)
 * \brief    Send SDU if any reassemblied to upper layer.
@@ -60,12 +60,11 @@
 * \param[in]  srcP                SDU data pointer.
 * \param[in]  length_in_bitsP     Length of SDU in bits.
 */
-void rlc_tm_send_sdu (
-                 const protocol_ctxt_t* const  ctxt_pP,
-                 rlc_tm_entity_t * const rlc_pP,
-                 const boolean_t         error_indicationP,
-                 uint8_t * const         srcP,
-                 const sdu_size_t        length_in_bitsP);
+void rlc_tm_send_sdu(const protocol_ctxt_t* const  ctxt_pP,
+                     rlc_tm_entity_t * const rlc_pP,
+                     const bool         error_indicationP,
+                     uint8_t * const         srcP,
+                     const sdu_size_t        length_in_bitsP);
 
 /*! \fn void rlc_tm_no_segment (const protocol_ctxt_t* const  ctxt_pP, rlc_tm_entity_t * const rlcP)
 * \brief    Schedule a SDU to be transmited by lower layers.
diff --git a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_entity.h b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_entity.h
index 1a13982df65..3c2f1804bec 100644
--- a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_entity.h
+++ b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_entity.h
@@ -40,14 +40,13 @@
 * \brief Structure containing a RLC TM instance protocol variables, allocation variables, buffers and other miscellaneous variables.
 */
 typedef struct rlc_tm_entity {
-  boolean_t            allocation;         /*!< \brief Boolean for rlc_tm_entity_t struct allocation. */
+  bool                 allocation;         /*!< \brief Boolean for rlc_tm_entity_t struct allocation. */
   rlc_protocol_state_t protocol_state;     /*!< \brief Protocol state, can be RLC_NULL_STATE, RLC_DATA_TRANSFER_READY_STATE, RLC_LOCAL_SUSPEND_STATE. */
-  boolean_t            is_uplink_downlink; /*!< \brief Is this instance is a transmitter, a receiver or both? */
-  boolean_t            is_data_plane;      /*!< \brief To know if the RLC belongs to a data radio bearer or a signalling radio bearer, for statistics and trace purpose. */
+  bool                 is_uplink_downlink; /*!< \brief Is this instance is a transmitter, a receiver or both? */
+  bool                 is_data_plane;      /*!< \brief To know if the RLC belongs to a data radio bearer or a signalling radio bearer, for statistics and trace purpose. */
   // for stats and trace purpose :
   logical_chan_id_t    channel_id;         /*!< \brief Transport channel identifier. */
   rb_id_t              rb_id;              /*!< \brief Radio bearer identifier, for statistics and trace purpose. */
-  //boolean_t            is_enb;             /*!< \brief To know if the RLC belongs to a eNB or UE. */
   //-----------------------------
   // tranmission
   //-----------------------------
diff --git a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c
index 22e6f4d78d1..a838b2a0066 100644
--- a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c
+++ b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c
@@ -133,10 +133,9 @@ rlc_tm_cleanup (
 }
 
 //-----------------------------------------------------------------------------
-void rlc_tm_configure(
-  const protocol_ctxt_t* const  ctxt_pP,
-  rlc_tm_entity_t * const rlcP,
-  const boolean_t is_uplink_downlinkP)
+void rlc_tm_configure(const protocol_ctxt_t* const  ctxt_pP,
+                      rlc_tm_entity_t * const rlcP,
+                      const bool is_uplink_downlinkP)
 {
   rlcP->is_uplink_downlink = is_uplink_downlinkP;
   rlc_tm_reset_state_variables (ctxt_pP, rlcP);
diff --git a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h
index 57e2116a724..f315a0311ae 100644
--- a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h
+++ b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h
@@ -78,27 +78,24 @@ void rlc_tm_init (
 * \brief    Reset protocol variables and state variables to initial values.
 * \param[in]  rlcP                      RLC TM protocol instance pointer.
 */
-void rlc_tm_reset_state_variables (
-                        const protocol_ctxt_t* const  ctxt_pP,
-                        rlc_tm_entity_t * const rlcP);
+void rlc_tm_reset_state_variables(const protocol_ctxt_t* const ctxt_pP,
+                                  rlc_tm_entity_t * const rlcP);
 
 /*! \fn void rlc_tm_cleanup(rlc_tm_entity_t * const rlcP)
 * \brief    Free all allocated memory (lists and buffers) previously allocated by this RLC TM instance.
 * \param[in]  rlcP                      RLC TM protocol instance pointer.
 */
-void rlc_tm_cleanup(
-                        rlc_tm_entity_t * const rlcP);
+void rlc_tm_cleanup(rlc_tm_entity_t * const rlcP);
 
-/*! \fn void rlc_tm_configure(const protocol_ctxt_t* const  ctxt_pP,rlc_tm_entity_t * const rlcP, const boolean_t is_uplink_downlinkP)
+/*! \fn void rlc_tm_configure(const protocol_ctxt_t* const  ctxt_pP,rlc_tm_entity_t * const rlcP, const bool is_uplink_downlinkP)
 * \brief    Configure RLC TM protocol parameters.
 * \param[in]  rlcP                      RLC TM protocol instance pointer.
 * \param[in]  is_uplink_downlinkP       Is this instance is TRANSMITTER_ONLY,
 RECEIVER_ONLY, or TRANSMITTER_AND_RECEIVER.
 */
-void rlc_tm_configure(
-                        const protocol_ctxt_t* const  ctxt_pP,
-                        rlc_tm_entity_t * const rlcP,
-                        const boolean_t is_uplink_downlinkP);
+void rlc_tm_configure(const protocol_ctxt_t* const  ctxt_pP,
+                      rlc_tm_entity_t * const rlcP,
+                      const bool is_uplink_downlinkP);
 
 /*! \fn void rlc_tm_set_debug_infos(const protocol_ctxt_t* const  ctxt_pP, rlc_tm_entity_t * const rlcP, const rb_id_t rb_idP, const srb_flag_t srb_flagP)
 * \brief    Set debug informations for a RLC TM protocol instance, these informations are only for trace purpose.
diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c
index bec815ac5da..f2cb4f09b1e 100644
--- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c
+++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c
@@ -263,7 +263,7 @@ rlc_um_init (
     }
 
     rlc_pP->first_pdu = 1;
-    rlc_pP->initialized = TRUE;
+    rlc_pP->initialized = true;
   }
 }
 //-----------------------------------------------------------------------------
diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_entity.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_entity.h
index 3250ac85b85..7bfa3d60ffe 100644
--- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_entity.h
+++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_entity.h
@@ -53,12 +53,11 @@ typedef struct rlc_um_timer_s {
 */
 
 typedef struct rlc_um_entity_s {
-  boolean_t            initialized;        /*!< \brief Boolean for rlc_am_entity_t struct initialization. */
-  boolean_t            is_uplink_downlink; /*!< \brief Is this instance is a transmitter, a receiver or both? */
+  bool                 initialized;        /*!< \brief Boolean for rlc_am_entity_t struct initialization. */
+  bool                 is_uplink_downlink; /*!< \brief Is this instance is a transmitter, a receiver or both? */
   rlc_protocol_state_t protocol_state;     /*!< \brief Protocol state, can be RLC_NULL_STATE, RLC_DATA_TRANSFER_READY_STATE, RLC_LOCAL_SUSPEND_STATE. */
-  boolean_t            is_data_plane;      /*!< \brief To know if the RLC belongs to a data radio bearer or a signalling radio bearer, for statistics and trace purpose. */
-  //boolean_t            is_enb;             /*!< \brief To know if the RLC belongs to a eNB or UE. */
-  boolean_t            is_mxch;            /*!< \brief To know if the RLC belongs to a MBMS bearer. */
+  bool                 is_data_plane;      /*!< \brief To know if the RLC belongs to a data radio bearer or a signalling radio bearer, for statistics and trace purpose. */
+  bool                 is_mxch;            /*!< \brief To know if the RLC belongs to a MBMS bearer. */
   //-----------------------------
   // PROTOCOL VARIABLES
   //-----------------------------
@@ -114,7 +113,7 @@ typedef struct rlc_um_entity_s {
   //-----------------------------
   // STATISTICS
   //-----------------------------
-  boolean_t         first_pdu;                        /*!< \brief Act as a boolean, tells if the next PDU is the first PDU to be received. */
+  bool              first_pdu;                        /*!< \brief Act as a boolean, tells if the next PDU is the first PDU to be received. */
 
   unsigned int stat_tx_pdcp_sdu;                      /*!< \brief Number of SDUs received from upper layers. */
   unsigned int stat_tx_pdcp_bytes;                    /*!< \brief Number of SDU bytes received from upper layers. */
diff --git a/openair2/LAYER2/RLC/rlc.c b/openair2/LAYER2/RLC/rlc.c
index b9dcf0414b9..ec90817500d 100644
--- a/openair2/LAYER2/RLC/rlc.c
+++ b/openair2/LAYER2/RLC/rlc.c
@@ -41,13 +41,12 @@
 #include "common/ran_context.h"
 extern RAN_CONTEXT_t RC;
 
-extern boolean_t pdcp_data_ind(
-  const protocol_ctxt_t *const ctxt_pP,
-  const srb_flag_t srb_flagP,
-  const MBMS_flag_t MBMS_flagP,
-  const rb_id_t rb_idP,
-  const sdu_size_t sdu_buffer_sizeP,
-  mem_block_t *const sdu_buffer_pP);
+extern bool pdcp_data_ind(const protocol_ctxt_t *const ctxt_pP,
+                          const srb_flag_t srb_flagP,
+                          const MBMS_flag_t MBMS_flagP,
+                          const rb_id_t rb_idP,
+                          const sdu_size_t sdu_buffer_sizeP,
+                          mem_block_t *const sdu_buffer_pP);
 
 #define DEBUG_RLC_PDCP_INTERFACE 1
 //#define TRACE_RLC_PAYLOAD 1
@@ -397,7 +396,7 @@ rlc_op_status_t rlc_data_req     (const protocol_ctxt_t *const ctxt_pP,
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_IN);
 
-  if (MBMS_flagP == TRUE) {
+  if (MBMS_flagP == true) {
     if (ctxt_pP->enb_flag) {
       log_ch_id = rlc_mbms_enb_get_lcid_by_rb_id(ctxt_pP->module_id,rb_idP);
       mbms_id_p = &rlc_mbms_lcid2service_session_id_eNB[ctxt_pP->module_id][log_ch_id];
diff --git a/openair2/LAYER2/RLC/rlc.h b/openair2/LAYER2/RLC/rlc.h
index 1e5b7947d7a..1e17ff96bfc 100644
--- a/openair2/LAYER2/RLC/rlc.h
+++ b/openair2/LAYER2/RLC/rlc.h
@@ -107,7 +107,7 @@ typedef  struct {
   rlc_buffer_occupancy_t       pdus_in_buffer;  /*!< \brief Number of PDUs buffered in RLC protocol instance (OBSOLETE). */
   frame_t                      head_sdu_creation_time;           /*!< \brief Head SDU creation time. */
   sdu_size_t                   head_sdu_remaining_size_to_send;  /*!< \brief remaining size of sdu: could be the total size or the remaining size of already segmented sdu */
-  boolean_t                    head_sdu_is_segmented;     /*!< \brief 0 if head SDU has not been segmented, 1 if already segmented */
+  bool                         head_sdu_is_segmented;     /*!< \brief 0 if head SDU has not been segmented, 1 if already segmented */
 } mac_rlc_status_resp_t;
 
 
diff --git a/openair2/LAYER2/RLC/rlc_mac.c b/openair2/LAYER2/RLC/rlc_mac.c
index 89cbe4c406c..0e1cb89fd71 100644
--- a/openair2/LAYER2/RLC/rlc_mac.c
+++ b/openair2/LAYER2/RLC/rlc_mac.c
@@ -425,8 +425,8 @@ rlc_buffer_occupancy_t mac_rlc_get_buffer_occupancy_ind(
   /* Assumptions : for UE only */
   /* At each TTI, Buffer Occupancy is first computed in mac_rlc_status_ind called by MAC ue_scheduler() function */
   /* Then this function is called during MAC multiplexing ue_get_sdu(), and it may be call several times for the same bearer if it is in AM mode and there are several PDU types to transmit */
-  //AssertFatal(enb_flagP == FALSE,"RLC Tx mac_rlc_get_buffer_occupancy_ind function is not implemented for eNB LcId=%d\n", channel_idP);
-  if(enb_flagP != FALSE) {
+  //AssertFatal(enb_flagP == false,"RLC Tx mac_rlc_get_buffer_occupancy_ind function is not implemented for eNB LcId=%d\n", channel_idP);
+  if(enb_flagP != false) {
     LOG_E(RLC, "Tx mac_rlc_get_buffer_occupancy_ind function is not implemented for eNB LcId=%u\n", channel_idP);
     return 0;
   }
diff --git a/openair2/LAYER2/RLC/rlc_rrc.c b/openair2/LAYER2/RLC/rlc_rrc.c
index 4313f379fe0..ed9af5efb25 100644
--- a/openair2/LAYER2/RLC/rlc_rrc.c
+++ b/openair2/LAYER2/RLC/rlc_rrc.c
@@ -480,7 +480,7 @@ rlc_op_status_t rrc_rlc_remove_rlc   (
   /* for no gcc warnings */
   (void)lcid;
 
-  if (MBMS_flagP == TRUE) {
+  if (MBMS_flagP == true) {
     if (ctxt_pP->enb_flag) {
       lcid = rlc_mbms_enb_get_lcid_by_rb_id(ctxt_pP->module_id,rb_idP);
       mbms_id_p = &rlc_mbms_lcid2service_session_id_eNB[ctxt_pP->module_id][lcid];
@@ -581,7 +581,7 @@ rlc_union_t *rrc_rlc_add_rlc   (
   rlc_mbms_id_t         *mbms_id_p  = NULL;
   logical_chan_id_t      lcid            = 0;
 
-  if (MBMS_flagP == FALSE) {
+  if (MBMS_flagP == false) {
     //AssertFatal (rb_idP < NB_RB_MAX, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MAX);
     //AssertFatal (chan_idP < RLC_MAX_LC, "LC id is too high (%u/%d)!\n", chan_idP, RLC_MAX_LC);
     if(rb_idP >= NB_RB_MAX) {
@@ -595,7 +595,7 @@ rlc_union_t *rrc_rlc_add_rlc   (
     }
   }
 
-  if (MBMS_flagP == TRUE) {
+  if (MBMS_flagP == true) {
     if (ctxt_pP->enb_flag) {
       lcid = rlc_mbms_enb_get_lcid_by_rb_id(ctxt_pP->module_id,rb_idP);
       mbms_id_p = &rlc_mbms_lcid2service_session_id_eNB[ctxt_pP->module_id][lcid];
@@ -640,11 +640,11 @@ rlc_union_t *rrc_rlc_add_rlc   (
   } else if (h_rc == HASH_TABLE_KEY_NOT_EXISTS) {
     rlc_union_p = calloc(1, sizeof(rlc_union_t));
     h_rc = hashtable_insert(rlc_coll_p, key, rlc_union_p);
-    if(MBMS_flagP != TRUE)
+    if(MBMS_flagP != true)
     	h_lcid_rc = hashtable_insert(rlc_coll_p, key_lcid, rlc_union_p);
 
     if ((h_rc == HASH_TABLE_OK) && (h_lcid_rc == HASH_TABLE_OK)) {
-      if (MBMS_flagP == TRUE) {
+      if (MBMS_flagP == true) {
         LOG_I(RLC, PROTOCOL_CTXT_FMT" RLC service id %u session id %u rrc_rlc_add_rlc\n",
               PROTOCOL_CTXT_ARGS(ctxt_pP),
               mbms_id_p->service_id,
diff --git a/openair2/LAYER2/nr_pdcp/nr_pdcp_entity.c b/openair2/LAYER2/nr_pdcp/nr_pdcp_entity.c
index 7e1ddb62bd8..480b651593f 100644
--- a/openair2/LAYER2/nr_pdcp/nr_pdcp_entity.c
+++ b/openair2/LAYER2/nr_pdcp/nr_pdcp_entity.c
@@ -27,6 +27,7 @@
 
 #include "nr_pdcp_security_nea2.h"
 #include "nr_pdcp_integrity_nia2.h"
+#include "nr_pdcp_integrity_nia1.h"
 #include "nr_pdcp_sdu.h"
 
 #include "LOG/log.h"
@@ -240,16 +241,21 @@ static void nr_pdcp_entity_set_security(nr_pdcp_entity_t *entity,
   }
 
   if (integrity_algorithm != 0 && integrity_algorithm != -1) {
-    if (integrity_algorithm != 2) {
-      LOG_E(PDCP, "FATAL: only nia2 supported for the moment\n");
-      exit(1);
-    }
     entity->has_integrity = 1;
     if (entity->free_integrity != NULL)
       entity->free_integrity(entity->integrity_context);
-    entity->integrity_context = nr_pdcp_integrity_nia2_init(entity->integrity_key);
-    entity->integrity = nr_pdcp_integrity_nia2_integrity;
-    entity->free_integrity = nr_pdcp_integrity_nia2_free_integrity;
+    if (integrity_algorithm == 2) {
+      entity->integrity_context = nr_pdcp_integrity_nia2_init(entity->integrity_key);
+      entity->integrity = nr_pdcp_integrity_nia2_integrity;
+      entity->free_integrity = nr_pdcp_integrity_nia2_free_integrity;
+    } else if (integrity_algorithm == 1) {
+      entity->integrity_context = nr_pdcp_integrity_nia1_init(entity->integrity_key);
+      entity->integrity = nr_pdcp_integrity_nia1_integrity;
+      entity->free_integrity = nr_pdcp_integrity_nia1_free_integrity;
+    } else {
+      LOG_E(PDCP, "FATAL: only nia1 and nia2 supported for the moment\n");
+      exit(1);
+    }
   }
 
   if (ciphering_algorithm == 0) {
diff --git a/openair2/LAYER2/nr_pdcp/nr_pdcp_integrity_nia1.c b/openair2/LAYER2/nr_pdcp/nr_pdcp_integrity_nia1.c
new file mode 100644
index 00000000000..08ec9599370
--- /dev/null
+++ b/openair2/LAYER2/nr_pdcp/nr_pdcp_integrity_nia1.c
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+#include "nr_pdcp_integrity_nia1.h"
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdint.h>
+#include <openssl/cmac.h>
+
+#include "UTIL/OSA/osa_defs.h"
+
+int stream_compute_integrity_eia1(stream_cipher_t *stream_cipher, uint8_t out[4]);
+
+void *nr_pdcp_integrity_nia1_init(unsigned char *integrity_key)
+{
+  stream_cipher_t *ret;
+
+  ret = calloc(1, sizeof(*ret)); if (ret == NULL) abort();
+  ret->key = malloc(16); if (ret->key == NULL) abort();
+  memcpy(ret->key, integrity_key, 16);
+  ret->key_length = 16;   /* unused */
+
+  return ret;
+}
+
+void nr_pdcp_integrity_nia1_integrity(void *integrity_context,
+                            unsigned char *out,
+                            unsigned char *buffer, int length,
+                            int bearer, int count, int direction)
+{
+  stream_cipher_t *ctx = integrity_context;
+
+  ctx->message = buffer;
+  ctx->count = count;
+  ctx->bearer = bearer-1;
+  ctx->direction = direction;
+  ctx->blength = length * 8;
+
+  stream_compute_integrity_eia1(ctx, out);
+}
+
+void nr_pdcp_integrity_nia1_free_integrity(void *integrity_context)
+{
+  stream_cipher_t *ctx = integrity_context;
+  free(ctx->key);
+  free(ctx);
+}
diff --git a/openair2/LAYER2/nr_pdcp/nr_pdcp_integrity_nia1.h b/openair2/LAYER2/nr_pdcp/nr_pdcp_integrity_nia1.h
new file mode 100644
index 00000000000..5c44bad4a7d
--- /dev/null
+++ b/openair2/LAYER2/nr_pdcp/nr_pdcp_integrity_nia1.h
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+#ifndef _NR_PDCP_INTEGRITY_NIA1_H_
+#define _NR_PDCP_INTEGRITY_NIA1_H_
+
+void *nr_pdcp_integrity_nia1_init(unsigned char *integrity_key);
+
+void nr_pdcp_integrity_nia1_integrity(void *integrity_context,
+                            unsigned char *out,
+                            unsigned char *buffer, int length,
+                            int bearer, int count, int direction);
+
+void nr_pdcp_integrity_nia1_free_integrity(void *integrity_context);
+
+#endif /* _NR_PDCP_INTEGRITY_NIA1_H_ */
diff --git a/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c b/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
index b5cea6bdb99..9598bf1ad6a 100644
--- a/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
+++ b/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
@@ -274,9 +274,8 @@ static void do_pdcp_data_ind(
   if (rb != NULL) {
     rb->recv_pdu(rb, (char *)sdu_buffer->data, sdu_buffer_size);
   } else {
-    LOG_E(PDCP, "%s:%d:%s: fatal: no RB found (rb_id %ld, srb_flag %d)\n",
+    LOG_E(PDCP, "%s:%d:%s: no RB found (rb_id %ld, srb_flag %d)\n",
           __FILE__, __LINE__, __FUNCTION__, rb_id, srb_flagP);
-    exit(1);
   }
 
   nr_pdcp_manager_unlock(nr_pdcp_ue_manager);
@@ -360,15 +359,14 @@ static void enqueue_pdcp_data_ind(
   if (pthread_mutex_unlock(&pq.m) != 0) abort();
 }
 
-boolean_t pdcp_data_ind(
-  const protocol_ctxt_t *const  ctxt_pP,
-  const srb_flag_t srb_flagP,
-  const MBMS_flag_t MBMS_flagP,
-  const rb_id_t rb_id,
-  const sdu_size_t sdu_buffer_size,
-  mem_block_t *const sdu_buffer,
-  const uint32_t *const srcID,
-  const uint32_t *const dstID)
+bool pdcp_data_ind(const protocol_ctxt_t *const  ctxt_pP,
+                   const srb_flag_t srb_flagP,
+                   const MBMS_flag_t MBMS_flagP,
+                   const rb_id_t rb_id,
+                   const sdu_size_t sdu_buffer_size,
+                   mem_block_t *const sdu_buffer,
+                   const uint32_t *const srcID,
+                   const uint32_t *const dstID)
 {
   enqueue_pdcp_data_ind(ctxt_pP,
                         srb_flagP,
@@ -439,7 +437,7 @@ static void *enb_tun_read_thread(void *_)
     ctxt.rnti = rnti;
 
     uint8_t qfi = 7;
-    boolean_t rqi = 0;
+    bool rqi = 0;
     int pdusession_id = 10;
 
     sdap_data_req(&ctxt, SRB_FLAG_NO, rb_id, RLC_MUI_UNDEFINED,
@@ -485,7 +483,7 @@ static void *ue_tun_read_thread(void *_)
 
     ctxt.rnti = rnti;
 
-    boolean_t dc = SDAP_HDR_UL_DATA_PDU;
+    bool dc = SDAP_HDR_UL_DATA_PDU;
     uint8_t qfi = 7;
     int pdusession_id = 10;
 
@@ -859,7 +857,7 @@ void pdcp_run(const protocol_ctxt_t *const  ctxt_pP)
                              RRC_DCCH_DATA_REQ(msg_p).mode,
                              NULL, NULL);
 
-      if (result != TRUE)
+      if (result != true)
         LOG_E(PDCP, "PDCP data request failed!\n");
       result = itti_free(ITTI_MSG_ORIGIN_ID(msg_p), RRC_DCCH_DATA_REQ(msg_p).sdu_p);
       AssertFatal(result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result);
@@ -951,7 +949,7 @@ static void add_drb_am(int is_gnb, int rnti, struct NR_DRB_ToAddMod *s,
   int has_sdap = 0;
   int has_sdapULheader=0;
   int has_sdapDLheader=0;
-  boolean_t is_sdap_DefaultDRB = false;
+  bool is_sdap_DefaultDRB = false;
   NR_QFI_t *mappedQFIs2Add = NULL;
   uint8_t mappedQFIs2AddCount=0;
   if (s->cnAssociation->present == NR_DRB_ToAddMod__cnAssociation_PR_eps_BearerIdentity)
@@ -977,11 +975,6 @@ static void add_drb_am(int is_gnb, int rnti, struct NR_DRB_ToAddMod *s,
     exit(1);
   }
 
-  if (drb_id != 1) {
-    LOG_E(PDCP, "%s:%d:%s: fatal, bad drb id %d\n",
-          __FILE__, __LINE__, __FUNCTION__, drb_id);
-    exit(1);
-  }
 
   nr_pdcp_manager_lock(nr_pdcp_ue_manager);
   ue = nr_pdcp_manager_get_ue(nr_pdcp_ue_manager, rnti);
@@ -1039,20 +1032,18 @@ static void add_drb(int is_gnb, int rnti, struct NR_DRB_ToAddMod *s,
   LOG_I(PDCP, "%s:%s:%d: added DRB for UE RNTI %x\n", __FILE__, __FUNCTION__, __LINE__, rnti);
 }
 
-boolean_t nr_rrc_pdcp_config_asn1_req(
-  const protocol_ctxt_t *const  ctxt_pP,
-  NR_SRB_ToAddModList_t  *const srb2add_list,
-  NR_DRB_ToAddModList_t  *const drb2add_list,
-  NR_DRB_ToReleaseList_t *const drb2release_list,
-  const uint8_t                   security_modeP,
-  uint8_t                  *const kRRCenc,
-  uint8_t                  *const kRRCint,
-  uint8_t                  *const kUPenc,
-  uint8_t                  *const kUPint
-  ,LTE_PMCH_InfoList_r9_t  *pmch_InfoList_r9
-  ,rb_id_t                 *const defaultDRB,
-  struct NR_CellGroupConfig__rlc_BearerToAddModList *rlc_bearer2add_list)
-  //struct NR_RLC_Config     *rlc_Config)
+bool nr_rrc_pdcp_config_asn1_req(const protocol_ctxt_t *const  ctxt_pP,
+                                 NR_SRB_ToAddModList_t  *const srb2add_list,
+                                 NR_DRB_ToAddModList_t  *const drb2add_list,
+                                 NR_DRB_ToReleaseList_t *const drb2release_list,
+                                 const uint8_t                   security_modeP,
+                                 uint8_t                  *const kRRCenc,
+                                 uint8_t                  *const kRRCint,
+                                 uint8_t                  *const kUPenc,
+                                 uint8_t                  *const kUPint,
+                                 LTE_PMCH_InfoList_r9_t  *pmch_InfoList_r9,
+                                 rb_id_t                 *const defaultDRB,
+                                 struct NR_CellGroupConfig__rlc_BearerToAddModList *rlc_bearer2add_list)
 {
   int rnti = ctxt_pP->rnti;
   int i;
@@ -1110,17 +1101,16 @@ boolean_t nr_rrc_pdcp_config_asn1_req(
 }
 
 /* Dummy function due to dependency from LTE libraries */
-boolean_t rrc_pdcp_config_asn1_req(
-  const protocol_ctxt_t *const  ctxt_pP,
-  LTE_SRB_ToAddModList_t  *const srb2add_list,
-  LTE_DRB_ToAddModList_t  *const drb2add_list,
-  LTE_DRB_ToReleaseList_t *const drb2release_list,
-  const uint8_t                   security_modeP,
-  uint8_t                  *const kRRCenc,
-  uint8_t                  *const kRRCint,
-  uint8_t                  *const kUPenc
-  ,LTE_PMCH_InfoList_r9_t  *pmch_InfoList_r9
-  ,rb_id_t                 *const defaultDRB)
+bool rrc_pdcp_config_asn1_req(const protocol_ctxt_t *const  ctxt_pP,
+                              LTE_SRB_ToAddModList_t  *const srb2add_list,
+                              LTE_DRB_ToAddModList_t  *const drb2add_list,
+                              LTE_DRB_ToReleaseList_t *const drb2release_list,
+                              const uint8_t                   security_modeP,
+                              uint8_t                  *const kRRCenc,
+                              uint8_t                  *const kRRCint,
+                              uint8_t                  *const kUPenc,
+                              LTE_PMCH_InfoList_r9_t  *pmch_InfoList_r9,
+                              rb_id_t                 *const defaultDRB)
 {
   return 0;
 }
@@ -1225,8 +1215,7 @@ uint64_t get_pdcp_optmask(void)
   return pdcp_optmask;
 }
 
-boolean_t pdcp_remove_UE(
-  const protocol_ctxt_t *const  ctxt_pP)
+bool pdcp_remove_UE(const protocol_ctxt_t *const ctxt_pP)
 {
   int rnti = ctxt_pP->rnti;
 
@@ -1281,13 +1270,12 @@ void pdcp_config_set_security(
   nr_pdcp_manager_unlock(nr_pdcp_ue_manager);
 }
 
-static boolean_t pdcp_data_req_srb(
-  protocol_ctxt_t  *ctxt_pP,
-  const rb_id_t rb_id,
-  const mui_t muiP,
-  const confirm_t confirmP,
-  const sdu_size_t sdu_buffer_size,
-  unsigned char *const sdu_buffer)
+static bool pdcp_data_req_srb(protocol_ctxt_t  *ctxt_pP,
+                              const rb_id_t rb_id,
+                              const mui_t muiP,
+                              const confirm_t confirmP,
+                              const sdu_size_t sdu_buffer_size,
+                              unsigned char *const sdu_buffer)
 {
   LOG_D(PDCP, "%s() called, size %d\n", __func__, sdu_buffer_size);
   nr_pdcp_ue_t *ue;
@@ -1328,13 +1316,12 @@ static boolean_t pdcp_data_req_srb(
 }
 
 
-static boolean_t pdcp_data_req_drb(
-  protocol_ctxt_t  *ctxt_pP,
-  const rb_id_t rb_id,
-  const mui_t muiP,
-  const confirm_t confirmP,
-  const sdu_size_t sdu_buffer_size,
-  unsigned char *const sdu_buffer)
+static bool pdcp_data_req_drb(protocol_ctxt_t  *ctxt_pP,
+                              const rb_id_t rb_id,
+                              const mui_t muiP,
+                              const confirm_t confirmP,
+                              const sdu_size_t sdu_buffer_size,
+                              unsigned char *const sdu_buffer)
 {
   LOG_D(PDCP, "%s() called, size %d\n", __func__, sdu_buffer_size);
   nr_pdcp_ue_t *ue;
@@ -1374,19 +1361,16 @@ static boolean_t pdcp_data_req_drb(
   return 1;
 }
 
-boolean_t cu_f1u_data_req(
-  protocol_ctxt_t  *ctxt_pP,
-  const srb_flag_t srb_flagP,
-  const rb_id_t rb_id,
-  const mui_t muiP,
-  const confirm_t confirmP,
-  const sdu_size_t sdu_buffer_size,
-  unsigned char *const sdu_buffer,
-  const pdcp_transmission_mode_t mode
-  ,const uint32_t *const sourceL2Id
-  ,const uint32_t *const destinationL2Id
-  ) {
-
+bool cu_f1u_data_req(protocol_ctxt_t  *ctxt_pP,
+                     const srb_flag_t srb_flagP,
+                     const rb_id_t rb_id,
+                     const mui_t muiP,
+                     const confirm_t confirmP,
+                     const sdu_size_t sdu_buffer_size,
+                     unsigned char *const sdu_buffer,
+                     const pdcp_transmission_mode_t mode,
+                     const uint32_t *const sourceL2Id,
+                     const uint32_t *const destinationL2Id) {
   //Force instance id to 0, OAI incoherent instance management
   ctxt_pP->instance=0;
   mem_block_t *memblock = get_free_mem_block(sdu_buffer_size, __func__);
@@ -1403,18 +1387,16 @@ boolean_t cu_f1u_data_req(
   return ret;
 }
 
-boolean_t pdcp_data_req(
-  protocol_ctxt_t  *ctxt_pP,
-  const srb_flag_t srb_flagP,
-  const rb_id_t rb_id,
-  const mui_t muiP,
-  const confirm_t confirmP,
-  const sdu_size_t sdu_buffer_size,
-  unsigned char *const sdu_buffer,
-  const pdcp_transmission_mode_t mode
-  ,const uint32_t *const sourceL2Id
-  ,const uint32_t *const destinationL2Id
-  )
+bool pdcp_data_req(protocol_ctxt_t  *ctxt_pP,
+                   const srb_flag_t srb_flagP,
+                   const rb_id_t rb_id,
+                   const mui_t muiP,
+                   const confirm_t confirmP,
+                   const sdu_size_t sdu_buffer_size,
+                   unsigned char *const sdu_buffer,
+                   const pdcp_transmission_mode_t mode,
+                   const uint32_t *const sourceL2Id,
+                   const uint32_t *const destinationL2Id)
 {
   if (srb_flagP) {
    return pdcp_data_req_srb(ctxt_pP, rb_id, muiP, confirmP, sdu_buffer_size, sdu_buffer);
diff --git a/openair2/LAYER2/nr_rlc/nr_rlc_entity.c b/openair2/LAYER2/nr_rlc/nr_rlc_entity.c
index fefe2fc77d4..1883bbdd6cc 100644
--- a/openair2/LAYER2/nr_rlc/nr_rlc_entity.c
+++ b/openair2/LAYER2/nr_rlc/nr_rlc_entity.c
@@ -77,14 +77,15 @@ nr_rlc_entity_t *new_nr_rlc_entity_am(
   ret->sn_modulus = 1 << ret->sn_field_length;
   ret->window_size = ret->sn_modulus / 2;
 
-  ret->common.recv_pdu        = nr_rlc_entity_am_recv_pdu;
-  ret->common.buffer_status   = nr_rlc_entity_am_buffer_status;
-  ret->common.generate_pdu    = nr_rlc_entity_am_generate_pdu;
-  ret->common.recv_sdu        = nr_rlc_entity_am_recv_sdu;
-  ret->common.set_time        = nr_rlc_entity_am_set_time;
-  ret->common.discard_sdu     = nr_rlc_entity_am_discard_sdu;
-  ret->common.reestablishment = nr_rlc_entity_am_reestablishment;
-  ret->common.delete          = nr_rlc_entity_am_delete;
+  ret->common.recv_pdu           = nr_rlc_entity_am_recv_pdu;
+  ret->common.buffer_status      = nr_rlc_entity_am_buffer_status;
+  ret->common.generate_pdu       = nr_rlc_entity_am_generate_pdu;
+  ret->common.recv_sdu           = nr_rlc_entity_am_recv_sdu;
+  ret->common.set_time           = nr_rlc_entity_am_set_time;
+  ret->common.discard_sdu        = nr_rlc_entity_am_discard_sdu;
+  ret->common.reestablishment    = nr_rlc_entity_am_reestablishment;
+  ret->common.delete             = nr_rlc_entity_am_delete;
+  ret->common.available_tx_space = nr_rlc_entity_am_available_tx_space;
 
   ret->common.deliver_sdu                  = deliver_sdu;
   ret->common.deliver_sdu_data             = deliver_sdu_data;
@@ -127,14 +128,15 @@ nr_rlc_entity_t *new_nr_rlc_entity_um(
   ret->sn_modulus = 1 << ret->sn_field_length;
   ret->window_size = ret->sn_modulus / 2;
 
-  ret->common.recv_pdu        = nr_rlc_entity_um_recv_pdu;
-  ret->common.buffer_status   = nr_rlc_entity_um_buffer_status;
-  ret->common.generate_pdu    = nr_rlc_entity_um_generate_pdu;
-  ret->common.recv_sdu        = nr_rlc_entity_um_recv_sdu;
-  ret->common.set_time        = nr_rlc_entity_um_set_time;
-  ret->common.discard_sdu     = nr_rlc_entity_um_discard_sdu;
-  ret->common.reestablishment = nr_rlc_entity_um_reestablishment;
-  ret->common.delete          = nr_rlc_entity_um_delete;
+  ret->common.recv_pdu           = nr_rlc_entity_um_recv_pdu;
+  ret->common.buffer_status      = nr_rlc_entity_um_buffer_status;
+  ret->common.generate_pdu       = nr_rlc_entity_um_generate_pdu;
+  ret->common.recv_sdu           = nr_rlc_entity_um_recv_sdu;
+  ret->common.set_time           = nr_rlc_entity_um_set_time;
+  ret->common.discard_sdu        = nr_rlc_entity_um_discard_sdu;
+  ret->common.reestablishment    = nr_rlc_entity_um_reestablishment;
+  ret->common.delete             = nr_rlc_entity_um_delete;
+  ret->common.available_tx_space = nr_rlc_entity_um_available_tx_space;
 
   ret->common.deliver_sdu                  = deliver_sdu;
   ret->common.deliver_sdu_data             = deliver_sdu_data;
@@ -158,14 +160,15 @@ nr_rlc_entity_t *new_nr_rlc_entity_tm(
 
   ret->tx_maxsize = tx_maxsize;
 
-  ret->common.recv_pdu        = nr_rlc_entity_tm_recv_pdu;
-  ret->common.buffer_status   = nr_rlc_entity_tm_buffer_status;
-  ret->common.generate_pdu    = nr_rlc_entity_tm_generate_pdu;
-  ret->common.recv_sdu        = nr_rlc_entity_tm_recv_sdu;
-  ret->common.set_time        = nr_rlc_entity_tm_set_time;
-  ret->common.discard_sdu     = nr_rlc_entity_tm_discard_sdu;
-  ret->common.reestablishment = nr_rlc_entity_tm_reestablishment;
-  ret->common.delete          = nr_rlc_entity_tm_delete;
+  ret->common.recv_pdu           = nr_rlc_entity_tm_recv_pdu;
+  ret->common.buffer_status      = nr_rlc_entity_tm_buffer_status;
+  ret->common.generate_pdu       = nr_rlc_entity_tm_generate_pdu;
+  ret->common.recv_sdu           = nr_rlc_entity_tm_recv_sdu;
+  ret->common.set_time           = nr_rlc_entity_tm_set_time;
+  ret->common.discard_sdu        = nr_rlc_entity_tm_discard_sdu;
+  ret->common.reestablishment    = nr_rlc_entity_tm_reestablishment;
+  ret->common.delete             = nr_rlc_entity_tm_delete;
+  ret->common.available_tx_space = nr_rlc_entity_tm_available_tx_space;
 
   ret->common.deliver_sdu                  = deliver_sdu;
   ret->common.deliver_sdu_data             = deliver_sdu_data;
diff --git a/openair2/LAYER2/nr_rlc/nr_rlc_entity.h b/openair2/LAYER2/nr_rlc/nr_rlc_entity.h
index b9b638fe078..5cd3bee6508 100644
--- a/openair2/LAYER2/nr_rlc/nr_rlc_entity.h
+++ b/openair2/LAYER2/nr_rlc/nr_rlc_entity.h
@@ -50,6 +50,8 @@ typedef struct nr_rlc_entity_t {
 
   void (*delete)(struct nr_rlc_entity_t *entity);
 
+  int (*available_tx_space)(struct nr_rlc_entity_t *entity);
+
   /* callbacks provided to the RLC module */
   void (*deliver_sdu)(void *deliver_sdu_data, struct nr_rlc_entity_t *entity,
                       char *buf, int size);
diff --git a/openair2/LAYER2/nr_rlc/nr_rlc_entity_am.c b/openair2/LAYER2/nr_rlc/nr_rlc_entity_am.c
index 2382db267fe..91e2bed11ae 100644
--- a/openair2/LAYER2/nr_rlc/nr_rlc_entity_am.c
+++ b/openair2/LAYER2/nr_rlc/nr_rlc_entity_am.c
@@ -1910,3 +1910,9 @@ void nr_rlc_entity_am_delete(nr_rlc_entity_t *_entity)
   clear_entity(entity);
   free(entity);
 }
+
+int nr_rlc_entity_am_available_tx_space(nr_rlc_entity_t *_entity)
+{
+  nr_rlc_entity_am_t *entity = (nr_rlc_entity_am_t *)_entity;
+  return entity->tx_maxsize - entity->tx_size;
+}
diff --git a/openair2/LAYER2/nr_rlc/nr_rlc_entity_am.h b/openair2/LAYER2/nr_rlc/nr_rlc_entity_am.h
index 57ae1a34856..4c626c4826b 100644
--- a/openair2/LAYER2/nr_rlc/nr_rlc_entity_am.h
+++ b/openair2/LAYER2/nr_rlc/nr_rlc_entity_am.h
@@ -99,5 +99,6 @@ void nr_rlc_entity_am_set_time(nr_rlc_entity_t *entity, uint64_t now);
 void nr_rlc_entity_am_discard_sdu(nr_rlc_entity_t *_entity, int sdu_id);
 void nr_rlc_entity_am_reestablishment(nr_rlc_entity_t *_entity);
 void nr_rlc_entity_am_delete(nr_rlc_entity_t *entity);
+int nr_rlc_entity_am_available_tx_space(nr_rlc_entity_t *entity);
 
 #endif /* _NR_RLC_ENTITY_AM_H_ */
diff --git a/openair2/LAYER2/nr_rlc/nr_rlc_entity_tm.c b/openair2/LAYER2/nr_rlc/nr_rlc_entity_tm.c
index 75408276d18..f85edbba0ff 100644
--- a/openair2/LAYER2/nr_rlc/nr_rlc_entity_tm.c
+++ b/openair2/LAYER2/nr_rlc/nr_rlc_entity_tm.c
@@ -174,3 +174,9 @@ void nr_rlc_entity_tm_delete(nr_rlc_entity_t *_entity)
   clear_entity(entity);
   free(entity);
 }
+
+int nr_rlc_entity_tm_available_tx_space(nr_rlc_entity_t *_entity)
+{
+  nr_rlc_entity_tm_t *entity = (nr_rlc_entity_tm_t *)_entity;
+  return entity->tx_maxsize - entity->tx_size;
+}
diff --git a/openair2/LAYER2/nr_rlc/nr_rlc_entity_tm.h b/openair2/LAYER2/nr_rlc/nr_rlc_entity_tm.h
index 7c8c7e40a01..79187037999 100644
--- a/openair2/LAYER2/nr_rlc/nr_rlc_entity_tm.h
+++ b/openair2/LAYER2/nr_rlc/nr_rlc_entity_tm.h
@@ -51,5 +51,6 @@ void nr_rlc_entity_tm_set_time(nr_rlc_entity_t *entity, uint64_t now);
 void nr_rlc_entity_tm_discard_sdu(nr_rlc_entity_t *_entity, int sdu_id);
 void nr_rlc_entity_tm_reestablishment(nr_rlc_entity_t *_entity);
 void nr_rlc_entity_tm_delete(nr_rlc_entity_t *entity);
+int nr_rlc_entity_tm_available_tx_space(nr_rlc_entity_t *entity);
 
 #endif /* _NR_RLC_ENTITY_TM_H_ */
diff --git a/openair2/LAYER2/nr_rlc/nr_rlc_entity_um.c b/openair2/LAYER2/nr_rlc/nr_rlc_entity_um.c
index b34a7dc8941..5f2fd592a06 100644
--- a/openair2/LAYER2/nr_rlc/nr_rlc_entity_um.c
+++ b/openair2/LAYER2/nr_rlc/nr_rlc_entity_um.c
@@ -695,3 +695,9 @@ void nr_rlc_entity_um_delete(nr_rlc_entity_t *_entity)
   clear_entity(entity);
   free(entity);
 }
+
+int nr_rlc_entity_um_available_tx_space(nr_rlc_entity_t *_entity)
+{
+  nr_rlc_entity_um_t *entity = (nr_rlc_entity_um_t *)_entity;
+  return entity->tx_maxsize - entity->tx_size;
+}
diff --git a/openair2/LAYER2/nr_rlc/nr_rlc_entity_um.h b/openair2/LAYER2/nr_rlc/nr_rlc_entity_um.h
index 21063a1ea18..c40e72ada1d 100644
--- a/openair2/LAYER2/nr_rlc/nr_rlc_entity_um.h
+++ b/openair2/LAYER2/nr_rlc/nr_rlc_entity_um.h
@@ -75,5 +75,6 @@ void nr_rlc_entity_um_set_time(nr_rlc_entity_t *entity, uint64_t now);
 void nr_rlc_entity_um_discard_sdu(nr_rlc_entity_t *_entity, int sdu_id);
 void nr_rlc_entity_um_reestablishment(nr_rlc_entity_t *_entity);
 void nr_rlc_entity_um_delete(nr_rlc_entity_t *entity);
+int nr_rlc_entity_um_available_tx_space(nr_rlc_entity_t *entity);
 
 #endif /* _NR_RLC_ENTITY_UM_H_ */
diff --git a/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c b/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
index 0a8e03fc1e8..4bd4ea75fd7 100644
--- a/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
+++ b/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
@@ -101,6 +101,7 @@ void nr_drb_config(struct NR_RLC_Config *rlc_Config, NR_RLC_Config_PR rlc_config
   switch (rlc_config_pr){
     case NR_RLC_Config_PR_um_Bi_Directional:
       // RLC UM Bi-directional Bearer configuration
+      LOG_I(RLC, "RLC UM Bi-directional Bearer configuration selected \n");
       rlc_Config->choice.um_Bi_Directional                            = calloc(1, sizeof(*rlc_Config->choice.um_Bi_Directional));
       rlc_Config->choice.um_Bi_Directional->ul_UM_RLC.sn_FieldLength  = calloc(1, sizeof(*rlc_Config->choice.um_Bi_Directional->ul_UM_RLC.sn_FieldLength));
       *rlc_Config->choice.um_Bi_Directional->ul_UM_RLC.sn_FieldLength = NR_SN_FieldLengthUM_size12;
@@ -123,7 +124,7 @@ void nr_drb_config(struct NR_RLC_Config *rlc_Config, NR_RLC_Config_PR rlc_config
       rlc_Config->choice.am->dl_AM_RLC.t_StatusProhibit = NR_T_StatusProhibit_ms15;
       break;
     default:
-      LOG_E (RLC, "Error in %s: RLC config type %d is not handled\n", __FUNCTION__, rlc_config_pr);
+      AssertFatal(0, "RLC config type %d not handled\n", rlc_config_pr);
       break;
     }
 
@@ -213,10 +214,12 @@ tbs_size_t mac_rlc_data_req(
   }
 
   if (rb != NULL) {
+    LOG_D(RLC, "MAC PDU to get created for channel_idP:%d \n", channel_idP);
     rb->set_time(rb, nr_rlc_current_time);
     maxsize = tb_sizeP;
     ret = rb->generate_pdu(rb, buffer_pP, maxsize);
   } else {
+    LOG_D(RLC, "MAC PDU failed to get created for channel_idP:%d \n", channel_idP);
     ret = 0;
   }
 
@@ -394,6 +397,35 @@ rlc_op_status_t rlc_data_req     (const protocol_ctxt_t *const ctxt_pP,
   return RLC_OP_STATUS_OK;
 }
 
+int nr_rlc_get_available_tx_space(
+  const rnti_t            rntiP,
+  const logical_chan_id_t channel_idP)
+{
+  nr_rlc_ue_t *ue;
+  nr_rlc_entity_t *rb;
+  int ret;
+
+  nr_rlc_manager_lock(nr_rlc_ue_manager);
+  ue = nr_rlc_manager_get_ue(nr_rlc_ue_manager, rntiP);
+
+  switch (channel_idP) {
+  case 1 ... 3: rb = ue->srb[channel_idP - 1]; break;
+  case 4 ... 8: rb = ue->drb[channel_idP - 4]; break;
+  default:      rb = NULL;                     break;
+  }
+
+  if (rb != NULL) {
+    ret = rb->available_tx_space(rb);
+  } else {
+    LOG_E(RLC, "[%s] Radio Bearer (channel ID %d) is NULL for UE with rntiP %x\n", __FUNCTION__, channel_idP, rntiP);
+    ret = -1;
+  }
+
+  nr_rlc_manager_unlock(nr_rlc_ue_manager);
+
+  return ret;
+}
+
 int rlc_module_init(int enb_flag)
 {
   static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
diff --git a/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.h b/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.h
index 6b3c2281637..92fbba9bec8 100644
--- a/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.h
+++ b/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.h
@@ -46,4 +46,8 @@ void nr_rlc_bearer_init(NR_RLC_BearerConfig_t *RLC_BearerConfig, NR_RLC_BearerCo
 
 void nr_drb_config(struct NR_RLC_Config *rlc_Config, NR_RLC_Config_PR rlc_config_pr);
 
-void nr_rlc_bearer_init_ul_spec(struct NR_LogicalChannelConfig *mac_LogicalChannelConfig);
\ No newline at end of file
+void nr_rlc_bearer_init_ul_spec(struct NR_LogicalChannelConfig *mac_LogicalChannelConfig);
+
+int nr_rlc_get_available_tx_space(
+  const rnti_t            rntiP,
+  const logical_chan_id_t channel_idP);
diff --git a/openair2/LAYER2/nr_rlc/tests/test14.txt.gz b/openair2/LAYER2/nr_rlc/tests/test14.txt.gz
index 45e54651eb317c3b7695cfcab7428fe43172227b..53cea67c98d98e91baa4bfcd40518b523ef5a21f 100644
GIT binary patch
delta 703
zcmV;w0zmzr29pMVABzYGiZ!%i0t0kqb96B@E_8Tw0Ns{5ZyZMugmeFjFSHY3X1eFa
zP_W?4iKxghh<OSG2*bFC{P^|SJA#JqaN>z#awlMcouFr?x~jT%Z{NMYy<xp6tIZF$
z`}K!+H`p6iqkXzt_bor(cg#;q&HcXvZ*KSvV=xxuFoIEkjK>5_#3W3{6imf5%(8J{
zCe~mr)?o#!SdR_Zh)vjxE!c`}*p408i8DBhb2z~%&f@|u;u0?73a;WBuHy!7A_lR)
zAL9Qw{uryW8Fzp7?Gt#}fp2Dy-&}qd?nniDsDd~|5Jfx^kccECBL%5QLpm~$i5k?R
z4i!{Uj|Mb<q6y7tK`YwOjt+D#=i@EjEsWt6@9_a2@d=;t1z+(E-|-8WNiYOUa0EHR
ze@+E^*<Jkd>)U-BeLUQM8Y|xa{NYJ~YY;$=4CD?C6qMizfe;CakO_rQ360PRgD{DP
zXo-#}L?wD+AVy*$W?~^$Vk36qAWo7YS&}0ONlBhS6iAVjNSRbfmDEU`G)R+d$d>HL
zLRPXrpnhqfZs#1UyCtDE+x0%FmiOJh3t{v3<H{_3{<l6l;DiO`Da3Zqlf40Ae_!iZ
zeVJqRykq4$XglrL%ZKh?tGNGq#rO5$*$d6H7w#<cn*ERQl1?HH|3e&3$7}j7{>wBU
zrIa3~R7<o>E3`^$v`!neNjG#$cXXjE-O~d-(i1(?3%$}Cy)UyspA5sW495_LGCU(N
zA|o*}qcAF?F*;)~Cetu2(=mmqbxh9;%*ag4eB8h}9rUu>cubA_rP#Q9>^rMGGlt<S
za>IP%7@oQMbOLxeI^oI(c~4>T-$>yXHeMwGrzhwNu!nOWPOAr+E%mz|4S$t2>uqae
ly`I~Lhku?Z82!zOdi%n9_riL4VZA<E{~3X?UT)D5000p?OuGO8

delta 716
zcmV;-0yF)S2A>9hABzYGOnK#D0t0kqb96B@E_8Tw0Ns{LYhy<ch4=Xt-!j<@-Cfl$
zFGGgxvKh}R1k=x8Fd^tM$;_{xD;Xz9Xe>M4NCCm^MOEKZ=bSpax9>mP-mu=3)#kg~
z{rThj8|)3M(LUX+`<CzTJLZR_=KjmTn;U+`7>va@j9?Uh<1qmfF$t3~1yeB%vosFO
z#2T!{I;>z7>#+eFu?d^81zWKV+pz;XaRz5`4ktLpd0fCnT*75s!Bt$tb=<&B#31&!
zL;SywKgOzT#@(NN`vhKg;G5awH<v$!J5s?Osvr&#L=le!Bq9mPNI@#nkd6#wq6W37
zLj_gTqXCV7XhJhu(26#+qXV7G{dkLa3uAc2dwjr0e8OjZ!B>34cl-io5)8o-96^ro
zpHsnJ_7p$=^5cGtJ|6BrjTIk$`uL>4H3%R_26Bf63QF*VK!}7y$b>?ughuFuL6}5C
zv_wY~q7pqZ5F;@WGqDgWu@O6Q5GToyEXk3Cq$E#33ZzI%q)aNLN@}D|8l*`!WJ`8r
zAuHJ*P`?aNw{wow-I7q7?RuY7%kyqOg|PYi@nn`c|2ZFBaKeJ}6k@yIlf40Af8Xj@
zeVt?Vykq4$XglrL%ZKjYs<?l-;`{pW><i7aFWgz?E&Y%2l1?HH{~}&Kl1|3!(zuh?
z@>f~2-nKT@>$!b+`23{)=<iO{yI0oBE9(CT--()!Qd198vn5)l6<Vb=TBi-#q#L@W
zJG#)7?&*OZ>4~1{g<k26-WT@hf0JPtmf;w}P=;p&Mr0&LW)wzcG)89(#$+0%WjdxX
zmFby*8JUThj|VuXgI@L+k13YF6=Ro=eP@+tVj;XB$IRJS2q$A<*SMogU%0kspq@@J
yFGn|A`Qq;>PyRnr{*A_~B;fSMT><uR?vLN<fo9=xP0X`v@)b>eEYZ;s0ssI@?OqfB

diff --git a/openair2/LAYER2/nr_rlc/tests/test15.txt.gz b/openair2/LAYER2/nr_rlc/tests/test15.txt.gz
index ddb895d56f0fe88f0ceffb9a100359413292f2b7..61fa01663479944ed13d1c30ee2c3adbe5a70cb1 100644
GIT binary patch
literal 547
zcmV+;0^I!{iwFpnHMC*^19W9`bTKt9ba-?C&6Q1WQ!x-l_xy^pgbnhH$6r|@Dt2tz
zt`MsHp8Zgz3ZbMaf?rRPCa8gss7RDbmgR-VI(K}peQ|bvF=KIC=eI8|HtToq-^`F1
z^FH2PE!vWo*A4e-wdwkMC%73Oa1JLp#d)0J0xsebF5?QW;s)G^TNQTPgg8VHMLc3i
zKq8Wmj1;6I12Q5F>BxjSR8U1dYG^<sn$V0Ew4wt#q7Cingm-xPcuauo3-F5fc*6&L
z#3y{l7ktGJ_z~am9Y0|X6HGCW85XdJB`jkFtJr{zSi?Ftt<EP1K?$B<gg}UdM973f
zsDyzq5*lFzGZ7t8h)VQF1?awjXv9E_#6--*LafArI1(GN6DN`*2}wzwWTZffq(sW3
zLaL;JG?E&rlP0nw3t7pYY~(<W<V4QoLayY2Jdzu^lP8L!2t_HLVwCW!fKUB%pV!-d
z^`$Mh^tPd2Rl1+!>5R0;rw92Yulec&zP0%t?>~Q9y*#lC_xS9zdfBS~3-gB4>h*~&
zyvG-hsP8+zd-acV{^i-`@YZjx@A{ncx0k!nKKIOS$q%%}?_T`%c({FipNHBg4+`pb
zu?pyYKiBgr=(_Jl`B!1waLS)<<oW+&rbnXG{_jJw>8<{$x6k^E-Jzeb`}o^ktTj5m
l)&+~@IQGS2THf4z+qIy#*M|z^u?2dx;0IK+b^){r001`Y7gzuQ

literal 554
zcmV+_0@eK=iwFo<dF5dO19W9`bTKt9ba-?C&6Q7Y6EP6Q?|h2i5iZCx9{<Y`QE}ta
z_JmNiyY`|=6+%f<1fQPWG(iot2}Pn*vMe7wqxastXP=#%o-J5icgyP+XPfi8_iq-+
zf@K?SE>?BT%gc&;HC?*=-Ux2N2b{wRPH`S*xPXhegv+>s>u^18z)gh>HzE!ZL=le|
z5|D@_BqIgskRBP3iZo<I9V)1z9yK(e5lv`D3)-PQI-nJ8=!kcC`FMzc>=W>c_jtnx
ze8eYw#ut2t@9_h^;v0U%9444z9y2Up5ldLc3f5sgHeeNN*f{kk2tf&+V1z)3gha@M
zLg)xRVIWk(1ZE^Uq7aqn4-(LQ0?~+p7>S9PiG|n^d*VQ>#6}!RjwB={d6JO=DUuQ?
zlM1OL^`wDRNsTm;9a+dq_GBXmawI2mCKqx??#TnWk{fxXIEqk|;weT6zY_S=KDT9e
z-7db=^%lKt&`*`_=XyFL?cvjV@kyTXb$9U1=6k&V{Bid3#4g;!XUEygmi=FtHymfL
zPi)~meDMJLw!?SJ{&CJfKiM>|?dtNTEjfLAz6<Sh&+HcYJ+k=Si$AZs*XMcOC!^dc
zXxqaS&|5v{eG0nnyK(9?Yo&bcR;<>;&{nH)eRcJ1CuOUz_X^}+rFTP29vb2E|M*M~
sWUv0;muI7`KBVol{*!mmkK|+cZ5A^}_s6#07RbSZA0L&&0<;ML09iH+!vFvP

diff --git a/openair2/LAYER2/nr_rlc/tests/test8.txt.gz b/openair2/LAYER2/nr_rlc/tests/test8.txt.gz
index c20d43c63b331c2de77e0484922c1b0c1957eb7c..461ae1aebad7294daa7445179da725cbe6e722d0 100644
GIT binary patch
literal 319
zcmV-F0l@wriwFpCHMC*^19W9`bT}?_cys{Gl1od&P!NUp{T1I*H!?GMG|5sd?%cFp
ziIhBUq)<eXrlP;z-rA^<TBLL#+{InY%sJngnN6m%jCP$j>(OlYzrDN8(2T~Fn?+l7
zTr4Z(a$B@~b3~GHj|ifOApsI15fUR~BtcRnM+&4wwv7&{Q9%_oG(bZ%LSuA{CTNQ0
zXn~e!g*vpx1XIkg01L4Qi?K15U@4Yk1y*7e=CGPT2=w6xz@vL|O}=)E=c?PgH}mdO
z*#Vr+Fi^51N=2{ap-<r+C<O<VH1<laSMovqJ*)ZTx3NLLXa5G}>B0K+>n@Uyu5b_T
zO$|XpIg(j@uFSkyuT;6!a^o7NH}n36|N9B|){pH)zwPBSRnI8A<SlJimac8<Znb*t
RBXHH#=p9vUZtd{{0029ZoQ(hg

literal 319
zcmV-F0l@wriwFp@Gp1nz19W9`bT}?_cys{GlDkgBKoCXye8nlDK{Mk=Y?p|LjwVTk
zP~^uNMT!uz;~@BYvLObHLWH6eNLy@iXYW0Cb~c&LGTL?CtVgrm{r2uULo*szZWe9T
zaj~qB%dKen=7=QY9uY(lLjoj3A|yt}NP?tDjuc3VYzG}uqk<}GXn=-jgvRI?P0$q0
z(E=^e3Uz3W38t7~0TyBr7Gq;9!BQ;83arE`%waWw5a`1XfJgV_ntbgR&sDciZ|2jd
zvI97sVc=v(oQmGbL!ZJua0(7OY3!X`@8pa6dsp+xZ_ft(p8Xlf(}Vi-OP_p9g?n%x
zY6ud_k<RLKb>_o*r^>CC8`m(snfHJAzklIA`mw#}x4nF}>KTQXyru2R(zR{ftyZsn
R1+Kapy#sK9u$l1#007C*o1g#y

diff --git a/openair2/LAYER2/nr_rlc/tests/test9.txt.gz b/openair2/LAYER2/nr_rlc/tests/test9.txt.gz
index 27590b7d71c435e04cd19603d90cc0c9c0798597..938fcd6ddcb9a2bcf4bbd2206725a7c35e2a2b79 100644
GIT binary patch
delta 298
zcmV+_0oDGz0=xnUABzYGfi<*Zkq8}sNt-Oi;?7Oml}O3YL<&VDX)5~kc8Y;UYo+2s
zn8hsS&iT$aGoQ}p8SN%-Hlz7|e|vYGp&5-Yx68KbxL8%l<?hhx%@a$;JtBxAhBzcb
zVkAMv$OK7|94U|z*$sN6Mg>*WP=`inj3($9ouDb2qXk-`73$F%6HGC~92Q}JF_vIs
zY=Wg&julvmRhY+WoZ$4~lfa{Y@=d<+%jc^5NN*O>r?MB2Uuz6Vc7jwKkb?Tz_5+eT
zO42lt`~fL6c5Z2l>38?L{=vf<98Ztuk%NJxm+vbG@rG8BoG7sVs{%vdK&t$Dwe=0N
wn??Vj|NDRLqyO+W(U(?(qwta$x3pbZ`nIjR_4>81z*kqJcO1rN|Na9207W#H^#A|>

delta 298
zcmV+_0oDGz0=xnUABzYG2sNf*kq8}sX`3v?;?7Oml}O3YL;^)5X)5~kc8Y;UYo+2s
zn8hsS&iT$avzW~nDeWd}HlxLUe|vYGqA86pwyU=6xTs6ya(AeH^Td*Jj|ifOAr6U<
z7#SlIWQrt6hU7?r>;^qjp@J%Es6!((M#ty`ouUbvp*dQhCF;=%6HGC~92Q}JF*e2~
z*c3~!49l?sD>08%IKk<|CxJ)*<eO~cSI=elk=`t%Ph>A3zt$L#>;x%4AO-ca?FS@x
zl%z=@`2$jD?A+3pv+wSA{ey=!IG!BOBL@T4%l8$8ctfj5P83-ERe>RJAeDYyZ+*l3
wX4!w}|Nfu*=s&zo^rh9{D7<7DEp1m6zHO^+y?*U0@a5I$9m#xc_x=L_0Q8xU(f|Me

diff --git a/openair2/LAYER2/rlc_v2/rlc_oai_api.c b/openair2/LAYER2/rlc_v2/rlc_oai_api.c
index 2a6f00c13c4..11ae770e3ec 100644
--- a/openair2/LAYER2/rlc_v2/rlc_oai_api.c
+++ b/openair2/LAYER2/rlc_v2/rlc_oai_api.c
@@ -1065,3 +1065,15 @@ void du_rlc_data_req(const protocol_ctxt_t *const ctxt_pP,
 		sdu_sizeP,
 		sdu_pP, NULL, NULL);
 }
+
+/* HACK to be removed: nr_rlc_get_available_tx_space is needed by
+ * openair3/ocp-gtpu/gtp_itf.cpp which is compiled in lte-softmodem
+ * so let's put a dummy nr_rlc_get_available_tx_space here
+ */
+int nr_rlc_get_available_tx_space(
+  const rnti_t            rntiP,
+  const logical_chan_id_t channel_idP)
+{
+  abort();
+  return 0;
+}
diff --git a/openair2/M2AP/m2ap_common.h b/openair2/M2AP/m2ap_common.h
index 95da064b4ab..0a6895fcb7f 100644
--- a/openair2/M2AP/m2ap_common.h
+++ b/openair2/M2AP/m2ap_common.h
@@ -55,11 +55,6 @@
 # define M2AP_PORT 36423
 #endif
 
-#ifndef TRUE
-#define TRUE 1
-#define FALSE 0
-#endif
-
 extern int asn1_xer_print;
 
 #if defined(ENB_MODE)
diff --git a/openair2/NETWORK_DRIVER/MESH/device.c b/openair2/NETWORK_DRIVER/MESH/device.c
index f63408259c8..d86e32e5618 100644
--- a/openair2/NETWORK_DRIVER/MESH/device.c
+++ b/openair2/NETWORK_DRIVER/MESH/device.c
@@ -198,7 +198,8 @@ int nas_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
 
     // End debug information
     netif_stop_queue(dev);
-#if  LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) ||  (defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE>=1796)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) \
+    || (defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= 1796 && RHEL_RELEASE_CODE != 2403)
     netif_trans_update(dev);
 #else
     dev->trans_start = jiffies;
@@ -267,7 +268,8 @@ void nas_tx_timeout(struct net_device *dev)
   printk("TX_TIMEOUT: begin\n");
   //  (struct nas_priv *)(dev->priv)->stats.tx_errors++;
   (priv->stats).tx_errors++;
-#if  LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) ||  (defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE>=1796)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) \
+    || (defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= 1796 && RHEL_RELEASE_CODE != 2403)
   netif_trans_update(dev);
 #else
   dev->trans_start = jiffies;
@@ -285,7 +287,8 @@ static const struct net_device_ops nasmesh_netdev_ops = {
   .ndo_set_mac_address  = NULL,
   .ndo_set_config     = nas_set_config,
   .ndo_do_ioctl       = nas_CTL_ioctl,
-#if (defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE>=1797 && LINUX_VERSION_CODE <= KERNEL_VERSION(3,11,0))
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(3,11,0) \
+    || (defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= 1797 && RHEL_RELEASE_CODE != 2403)
   .extended.ndo_change_mtu   = nas_change_mtu,
 #else
   .ndo_change_mtu   = nas_change_mtu,
diff --git a/openair2/NETWORK_DRIVER/UE_IP/device.c b/openair2/NETWORK_DRIVER/UE_IP/device.c
index 0ff9a739257..bf858a0005d 100644
--- a/openair2/NETWORK_DRIVER/UE_IP/device.c
+++ b/openair2/NETWORK_DRIVER/UE_IP/device.c
@@ -239,7 +239,8 @@ int ue_ip_hard_start_xmit(struct sk_buff *skb_pP, struct net_device *dev_pP) {
 
     // End debug information
     netif_stop_queue(dev_pP);
-#if  LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) || (defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= 1796)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) \
+    || (defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= 1796 && RHEL_RELEASE_CODE != 2403)
     netif_trans_update(dev_pP);
 #else
     dev_pP->trans_start = jiffies;
@@ -315,7 +316,8 @@ void ue_ip_tx_timeout(struct net_device *dev_pP)
   printk("[UE_IP_DRV][%s] begin\n", __FUNCTION__);
   //  (ue_ip_priv_t *)(dev_pP->priv_p)->stats.tx_errors++;
   (priv_p->stats).tx_errors++;
-#if  LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) || (defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= 1796)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) \
+    || (defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= 1796 && RHEL_RELEASE_CODE != 2403)
   netif_trans_update(dev_pP);
 #else
   dev_pP->trans_start = jiffies;
@@ -333,7 +335,7 @@ static const struct net_device_ops ue_ip_netdev_ops = {
   .ndo_set_mac_address    = ue_ip_set_mac_address,
   .ndo_set_config         = ue_ip_set_config,
   .ndo_do_ioctl           = NULL,
-#if (defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= 1797)
+#if defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= 1797 && RHEL_RELEASE_CODE != 2403
   .extended.ndo_change_mtu         = ue_ip_change_mtu,
 #else
   .ndo_change_mtu   = ue_ip_change_mtu,
diff --git a/openair2/NR_PHY_INTERFACE/NR_IF_Module.c b/openair2/NR_PHY_INTERFACE/NR_IF_Module.c
index c860d847d95..47705082d1c 100644
--- a/openair2/NR_PHY_INTERFACE/NR_IF_Module.c
+++ b/openair2/NR_PHY_INTERFACE/NR_IF_Module.c
@@ -77,7 +77,7 @@ void handle_nr_rach(NR_UL_IND_t *UL_info)
   bool in_timewindow = frame_diff == 0 || (frame_diff == 1 && UL_info->slot < 7);
 
   if (UL_info->rach_ind.number_of_pdus > 0 && in_timewindow) {
-    LOG_D(MAC,"UL_info[Frame %d, Slot %d] Calling initiate_ra_proc RACH:SFN/SLOT:%d/%d\n",
+    LOG_A(MAC,"UL_info[Frame %d, Slot %d] Calling initiate_ra_proc RACH:SFN/SLOT:%d/%d\n",
           UL_info->frame, UL_info->slot, UL_info->rach_ind.sfn, UL_info->rach_ind.slot);
     for (int i = 0; i < UL_info->rach_ind.number_of_pdus; i++) {
       UL_info->rach_ind.number_of_pdus--;
@@ -215,6 +215,41 @@ void handle_nr_ulsch(NR_UL_IND_t *UL_info)
   UL_info->crc_ind.number_crcs = 0;
 }
 
+void handle_nr_srs(NR_UL_IND_t *UL_info) {
+
+  if(NFAPI_MODE == NFAPI_MODE_PNF) {
+    if (UL_info->srs_ind.number_of_pdus > 0) {
+      LOG_D(PHY,"PNF Sending UL_info->srs_ind.number_of_pdus: %d, SFN/SF:%d.%d \n",
+            UL_info->srs_ind.number_of_pdus, UL_info->frame, UL_info->slot);
+      oai_nfapi_nr_srs_indication(&UL_info->srs_ind);
+      UL_info->srs_ind.number_of_pdus = 0;
+    }
+    return;
+  }
+
+  const module_id_t module_id = UL_info->module_id;
+  const frame_t frame = UL_info->srs_ind.sfn;
+  const sub_frame_t slot = UL_info->srs_ind.slot;
+  const int num_srs = UL_info->srs_ind.number_of_pdus;
+  const nfapi_nr_srs_indication_pdu_t *srs_list = UL_info->srs_ind.pdu_list;
+
+  for (int i = 0; i < num_srs; i++) {
+    const nfapi_nr_srs_indication_pdu_t *srs_ind = &srs_list[i];
+    LOG_D(NR_PHY, "(%d.%d) UL_info->srs_ind.pdu_list[%d].rnti: 0x%04x\n", frame, slot, i, srs_ind->rnti);
+    handle_nr_srs_measurements(module_id,
+                               frame,
+                               slot,
+                               srs_ind->rnti,
+                               srs_ind->timing_advance,
+                               srs_ind->num_symbols,
+                               srs_ind->wide_band_snr,
+                               srs_ind->num_reported_symbols,
+                               srs_ind->reported_symbol_list);
+  }
+
+  UL_info->srs_ind.number_of_pdus = 0;
+}
+
 static void free_unqueued_nfapi_indications(nfapi_nr_rach_indication_t *rach_ind,
                                             nfapi_nr_uci_indication_t *uci_ind,
                                             nfapi_nr_rx_data_indication_t *rx_ind,
@@ -372,9 +407,6 @@ static void match_crc_rx_pdu(nfapi_nr_rx_data_indication_t *rx_ind, nfapi_nr_crc
 
 void NR_UL_indication(NR_UL_IND_t *UL_info) {
   AssertFatal(UL_info!=NULL,"UL_info is null\n");
-#ifdef DUMP_FAPI
-  dump_ul(UL_info);
-#endif
   module_id_t      module_id   = UL_info->module_id;
   int              CC_id       = UL_info->CC_id;
   NR_Sched_Rsp_t   *sched_info = &NR_Sched_INFO[module_id][CC_id];
@@ -434,6 +466,7 @@ void NR_UL_indication(NR_UL_IND_t *UL_info) {
   // clear UL DCI prior to handling ULSCH
   mac->UL_dci_req[CC_id].numPdus = 0;
   handle_nr_ulsch(UL_info);
+  handle_nr_srs(UL_info);
 
   if (get_softmodem_params()->emulate_l1) {
     free_unqueued_nfapi_indications(rach_ind, uci_ind, rx_ind, crc_ind);
diff --git a/openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c b/openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
index 958786df8b5..5c51c4a1cd1 100644
--- a/openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
+++ b/openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
@@ -67,17 +67,6 @@ queue_t nr_tx_req_queue;
 queue_t nr_ul_dci_req_queue;
 queue_t nr_ul_tti_req_queue;
 
-static slot_rnti_mcs_s slot_rnti_mcs[NUM_NFAPI_SLOT];
-
-//static int get_mcs_from_sinr(float sinr);
-//static int get_cqi_from_mcs(void);
-static void read_channel_param(const nfapi_nr_dl_tti_pdsch_pdu_rel15_t * pdu, int sf, int index);
-//static bool did_drop_transport_block(int slot, uint16_t rnti);
-static float get_bler_val(uint8_t mcs, int sinr);
-static bool should_drop_transport_block(int slot, uint16_t rnti);
-static void save_pdsch_pdu_for_crnti(nfapi_nr_dl_tti_request_t *dl_tti_request);
-static inline bool is_channel_modeling(void);
-
 void nrue_init_standalone_socket(int tx_port, int rx_port)
 {
   {
@@ -940,7 +929,7 @@ static void enqueue_nr_nfapi_msg(void *buffer, ssize_t len, nfapi_p7_message_hea
     return;
 }
 
-static void save_pdsch_pdu_for_crnti(nfapi_nr_dl_tti_request_t *dl_tti_request)
+void save_pdsch_pdu_for_crnti(nfapi_nr_dl_tti_request_t *dl_tti_request)
 {
   int count_sent = 0;
   NR_UE_MAC_INST_t *mac = get_mac_inst(0);
@@ -1115,6 +1104,10 @@ int8_t handle_dlsch(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_t *u
   return 0;
 }
 
+int8_t handle_csirs_measurements(module_id_t module_id, frame_t frame, int slot, fapi_nr_csirs_measurements_t *csirs_measurements) {
+  return nr_ue_process_csirs_measurements(module_id, frame, slot, csirs_measurements);
+}
+
 void update_harq_status(module_id_t module_id, uint8_t harq_pid, uint8_t ack_nack) {
 
   NR_UE_MAC_INST_t *mac = get_mac_inst(module_id);
@@ -1240,7 +1233,7 @@ int nr_ue_dl_indication(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_
                                          (dl_info->rx_ind->rx_indication_body+i)->ssb_pdu.ssb_length,
                                          (dl_info->rx_ind->rx_indication_body+i)->ssb_pdu.ssb_start_subcarrier,
                                          (dl_info->rx_ind->rx_indication_body+i)->ssb_pdu.cell_id)) << FAPI_NR_RX_PDU_TYPE_SSB;
-	    free((dl_info->rx_ind->rx_indication_body+i)->ssb_pdu.pdu);
+            free((dl_info->rx_ind->rx_indication_body+i)->ssb_pdu.pdu);
             break;
           case FAPI_NR_RX_PDU_TYPE_SIB:
             ret_mask |= (handle_bcch_dlsch(dl_info->module_id,
@@ -1255,6 +1248,12 @@ int nr_ue_dl_indication(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_
           case FAPI_NR_RX_PDU_TYPE_RAR:
             ret_mask |= (handle_dlsch(dl_info, ul_time_alignment, i)) << FAPI_NR_RX_PDU_TYPE_RAR;
             break;
+          case FAPI_NR_CSIRS_IND:
+            ret_mask |= (handle_csirs_measurements(dl_info->module_id,
+                                                   dl_info->frame,
+                                                   dl_info->slot,
+                                                   &(dl_info->rx_ind->rx_indication_body+i)->csirs_measurements)) << FAPI_NR_CSIRS_IND;
+            break;
           default:
             break;
         }
@@ -1444,243 +1443,3 @@ void RCconfig_nrUE_prs(void *cfg)
     }
   }
 }
-
-/*
-static int get_mcs_from_sinr(float sinr)
-{
-  if (sinr < (nr_bler_data[0].bler_table[0][0]))
-  {
-    LOG_D(NR_MAC, "The SINR found is smaller than first MCS table\n");
-    return 0;
-  }
-
-  if (sinr > (nr_bler_data[NR_NUM_MCS-1].bler_table[nr_bler_data[NR_NUM_MCS-1].length - 1][0]))
-  {
-    LOG_D(NR_MAC, "The SINR found is larger than last MCS table\n");
-    return NR_NUM_MCS-1;
-  }
-
-  for (int n = NR_NUM_MCS-1; n >= 0; n--)
-  {
-    CHECK_INDEX(nr_bler_data, n);
-    float largest_sinr = (nr_bler_data[n].bler_table[nr_bler_data[n].length - 1][0]);
-    float smallest_sinr = (nr_bler_data[n].bler_table[0][0]);
-    if (sinr < largest_sinr && sinr > smallest_sinr)
-    {
-      LOG_D(NR_MAC, "The SINR found in MCS %d table\n", n);
-      return n;
-    }
-  }
-  LOG_E(NR_MAC, "Unable to get an MCS value.\n");
-  abort();
-}
-
-static int get_cqi_from_mcs(void)
-{
-  static const int mcs_to_cqi[] = {0, 1, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-                                   9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15};
-  assert(NUM_ELEMENTS(mcs_to_cqi) == NR_NUM_MCS);
-  int slot = 0;
-  while (slot < NUM_NFAPI_SLOT)
-  {
-    if (slot_rnti_mcs[slot].latest)
-    {
-      int num_pdus = slot_rnti_mcs[slot].num_pdus;
-      if (num_pdus <= 0)
-      {
-        LOG_E(NR_MAC, "%s: slot_rnti_mcs[%d].num_pdus = 0\n", __FUNCTION__, slot);
-        abort();
-      }
-
-      CHECK_INDEX(slot_rnti_mcs[slot].mcs, num_pdus);
-      int mcs = get_mcs_from_sinr(slot_rnti_mcs[slot].sinr);
-      CHECK_INDEX(mcs_to_cqi, mcs);
-      int cqi = mcs_to_cqi[mcs];
-      LOG_D(NR_MAC, "SINR: %f -> MCS: %d -> CQI: %d\n", slot_rnti_mcs[slot].sinr, mcs, cqi);
-      return cqi;
-    }
-    slot++;
-  }
-  LOG_E(NR_MAC, "Unable to get CQI value because no MCS found\n");
-  abort();
-}
-*/
-
-static void read_channel_param(const nfapi_nr_dl_tti_pdsch_pdu_rel15_t * pdu, int slot, int index)
-{
-  if (pdu == NULL)
-  {
-    LOG_E(NR_MAC,"PDU NULL\n");
-    abort();
-  }
-
-  /* This function is executed for every pdsch pdu type in a dl_tti_request. We save
-     the assocaited MCS and RNTI value for each. The 'index' passed in is a count of
-     how many times we have called this function for a particular dl_tti_request. It
-     allows us to save MCS/RNTI data in correct indicies when multiple pdsch pdu's are received.*/
-  for (int i = 0; i < NUM_NFAPI_SLOT; i++)
-  {
-    slot_rnti_mcs[i].latest = false;
-  }
-
-  CHECK_INDEX(slot_rnti_mcs[slot].rnti, index);
-  CHECK_INDEX(slot_rnti_mcs[slot].mcs, index);
-  CHECK_INDEX(slot_rnti_mcs[slot].drop_flag, index);
-  slot_rnti_mcs[slot].rnti[index] = pdu->rnti;
-  slot_rnti_mcs[slot].mcs[index] = pdu->mcsIndex[0];
-  slot_rnti_mcs[slot].rvIndex[index] = pdu->rvIndex[0];
-  slot_rnti_mcs[slot].drop_flag[index] = false;
-  slot_rnti_mcs[slot].num_pdus = index+1; //index starts at 0 so we incrament to get num of pdus
-  slot_rnti_mcs[slot].latest = true;
-  LOG_D(NR_MAC, "Adding MCS %d and RNTI %x for slot_rnti_mcs[%d]\n", slot_rnti_mcs[slot].mcs[index], slot_rnti_mcs[slot].rnti[index], slot);
-
-  return;
-}
-
-/*
-static bool did_drop_transport_block(int slot, uint16_t rnti)
-{
-  int num_pdus = slot_rnti_mcs[slot].num_pdus;
-  if (num_pdus <= 0)
-  {
-    LOG_E(MAC, "Problem, the PDU size is <= 0. We dropped this packet\n");
-    return true;
-  }
-  CHECK_INDEX(slot_rnti_mcs[slot].rnti, num_pdus);
-  CHECK_INDEX(slot_rnti_mcs[slot].drop_flag, num_pdus);
-  for (int n = 0; n < num_pdus; n++)
-  {
-    if (slot_rnti_mcs[slot].rnti[n] == rnti && slot_rnti_mcs[slot].drop_flag[n])
-    {
-      return true;
-    }
-  }
-  return false;
-}
-*/
-
-static float get_bler_val(uint8_t mcs, int sinr)
-{
-  // 4th col = dropped packets, 5th col = total packets
-  float bler_val = 0.0;
-  CHECK_INDEX(nr_bler_data, mcs);
-  LOG_D(NR_MAC, "sinr %d min %d max %d\n", sinr,
-                (int)(nr_bler_data[mcs].bler_table[0][0] * 10),
-                (int)(nr_bler_data[mcs].bler_table[nr_bler_data[mcs].length - 1][0] * 10)
-  );
-
-  if (sinr < (int)(nr_bler_data[mcs].bler_table[0][0] * 10))
-  {
-    LOG_D(NR_MAC, "MCS %d table. SINR is smaller than lowest SINR, bler_val is set based on lowest SINR in table\n", mcs);
-    bler_val = nr_bler_data[mcs].bler_table[0][4] / nr_bler_data[mcs].bler_table[0][5];
-    return bler_val;
-  }
-  if (sinr > (int)(nr_bler_data[mcs].bler_table[nr_bler_data[mcs].length - 1][0] * 10))
-  {
-    LOG_D(NR_MAC, "MCS %d table. SINR is greater than largest SINR. bler_val is set based on largest SINR in table\n", mcs);
-    bler_val = nr_bler_data[mcs].bler_table[(nr_bler_data[mcs].length - 1)][4] / nr_bler_data[mcs].bler_table[(nr_bler_data[mcs].length - 1)][5];
-    return bler_val;
-  }
-  // Loop through bler table to find sinr_index
-  for (int i = 0; i < nr_bler_data[mcs].length; i++)
-  {
-    int temp_sinr = (int)(nr_bler_data[mcs].bler_table[i][0] * 10);
-    if (temp_sinr == sinr)
-    {
-      bler_val = nr_bler_data[mcs].bler_table[i][4] / nr_bler_data[mcs].bler_table[i][5];
-      return bler_val;
-    }
-    // Linear interpolation when SINR is between indices
-    if (temp_sinr > sinr)
-    {
-      float bler_val1 = nr_bler_data[mcs].bler_table[i - 1][4] / nr_bler_data[mcs].bler_table[i - 1][5];
-      float bler_val2 = nr_bler_data[mcs].bler_table[i][4] / nr_bler_data[mcs].bler_table[i][5];
-      LOG_D(NR_MAC, "sinr %d min %f max %f\n", sinr, bler_val1, bler_val2);
-      return ((bler_val1 + bler_val2) / 2);
-    }
-  }
-  LOG_E(NR_MAC, "NO SINR INDEX FOUND!\n");
-  abort();
-
-}
-
-static inline bool is_channel_modeling(void)
-{
-  /* TODO: For now we enable channel modeling based on the node_number.
-     Replace with a command line option to enable/disable channel modeling.
-     The LTE UE will crash when channel modeling is conducted for NSA
-     mode. It does not crash for LTE mode. We have not implemented channel
-     modeling for NSA mode yet. For now, we ensure only do do channel modeling
-     in LTE/NR mode. */
-  return get_softmodem_params()->node_number == 0 && !get_softmodem_params()->nsa;
-}
-
-static bool should_drop_transport_block(int slot, uint16_t rnti)
-{
-  if (!is_channel_modeling())
-  {
-    return false;
-  }
-
-  /* We want to avoid dropping setup messages because this would be pathological. */
-  NR_UE_MAC_INST_t *mac = get_mac_inst(0);
-  if (mac->ra.ra_state < RA_SUCCEEDED)
-  {
-    LOG_D(NR_MAC, "Not dropping because MAC state: %d", mac->ra.ra_state);
-    return false;
-  }
-
-  /* Get block error rate (bler_val) from table based on every saved
-     MCS and SINR to be used as the cutoff rate for dropping packets.
-     Generate random uniform vairable to compare against bler_val. */
-  int num_pdus = slot_rnti_mcs[slot].num_pdus;
-  assert(slot < 20 && slot >= 0);
-  LOG_D(NR_MAC, "rnti: %x  num_pdus %d state %d slot %u sinr %f\n",
-        rnti, num_pdus, mac->ra.ra_state, slot, slot_rnti_mcs[slot].sinr);
-  assert(num_pdus > 0);
-  CHECK_INDEX(slot_rnti_mcs[slot].rnti, num_pdus);
-  CHECK_INDEX(slot_rnti_mcs[slot].mcs, num_pdus);
-  CHECK_INDEX(slot_rnti_mcs[slot].drop_flag, num_pdus);
-  int n = 0;
-  uint8_t mcs = 99;
-  for (n = 0; n < num_pdus; n++)
-  {
-    if (slot_rnti_mcs[slot].rnti[n] == rnti)
-    {
-      mcs = slot_rnti_mcs[slot].mcs[n];
-    }
-    if (mcs != 99)
-    {
-      /* Use MCS to get the bler value. Since there can be multiple MCS
-         values for a particular slot, we verify that all PDUs are not
-         flagged for drop before returning. If even one is flagged for drop
-         we return immediately because we drop the entire packet. */
-
-      LOG_D(NR_MAC, "rnti: %x mcs %u slot %u sinr %f\n",
-        slot_rnti_mcs[slot].rnti[n], mcs, slot, slot_rnti_mcs[slot].sinr);
-
-      float bler_val;
-      if (slot_rnti_mcs[slot].rvIndex[n] != 0)
-        bler_val = 0;
-      else
-        bler_val = get_bler_val(mcs, ((int)(slot_rnti_mcs[slot].sinr * 10)));
-      double drop_cutoff = ((double) rand() / (RAND_MAX));
-      assert(drop_cutoff <= 1);
-      LOG_D(NR_MAC, "SINR = %f, Bler_val = %f, MCS = %"PRIu8"\n", slot_rnti_mcs[slot].sinr, bler_val, slot_rnti_mcs[slot].mcs[n]);
-      if (drop_cutoff <= bler_val)
-      {
-        slot_rnti_mcs[slot].drop_flag[n] = true;
-        LOG_T(NR_MAC, "We are dropping this packet. Bler_val = %f, MCS = %"PRIu8", slot = %d\n", bler_val, slot_rnti_mcs[slot].mcs[n], slot);
-        return slot_rnti_mcs[slot].drop_flag[n];
-      }
-    }
-
-  }
-
-  if (mcs == 99)
-  {
-    LOG_E(NR_MAC, "NO MCS Found for rnti %x. slot_rnti_mcs[%d].mcs[%d] \n", rnti, slot, n);
-    abort();
-  }
-  return false;
-}
diff --git a/openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.h b/openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.h
index 3eacf87e061..45ac8e2a7d4 100755
--- a/openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.h
+++ b/openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.h
@@ -40,45 +40,12 @@
 #include "openair2/PHY_INTERFACE/queue_t.h"
 #include "nfapi_nr_interface_scf.h"
 #include "openair2/NR_PHY_INTERFACE/NR_IF_Module.h"
+#include "NR_Packet_Drop.h"
 
-#define NR_NUM_MCS 29
-#define NUM_SINR 100
-#define NUM_BLER_COL 13
-#define NUM_NFAPI_SLOT 20
-#define NR_NUM_LAYER 1
+extern slot_rnti_mcs_s slot_rnti_mcs[NUM_NFAPI_SLOT];
 
 typedef struct NR_UL_TIME_ALIGNMENT NR_UL_TIME_ALIGNMENT_t;
 
-typedef struct nr_phy_channel_params_t
-{
-    uint16_t sfn_slot;
-    uint16_t message_id;
-    uint16_t nb_of_sinrs;
-    float sinr[NR_NUM_LAYER];
-    // Incomplete, need all channel parameters
-} nr_phy_channel_params_t;
-
-typedef struct
-{
-    uint8_t slot;
-    uint16_t rnti[256];
-    uint8_t mcs[256];
-    uint8_t rvIndex[256];
-    float sinr;
-    uint16_t num_pdus;
-    bool drop_flag[256];
-    bool latest;
-
-} slot_rnti_mcs_s;
-
-typedef struct
-{
-    uint16_t length;
-    float bler_table[NUM_SINR][NUM_BLER_COL];
-} nr_bler_struct;
-
-extern nr_bler_struct nr_bler_data[NR_NUM_MCS];
-
 typedef enum {
   ONLY_PUSCH,
   NOT_PUSCH,
diff --git a/openair2/NR_UE_PHY_INTERFACE/NR_Packet_Drop.c b/openair2/NR_UE_PHY_INTERFACE/NR_Packet_Drop.c
new file mode 100644
index 00000000000..97938c6b027
--- /dev/null
+++ b/openair2/NR_UE_PHY_INTERFACE/NR_Packet_Drop.c
@@ -0,0 +1,183 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+#include <stdio.h>
+#include "openair2/NR_UE_PHY_INTERFACE/NR_Packet_Drop.h"
+#include "executables/softmodem-common.h"
+#include "NR_MAC_UE/mac_proto.h"
+
+slot_rnti_mcs_s slot_rnti_mcs[NUM_NFAPI_SLOT];
+void read_channel_param(const nfapi_nr_dl_tti_pdsch_pdu_rel15_t * pdu, int slot, int index)
+{
+  if (pdu == NULL)
+  {
+    LOG_E(NR_MAC,"PDU NULL\n");
+    abort();
+  }
+
+  /* This function is executed for every pdsch pdu type in a dl_tti_request. We save
+     the assocaited MCS and RNTI value for each. The 'index' passed in is a count of
+     how many times we have called this function for a particular dl_tti_request. It
+     allows us to save MCS/RNTI data in correct indicies when multiple pdsch pdu's are received.*/
+  for (int i = 0; i < NUM_NFAPI_SLOT; i++)
+  {
+    slot_rnti_mcs[i].latest = false;
+  }
+
+  CHECK_INDEX(slot_rnti_mcs[slot].rnti, index);
+  CHECK_INDEX(slot_rnti_mcs[slot].mcs, index);
+  CHECK_INDEX(slot_rnti_mcs[slot].drop_flag, index);
+  slot_rnti_mcs[slot].rnti[index] = pdu->rnti;
+  slot_rnti_mcs[slot].mcs[index] = pdu->mcsIndex[0];
+  slot_rnti_mcs[slot].rvIndex[index] = pdu->rvIndex[0];
+  slot_rnti_mcs[slot].drop_flag[index] = false;
+  slot_rnti_mcs[slot].num_pdus = index+1; //index starts at 0 so we incrament to get num of pdus
+  slot_rnti_mcs[slot].latest = true;
+  LOG_D(NR_MAC, "Adding MCS %d and RNTI %x for slot_rnti_mcs[%d]\n", slot_rnti_mcs[slot].mcs[index], slot_rnti_mcs[slot].rnti[index], slot);
+
+  return;
+}
+
+extern nr_bler_struct nr_bler_data[NR_NUM_MCS];
+float get_bler_val(uint8_t mcs, int sinr)
+{
+  // 4th col = dropped packets, 5th col = total packets
+  float bler_val = 0.0;
+  CHECK_INDEX(nr_bler_data, mcs);
+  LOG_D(NR_MAC, "sinr %d min %d max %d\n", sinr,
+                (int)(nr_bler_data[mcs].bler_table[0][0] * 10),
+                (int)(nr_bler_data[mcs].bler_table[nr_bler_data[mcs].length - 1][0] * 10)
+  );
+
+  if (sinr < (int)(nr_bler_data[mcs].bler_table[0][0] * 10))
+  {
+    LOG_D(NR_MAC, "MCS %d table. SINR is smaller than lowest SINR, bler_val is set based on lowest SINR in table\n", mcs);
+    bler_val = nr_bler_data[mcs].bler_table[0][4] / nr_bler_data[mcs].bler_table[0][5];
+    return bler_val;
+  }
+  if (sinr > (int)(nr_bler_data[mcs].bler_table[nr_bler_data[mcs].length - 1][0] * 10))
+  {
+    LOG_D(NR_MAC, "MCS %d table. SINR is greater than largest SINR. bler_val is set based on largest SINR in table\n", mcs);
+    bler_val = nr_bler_data[mcs].bler_table[(nr_bler_data[mcs].length - 1)][4] / nr_bler_data[mcs].bler_table[(nr_bler_data[mcs].length - 1)][5];
+    return bler_val;
+  }
+  // Loop through bler table to find sinr_index
+  for (int i = 0; i < nr_bler_data[mcs].length; i++)
+  {
+    int temp_sinr = (int)(nr_bler_data[mcs].bler_table[i][0] * 10);
+    if (temp_sinr == sinr)
+    {
+      bler_val = nr_bler_data[mcs].bler_table[i][4] / nr_bler_data[mcs].bler_table[i][5];
+      return bler_val;
+    }
+    // Linear interpolation when SINR is between indices
+    if (temp_sinr > sinr)
+    {
+      float bler_val1 = nr_bler_data[mcs].bler_table[i - 1][4] / nr_bler_data[mcs].bler_table[i - 1][5];
+      float bler_val2 = nr_bler_data[mcs].bler_table[i][4] / nr_bler_data[mcs].bler_table[i][5];
+      LOG_D(NR_MAC, "sinr %d min %f max %f\n", sinr, bler_val1, bler_val2);
+      return ((bler_val1 + bler_val2) / 2);
+    }
+  }
+  LOG_E(NR_MAC, "NO SINR INDEX FOUND!\n");
+  abort();
+
+}
+
+bool is_channel_modeling(void)
+{
+  /* TODO: For now we enable channel modeling based on the node_number.
+     Replace with a command line option to enable/disable channel modeling.
+     The LTE UE will crash when channel modeling is conducted for NSA
+     mode. It does not crash for LTE mode. We have not implemented channel
+     modeling for NSA mode yet. For now, we ensure only do do channel modeling
+     in LTE/NR mode. */
+  return get_softmodem_params()->node_number == 0 && !get_softmodem_params()->nsa;
+}
+
+bool should_drop_transport_block(int slot, uint16_t rnti)
+{
+  if (!is_channel_modeling())
+  {
+    return false;
+  }
+
+  /* We want to avoid dropping setup messages because this would be pathological. */
+  NR_UE_MAC_INST_t *mac = get_mac_inst(0);
+  if (mac->ra.ra_state < RA_SUCCEEDED)
+  {
+    LOG_D(NR_MAC, "Not dropping because MAC state: %d", mac->ra.ra_state);
+    return false;
+  }
+
+  /* Get block error rate (bler_val) from table based on every saved
+     MCS and SINR to be used as the cutoff rate for dropping packets.
+     Generate random uniform vairable to compare against bler_val. */
+  int num_pdus = slot_rnti_mcs[slot].num_pdus;
+  assert(slot < 20 && slot >= 0);
+  LOG_D(NR_MAC, "rnti: %x  num_pdus %d state %d slot %u sinr %f\n",
+        rnti, num_pdus, mac->ra.ra_state, slot, slot_rnti_mcs[slot].sinr);
+  assert(num_pdus > 0);
+  CHECK_INDEX(slot_rnti_mcs[slot].rnti, num_pdus);
+  CHECK_INDEX(slot_rnti_mcs[slot].mcs, num_pdus);
+  CHECK_INDEX(slot_rnti_mcs[slot].drop_flag, num_pdus);
+  int n = 0;
+  uint8_t mcs = 99;
+  for (n = 0; n < num_pdus; n++)
+  {
+    if (slot_rnti_mcs[slot].rnti[n] == rnti)
+    {
+      mcs = slot_rnti_mcs[slot].mcs[n];
+    }
+    if (mcs != 99)
+    {
+      /* Use MCS to get the bler value. Since there can be multiple MCS
+         values for a particular slot, we verify that all PDUs are not
+         flagged for drop before returning. If even one is flagged for drop
+         we return immediately because we drop the entire packet. */
+
+      LOG_D(NR_MAC, "rnti: %x mcs %u slot %u sinr %f\n",
+        slot_rnti_mcs[slot].rnti[n], mcs, slot, slot_rnti_mcs[slot].sinr);
+
+      float bler_val;
+      if (slot_rnti_mcs[slot].rvIndex[n] != 0)
+        bler_val = 0;
+      else
+        bler_val = get_bler_val(mcs, ((int)(slot_rnti_mcs[slot].sinr * 10)));
+      double drop_cutoff = ((double) rand() / (RAND_MAX));
+      assert(drop_cutoff <= 1);
+      LOG_D(NR_MAC, "SINR = %f, Bler_val = %f, MCS = %"PRIu8"\n", slot_rnti_mcs[slot].sinr, bler_val, slot_rnti_mcs[slot].mcs[n]);
+      if (drop_cutoff <= bler_val)
+      {
+        slot_rnti_mcs[slot].drop_flag[n] = true;
+        LOG_T(NR_MAC, "We are dropping this packet. Bler_val = %f, MCS = %"PRIu8", slot = %d\n", bler_val, slot_rnti_mcs[slot].mcs[n], slot);
+        return slot_rnti_mcs[slot].drop_flag[n];
+      }
+    }
+
+  }
+
+  if (mcs == 99)
+  {
+    LOG_E(NR_MAC, "NO MCS Found for rnti %x. slot_rnti_mcs[%d].mcs[%d] \n", rnti, slot, n);
+    abort();
+  }
+  return false;
+}
diff --git a/openair2/NR_UE_PHY_INTERFACE/NR_Packet_Drop.h b/openair2/NR_UE_PHY_INTERFACE/NR_Packet_Drop.h
new file mode 100644
index 00000000000..549eb5c2e38
--- /dev/null
+++ b/openair2/NR_UE_PHY_INTERFACE/NR_Packet_Drop.h
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+#ifndef __NR_CHAN_MODEL_H__
+#define __NR_CHAN_MODEL_H__
+
+#include <platform_types.h>
+#include <nfapi_nr_interface_scf.h>
+#include <openair1/PHY/thread_NR_UE.h>
+#include "openair2/NR_PHY_INTERFACE/NR_IF_Module.h"
+
+#define NR_NUM_MCS 29
+#define NUM_SINR 100
+#define NUM_BLER_COL 13
+#define NUM_NFAPI_SLOT 20
+#define NR_NUM_LAYER 1
+#define MAX_CHAN_PARAMS 256
+
+typedef struct nr_phy_channel_params_t
+{
+    uint16_t sfn_slot;
+    uint16_t message_id;
+    uint16_t nb_of_sinrs;
+    float sinr[NR_NUM_LAYER];
+} nr_phy_channel_params_t;
+
+typedef struct
+{
+    uint8_t slot;
+    uint16_t rnti[MAX_CHAN_PARAMS];
+    uint8_t mcs[MAX_CHAN_PARAMS];
+    uint8_t rvIndex[MAX_CHAN_PARAMS];
+    float sinr;
+    uint16_t num_pdus;
+    bool drop_flag[MAX_CHAN_PARAMS];
+    bool latest;
+} slot_rnti_mcs_s;
+
+typedef struct
+{
+    uint16_t length;
+    float bler_table[NUM_SINR][NUM_BLER_COL];
+} nr_bler_struct;
+
+void read_channel_param(const nfapi_nr_dl_tti_pdsch_pdu_rel15_t * pdu, int sf, int index);
+void save_pdsch_pdu_for_crnti(nfapi_nr_dl_tti_request_t *dl_tti_request);
+float get_bler_val(uint8_t mcs, int sinr);
+bool should_drop_transport_block(int slot, uint16_t rnti);
+bool is_channel_modeling(void);
+
+#endif
diff --git a/openair2/PHY_INTERFACE/phy_stub_UE.c b/openair2/PHY_INTERFACE/phy_stub_UE.c
index c4650f18f3a..cd57ea9ff10 100644
--- a/openair2/PHY_INTERFACE/phy_stub_UE.c
+++ b/openair2/PHY_INTERFACE/phy_stub_UE.c
@@ -1956,7 +1956,7 @@ static int get_mcs_from_sinr(float sinr)
 
 static int get_cqi_from_mcs(void)
 {
-  static const int mcs_to_cqi[] = {0, 1, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15};
+  static const int mcs_to_cqi[] = {0, 1, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15};
   assert(NUM_ELEMENTS(mcs_to_cqi) == NUM_MCS);
   int sf = 0;
   while(sf < NUM_NFAPI_SUBFRAME)
diff --git a/openair2/PHY_INTERFACE/phy_stub_UE.h b/openair2/PHY_INTERFACE/phy_stub_UE.h
index d68d1dffdd9..fe0e7be12e1 100644
--- a/openair2/PHY_INTERFACE/phy_stub_UE.h
+++ b/openair2/PHY_INTERFACE/phy_stub_UE.h
@@ -21,7 +21,7 @@
 //#include "openair1/PHY/LTE_TRANSPORT/defs.h"
 #include "queue_t.h"
 
-#define NUM_MCS 28
+#define NUM_MCS 29
 #define NUM_SINR 100
 #define NUM_BLER_COL 13
 #define LTE_NUM_LAYER 1
diff --git a/openair2/RRC/LITE/rrc_common.c b/openair2/RRC/LITE/rrc_common.c
index a4239e857d9..f0c4e94c999 100644
--- a/openair2/RRC/LITE/rrc_common.c
+++ b/openair2/RRC/LITE/rrc_common.c
@@ -306,7 +306,7 @@ rrc_rx_tx(
       LOG_D(RRC,"SFN.SN %d.%d => release timer %d/%d\n",ctxt_pP->frame,ctxt_pP->subframe,
 	    ue_context_p->ue_context.ue_release_timer,ue_context_p->ue_context.ue_release_timer_thres);
       if ((ctxt_pP->frame == 0) && (ctxt_pP->subframe==0)) {
-	if (ue_context_p->ue_context.Initialue_identity_s_TMSI.presence == TRUE) {
+	if (ue_context_p->ue_context.Initialue_identity_s_TMSI.presence == true) {
 	  LOG_I(RRC,"UE rnti %x:S-TMSI %x failure timer %d/20000\n",
 		ue_context_p->ue_context.rnti,
 		ue_context_p->ue_context.Initialue_identity_s_TMSI.m_tmsi,
diff --git a/openair2/RRC/LTE/L2_interface.c b/openair2/RRC/LTE/L2_interface.c
index 0a63acc8fb8..c12d2aa873e 100644
--- a/openair2/RRC/LTE/L2_interface.c
+++ b/openair2/RRC/LTE/L2_interface.c
@@ -299,7 +299,7 @@ mac_rrc_data_ind(
   const uint8_t        *sduP,
   const sdu_size_t      sdu_lenP,
   const uint8_t         mbsfn_sync_areaP,
-  const boolean_t   brOption
+  const bool            brOption
 )
 //--------------------------------------------------------------------------
 {
diff --git a/openair2/RRC/LTE/L2_interface_common.c b/openair2/RRC/LTE/L2_interface_common.c
index 1993fe7de09..660bd91dda8 100644
--- a/openair2/RRC/LTE/L2_interface_common.c
+++ b/openair2/RRC/LTE/L2_interface_common.c
@@ -58,7 +58,7 @@ rrc_data_req(
 {
   if(sdu_sizeP == 255) {
     LOG_I(RRC,"sdu_sizeP == 255");
-    return FALSE;
+    return false;
   }
 
   MessageDef *message_p;
@@ -94,7 +94,7 @@ rrc_data_req(
   if (ctxt_pP->enb_flag && NODE_IS_CU(RC.rrc[ctxt_pP->module_id]->node_type))
     pdcp_run(ctxt_pP);
 
-  return TRUE; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
+  return true; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
 }
 
 //------------------------------------------------------------------------------
diff --git a/openair2/RRC/LTE/L2_interface_ue.c b/openair2/RRC/LTE/L2_interface_ue.c
index 534030864a2..850ecf1b588 100644
--- a/openair2/RRC/LTE/L2_interface_ue.c
+++ b/openair2/RRC/LTE/L2_interface_ue.c
@@ -298,7 +298,7 @@ rrc_data_req_ue(
       TASK_PDCP_UE,
       ctxt_pP->instance,
       message_p);
-    return TRUE; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
+    return true; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
   }
 }
 
diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg.c b/openair2/RRC/LTE/MESSAGES/asn1_msg.c
index bd09540627a..e5024e35055 100644
--- a/openair2/RRC/LTE/MESSAGES/asn1_msg.c
+++ b/openair2/RRC/LTE/MESSAGES/asn1_msg.c
@@ -343,7 +343,7 @@ uint8_t do_MIB_SL(const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index,
 
   if (in_coverage > 0 ) {
     //in coverage
-    mib_sl->inCoverage_r12 = TRUE;
+    mib_sl->inCoverage_r12 = true;
     mib_sl->sl_Bandwidth_r12 = *UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->freqInfo.ul_Bandwidth;
 
     if (UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]->tdd_Config) {
@@ -366,7 +366,7 @@ uint8_t do_MIB_SL(const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index,
   } else {
     //Todo - out of coverage for V2X
     // Todo - UE has a selected SyncRef UE
-    mib_sl->inCoverage_r12 = FALSE;
+    mib_sl->inCoverage_r12 = false;
     //set sl-Bandwidth, subframeAssignmentSL and reserved from the pre-configured parameters
   }
 
@@ -989,7 +989,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
   sib1_1250->nonCriticalExtension = NULL;
   ////Rel1310
   if ((configuration->schedulingInfoSIB1_BR_r13[CC_id] != 0) &&
-      (brOption==TRUE)) {
+      (brOption==true)) {
     sib1_1250->nonCriticalExtension = calloc(1, sizeof(LTE_SystemInformationBlockType1_v1310_IEs_t));
     memset(sib1_1250->nonCriticalExtension, 0, sizeof(LTE_SystemInformationBlockType1_v1310_IEs_t));
     LTE_SystemInformationBlockType1_v1310_IEs_t *sib1_1310 = sib1_1250->nonCriticalExtension;
@@ -1279,7 +1279,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
   *sib2 = &sib2_part->choice.sib2;
   *sib3 = &sib3_part->choice.sib3;
 
-  if ((configuration->eMBMS_configured > 0) && (brOption==FALSE)) {
+  if ((configuration->eMBMS_configured > 0) && (brOption==false)) {
     sib13_part = CALLOC(1,sizeof(struct LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member));
     memset(sib13_part,0,sizeof(struct LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member));
     sib13_part->present = LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920;
@@ -1331,10 +1331,8 @@ uint8_t do_SIB23(uint8_t Mod_id,
     (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1 = calloc(1, sizeof(struct LTE_RACH_ConfigCommon__ext1));
     memset((*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1, 0, sizeof(struct LTE_RACH_ConfigCommon__ext1));
 
-    if (rrconfig->preambleTransMax_CE_r13) {
-      (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = calloc(1, sizeof(LTE_PreambleTransMax_t));
-      *(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = *rrconfig->preambleTransMax_CE_r13; // to be re-initialized when we find the enum
-    } else (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = NULL;
+    (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = calloc(1, sizeof(LTE_PreambleTransMax_t));
+    *(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = rrconfig->preambleTransMax_CE_r13; // to be re-initialized when we find the enum
 
     (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13 = calloc(1, sizeof(LTE_RACH_CE_LevelInfoList_r13_t));
     memset((*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13, 0, sizeof(LTE_RACH_CE_LevelInfoList_r13_t));
@@ -2783,7 +2781,7 @@ do_RRCConnectionSetup(
   mac_MainConfig->ul_SCH_Config->maxHARQ_Tx = maxHARQ_Tx; // max number of UL HARQ transmission
   mac_MainConfig->ul_SCH_Config->periodicBSR_Timer = periodicBSR_Timer;
   mac_MainConfig->ul_SCH_Config->retxBSR_Timer = LTE_RetxBSR_Timer_r12_sf320; // LTE_RetxBSR_Timer_r12_sf5120  // regular BSR timer
-  mac_MainConfig->ul_SCH_Config->ttiBundling = 0; // FALSE
+  mac_MainConfig->ul_SCH_Config->ttiBundling = 0; // false
   //* timeAlignmentTimerDedicated *//
   mac_MainConfig->timeAlignmentTimerDedicated = LTE_TimeAlignmentTimer_infinity;
   //* DRX Config *//
@@ -3137,7 +3135,7 @@ uint8_t do_RRCConnectionSetup_BR(
   //mac_MainConfig->ul_SCH_Config->maxHARQ_Tx = maxHARQ_Tx;
   mac_MainConfig->ul_SCH_Config->periodicBSR_Timer = periodicBSR_Timer;
   mac_MainConfig->ul_SCH_Config->retxBSR_Timer = LTE_RetxBSR_Timer_r12_sf320;
-  mac_MainConfig->ul_SCH_Config->ttiBundling = 0; // FALSE
+  mac_MainConfig->ul_SCH_Config->ttiBundling = 0; // false
   mac_MainConfig->timeAlignmentTimerDedicated = LTE_TimeAlignmentTimer_infinity;
   mac_MainConfig->drx_Config = NULL;
   mac_MainConfig->phr_Config = CALLOC(1, sizeof(*mac_MainConfig->phr_Config));
diff --git a/openair2/RRC/LTE/defs_NB_IoT.h b/openair2/RRC/LTE/defs_NB_IoT.h
index 37a26086b55..b98dbe22ccd 100644
--- a/openair2/RRC/LTE/defs_NB_IoT.h
+++ b/openair2/RRC/LTE/defs_NB_IoT.h
@@ -148,7 +148,7 @@ typedef struct UE_RRC_INFO_NB_IoT_s {
 //Measurement Report not supported in NB-IoT
 
 #define PAYLOAD_SIZE_MAX 1024
-#define RRC_BUF_SIZE 512
+#define RRC_BUF_SIZE 1024
 #define UNDEF_SECURITY_MODE 0xff
 #define NO_SECURITY_MODE 0x20
 
@@ -156,7 +156,7 @@ typedef struct UE_RRC_INFO_NB_IoT_s {
 #define RRC_TRANSACTION_IDENTIFIER_NUMBER  3
 
 typedef struct UE_S_TMSI_NB_IoT_s {
-  boolean_t  presence;
+  bool       presence;
   mme_code_t mme_code;
   m_tmsi_t   m_tmsi;
 } __attribute__ ((__packed__)) UE_S_TMSI_NB_IoT;
diff --git a/openair2/RRC/LTE/rrc_UE.c b/openair2/RRC/LTE/rrc_UE.c
index 9b37853ed2b..577ee3effdf 100644
--- a/openair2/RRC/LTE/rrc_UE.c
+++ b/openair2/RRC/LTE/rrc_UE.c
@@ -4351,8 +4351,8 @@ void rrc_ue_generate_nrMeasurementReport(protocol_ctxt_t *const ctxt_pP, uint8_t
         AssertFatal(size >= 0, "do_nrMeasurementReport failed \n");
         LOG_I(RRC, "[UE %d] Frame %d : Generating Measurement Report for eNB %d\n",
               ctxt_pP->module_id, ctxt_pP->frame, eNB_index);
-        int result = pdcp_data_req(ctxt_pP,  SRB_FLAG_YES, DCCH, rrc_mui++, 0, size, buffer, PDCP_TRANSMISSION_MODE_DATA,NULL, NULL);
-        AssertFatal (result == TRUE, "PDCP data request failed!\n");
+        const bool result = pdcp_data_req(ctxt_pP,  SRB_FLAG_YES, DCCH, rrc_mui++, 0, size, buffer, PDCP_TRANSMISSION_MODE_DATA,NULL, NULL);
+        AssertFatal (result == true, "PDCP data request failed!\n");
       }
     }
   }
@@ -4370,7 +4370,6 @@ void rrc_ue_generate_MeasurementReport(protocol_ctxt_t *const ctxt_pP, uint8_t e
   long             nElem, nElem1;
   float            rsrp_filtered, rsrq_filtered;
   static frame_t   pframe=0;
-  int              result;
   nElem = 98;
   nElem1 = 35;
   target_eNB_offset = UE_rrc_inst[ctxt_pP->module_id].Info[0].handoverTarget; // eNB_offset of target eNB: used to obtain the mod_id of target eNB
@@ -4420,8 +4419,8 @@ void rrc_ue_generate_MeasurementReport(protocol_ctxt_t *const ctxt_pP, uint8_t e
         AssertFatal(size >= 0, "do_MeasurementReport failed \n");
         LOG_I(RRC, "[UE %d] Frame %d : Generating Measurement Report for eNB %d. Size is %zu\n",
               ctxt_pP->module_id, ctxt_pP->frame, eNB_index, size);
-        result = pdcp_data_req(ctxt_pP,  SRB_FLAG_YES, DCCH, rrc_mui++, 0, size, buffer, PDCP_TRANSMISSION_MODE_DATA,NULL, NULL);
-        AssertFatal (result == TRUE, "PDCP data request failed!\n");
+        const bool result = pdcp_data_req(ctxt_pP,  SRB_FLAG_YES, DCCH, rrc_mui++, 0, size, buffer, PDCP_TRANSMISSION_MODE_DATA,NULL, NULL);
+        AssertFatal (result == true, "PDCP data request failed!\n");
         //LOG_D(RRC, "[UE %d] Frame %d Sending MeasReport (%d bytes) through DCCH%d to PDCP \n",ue_mod_idP,frameP, size, DCCH);
       }
 
diff --git a/openair2/RRC/LTE/rrc_defs.h b/openair2/RRC/LTE/rrc_defs.h
index f537dcbbd2b..22c8a14863e 100644
--- a/openair2/RRC/LTE/rrc_defs.h
+++ b/openair2/RRC/LTE/rrc_defs.h
@@ -316,7 +316,7 @@ typedef enum SL_TRIGGER_e {
 #define MAX_MEAS_ID 7
 
 #define PAYLOAD_SIZE_MAX 1024
-#define RRC_BUF_SIZE 512
+#define RRC_BUF_SIZE 1024
 #define UNDEF_SECURITY_MODE 0xff
 #define NO_SECURITY_MODE 0x20
 
@@ -367,7 +367,7 @@ typedef struct UE_RRC_INFO_s {
 } __attribute__ ((__packed__)) UE_RRC_INFO;
 
 typedef struct UE_S_TMSI_s {
-  boolean_t  presence;
+  bool       presence;
   mme_code_t mme_code;
   m_tmsi_t   m_tmsi;
 } __attribute__ ((__packed__)) UE_S_TMSI;
@@ -484,7 +484,7 @@ typedef struct MEASUREMENT_INFO_s {
 typedef struct {
   char Payload[RRC_BUFFER_SIZE_MAX];
   char Header[RRC_HEADER_SIZE_MAX];
-  char payload_size;
+  uint16_t payload_size;
 } RRC_BUFFER;
 #define RRC_BUFFER_SIZE sizeof(RRC_BUFFER)
 
@@ -931,7 +931,7 @@ typedef struct UE_RRC_INST_s {
 } UE_RRC_INST;
 
 typedef struct UE_PF_PO_s {
-  boolean_t enable_flag;  /* flag indicate whether current object is used */
+  bool      enable_flag;  /* flag indicate whether current object is used */
   uint16_t ue_index_value;  /* UE index value */
   uint8_t PF_min;  /* minimal value of Paging Frame (PF) */
   uint8_t PO;  /* Paging Occasion (PO) */
diff --git a/openair2/RRC/LTE/rrc_eNB.c b/openair2/RRC/LTE/rrc_eNB.c
index ea98d3169d5..8be30175e11 100644
--- a/openair2/RRC/LTE/rrc_eNB.c
+++ b/openair2/RRC/LTE/rrc_eNB.c
@@ -150,7 +150,7 @@ init_SI(
   LTE_SystemInformationBlockType1_v1310_IEs_t *sib1_v13ext=(LTE_SystemInformationBlockType1_v1310_IEs_t *)NULL;
   LOG_D(RRC,"%s()\n\n\n\n",__FUNCTION__);
 
-  if(configuration->radioresourceconfig[CC_id].mbms_dedicated_serving_cell == TRUE) {
+  if(configuration->radioresourceconfig[CC_id].mbms_dedicated_serving_cell == true) {
     LOG_A(RRC, "Configuring MIB FeMBMS (N_RB_DL %d)\n",
           (int)configuration->N_RB_DL[CC_id]);
     RC.rrc[ctxt_pP->module_id]->carrier[CC_id].MIB_FeMBMS = (uint8_t *) malloc16(4);
@@ -266,7 +266,7 @@ init_SI(
     carrier->sizeof_SIB1 = do_SIB1(&rrc->carrier[CC_id],
                                    ctxt_pP->module_id,
                                    CC_id,
-                                   FALSE,
+                                   false,
                                    configuration
                                   );
     AssertFatal(carrier->sizeof_SIB1 != 255,"FATAL, RC.rrc[enb_mod_idP].carrier[CC_id].sizeof_SIB1 == 255");
@@ -276,7 +276,7 @@ init_SI(
       RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB1_BR = (uint8_t *) malloc16(32);
       RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1_BR = do_SIB1(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id],
           ctxt_pP->module_id,
-          CC_id, TRUE, configuration);
+          CC_id, true, configuration);
     }
   }
 
@@ -285,7 +285,7 @@ init_SI(
     AssertFatal(carrier->SIB23!=NULL,"cannot allocate memory for SIB");
     carrier->sizeof_SIB23 = do_SIB23(ctxt_pP->module_id,
                                      CC_id,
-                                     FALSE,
+                                     false,
                                      configuration
                                     );
     LOG_I(RRC,"do_SIB23, size %d \n ", carrier->sizeof_SIB23);
@@ -295,7 +295,7 @@ init_SI(
     if (configuration->schedulingInfoSIB1_BR_r13[CC_id]>0) {
       carrier->SIB23_BR = (uint8_t *) malloc16(64);
       AssertFatal(carrier->SIB23_BR!=NULL,"cannot allocate memory for SIB");
-      carrier->sizeof_SIB23_BR = do_SIB23(ctxt_pP->module_id, CC_id, TRUE, configuration);
+      carrier->sizeof_SIB23_BR = do_SIB23(ctxt_pP->module_id, CC_id, true, configuration);
     }
 
     LOG_T(RRC, PROTOCOL_RRC_CTXT_FMT" SIB2/3 Contents (partial)\n",
@@ -661,7 +661,7 @@ rrc_eNB_get_next_transaction_identifier(
 ////-----------------------------------------------------------------------------
 //{
 //
-//    boolean_t      reg = FALSE;
+//    bool      reg = false;
 //    module_id_t    i;
 //
 //    AssertFatal(enb_mod_idP < NB_eNB_INST, "eNB index invalid (%d/%d)!", enb_mod_idP, NB_eNB_INST);
@@ -669,12 +669,12 @@ rrc_eNB_get_next_transaction_identifier(
 //    for (i = 0; i < MAX_MOBILES_PER_ENB; i++) {
 //        if (RC.rrc[enb_mod_idP]->Info.UE_info[i] == UE_identity) {
 //            // UE_identity already registered
-//            reg = TRUE;
+//            reg = true;
 //            break;
 //        }
 //    }
 //
-//    if (reg == FALSE) {
+//    if (reg == false) {
 //        return (UE_MODULE_INVALID);
 //    } else
 //        return (i);
@@ -713,7 +713,7 @@ rrc_eNB_ue_context_stmsi_exist(
           m_tmsiP, mme_codeP, ue_context_p,
           ue_context_p->ue_context.rnti);
 
-    if (ue_context_p->ue_context.Initialue_identity_s_TMSI.presence == TRUE) {
+    if (ue_context_p->ue_context.Initialue_identity_s_TMSI.presence == true) {
       printf("=> S-TMSI %x, MME %x\n",
              ue_context_p->ue_context.Initialue_identity_s_TMSI.m_tmsi,
              ue_context_p->ue_context.Initialue_identity_s_TMSI.mme_code);
@@ -976,28 +976,24 @@ rrc_eNB_free_UE(
   put_UE_in_freelist(enb_mod_idP, rnti, 1);
 }
 
-void remove_UE_from_freelist(module_id_t mod_id, rnti_t rnti) {
+void put_UE_in_freelist(module_id_t mod_id, rnti_t rnti, bool removeFlag) {
   eNB_MAC_INST                             *eNB_MAC = RC.mac[mod_id];
   pthread_mutex_lock(&lock_ue_freelist);
-  UE_free_list_t                           *free_list = &eNB_MAC->UE_free_list;
-  free_list->UE_free_ctrl[free_list->head_freelist].rnti = 0;
-  free_list->head_freelist = (free_list->head_freelist + 1) % (NUMBER_OF_UE_MAX+1);
-  free_list->num_UEs--;
-  pthread_mutex_unlock(&lock_ue_freelist);
-}
-
-void put_UE_in_freelist(module_id_t mod_id, rnti_t rnti, boolean_t removeFlag) {
-  UE_free_list_t                           *free_list = NULL;
-  eNB_MAC_INST                             *eNB_MAC = RC.mac[mod_id];
-  pthread_mutex_lock(&lock_ue_freelist);
-  free_list = &eNB_MAC->UE_free_list;
-  free_list->UE_free_ctrl[free_list->tail_freelist].rnti = rnti;
-  free_list->UE_free_ctrl[free_list->tail_freelist].removeContextFlg = removeFlag;
-  free_list->UE_free_ctrl[free_list->tail_freelist].raFlag = 0;
-  free_list->num_UEs++;
+  LOG_I(PHY,"add ue %d in fre list, context flag: %d\n", rnti, removeFlag);
+  int i;
+  for (i=0; i < sizeofArray(eNB_MAC->UE_free_ctrl); i++) 
+    if (eNB_MAC->UE_free_ctrl[i].rnti == 0)
+      break;
+  if (i==sizeofArray(eNB_MAC->UE_free_ctrl)) {
+    LOG_E(PHY,"List of UE to free is full\n");
+    pthread_mutex_unlock(&lock_ue_freelist);
+    return;
+  }
+  eNB_MAC->UE_free_ctrl[i].rnti = rnti;
+  eNB_MAC->UE_free_ctrl[i].removeContextFlg = removeFlag;
+  eNB_MAC->UE_free_ctrl[i].raFlag = 0;
   eNB_MAC->UE_release_req.ue_release_request_body.ue_release_request_TLVs_list[eNB_MAC->UE_release_req.ue_release_request_body.number_of_TLVs].rnti = rnti;
   eNB_MAC->UE_release_req.ue_release_request_body.number_of_TLVs++;
-  free_list->tail_freelist = (free_list->tail_freelist + 1) % (NUMBER_OF_UE_MAX+1);
   pthread_mutex_unlock(&lock_ue_freelist);
 }
 
@@ -1007,104 +1003,47 @@ extern void clean_eNb_ulsch(LTE_eNB_ULSCH_t *ulsch);
 extern void clean_eNb_dlsch(LTE_eNB_DLSCH_t *dlsch);
 
 void release_UE_in_freeList(module_id_t mod_id) {
-  int i, j, CC_id, pdu_number;
-  protocol_ctxt_t                           ctxt;
-  nfapi_ul_config_request_body_t           *ul_req_tmp = NULL;
   PHY_VARS_eNB                             *eNB_PHY = NULL;
-  struct rrc_eNB_ue_context_s              *ue_context_pP = NULL;
   eNB_MAC_INST                             *eNB_MAC = RC.mac[mod_id];
-  boolean_t                                 remove_UEContext;
-  rnti_t                                    rnti;
-  int                                       head, tail, ue_num;
   pthread_mutex_lock(&lock_ue_freelist);
-  head = eNB_MAC->UE_free_list.head_freelist;
-  tail = eNB_MAC->UE_free_list.tail_freelist;
 
-  if(head == tail) {
-    pthread_mutex_unlock(&lock_ue_freelist);
-    return;
-  }
-
-  if(tail < head) {
-    tail = head + eNB_MAC->UE_free_list.num_UEs;
-  }
-
-  pthread_mutex_unlock(&lock_ue_freelist);
-
-  for(ue_num = head; ue_num < tail; ue_num++) {
-    ue_num = ue_num % (NUMBER_OF_UE_MAX+1);
-    rnti = eNB_MAC->UE_free_list.UE_free_ctrl[ue_num].rnti;
+  for(int ue_num = 0; ue_num < sizeofArray(eNB_MAC->UE_free_ctrl) ; ue_num++) {
+    rnti_t rnti = eNB_MAC->UE_free_ctrl[ue_num].rnti;
 
     if(rnti != 0) {
-      remove_UEContext = eNB_MAC->UE_free_list.UE_free_ctrl[ue_num].removeContextFlg;
+      protocol_ctxt_t  ctxt;
       PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, mod_id, ENB_FLAG_YES, rnti, 0, 0,mod_id);
 
-      for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) {
+      for (int CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) {
         eNB_PHY = RC.eNB[mod_id][CC_id];
         int id;
         // clean ULSCH entries for rnti
-        id = find_ulsch(rnti,eNB_PHY,eNB_MAC->UE_free_list.UE_free_ctrl[ue_num].raFlag ? SEARCH_EXIST_RA : SEARCH_EXIST);
+        id = find_ulsch(rnti,eNB_PHY,eNB_MAC->UE_free_ctrl[ue_num].raFlag ? SEARCH_EXIST_RA : SEARCH_EXIST);
 
         if (id>=0) clean_eNb_ulsch(eNB_PHY->ulsch[id]);
 
         // clean DLSCH entries for rnti
-        id = find_dlsch(rnti,eNB_PHY,eNB_MAC->UE_free_list.UE_free_ctrl[ue_num].raFlag ? SEARCH_EXIST_RA : SEARCH_EXIST);
+        id = find_dlsch(rnti,eNB_PHY,eNB_MAC->UE_free_ctrl[ue_num].raFlag ? SEARCH_EXIST_RA : SEARCH_EXIST);
 
         if (id>=0) clean_eNb_dlsch(eNB_PHY->dlsch[id][0]);
 
         // clean UCI entries for rnti
-        for (i=0; i<NUMBER_OF_UCI_MAX; i++) {
+        for (int i=0; i<NUMBER_OF_UCI_MAX; i++) {
           if(eNB_PHY->uci_vars[i].rnti == rnti) {
             LOG_I(MAC, "clean eNb uci_vars[%d] UE %x \n",i, rnti);
             memset(&eNB_PHY->uci_vars[i],0,sizeof(LTE_eNB_UCI));
           }
         }
 
-        /*
-              for (i=0; i<MAX_MOBILES_PER_ENB; i++) {
-                ulsch = eNB_PHY->ulsch[i];
-
-                if((ulsch != NULL) && (ulsch->rnti == rnti)) {
-                  void clean_eNb_ulsch(LTE_eNB_ULSCH_t *ulsch);
-                  LOG_I(RRC, "clean_eNb_ulsch ulsch[%d] UE %x\n", i, rnti);
-                  clean_eNb_ulsch(ulsch);
-                }
-
-                dlsch = eNB_PHY->dlsch[i][0];
-
-                if((dlsch != NULL) && (dlsch->rnti == rnti)) {
-                  void clean_eNb_dlsch(LTE_eNB_DLSCH_t *dlsch);
-                  LOG_I(RRC, "clean_eNb_dlsch dlsch[%d] UE %x \n", i, rnti);
-                  clean_eNb_dlsch(dlsch);
-                }
-              }
-
-              ulsch = eNB_PHY->ulsch[i];
-
-              if((ulsch != NULL) && (ulsch->rnti == rnti)) {
-                void clean_eNb_ulsch(LTE_eNB_ULSCH_t *ulsch);
-                LOG_I(RRC, "clean_eNb_ulsch ulsch[%d] UE %x\n", i, rnti);
-                clean_eNb_ulsch(ulsch);
-              }
-
-              for (i=0; i<NUMBER_OF_UCI_MAX; i++) {
-                if(eNB_PHY->uci_vars[i].rnti == rnti) {
-                  LOG_I(MAC, "clean eNb uci_vars[%d] UE %x \n",i, rnti);
-                  memset(&eNB_PHY->uci_vars[i],0,sizeof(LTE_eNB_UCI));
-                }
-              }
-        */
-
         if (flexran_agent_get_rrc_xface(mod_id)) {
-          flexran_agent_get_rrc_xface(mod_id)->flexran_agent_notify_ue_state_change(
-            mod_id, rnti, PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_DEACTIVATED);
+          flexran_agent_get_rrc_xface(mod_id)->flexran_agent_notify_ue_state_change( mod_id, rnti, PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_DEACTIVATED);
         }
 
-        for(j = 0; j < 10; j++) {
-          ul_req_tmp = &eNB_MAC->UL_req_tmp[CC_id][j].ul_config_request_body;
+        for(int j = 0; j < 10; j++) {
+          nfapi_ul_config_request_body_t *ul_req_tmp  = &eNB_MAC->UL_req_tmp[CC_id][j].ul_config_request_body;
 
           if(ul_req_tmp) {
-            pdu_number = ul_req_tmp->number_of_pdus;
+            int pdu_number = ul_req_tmp->number_of_pdus;
 
             for(int pdu_index = pdu_number-1; pdu_index >= 0; pdu_index--) {
               if((ul_req_tmp->ul_config_pdu_list[pdu_index].ulsch_pdu.ulsch_pdu_rel8.rnti == rnti) ||
@@ -1126,7 +1065,8 @@ void release_UE_in_freeList(module_id_t mod_id) {
       }
 
       if (!NODE_IS_CU(RC.rrc[mod_id]->node_type)) {
-        rrc_mac_remove_ue(mod_id,rnti);
+	if (!eNB_MAC->UE_free_ctrl[ue_num].raFlag)
+	    rrc_mac_remove_ue(mod_id,rnti);
         rrc_rlc_remove_ue(&ctxt);
         pdcp_remove_UE(&ctxt);
       } else {
@@ -1139,19 +1079,20 @@ void release_UE_in_freeList(module_id_t mod_id) {
         itti_send_msg_to_task(TASK_CU_F1, mod_id, m);
       }
 
-      if(remove_UEContext) {
-        ue_context_pP = rrc_eNB_get_ue_context(RC.rrc[mod_id],rnti);
-
+      if(eNB_MAC->UE_free_ctrl[ue_num].removeContextFlg) {
+	struct rrc_eNB_ue_context_s *ue_context_pP = rrc_eNB_get_ue_context(RC.rrc[mod_id],rnti);
         if(ue_context_pP) {
+          LOG_I(PHY, "remove RNTI %04x\n", rnti);
           rrc_eNB_remove_ue_context(&ctxt,RC.rrc[mod_id],
                                     (struct rrc_eNB_ue_context_s *) ue_context_pP);
         }
       }
 
-      LOG_I(RRC, "[release_UE_in_freeList] remove UE %x from freeList\n", rnti);
-      remove_UE_from_freelist(mod_id, rnti);
+      LOG_I(RRC, "[release_UE_in_freeList] remove UE %x from freeList ra context: %d\n", rnti, eNB_MAC->UE_free_ctrl[ue_num].raFlag);
+      eNB_MAC->UE_free_ctrl[ue_num].rnti = 0;
     }
   }
+  pthread_mutex_unlock(&lock_ue_freelist);
 }
 
 int rrc_eNB_previous_SRB2(rrc_eNB_ue_context_t         *ue_context_pP) {
@@ -1678,7 +1619,7 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
   ue_context_pP->ue_context.rnti               = ctxt_pP->rnti;
 
   if (EPC_MODE_ENABLED) {
-    uint8_t send_security_mode_command = FALSE;
+    uint8_t send_security_mode_command = false;
     rrc_pdcp_config_security(
       ctxt_pP,
       ue_context_pP,
@@ -2332,7 +2273,7 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t *co
         // PDCP
         PDCP_rlc_AM = CALLOC(1, sizeof(*PDCP_rlc_AM));
         DRB_pdcp_config->rlc_AM = PDCP_rlc_AM;
-        PDCP_rlc_AM->statusReportRequired = FALSE;
+        PDCP_rlc_AM->statusReportRequired = false;
         break;
 
       default :
@@ -2590,7 +2531,7 @@ rrc_eNB_modify_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t *cons
 
         PDCP_rlc_AM = CALLOC(1, sizeof(*PDCP_rlc_AM));
         DRB_pdcp_config->rlc_AM = PDCP_rlc_AM;
-        PDCP_rlc_AM->statusReportRequired = FALSE;
+        PDCP_rlc_AM->statusReportRequired = false;
         break;
 
       default :
@@ -2951,7 +2892,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
 #ifdef RRC_DEFAULT_RAB_IS_AM // EXMIMO_IOT
   PDCP_rlc_AM = CALLOC(1, sizeof(*PDCP_rlc_AM));
   DRB_pdcp_config->rlc_AM = PDCP_rlc_AM;
-  PDCP_rlc_AM->statusReportRequired = FALSE;
+  PDCP_rlc_AM->statusReportRequired = false;
 #else
   PDCP_rlc_UM = CALLOC(1, sizeof(*PDCP_rlc_UM));
   DRB_pdcp_config->rlc_UM = PDCP_rlc_UM;
@@ -3347,7 +3288,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
     ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.triggerType.choice.event.eventId.present = LTE_ReportConfigInterRAT__triggerType__event__eventId_PR_eventB1_NR_r15;
     ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.triggerType.choice.event.eventId.choice.eventB1_NR_r15.b1_ThresholdNR_r15.present = LTE_ThresholdNR_r15_PR_nr_RSRP_r15;
     ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.triggerType.choice.event.eventId.choice.eventB1_NR_r15.b1_ThresholdNR_r15.choice.nr_RSRP_r15 = 0;
-    ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.triggerType.choice.event.eventId.choice.eventB1_NR_r15.reportOnLeave_r15 = FALSE;
+    ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.triggerType.choice.event.eventId.choice.eventB1_NR_r15.reportOnLeave_r15 = false;
     ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.triggerType.choice.event.hysteresis = 2;
     ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.triggerType.choice.event.timeToTrigger = LTE_TimeToTrigger_ms80;
     ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.maxReportCells = 4;
@@ -3361,9 +3302,9 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
 
     if (ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.ext7->reportQuantityCellNR_r15 == NULL) exit(1);
 
-    ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.ext7->reportQuantityCellNR_r15->ss_rsrp = TRUE;
-    ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.ext7->reportQuantityCellNR_r15->ss_rsrq = TRUE;
-    ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.ext7->reportQuantityCellNR_r15->ss_sinr = TRUE;
+    ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.ext7->reportQuantityCellNR_r15->ss_rsrp = true;
+    ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.ext7->reportQuantityCellNR_r15->ss_rsrq = true;
+    ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.ext7->reportQuantityCellNR_r15->ss_sinr = true;
     ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_NR);
     LOG_A(RRC, "Generating RRCCConnectionReconfigurationRequest (NRUE Measurement Report Request).\n");
   }
@@ -3714,7 +3655,7 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt
 #ifdef RRC_DEFAULT_RAB_IS_AM // EXMIMO_IOT
   PDCP_rlc_AM = CALLOC(1, sizeof(*PDCP_rlc_AM));
   DRB_pdcp_config->rlc_AM = PDCP_rlc_AM;
-  PDCP_rlc_AM->statusReportRequired = FALSE;
+  PDCP_rlc_AM->statusReportRequired = 0; // FALSE
 #else
   PDCP_rlc_UM = CALLOC(1, sizeof(*PDCP_rlc_UM));
   DRB_pdcp_config->rlc_UM = PDCP_rlc_UM;
@@ -5052,7 +4993,7 @@ check_handovers(
         && ue_context_p->ue_context.handover_info != NULL &&
         ue_context_p->ue_context.handover_info->forwarding_state == FORWARDING_NO_EMPTY ) {
       MessageDef   *msg_p;
-      int    result;
+      bool result;
       protocol_ctxt_t  ctxt;
 
       do {
@@ -5090,7 +5031,7 @@ check_handovers(
                                       GTPV1U_ENB_DATA_FORWARDING_IND (msg_p).mode, NULL, NULL
                                      );
 
-              if (result != TRUE) {
+              if (result != true) {
                 LOG_E(RRC, "target enb send data forwarding buffer to PDCP request failed!\n");
               } else {
                 LOG_D(RRC, "target enb send data forwarding buffer to PDCP!\n");
@@ -5158,7 +5099,7 @@ check_handovers(
                                       GTPV1U_ENB_END_MARKER_IND (msg_p).mode, NULL, NULL
                                      );
 
-              if (result != TRUE) {
+              if (result != true) {
                 LOG_E(RRC, "target enb send spgw buffer to PDCP request failed!\n");
               } else {
                 LOG_D(RRC, "target enb send spgw buffer to PDCP!\n");
@@ -5390,7 +5331,7 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
 #ifdef RRC_DEFAULT_RAB_IS_AM // EXMIMO_IOT
   PDCP_rlc_AM = CALLOC(1, sizeof(*PDCP_rlc_AM));
   DRB_pdcp_config->rlc_AM = PDCP_rlc_AM;
-  PDCP_rlc_AM->statusReportRequired = FALSE;
+  PDCP_rlc_AM->statusReportRequired = 0; // FALSE
 #else
   PDCP_rlc_UM = CALLOC(1, sizeof(*PDCP_rlc_UM));
   DRB_pdcp_config->rlc_UM = PDCP_rlc_UM;
@@ -6280,10 +6221,7 @@ rrc_eNB_configure_rbs_handover(struct rrc_eNB_ue_context_s *ue_context_p, protoc
       ctxt_pP,
       ue_context_p,
       ue_context_p->ue_context.kenb);
-    rrc_pdcp_config_security(
-      ctxt_pP,
-      ue_context_p,
-      FALSE);
+    rrc_pdcp_config_security(ctxt_pP, ue_context_p, false);
   }
 
   // Add a new user (called during the HO procedure)
@@ -6361,9 +6299,9 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
 
     UE_sched_ctrl_t *UE_scheduling_control = &(RC.mac[module_id]->UE_info.UE_sched_ctrl[UE_id_mac]);
 
-    if (UE_scheduling_control->cdrx_waiting_ack == TRUE) {
-      UE_scheduling_control->cdrx_waiting_ack = FALSE;
-      UE_scheduling_control->cdrx_configured = TRUE; // Set to TRUE when RRC Connection Reconfiguration is received
+    if (UE_scheduling_control->cdrx_waiting_ack == true) {
+      UE_scheduling_control->cdrx_waiting_ack = false;
+      UE_scheduling_control->cdrx_configured = true; // Set to TRUE when RRC Connection Reconfiguration is received
       LOG_I(RRC, "CDRX configuration activated after RRC Connection Reconfiguration Complete reception\n");
     }
   }
@@ -6627,7 +6565,7 @@ rrc_eNB_generate_RRCConnectionSetup(
 )
 //-----------------------------------------------------------------------------
 {
-  boolean_t is_mtc = ctxt_pP->brOption;
+  bool is_mtc = ctxt_pP->brOption;
   LTE_LogicalChannelConfig_t             *SRB1_logicalChannelConfig;  //,*SRB2_logicalChannelConfig;
   LTE_SRB_ToAddModList_t                **SRB_configList;
   LTE_SRB_ToAddMod_t                     *SRB1_config;
@@ -7249,6 +7187,7 @@ rrc_eNB_decode_ccch(
                 LOG_I(RRC," S-TMSI exists, ue_context_p %p, old rnti %x => %x\n",ue_context_p,ue_context_p->ue_context.rnti,ctxt_pP->rnti);
 
                 if (!NODE_IS_CU(RC.rrc[ctxt_pP->module_id]->node_type)) {
+		  LOG_I(PHY, "remove RNTI %04x\n", ue_context_p->ue_context.rnti);
                   rrc_mac_remove_ue(ctxt_pP->module_id, ue_context_p->ue_context.rnti);
                 } else {
                   MessageDef *m = itti_alloc_new_message(TASK_RRC_ENB, 0, F1AP_UE_CONTEXT_RELEASE_CMD);
@@ -7284,7 +7223,7 @@ rrc_eNB_decode_ccch(
                   LOG_E(RRC, "%s:%d:%s: rrc_eNB_get_next_free_ue_context returned NULL\n", __FILE__, __LINE__, __FUNCTION__);
 
                 if (ue_context_p != NULL) {
-                  ue_context_p->ue_context.Initialue_identity_s_TMSI.presence = TRUE;
+                  ue_context_p->ue_context.Initialue_identity_s_TMSI.presence = true;
                   ue_context_p->ue_context.Initialue_identity_s_TMSI.mme_code = mme_code;
                   ue_context_p->ue_context.Initialue_identity_s_TMSI.m_tmsi = m_tmsi;
                 } else {
@@ -8766,7 +8705,7 @@ void rrc_subframe_process(protocol_ctxt_t *const ctxt_pP, const int CC_id) {
 
     if ((ctxt_pP->frame&127) == 0 && ctxt_pP->subframe ==0) {
       if (fd) {
-        if (ue_context_p->ue_context.Initialue_identity_s_TMSI.presence == TRUE) {
+        if (ue_context_p->ue_context.Initialue_identity_s_TMSI.presence == true) {
           fprintf(fd,"RRC UE rnti %x: S-TMSI %x failure timer %d/8\n",
                 ue_context_p->ue_context.rnti,
                 ue_context_p->ue_context.Initialue_identity_s_TMSI.m_tmsi,
diff --git a/openair2/RRC/LTE/rrc_eNB_GTPV1U.c b/openair2/RRC/LTE/rrc_eNB_GTPV1U.c
index 575a38ee3d9..64b5594dd9e 100644
--- a/openair2/RRC/LTE/rrc_eNB_GTPV1U.c
+++ b/openair2/RRC/LTE/rrc_eNB_GTPV1U.c
@@ -84,23 +84,20 @@ rrc_eNB_process_GTPV1U_CREATE_TUNNEL_RESP(
 }
 
 //------------------------------------------------------------------------------
-boolean_t
-gtpv_data_req(
-  const protocol_ctxt_t*   const ctxt_pP,
-  const rb_id_t                  rb_idP,
-  const mui_t                    muiP,
-  const confirm_t                confirmP,
-  const sdu_size_t               sdu_sizeP,
-  uint8_t*                 const buffer_pP,
-  const pdcp_transmission_mode_t modeP,
-  uint32_t task_id
-)
+bool gtpv_data_req(const protocol_ctxt_t*   const ctxt_pP,
+                   const rb_id_t                  rb_idP,
+                   const mui_t                    muiP,
+                   const confirm_t                confirmP,
+                   const sdu_size_t               sdu_sizeP,
+                   uint8_t*                 const buffer_pP,
+                   const pdcp_transmission_mode_t modeP,
+                   uint32_t task_id)
 //------------------------------------------------------------------------------
 {
   if(sdu_sizeP == 0)
   {
     LOG_I(GTPU,"gtpv_data_req sdu_sizeP == 0");
-    return FALSE;
+    return false;
   }
   LOG_D(GTPU,"gtpv_data_req ue rnti %x sdu_sizeP %d rb id %ld", ctxt_pP->rnti, sdu_sizeP, rb_idP);
   MessageDef *message_p;
@@ -129,7 +126,7 @@ gtpv_data_req(
     GTPV1U_ENB_DATA_FORWARDING_IND (message_p).eNB_index = ctxt_pP->eNB_index;
     
     itti_send_msg_to_task (TASK_DATA_FORWARDING, ctxt_pP->instance, message_p);
-    return TRUE; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
+    return true; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
   } else if (task_id == TASK_END_MARKER){
     
     LOG_I(GTPU,"gtpv_data_req task_id = TASK_END_MARKER\n");
@@ -152,23 +149,22 @@ gtpv_data_req(
     GTPV1U_ENB_END_MARKER_IND (message_p).eNB_index = ctxt_pP->eNB_index;
     
     itti_send_msg_to_task (TASK_END_MARKER, ctxt_pP->instance, message_p);
-    return TRUE; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
+    return true; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
   }
   LOG_E(RRC, "Impossible state\n");
-  return FALSE;
+  return false;
 }
 
-boolean_t gtpv_data_req_new (
-  protocol_ctxt_t  *ctxt,
-  const srb_flag_t     srb_flagP,
-  const rb_id_t        rb_idP,
-  const mui_t          muiP,
-  const confirm_t      confirmP,
-  const sdu_size_t     sdu_buffer_sizeP,
-  unsigned char *const sdu_buffer_pP,
-  const pdcp_transmission_mode_t modeP,
-  const uint32_t *sourceL2Id,
-  const uint32_t *destinationL2Id) {
+bool gtpv_data_req_new(protocol_ctxt_t  *ctxt,
+                       const srb_flag_t     srb_flagP,
+                       const rb_id_t        rb_idP,
+                       const mui_t          muiP,
+                       const confirm_t      confirmP,
+                       const sdu_size_t     sdu_buffer_sizeP,
+                       unsigned char *const sdu_buffer_pP,
+                       const pdcp_transmission_mode_t modeP,
+                       const uint32_t *sourceL2Id,
+                       const uint32_t *destinationL2Id) {
   int task;
 
   if (sdu_buffer_sizeP==0)
diff --git a/openair2/RRC/LTE/rrc_eNB_GTPV1U.h b/openair2/RRC/LTE/rrc_eNB_GTPV1U.h
index ab789099cae..f991cbd5f62 100644
--- a/openair2/RRC/LTE/rrc_eNB_GTPV1U.h
+++ b/openair2/RRC/LTE/rrc_eNB_GTPV1U.h
@@ -60,16 +60,13 @@ void rrc_eNB_send_GTPV1U_ENB_DELETE_TUNNEL_REQ(
   rrc_eNB_ue_context_t* ue_context_pP
 );
 
-boolean_t
-gtpv_data_req(
-  const protocol_ctxt_t*   const ctxt_pP,
-  const rb_id_t                  rb_idP,
-  const mui_t                    muiP,
-  const confirm_t                confirmP,
-  const sdu_size_t               sdu_sizeP,
-  uint8_t*                 const buffer_pP,
-  const pdcp_transmission_mode_t modeP,
-  uint32_t task_id
-);
+bool gtpv_data_req(const protocol_ctxt_t*   const ctxt_pP,
+                   const rb_id_t                  rb_idP,
+                   const mui_t                    muiP,
+                   const confirm_t                confirmP,
+                   const sdu_size_t               sdu_sizeP,
+                   uint8_t*                 const buffer_pP,
+                   const pdcp_transmission_mode_t modeP,
+                   uint32_t task_id);
 
 #endif /* RRC_ENB_GTPV1U_H_ */
diff --git a/openair2/RRC/LTE/rrc_eNB_S1AP.c b/openair2/RRC/LTE/rrc_eNB_S1AP.c
index f24c9ab1b61..aefbc018315 100644
--- a/openair2/RRC/LTE/rrc_eNB_S1AP.c
+++ b/openair2/RRC/LTE/rrc_eNB_S1AP.c
@@ -402,15 +402,13 @@ static e_LTE_SecurityAlgorithmConfig__integrityProtAlgorithm rrc_eNB_select_inte
  *\param mod_id Instance ID of eNB.
  *\param ue_index Instance ID of UE in the eNB.
  *\param security_capabilities The security capabilities received from S1AP.
- *\return TRUE if at least one algorithm has been changed else FALSE.
+ *\return true if at least one algorithm has been changed else false.
  */
 int
-rrc_eNB_process_security(
-  const protocol_ctxt_t *const ctxt_pP,
-  rrc_eNB_ue_context_t *const ue_context_pP,
-  security_capabilities_t *security_capabilities_pP
-) {
-  boolean_t                                             changed = FALSE;
+rrc_eNB_process_security(const protocol_ctxt_t *const ctxt_pP,
+                         rrc_eNB_ue_context_t *const ue_context_pP,
+                         security_capabilities_t *security_capabilities_pP) {
+  bool                                                  changed = false;
   LTE_CipheringAlgorithm_r12_t                          cipheringAlgorithm;
   e_LTE_SecurityAlgorithmConfig__integrityProtAlgorithm integrityProtAlgorithm;
   /* Save security parameters */
@@ -428,14 +426,14 @@ rrc_eNB_process_security(
 
   if (ue_context_pP->ue_context.ciphering_algorithm != cipheringAlgorithm) {
     ue_context_pP->ue_context.ciphering_algorithm = cipheringAlgorithm;
-    changed = TRUE;
+    changed = true;
   }
 
   integrityProtAlgorithm = rrc_eNB_select_integrity (ue_context_pP->ue_context.security_capabilities.integrity_algorithms);
 
   if (ue_context_pP->ue_context.integrity_algorithm != integrityProtAlgorithm) {
     ue_context_pP->ue_context.integrity_algorithm = integrityProtAlgorithm;
-    changed = TRUE;
+    changed = true;
   }
 
   LOG_I (RRC, "[eNB %d][UE %x] Selected security algorithms (%p): %lx, %x, %s\n",
@@ -532,7 +530,7 @@ rrc_pdcp_config_security(
       pdcp_p,
       DCCH,
       DCCH+2,
-      (send_security_mode_command == TRUE)  ?
+      (send_security_mode_command == true)  ?
       0 | (ue_context_pP->ue_context.integrity_algorithm << 4) :
       (ue_context_pP->ue_context.ciphering_algorithm )         |
       (ue_context_pP->ue_context.integrity_algorithm << 4),
@@ -960,12 +958,12 @@ int rrc_eNB_process_S1AP_INITIAL_CONTEXT_SETUP_REQ(MessageDef *msg_p, const char
       ue_context_p,
       S1AP_INITIAL_CONTEXT_SETUP_REQ(msg_p).security_key);
     {
-      uint8_t send_security_mode_command = TRUE;
+      uint8_t send_security_mode_command = true;
 #ifndef EXMIMO_IOT
 
       if ((ue_context_p->ue_context.ciphering_algorithm == SecurityAlgorithmConfig__cipheringAlgorithm_eea0)
           && (ue_context_p->ue_context.integrity_algorithm == INTEGRITY_ALGORITHM_NONE)) {
-        send_security_mode_command = FALSE;
+        send_security_mode_command = false;
       }
 
 #endif
@@ -978,7 +976,7 @@ int rrc_eNB_process_S1AP_INITIAL_CONTEXT_SETUP_REQ(MessageDef *msg_p, const char
         rrc_eNB_generate_SecurityModeCommand (
           &ctxt,
           ue_context_p);
-        send_security_mode_command = FALSE;
+        send_security_mode_command = false;
         // apply ciphering after RRC security command mode
         rrc_pdcp_config_security(
           &ctxt,
@@ -1414,19 +1412,19 @@ int rrc_eNB_process_S1AP_E_RAB_MODIFY_REQ(MessageDef *msg_p, const char *msg_nam
     /* Save e RAB information for later */
     {
       int j;
-      boolean_t is_treated[S1AP_MAX_E_RAB] = {FALSE};
+      bool is_treated[S1AP_MAX_E_RAB] = {false};
       uint8_t nb_of_failed_e_rabs = 0;
 
       // keep the previous bearer
       // the index for the rec
       for (i = 0; i < S1AP_E_RAB_MODIFY_REQ (msg_p).nb_e_rabs_tomodify; i++) {
-        if (is_treated[i] == TRUE) {
+        if (is_treated[i] == true) {
           // already treated
           continue;
         }
 
         for (j = i+1; j < S1AP_E_RAB_MODIFY_REQ (msg_p).nb_e_rabs_tomodify; j++) {
-          if (is_treated[j] == FALSE &&
+          if (is_treated[j] == false &&
               S1AP_E_RAB_MODIFY_REQ(msg_p).e_rab_modify_params[j].e_rab_id == S1AP_E_RAB_MODIFY_REQ(msg_p).e_rab_modify_params[i].e_rab_id) {
             // handle multiple E-RAB ID
             ue_context_p->ue_context.modify_e_rab[j].status = E_RAB_STATUS_NEW;
@@ -1434,12 +1432,12 @@ int rrc_eNB_process_S1AP_E_RAB_MODIFY_REQ(MessageDef *msg_p, const char *msg_nam
             ue_context_p->ue_context.modify_e_rab[j].cause = S1AP_CAUSE_RADIO_NETWORK;
             ue_context_p->ue_context.modify_e_rab[j].cause_value = 31;//S1ap_CauseRadioNetwork_multiple_E_RAB_ID_instances;
             nb_of_failed_e_rabs++;
-            is_treated[i] = TRUE;
-            is_treated[j] = TRUE;
+            is_treated[i] = true;
+            is_treated[j] = true;
           }
         }
 
-        if (is_treated[i] == TRUE) {
+        if (is_treated[i] == true) {
           // handle multiple E-RAB ID
           ue_context_p->ue_context.modify_e_rab[i].status = E_RAB_STATUS_NEW;
           ue_context_p->ue_context.modify_e_rab[i].param.e_rab_id = S1AP_E_RAB_MODIFY_REQ(msg_p).e_rab_modify_params[i].e_rab_id;
@@ -1456,7 +1454,7 @@ int rrc_eNB_process_S1AP_E_RAB_MODIFY_REQ(MessageDef *msg_p, const char *msg_nam
           ue_context_p->ue_context.modify_e_rab[i].cause = S1AP_CAUSE_NAS;
           ue_context_p->ue_context.modify_e_rab[i].cause_value = 3;//S1ap_CauseNas_unspecified;
           nb_of_failed_e_rabs++;
-          is_treated[i] = TRUE;
+          is_treated[i] = true;
           continue;
         }
 
@@ -1474,19 +1472,19 @@ int rrc_eNB_process_S1AP_E_RAB_MODIFY_REQ(MessageDef *msg_p, const char *msg_nam
             ue_context_p->ue_context.modify_e_rab[i].param.nas_pdu.buffer = S1AP_E_RAB_MODIFY_REQ(msg_p).e_rab_modify_params[i].nas_pdu.buffer;
             ue_context_p->ue_context.modify_e_rab[i].param.sgw_addr = ue_context_p->ue_context.e_rab[j].param.sgw_addr;
             ue_context_p->ue_context.modify_e_rab[i].param.gtp_teid = ue_context_p->ue_context.e_rab[j].param.gtp_teid;
-            is_treated[i] = TRUE;
+            is_treated[i] = true;
             break;
           }
         }
 
-        if (is_treated[i] == FALSE) {
+        if (is_treated[i] == false) {
           // handle Unknown E-RAB ID
           ue_context_p->ue_context.modify_e_rab[i].status = E_RAB_STATUS_NEW;
           ue_context_p->ue_context.modify_e_rab[i].param.e_rab_id = S1AP_E_RAB_MODIFY_REQ(msg_p).e_rab_modify_params[i].e_rab_id;
           ue_context_p->ue_context.modify_e_rab[i].cause = S1AP_CAUSE_RADIO_NETWORK;
           ue_context_p->ue_context.modify_e_rab[i].cause_value = 30;//S1ap_CauseRadioNetwork_unknown_E_RAB_ID;
           nb_of_failed_e_rabs++;
-          is_treated[i] = TRUE;
+          is_treated[i] = true;
         }
       }
 
@@ -1824,8 +1822,8 @@ int rrc_eNB_process_PAGING_IND(MessageDef *msg_p, const char *msg_name, instance
           uint8_t i = 0;
 
           for (i = 0; i < MAX_MOBILES_PER_ENB; i++) {
-            if ((UE_PF_PO[CC_id][i].enable_flag == TRUE && UE_PF_PO[CC_id][i].ue_index_value == (uint16_t)(S1AP_PAGING_IND(msg_p).ue_index_value))
-                || (UE_PF_PO[CC_id][i].enable_flag != TRUE)) {
+            if ((UE_PF_PO[CC_id][i].enable_flag == true && UE_PF_PO[CC_id][i].ue_index_value == (uint16_t)(S1AP_PAGING_IND(msg_p).ue_index_value))
+                || (UE_PF_PO[CC_id][i].enable_flag != true)) {
               /* set T = min(Tc,Tue) */
               UE_PF_PO[CC_id][i].T = T;
               /* set UE_ID */
@@ -1845,12 +1843,12 @@ int rrc_eNB_process_PAGING_IND(MessageDef *msg_p, const char *msg_name, instance
                 UE_PF_PO[CC_id][i].PO = (frame_type==FDD) ? (4*(i_s&1)+(5*(i_s>>1))) : ((i_s&1)+(5*(i_s>>1)));
               }
 
-              if (UE_PF_PO[CC_id][i].enable_flag == TRUE) {
+              if (UE_PF_PO[CC_id][i].enable_flag == true) {
                 //paging exist UE log
                 LOG_D(RRC,"[eNB %ld] CC_id %d In S1AP_PAGING_IND: Update exist UE %d, T %d, PF %d, PO %d\n", instance, CC_id, UE_PF_PO[CC_id][i].ue_index_value, T, UE_PF_PO[CC_id][i].PF_min, UE_PF_PO[CC_id][i].PO);
               } else {
                 /* set enable_flag */
-                UE_PF_PO[CC_id][i].enable_flag = TRUE;
+                UE_PF_PO[CC_id][i].enable_flag = true;
                 //paging new UE log
                 LOG_D(RRC,"[eNB %ld] CC_id %d In S1AP_PAGING_IND: Insert a new UE %d, T %d, PF %d, PO %d\n", instance, CC_id, UE_PF_PO[CC_id][i].ue_index_value, T, UE_PF_PO[CC_id][i].PF_min, UE_PF_PO[CC_id][i].PO);
               }
diff --git a/openair2/RRC/LTE/rrc_proto.h b/openair2/RRC/LTE/rrc_proto.h
index f0456005f52..7bd3fbf758c 100644
--- a/openair2/RRC/LTE/rrc_proto.h
+++ b/openair2/RRC/LTE/rrc_proto.h
@@ -457,7 +457,7 @@ mac_rrc_data_ind(
   const uint8_t        *sduP,
   const sdu_size_t      sdu_lenP,
   const uint8_t         mbsfn_sync_areaP,
-  const boolean_t   brOption
+  const bool            brOption
 );
 
 int8_t
@@ -685,7 +685,7 @@ extern RRC_release_list_t   rrc_release_info;
 extern pthread_mutex_t      lock_ue_freelist;
 
 void remove_UE_from_freelist(module_id_t mod_id, rnti_t rnti);
-void put_UE_in_freelist(module_id_t mod_id, rnti_t rnti, boolean_t removeFlag);
+void put_UE_in_freelist(module_id_t mod_id, rnti_t rnti, bool removeFlag);
 void release_UE_in_freeList(module_id_t mod_id);
 
 /** @}*/
diff --git a/openair2/RRC/NR/L2_nr_interface.c b/openair2/RRC/NR/L2_nr_interface.c
index cd87dfd5548..ab9e3984d8a 100644
--- a/openair2/RRC/NR/L2_nr_interface.c
+++ b/openair2/RRC/NR/L2_nr_interface.c
@@ -49,102 +49,6 @@
 
 extern RAN_CONTEXT_t RC;
 
-int generate_pdcch_ConfigSIB1(NR_PDCCH_ConfigSIB1_t *pdcch_ConfigSIB1,
-                              long ssbSubcarrierSpacing,
-                              long subCarrierSpacingCommon,
-                              channel_bandwidth_t min_channel_bw) {
-
-  nr_ssb_and_cset_mux_pattern_type_t mux_pattern = 0;
-
-  switch (ssbSubcarrierSpacing) {
-
-    case NR_SubcarrierSpacing_kHz15:
-      if (subCarrierSpacingCommon == NR_SubcarrierSpacing_kHz15) {
-        pdcch_ConfigSIB1->controlResourceSetZero = rand() % TABLE_38213_13_1_NUM_INDEXES;
-        mux_pattern = table_38213_13_1_c1[pdcch_ConfigSIB1->controlResourceSetZero];
-      } else if (subCarrierSpacingCommon == NR_SubcarrierSpacing_kHz30) {
-        pdcch_ConfigSIB1->controlResourceSetZero = rand() % TABLE_38213_13_2_NUM_INDEXES;
-        mux_pattern = table_38213_13_2_c1[pdcch_ConfigSIB1->controlResourceSetZero];
-      } else {
-        AssertFatal(true,"Invalid subCarrierSpacingCommon\n");
-      }
-      break;
-
-    case NR_SubcarrierSpacing_kHz30:
-      if (subCarrierSpacingCommon == NR_SubcarrierSpacing_kHz15) {
-
-        if ( (min_channel_bw == bw_5MHz) || (min_channel_bw == bw_10MHz) ) {
-          pdcch_ConfigSIB1->controlResourceSetZero = rand() % TABLE_38213_13_3_NUM_INDEXES;
-          mux_pattern = table_38213_13_3_c1[pdcch_ConfigSIB1->controlResourceSetZero];
-        } else if (min_channel_bw == bw_40MHz) {
-          pdcch_ConfigSIB1->controlResourceSetZero = rand() % TABLE_38213_13_5_NUM_INDEXES;
-          mux_pattern = table_38213_13_5_c1[pdcch_ConfigSIB1->controlResourceSetZero];
-        } else {
-          AssertFatal(true,"Invalid min_bandwidth\n");
-        }
-
-      } else if (subCarrierSpacingCommon == NR_SubcarrierSpacing_kHz30) {
-
-        if ( (min_channel_bw == bw_5MHz) || (min_channel_bw == bw_10MHz) ) {
-          pdcch_ConfigSIB1->controlResourceSetZero = rand() % TABLE_38213_13_4_NUM_INDEXES;
-          mux_pattern = table_38213_13_4_c1[pdcch_ConfigSIB1->controlResourceSetZero];
-        } else if (min_channel_bw == bw_40MHz) {
-          pdcch_ConfigSIB1->controlResourceSetZero = rand() % TABLE_38213_13_6_NUM_INDEXES;
-          mux_pattern = table_38213_13_6_c1[pdcch_ConfigSIB1->controlResourceSetZero];
-        } else {
-          AssertFatal(true,"Invalid min_bandwidth\n");
-        }
-
-      } else {
-        AssertFatal(true,"Invalid subCarrierSpacingCommon\n");
-      }
-      break;
-
-    case NR_SubcarrierSpacing_kHz120:
-      if (subCarrierSpacingCommon == NR_SubcarrierSpacing_kHz60) {
-        pdcch_ConfigSIB1->controlResourceSetZero = rand() % TABLE_38213_13_7_NUM_INDEXES;
-        mux_pattern = table_38213_13_7_c1[pdcch_ConfigSIB1->controlResourceSetZero];
-      } else if (subCarrierSpacingCommon == NR_SubcarrierSpacing_kHz120) {
-        pdcch_ConfigSIB1->controlResourceSetZero = rand() % TABLE_38213_13_8_NUM_INDEXES;
-        mux_pattern = table_38213_13_8_c1[pdcch_ConfigSIB1->controlResourceSetZero];
-      } else {
-        AssertFatal(true,"Invalid subCarrierSpacingCommon\n");
-      }
-      break;
-
-    case NR_SubcarrierSpacing_kHz240:
-      if (subCarrierSpacingCommon == NR_SubcarrierSpacing_kHz60) {
-        pdcch_ConfigSIB1->controlResourceSetZero = rand() % TABLE_38213_13_9_NUM_INDEXES;
-        mux_pattern = table_38213_13_9_c1[pdcch_ConfigSIB1->controlResourceSetZero];
-      } else if (subCarrierSpacingCommon == NR_SubcarrierSpacing_kHz120) {
-        pdcch_ConfigSIB1->controlResourceSetZero = rand() % TABLE_38213_13_10_NUM_INDEXES;
-        mux_pattern = table_38213_13_10_c1[pdcch_ConfigSIB1->controlResourceSetZero];
-      } else {
-        AssertFatal(true,"Invalid subCarrierSpacingCommon\n");
-      }
-      break;
-
-    default:
-      AssertFatal(true,"Invalid ssbSubcarrierSpacing\n");
-      break;
-  }
-
-
-  frequency_range_t frequency_range = FR1;
-  if(ssbSubcarrierSpacing>=60) {
-    frequency_range = FR2;
-  }
-
-  pdcch_ConfigSIB1->searchSpaceZero = 0;
-  if(mux_pattern == NR_SSB_AND_CSET_MUX_PATTERN_TYPE1 && frequency_range == FR1){
-    pdcch_ConfigSIB1->searchSpaceZero = rand() % TABLE_38213_13_11_NUM_INDEXES;
-  }
-  if(mux_pattern == NR_SSB_AND_CSET_MUX_PATTERN_TYPE1 && frequency_range == FR2){
-    pdcch_ConfigSIB1->searchSpaceZero = rand() % TABLE_38213_13_12_NUM_INDEXES;
-  }
-
-  return 0;
-}
 
 int
 nr_rrc_mac_remove_ue(module_id_t mod_idP,
@@ -168,7 +72,7 @@ nr_rrc_data_req(
 {
   if(sdu_sizeP == 255) {
     LOG_D(RRC,"sdu_sizeP == 255");
-    return FALSE;
+    return false;
   }
 
   MessageDef *message_p;
@@ -204,93 +108,98 @@ nr_rrc_data_req(
   if (ctxt_pP->enb_flag && NODE_IS_CU(RC.nrrrc[ctxt_pP->module_id]->node_type))
     pdcp_run(ctxt_pP);
 
-  return TRUE; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
+  return true; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
 }
 
-int    mac_rrc_nr_data_req(const module_id_t Mod_idP,
-                           const int         CC_id,
-                           const frame_t     frameP,
-                           const rb_id_t     Srb_id,
-                           const rnti_t      rnti,
-                           const uint8_t     Nb_tb,
-                           uint8_t *const    buffer_pP ){
+uint16_t mac_rrc_nr_data_req(const module_id_t Mod_idP,
+                             const int         CC_id,
+                             const frame_t     frameP,
+                             const rb_id_t     Srb_id,
+                             const rnti_t      rnti,
+                             const uint8_t     Nb_tb,
+                             uint8_t *const    buffer_pP ){
 
 #ifdef DEBUG_RRC
   LOG_D(RRC,"[eNB %d] mac_rrc_data_req to SRB ID=%ld\n",Mod_idP,Srb_id);
 #endif
 
-    // MIBCH
-    if ((Srb_id & RAB_OFFSET) == MIBCH) {
-
-      asn_enc_rval_t enc_rval;
-      uint8_t sfn_msb = (uint8_t)((frameP>>4)&0x3f);
-      rrc_gNB_carrier_data_t *carrier = &RC.nrrrc[Mod_idP]->carrier;
-      NR_BCCH_BCH_Message_t *mib = &carrier->mib;
-
-        // Currently we are getting the pdcch_ConfigSIB1 from the configuration file.
-        // Uncomment this function for a dynamic pdcch_ConfigSIB1.
-        //channel_bandwidth_t min_channel_bw = bw_10MHz; // Must be obtained based on TS 38.101-1 Table 5.3.5-1
-        //generate_pdcch_ConfigSIB1(carrier->pdcch_ConfigSIB1,
-        //                          *carrier->servingcellconfigcommon->ssbSubcarrierSpacing,
-        //                          carrier->mib.message.choice.mib->subCarrierSpacingCommon,
-        //                          min_channel_bw);
-
-        mib->message.choice.mib->pdcch_ConfigSIB1.controlResourceSetZero = carrier->pdcch_ConfigSIB1->controlResourceSetZero;
-        mib->message.choice.mib->pdcch_ConfigSIB1.searchSpaceZero = carrier->pdcch_ConfigSIB1->searchSpaceZero;
-
-        mib->message.choice.mib->systemFrameNumber.buf[0] = sfn_msb << 2;
-        enc_rval = uper_encode_to_buffer(&asn_DEF_NR_BCCH_BCH_Message,
-                                         NULL,
-                                         (void *) mib,
-                                         carrier->MIB,
-                                         24);
-        LOG_D(NR_RRC, "Encoded MIB for frame %d sfn_msb %d (%p), bits %lu\n", frameP, sfn_msb, carrier->MIB,
-              enc_rval.encoded);
-        buffer_pP[0] = carrier->MIB[0];
-        buffer_pP[1] = carrier->MIB[1];
-        buffer_pP[2] = carrier->MIB[2];
-        LOG_D(NR_RRC, "MIB PDU buffer_pP[0]=%x , buffer_pP[1]=%x, buffer_pP[2]=%x\n", buffer_pP[0], buffer_pP[1],
-              buffer_pP[2]);
-        AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n",
-                     enc_rval.failed_type->name, enc_rval.encoded);
-        return (3);
-    }
+  // MIBCH
+  if ((Srb_id & RAB_OFFSET) == MIBCH) {
+
+    asn_enc_rval_t enc_rval;
+    uint8_t sfn_msb = (uint8_t)((frameP>>4)&0x3f);
+    rrc_gNB_carrier_data_t *carrier = &RC.nrrrc[Mod_idP]->carrier;
+    NR_BCCH_BCH_Message_t *mib = &carrier->mib;
+
+    mib->message.choice.mib->pdcch_ConfigSIB1.controlResourceSetZero = carrier->pdcch_ConfigSIB1->controlResourceSetZero;
+    mib->message.choice.mib->pdcch_ConfigSIB1.searchSpaceZero = carrier->pdcch_ConfigSIB1->searchSpaceZero;
+
+    mib->message.choice.mib->systemFrameNumber.buf[0] = sfn_msb << 2;
+    enc_rval = uper_encode_to_buffer(&asn_DEF_NR_BCCH_BCH_Message,
+                                     NULL,
+                                     (void *) mib,
+                                     carrier->MIB,
+                                     24);
+    LOG_D(NR_RRC, "Encoded MIB for frame %d sfn_msb %d (%p), bits %lu\n", frameP, sfn_msb, carrier->MIB,
+          enc_rval.encoded);
+    buffer_pP[0] = carrier->MIB[0];
+    buffer_pP[1] = carrier->MIB[1];
+    buffer_pP[2] = carrier->MIB[2];
+    LOG_D(NR_RRC, "MIB PDU buffer_pP[0]=%x , buffer_pP[1]=%x, buffer_pP[2]=%x\n", buffer_pP[0], buffer_pP[1],
+          buffer_pP[2]);
+    AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n",
+                 enc_rval.failed_type->name, enc_rval.encoded);
+    return 3;
+  }
 
   // TODO BCCH SIB1 SIBs
-  if ((Srb_id & RAB_OFFSET ) == BCCH) {
-    memcpy(&buffer_pP[0],
-           RC.nrrrc[Mod_idP]->carrier.SIB1,
-           RC.nrrrc[Mod_idP]->carrier.sizeof_SIB1);
-
+  if ((Srb_id & RAB_OFFSET) == BCCH) {
+    memcpy(&buffer_pP[0], RC.nrrrc[Mod_idP]->carrier.SIB1, RC.nrrrc[Mod_idP]->carrier.sizeof_SIB1);
     return RC.nrrrc[Mod_idP]->carrier.sizeof_SIB1;
   }
 
   // CCCH
-  if( (Srb_id & RAB_OFFSET ) == CCCH) {
+  if ((Srb_id & RAB_OFFSET) == CCCH) {
+    LOG_D(NR_RRC,"[gNB %d] Frame %d CCCH request (Srb_id %ld)\n", Mod_idP, frameP, Srb_id);
 
     char *payload_pP;
-    uint8_t Sdu_size = 0;
     struct rrc_gNB_ue_context_s *ue_context_p = rrc_gNB_get_ue_context(RC.nrrrc[Mod_idP], rnti);
 
     LOG_D(NR_RRC,"[gNB %d] Frame %d CCCH request (Srb_id %ld)\n", Mod_idP, frameP, Srb_id);
+    if (ue_context_p == NULL) {
+      LOG_E(NR_RRC,"[gNB %d] Frame %d CCCH request but no ue_context\n", Mod_idP, frameP);
+      return 0;
+    }
 
-    AssertFatal(ue_context_p!=NULL,"failed to get ue_context, rnti %x\n",rnti);
-    int payload_size = ue_context_p->ue_context.Srb0.Tx_buffer.payload_size;
-
+    uint16_t payload_size = ue_context_p->ue_context.Srb0.Tx_buffer.payload_size;
     // check if data is there for MAC
     if (payload_size > 0) {
       payload_pP = ue_context_p->ue_context.Srb0.Tx_buffer.Payload;
       LOG_D(NR_RRC,"[gNB %d] CCCH has %d bytes (dest: %p, src %p)\n", Mod_idP, payload_size, buffer_pP, payload_pP);
       // Fill buffer
       memcpy((void *)buffer_pP, (void*)payload_pP, payload_size);
-      Sdu_size = payload_size;
       ue_context_p->ue_context.Srb0.Tx_buffer.payload_size = 0;
     }
-    return Sdu_size;
+    return payload_size;
   }
 
-  return(0);
+  return 0;
+}
+
+int8_t nr_mac_rrc_bwp_switch_req(const module_id_t     module_idP,
+                                 const frame_t         frameP,
+                                 const sub_frame_t     sub_frameP,
+                                 const rnti_t          rntiP,
+                                 const int             dl_bwp_id,
+                                 const int             ul_bwp_id) {
 
+  struct rrc_gNB_ue_context_s *ue_context_p = rrc_gNB_get_ue_context(RC.nrrrc[module_idP], rntiP);
+
+  protocol_ctxt_t ctxt;
+  PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, module_idP, GNB_FLAG_YES, rntiP, frameP, sub_frameP, 0);
+  nr_rrc_reconfiguration_req(ue_context_p, &ctxt, dl_bwp_id, ul_bwp_id);
+
+  return 0;
 }
 
 int8_t nr_mac_rrc_data_ind(const module_id_t     module_idP,
@@ -302,7 +211,7 @@ int8_t nr_mac_rrc_data_ind(const module_id_t     module_idP,
                            const rb_id_t         srb_idP,
                            const uint8_t        *sduP,
                            const sdu_size_t      sdu_lenP,
-                           const boolean_t   brOption) {
+                           const bool            brOption) {
 
   if (NODE_IS_DU(RC.nrrrc[module_idP]->node_type)) {
     LOG_W(RRC,"[DU %d][RAPROC] Received SDU for CCCH on SRB %ld length %d for UE id %d RNTI %x \n",
@@ -312,6 +221,7 @@ int8_t nr_mac_rrc_data_ind(const module_id_t     module_idP,
     // call do_RRCSetup like full procedure and extract masterCellGroup
     NR_CellGroupConfig_t cellGroupConfig;
     NR_ServingCellConfigCommon_t *scc=RC.nrrrc[module_idP]->carrier.servingcellconfigcommon;
+    NR_ServingCellConfig_t *servingcellconfigdedicated = RC.nrrrc[module_idP]->configuration.scd;
     memset(&cellGroupConfig,0,sizeof(cellGroupConfig));
 
     struct rrc_gNB_ue_context_s *ue_context_p = rrc_gNB_allocate_new_UE_context(RC.nrrrc[module_idP]);
@@ -321,16 +231,16 @@ int8_t nr_mac_rrc_data_ind(const module_id_t     module_idP,
     ue_context_p->ue_context.Srb0.Active        = 1;
     RB_INSERT(rrc_nr_ue_tree_s, &RC.nrrrc[module_idP]->rrc_ue_head, ue_context_p);
 
-    fill_initial_cellGroupConfig(ue_context_p->local_uid,&cellGroupConfig,scc, &RC.nrrrc[module_idP]->configuration);
+    fill_initial_cellGroupConfig(ue_context_p->local_uid,&cellGroupConfig,scc,servingcellconfigdedicated,&RC.nrrrc[module_idP]->configuration);
 
     MessageDef* tmp=itti_alloc_new_message_sized(TASK_RRC_GNB, 0, F1AP_INITIAL_UL_RRC_MESSAGE, sizeof(f1ap_initial_ul_rrc_message_t) + sdu_lenP);
     f1ap_initial_ul_rrc_message_t *msg = &F1AP_INITIAL_UL_RRC_MESSAGE(tmp);
 
     asn_enc_rval_t enc_rval = uper_encode_to_buffer(&asn_DEF_NR_CellGroupConfig,
-						    NULL,
-						    (void *)&cellGroupConfig,
-						    msg->du2cu_rrc_container,
-						    1024); //sizeof(msg->du2cu_rrc_container));
+                                                    NULL,
+                                                    (void *)&cellGroupConfig,
+                                                    msg->du2cu_rrc_container,
+                                                    F1AP_MAX_DU2CU_RRC_LENGTH);
 
     if (enc_rval.encoded == -1) {
       LOG_E(F1AP,"Could not encoded cellGroupConfig, failed element %s\n",enc_rval.failed_type->name);
@@ -343,7 +253,8 @@ int8_t nr_mac_rrc_data_ind(const module_id_t     module_idP,
     memcpy(msg->rrc_container, sduP, sdu_lenP);
     msg->rrc_container_length=sdu_lenP;
     itti_send_msg_to_task(TASK_DU_F1, 0, tmp);
-    return(0);
+
+    return 0;
   }
 
   protocol_ctxt_t ctxt;
@@ -356,7 +267,6 @@ int8_t nr_mac_rrc_data_ind(const module_id_t     module_idP,
       nr_rrc_gNB_decode_ccch(&ctxt, sduP, sdu_lenP, NULL, CC_id);
     }
   }
-
   return 0;
 }
 
diff --git a/openair2/RRC/NR/MESSAGES/asn1_msg.c b/openair2/RRC/NR/MESSAGES/asn1_msg.c
index 8e8959c5974..687784cafc8 100755
--- a/openair2/RRC/NR/MESSAGES/asn1_msg.c
+++ b/openair2/RRC/NR/MESSAGES/asn1_msg.c
@@ -40,7 +40,9 @@
 #include <asn_internal.h> /* for _ASN_DEFAULT_STACK_MAX */
 #include <per_encoder.h>
 #include <nr/nr_common.h>
+#include <softmodem-common.h>
 
+#include "executables/softmodem-common.h"
 #include "LAYER2/nr_rlc/nr_rlc_oai_api.h"
 #include "asn1_msg.h"
 #include "../nr_rrc_proto.h"
@@ -197,8 +199,7 @@ int xer_nr_sprint (char *string, size_t string_size, asn_TYPE_descriptor_t *td,
 uint8_t do_MIB_NR(gNB_RRC_INST *rrc,uint32_t frame) { 
 
   asn_enc_rval_t enc_rval;
-  rrc_gNB_carrier_data_t *carrier = &rrc->carrier;  
-  const gNB_RrcConfigurationReq *configuration = &rrc->configuration;
+  rrc_gNB_carrier_data_t *carrier = &rrc->carrier;
 
   NR_BCCH_BCH_Message_t *mib = &carrier->mib;
   NR_ServingCellConfigCommon_t *scc = carrier->servingcellconfigcommon;
@@ -225,11 +226,14 @@ uint8_t do_MIB_NR(gNB_RRC_INST *rrc,uint32_t frame) {
   AssertFatal(scc->ssbSubcarrierSpacing != NULL, "scc->ssbSubcarrierSpacing is null\n");
   int band = *scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0];
   frequency_range_t frequency_range = band<100?FR1:FR2;
-  int ssb_subcarrier_offset;
-  if(frequency_range == FR1)
-    ssb_subcarrier_offset = (configuration->ssb_SubcarrierOffset<24) ? (configuration->ssb_SubcarrierOffset<<*scc->ssbSubcarrierSpacing) : configuration->ssb_SubcarrierOffset;
-  else
-    ssb_subcarrier_offset = configuration->ssb_SubcarrierOffset;
+  int ssb_subcarrier_offset = 31; // default value for NSA
+  if (get_softmodem_params()->sa) {
+    uint32_t absolute_diff = (*scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencySSB - scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencyPointA);
+    int scs_scaling = scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencyPointA < 600000 ? 3 : 1;
+    ssb_subcarrier_offset = (absolute_diff/scs_scaling)%24;
+    if(frequency_range == FR2)
+      ssb_subcarrier_offset >>= 1; // this assumes 120kHz SCS for SSB and subCarrierSpacingCommon (only option supported by OAI for now)
+  }
   mib->message.choice.mib->ssb_SubcarrierOffset = ssb_subcarrier_offset&15;
 
   /*
@@ -302,9 +306,8 @@ uint8_t do_MIB_NR(gNB_RRC_INST *rrc,uint32_t frame) {
   return((enc_rval.encoded+7)/8);
 }
 
-uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier, 
-	               gNB_RrcConfigurationReq *configuration
-                  ) {
+uint16_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier, gNB_RrcConfigurationReq *configuration) {
+
   asn_enc_rval_t enc_rval;
 
   NR_BCCH_DL_SCH_Message_t *sib1_message = CALLOC(1,sizeof(NR_BCCH_DL_SCH_Message_t));
@@ -403,7 +406,6 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
   NR_BWP_DownlinkCommon_t  *initialDownlinkBWP=&ServCellCom->downlinkConfigCommon.initialDownlinkBWP;
   initialDownlinkBWP->genericParameters=
     configuration->scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters;
-  
 
   for(int i = 0; i< configuration->scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.count; i++) {
     asn1cSequenceAdd(ServCellCom->downlinkConfigCommon.frequencyInfoDL.frequencyBandList.list,
@@ -411,7 +413,6 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
     nrMultiBandInfo->freqBandIndicatorNR = configuration->scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[i];
   }
 
-
   int scs_scaling0 = 1<<(configuration->scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.subcarrierSpacing);
   int scs_scaling  = scs_scaling0;
   int scs_scaling2 = scs_scaling0;
@@ -520,7 +521,6 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
   ss7->searchSpaceType->choice.common=calloc(1,sizeof(*ss7->searchSpaceType->choice.common));
   ss7->searchSpaceType->choice.common->dci_Format0_0_AndFormat1_0 = calloc(1,sizeof(*ss7->searchSpaceType->choice.common->dci_Format0_0_AndFormat1_0));
 
-  
   asn1cCallocOne(initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->searchSpaceSIB1,  0);
   asn1cCallocOne(initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->searchSpaceOtherSystemInformation, 7);
   asn1cCallocOne(initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->pagingSearchSpace, 5);
@@ -660,12 +660,9 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
                                    (void *)sib1_message,
                                    carrier->SIB1,
                                    NR_MAX_SIB_LENGTH/8);
-  AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n",
+  AssertFatal(enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n",
                enc_rval.failed_type->name, enc_rval.encoded);
-
-  if (enc_rval.encoded==-1) {
-    return(-1);
-  }
+  AssertFatal(enc_rval.encoded <= NR_MAX_SIB_LENGTH, "ASN1 encoded length %zd bits. 3GPP TS 38.331 section 5.2.1 - The physical layer imposes a limit to the maximum size a SIB can take. The maximum SIB1 or SI message size is 2976 bits.\n", enc_rval.encoded);
 
   return((enc_rval.encoded+7)/8);
 }
@@ -988,139 +985,206 @@ uint8_t do_RRCReject(uint8_t Mod_id,
     return((enc_rval.encoded+7)/8);
 }
 
-// TODO: Implement to b_SRS = 1 and b_SRS = 2
-long rrc_get_max_nr_csrs(uint8_t max_rbs, long b_SRS) {
-
-  if(b_SRS>0) {
-    LOG_E(NR_RRC,"rrc_get_max_nr_csrs(): Not implemented yet for b_SRS>0\n");
-    return 0; // This c_srs is always valid
+void fill_default_downlinkBWP(NR_BWP_Downlink_t *bwp,
+                              int bwp_loop,
+                              NR_ServingCellConfig_t *servingcellconfigdedicated,
+                              NR_ServingCellConfigCommon_t *scc,
+                              const gNB_RrcConfigurationReq *configuration) {
+
+  /// BWP common configuration
+  bwp->bwp_Common = calloc(1,sizeof(*bwp->bwp_Common));
+  if(servingcellconfigdedicated->downlinkBWP_ToAddModList &&
+     bwp_loop < servingcellconfigdedicated->downlinkBWP_ToAddModList->list.count) {
+    bwp->bwp_Id = servingcellconfigdedicated->downlinkBWP_ToAddModList->list.array[bwp_loop]->bwp_Id;
+    bwp->bwp_Common->genericParameters.locationAndBandwidth = servingcellconfigdedicated->downlinkBWP_ToAddModList->list.array[bwp_loop]->bwp_Common->genericParameters.locationAndBandwidth;
+    bwp->bwp_Common->genericParameters.subcarrierSpacing = servingcellconfigdedicated->downlinkBWP_ToAddModList->list.array[bwp_loop]->bwp_Common->genericParameters.subcarrierSpacing;
+    bwp->bwp_Common->genericParameters.cyclicPrefix = servingcellconfigdedicated->downlinkBWP_ToAddModList->list.array[bwp_loop]->bwp_Common->genericParameters.cyclicPrefix;
+  } else {
+    bwp->bwp_Id=bwp_loop+1;
+    bwp->bwp_Common->genericParameters.locationAndBandwidth = PRBalloc_to_locationandbandwidth(scc->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList.list.array[0]->carrierBandwidth,0);
+    bwp->bwp_Common->genericParameters.subcarrierSpacing = scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.subcarrierSpacing;
+    bwp->bwp_Common->genericParameters.cyclicPrefix = scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.cyclicPrefix;
   }
 
-  const uint16_t m_SRS[64] = { 4, 8, 12, 16, 16, 20, 24, 24, 28, 32, 36, 40, 48, 48, 52, 56, 60, 64, 72, 72, 76, 80, 88,
-                               96, 96, 104, 112, 120, 120, 120, 128, 128, 128, 132, 136, 144, 144, 144, 144, 152, 160,
-                               160, 160, 168, 176, 184, 192, 192, 192, 192, 208, 216, 224, 240, 240, 240, 240, 256, 256,
-                               256, 264, 272, 272, 272 };
-
-  long c_srs = 0;
-  uint16_t m = 4;
-  for(int c = 1; c<64; c++) {
-    if(m_SRS[c]>m && m_SRS[c]<max_rbs) {
-      c_srs = c;
-      m = m_SRS[c];
-    }
-  }
+  bwp->bwp_Common->pdcch_ConfigCommon=calloc(1,sizeof(*bwp->bwp_Common->pdcch_ConfigCommon));
+  bwp->bwp_Common->pdcch_ConfigCommon->present = NR_SetupRelease_PDCCH_ConfigCommon_PR_setup;
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup = calloc(1,sizeof(*bwp->bwp_Common->pdcch_ConfigCommon->choice.setup));
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->controlResourceSetZero=NULL;
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonControlResourceSet=calloc(1,sizeof(*bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonControlResourceSet));
+
+  int curr_bwp = NRRIV2BW(bwp->bwp_Common->genericParameters.locationAndBandwidth,MAX_BWP_SIZE);
 
-  return c_srs;
+  NR_ControlResourceSet_t *coreset = calloc(1,sizeof(*coreset));
+  uint64_t bitmap = get_ssb_bitmap(scc);
+  rrc_coreset_config(coreset, bwp->bwp_Id, curr_bwp, bitmap);
+
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonControlResourceSet = coreset;
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->searchSpaceZero=NULL;
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList=NULL;
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList=calloc(1,sizeof(*bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList));
+
+  NR_SearchSpace_t *ss=calloc(1,sizeof(*ss));
+  ss->searchSpaceId = (bwp->bwp_Id<<1)-1 + 7; // To uniquely identify each SearchSpace lets derive it from the BWPId
+  ss->controlResourceSetId=calloc(1,sizeof(*ss->controlResourceSetId));
+  *ss->controlResourceSetId=coreset->controlResourceSetId;
+  ss->monitoringSlotPeriodicityAndOffset = calloc(1,sizeof(*ss->monitoringSlotPeriodicityAndOffset));
+  ss->monitoringSlotPeriodicityAndOffset->present = NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1;
+  ss->duration=NULL;
+  ss->monitoringSymbolsWithinSlot = calloc(1,sizeof(*ss->monitoringSymbolsWithinSlot));
+  ss->monitoringSymbolsWithinSlot->buf = calloc(1,2);
+  // should be '1100 0000 0000 00'B (LSB first!), first two symols in slot, adjust if needed
+  ss->monitoringSymbolsWithinSlot->buf[1] = 0;
+  ss->monitoringSymbolsWithinSlot->buf[0] = (1<<7);
+  ss->monitoringSymbolsWithinSlot->size = 2;
+  ss->monitoringSymbolsWithinSlot->bits_unused = 2;
+  ss->nrofCandidates = calloc(1,sizeof(*ss->nrofCandidates));
+  ss->nrofCandidates->aggregationLevel1 = NR_SearchSpace__nrofCandidates__aggregationLevel1_n0;
+  ss->nrofCandidates->aggregationLevel2 = NR_SearchSpace__nrofCandidates__aggregationLevel2_n2;
+  ss->nrofCandidates->aggregationLevel4 = NR_SearchSpace__nrofCandidates__aggregationLevel4_n1;
+  ss->nrofCandidates->aggregationLevel8 = NR_SearchSpace__nrofCandidates__aggregationLevel8_n0;
+  ss->nrofCandidates->aggregationLevel16 = NR_SearchSpace__nrofCandidates__aggregationLevel16_n0;
+  ss->searchSpaceType = calloc(1,sizeof(*ss->searchSpaceType));
+  ss->searchSpaceType->present = NR_SearchSpace__searchSpaceType_PR_common;
+  ss->searchSpaceType->choice.common=calloc(1,sizeof(*ss->searchSpaceType->choice.common));
+  ss->searchSpaceType->choice.common->dci_Format0_0_AndFormat1_0 = calloc(1,sizeof(*ss->searchSpaceType->choice.common->dci_Format0_0_AndFormat1_0));
+
+  ASN_SEQUENCE_ADD(&bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList->list,ss);
+
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->searchSpaceSIB1=NULL;
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->searchSpaceOtherSystemInformation=NULL;
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->pagingSearchSpace=NULL;
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->ra_SearchSpace=NULL;
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->ext1=NULL;
+  bwp->bwp_Common->pdsch_ConfigCommon=calloc(1,sizeof(*bwp->bwp_Common->pdsch_ConfigCommon));
+  bwp->bwp_Common->pdsch_ConfigCommon->present = NR_SetupRelease_PDSCH_ConfigCommon_PR_setup;
+  bwp->bwp_Common->pdsch_ConfigCommon->choice.setup = calloc(1,sizeof(*bwp->bwp_Common->pdsch_ConfigCommon->choice.setup));
+  bwp->bwp_Common->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList = calloc(1,sizeof(*bwp->bwp_Common->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList));
+
+  // Prepare PDSCH-TimeDomainResourceAllocation list
+  nr_rrc_config_dl_tda(scc,
+                       bwp->bwp_Common->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList,
+                       curr_bwp);
+
+  /// BWP dedicated configuration
+  bwp->bwp_Dedicated=calloc(1,sizeof(*bwp->bwp_Dedicated));
+  bwp->bwp_Dedicated->pdcch_Config=calloc(1,sizeof(*bwp->bwp_Dedicated->pdcch_Config));
+  bwp->bwp_Dedicated->pdcch_Config->present = NR_SetupRelease_PDCCH_Config_PR_setup;
+  bwp->bwp_Dedicated->pdcch_Config->choice.setup = calloc(1,sizeof(*bwp->bwp_Dedicated->pdcch_Config->choice.setup));
+  bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList = calloc(1,sizeof(*bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList));
+  bwp->bwp_Dedicated->pdcch_Config->choice.setup->controlResourceSetToAddModList = calloc(1,sizeof(*bwp->bwp_Dedicated->pdcch_Config->choice.setup->controlResourceSetToAddModList));
+
+  NR_ControlResourceSet_t *coreset2 = calloc(1,sizeof(*coreset2));
+  rrc_coreset_config(coreset2, bwp->bwp_Id, curr_bwp, bitmap);
+  ASN_SEQUENCE_ADD(&bwp->bwp_Dedicated->pdcch_Config->choice.setup->controlResourceSetToAddModList->list, coreset2);
+
+  bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList = calloc(1,sizeof(*bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList));
+  NR_SearchSpace_t *ss2 = calloc(1,sizeof(*ss2));
+  ss2->searchSpaceId=(bwp->bwp_Id<<1) + 7; // To uniquely identify each SearchSpace lets derive it from the BWPId
+  ss2->controlResourceSetId=calloc(1,sizeof(*ss2->controlResourceSetId));
+  *ss2->controlResourceSetId=coreset2->controlResourceSetId;
+  ss2->monitoringSlotPeriodicityAndOffset=calloc(1,sizeof(*ss2->monitoringSlotPeriodicityAndOffset));
+  ss2->monitoringSlotPeriodicityAndOffset->present = NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1;
+  ss2->monitoringSlotPeriodicityAndOffset->choice.sl1=(NULL_t)0;
+  ss2->duration=NULL;
+  ss2->monitoringSymbolsWithinSlot = calloc(1,sizeof(*ss2->monitoringSymbolsWithinSlot));
+  ss2->monitoringSymbolsWithinSlot->buf = calloc(1,2);
+  ss2->monitoringSymbolsWithinSlot->size = 2;
+  ss2->monitoringSymbolsWithinSlot->buf[0]=0x80;
+  ss2->monitoringSymbolsWithinSlot->buf[1]=0x0;
+  ss2->monitoringSymbolsWithinSlot->bits_unused = 2;
+  ss2->nrofCandidates=calloc(1,sizeof(*ss2->nrofCandidates));
+  ss2->nrofCandidates->aggregationLevel1 = NR_SearchSpace__nrofCandidates__aggregationLevel1_n0;
+  ss2->nrofCandidates->aggregationLevel2 = NR_SearchSpace__nrofCandidates__aggregationLevel2_n2;
+  ss2->nrofCandidates->aggregationLevel4 = NR_SearchSpace__nrofCandidates__aggregationLevel4_n1;
+  ss2->nrofCandidates->aggregationLevel8 = NR_SearchSpace__nrofCandidates__aggregationLevel8_n0;
+  ss2->nrofCandidates->aggregationLevel16 = NR_SearchSpace__nrofCandidates__aggregationLevel16_n0;
+  ss2->searchSpaceType=calloc(1,sizeof(*ss2->searchSpaceType));
+  ss2->searchSpaceType->present = NR_SearchSpace__searchSpaceType_PR_ue_Specific;
+  ss2->searchSpaceType->choice.ue_Specific = calloc(1,sizeof(*ss2->searchSpaceType->choice.ue_Specific));
+  ss2->searchSpaceType->choice.ue_Specific->dci_Formats=NR_SearchSpace__searchSpaceType__ue_Specific__dci_Formats_formats0_1_And_1_1;
+  ASN_SEQUENCE_ADD(&bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList->list, ss2);
+
+  bwp->bwp_Dedicated->pdsch_Config=calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config));
+  bwp->bwp_Dedicated->pdsch_Config->present = NR_SetupRelease_PDSCH_Config_PR_setup;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup = calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup));
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->dataScramblingIdentityPDSCH = NULL;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA = calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA));
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->present= NR_SetupRelease_DMRS_DownlinkConfig_PR_setup;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup = calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup));
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_Type=NULL;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->maxLength=NULL;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_AdditionalPosition = calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_AdditionalPosition));
+  *bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_AdditionalPosition = NR_DMRS_DownlinkConfig__dmrs_AdditionalPosition_pos1;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->resourceAllocation = NR_PDSCH_Config__resourceAllocation_resourceAllocationType1;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.present = NR_PDSCH_Config__prb_BundlingType_PR_staticBundling;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling = calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling));
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling->bundleSize =
+      calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling->bundleSize));
+  *bwp->bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling->bundleSize = NR_PDSCH_Config__prb_BundlingType__staticBundling__bundleSize_wideband;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->tci_StatesToAddModList=calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->tci_StatesToAddModList));
+  NR_TCI_State_t *tcic = calloc(1,sizeof(*tcic));
+  tcic->tci_StateId=0;
+  tcic->qcl_Type1.cell=NULL;
+  tcic->qcl_Type1.bwp_Id=NULL;
+  tcic->qcl_Type1.referenceSignal.present = NR_QCL_Info__referenceSignal_PR_ssb;
+  tcic->qcl_Type1.referenceSignal.choice.ssb = 0;
+  tcic->qcl_Type1.qcl_Type=NR_QCL_Info__qcl_Type_typeD;
+  ASN_SEQUENCE_ADD(&bwp->bwp_Dedicated->pdsch_Config->choice.setup->tci_StatesToAddModList->list,tcic);
 }
 
+void fill_default_uplinkBWP(NR_BWP_Uplink_t *ubwp,
+                            int bwp_loop,
+                            NR_ServingCellConfig_t *servingcellconfigdedicated,
+                            NR_ServingCellConfigCommon_t *scc,
+                            const gNB_RrcConfigurationReq *configuration,
+                            int uid) {
+
+  /// BWP common configuration
+  ubwp->bwp_Common = calloc(1,sizeof(*ubwp->bwp_Common));
+  if(servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList &&
+     bwp_loop < servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList->list.count) {
+    ubwp->bwp_Id = servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[bwp_loop]->bwp_Id;
+    ubwp->bwp_Common->genericParameters.locationAndBandwidth = servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[bwp_loop]->bwp_Common->genericParameters.locationAndBandwidth;
+    ubwp->bwp_Common->genericParameters.subcarrierSpacing = servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[bwp_loop]->bwp_Common->genericParameters.subcarrierSpacing;
+    ubwp->bwp_Common->genericParameters.cyclicPrefix = servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[bwp_loop]->bwp_Common->genericParameters.cyclicPrefix;
+  } else {
+    ubwp->bwp_Id=bwp_loop+1;
+    ubwp->bwp_Common->genericParameters.locationAndBandwidth = PRBalloc_to_locationandbandwidth(scc->uplinkConfigCommon->frequencyInfoUL->scs_SpecificCarrierList.list.array[0]->carrierBandwidth,0);
+    ubwp->bwp_Common->genericParameters.subcarrierSpacing = scc->uplinkConfigCommon->initialUplinkBWP->genericParameters.subcarrierSpacing;
+    ubwp->bwp_Common->genericParameters.cyclicPrefix = scc->uplinkConfigCommon->initialUplinkBWP->genericParameters.cyclicPrefix;
+  }
 
-void fill_initial_SpCellConfig(int uid,
-                               NR_SpCellConfig_t *SpCellConfig,
-                               NR_ServingCellConfigCommon_t *scc,
-                               const gNB_RrcConfigurationReq *configuration)
-{
-  // This assert will never happen in the current implementation because NUMBER_OF_UE_MAX = 4.
-  // However, if in the future NUMBER_OF_UE_MAX is increased, it will be necessary to improve the allocation of SRS resources,
-  // where the startPosition = 2 or 3 and sl160 = 17, 17, 27 ... 157 only give us 30 different allocations.
-  AssertFatal(uid>=0 && uid<30, "gNB cannot allocate the SRS resources\n");
+  int curr_bwp = NRRIV2BW(ubwp->bwp_Common->genericParameters.locationAndBandwidth,MAX_BWP_SIZE);
 
-  int curr_bwp = NRRIV2BW(scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.locationAndBandwidth,MAX_BWP_SIZE);
-  SpCellConfig->servCellIndex = NULL;
-  SpCellConfig->reconfigurationWithSync = NULL;
-  SpCellConfig->rlmInSyncOutOfSyncThreshold = NULL;
-  SpCellConfig->rlf_TimersAndConstants = NULL;
-  SpCellConfig->spCellConfigDedicated = calloc(1,sizeof(*SpCellConfig->spCellConfigDedicated));
-  SpCellConfig->spCellConfigDedicated->uplinkConfig = calloc(1,sizeof(*SpCellConfig->spCellConfigDedicated->uplinkConfig));
-  NR_BWP_UplinkDedicated_t *initialUplinkBWP = calloc(1,sizeof(*initialUplinkBWP));
-  SpCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP = initialUplinkBWP;
-  initialUplinkBWP->pucch_Config = calloc(1,sizeof(*initialUplinkBWP->pucch_Config));
-  initialUplinkBWP->pucch_Config->present = NR_SetupRelease_PUCCH_Config_PR_setup;
+  ubwp->bwp_Common->rach_ConfigCommon  = NULL;
+  ubwp->bwp_Common->pusch_ConfigCommon = scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon;
+  ubwp->bwp_Common->pucch_ConfigCommon = scc->uplinkConfigCommon->initialUplinkBWP->pucch_ConfigCommon;
+
+  /// BWP dedicated configuration
+  ubwp->bwp_Dedicated = calloc(1,sizeof(*ubwp->bwp_Dedicated));
+
+  // PUCCH config
+  ubwp->bwp_Dedicated->pucch_Config = calloc(1,sizeof(*ubwp->bwp_Dedicated->pucch_Config));
+  ubwp->bwp_Dedicated->pucch_Config->present = NR_SetupRelease_PUCCH_Config_PR_setup;
   NR_PUCCH_Config_t *pucch_Config = calloc(1,sizeof(*pucch_Config));
-  initialUplinkBWP->pucch_Config->choice.setup=pucch_Config;
+  ubwp->bwp_Dedicated->pucch_Config->choice.setup=pucch_Config;
+
   pucch_Config->resourceSetToAddModList = calloc(1,sizeof(*pucch_Config->resourceSetToAddModList));
   pucch_Config->resourceSetToReleaseList = NULL;
-  NR_PUCCH_ResourceSet_t *pucchresset0=calloc(1,sizeof(*pucchresset0));
-  NR_PUCCH_ResourceSet_t *pucchresset1=calloc(1,sizeof(*pucchresset1));
-  pucchresset0->pucch_ResourceSetId = 0;
-  NR_PUCCH_ResourceId_t *pucchresset0id0=calloc(1,sizeof(*pucchresset0id0));
-  *pucchresset0id0=0;
-  ASN_SEQUENCE_ADD(&pucchresset0->resourceList.list,pucchresset0id0);
-  pucchresset0->maxPayloadSize=NULL;
-  ASN_SEQUENCE_ADD(&pucch_Config->resourceSetToAddModList->list,pucchresset0);
-  
-  pucchresset1->pucch_ResourceSetId = 1;
-  NR_PUCCH_ResourceId_t *pucchresset1id0=calloc(1,sizeof(*pucchresset1id0));
-  *pucchresset1id0=1;
-  ASN_SEQUENCE_ADD(&pucchresset1->resourceList.list,pucchresset1id0);
-  pucchresset1->maxPayloadSize=NULL;
-  ASN_SEQUENCE_ADD(&pucch_Config->resourceSetToAddModList->list,pucchresset1);
-
   pucch_Config->resourceToAddModList = calloc(1,sizeof(*pucch_Config->resourceToAddModList));
   pucch_Config->resourceToReleaseList = NULL;
-  // configure one single PUCCH0 opportunity for initial connection procedure
-  // one symbol (13)
-  NR_PUCCH_Resource_t *pucchres0=calloc(1,sizeof(*pucchres0));
-  pucchres0->pucch_ResourceId=0;
-  //pucchres0->startingPRB=0;
-  pucchres0->startingPRB=(8+uid) % (curr_bwp/2);
-  LOG_D(NR_RRC, "pucchres0->startPRB %ld uid %d curr_bwp %d\n", pucchres0->startingPRB, uid, curr_bwp);
-  pucchres0->intraSlotFrequencyHopping=NULL;
-  pucchres0->secondHopPRB=NULL;
-  pucchres0->format.present= NR_PUCCH_Resource__format_PR_format0;
-  pucchres0->format.choice.format0=calloc(1,sizeof(*pucchres0->format.choice.format0));
-  pucchres0->format.choice.format0->initialCyclicShift=0;
-  pucchres0->format.choice.format0->nrofSymbols=1;
-  pucchres0->format.choice.format0->startingSymbolIndex=13;
-  ASN_SEQUENCE_ADD(&pucch_Config->resourceToAddModList->list,pucchres0);
-
-  NR_PUCCH_Resource_t *pucchres2=calloc(1,sizeof(*pucchres2));
-  pucchres2->pucch_ResourceId=1;
-  pucchres2->startingPRB=0;
-  pucchres2->intraSlotFrequencyHopping=NULL;
-  pucchres2->secondHopPRB=NULL;
-  pucchres2->format.present= NR_PUCCH_Resource__format_PR_format2;
-  pucchres2->format.choice.format2=calloc(1,sizeof(*pucchres2->format.choice.format2));
-  pucchres2->format.choice.format2->nrofPRBs=8;
-  pucchres2->format.choice.format2->nrofSymbols=1;
-  pucchres2->format.choice.format2->startingSymbolIndex=13;
-  ASN_SEQUENCE_ADD(&pucch_Config->resourceToAddModList->list,pucchres2);
-
-  pucch_Config->format2=calloc(1,sizeof(*pucch_Config->format2));
-  pucch_Config->format2->present=NR_SetupRelease_PUCCH_FormatConfig_PR_setup;
-  NR_PUCCH_FormatConfig_t *pucchfmt2 = calloc(1,sizeof(*pucchfmt2));
-  pucch_Config->format2->choice.setup = pucchfmt2;
-  pucchfmt2->interslotFrequencyHopping=NULL;
-  pucchfmt2->additionalDMRS=NULL;
-  pucchfmt2->maxCodeRate=calloc(1,sizeof(*pucchfmt2->maxCodeRate));
-  *pucchfmt2->maxCodeRate=NR_PUCCH_MaxCodeRate_zeroDot35;
-  pucchfmt2->nrofSlots=NULL;
-  pucchfmt2->pi2BPSK=NULL;
-  pucchfmt2->simultaneousHARQ_ACK_CSI=calloc(1,sizeof(*pucchfmt2->simultaneousHARQ_ACK_CSI));
-  *pucchfmt2->simultaneousHARQ_ACK_CSI=NR_PUCCH_FormatConfig__simultaneousHARQ_ACK_CSI_true;
-  
-  pucch_Config->spatialRelationInfoToAddModList = calloc(1,sizeof(*pucch_Config->spatialRelationInfoToAddModList));
-  NR_PUCCH_SpatialRelationInfo_t *pucchspatial = calloc(1,sizeof(*pucchspatial));
-  pucchspatial->pucch_SpatialRelationInfoId = 1;
-  pucchspatial->servingCellId = NULL;
-  if(configuration->do_CSIRS) {
-    pucchspatial->referenceSignal.present = NR_PUCCH_SpatialRelationInfo__referenceSignal_PR_csi_RS_Index;
-    pucchspatial->referenceSignal.choice.csi_RS_Index = 0;
-  }
-  else {
-    pucchspatial->referenceSignal.present = NR_PUCCH_SpatialRelationInfo__referenceSignal_PR_ssb_Index;
-    pucchspatial->referenceSignal.choice.ssb_Index = 0;
-  }
-  pucchspatial->pucch_PathlossReferenceRS_Id = 0;
-  pucchspatial->p0_PUCCH_Id = 1;
-  pucchspatial->closedLoopIndex = NR_PUCCH_SpatialRelationInfo__closedLoopIndex_i0;
-  ASN_SEQUENCE_ADD(&pucch_Config->spatialRelationInfoToAddModList->list,pucchspatial);
+  config_pucch_resset0(pucch_Config, uid, curr_bwp, NULL);
+  config_pucch_resset1(pucch_Config, NULL);
+  set_pucch_power_config(pucch_Config, configuration->do_CSIRS);
 
+  scheduling_request_config(scc, pucch_Config);
+  set_dl_DataToUL_ACK(pucch_Config, configuration->minRXTXTIME);
 
-  initialUplinkBWP->pusch_Config = calloc(1,sizeof(*initialUplinkBWP->pusch_Config));
-  initialUplinkBWP->pusch_Config->present = NR_SetupRelease_PUSCH_Config_PR_setup;
+  // PUSCH config
+  ubwp->bwp_Dedicated->pusch_Config = calloc(1,sizeof(*ubwp->bwp_Dedicated->pusch_Config));
+  ubwp->bwp_Dedicated->pusch_Config->present = NR_SetupRelease_PUSCH_Config_PR_setup;
   NR_PUSCH_Config_t *pusch_Config = calloc(1,sizeof(*pusch_Config));
-  initialUplinkBWP->pusch_Config->choice.setup = pusch_Config;
-  pusch_Config->dataScramblingIdentityPUSCH = NULL;
+  ubwp->bwp_Dedicated->pusch_Config->choice.setup = pusch_Config;
   pusch_Config->txConfig=calloc(1,sizeof(*pusch_Config->txConfig));
   *pusch_Config->txConfig= NR_PUSCH_Config__txConfig_codebook;
   pusch_Config->dmrs_UplinkForPUSCH_MappingTypeA = NULL;
@@ -1129,8 +1193,8 @@ void fill_initial_SpCellConfig(int uid,
   pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup = calloc(1,sizeof(*pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup));
   NR_DMRS_UplinkConfig_t *NR_DMRS_UplinkConfig = pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup;
   NR_DMRS_UplinkConfig->dmrs_Type = NULL;
-  NR_DMRS_UplinkConfig->dmrs_AdditionalPosition = NULL; /*calloc(1,sizeof(*NR_DMRS_UplinkConfig->dmrs_AdditionalPosition));
-  *NR_DMRS_UplinkConfig->dmrs_AdditionalPosition = NR_DMRS_UplinkConfig__dmrs_AdditionalPosition_pos0;*/
+  NR_DMRS_UplinkConfig->dmrs_AdditionalPosition = calloc(1,sizeof(*NR_DMRS_UplinkConfig->dmrs_AdditionalPosition));
+  *NR_DMRS_UplinkConfig->dmrs_AdditionalPosition = NR_DMRS_UplinkConfig__dmrs_AdditionalPosition_pos0;
   NR_DMRS_UplinkConfig->phaseTrackingRS=NULL;
   NR_DMRS_UplinkConfig->maxLength=NULL;
   NR_DMRS_UplinkConfig->transformPrecodingDisabled = calloc(1,sizeof(*NR_DMRS_UplinkConfig->transformPrecodingDisabled));
@@ -1142,7 +1206,7 @@ void fill_initial_SpCellConfig(int uid,
   pusch_Config->pusch_PowerControl->msg3_Alpha = calloc(1,sizeof(*pusch_Config->pusch_PowerControl->msg3_Alpha));
   *pusch_Config->pusch_PowerControl->msg3_Alpha = NR_Alpha_alpha1;
   pusch_Config->pusch_PowerControl->p0_NominalWithoutGrant = calloc(1,sizeof(*pusch_Config->pusch_PowerControl->p0_NominalWithoutGrant));
-  *pusch_Config->pusch_PowerControl->p0_NominalWithoutGrant = -76;
+  *pusch_Config->pusch_PowerControl->p0_NominalWithoutGrant = -98;
   pusch_Config->pusch_PowerControl->p0_AlphaSets = calloc(1,sizeof(*pusch_Config->pusch_PowerControl->p0_AlphaSets));
   NR_P0_PUSCH_AlphaSet_t *aset = calloc(1,sizeof(*aset));
   aset->p0_PUSCH_AlphaSetId=0;
@@ -1187,11 +1251,30 @@ void fill_initial_SpCellConfig(int uid,
   pusch_Config->rbg_Size=NULL;
   pusch_Config->uci_OnPUSCH=NULL;
   pusch_Config->tp_pi2BPSK=NULL;
+  uint8_t transform_precoding = NR_PUSCH_Config__transformPrecoder_disabled;
+  if (pusch_Config->transformPrecoder == NULL) {
+    if (scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg3_transformPrecoder != NULL)
+      transform_precoding = NR_PUSCH_Config__transformPrecoder_enabled;
+  }
+  else {
+    transform_precoding = *pusch_Config->transformPrecoder;
+  }
+  if (transform_precoding == NR_PUSCH_Config__transformPrecoder_enabled) {
+    // Enable DMRS uplink config for transform precoding enabled
+    NR_DMRS_UplinkConfig->transformPrecodingEnabled = calloc(1,sizeof(*NR_DMRS_UplinkConfig->transformPrecodingEnabled));
+    NR_DMRS_UplinkConfig->transformPrecodingEnabled->nPUSCH_Identity = NULL;
+    NR_DMRS_UplinkConfig->transformPrecodingEnabled->sequenceGroupHopping = NULL;
+    NR_DMRS_UplinkConfig->transformPrecodingEnabled->sequenceHopping = NULL;
+    NR_DMRS_UplinkConfig->transformPrecodingEnabled->ext1 = NULL;
+    LOG_I(NR_RRC,"Transform precoding enabled\n");
+  }
 
-  initialUplinkBWP->srs_Config = calloc(1,sizeof(*initialUplinkBWP->srs_Config));
-  initialUplinkBWP->srs_Config->present = NR_SetupRelease_SRS_Config_PR_setup;
+  // SRS config
+  ubwp->bwp_Dedicated->configuredGrantConfig = NULL;
+  ubwp->bwp_Dedicated->srs_Config = calloc(1,sizeof(*ubwp->bwp_Dedicated->srs_Config));
+  ubwp->bwp_Dedicated->srs_Config->present = NR_SetupRelease_SRS_Config_PR_setup;
   NR_SRS_Config_t *srs_Config = calloc(1,sizeof(*srs_Config));
-  initialUplinkBWP->srs_Config->choice.setup=srs_Config;
+  ubwp->bwp_Dedicated->srs_Config->choice.setup = srs_Config;
   srs_Config->srs_ResourceSetToReleaseList=NULL;
   srs_Config->srs_ResourceSetToAddModList=calloc(1,sizeof(*srs_Config->srs_ResourceSetToAddModList));
   NR_SRS_ResourceSet_t *srs_resset0=calloc(1,sizeof(*srs_resset0));
@@ -1201,21 +1284,13 @@ void fill_initial_SpCellConfig(int uid,
   *srs_resset0_id=0;
   ASN_SEQUENCE_ADD(&srs_resset0->srs_ResourceIdList->list,srs_resset0_id);
   srs_Config->srs_ResourceToReleaseList=NULL;
-
-  if (configuration->do_SRS) {
-    srs_resset0->resourceType.present =  NR_SRS_ResourceSet__resourceType_PR_periodic;
-    srs_resset0->resourceType.choice.periodic = calloc(1,sizeof(*srs_resset0->resourceType.choice.periodic));
-    srs_resset0->resourceType.choice.periodic->associatedCSI_RS = NULL;
-  } else {
-    srs_resset0->resourceType.present =  NR_SRS_ResourceSet__resourceType_PR_aperiodic;
-    srs_resset0->resourceType.choice.aperiodic = calloc(1,sizeof(*srs_resset0->resourceType.choice.aperiodic));
-    srs_resset0->resourceType.choice.aperiodic->aperiodicSRS_ResourceTrigger=1;
-    srs_resset0->resourceType.choice.aperiodic->csi_RS=NULL;
-    srs_resset0->resourceType.choice.aperiodic->slotOffset= calloc(1,sizeof(*srs_resset0->resourceType.choice.aperiodic->slotOffset));
-    *srs_resset0->resourceType.choice.aperiodic->slotOffset=2;
-    srs_resset0->resourceType.choice.aperiodic->ext1=NULL;
-  }
-
+  srs_resset0->resourceType.present =  NR_SRS_ResourceSet__resourceType_PR_aperiodic;
+  srs_resset0->resourceType.choice.aperiodic = calloc(1,sizeof(*srs_resset0->resourceType.choice.aperiodic));
+  srs_resset0->resourceType.choice.aperiodic->aperiodicSRS_ResourceTrigger=1;
+  srs_resset0->resourceType.choice.aperiodic->csi_RS=NULL;
+  srs_resset0->resourceType.choice.aperiodic->slotOffset= calloc(1,sizeof(*srs_resset0->resourceType.choice.aperiodic->slotOffset));
+  *srs_resset0->resourceType.choice.aperiodic->slotOffset=2;
+  srs_resset0->resourceType.choice.aperiodic->ext1=NULL;
   srs_resset0->usage=NR_SRS_ResourceSet__usage_codebook;
   srs_resset0->alpha = calloc(1,sizeof(*srs_resset0->alpha));
   *srs_resset0->alpha = NR_Alpha_alpha1;
@@ -1234,28 +1309,17 @@ void fill_initial_SpCellConfig(int uid,
   srs_res0->transmissionComb.choice.n2=calloc(1,sizeof(*srs_res0->transmissionComb.choice.n2));
   srs_res0->transmissionComb.choice.n2->combOffset_n2=0;
   srs_res0->transmissionComb.choice.n2->cyclicShift_n2=0;
-  srs_res0->resourceMapping.startPosition = 2 + uid%2;
+  srs_res0->resourceMapping.startPosition=2;
   srs_res0->resourceMapping.nrofSymbols=NR_SRS_Resource__resourceMapping__nrofSymbols_n1;
   srs_res0->resourceMapping.repetitionFactor=NR_SRS_Resource__resourceMapping__repetitionFactor_n1;
   srs_res0->freqDomainPosition=0;
   srs_res0->freqDomainShift=0;
+  srs_res0->freqHopping.c_SRS=0;
   srs_res0->freqHopping.b_SRS=0;
   srs_res0->freqHopping.b_hop=0;
-  srs_res0->freqHopping.c_SRS = rrc_get_max_nr_csrs(
-      NRRIV2BW(scc->uplinkConfigCommon->initialUplinkBWP->genericParameters.locationAndBandwidth, 275),
-      srs_res0->freqHopping.b_SRS);
   srs_res0->groupOrSequenceHopping=NR_SRS_Resource__groupOrSequenceHopping_neither;
-
-  if (configuration->do_SRS) {
-    srs_res0->resourceType.present= NR_SRS_Resource__resourceType_PR_periodic;
-    srs_res0->resourceType.choice.periodic=calloc(1,sizeof(*srs_res0->resourceType.choice.periodic));
-    srs_res0->resourceType.choice.periodic->periodicityAndOffset_p.present = NR_SRS_PeriodicityAndOffset_PR_sl160;
-    srs_res0->resourceType.choice.periodic->periodicityAndOffset_p.choice.sl160 = 17 + (uid>1)*10; // 17/17/.../147/157 are mixed slots
-  } else {
-    srs_res0->resourceType.present= NR_SRS_Resource__resourceType_PR_aperiodic;
-    srs_res0->resourceType.choice.aperiodic=calloc(1,sizeof(*srs_res0->resourceType.choice.aperiodic));
-  }
-
+  srs_res0->resourceType.present= NR_SRS_Resource__resourceType_PR_aperiodic;
+  srs_res0->resourceType.choice.aperiodic=calloc(1,sizeof(*srs_res0->resourceType.choice.aperiodic));
   srs_res0->sequenceId=40;
   srs_res0->spatialRelationInfo=calloc(1,sizeof(*srs_res0->spatialRelationInfo));
   srs_res0->spatialRelationInfo->servingCellId=NULL;
@@ -1263,31 +1327,124 @@ void fill_initial_SpCellConfig(int uid,
   srs_res0->spatialRelationInfo->referenceSignal.choice.csi_RS_Index=0;
   ASN_SEQUENCE_ADD(&srs_Config->srs_ResourceToAddModList->list,srs_res0);
 
-  // configure Scheduling request
-  // 40 slot period 
-  pucch_Config->schedulingRequestResourceToAddModList = calloc(1,sizeof(*pucch_Config->schedulingRequestResourceToAddModList));
-  NR_SchedulingRequestResourceConfig_t *schedulingRequestResourceConfig = calloc(1,sizeof(*schedulingRequestResourceConfig));
-  schedulingRequestResourceConfig->schedulingRequestResourceId = 1;
-  schedulingRequestResourceConfig->schedulingRequestID= 0;
-  schedulingRequestResourceConfig->periodicityAndOffset = calloc(1,sizeof(*schedulingRequestResourceConfig->periodicityAndOffset));
-  schedulingRequestResourceConfig->periodicityAndOffset->present = NR_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl40;
-  AssertFatal(scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.subcarrierSpacing==NR_SubcarrierSpacing_kHz30,
-              "SCS != 30kHz\n");
-
-  schedulingRequestResourceConfig->periodicityAndOffset->choice.sl40 = 8;
-  schedulingRequestResourceConfig->resource = calloc(1,sizeof(*schedulingRequestResourceConfig->resource));
-  *schedulingRequestResourceConfig->resource = 0;
-  ASN_SEQUENCE_ADD(&pucch_Config->schedulingRequestResourceToAddModList->list,schedulingRequestResourceConfig);
-
- pucch_Config->dl_DataToUL_ACK = calloc(1,sizeof(*pucch_Config->dl_DataToUL_ACK));
- long *delay[8];
- for (int i=0;i<8;i++) {
-   delay[i] = calloc(1,sizeof(*delay[i]));
-   AssertFatal(configuration->minRXTXTIME >= 2 && configuration->minRXTXTIME < 7,
-               "minRXTXTIME is %d but should be within [2,7)\n", configuration->minRXTXTIME);
-   *delay[i] = i + configuration->minRXTXTIME;
-   ASN_SEQUENCE_ADD(&pucch_Config->dl_DataToUL_ACK->list,delay[i]);
- }
+  ubwp->bwp_Dedicated->beamFailureRecoveryConfig = NULL;
+}
+
+void fill_initial_SpCellConfig(int uid,
+                               NR_CellGroupConfig_t *cellGroupConfig,
+                               NR_ServingCellConfigCommon_t *scc,
+                               NR_ServingCellConfig_t *servingcellconfigdedicated,
+                               const gNB_RrcConfigurationReq *configuration) {
+
+  NR_SpCellConfig_t *SpCellConfig = cellGroupConfig->spCellConfig;
+
+  // This assert will never happen in the current implementation because NUMBER_OF_UE_MAX = 4.
+  // However, if in the future NUMBER_OF_UE_MAX is increased, it will be necessary to improve the allocation of SRS resources,
+  // where the startPosition = 2 or 3 and sl160 = 17, 17, 27 ... 157 only give us 30 different allocations.
+  AssertFatal(uid>=0 && uid<30, "gNB cannot allocate the SRS resources\n");
+
+  int curr_bwp = NRRIV2BW(scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.locationAndBandwidth,MAX_BWP_SIZE);
+  SpCellConfig->servCellIndex = NULL;
+  SpCellConfig->reconfigurationWithSync = NULL;
+  SpCellConfig->rlmInSyncOutOfSyncThreshold = NULL;
+  SpCellConfig->rlf_TimersAndConstants = NULL;
+
+  SpCellConfig->spCellConfigDedicated = calloc(1,sizeof(*SpCellConfig->spCellConfigDedicated));
+  SpCellConfig->spCellConfigDedicated->uplinkConfig = calloc(1,sizeof(*SpCellConfig->spCellConfigDedicated->uplinkConfig));
+
+  NR_BWP_UplinkDedicated_t *initialUplinkBWP = calloc(1,sizeof(*initialUplinkBWP));
+  SpCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP = initialUplinkBWP;
+  initialUplinkBWP->pucch_Config = calloc(1,sizeof(*initialUplinkBWP->pucch_Config));
+  initialUplinkBWP->pucch_Config->present = NR_SetupRelease_PUCCH_Config_PR_setup;
+  NR_PUCCH_Config_t *pucch_Config = calloc(1,sizeof(*pucch_Config));
+  initialUplinkBWP->pucch_Config->choice.setup=pucch_Config;
+  pucch_Config->resourceSetToAddModList = calloc(1,sizeof(*pucch_Config->resourceSetToAddModList));
+  pucch_Config->resourceSetToReleaseList = NULL;
+  pucch_Config->resourceToAddModList = calloc(1,sizeof(*pucch_Config->resourceToAddModList));
+  pucch_Config->resourceToReleaseList = NULL;
+  config_pucch_resset0(pucch_Config, uid, curr_bwp, NULL);
+  config_pucch_resset1(pucch_Config, NULL);
+  set_pucch_power_config(pucch_Config, configuration->do_CSIRS);
+
+  initialUplinkBWP->pusch_Config = calloc(1,sizeof(*initialUplinkBWP->pusch_Config));
+  initialUplinkBWP->pusch_Config->present = NR_SetupRelease_PUSCH_Config_PR_setup;
+  NR_PUSCH_Config_t *pusch_Config = calloc(1,sizeof(*pusch_Config));
+  initialUplinkBWP->pusch_Config->choice.setup = pusch_Config;
+  pusch_Config->dataScramblingIdentityPUSCH = NULL;
+  pusch_Config->txConfig=calloc(1,sizeof(*pusch_Config->txConfig));
+  *pusch_Config->txConfig= NR_PUSCH_Config__txConfig_codebook;
+  pusch_Config->dmrs_UplinkForPUSCH_MappingTypeA = NULL;
+  pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB = calloc(1,sizeof(*pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB));
+  pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->present = NR_SetupRelease_DMRS_UplinkConfig_PR_setup;
+  pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup = calloc(1,sizeof(*pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup));
+  NR_DMRS_UplinkConfig_t *NR_DMRS_UplinkConfig = pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup;
+  NR_DMRS_UplinkConfig->dmrs_Type = NULL;
+  NR_DMRS_UplinkConfig->dmrs_AdditionalPosition = NULL; /*calloc(1,sizeof(*NR_DMRS_UplinkConfig->dmrs_AdditionalPosition));
+  *NR_DMRS_UplinkConfig->dmrs_AdditionalPosition = NR_DMRS_UplinkConfig__dmrs_AdditionalPosition_pos0;*/
+  NR_DMRS_UplinkConfig->phaseTrackingRS=NULL;
+  NR_DMRS_UplinkConfig->maxLength=NULL;
+  NR_DMRS_UplinkConfig->transformPrecodingDisabled = calloc(1,sizeof(*NR_DMRS_UplinkConfig->transformPrecodingDisabled));
+  NR_DMRS_UplinkConfig->transformPrecodingDisabled->scramblingID0 = NULL;
+  NR_DMRS_UplinkConfig->transformPrecodingDisabled->scramblingID1 = NULL;
+  NR_DMRS_UplinkConfig->transformPrecodingEnabled = NULL;
+  pusch_Config->pusch_PowerControl = calloc(1,sizeof(*pusch_Config->pusch_PowerControl));
+  pusch_Config->pusch_PowerControl->tpc_Accumulation = NULL;
+  pusch_Config->pusch_PowerControl->msg3_Alpha = calloc(1,sizeof(*pusch_Config->pusch_PowerControl->msg3_Alpha));
+  *pusch_Config->pusch_PowerControl->msg3_Alpha = NR_Alpha_alpha1;
+  pusch_Config->pusch_PowerControl->p0_NominalWithoutGrant = calloc(1,sizeof(*pusch_Config->pusch_PowerControl->p0_NominalWithoutGrant));
+  *pusch_Config->pusch_PowerControl->p0_NominalWithoutGrant = -76;
+  pusch_Config->pusch_PowerControl->p0_AlphaSets = calloc(1,sizeof(*pusch_Config->pusch_PowerControl->p0_AlphaSets));
+  NR_P0_PUSCH_AlphaSet_t *aset = calloc(1,sizeof(*aset));
+  aset->p0_PUSCH_AlphaSetId=0;
+  aset->p0=calloc(1,sizeof(*aset->p0));
+  *aset->p0 = 0;
+  aset->alpha=calloc(1,sizeof(*aset->alpha));
+  *aset->alpha=NR_Alpha_alpha1;
+  ASN_SEQUENCE_ADD(&pusch_Config->pusch_PowerControl->p0_AlphaSets->list,aset);
+  pusch_Config->pusch_PowerControl->pathlossReferenceRSToAddModList = calloc(1,sizeof(*pusch_Config->pusch_PowerControl->pathlossReferenceRSToAddModList));
+  NR_PUSCH_PathlossReferenceRS_t *plrefRS = calloc(1,sizeof(*plrefRS));
+  plrefRS->pusch_PathlossReferenceRS_Id=0;
+  plrefRS->referenceSignal.present = NR_PUSCH_PathlossReferenceRS__referenceSignal_PR_ssb_Index;
+  plrefRS->referenceSignal.choice.ssb_Index = 0;
+  ASN_SEQUENCE_ADD(&pusch_Config->pusch_PowerControl->pathlossReferenceRSToAddModList->list,plrefRS);
+  pusch_Config->pusch_PowerControl->pathlossReferenceRSToReleaseList = NULL;
+  pusch_Config->pusch_PowerControl->twoPUSCH_PC_AdjustmentStates = NULL;
+  pusch_Config->pusch_PowerControl->deltaMCS = NULL;
+  pusch_Config->pusch_PowerControl->sri_PUSCH_MappingToAddModList = calloc(1,sizeof(*pusch_Config->pusch_PowerControl->sri_PUSCH_MappingToAddModList));
+  NR_SRI_PUSCH_PowerControl_t *sriPUSCHPC=calloc(1,sizeof(*sriPUSCHPC));
+  sriPUSCHPC->sri_PUSCH_PowerControlId=0;
+  sriPUSCHPC->sri_PUSCH_PathlossReferenceRS_Id=0;
+  sriPUSCHPC->sri_P0_PUSCH_AlphaSetId=0;
+  sriPUSCHPC->sri_PUSCH_ClosedLoopIndex=NR_SRI_PUSCH_PowerControl__sri_PUSCH_ClosedLoopIndex_i0;
+  ASN_SEQUENCE_ADD(&pusch_Config->pusch_PowerControl->sri_PUSCH_MappingToAddModList->list,sriPUSCHPC);
+  pusch_Config->pusch_PowerControl->sri_PUSCH_MappingToReleaseList = NULL;
+  pusch_Config->frequencyHopping=NULL;
+  pusch_Config->frequencyHoppingOffsetLists=NULL;
+  pusch_Config->resourceAllocation = NR_PUSCH_Config__resourceAllocation_resourceAllocationType1;
+  pusch_Config->pusch_TimeDomainAllocationList = NULL;
+  pusch_Config->pusch_AggregationFactor=NULL;
+  pusch_Config->mcs_Table=NULL;
+  pusch_Config->mcs_TableTransformPrecoder=NULL;
+  pusch_Config->transformPrecoder= NULL;
+  if (scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg3_transformPrecoder == NULL) {
+    pusch_Config->transformPrecoder=calloc(1,sizeof(*pusch_Config->transformPrecoder));
+    *pusch_Config->transformPrecoder = NR_PUSCH_Config__transformPrecoder_disabled;
+  }
+  pusch_Config->codebookSubset=calloc(1,sizeof(*pusch_Config->codebookSubset));
+  *pusch_Config->codebookSubset = NR_PUSCH_Config__codebookSubset_nonCoherent;
+  pusch_Config->maxRank=calloc(1,sizeof(*pusch_Config->maxRank));
+  *pusch_Config->maxRank= 1;
+  pusch_Config->rbg_Size=NULL;
+  pusch_Config->uci_OnPUSCH=NULL;
+  pusch_Config->tp_pi2BPSK=NULL;
+
+  // We are using do_srs = 0 here because the periodic SRS will only be enabled in update_cellGroupConfig() if do_srs == 1
+  initialUplinkBWP->srs_Config = calloc(1,sizeof(*initialUplinkBWP->srs_Config));
+  config_srs(initialUplinkBWP->srs_Config, scc, uid, 0);
+
+  scheduling_request_config(scc, pucch_Config);
+
+  set_dl_DataToUL_ACK(pucch_Config, configuration->minRXTXTIME);
 
   SpCellConfig->spCellConfigDedicated->initialDownlinkBWP = calloc(1,sizeof(*SpCellConfig->spCellConfigDedicated->initialDownlinkBWP));
   NR_BWP_DownlinkDedicated_t *bwp_Dedicated = SpCellConfig->spCellConfigDedicated->initialDownlinkBWP;
@@ -1300,37 +1457,9 @@ void fill_initial_SpCellConfig(int uid,
   bwp_Dedicated->pdcch_Config->choice.setup->controlResourceSetToAddModList = calloc(1,sizeof(*bwp_Dedicated->pdcch_Config->choice.setup->controlResourceSetToAddModList));
 
   NR_ControlResourceSet_t *coreset = calloc(1,sizeof(*coreset));
-  coreset->controlResourceSetId=1;
-  // frequency domain resources depends on BWP size
-  // options are 24, 48 or 96
-  coreset->frequencyDomainResources.buf = calloc(1,6);
-  if (0) {
-     if (curr_bwp < 48)
-       coreset->frequencyDomainResources.buf[0] = 0xf0;
-     else
-       coreset->frequencyDomainResources.buf[0] = 0xff;
-     if (curr_bwp < 96)
-       coreset->frequencyDomainResources.buf[1] = 0;
-     else
-       coreset->frequencyDomainResources.buf[1] = 0xff;
-  } else {
-     coreset->frequencyDomainResources.buf[0] = 0xf0;
-     coreset->frequencyDomainResources.buf[1] = 0;
-  }
-  coreset->frequencyDomainResources.buf[2] = 0;
-  coreset->frequencyDomainResources.buf[3] = 0;
-  coreset->frequencyDomainResources.buf[4] = 0;
-  coreset->frequencyDomainResources.buf[5] = 0;
-  coreset->frequencyDomainResources.size = 6;
-  coreset->frequencyDomainResources.bits_unused = 3;
-  coreset->duration=1;
-  coreset->cce_REG_MappingType.present = NR_ControlResourceSet__cce_REG_MappingType_PR_nonInterleaved;
-  coreset->precoderGranularity = NR_ControlResourceSet__precoderGranularity_sameAsREG_bundle;
-
-  coreset->tci_StatesPDCCH_ToAddList=NULL;
-  coreset->tci_StatesPDCCH_ToReleaseList = NULL;
-  coreset->tci_PresentInDCI = NULL;
-  coreset->pdcch_DMRS_ScramblingID = NULL;
+
+  uint64_t bitmap = get_ssb_bitmap(scc);
+  rrc_coreset_config(coreset, 0, curr_bwp, bitmap);
 
   ASN_SEQUENCE_ADD(&bwp_Dedicated->pdcch_Config->choice.setup->controlResourceSetToAddModList->list,
                    coreset);
@@ -1341,7 +1470,7 @@ void fill_initial_SpCellConfig(int uid,
  
   ss2->searchSpaceId=2;
   ss2->controlResourceSetId=calloc(1,sizeof(*ss2->controlResourceSetId));
-  *ss2->controlResourceSetId=1;
+  *ss2->controlResourceSetId=coreset->controlResourceSetId;
   ss2->monitoringSlotPeriodicityAndOffset=calloc(1,sizeof(*ss2->monitoringSlotPeriodicityAndOffset));
   ss2->monitoringSlotPeriodicityAndOffset->present = NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1;
   ss2->monitoringSlotPeriodicityAndOffset->choice.sl1=(NULL_t)0;
@@ -1349,13 +1478,13 @@ void fill_initial_SpCellConfig(int uid,
   ss2->monitoringSymbolsWithinSlot = calloc(1,sizeof(*ss2->monitoringSymbolsWithinSlot));
   ss2->monitoringSymbolsWithinSlot->buf = calloc(1,2);
   ss2->monitoringSymbolsWithinSlot->size = 2;
-  ss2->monitoringSymbolsWithinSlot->bits_unused = 2;
   ss2->monitoringSymbolsWithinSlot->buf[0]=0x80;
   ss2->monitoringSymbolsWithinSlot->buf[1]=0x0;
+  ss2->monitoringSymbolsWithinSlot->bits_unused = 2;
   ss2->nrofCandidates=calloc(1,sizeof(*ss2->nrofCandidates));
   ss2->nrofCandidates->aggregationLevel1 = NR_SearchSpace__nrofCandidates__aggregationLevel1_n0;
   ss2->nrofCandidates->aggregationLevel2 = NR_SearchSpace__nrofCandidates__aggregationLevel2_n2;
-  ss2->nrofCandidates->aggregationLevel4 = NR_SearchSpace__nrofCandidates__aggregationLevel4_n0;
+  ss2->nrofCandidates->aggregationLevel4 = NR_SearchSpace__nrofCandidates__aggregationLevel4_n1;
   ss2->nrofCandidates->aggregationLevel8 = NR_SearchSpace__nrofCandidates__aggregationLevel8_n0;
   ss2->nrofCandidates->aggregationLevel16 = NR_SearchSpace__nrofCandidates__aggregationLevel16_n0;
   ss2->searchSpaceType=calloc(1,sizeof(*ss2->searchSpaceType));
@@ -1377,13 +1506,13 @@ void fill_initial_SpCellConfig(int uid,
   bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->maxLength=NULL;
 
   bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_AdditionalPosition = calloc(1,sizeof(*bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_AdditionalPosition));
- *bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_AdditionalPosition = NR_DMRS_DownlinkConfig__dmrs_AdditionalPosition_pos1;
- bwp_Dedicated->pdsch_Config->choice.setup->resourceAllocation = NR_PDSCH_Config__resourceAllocation_resourceAllocationType1;
- bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.present = NR_PDSCH_Config__prb_BundlingType_PR_staticBundling;
- bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling = calloc(1,sizeof(*bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling));
- bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling->bundleSize =
-   calloc(1,sizeof(*bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling->bundleSize));
- *bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling->bundleSize = NR_PDSCH_Config__prb_BundlingType__staticBundling__bundleSize_wideband;
+  *bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_AdditionalPosition = NR_DMRS_DownlinkConfig__dmrs_AdditionalPosition_pos1;
+  bwp_Dedicated->pdsch_Config->choice.setup->resourceAllocation = NR_PDSCH_Config__resourceAllocation_resourceAllocationType1;
+  bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.present = NR_PDSCH_Config__prb_BundlingType_PR_staticBundling;
+  bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling = calloc(1,sizeof(*bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling));
+  bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling->bundleSize =
+      calloc(1,sizeof(*bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling->bundleSize));
+  *bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling->bundleSize = NR_PDSCH_Config__prb_BundlingType__staticBundling__bundleSize_wideband;
 
   bwp_Dedicated->pdsch_Config->choice.setup->tci_StatesToAddModList=calloc(1,sizeof(*bwp_Dedicated->pdsch_Config->choice.setup->tci_StatesToAddModList));
   NR_TCI_State_t *tcic;
@@ -1405,50 +1534,20 @@ void fill_initial_SpCellConfig(int uid,
   SpCellConfig->spCellConfigDedicated->pdsch_ServingCellConfig->choice.setup = pdsch_servingcellconfig;
 
   if (configuration->do_CSIRS) {
- 
+
     SpCellConfig->spCellConfigDedicated->csi_MeasConfig=calloc(1,sizeof(*SpCellConfig->spCellConfigDedicated->csi_MeasConfig));
     SpCellConfig->spCellConfigDedicated->csi_MeasConfig->present = NR_SetupRelease_CSI_MeasConfig_PR_setup;
 
     NR_CSI_MeasConfig_t *csi_MeasConfig = calloc(1,sizeof(*csi_MeasConfig));
     SpCellConfig->spCellConfigDedicated->csi_MeasConfig->choice.setup = csi_MeasConfig;
     int pdsch_AntennaPorts = configuration->pdsch_AntennaPorts.N1 * configuration->pdsch_AntennaPorts.N2 * configuration->pdsch_AntennaPorts.XP;
-    if (pdsch_AntennaPorts > 1) {
-      csi_MeasConfig->csi_IM_ResourceToAddModList = calloc(1,sizeof(*csi_MeasConfig->csi_IM_ResourceToAddModList));
-      NR_CSI_IM_Resource_t *imres0 = calloc(1,sizeof(*imres0));
-      imres0->csi_IM_ResourceId = 0; 
-      imres0->csi_IM_ResourceElementPattern = calloc(1,sizeof(*imres0->csi_IM_ResourceElementPattern));
-      imres0->csi_IM_ResourceElementPattern->present = NR_CSI_IM_Resource__csi_IM_ResourceElementPattern_PR_pattern1;
-      imres0->csi_IM_ResourceElementPattern->choice.pattern1 = calloc(1,sizeof(*imres0->csi_IM_ResourceElementPattern->choice.pattern1));
-      imres0->csi_IM_ResourceElementPattern->choice.pattern1->subcarrierLocation_p1 = NR_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern1__subcarrierLocation_p1_s4;
-      imres0->csi_IM_ResourceElementPattern->choice.pattern1->symbolLocation_p1 = 6;
-      imres0->freqBand = calloc(1,sizeof(*imres0->freqBand));
-      imres0->freqBand->startingRB = 0;
-      imres0->freqBand->nrofRBs = 108;
-      imres0->periodicityAndOffset = calloc(1,sizeof(*imres0->periodicityAndOffset));
-      imres0->periodicityAndOffset->present = NR_CSI_ResourcePeriodicityAndOffset_PR_slots320;
-      imres0->periodicityAndOffset->choice.slots320 = 0;
-      ASN_SEQUENCE_ADD(&csi_MeasConfig->csi_IM_ResourceToAddModList->list,imres0);
-      csi_MeasConfig->csi_IM_ResourceSetToAddModList = calloc(1,sizeof(*csi_MeasConfig->csi_IM_ResourceSetToAddModList));
-      NR_CSI_IM_ResourceSet_t *imset0 = calloc(1,sizeof(*imset0));
-      imset0->csi_IM_ResourceSetId = 0; 
-      NR_CSI_IM_ResourceId_t *res0 = calloc(1,sizeof(*res0));
-      *res0 = 0;
-      ASN_SEQUENCE_ADD(&imset0->csi_IM_Resources,res0);
-      ASN_SEQUENCE_ADD(&csi_MeasConfig->csi_IM_ResourceSetToAddModList->list,imset0);
-    }
-    else {
-      csi_MeasConfig->csi_IM_ResourceToAddModList = NULL;
-      csi_MeasConfig->csi_IM_ResourceSetToAddModList = NULL;
-    }
-
-    csi_MeasConfig->csi_IM_ResourceToReleaseList = NULL;
-    csi_MeasConfig->csi_IM_ResourceSetToReleaseList = NULL;
 
-    config_csirs(scc, csi_MeasConfig, uid, pdsch_AntennaPorts,curr_bwp,configuration->do_CSIRS);
+    config_csirs(scc, csi_MeasConfig, uid, pdsch_AntennaPorts, curr_bwp, configuration->do_CSIRS);
+    config_csiim(configuration->do_CSIRS, pdsch_AntennaPorts, curr_bwp, csi_MeasConfig);
 
     csi_MeasConfig->csi_SSB_ResourceSetToAddModList = calloc(1,sizeof(*csi_MeasConfig->csi_SSB_ResourceSetToAddModList));
     csi_MeasConfig->csi_SSB_ResourceSetToReleaseList = NULL;
-  
+
     NR_CSI_SSB_ResourceSet_t *ssbresset0 = calloc(1,sizeof(*ssbresset0));
     ssbresset0->csi_SSB_ResourceSetId=0;
 
@@ -1493,7 +1592,6 @@ void fill_initial_SpCellConfig(int uid,
    csires0->bwp_Id = 0;
    csires0->resourceType = NR_CSI_ResourceConfig__resourceType_periodic;
    ASN_SEQUENCE_ADD(&csi_MeasConfig->csi_ResourceConfigToAddModList->list,csires0);
- 
 
    NR_CSI_ResourceConfig_t *csires1 = calloc(1,sizeof(*csires1));
    csires1->csi_ResourceConfigId=1;
@@ -1501,7 +1599,7 @@ void fill_initial_SpCellConfig(int uid,
    csires1->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB = calloc(1,sizeof(*csires1->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB));
    csires1->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->csi_SSB_ResourceSetList = calloc(1,sizeof(*csires1->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->csi_SSB_ResourceSetList));
    NR_CSI_SSB_ResourceSetId_t *ssbres00 = calloc(1,sizeof(*ssbres00));
- *ssbres00 = 0;
+   *ssbres00 = 0;
    ASN_SEQUENCE_ADD(&csires1->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->csi_SSB_ResourceSetList->list,ssbres00);
    csires1->bwp_Id = 0;
    csires1->resourceType = NR_CSI_ResourceConfig__resourceType_periodic;
@@ -1521,8 +1619,8 @@ void fill_initial_SpCellConfig(int uid,
    }
 
    NR_PUCCH_CSI_Resource_t *pucchcsires1 = calloc(1,sizeof(*pucchcsires1));
-   pucchcsires1->uplinkBandwidthPartId=0;
-   pucchcsires1->pucch_Resource=1;
+   pucchcsires1->uplinkBandwidthPartId = 0;
+   pucchcsires1->pucch_Resource = *pucch_Config->resourceSetToAddModList->list.array[1]->resourceList.list.array[0];
    csi_MeasConfig->csi_ReportConfigToAddModList = calloc(1,sizeof(*csi_MeasConfig->csi_ReportConfigToAddModList));
    csi_MeasConfig->csi_ReportConfigToReleaseList = NULL;
    if (pdsch_AntennaPorts > 1) {
@@ -1537,7 +1635,7 @@ void fill_initial_SpCellConfig(int uid,
      csirep1->reportConfigType.present = NR_CSI_ReportConfig__reportConfigType_PR_periodic;
      csirep1->reportConfigType.choice.periodic = calloc(1,sizeof(*csirep1->reportConfigType.choice.periodic));
      csirep1->reportConfigType.choice.periodic->reportSlotConfig.present=NR_CSI_ReportPeriodicityAndOffset_PR_slots320;
-     csirep1->reportConfigType.choice.periodic->reportSlotConfig.choice.slots320 = (7 + (20 * uid)) % 320;
+     csirep1->reportConfigType.choice.periodic->reportSlotConfig.choice.slots320 = (7 + (30 * uid)) % 320;
      ASN_SEQUENCE_ADD(&csirep1->reportConfigType.choice.periodic->pucch_CSI_ResourceList.list,pucchcsires1);
      csirep1->reportQuantity.present = NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_PMI_CQI;
      csirep1->reportQuantity.choice.cri_RI_PMI_CQI=(NULL_t)0;
@@ -1546,8 +1644,8 @@ void fill_initial_SpCellConfig(int uid,
      *csirep1->reportFreqConfiguration->cqi_FormatIndicator=NR_CSI_ReportConfig__reportFreqConfiguration__cqi_FormatIndicator_widebandCQI;
      csirep1->reportFreqConfiguration->pmi_FormatIndicator = calloc(1,sizeof(*csirep1->reportFreqConfiguration->pmi_FormatIndicator));
      *csirep1->reportFreqConfiguration->pmi_FormatIndicator=NR_CSI_ReportConfig__reportFreqConfiguration__pmi_FormatIndicator_widebandPMI;
-     csirep1->reportFreqConfiguration->csi_ReportingBand = NULL; 
-/*calloc(1,sizeof(*csirep1->reportFreqConfiguration->csi_ReportingBand));
+     csirep1->reportFreqConfiguration->csi_ReportingBand = NULL;
+     /*calloc(1,sizeof(*csirep1->reportFreqConfiguration->csi_ReportingBand));
      csirep1->reportFreqConfiguration->csi_ReportingBand->present = NR_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands7;
      csirep1->reportFreqConfiguration->csi_ReportingBand->choice.subbands7.size=1;
      csirep1->reportFreqConfiguration->csi_ReportingBand->choice.subbands7.bits_unused=1;
@@ -1596,7 +1694,7 @@ void fill_initial_SpCellConfig(int uid,
    csirep2->reportConfigType.present = NR_CSI_ReportConfig__reportConfigType_PR_periodic;
    csirep2->reportConfigType.choice.periodic = calloc(1,sizeof(*csirep2->reportConfigType.choice.periodic));
    csirep2->reportConfigType.choice.periodic->reportSlotConfig.present=NR_CSI_ReportPeriodicityAndOffset_PR_slots320;
-   csirep2->reportConfigType.choice.periodic->reportSlotConfig.choice.slots320 = (27 + (20 * uid)) % 320;
+   csirep2->reportConfigType.choice.periodic->reportSlotConfig.choice.slots320 = (27 + (30 * uid)) % 320;
    ASN_SEQUENCE_ADD(&csirep2->reportConfigType.choice.periodic->pucch_CSI_ResourceList.list,pucchcsires1);
    csirep2->reportQuantity.present = NR_CSI_ReportConfig__reportQuantity_PR_cri_RSRP;
    csirep2->reportQuantity.choice.cri_RSRP=(NULL_t)0;
@@ -1618,6 +1716,7 @@ void fill_initial_SpCellConfig(int uid,
    csirep2->ext1 = NULL;
    ASN_SEQUENCE_ADD(&csi_MeasConfig->csi_ReportConfigToAddModList->list,csirep2);
  }
+
   pdsch_servingcellconfig->codeBlockGroupTransmission = NULL;
   pdsch_servingcellconfig->xOverhead = NULL;
   pdsch_servingcellconfig->nrofHARQ_ProcessesForPDSCH = calloc(1, sizeof(*pdsch_servingcellconfig->nrofHARQ_ProcessesForPDSCH));
@@ -1627,27 +1726,63 @@ void fill_initial_SpCellConfig(int uid,
   pdsch_servingcellconfig->ext1->maxMIMO_Layers = calloc(1,sizeof(*pdsch_servingcellconfig->ext1->maxMIMO_Layers));
   *pdsch_servingcellconfig->ext1->maxMIMO_Layers = 2;
 
-}
+  // Downlink BWPs
+  int n_dl_bwp = 0;
+  if (servingcellconfigdedicated &&
+      servingcellconfigdedicated->downlinkBWP_ToAddModList &&
+      servingcellconfigdedicated->downlinkBWP_ToAddModList->list.count > 0) {
+    n_dl_bwp = servingcellconfigdedicated->downlinkBWP_ToAddModList->list.count;
+  }
+  if(n_dl_bwp>0){
+    SpCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList = calloc(1,sizeof(*SpCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList));
+    for (int bwp_loop = 0; bwp_loop < n_dl_bwp; bwp_loop++) {
+      NR_BWP_Downlink_t *bwp = calloc(1, sizeof(*bwp));
+      fill_default_downlinkBWP(bwp, bwp_loop, servingcellconfigdedicated, scc, configuration);
+      ASN_SEQUENCE_ADD(&SpCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list,bwp);
+    }
+    SpCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id = calloc(1,sizeof(*SpCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id));
+    *SpCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id = servingcellconfigdedicated->firstActiveDownlinkBWP_Id ? *servingcellconfigdedicated->firstActiveDownlinkBWP_Id : 1;
+    SpCellConfig->spCellConfigDedicated->defaultDownlinkBWP_Id = calloc(1,sizeof(*SpCellConfig->spCellConfigDedicated->defaultDownlinkBWP_Id));
+    *SpCellConfig->spCellConfigDedicated->defaultDownlinkBWP_Id = servingcellconfigdedicated->defaultDownlinkBWP_Id ? *servingcellconfigdedicated->defaultDownlinkBWP_Id : 1;
+  }
 
-void fill_mastercellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, NR_CellGroupConfig_t *ue_context_mastercellGroup,int use_rlc_um_for_drb) {
+  // Uplink BWPs
+  int n_ul_bwp = 0;
+  if (servingcellconfigdedicated && servingcellconfigdedicated->uplinkConfig &&
+      servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList &&
+      servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList->list.count > 0) {
+    n_ul_bwp = servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList->list.count;
+  }
+  if(n_ul_bwp>0) {
+    SpCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList = calloc(1,sizeof(*SpCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList));
+    for (int bwp_loop = 0; bwp_loop < n_ul_bwp; bwp_loop++) {
+      NR_BWP_Uplink_t *ubwp = calloc(1, sizeof(*ubwp));
+      fill_default_uplinkBWP(ubwp, bwp_loop, servingcellconfigdedicated, scc, configuration, uid);
+      ASN_SEQUENCE_ADD(&SpCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList->list, ubwp);
+    }
+    SpCellConfig->spCellConfigDedicated->uplinkConfig->firstActiveUplinkBWP_Id = calloc(1,sizeof(*SpCellConfig->spCellConfigDedicated->uplinkConfig->firstActiveUplinkBWP_Id));
+    *SpCellConfig->spCellConfigDedicated->uplinkConfig->firstActiveUplinkBWP_Id = servingcellconfigdedicated->uplinkConfig->firstActiveUplinkBWP_Id ? *servingcellconfigdedicated->uplinkConfig->firstActiveUplinkBWP_Id : 1;
+  }
 
-  cellGroupConfig->cellGroupId = 0;
-  cellGroupConfig->rlc_BearerToReleaseList = NULL;
-  cellGroupConfig->rlc_BearerToAddModList = calloc(1, sizeof(*cellGroupConfig->rlc_BearerToAddModList));
+  if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) {
+    xer_fprint(stdout, &asn_DEF_NR_SpCellConfig, (void *)SpCellConfig);
+  }
 
-  // RLC Bearer Config
-  // TS38.331 9.2.1 Default SRB configurations
-  NR_RLC_BearerConfig_t *rlc_BearerConfig                          = NULL;
-  NR_RLC_Config_t *rlc_Config                                      = NULL;
-  NR_LogicalChannelConfig_t *logicalChannelConfig                  = NULL;
-  long *logicalChannelGroup                                        = NULL;
+}
+
+NR_RLC_BearerConfig_t *get_SRB_RLC_BearerConfig(long channelId,
+                                                long priority,
+                                                e_NR_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration bucketSizeDuration)
+{
+  NR_RLC_BearerConfig_t *rlc_BearerConfig = NULL;
   rlc_BearerConfig                                                 = calloc(1, sizeof(NR_RLC_BearerConfig_t));
-  rlc_BearerConfig->logicalChannelIdentity                         = 2;
+  rlc_BearerConfig->logicalChannelIdentity                         = channelId;
   rlc_BearerConfig->servedRadioBearer                              = calloc(1, sizeof(*rlc_BearerConfig->servedRadioBearer));
   rlc_BearerConfig->servedRadioBearer->present                     = NR_RLC_BearerConfig__servedRadioBearer_PR_srb_Identity;
-  rlc_BearerConfig->servedRadioBearer->choice.srb_Identity         = 2;
+  rlc_BearerConfig->servedRadioBearer->choice.srb_Identity         = channelId;
   rlc_BearerConfig->reestablishRLC                                 = NULL;
-  rlc_Config                                                       = calloc(1, sizeof(NR_RLC_Config_t));
+
+  NR_RLC_Config_t *rlc_Config                                      = calloc(1, sizeof(NR_RLC_Config_t));
   rlc_Config->present                                              = NR_RLC_Config_PR_am;
   rlc_Config->choice.am                                            = calloc(1, sizeof(*rlc_Config->choice.am));
   rlc_Config->choice.am->dl_AM_RLC.sn_FieldLength                  = calloc(1, sizeof(NR_SN_FieldLengthAM_t));
@@ -1661,12 +1796,14 @@ void fill_mastercellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, NR_CellGr
   rlc_Config->choice.am->ul_AM_RLC.pollByte                        = NR_PollByte_infinity;
   rlc_Config->choice.am->ul_AM_RLC.maxRetxThreshold                = NR_UL_AM_RLC__maxRetxThreshold_t8;
   rlc_BearerConfig->rlc_Config                                     = rlc_Config;
-  logicalChannelConfig                                             = calloc(1, sizeof(NR_LogicalChannelConfig_t));
+
+  NR_LogicalChannelConfig_t *logicalChannelConfig                  = calloc(1, sizeof(NR_LogicalChannelConfig_t));
   logicalChannelConfig->ul_SpecificParameters                      = calloc(1, sizeof(*logicalChannelConfig->ul_SpecificParameters));
-  logicalChannelConfig->ul_SpecificParameters->priority            = 3;
+  logicalChannelConfig->ul_SpecificParameters->priority            = priority;
   logicalChannelConfig->ul_SpecificParameters->prioritisedBitRate  = NR_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity;
-  logicalChannelConfig->ul_SpecificParameters->bucketSizeDuration  = NR_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms5;
-  logicalChannelGroup                                              = CALLOC(1, sizeof(long));
+  logicalChannelConfig->ul_SpecificParameters->bucketSizeDuration  = bucketSizeDuration;
+
+  long *logicalChannelGroup                                        = CALLOC(1, sizeof(long));
   *logicalChannelGroup                                             = 0;
   logicalChannelConfig->ul_SpecificParameters->logicalChannelGroup = logicalChannelGroup;
   logicalChannelConfig->ul_SpecificParameters->schedulingRequestID = CALLOC(1, sizeof(*logicalChannelConfig->ul_SpecificParameters->schedulingRequestID));
@@ -1674,153 +1811,156 @@ void fill_mastercellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, NR_CellGr
   logicalChannelConfig->ul_SpecificParameters->logicalChannelSR_Mask = 0;
   logicalChannelConfig->ul_SpecificParameters->logicalChannelSR_DelayTimerApplied = 0;
   rlc_BearerConfig->mac_LogicalChannelConfig                       = logicalChannelConfig;
-  ASN_SEQUENCE_ADD(&cellGroupConfig->rlc_BearerToAddModList->list, rlc_BearerConfig);
-  ASN_SEQUENCE_ADD(&ue_context_mastercellGroup->rlc_BearerToAddModList->list, rlc_BearerConfig);
 
-  // DRB Configuration
-  NR_RLC_BearerConfig_t *rlc_BearerConfig_drb                      = NULL;
-  NR_RLC_Config_t *rlc_Config_drb                                  = NULL;
-  NR_LogicalChannelConfig_t *logicalChannelConfig_drb              = NULL;
-  long *logicalChannelGroup_drb                                    = NULL;
-  rlc_BearerConfig_drb                                             = calloc(1, sizeof(NR_RLC_BearerConfig_t));
-  rlc_BearerConfig_drb->logicalChannelIdentity                     = 4;
-  rlc_BearerConfig_drb->servedRadioBearer                          = calloc(1, sizeof(*rlc_BearerConfig_drb->servedRadioBearer));
-  rlc_BearerConfig_drb->servedRadioBearer->present                 = NR_RLC_BearerConfig__servedRadioBearer_PR_drb_Identity;
-  rlc_BearerConfig_drb->servedRadioBearer->choice.drb_Identity     = 1;
-  rlc_BearerConfig_drb->reestablishRLC                             = NULL;
-  rlc_Config_drb                                                   = calloc(1, sizeof(NR_RLC_Config_t));
-
-  if (use_rlc_um_for_drb) nr_drb_config(rlc_Config_drb, NR_RLC_Config_PR_um_Bi_Directional);
-  else                    nr_drb_config(rlc_Config_drb, NR_RLC_Config_PR_am);
+  return rlc_BearerConfig;
+}
 
-  
-  rlc_BearerConfig_drb->rlc_Config                                 = rlc_Config_drb;
-  logicalChannelConfig_drb                                             = calloc(1, sizeof(NR_LogicalChannelConfig_t));
-  logicalChannelConfig_drb->ul_SpecificParameters                      = calloc(1, sizeof(*logicalChannelConfig_drb->ul_SpecificParameters));
-  logicalChannelConfig_drb->ul_SpecificParameters->priority            = 13;
-  logicalChannelConfig_drb->ul_SpecificParameters->prioritisedBitRate  = NR_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8;
-  logicalChannelConfig_drb->ul_SpecificParameters->bucketSizeDuration  = NR_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms100;
-  logicalChannelGroup_drb                                              = CALLOC(1, sizeof(long));
-  *logicalChannelGroup_drb                                             = 1;
-  logicalChannelConfig_drb->ul_SpecificParameters->logicalChannelGroup = logicalChannelGroup_drb;
-  logicalChannelConfig_drb->ul_SpecificParameters->schedulingRequestID = CALLOC(1, sizeof(*logicalChannelConfig_drb->ul_SpecificParameters->schedulingRequestID));
-  *logicalChannelConfig_drb->ul_SpecificParameters->schedulingRequestID = 0;
-  logicalChannelConfig_drb->ul_SpecificParameters->logicalChannelSR_Mask = 0;
-  logicalChannelConfig_drb->ul_SpecificParameters->logicalChannelSR_DelayTimerApplied = 0;
-  rlc_BearerConfig_drb->mac_LogicalChannelConfig                       = logicalChannelConfig_drb;
-  ASN_SEQUENCE_ADD(&cellGroupConfig->rlc_BearerToAddModList->list, rlc_BearerConfig_drb);
-  ASN_SEQUENCE_ADD(&ue_context_mastercellGroup->rlc_BearerToAddModList->list, rlc_BearerConfig_drb);
+NR_RLC_BearerConfig_t *get_DRB_RLC_BearerConfig(long lcChannelId, long drbId, NR_RLC_Config_PR rlc_conf, long priority)
+{
+  NR_RLC_BearerConfig_t *rlc_BearerConfig                  = calloc(1, sizeof(NR_RLC_BearerConfig_t));
+  rlc_BearerConfig->logicalChannelIdentity                 = lcChannelId;
+  rlc_BearerConfig->servedRadioBearer                      = calloc(1, sizeof(*rlc_BearerConfig->servedRadioBearer));
+  rlc_BearerConfig->servedRadioBearer->present             = NR_RLC_BearerConfig__servedRadioBearer_PR_drb_Identity;
+  rlc_BearerConfig->servedRadioBearer->choice.drb_Identity = drbId;
+  rlc_BearerConfig->reestablishRLC                         = NULL;
+
+  NR_RLC_Config_t *rlc_Config  = calloc(1, sizeof(NR_RLC_Config_t));
+  nr_drb_config(rlc_Config, rlc_conf);
+  rlc_BearerConfig->rlc_Config = rlc_Config;
+
+  NR_LogicalChannelConfig_t *logicalChannelConfig                 = calloc(1, sizeof(NR_LogicalChannelConfig_t));
+  logicalChannelConfig->ul_SpecificParameters                     = calloc(1, sizeof(*logicalChannelConfig->ul_SpecificParameters));
+  logicalChannelConfig->ul_SpecificParameters->priority           = priority;
+  logicalChannelConfig->ul_SpecificParameters->prioritisedBitRate = NR_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8;
+  logicalChannelConfig->ul_SpecificParameters->bucketSizeDuration = NR_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms100;
+
+  long *logicalChannelGroup                                          = CALLOC(1, sizeof(long));
+  *logicalChannelGroup                                               = 1;
+  logicalChannelConfig->ul_SpecificParameters->logicalChannelGroup   = logicalChannelGroup;
+  logicalChannelConfig->ul_SpecificParameters->schedulingRequestID   = CALLOC(1, sizeof(*logicalChannelConfig->ul_SpecificParameters->schedulingRequestID));
+  *logicalChannelConfig->ul_SpecificParameters->schedulingRequestID  = 0;
+  logicalChannelConfig->ul_SpecificParameters->logicalChannelSR_Mask = 0;
+  logicalChannelConfig->ul_SpecificParameters->logicalChannelSR_DelayTimerApplied = 0;
+  rlc_BearerConfig->mac_LogicalChannelConfig                         = logicalChannelConfig;
+
+  return rlc_BearerConfig;
 }
 
+void fill_mastercellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, NR_CellGroupConfig_t *ue_context_mastercellGroup, int use_rlc_um_for_drb, uint8_t configure_srb, uint8_t bearer_id_start, uint8_t nb_bearers_to_setup, long *priority) {
+
+  cellGroupConfig->cellGroupId = 0;
+  cellGroupConfig->rlc_BearerToReleaseList = NULL;
+  cellGroupConfig->rlc_BearerToAddModList = calloc(1, sizeof(*cellGroupConfig->rlc_BearerToAddModList));
+
+  // RLC Bearer Config
+  // TS38.331 9.2.1 Default SRB configurations
+  if (configure_srb){
+    NR_RLC_BearerConfig_t *rlc_BearerConfig = get_SRB_RLC_BearerConfig(2, 3, NR_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms5);
+    ASN_SEQUENCE_ADD(&cellGroupConfig->rlc_BearerToAddModList->list, rlc_BearerConfig);
+    ASN_SEQUENCE_ADD(&ue_context_mastercellGroup->rlc_BearerToAddModList->list, rlc_BearerConfig);
+  }
+
+  // DRB Configuration
+  for (int i = bearer_id_start; i < bearer_id_start + nb_bearers_to_setup; i++ ){
+    const NR_RLC_Config_PR rlc_conf = use_rlc_um_for_drb ? NR_RLC_Config_PR_um_Bi_Directional : NR_RLC_Config_PR_am;
+    NR_RLC_BearerConfig_t *rlc_BearerConfig = get_DRB_RLC_BearerConfig(3 + i, i, rlc_conf, priority[i-bearer_id_start]);
+    ASN_SEQUENCE_ADD(&cellGroupConfig->rlc_BearerToAddModList->list, rlc_BearerConfig);
+    ASN_SEQUENCE_ADD(&ue_context_mastercellGroup->rlc_BearerToAddModList->list, rlc_BearerConfig);
+  }
+}
 
 void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig,
+                            const int uid,
                             NR_UE_NR_Capability_t *uecap,
                             const gNB_RrcConfigurationReq* configuration) {
 
   NR_SpCellConfig_t *SpCellConfig = cellGroupConfig->spCellConfig;
+
   if (SpCellConfig == NULL) return;
 
-  NR_ServingCellConfigCommon_t *scc = configuration->scc;
+  NR_ServingCellConfigCommon_t *scc = configuration ? configuration->scc : NULL;
 
-  NR_BWP_DownlinkDedicated_t *bwp_Dedicated = SpCellConfig->spCellConfigDedicated->initialDownlinkBWP;
-  set_dl_mcs_table(scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.subcarrierSpacing,
-                   configuration->force_256qam_off ? NULL : uecap, SpCellConfig,bwp_Dedicated, scc);
-
-  struct NR_ServingCellConfig__downlinkBWP_ToAddModList *DL_BWP_list = SpCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList;
-  if (DL_BWP_list) {
-    for (int i=0; i<DL_BWP_list->list.count; i++){
-      NR_BWP_Downlink_t *bwp = DL_BWP_list->list.array[i];
-      int scs = bwp->bwp_Common->genericParameters.subcarrierSpacing;
-      set_dl_mcs_table(scs, configuration->force_256qam_off ? NULL : uecap, SpCellConfig, bwp->bwp_Dedicated, scc);
+  if(scc) {
+
+    // SRS configuration
+    if (configuration->do_SRS &&
+        SpCellConfig &&
+        SpCellConfig->spCellConfigDedicated &&
+        SpCellConfig->spCellConfigDedicated->uplinkConfig &&
+        SpCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP) {
+      if (!SpCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP->srs_Config) {
+        SpCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP->srs_Config =
+            calloc(1,sizeof(*SpCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP->srs_Config));
+      }
+      config_srs(SpCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP->srs_Config,
+                 scc,
+                 uid,
+                 configuration->do_SRS);
     }
+
+    // Set DL MCS table
+    NR_BWP_DownlinkDedicated_t *bwp_Dedicated = SpCellConfig->spCellConfigDedicated->initialDownlinkBWP;
+    set_dl_mcs_table(scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.subcarrierSpacing,
+                     configuration->force_256qam_off ? NULL : uecap, SpCellConfig, bwp_Dedicated, scc);
+    struct NR_ServingCellConfig__downlinkBWP_ToAddModList *DL_BWP_list = SpCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList;
+    if (DL_BWP_list) {
+      for (int i=0; i<DL_BWP_list->list.count; i++){
+        NR_BWP_Downlink_t *bwp = DL_BWP_list->list.array[i];
+        int scs = bwp->bwp_Common->genericParameters.subcarrierSpacing;
+        set_dl_mcs_table(scs, configuration->force_256qam_off ? NULL : uecap, SpCellConfig, bwp->bwp_Dedicated, scc);
+      }
+    }
+
   }
 }
 
-
 void fill_initial_cellGroupConfig(int uid,
                                   NR_CellGroupConfig_t *cellGroupConfig,
                                   NR_ServingCellConfigCommon_t *scc,
+                                  NR_ServingCellConfig_t *servingcellconfigdedicated,
                                   const gNB_RrcConfigurationReq *configuration)
 {
-  NR_RLC_BearerConfig_t                            *rlc_BearerConfig     = NULL;
-  NR_RLC_Config_t                                  *rlc_Config           = NULL;
-  NR_LogicalChannelConfig_t                        *logicalChannelConfig = NULL;
   NR_MAC_CellGroupConfig_t                         *mac_CellGroupConfig  = NULL;
   NR_PhysicalCellGroupConfig_t	                   *physicalCellGroupConfig = NULL;
-  long *logicalChannelGroup = NULL;
   
   cellGroupConfig->cellGroupId = 0;
   
   /* Rlc Bearer Config */
   /* TS38.331 9.2.1	Default SRB configurations */
   cellGroupConfig->rlc_BearerToAddModList                          = calloc(1, sizeof(*cellGroupConfig->rlc_BearerToAddModList));
-  rlc_BearerConfig                                                 = calloc(1, sizeof(NR_RLC_BearerConfig_t));
-  rlc_BearerConfig->logicalChannelIdentity                         = 1;
-  rlc_BearerConfig->servedRadioBearer                              = calloc(1, sizeof(*rlc_BearerConfig->servedRadioBearer));
-  rlc_BearerConfig->servedRadioBearer->present                     = NR_RLC_BearerConfig__servedRadioBearer_PR_srb_Identity;
-  rlc_BearerConfig->servedRadioBearer->choice.srb_Identity         = 1;
-  rlc_BearerConfig->reestablishRLC                                 = NULL;
-  rlc_Config = calloc(1, sizeof(NR_RLC_Config_t));
-  rlc_Config->present                                              = NR_RLC_Config_PR_am;
-  rlc_Config->choice.am                                            = calloc(1, sizeof(*rlc_Config->choice.am));
-  rlc_Config->choice.am->dl_AM_RLC.sn_FieldLength                  = calloc(1, sizeof(NR_SN_FieldLengthAM_t));
-  *(rlc_Config->choice.am->dl_AM_RLC.sn_FieldLength)               = NR_SN_FieldLengthAM_size12;
-  rlc_Config->choice.am->dl_AM_RLC.t_Reassembly                    = NR_T_Reassembly_ms35;
-  rlc_Config->choice.am->dl_AM_RLC.t_StatusProhibit                = NR_T_StatusProhibit_ms0;
-  rlc_Config->choice.am->ul_AM_RLC.sn_FieldLength                  = calloc(1, sizeof(NR_SN_FieldLengthAM_t));
-  *(rlc_Config->choice.am->ul_AM_RLC.sn_FieldLength)               = NR_SN_FieldLengthAM_size12;
-  rlc_Config->choice.am->ul_AM_RLC.t_PollRetransmit                = NR_T_PollRetransmit_ms45;
-  rlc_Config->choice.am->ul_AM_RLC.pollPDU                         = NR_PollPDU_infinity;
-  rlc_Config->choice.am->ul_AM_RLC.pollByte                        = NR_PollByte_infinity;
-  rlc_Config->choice.am->ul_AM_RLC.maxRetxThreshold                = NR_UL_AM_RLC__maxRetxThreshold_t8;
-  rlc_BearerConfig->rlc_Config                                     = rlc_Config;
-  logicalChannelConfig                                             = calloc(1, sizeof(NR_LogicalChannelConfig_t));
-  logicalChannelConfig->ul_SpecificParameters                      = calloc(1, sizeof(*logicalChannelConfig->ul_SpecificParameters));
-  logicalChannelConfig->ul_SpecificParameters->priority            = 1;
-  logicalChannelConfig->ul_SpecificParameters->prioritisedBitRate  = NR_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity;
-  logicalChannelGroup                                              = CALLOC(1, sizeof(long));
-  *logicalChannelGroup                                             = 0;
-  logicalChannelConfig->ul_SpecificParameters->logicalChannelGroup = logicalChannelGroup;
-  logicalChannelConfig->ul_SpecificParameters->schedulingRequestID = CALLOC(1, sizeof(*logicalChannelConfig->ul_SpecificParameters->schedulingRequestID));
-  *logicalChannelConfig->ul_SpecificParameters->schedulingRequestID = 0;
-  logicalChannelConfig->ul_SpecificParameters->logicalChannelSR_Mask = 0;
-  logicalChannelConfig->ul_SpecificParameters->logicalChannelSR_DelayTimerApplied = 0;
-  rlc_BearerConfig->mac_LogicalChannelConfig                       = logicalChannelConfig;
+  NR_RLC_BearerConfig_t *rlc_BearerConfig = get_SRB_RLC_BearerConfig(1, 1, NR_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms1000);
   ASN_SEQUENCE_ADD(&cellGroupConfig->rlc_BearerToAddModList->list, rlc_BearerConfig);
   
   cellGroupConfig->rlc_BearerToReleaseList = NULL;
   
   /* mac CellGroup Config */
-  if (1) {
-    mac_CellGroupConfig                                                     = calloc(1, sizeof(*mac_CellGroupConfig));
-    if (1) {
-      mac_CellGroupConfig->schedulingRequestConfig                            = calloc(1, sizeof(*mac_CellGroupConfig->schedulingRequestConfig));
-      mac_CellGroupConfig->schedulingRequestConfig->schedulingRequestToAddModList = CALLOC(1,sizeof(*mac_CellGroupConfig->schedulingRequestConfig->schedulingRequestToAddModList));
-      struct NR_SchedulingRequestToAddMod *schedulingrequestlist;
-      schedulingrequestlist = CALLOC(1,sizeof(*schedulingrequestlist));
-      schedulingrequestlist->schedulingRequestId  = 0;
-      schedulingrequestlist->sr_ProhibitTimer = CALLOC(1,sizeof(*schedulingrequestlist->sr_ProhibitTimer));
-      *(schedulingrequestlist->sr_ProhibitTimer) = 0;
-      schedulingrequestlist->sr_TransMax      = NR_SchedulingRequestToAddMod__sr_TransMax_n64;
-      ASN_SEQUENCE_ADD(&(mac_CellGroupConfig->schedulingRequestConfig->schedulingRequestToAddModList->list),schedulingrequestlist);
-    }
-    mac_CellGroupConfig->bsr_Config                                         = calloc(1, sizeof(*mac_CellGroupConfig->bsr_Config));
-    mac_CellGroupConfig->bsr_Config->periodicBSR_Timer                      = NR_BSR_Config__periodicBSR_Timer_sf10;
-    mac_CellGroupConfig->bsr_Config->retxBSR_Timer                          = NR_BSR_Config__retxBSR_Timer_sf80;
-    mac_CellGroupConfig->tag_Config                                         = calloc(1, sizeof(*mac_CellGroupConfig->tag_Config));
-    mac_CellGroupConfig->tag_Config->tag_ToReleaseList = NULL;
-    mac_CellGroupConfig->tag_Config->tag_ToAddModList  = calloc(1,sizeof(*mac_CellGroupConfig->tag_Config->tag_ToAddModList));
-    struct NR_TAG *tag=calloc(1,sizeof(*tag));
-    tag->tag_Id             = 0;
-    tag->timeAlignmentTimer = NR_TimeAlignmentTimer_infinity;
-    ASN_SEQUENCE_ADD(&mac_CellGroupConfig->tag_Config->tag_ToAddModList->list,tag);
-    mac_CellGroupConfig->phr_Config                                         = calloc(1, sizeof(*mac_CellGroupConfig->phr_Config));
-    mac_CellGroupConfig->phr_Config->present                                = NR_SetupRelease_PHR_Config_PR_setup;
-    mac_CellGroupConfig->phr_Config->choice.setup                           = calloc(1, sizeof(*mac_CellGroupConfig->phr_Config->choice.setup));
-    mac_CellGroupConfig->phr_Config->choice.setup->phr_PeriodicTimer        = NR_PHR_Config__phr_PeriodicTimer_sf10;
-    mac_CellGroupConfig->phr_Config->choice.setup->phr_ProhibitTimer        = NR_PHR_Config__phr_ProhibitTimer_sf10;
-    mac_CellGroupConfig->phr_Config->choice.setup->phr_Tx_PowerFactorChange = NR_PHR_Config__phr_Tx_PowerFactorChange_dB1;
-  }
+  mac_CellGroupConfig                                                     = calloc(1, sizeof(*mac_CellGroupConfig));
+
+  mac_CellGroupConfig->bsr_Config                                         = calloc(1, sizeof(*mac_CellGroupConfig->bsr_Config));
+  mac_CellGroupConfig->bsr_Config->periodicBSR_Timer                      = NR_BSR_Config__periodicBSR_Timer_sf10;
+  mac_CellGroupConfig->bsr_Config->retxBSR_Timer                          = NR_BSR_Config__retxBSR_Timer_sf80;
+  mac_CellGroupConfig->tag_Config                                         = calloc(1, sizeof(*mac_CellGroupConfig->tag_Config));
+  mac_CellGroupConfig->tag_Config->tag_ToReleaseList = NULL;
+  mac_CellGroupConfig->tag_Config->tag_ToAddModList  = calloc(1,sizeof(*mac_CellGroupConfig->tag_Config->tag_ToAddModList));
+  struct NR_TAG *tag=calloc(1,sizeof(*tag));
+  tag->tag_Id             = 0;
+  tag->timeAlignmentTimer = NR_TimeAlignmentTimer_infinity;
+  ASN_SEQUENCE_ADD(&mac_CellGroupConfig->tag_Config->tag_ToAddModList->list,tag);
+  mac_CellGroupConfig->phr_Config                                         = calloc(1, sizeof(*mac_CellGroupConfig->phr_Config));
+  mac_CellGroupConfig->phr_Config->present                                = NR_SetupRelease_PHR_Config_PR_setup;
+  mac_CellGroupConfig->phr_Config->choice.setup                           = calloc(1, sizeof(*mac_CellGroupConfig->phr_Config->choice.setup));
+  mac_CellGroupConfig->phr_Config->choice.setup->phr_PeriodicTimer        = NR_PHR_Config__phr_PeriodicTimer_sf10;
+  mac_CellGroupConfig->phr_Config->choice.setup->phr_ProhibitTimer        = NR_PHR_Config__phr_ProhibitTimer_sf10;
+  mac_CellGroupConfig->phr_Config->choice.setup->phr_Tx_PowerFactorChange = NR_PHR_Config__phr_Tx_PowerFactorChange_dB1;
+
+  mac_CellGroupConfig->schedulingRequestConfig = calloc(1, sizeof(*mac_CellGroupConfig->schedulingRequestConfig));
+  mac_CellGroupConfig->schedulingRequestConfig->schedulingRequestToAddModList = CALLOC(1,sizeof(*mac_CellGroupConfig->schedulingRequestConfig->schedulingRequestToAddModList));
+  struct NR_SchedulingRequestToAddMod *schedulingrequestlist = CALLOC(1,sizeof(*schedulingrequestlist));
+  schedulingrequestlist->schedulingRequestId  = 0;
+  schedulingrequestlist->sr_ProhibitTimer = NULL;
+  schedulingrequestlist->sr_TransMax      = NR_SchedulingRequestToAddMod__sr_TransMax_n64;
+  ASN_SEQUENCE_ADD(&(mac_CellGroupConfig->schedulingRequestConfig->schedulingRequestToAddModList->list),schedulingrequestlist);
+
   cellGroupConfig->mac_CellGroupConfig                                      = mac_CellGroupConfig;
 
   physicalCellGroupConfig                                                   = calloc(1,sizeof(*physicalCellGroupConfig));
@@ -1830,19 +1970,20 @@ void fill_initial_cellGroupConfig(int uid,
   cellGroupConfig->physicalCellGroupConfig                                  = physicalCellGroupConfig;
   
   cellGroupConfig->spCellConfig                                             = calloc(1,sizeof(*cellGroupConfig->spCellConfig));
-  
-  fill_initial_SpCellConfig(uid,cellGroupConfig->spCellConfig,scc,configuration);
+
+  fill_initial_SpCellConfig(uid,cellGroupConfig,scc,servingcellconfigdedicated,configuration);
   
   cellGroupConfig->sCellToAddModList                                        = NULL;
   cellGroupConfig->sCellToReleaseList                                       = NULL;
 }
 
 //------------------------------------------------------------------------------
-int     do_RRCSetup(rrc_gNB_ue_context_t         *const ue_context_pP,
-                    uint8_t                      *const buffer,
-                    const uint8_t                transaction_id,
-                    OCTET_STRING_t               *masterCellGroup_from_DU,
-                    NR_ServingCellConfigCommon_t *scc,
+int16_t do_RRCSetup(rrc_gNB_ue_context_t          *const ue_context_pP,
+                    uint8_t                       *const buffer,
+                    const uint8_t                 transaction_id,
+                    OCTET_STRING_t                *masterCellGroup_from_DU,
+                    NR_ServingCellConfigCommon_t  *scc,
+                    NR_ServingCellConfig_t        *servingcellconfigdedicated,
                     const gNB_RrcConfigurationReq *configuration)
 //------------------------------------------------------------------------------
 {
@@ -1904,13 +2045,11 @@ int     do_RRCSetup(rrc_gNB_ue_context_t         *const ue_context_pP,
 		  &asn_DEF_NR_CellGroupConfig,   //might be added prefix later
 		  (void **)&cellGroupConfig,
 		  (uint8_t *)masterCellGroup_from_DU->buf,
-		  masterCellGroup_from_DU->size, 0, 0); 
-      
-      xer_fprint(stdout, &asn_DEF_NR_CellGroupConfig, (const void*)cellGroupConfig);
+		  masterCellGroup_from_DU->size, 0, 0);
     }
     else {
       cellGroupConfig = calloc(1, sizeof(NR_CellGroupConfig_t));
-      fill_initial_cellGroupConfig(ue_context_pP->local_uid, cellGroupConfig, scc, configuration);
+      fill_initial_cellGroupConfig(ue_context_pP->local_uid,cellGroupConfig,scc,servingcellconfigdedicated,configuration);
 
       enc_rval = uper_encode_to_buffer(&asn_DEF_NR_CellGroupConfig,
 				       NULL,
@@ -1933,8 +2072,10 @@ int     do_RRCSetup(rrc_gNB_ue_context_t         *const ue_context_pP,
     ue_p->masterCellGroup = cellGroupConfig;
 
     if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) {
+      xer_fprint(stdout, &asn_DEF_NR_CellGroupConfig, (const void*)cellGroupConfig);
       xer_fprint(stdout, &asn_DEF_NR_DL_CCCH_Message, (void *)&dl_ccch_msg);
     }
+
     enc_rval = uper_encode_to_buffer(&asn_DEF_NR_DL_CCCH_Message,
 				     NULL,
 				     (void *)&dl_ccch_msg,
@@ -1947,7 +2088,7 @@ int     do_RRCSetup(rrc_gNB_ue_context_t         *const ue_context_pP,
       return -1;
     }
     
-    LOG_I(NR_RRC,"RRCSetup Encoded %zd bits (%zd bytes)\n",
+    LOG_D(NR_RRC,"RRCSetup Encoded %zd bits (%zd bytes)\n",
             enc_rval.encoded,(enc_rval.encoded+7)/8);
     return((enc_rval.encoded+7)/8);
 }
@@ -2211,7 +2352,8 @@ int16_t do_RRCReconfiguration(
 
     if(cellGroupConfig!=NULL){
       update_cellGroupConfig(cellGroupConfig,
-                             ue_context_pP->ue_context.UE_Capability_nr,
+                             ue_context_pP->local_uid,
+                             ue_context_pP ? ue_context_pP->ue_context.UE_Capability_nr : NULL,
                              configuration);
 
       enc_rval = uper_encode_to_buffer(&asn_DEF_NR_CellGroupConfig,
@@ -2224,7 +2366,9 @@ int16_t do_RRCReconfiguration(
             enc_rval.failed_type->name, enc_rval.encoded);
         return -1;
       }
-      xer_fprint(stdout, &asn_DEF_NR_CellGroupConfig, (const void*)cellGroupConfig);
+      if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) {
+        xer_fprint(stdout, &asn_DEF_NR_CellGroupConfig, (const void *) cellGroupConfig);
+      }
       ie->nonCriticalExtension->masterCellGroup = calloc(1,sizeof(OCTET_STRING_t));
 
       ie->nonCriticalExtension->masterCellGroup->buf = masterCellGroup_buf;
@@ -2233,9 +2377,9 @@ int16_t do_RRCReconfiguration(
 
     dl_dcch_msg.message.choice.c1->choice.rrcReconfiguration->criticalExtensions.choice.rrcReconfiguration = ie;
 
-    //if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) {
-        xer_fprint(stdout, &asn_DEF_NR_DL_DCCH_Message, (void *)&dl_dcch_msg);
-    //}
+    if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) {
+      xer_fprint(stdout, &asn_DEF_NR_DL_DCCH_Message, (void *)&dl_dcch_msg);
+    }
 
     enc_rval = uper_encode_to_buffer(&asn_DEF_NR_DL_DCCH_Message,
                                     NULL,
diff --git a/openair2/RRC/NR/MESSAGES/asn1_msg.h b/openair2/RRC/NR/MESSAGES/asn1_msg.h
index 81563eb7cdf..ea4b185f6b3 100644
--- a/openair2/RRC/NR/MESSAGES/asn1_msg.h
+++ b/openair2/RRC/NR/MESSAGES/asn1_msg.h
@@ -73,9 +73,7 @@ uint8_t do_MIB_NR(gNB_RRC_INST *rrc,
 @param carrier pointer to Carrier information
 @param configuration Pointer Configuration Request structure  
 @return size of encoded bit stream in bytes*/
-uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
-  gNB_RrcConfigurationReq *configuration
-                  );
+uint16_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier, gNB_RrcConfigurationReq *configuration);
 
 uint8_t do_SIB23_NR(rrc_gNB_carrier_data_t *carrier,
                     gNB_RrcConfigurationReq *configuration);
@@ -102,26 +100,36 @@ uint8_t do_RRCReject(uint8_t Mod_id,
                      uint8_t *const buffer);
 
 void fill_initial_SpCellConfig(int uid,
-                               NR_SpCellConfig_t *SpCellConfig,
+                               NR_CellGroupConfig_t *cellGroupConfig,
                                NR_ServingCellConfigCommon_t *scc,
+                               NR_ServingCellConfig_t *servingcellconfigdedicated,
                                const gNB_RrcConfigurationReq *configuration);
 
 void fill_initial_cellGroupConfig(int uid,
                                   NR_CellGroupConfig_t *cellGroupConfig,
                                   NR_ServingCellConfigCommon_t *scc,
+                                  NR_ServingCellConfig_t *servingcellconfigdedicated,
                                   const gNB_RrcConfigurationReq *configuration);
 
 void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig,
+                            const int uid,
                             NR_UE_NR_Capability_t *uecap,
                             const gNB_RrcConfigurationReq *configuration);
 
-void fill_mastercellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, NR_CellGroupConfig_t *ue_context_mastercellGroup,int use_rlc_um_for_drb);
+void fill_mastercellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig,
+                                NR_CellGroupConfig_t *ue_context_mastercellGroup,
+                                int use_rlc_um_for_drb,
+                                uint8_t configure_srb,
+                                uint8_t bearer_id_start,
+                                uint8_t nb_bearers_to_setup,
+                                long *priority);
 
-int     do_RRCSetup(rrc_gNB_ue_context_t         *const ue_context_pP,
+int16_t do_RRCSetup(rrc_gNB_ue_context_t         *const ue_context_pP,
                     uint8_t                      *const buffer,
                     const uint8_t                transaction_id,
                     OCTET_STRING_t               *masterCellGroup_from_DU,
                     NR_ServingCellConfigCommon_t *scc,
+                    NR_ServingCellConfig_t       *servingcellconfigdedicated,
                     const gNB_RrcConfigurationReq *configuration);
 
 uint8_t do_NR_SecurityModeCommand(
diff --git a/openair2/RRC/NR/nr_rrc_config.c b/openair2/RRC/NR/nr_rrc_config.c
index af5e32336f9..f67fb93c234 100644
--- a/openair2/RRC/NR/nr_rrc_config.c
+++ b/openair2/RRC/NR/nr_rrc_config.c
@@ -34,6 +34,63 @@
 const uint8_t slotsperframe[5] = {10, 20, 40, 80, 160};
 
 
+void rrc_coreset_config(NR_ControlResourceSet_t *coreset,
+                        int bwp_id,
+                        int curr_bwp,
+                        uint64_t ssb_bitmap) {
+
+
+  // frequency domain resources depending on BWP size
+  coreset->frequencyDomainResources.buf = calloc(1,6);
+  coreset->frequencyDomainResources.buf[0] = (curr_bwp < 48) ? 0xf0 : 0xff;
+  coreset->frequencyDomainResources.buf[1] = (curr_bwp < 96) ? 0x00 : 0xff;
+  coreset->frequencyDomainResources.buf[2] = (curr_bwp < 144) ? 0x00 : 0xff;
+  coreset->frequencyDomainResources.buf[3] = (curr_bwp < 192) ? 0x00 : 0xff;
+  coreset->frequencyDomainResources.buf[4] = (curr_bwp < 240) ? 0x00 : 0xff;
+  coreset->frequencyDomainResources.buf[5] = 0x00;
+  coreset->frequencyDomainResources.size = 6;
+  coreset->frequencyDomainResources.bits_unused = 3;
+  coreset->duration = (curr_bwp < 48) ? 2 : 1;
+  coreset->cce_REG_MappingType.present = NR_ControlResourceSet__cce_REG_MappingType_PR_nonInterleaved;
+  coreset->precoderGranularity = NR_ControlResourceSet__precoderGranularity_sameAsREG_bundle;
+
+  // The ID space is used across the BWPs of a Serving Cell as per 38.331
+  coreset->controlResourceSetId = bwp_id + 1;
+
+  coreset->tci_StatesPDCCH_ToAddList=calloc(1,sizeof(*coreset->tci_StatesPDCCH_ToAddList));
+  NR_TCI_StateId_t *tci[64];
+  for (int i=0;i<64;i++) {
+    if ((ssb_bitmap>>(63-i))&0x01){
+      tci[i]=calloc(1,sizeof(*tci[i]));
+      *tci[i] = i;
+      ASN_SEQUENCE_ADD(&coreset->tci_StatesPDCCH_ToAddList->list,tci[i]);
+    }
+  }
+  coreset->tci_StatesPDCCH_ToReleaseList = NULL;
+  coreset->tci_PresentInDCI = NULL;
+  coreset->pdcch_DMRS_ScramblingID = NULL;
+}
+
+uint64_t get_ssb_bitmap(NR_ServingCellConfigCommon_t *scc) {
+  uint64_t bitmap=0;
+  switch (scc->ssb_PositionsInBurst->present) {
+    case 1 :
+      bitmap = ((uint64_t) scc->ssb_PositionsInBurst->choice.shortBitmap.buf[0])<<56;
+      break;
+    case 2 :
+      bitmap = ((uint64_t) scc->ssb_PositionsInBurst->choice.mediumBitmap.buf[0])<<56;
+      break;
+    case 3 :
+      for (int i=0; i<8; i++) {
+        bitmap |= (((uint64_t) scc->ssb_PositionsInBurst->choice.longBitmap.buf[i])<<((7-i)*8));
+      }
+      break;
+    default:
+      AssertFatal(1==0,"SSB bitmap size value %d undefined (allowed values 1,2,3) \n", scc->ssb_PositionsInBurst->present);
+  }
+  return bitmap;
+}
+
 void set_csirs_periodicity(NR_NZP_CSI_RS_Resource_t *nzpcsi0, int uid, int nb_slots_per_period) {
 
   nzpcsi0->periodicityAndOffset = calloc(1,sizeof(*nzpcsi0->periodicityAndOffset));
@@ -81,7 +138,6 @@ void set_csirs_periodicity(NR_NZP_CSI_RS_Resource_t *nzpcsi0, int uid, int nb_sl
   }
 }
 
-
 void config_csirs(NR_ServingCellConfigCommon_t *servingcellconfigcommon,
                   NR_CSI_MeasConfig_t *csi_MeasConfig,
                   int uid,
@@ -159,7 +215,8 @@ void config_csirs(NR_ServingCellConfigCommon_t *servingcellconfigcommon,
     *nzpcsi0->powerControlOffsetSS = NR_NZP_CSI_RS_Resource__powerControlOffsetSS_db0;
     nzpcsi0->scramblingID = *servingcellconfigcommon->physCellId;
     set_csirs_periodicity(nzpcsi0, uid, nb_slots_per_period);
-    nzpcsi0->qcl_InfoPeriodicCSI_RS = NULL;
+    nzpcsi0->qcl_InfoPeriodicCSI_RS = calloc(1,sizeof(*nzpcsi0->qcl_InfoPeriodicCSI_RS));
+    *nzpcsi0->qcl_InfoPeriodicCSI_RS = 0;
     ASN_SEQUENCE_ADD(&csi_MeasConfig->nzp_CSI_RS_ResourceToAddModList->list,nzpcsi0);
   }
   else {
@@ -170,12 +227,234 @@ void config_csirs(NR_ServingCellConfigCommon_t *servingcellconfigcommon,
   csi_MeasConfig->nzp_CSI_RS_ResourceToReleaseList = NULL;
 }
 
+void set_csiim_offset(struct NR_CSI_ResourcePeriodicityAndOffset *periodicityAndOffset,
+                      struct NR_CSI_ResourcePeriodicityAndOffset *target_periodicityAndOffset) {
+
+  switch(periodicityAndOffset->present) {
+    case NR_CSI_ResourcePeriodicityAndOffset_PR_slots4:
+      periodicityAndOffset->choice.slots4 = target_periodicityAndOffset->choice.slots4;
+      break;
+    case NR_CSI_ResourcePeriodicityAndOffset_PR_slots5:
+      periodicityAndOffset->choice.slots5 = target_periodicityAndOffset->choice.slots5;
+      break;
+    case NR_CSI_ResourcePeriodicityAndOffset_PR_slots8:
+      periodicityAndOffset->choice.slots8 = target_periodicityAndOffset->choice.slots8;
+      break;
+    case NR_CSI_ResourcePeriodicityAndOffset_PR_slots10:
+      periodicityAndOffset->choice.slots10 = target_periodicityAndOffset->choice.slots10;
+      break;
+    case NR_CSI_ResourcePeriodicityAndOffset_PR_slots16:
+      periodicityAndOffset->choice.slots16 = target_periodicityAndOffset->choice.slots16;
+      break;
+    case NR_CSI_ResourcePeriodicityAndOffset_PR_slots20:
+      periodicityAndOffset->choice.slots20 = target_periodicityAndOffset->choice.slots20;
+      break;
+    case NR_CSI_ResourcePeriodicityAndOffset_PR_slots32:
+      periodicityAndOffset->choice.slots32 = target_periodicityAndOffset->choice.slots32;
+      break;
+    case NR_CSI_ResourcePeriodicityAndOffset_PR_slots40:
+      periodicityAndOffset->choice.slots40 = target_periodicityAndOffset->choice.slots40;
+      break;
+    case NR_CSI_ResourcePeriodicityAndOffset_PR_slots64:
+      periodicityAndOffset->choice.slots64 = target_periodicityAndOffset->choice.slots64;
+      break;
+    case NR_CSI_ResourcePeriodicityAndOffset_PR_slots80:
+      periodicityAndOffset->choice.slots80 = target_periodicityAndOffset->choice.slots80;
+      break;
+    case NR_CSI_ResourcePeriodicityAndOffset_PR_slots160:
+      periodicityAndOffset->choice.slots160 = target_periodicityAndOffset->choice.slots160;
+      break;
+    case NR_CSI_ResourcePeriodicityAndOffset_PR_slots320:
+      periodicityAndOffset->choice.slots320 = target_periodicityAndOffset->choice.slots320;
+      break;
+    case NR_CSI_ResourcePeriodicityAndOffset_PR_slots640:
+      periodicityAndOffset->choice.slots640 = target_periodicityAndOffset->choice.slots640;
+      break;
+    default:
+      AssertFatal(1==0,"CSI periodicity not among allowed values\n");
+  }
+
+}
+
+void config_csiim(int do_csirs, int dl_antenna_ports, int curr_bwp,
+                  NR_CSI_MeasConfig_t *csi_MeasConfig) {
+
+ if (do_csirs && dl_antenna_ports > 1) {
+   csi_MeasConfig->csi_IM_ResourceToAddModList = calloc(1,sizeof(*csi_MeasConfig->csi_IM_ResourceToAddModList));
+   NR_CSI_IM_Resource_t *imres = calloc(1,sizeof(*imres));
+   imres->csi_IM_ResourceId = 0;
+   NR_NZP_CSI_RS_Resource_t *nzpcsi = NULL;
+   for (int i=0; i<csi_MeasConfig->nzp_CSI_RS_ResourceToAddModList->list.count; i++){
+     nzpcsi = csi_MeasConfig->nzp_CSI_RS_ResourceToAddModList->list.array[i];
+     if (nzpcsi->nzp_CSI_RS_ResourceId == imres->csi_IM_ResourceId)
+       break;
+   }
+   AssertFatal(nzpcsi->nzp_CSI_RS_ResourceId == imres->csi_IM_ResourceId, "Couldn't find NZP CSI-RS corresponding to CSI-IM\n");
+   imres->csi_IM_ResourceElementPattern = calloc(1,sizeof(*imres->csi_IM_ResourceElementPattern));
+   imres->csi_IM_ResourceElementPattern->present = NR_CSI_IM_Resource__csi_IM_ResourceElementPattern_PR_pattern1;
+   imres->csi_IM_ResourceElementPattern->choice.pattern1 = calloc(1,sizeof(*imres->csi_IM_ResourceElementPattern->choice.pattern1));
+   // starting subcarrier is 4 in the following configuration
+   // this is ok for current possible CSI-RS configurations (using only the first 4 symbols)
+   // TODO needs a more dynamic setting if CSI-RS is changed
+   imres->csi_IM_ResourceElementPattern->choice.pattern1->subcarrierLocation_p1 = NR_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern1__subcarrierLocation_p1_s4;
+   imres->csi_IM_ResourceElementPattern->choice.pattern1->symbolLocation_p1 = nzpcsi->resourceMapping.firstOFDMSymbolInTimeDomain; // same symbol as CSI-RS
+   imres->freqBand = calloc(1,sizeof(*imres->freqBand));
+   imres->freqBand->startingRB = 0;
+   imres->freqBand->nrofRBs = ((curr_bwp>>2)+(curr_bwp%4>0))<<2;
+   imres->periodicityAndOffset = calloc(1,sizeof(*imres->periodicityAndOffset));
+   // same period and offset of the associated CSI-RS
+   imres->periodicityAndOffset->present = nzpcsi->periodicityAndOffset->present;
+   set_csiim_offset(imres->periodicityAndOffset, nzpcsi->periodicityAndOffset);
+   ASN_SEQUENCE_ADD(&csi_MeasConfig->csi_IM_ResourceToAddModList->list,imres);
+   csi_MeasConfig->csi_IM_ResourceSetToAddModList = calloc(1,sizeof(*csi_MeasConfig->csi_IM_ResourceSetToAddModList));
+   NR_CSI_IM_ResourceSet_t *imset = calloc(1,sizeof(*imset));
+   imset->csi_IM_ResourceSetId = 0;
+   NR_CSI_IM_ResourceId_t *res = calloc(1,sizeof(*res));
+   *res = imres->csi_IM_ResourceId;
+   ASN_SEQUENCE_ADD(&imset->csi_IM_Resources,res);
+   ASN_SEQUENCE_ADD(&csi_MeasConfig->csi_IM_ResourceSetToAddModList->list,imset);
+ }
+ else {
+   csi_MeasConfig->csi_IM_ResourceToAddModList = NULL;
+   csi_MeasConfig->csi_IM_ResourceSetToAddModList = NULL;
+ }
+
+ csi_MeasConfig->csi_IM_ResourceToReleaseList = NULL;
+ csi_MeasConfig->csi_IM_ResourceSetToReleaseList = NULL;
+}
+
+// TODO: Implement to b_SRS = 1 and b_SRS = 2
+long rrc_get_max_nr_csrs(const uint8_t max_rbs, const long b_SRS) {
+
+  if(b_SRS>0) {
+    LOG_E(NR_RRC,"rrc_get_max_nr_csrs(): Not implemented yet for b_SRS>0\n");
+    return 0; // This c_srs is always valid
+  }
+
+  const uint16_t m_SRS[64] = { 4, 8, 12, 16, 16, 20, 24, 24, 28, 32, 36, 40, 48, 48, 52, 56, 60, 64, 72, 72, 76, 80, 88,
+                               96, 96, 104, 112, 120, 120, 120, 128, 128, 128, 132, 136, 144, 144, 144, 144, 152, 160,
+                               160, 160, 168, 176, 184, 192, 192, 192, 192, 208, 216, 224, 240, 240, 240, 240, 256, 256,
+                               256, 264, 272, 272, 272 };
+
+  long c_srs = 0;
+  uint16_t m = 4;
+  for(int c = 1; c<64; c++) {
+    if(m_SRS[c]>m && m_SRS[c]<max_rbs) {
+      c_srs = c;
+      m = m_SRS[c];
+    }
+  }
+
+  return c_srs;
+}
+
+void config_srs(NR_SetupRelease_SRS_Config_t *setup_release_srs_Config,
+                const NR_ServingCellConfigCommon_t *servingcellconfigcommon,
+                const int uid,
+                const int do_srs) {
+
+  setup_release_srs_Config->present = NR_SetupRelease_SRS_Config_PR_setup;
+
+  NR_SRS_Config_t *srs_Config;
+  if (setup_release_srs_Config->choice.setup) {
+    srs_Config = setup_release_srs_Config->choice.setup;
+    if (srs_Config->srs_ResourceSetToReleaseList) {
+      free(srs_Config->srs_ResourceSetToReleaseList);
+    }
+    if (srs_Config->srs_ResourceSetToAddModList) {
+      free(srs_Config->srs_ResourceSetToAddModList);
+    }
+    if (srs_Config->srs_ResourceToReleaseList) {
+      free(srs_Config->srs_ResourceToReleaseList);
+    }
+    if (srs_Config->srs_ResourceToAddModList) {
+      free(srs_Config->srs_ResourceToAddModList);
+    }
+    free(srs_Config);
+  }
+
+  setup_release_srs_Config->choice.setup = calloc(1,sizeof(*setup_release_srs_Config->choice.setup));
+  srs_Config = setup_release_srs_Config->choice.setup;
+
+  srs_Config->srs_ResourceSetToReleaseList = NULL;
+
+  srs_Config->srs_ResourceSetToAddModList = calloc(1,sizeof(*srs_Config->srs_ResourceSetToAddModList));
+  NR_SRS_ResourceSet_t *srs_resset0 = calloc(1,sizeof(*srs_resset0));
+  srs_resset0->srs_ResourceSetId = 0;
+  srs_resset0->srs_ResourceIdList = calloc(1,sizeof(*srs_resset0->srs_ResourceIdList));
+  NR_SRS_ResourceId_t *srs_resset0_id = calloc(1,sizeof(*srs_resset0_id));
+  *srs_resset0_id = 0;
+  ASN_SEQUENCE_ADD(&srs_resset0->srs_ResourceIdList->list, srs_resset0_id);
+  srs_Config->srs_ResourceToReleaseList=NULL;
+  if (do_srs) {
+    srs_resset0->resourceType.present =  NR_SRS_ResourceSet__resourceType_PR_periodic;
+    srs_resset0->resourceType.choice.periodic = calloc(1,sizeof(*srs_resset0->resourceType.choice.periodic));
+    srs_resset0->resourceType.choice.periodic->associatedCSI_RS = NULL;
+  } else {
+    srs_resset0->resourceType.present =  NR_SRS_ResourceSet__resourceType_PR_aperiodic;
+    srs_resset0->resourceType.choice.aperiodic = calloc(1,sizeof(*srs_resset0->resourceType.choice.aperiodic));
+    srs_resset0->resourceType.choice.aperiodic->aperiodicSRS_ResourceTrigger=1;
+    srs_resset0->resourceType.choice.aperiodic->csi_RS=NULL;
+    srs_resset0->resourceType.choice.aperiodic->slotOffset = calloc(1,sizeof(*srs_resset0->resourceType.choice.aperiodic->slotOffset));
+    *srs_resset0->resourceType.choice.aperiodic->slotOffset = 2;
+    srs_resset0->resourceType.choice.aperiodic->ext1 = NULL;
+  }
+  srs_resset0->usage=NR_SRS_ResourceSet__usage_codebook;
+  srs_resset0->alpha = calloc(1,sizeof(*srs_resset0->alpha));
+  *srs_resset0->alpha = NR_Alpha_alpha1;
+  srs_resset0->p0 = calloc(1,sizeof(*srs_resset0->p0));
+  *srs_resset0->p0 =-80;
+  srs_resset0->pathlossReferenceRS = NULL;
+  srs_resset0->srs_PowerControlAdjustmentStates = NULL;
+  ASN_SEQUENCE_ADD(&srs_Config->srs_ResourceSetToAddModList->list,srs_resset0);
+
+  srs_Config->srs_ResourceToReleaseList = NULL;
+
+  srs_Config->srs_ResourceToAddModList = calloc(1,sizeof(*srs_Config->srs_ResourceToAddModList));
+  NR_SRS_Resource_t *srs_res0=calloc(1,sizeof(*srs_res0));
+  srs_res0->srs_ResourceId = 0;
+  srs_res0->nrofSRS_Ports = NR_SRS_Resource__nrofSRS_Ports_port1;
+  srs_res0->ptrs_PortIndex = NULL;
+  srs_res0->transmissionComb.present = NR_SRS_Resource__transmissionComb_PR_n2;
+  srs_res0->transmissionComb.choice.n2 = calloc(1,sizeof(*srs_res0->transmissionComb.choice.n2));
+  srs_res0->transmissionComb.choice.n2->combOffset_n2 = 0;
+  srs_res0->transmissionComb.choice.n2->cyclicShift_n2 = 0;
+  srs_res0->resourceMapping.startPosition = 2 + uid%2;
+  srs_res0->resourceMapping.nrofSymbols = NR_SRS_Resource__resourceMapping__nrofSymbols_n1;
+  srs_res0->resourceMapping.repetitionFactor = NR_SRS_Resource__resourceMapping__repetitionFactor_n1;
+  srs_res0->freqDomainPosition = 0;
+  srs_res0->freqDomainShift = 0;
+  srs_res0->freqHopping.b_SRS = 0;
+  srs_res0->freqHopping.b_hop = 0;
+  srs_res0->freqHopping.c_SRS = servingcellconfigcommon ?
+                                rrc_get_max_nr_csrs(
+                                    NRRIV2BW(servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->genericParameters.locationAndBandwidth, 275),
+                                    srs_res0->freqHopping.b_SRS) : 0;
+  srs_res0->groupOrSequenceHopping = NR_SRS_Resource__groupOrSequenceHopping_neither;
+  if (do_srs) {
+    srs_res0->resourceType.present = NR_SRS_Resource__resourceType_PR_periodic;
+    srs_res0->resourceType.choice.periodic = calloc(1,sizeof(*srs_res0->resourceType.choice.periodic));
+    srs_res0->resourceType.choice.periodic->periodicityAndOffset_p.present = NR_SRS_PeriodicityAndOffset_PR_sl160;
+    srs_res0->resourceType.choice.periodic->periodicityAndOffset_p.choice.sl160 = 17 + (uid>1)*10; // 17/17/.../147/157 are mixed slots
+  } else {
+    srs_res0->resourceType.present = NR_SRS_Resource__resourceType_PR_aperiodic;
+    srs_res0->resourceType.choice.aperiodic = calloc(1,sizeof(*srs_res0->resourceType.choice.aperiodic));
+  }
+  srs_res0->sequenceId = 40;
+  srs_res0->spatialRelationInfo = calloc(1,sizeof(*srs_res0->spatialRelationInfo));
+  srs_res0->spatialRelationInfo->servingCellId = NULL;
+  srs_res0->spatialRelationInfo->referenceSignal.present = NR_SRS_SpatialRelationInfo__referenceSignal_PR_csi_RS_Index;
+  srs_res0->spatialRelationInfo->referenceSignal.choice.csi_RS_Index = 0;
+  ASN_SEQUENCE_ADD(&srs_Config->srs_ResourceToAddModList->list,srs_res0);
+}
+
 void prepare_sim_uecap(NR_UE_NR_Capability_t *cap,
                        NR_ServingCellConfigCommon_t *scc,
                        int numerology,
                        int rbsize,
                        int mcs_table) {
 
+  NR_Phy_Parameters_t *phy_Parameters = &cap->phy_Parameters;
   int band = *scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0];
   NR_BandNR_t *nr_bandnr = CALLOC(1,sizeof(NR_BandNR_t));
   nr_bandnr->bandNR = band;
@@ -189,8 +468,8 @@ void prepare_sim_uecap(NR_UE_NR_Capability_t *cap,
       *bandNRinfo->pdsch_256QAM_FR2 = NR_BandNR__pdsch_256QAM_FR2_supported;
     }
     else{
-      cap->phy_Parameters.phy_ParametersFR1 = CALLOC(1,sizeof(*cap->phy_Parameters.phy_ParametersFR1));
-      NR_Phy_ParametersFR1_t *phy_fr1 = cap->phy_Parameters.phy_ParametersFR1;
+      phy_Parameters->phy_ParametersFR1 = CALLOC(1,sizeof(*phy_Parameters->phy_ParametersFR1));
+      NR_Phy_ParametersFR1_t *phy_fr1 = phy_Parameters->phy_ParametersFR1;
       phy_fr1->pdsch_256QAM_FR1 = CALLOC(1,sizeof(*phy_fr1->pdsch_256QAM_FR1));
       *phy_fr1->pdsch_256QAM_FR1 = NR_Phy_ParametersFR1__pdsch_256QAM_FR1_supported;
     }
@@ -209,35 +488,45 @@ void prepare_sim_uecap(NR_UE_NR_Capability_t *cap,
     }
     fs_cc->supportedModulationOrderDL = CALLOC(1,sizeof(*fs_cc->supportedModulationOrderDL));
     *fs_cc->supportedModulationOrderDL = NR_ModulationOrder_qam256;
-    ASN_SEQUENCE_ADD(&fs->featureSetsDownlinkPerCC->list,
-                     fs_cc);
+    ASN_SEQUENCE_ADD(&fs->featureSetsDownlinkPerCC->list, fs_cc);
   }
+
+  phy_Parameters->phy_ParametersFRX_Diff = CALLOC(1,sizeof(*phy_Parameters->phy_ParametersFRX_Diff));
+  phy_Parameters->phy_ParametersFRX_Diff->pucch_F0_2WithoutFH = NULL;
 }
 
-void nr_rrc_config_dl_tda(NR_ServingCellConfigCommon_t *scc){
+void nr_rrc_config_dl_tda(NR_ServingCellConfigCommon_t *scc,
+                          NR_PDSCH_TimeDomainResourceAllocationList_t	*pdsch_TimeDomainAllocationList,
+                          int curr_bwp) {
 
   frame_type_t frame_type = get_frame_type(*scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0], *scc->ssbSubcarrierSpacing);
-  int curr_bwp = scc->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList.list.array[0]->carrierBandwidth;
+
   // coreset duration setting to be improved in the framework of RRC harmonization, potentially using a common function
   int len_coreset = 1;
   if (curr_bwp < 48)
     len_coreset = 2;
-  // setting default TDA for DL with
+  // setting default TDA for DL with TDA index 0
   struct NR_PDSCH_TimeDomainResourceAllocation *timedomainresourceallocation = CALLOC(1,sizeof(NR_PDSCH_TimeDomainResourceAllocation_t));
+  // k0: Slot offset between DCI and its scheduled PDSCH (see TS 38.214 clause 5.1.2.1) When the field is absent the UE applies the value 0.
+  //timedomainresourceallocation->k0 = calloc(1,sizeof(*timedomainresourceallocation->k0));
+  //*timedomainresourceallocation->k0 = 0;
   timedomainresourceallocation->mappingType = NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeA;
   timedomainresourceallocation->startSymbolAndLength = get_SLIV(len_coreset,14-len_coreset); // basic slot configuration starting in symbol 1 til the end of the slot
-  ASN_SEQUENCE_ADD(&scc->downlinkConfigCommon->initialDownlinkBWP->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList->list,
-                   timedomainresourceallocation);
+  ASN_SEQUENCE_ADD(&pdsch_TimeDomainAllocationList->list, timedomainresourceallocation);
+  // setting TDA for CSI-RS symbol with index 1
+  struct NR_PDSCH_TimeDomainResourceAllocation *timedomainresourceallocation1 = CALLOC(1,sizeof(NR_PDSCH_TimeDomainResourceAllocation_t));
+  timedomainresourceallocation1->mappingType = NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeA;
+  timedomainresourceallocation1->startSymbolAndLength = get_SLIV(len_coreset,14-len_coreset-1); // 1 symbol CSI-RS
+  ASN_SEQUENCE_ADD(&pdsch_TimeDomainAllocationList->list, timedomainresourceallocation1);
   if(frame_type==TDD) {
-    // TDD
     if(scc->tdd_UL_DL_ConfigurationCommon) {
       int dl_symb = scc->tdd_UL_DL_ConfigurationCommon->pattern1.nrofDownlinkSymbols;
       if(dl_symb > 1) {
-        timedomainresourceallocation = CALLOC(1,sizeof(NR_PDSCH_TimeDomainResourceAllocation_t));
-        timedomainresourceallocation->mappingType = NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeA;
-        timedomainresourceallocation->startSymbolAndLength = get_SLIV(len_coreset,dl_symb-len_coreset); // mixed slot configuration starting in symbol 1 til the end of the dl allocation
-        ASN_SEQUENCE_ADD(&scc->downlinkConfigCommon->initialDownlinkBWP->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList->list,
-                         timedomainresourceallocation);
+        // mixed slot TDA with TDA index 2
+        struct NR_PDSCH_TimeDomainResourceAllocation *timedomainresourceallocation2 = CALLOC(1,sizeof(NR_PDSCH_TimeDomainResourceAllocation_t));
+        timedomainresourceallocation2->mappingType = NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeA;
+        timedomainresourceallocation2->startSymbolAndLength = get_SLIV(len_coreset,dl_symb-len_coreset); // mixed slot configuration starting in symbol 1 til the end of the dl allocation
+        ASN_SEQUENCE_ADD(&pdsch_TimeDomainAllocationList->list, timedomainresourceallocation2);
       }
     }
   }
@@ -249,64 +538,250 @@ void nr_rrc_config_ul_tda(NR_ServingCellConfigCommon_t *scc, int min_fb_delay){
   //TODO change to accomodate for SRS
 
   frame_type_t frame_type = get_frame_type(*scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0], *scc->ssbSubcarrierSpacing);
-  int temp_min_delay = 6; // k2 = 2 or 3 won'r work as well as higher values
-  if(frame_type==TDD && scc->tdd_UL_DL_ConfigurationCommon) {
-
-    switch (scc->tdd_UL_DL_ConfigurationCommon->pattern1.dl_UL_TransmissionPeriodicity) {
-      case NR_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms2p5:  // 30kHz SCS
-      case NR_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms2:    // 60kHz SCS
-      case NR_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms1p25: // 60kHz SCS
-      case NR_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms1:    // 120kHz SCS
-      case NR_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms0p625:    // 120kHz SCS
-      case NR_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms0p5:    // 120kHz SCS
-        temp_min_delay = 2; 
-        break;
-    }
-  }
-
-  int k2 = (min_fb_delay<temp_min_delay)?temp_min_delay:min_fb_delay;
+  const int k2 = min_fb_delay;
 
   uint8_t DELTA[4]= {2,3,4,6}; // Delta parameter for Msg3
   int mu = scc->uplinkConfigCommon->initialUplinkBWP->genericParameters.subcarrierSpacing;
 
+  // UL TDA index 0 is basic slot configuration starting in symbol 0 til the last but one symbol
   struct NR_PUSCH_TimeDomainResourceAllocation *pusch_timedomainresourceallocation = CALLOC(1,sizeof(struct NR_PUSCH_TimeDomainResourceAllocation));
   pusch_timedomainresourceallocation->k2  = CALLOC(1,sizeof(long));
   *pusch_timedomainresourceallocation->k2 = k2;
   pusch_timedomainresourceallocation->mappingType = NR_PUSCH_TimeDomainResourceAllocation__mappingType_typeB;
-  pusch_timedomainresourceallocation->startSymbolAndLength = get_SLIV(0,13); // basic slot configuration starting in symbol 0 til the last but one symbol
+  pusch_timedomainresourceallocation->startSymbolAndLength = get_SLIV(0,13);
   ASN_SEQUENCE_ADD(&scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list,pusch_timedomainresourceallocation); 
 
   if(frame_type==TDD) {
-      
-    // TDD
     if(scc->tdd_UL_DL_ConfigurationCommon) {
       int ul_symb = scc->tdd_UL_DL_ConfigurationCommon->pattern1.nrofUplinkSymbols;
-      pusch_timedomainresourceallocation = CALLOC(1,sizeof(struct NR_PUSCH_TimeDomainResourceAllocation));
-      pusch_timedomainresourceallocation->k2  = CALLOC(1,sizeof(long));
-      *pusch_timedomainresourceallocation->k2 = k2;
-      pusch_timedomainresourceallocation->mappingType = NR_PUSCH_TimeDomainResourceAllocation__mappingType_typeB;
-      pusch_timedomainresourceallocation->startSymbolAndLength = get_SLIV(14-ul_symb,ul_symb-1); // starting in fist ul symbol til the last but one
-      ASN_SEQUENCE_ADD(&scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list,pusch_timedomainresourceallocation);
-
-      // for msg3 in the mixed slot
-      int nb_periods_per_frame = get_nb_periods_per_frame(scc->tdd_UL_DL_ConfigurationCommon->pattern1.dl_UL_TransmissionPeriodicity);
-      int nb_slots_per_period = ((1<<mu) * 10)/nb_periods_per_frame;
-      struct NR_PUSCH_TimeDomainResourceAllocation *pusch_timedomainresourceallocation_msg3 = CALLOC(1,sizeof(struct NR_PUSCH_TimeDomainResourceAllocation));
-      pusch_timedomainresourceallocation_msg3->k2  = CALLOC(1,sizeof(long));
-      *pusch_timedomainresourceallocation_msg3->k2 = nb_slots_per_period - DELTA[mu];
-      if(*pusch_timedomainresourceallocation_msg3->k2 < min_fb_delay)
-        *pusch_timedomainresourceallocation_msg3->k2 += nb_slots_per_period;
-      AssertFatal(*pusch_timedomainresourceallocation_msg3->k2<33,"Computed k2 for msg3 %ld is larger than the range allowed by RRC (0..32)\n",
-                  *pusch_timedomainresourceallocation_msg3->k2);
-      pusch_timedomainresourceallocation_msg3->mappingType = NR_PUSCH_TimeDomainResourceAllocation__mappingType_typeB;
-      pusch_timedomainresourceallocation_msg3->startSymbolAndLength = get_SLIV(14-ul_symb,ul_symb-1); // starting in fist ul symbol til the last but one
-      ASN_SEQUENCE_ADD(&scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list,pusch_timedomainresourceallocation_msg3);
+      if (ul_symb>1) {
+        // UL TDA index 1 for mixed slot (TDD)
+        pusch_timedomainresourceallocation = CALLOC(1,sizeof(struct NR_PUSCH_TimeDomainResourceAllocation));
+        pusch_timedomainresourceallocation->k2  = CALLOC(1,sizeof(long));
+        *pusch_timedomainresourceallocation->k2 = k2;
+        pusch_timedomainresourceallocation->mappingType = NR_PUSCH_TimeDomainResourceAllocation__mappingType_typeB;
+        pusch_timedomainresourceallocation->startSymbolAndLength = get_SLIV(14-ul_symb,ul_symb-1); // starting in fist ul symbol til the last but one
+        ASN_SEQUENCE_ADD(&scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list,pusch_timedomainresourceallocation);
+
+        // UL TDA index 2 for msg3 in the mixed slot (TDD)
+        int nb_periods_per_frame = get_nb_periods_per_frame(scc->tdd_UL_DL_ConfigurationCommon->pattern1.dl_UL_TransmissionPeriodicity);
+        int nb_slots_per_period = ((1<<mu) * 10)/nb_periods_per_frame;
+        struct NR_PUSCH_TimeDomainResourceAllocation *pusch_timedomainresourceallocation_msg3 = CALLOC(1,sizeof(struct NR_PUSCH_TimeDomainResourceAllocation));
+        pusch_timedomainresourceallocation_msg3->k2  = CALLOC(1,sizeof(long));
+        *pusch_timedomainresourceallocation_msg3->k2 = nb_slots_per_period - DELTA[mu];
+        if(*pusch_timedomainresourceallocation_msg3->k2 < min_fb_delay)
+          *pusch_timedomainresourceallocation_msg3->k2 += nb_slots_per_period;
+        AssertFatal(*pusch_timedomainresourceallocation_msg3->k2<33,"Computed k2 for msg3 %ld is larger than the range allowed by RRC (0..32)\n",
+                    *pusch_timedomainresourceallocation_msg3->k2);
+        pusch_timedomainresourceallocation_msg3->mappingType = NR_PUSCH_TimeDomainResourceAllocation__mappingType_typeB;
+        pusch_timedomainresourceallocation_msg3->startSymbolAndLength = get_SLIV(14-ul_symb,ul_symb-1); // starting in fist ul symbol til the last but one
+        ASN_SEQUENCE_ADD(&scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list,pusch_timedomainresourceallocation_msg3);
+      }
     }
   }
 }
 
+void set_dl_DataToUL_ACK(NR_PUCCH_Config_t *pucch_Config, int min_feedback_time) {
+
+  pucch_Config->dl_DataToUL_ACK = calloc(1,sizeof(*pucch_Config->dl_DataToUL_ACK));
+  long *delay[8];
+  for (int i=0;i<8;i++) {
+    delay[i] = calloc(1,sizeof(*delay[i]));
+    *delay[i] = i+min_feedback_time;
+    ASN_SEQUENCE_ADD(&pucch_Config->dl_DataToUL_ACK->list,delay[i]);
+  }
+}
+
+// PUCCH resource set 0 for configuration with O_uci <= 2 bits and/or a positive or negative SR (section 9.2.1 of 38.213)
+void config_pucch_resset0(NR_PUCCH_Config_t *pucch_Config, int uid, int curr_bwp, NR_UE_NR_Capability_t *uecap) {
+
+  NR_PUCCH_ResourceSet_t *pucchresset = calloc(1,sizeof(*pucchresset));
+  pucchresset->pucch_ResourceSetId = 0;
+  NR_PUCCH_ResourceId_t *pucchid=calloc(1,sizeof(*pucchid));
+  *pucchid=0;
+  ASN_SEQUENCE_ADD(&pucchresset->resourceList.list,pucchid);
+  pucchresset->maxPayloadSize=NULL;
+
+  if(uecap) {
+    long *pucch_F0_2WithoutFH = uecap->phy_Parameters.phy_ParametersFRX_Diff->pucch_F0_2WithoutFH;
+    AssertFatal(pucch_F0_2WithoutFH == NULL,"UE does not support PUCCH F0 without frequency hopping. Current configuration is without FH\n");
+  }
+
+  NR_PUCCH_Resource_t *pucchres0=calloc(1,sizeof(*pucchres0));
+  pucchres0->pucch_ResourceId=*pucchid;
+  pucchres0->startingPRB= (8 + uid) % curr_bwp;
+  pucchres0->intraSlotFrequencyHopping=NULL;
+  pucchres0->secondHopPRB=NULL;
+  pucchres0->format.present= NR_PUCCH_Resource__format_PR_format0;
+  pucchres0->format.choice.format0=calloc(1,sizeof(*pucchres0->format.choice.format0));
+  pucchres0->format.choice.format0->initialCyclicShift=0;
+  pucchres0->format.choice.format0->nrofSymbols=1;
+  pucchres0->format.choice.format0->startingSymbolIndex=13;
+  ASN_SEQUENCE_ADD(&pucch_Config->resourceToAddModList->list,pucchres0);
+
+  ASN_SEQUENCE_ADD(&pucch_Config->resourceSetToAddModList->list,pucchresset);
+}
+
+
+// PUCCH resource set 1 for configuration with O_uci > 2 bits (currently format2)
+void config_pucch_resset1(NR_PUCCH_Config_t *pucch_Config, NR_UE_NR_Capability_t *uecap) {
+
+  NR_PUCCH_ResourceSet_t *pucchresset=calloc(1,sizeof(*pucchresset));
+  pucchresset->pucch_ResourceSetId = 1;
+  NR_PUCCH_ResourceId_t *pucchressetid=calloc(1,sizeof(*pucchressetid));
+  *pucchressetid=2;
+  ASN_SEQUENCE_ADD(&pucchresset->resourceList.list,pucchressetid);
+  pucchresset->maxPayloadSize=NULL;
+
+  if(uecap) {
+    long *pucch_F0_2WithoutFH = uecap->phy_Parameters.phy_ParametersFRX_Diff->pucch_F0_2WithoutFH;
+    AssertFatal(pucch_F0_2WithoutFH == NULL,"UE does not support PUCCH F2 without frequency hopping. Current configuration is without FH\n");
+  }
+
+  NR_PUCCH_Resource_t *pucchres2=calloc(1,sizeof(*pucchres2));
+  pucchres2->pucch_ResourceId=*pucchressetid;
+  pucchres2->startingPRB=0;
+  pucchres2->intraSlotFrequencyHopping=NULL;
+  pucchres2->secondHopPRB=NULL;
+  pucchres2->format.present= NR_PUCCH_Resource__format_PR_format2;
+  pucchres2->format.choice.format2=calloc(1,sizeof(*pucchres2->format.choice.format2));
+  pucchres2->format.choice.format2->nrofPRBs=8;
+  pucchres2->format.choice.format2->nrofSymbols=1;
+  pucchres2->format.choice.format2->startingSymbolIndex=13;
+  ASN_SEQUENCE_ADD(&pucch_Config->resourceToAddModList->list,pucchres2);
+
+  ASN_SEQUENCE_ADD(&pucch_Config->resourceSetToAddModList->list,pucchresset);
+
+  pucch_Config->format2=calloc(1,sizeof(*pucch_Config->format2));
+  pucch_Config->format2->present=NR_SetupRelease_PUCCH_FormatConfig_PR_setup;
+  NR_PUCCH_FormatConfig_t *pucchfmt2 = calloc(1,sizeof(*pucchfmt2));
+  pucch_Config->format2->choice.setup = pucchfmt2;
+  pucchfmt2->interslotFrequencyHopping=NULL;
+  pucchfmt2->additionalDMRS=NULL;
+  pucchfmt2->maxCodeRate=calloc(1,sizeof(*pucchfmt2->maxCodeRate));
+  *pucchfmt2->maxCodeRate=NR_PUCCH_MaxCodeRate_zeroDot35;
+  pucchfmt2->nrofSlots=NULL;
+  pucchfmt2->pi2BPSK=NULL;
+
+  // to check UE capabilities for that in principle
+  pucchfmt2->simultaneousHARQ_ACK_CSI=calloc(1,sizeof(*pucchfmt2->simultaneousHARQ_ACK_CSI));
+  *pucchfmt2->simultaneousHARQ_ACK_CSI=NR_PUCCH_FormatConfig__simultaneousHARQ_ACK_CSI_true;
+
+}
+
+void set_pucch_power_config(NR_PUCCH_Config_t *pucch_Config, int do_csirs) {
+
+  pucch_Config->pucch_PowerControl = calloc(1,sizeof(*pucch_Config->pucch_PowerControl));
+  NR_P0_PUCCH_t *p00 = calloc(1,sizeof(*p00));
+  p00->p0_PUCCH_Id = 1;
+  p00->p0_PUCCH_Value = 0;
+  pucch_Config->pucch_PowerControl->p0_Set = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->p0_Set));
+  ASN_SEQUENCE_ADD(&pucch_Config->pucch_PowerControl->p0_Set->list,p00);
+
+  pucch_Config->pucch_PowerControl->pathlossReferenceRSs = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->pathlossReferenceRSs));
+  struct NR_PUCCH_PathlossReferenceRS *PL_ref_RS = calloc(1,sizeof(*PL_ref_RS));
+  PL_ref_RS->pucch_PathlossReferenceRS_Id = 0;
+  if(do_csirs) {
+    PL_ref_RS->referenceSignal.present = NR_PUCCH_PathlossReferenceRS__referenceSignal_PR_csi_RS_Index;
+    PL_ref_RS->referenceSignal.choice.csi_RS_Index = 0;
+  }
+  else {
+    PL_ref_RS->referenceSignal.present = NR_PUCCH_PathlossReferenceRS__referenceSignal_PR_ssb_Index;
+    PL_ref_RS->referenceSignal.choice.ssb_Index = 0;
+  }
+  ASN_SEQUENCE_ADD(&pucch_Config->pucch_PowerControl->pathlossReferenceRSs->list,PL_ref_RS);
+
+  pucch_Config->pucch_PowerControl->deltaF_PUCCH_f0 = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->deltaF_PUCCH_f0));
+  *pucch_Config->pucch_PowerControl->deltaF_PUCCH_f0 = 0;
+  pucch_Config->pucch_PowerControl->deltaF_PUCCH_f2 = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->deltaF_PUCCH_f2));
+  *pucch_Config->pucch_PowerControl->deltaF_PUCCH_f2 = 0;
+
+  pucch_Config->spatialRelationInfoToAddModList = calloc(1,sizeof(*pucch_Config->spatialRelationInfoToAddModList));
+  pucch_Config->spatialRelationInfoToReleaseList=NULL;
+  NR_PUCCH_SpatialRelationInfo_t *pucchspatial = calloc(1,sizeof(*pucchspatial));
+  pucchspatial->pucch_SpatialRelationInfoId = 1;
+  pucchspatial->servingCellId = NULL;
+  if(do_csirs) {
+    pucchspatial->referenceSignal.present = NR_PUCCH_SpatialRelationInfo__referenceSignal_PR_csi_RS_Index;
+    pucchspatial->referenceSignal.choice.csi_RS_Index = 0;
+  }
+  else {
+    pucchspatial->referenceSignal.present = NR_PUCCH_SpatialRelationInfo__referenceSignal_PR_ssb_Index;
+    pucchspatial->referenceSignal.choice.ssb_Index = 0;
+  }
 
-void set_dl_mcs_table(int scs, NR_UE_NR_Capability_t *cap,
+  pucchspatial->pucch_PathlossReferenceRS_Id = PL_ref_RS->pucch_PathlossReferenceRS_Id;
+  pucchspatial->p0_PUCCH_Id = p00->p0_PUCCH_Id;
+  pucchspatial->closedLoopIndex = NR_PUCCH_SpatialRelationInfo__closedLoopIndex_i0;
+  ASN_SEQUENCE_ADD(&pucch_Config->spatialRelationInfoToAddModList->list,pucchspatial);
+}
+
+void set_SR_periodandoffset(NR_SchedulingRequestResourceConfig_t *schedulingRequestResourceConfig,
+                            NR_ServingCellConfigCommon_t *scc) {
+
+  const NR_TDD_UL_DL_Pattern_t *tdd = scc->tdd_UL_DL_ConfigurationCommon ? &scc->tdd_UL_DL_ConfigurationCommon->pattern1 : NULL;
+  int sr_slot = 1; // in FDD SR in slot 1
+  if(tdd)
+    sr_slot = tdd->nrofDownlinkSlots; // SR in the first uplink slot
+
+  schedulingRequestResourceConfig->periodicityAndOffset = calloc(1,sizeof(*schedulingRequestResourceConfig->periodicityAndOffset));
+
+  if(sr_slot<10){
+    schedulingRequestResourceConfig->periodicityAndOffset->present = NR_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl10;
+    schedulingRequestResourceConfig->periodicityAndOffset->choice.sl10 = sr_slot;
+    return;
+  }
+  if(sr_slot<20){
+    schedulingRequestResourceConfig->periodicityAndOffset->present = NR_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl20;
+    schedulingRequestResourceConfig->periodicityAndOffset->choice.sl20 = sr_slot;
+    return;
+  }
+  if(sr_slot<40){
+    schedulingRequestResourceConfig->periodicityAndOffset->present = NR_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl40;
+    schedulingRequestResourceConfig->periodicityAndOffset->choice.sl40 = sr_slot;
+    return;
+  }
+  if(sr_slot<80){
+    schedulingRequestResourceConfig->periodicityAndOffset->present = NR_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl80;
+    schedulingRequestResourceConfig->periodicityAndOffset->choice.sl80 = sr_slot;
+    return;
+  }
+  if(sr_slot<160){
+    schedulingRequestResourceConfig->periodicityAndOffset->present = NR_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl160;
+    schedulingRequestResourceConfig->periodicityAndOffset->choice.sl160 = sr_slot;
+    return;
+  }
+  if(sr_slot<320){
+    schedulingRequestResourceConfig->periodicityAndOffset->present = NR_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl320;
+    schedulingRequestResourceConfig->periodicityAndOffset->choice.sl320 = sr_slot;
+    return;
+  }
+  schedulingRequestResourceConfig->periodicityAndOffset->present = NR_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl640;
+  schedulingRequestResourceConfig->periodicityAndOffset->choice.sl640 = sr_slot;
+}
+
+void scheduling_request_config(NR_ServingCellConfigCommon_t *scc,
+                               NR_PUCCH_Config_t *pucch_Config) {
+
+  // format with <=2 bits in pucch resource set 0
+  NR_PUCCH_ResourceSet_t *pucchresset = pucch_Config->resourceSetToAddModList->list.array[0];
+  // assigning the 1st pucch resource in the set to scheduling request
+  NR_PUCCH_ResourceId_t *pucchressetid = pucchresset->resourceList.list.array[0];
+
+  pucch_Config->schedulingRequestResourceToAddModList = calloc(1,sizeof(*pucch_Config->schedulingRequestResourceToAddModList));
+  NR_SchedulingRequestResourceConfig_t *schedulingRequestResourceConfig = calloc(1,sizeof(*schedulingRequestResourceConfig));
+  schedulingRequestResourceConfig->schedulingRequestResourceId = 1;
+  schedulingRequestResourceConfig->schedulingRequestID = 0;
+
+  set_SR_periodandoffset(schedulingRequestResourceConfig, scc);
+
+  schedulingRequestResourceConfig->resource = calloc(1,sizeof(*schedulingRequestResourceConfig->resource));
+  *schedulingRequestResourceConfig->resource = *pucchressetid;
+  ASN_SEQUENCE_ADD(&pucch_Config->schedulingRequestResourceToAddModList->list,schedulingRequestResourceConfig);
+}
+
+void set_dl_mcs_table(int scs,
+                      NR_UE_NR_Capability_t *cap,
                       NR_SpCellConfig_t *SpCellConfig,
                       NR_BWP_DownlinkDedicated_t *bwp_Dedicated,
                       NR_ServingCellConfigCommon_t *scc) {
@@ -327,7 +802,7 @@ void set_dl_mcs_table(int scs, NR_UE_NR_Capability_t *cap,
   }
   AssertFatal(bw_rb>0,"Could not find scs-SpecificCarrierList element for scs %d",scs);
   int bw = get_supported_band_index(scs, band, bw_rb);
-  AssertFatal(bw>0,"Supported band corresponding to %d RBs not found\n", bw_rb);
+  AssertFatal(bw>=0,"Supported band corresponding to %d RBs not found\n", bw_rb);
 
   bool supported = false;
   if (band>256) {
@@ -346,7 +821,7 @@ void set_dl_mcs_table(int scs, NR_UE_NR_Capability_t *cap,
     if(bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table == NULL)
       bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table = calloc(1, sizeof(*bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table));
     *bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table = NR_PDSCH_Config__mcs_Table_qam256;
-// set table 2 in correct entry in SpCellConfig->spCellConfigDedicated->csi_MeasConfig->csi_ReportConfigToAddModList->list 
+    // set table 2 in correct entry in SpCellConfig->spCellConfigDedicated->csi_MeasConfig->csi_ReportConfigToAddModList->list
     AssertFatal(SpCellConfig!=NULL,"SpCellConfig shouldn't be null\n");
     AssertFatal(SpCellConfig->spCellConfigDedicated!=NULL,"SpCellConfigDedicated shouldn't be null\n");
     if (SpCellConfig->spCellConfigDedicated->csi_MeasConfig &&
@@ -362,5 +837,3 @@ void set_dl_mcs_table(int scs, NR_UE_NR_Capability_t *cap,
     bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table = NULL;
 }
 
-
-
diff --git a/openair2/RRC/NR/nr_rrc_config.h b/openair2/RRC/NR/nr_rrc_config.h
index 63df31d1a79..b1367a0c8a9 100644
--- a/openair2/RRC/NR/nr_rrc_config.h
+++ b/openair2/RRC/NR/nr_rrc_config.h
@@ -111,15 +111,35 @@ typedef struct physicalcellgroup_s{
   long        RNTI_Value[MAX_NUM_CCs];
 }physicalcellgroup_t;
 
-void nr_rrc_config_dl_tda(NR_ServingCellConfigCommon_t *scc);
+uint64_t get_ssb_bitmap(NR_ServingCellConfigCommon_t *scc);
+void rrc_coreset_config(NR_ControlResourceSet_t *coreset,
+                        int bwp_id,
+                        int curr_bwp,
+                        uint64_t ssb_bitmap);
+void nr_rrc_config_dl_tda(NR_ServingCellConfigCommon_t *scc,
+                          NR_PDSCH_TimeDomainResourceAllocationList_t	*pdsch_TimeDomainAllocationList,
+                          int curr_bwp);
 void nr_rrc_config_ul_tda(NR_ServingCellConfigCommon_t *scc, int min_fb_delay);
+void config_pucch_resset0(NR_PUCCH_Config_t *pucch_Config, int uid, int curr_bwp, NR_UE_NR_Capability_t *uecap);
+void config_pucch_resset1(NR_PUCCH_Config_t *pucch_Config, NR_UE_NR_Capability_t *uecap);
+void set_dl_DataToUL_ACK(NR_PUCCH_Config_t *pucch_Config, int min_feedback_time);
+void set_pucch_power_config(NR_PUCCH_Config_t *pucch_Config, int do_csirs);
+void scheduling_request_config(NR_ServingCellConfigCommon_t *scc,
+                               NR_PUCCH_Config_t *pucch_Config);
 void config_csirs(NR_ServingCellConfigCommon_t *servingcellconfigcommon,
                   NR_CSI_MeasConfig_t *csi_MeasConfig,
                   int uid,
                   int num_dl_antenna_ports,
                   int curr_bwp,
                   int do_csirs);
-void set_dl_mcs_table(int scs, NR_UE_NR_Capability_t *cap,
+void config_csiim(int do_csirs, int dl_antenna_ports, int curr_bwp,
+                  NR_CSI_MeasConfig_t *csi_MeasConfig);
+void config_srs(NR_SetupRelease_SRS_Config_t *setup_release_srs_Config,
+                const NR_ServingCellConfigCommon_t *servingcellconfigcommon,
+                const int uid,
+                const int do_srs);
+void set_dl_mcs_table(int scs,
+                      NR_UE_NR_Capability_t *cap,
                       NR_SpCellConfig_t *SpCellConfig,
                       NR_BWP_DownlinkDedicated_t *bwp_Dedicated,
                       NR_ServingCellConfigCommon_t *scc);
@@ -129,5 +149,4 @@ void prepare_sim_uecap(NR_UE_NR_Capability_t *cap,
                        int rbsize,
                        int mcs_table);
 
-
 #endif
diff --git a/openair2/RRC/NR/nr_rrc_defs.h b/openair2/RRC/NR/nr_rrc_defs.h
index f59abb1bb48..b6a92db7a8d 100644
--- a/openair2/RRC/NR/nr_rrc_defs.h
+++ b/openair2/RRC/NR/nr_rrc_defs.h
@@ -132,7 +132,7 @@ typedef enum UE_STATE_NR_e {
 #define MAX_MEAS_ID                                   7
 
 #define PAYLOAD_SIZE_MAX                              1024
-#define RRC_BUF_SIZE                                  512
+#define RRC_BUF_SIZE                                  1024
 #define UNDEF_SECURITY_MODE                           0xff
 #define NO_SECURITY_MODE                              0x20
 
@@ -173,7 +173,7 @@ typedef struct UE_RRC_INFO_NR_s {
 } __attribute__ ((__packed__)) NR_UE_RRC_INFO;
 
 typedef struct UE_S_TMSI_NR_s {
-  boolean_t                                           presence;
+  bool                                                presence;
   uint16_t                                            amf_set_id;
   uint8_t                                             amf_pointer;
   uint32_t                                            fiveg_tmsi;
@@ -217,7 +217,7 @@ typedef struct HANDOVER_INFO_NR_s {
 typedef struct {
   char                                                Payload[NR_RRC_BUFFER_SIZE_MAX];
   char                                                Header[NR_RRC_HEADER_SIZE_MAX];
-  int                                                 payload_size;
+  uint16_t                                            payload_size;
 } NR_RRC_BUFFER;
 
 #define NR_RRC_BUFFER_SIZE                            sizeof(RRC_BUFFER_NR)
@@ -290,10 +290,10 @@ typedef struct gNB_RRC_UE_s {
   NR_DRB_ToReleaseList_t            *DRB_Release_configList2[RRC_TRANSACTION_IDENTIFIER_NUMBER];
   uint8_t                            DRB_active[8];
 
-  NR_SRB_INFO                           SI;
-  NR_SRB_INFO                           Srb0;
-  NR_SRB_INFO_TABLE_ENTRY               Srb1;
-  NR_SRB_INFO_TABLE_ENTRY               Srb2;
+  NR_SRB_INFO                       SI;
+  NR_SRB_INFO                       Srb0;
+  NR_SRB_INFO_TABLE_ENTRY           Srb1;
+  NR_SRB_INFO_TABLE_ENTRY           Srb2;
   NR_MeasConfig_t                   *measConfig;
   HANDOVER_INFO                     *handover_info;
   NR_MeasResults_t                  *measResults;
@@ -435,7 +435,7 @@ typedef struct {
   uint8_t                                   sizeof_MIB;
 
   uint8_t                                   *SIB1;
-  uint8_t                                   sizeof_SIB1;
+  uint16_t                                  sizeof_SIB1;
 
   uint8_t                                   *SIB23;
   uint8_t                                   sizeof_SIB23;
@@ -447,13 +447,15 @@ typedef struct {
 
   NR_BCCH_BCH_Message_t                     mib;
   NR_BCCH_BCH_Message_t                    *mib_DU;
-  NR_BCCH_DL_SCH_Message_t                 *siblock1_DU;
+  NR_SIB1_t                                *siblock1_DU;
+  //NR_BCCH_DL_SCH_Message_t                 *siblock1_DU;
   NR_SIB1_t                                *sib1;
   NR_SIB2_t                                *sib2;
   NR_SIB3_t                                *sib3;
   NR_BCCH_DL_SCH_Message_t                  systemInformation; // SIB23
   NR_BCCH_DL_SCH_Message_t                  *siblock1;
   NR_ServingCellConfigCommon_t              *servingcellconfigcommon;
+  NR_ServingCellConfig_t                    *servingcellconfig;
   NR_PDCCH_ConfigSIB1_t                     *pdcch_ConfigSIB1;
   NR_CellGroupConfig_t                      *secondaryCellGroup[MAX_NR_RRC_UE_CONTEXTS];
   NR_SRB_INFO                               SI;
diff --git a/openair2/RRC/NR/nr_rrc_proto.h b/openair2/RRC/NR/nr_rrc_proto.h
index c8fddbecfb9..dc6e14215ff 100644
--- a/openair2/RRC/NR/nr_rrc_proto.h
+++ b/openair2/RRC/NR/nr_rrc_proto.h
@@ -47,13 +47,13 @@ void rrc_config_nr_buffer(NR_SRB_INFO* Srb_info,
                           uint8_t Lchan_type,
                           uint8_t Role);
 
-int    mac_rrc_nr_data_req(const module_id_t Mod_idP,
-                           const int         CC_id,
-                           const frame_t     frameP,
-                           const rb_id_t     Srb_id,
-                           const rnti_t      rnti,
-                           const uint8_t     Nb_tb,
-                           uint8_t *const    buffer_pP );
+uint16_t mac_rrc_nr_data_req(const module_id_t Mod_idP,
+                             const int         CC_id,
+                             const frame_t     frameP,
+                             const rb_id_t     Srb_id,
+                             const rnti_t      rnti,
+                             const uint8_t     Nb_tb,
+                             uint8_t *const    buffer_pP);
 
 void rrc_gNB_process_SgNBAdditionRequest( 
      const protocol_ctxt_t  *const ctxt_pP,
@@ -120,7 +120,7 @@ rrc_gNB_generate_SecurityModeCommand(
   rrc_gNB_ue_context_t          *const ue_context_pP
 );
 
-uint8_t
+				uint8_t
 rrc_gNB_get_next_transaction_identifier(
     module_id_t gnb_mod_idP
 );
@@ -167,18 +167,28 @@ int
 nr_rrc_mac_remove_ue(module_id_t mod_idP,
                   rnti_t rntiP);
 
-int8_t nr_mac_rrc_data_ind(
-    const module_id_t     module_idP,
-    const int             CC_id,
-    const frame_t         frameP,
-    const sub_frame_t     sub_frameP,
-    const int             UE_id,
-    const rnti_t          rntiP,
-    const rb_id_t         srb_idP,
-    const uint8_t        *sduP,
-    const sdu_size_t      sdu_lenP,
-    const boolean_t   brOption
-);
+int8_t nr_mac_rrc_bwp_switch_req(const module_id_t     module_idP,
+                                 const frame_t         frameP,
+                                 const sub_frame_t     sub_frameP,
+                                 const rnti_t          rntiP,
+                                 const int             dl_bwp_id,
+                                 const int             ul_bwp_id);
+
+int8_t nr_mac_rrc_data_ind(const module_id_t     module_idP,
+                           const int             CC_id,
+                           const frame_t         frameP,
+                           const sub_frame_t     sub_frameP,
+                           const int             UE_id,
+                           const rnti_t          rntiP,
+                           const rb_id_t         srb_idP,
+                           const uint8_t        *sduP,
+                           const sdu_size_t      sdu_lenP,
+                           const bool            brOption);
+
+int nr_rrc_reconfiguration_req(rrc_gNB_ue_context_t         *const ue_context_pP,
+                               protocol_ctxt_t              *const ctxt_pP,
+                               const int                    dl_bwp_id,
+                               const int                    ul_bwp_id);
 
 int nr_rrc_gNB_decode_ccch(protocol_ctxt_t    *const ctxt_pP,
                            const uint8_t      *buffer,
@@ -197,7 +207,8 @@ rrc_gNB_generate_dedicatedRRCReconfiguration_release(
 void 
 rrc_gNB_generate_dedicatedRRCReconfiguration(
     const protocol_ctxt_t     *const ctxt_pP,
-    rrc_gNB_ue_context_t      *ue_context_pP);
+    rrc_gNB_ue_context_t      *ue_context_pP,
+    NR_CellGroupConfig_t      *cell_groupConfig_from_DU);
 
 rlc_op_status_t nr_rrc_rlc_config_asn1_req (const protocol_ctxt_t   * const ctxt_pP,
     const NR_SRB_ToAddModList_t   * const srb2add_listP,
@@ -206,16 +217,15 @@ rlc_op_status_t nr_rrc_rlc_config_asn1_req (const protocol_ctxt_t   * const ctxt
     const LTE_PMCH_InfoList_r9_t * const pmch_InfoList_r9_pP,
     struct NR_CellGroupConfig__rlc_BearerToAddModList *rlc_bearer2add_list);
 
-boolean_t nr_rrc_pdcp_config_asn1_req(
-  const protocol_ctxt_t *const  ctxt_pP,
-  NR_SRB_ToAddModList_t  *const srb2add_list,
-  NR_DRB_ToAddModList_t  *const drb2add_list,
-  NR_DRB_ToReleaseList_t *const drb2release_list,
-  const uint8_t                   security_modeP,
-  uint8_t                  *const kRRCenc,
-  uint8_t                  *const kRRCint,
-  uint8_t                  *const kUPenc,
-  uint8_t                  *const kUPint
-  ,LTE_PMCH_InfoList_r9_t  *pmch_InfoList_r9
-  ,rb_id_t                 *const defaultDRB,
-  struct NR_CellGroupConfig__rlc_BearerToAddModList *rlc_bearer2add_list);
+bool nr_rrc_pdcp_config_asn1_req(const protocol_ctxt_t *const  ctxt_pP,
+                                 NR_SRB_ToAddModList_t  *const srb2add_list,
+                                 NR_DRB_ToAddModList_t  *const drb2add_list,
+                                 NR_DRB_ToReleaseList_t *const drb2release_list,
+                                 const uint8_t                   security_modeP,
+                                 uint8_t                  *const kRRCenc,
+                                 uint8_t                  *const kRRCint,
+                                 uint8_t                  *const kUPenc,
+                                 uint8_t                  *const kUPint,
+                                 LTE_PMCH_InfoList_r9_t   *pmch_InfoList_r9,
+                                 rb_id_t                  *const defaultDRB,
+                                 struct NR_CellGroupConfig__rlc_BearerToAddModList *rlc_bearer2add_list);
diff --git a/openair2/RRC/NR/rrc_gNB.c b/openair2/RRC/NR/rrc_gNB.c
index a0706509a79..8c6c583289a 100755
--- a/openair2/RRC/NR/rrc_gNB.c
+++ b/openair2/RRC/NR/rrc_gNB.c
@@ -99,6 +99,7 @@
 #include <openair2/X2AP/x2ap_eNB.h>
 #include <openair3/ocp-gtpu/gtp_itf.h>
 #include <openair2/RRC/NR/nr_rrc_proto.h>
+#include "LAYER2/nr_rlc/nr_rlc_oai_api.h"
 
 #include "BIT_STRING.h"
 #include "assertions.h"
@@ -115,16 +116,16 @@ uint8_t first_rrcreconfiguration = 0;
 ///---------------------------------------------------------------------------------------------------------------///
 ///---------------------------------------------------------------------------------------------------------------///
 
-boolean_t DURecvCb( protocol_ctxt_t  *ctxt_pP,
-                    const srb_flag_t     srb_flagP,
-                    const rb_id_t        rb_idP,
-                    const mui_t          muiP,
-                    const confirm_t      confirmP,
-                    const sdu_size_t     sdu_buffer_sizeP,
-                    unsigned char *const sdu_buffer_pP,
-                    const pdcp_transmission_mode_t modeP,
-                    const uint32_t *sourceL2Id,
-                    const uint32_t *destinationL2Id) {
+bool DURecvCb(protocol_ctxt_t  *ctxt_pP,
+              const srb_flag_t     srb_flagP,
+              const rb_id_t        rb_idP,
+              const mui_t          muiP,
+              const confirm_t      confirmP,
+              const sdu_size_t     sdu_buffer_sizeP,
+              unsigned char *const sdu_buffer_pP,
+              const pdcp_transmission_mode_t modeP,
+              const uint32_t *sourceL2Id,
+              const uint32_t *destinationL2Id) {
   // The buffer comes from the stack in gtp-u thread, we have a make a separate buffer to enqueue in a inter-thread message queue
   mem_block_t *sdu=get_free_mem_block(sdu_buffer_sizeP, __func__);
   memcpy(sdu->data,  sdu_buffer_pP,  sdu_buffer_sizeP);
@@ -164,9 +165,8 @@ static void init_NR_SI(gNB_RRC_INST *rrc, gNB_RrcConfigurationReq *configuration
 
   LOG_I(NR_RRC,"Done init_NR_SI\n");
 
-  if (NODE_IS_MONOLITHIC(rrc->node_type)){
+  if (NODE_IS_MONOLITHIC(rrc->node_type) || NODE_IS_DU(rrc->node_type)){
     rrc_mac_config_req_gNB(rrc->module_id,
-                           rrc->configuration.ssb_SubcarrierOffset,
                            rrc->configuration.pdsch_AntennaPorts,
                            rrc->configuration.pusch_AntennaPorts,
                            rrc->configuration.sib1_tda,
@@ -197,7 +197,7 @@ static void init_NR_SI(gNB_RRC_INST *rrc, gNB_RrcConfigurationReq *configuration
 }
 
 char openair_rrc_gNB_configuration(const module_id_t gnb_mod_idP, gNB_RrcConfigurationReq *configuration) {
-  protocol_ctxt_t      ctxt;
+  protocol_ctxt_t      ctxt = { 0 };
   gNB_RRC_INST         *rrc=RC.nrrrc[gnb_mod_idP];
   PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, gnb_mod_idP, GNB_FLAG_YES, NOT_A_RNTI, 0, 0,gnb_mod_idP);
   LOG_I(NR_RRC,
@@ -218,6 +218,7 @@ char openair_rrc_gNB_configuration(const module_id_t gnb_mod_idP, gNB_RrcConfigu
   rrc->ngap_id2_ngap_ids    = hashtable_create (NUMBER_OF_UE_MAX * 2, NULL, NULL);
   rrc->configuration = *configuration;
   rrc->carrier.servingcellconfigcommon = configuration->scc;
+  rrc->carrier.servingcellconfig = configuration->scd;
   nr_rrc_config_ul_tda(configuration->scc,configuration->minRXTXTIME);
    /// System Information INIT
   pthread_mutex_init(&rrc->cell_info_mutex,NULL);
@@ -275,7 +276,6 @@ void apply_macrlc_config(gNB_RRC_INST *rrc,
 
   NR_CellGroupConfig_t *cgc = get_softmodem_params()->sa ? ue_context_pP->ue_context.masterCellGroup : NULL;
   rrc_mac_config_req_gNB(rrc->module_id,
-                         rrc->configuration.ssb_SubcarrierOffset,
                          rrc->configuration.pdsch_AntennaPorts,
                          rrc->configuration.pusch_AntennaPorts,
                          rrc->configuration.sib1_tda,
@@ -335,12 +335,16 @@ rrc_gNB_generate_RRCSetup(
   //   T_INT(ctxt_pP->rnti));
   gNB_RRC_UE_t *ue_p = &ue_context_pP->ue_context;
   gNB_RRC_INST *rrc = RC.nrrrc[ctxt_pP->module_id];
-  ue_p->Srb0.Tx_buffer.payload_size = do_RRCSetup(ue_context_pP,
-                                                  (uint8_t *) ue_p->Srb0.Tx_buffer.Payload,
-                                                  rrc_gNB_get_next_transaction_identifier(ctxt_pP->module_id),
-                                                  masterCellGroup_from_DU,
-                                                  scc,
-                                                  &rrc->configuration);
+  NR_ServingCellConfig_t *servingcellconfigdedicated = rrc->configuration.scd;
+  int16_t ret = do_RRCSetup(ue_context_pP,
+                            (uint8_t *) ue_p->Srb0.Tx_buffer.Payload,
+                            rrc_gNB_get_next_transaction_identifier(ctxt_pP->module_id),
+                            masterCellGroup_from_DU,
+                            scc,servingcellconfigdedicated,&rrc->configuration);
+
+  AssertFatal(ret>0,"Error generating RRCSetup for RRCSetupRequest\n");
+
+  ue_p->Srb0.Tx_buffer.payload_size = ret;
 
   LOG_DUMPMSG(NR_RRC, DEBUG_RRC,
               (char *)(ue_p->Srb0.Tx_buffer.Payload),
@@ -442,16 +446,20 @@ rrc_gNB_generate_RRCSetup_for_RRCReestablishmentRequest(
   rrc_gNB_ue_context_t         *ue_context_pP   = NULL;
   gNB_RRC_INST                 *rrc_instance_p = RC.nrrrc[ctxt_pP->module_id];
   NR_ServingCellConfigCommon_t *scc=rrc_instance_p->carrier.servingcellconfigcommon;
+  NR_ServingCellConfig_t       *servingcellconfigdedicated = rrc_instance_p->configuration.scd;
 
   ue_context_pP = rrc_gNB_get_next_free_ue_context(ctxt_pP, rrc_instance_p, 0);
 
   gNB_RRC_UE_t *ue_p = &ue_context_pP->ue_context;
-  ue_p->Srb0.Tx_buffer.payload_size = do_RRCSetup(ue_context_pP,
-                                                  (uint8_t *) ue_p->Srb0.Tx_buffer.Payload,
-                                                  rrc_gNB_get_next_transaction_identifier(ctxt_pP->module_id),
-                                                  NULL,
-                                                  scc,
-                                                  &rrc_instance_p->configuration);
+  int16_t ret = do_RRCSetup(ue_context_pP,
+                            (uint8_t *) ue_p->Srb0.Tx_buffer.Payload,
+                            rrc_gNB_get_next_transaction_identifier(ctxt_pP->module_id),
+                            NULL,
+                            scc,servingcellconfigdedicated,&rrc_instance_p->configuration);
+
+  AssertFatal(ret>0,"Error generating RRCSetup for RRCReestablishmentRequest\n");
+
+  ue_p->Srb0.Tx_buffer.payload_size = ret;
 
   LOG_DUMPMSG(NR_RRC, DEBUG_RRC,
               (char *)(ue_p->Srb0.Tx_buffer.Payload),
@@ -463,7 +471,6 @@ rrc_gNB_generate_RRCSetup_for_RRCReestablishmentRequest(
           PROTOCOL_NR_RRC_CTXT_UE_ARGS(ctxt_pP));
 
   rrc_mac_config_req_gNB(rrc_instance_p->module_id,
-                         rrc_instance_p->configuration.ssb_SubcarrierOffset,
                          rrc_instance_p->configuration.pdsch_AntennaPorts,
                          rrc_instance_p->configuration.pusch_AntennaPorts,
                          rrc_instance_p->configuration.sib1_tda,
@@ -799,10 +806,29 @@ rrc_gNB_generate_defaultRRCReconfiguration(
   }
 
   if (NODE_IS_DU(rrc->node_type) || NODE_IS_MONOLITHIC(rrc->node_type)) {
+    gNB_RRC_UE_t *ue_p = &ue_context_pP->ue_context;
+    rrc_mac_config_req_gNB(rrc->module_id,
+                           rrc->configuration.pdsch_AntennaPorts,
+                           rrc->configuration.pusch_AntennaPorts,
+                           rrc->configuration.sib1_tda,
+                           rrc->configuration.minRXTXTIME,
+                           NULL,
+                           NULL,
+                           NULL,
+                           0,
+                           ue_p->rnti,
+                           ue_p->masterCellGroup);
+
+    uint32_t delay_ms = ue_context_pP->ue_context.masterCellGroup &&
+                        ue_context_pP->ue_context.masterCellGroup->spCellConfig &&
+                        ue_context_pP->ue_context.masterCellGroup->spCellConfig->spCellConfigDedicated &&
+                        ue_context_pP->ue_context.masterCellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList ?
+                        NR_RRC_RECONFIGURATION_DELAY_MS + NR_RRC_BWP_SWITCHING_DELAY_MS : NR_RRC_RECONFIGURATION_DELAY_MS;
+
     nr_mac_enable_ue_rrc_processing_timer(ctxt_pP->module_id,
                                           ue_context_pP->ue_context.rnti,
                                           *rrc->carrier.servingcellconfigcommon->ssbSubcarrierSpacing,
-                                          NR_RRC_RECONFIGURATION_DELAY_MS);
+                                          delay_ms);
   }
 }
 
@@ -810,7 +836,8 @@ rrc_gNB_generate_defaultRRCReconfiguration(
 void
 rrc_gNB_generate_dedicatedRRCReconfiguration(
     const protocol_ctxt_t     *const ctxt_pP,
-    rrc_gNB_ue_context_t      *ue_context_pP
+    rrc_gNB_ue_context_t      *ue_context_pP,
+    NR_CellGroupConfig_t      *cell_groupConfig_from_DU
 )
 //-----------------------------------------------------------------------------
 {
@@ -830,7 +857,10 @@ rrc_gNB_generate_dedicatedRRCReconfiguration(
   int                            qos_flow_index = 0;
   int                            pdu_sessions_done = 0;
   int i;
-  NR_CellGroupConfig_t *cellGroupConfig;
+  uint8_t drb_id_to_setup_start = 1;
+  uint8_t nb_drb_to_setup = 0;
+  long drb_priority[1] = {13}; // For now, we assume only one drb per pdu sessions with a default preiority (will be dynamique in future)
+  NR_CellGroupConfig_t *cellGroupConfig = NULL;
 
   uint8_t xid = rrc_gNB_get_next_transaction_identifier(ctxt_pP->module_id);
 
@@ -872,6 +902,8 @@ rrc_gNB_generate_dedicatedRRCReconfiguration(
 
     DRB_config = CALLOC(1, sizeof(*DRB_config));
     DRB_config->drb_Identity = i+1;
+    if (drb_id_to_setup_start == 1) drb_id_to_setup_start = DRB_config->drb_Identity;
+    nb_drb_to_setup++;
     DRB_config->cnAssociation = CALLOC(1, sizeof(*DRB_config->cnAssociation));
     DRB_config->cnAssociation->present = NR_DRB_ToAddMod__cnAssociation_PR_sdap_Config;
     // sdap_Config
@@ -885,7 +917,7 @@ rrc_gNB_generate_dedicatedRRCReconfiguration(
       sdap_config->sdap_HeaderDL = NR_SDAP_Config__sdap_HeaderDL_absent;
       sdap_config->sdap_HeaderUL = NR_SDAP_Config__sdap_HeaderUL_absent;
     }
-    sdap_config->defaultDRB = TRUE;
+    sdap_config->defaultDRB = true;
     sdap_config->mappedQoS_FlowsToAdd = calloc(1, sizeof(struct NR_SDAP_Config__mappedQoS_FlowsToAdd));
     memset(sdap_config->mappedQoS_FlowsToAdd, 0, sizeof(struct NR_SDAP_Config__mappedQoS_FlowsToAdd));
 
@@ -984,9 +1016,17 @@ rrc_gNB_generate_dedicatedRRCReconfiguration(
   }
 
   memset(buffer, 0, sizeof(buffer));
-  cellGroupConfig = calloc(1, sizeof(NR_CellGroupConfig_t));
-  fill_mastercellGroupConfig(cellGroupConfig, ue_context_pP->ue_context.masterCellGroup,
-                             rrc->um_on_default_drb);
+  if(cell_groupConfig_from_DU == NULL){
+    cellGroupConfig = calloc(1, sizeof(NR_CellGroupConfig_t));
+    // FIXME: fill_mastercellGroupConfig() won't fill the right priorities or
+    // bearer IDs for the DRBs
+    fill_mastercellGroupConfig(cellGroupConfig, ue_context_pP->ue_context.masterCellGroup, rrc->um_on_default_drb, (drb_id_to_setup_start < 2) ? 1 : 0, drb_id_to_setup_start, nb_drb_to_setup, drb_priority);
+  }
+  else{
+    LOG_I(NR_RRC, "Master cell group originating from the DU \n");
+    cellGroupConfig = cell_groupConfig_from_DU;
+  }
+
   size = do_RRCReconfiguration(ctxt_pP, buffer, sizeof(buffer),
                                 xid,
                                 *SRB_configList2,
@@ -1041,10 +1081,28 @@ rrc_gNB_generate_dedicatedRRCReconfiguration(
 #endif
 
   if (NODE_IS_DU(rrc->node_type) || NODE_IS_MONOLITHIC(rrc->node_type)) {
+    rrc_mac_config_req_gNB(rrc->module_id,
+                           rrc->configuration.pdsch_AntennaPorts,
+                           rrc->configuration.pusch_AntennaPorts,
+                           rrc->configuration.sib1_tda,
+                           rrc->configuration.minRXTXTIME,
+                           NULL,
+                           NULL,
+                           NULL,
+                           0,
+                           ue_context_pP->ue_context.rnti,
+                           ue_context_pP->ue_context.masterCellGroup);
+
+    uint32_t delay_ms = ue_context_pP->ue_context.masterCellGroup &&
+                        ue_context_pP->ue_context.masterCellGroup->spCellConfig &&
+                        ue_context_pP->ue_context.masterCellGroup->spCellConfig->spCellConfigDedicated &&
+                        ue_context_pP->ue_context.masterCellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList ?
+                        NR_RRC_RECONFIGURATION_DELAY_MS + NR_RRC_BWP_SWITCHING_DELAY_MS : NR_RRC_RECONFIGURATION_DELAY_MS;
+
     nr_mac_enable_ue_rrc_processing_timer(ctxt_pP->module_id,
                                           ue_context_pP->ue_context.rnti,
                                           *rrc->carrier.servingcellconfigcommon->ssbSubcarrierSpacing,
-                                          NR_RRC_RECONFIGURATION_DELAY_MS);
+                                          delay_ms);
   }
 }
 
@@ -1221,10 +1279,16 @@ rrc_gNB_modify_dedicatedRRCReconfiguration(
 #endif
 
   if (NODE_IS_DU(RC.nrrrc[ctxt_pP->module_id]->node_type) || NODE_IS_MONOLITHIC(RC.nrrrc[ctxt_pP->module_id]->node_type)) {
+    uint32_t delay_ms = ue_context_pP->ue_context.masterCellGroup &&
+                        ue_context_pP->ue_context.masterCellGroup->spCellConfig &&
+                        ue_context_pP->ue_context.masterCellGroup->spCellConfig->spCellConfigDedicated &&
+                        ue_context_pP->ue_context.masterCellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList ?
+                        NR_RRC_RECONFIGURATION_DELAY_MS + NR_RRC_BWP_SWITCHING_DELAY_MS : NR_RRC_RECONFIGURATION_DELAY_MS;
+
     nr_mac_enable_ue_rrc_processing_timer(ctxt_pP->module_id,
                                           ue_context_pP->ue_context.rnti,
                                           *RC.nrrrc[ctxt_pP->module_id]->carrier.servingcellconfigcommon->ssbSubcarrierSpacing,
-                                          NR_RRC_RECONFIGURATION_DELAY_MS);
+                                          delay_ms);
   }
 }
 
@@ -1291,8 +1355,8 @@ rrc_gNB_generate_dedicatedRRCReconfiguration_release(
                                NULL);
 
   ue_context_pP->ue_context.pdu_session_release_command_flag = 1;
-  LOG_DUMPMSG(NR_RRC,DEBUG_RRC,(char *)buffer,size,
-              "[MSG] RRC Reconfiguration\n");
+
+  LOG_DUMPMSG(NR_RRC,DEBUG_RRC,(char *)buffer,size, "[MSG] RRC Reconfiguration\n");
 
   /* Free all NAS PDUs */
   if (nas_length > 0) {
@@ -1328,10 +1392,16 @@ rrc_gNB_generate_dedicatedRRCReconfiguration_release(
 #endif
 
   if (NODE_IS_DU(RC.nrrrc[ctxt_pP->module_id]->node_type) || NODE_IS_MONOLITHIC(RC.nrrrc[ctxt_pP->module_id]->node_type)) {
+    uint32_t delay_ms = ue_context_pP->ue_context.masterCellGroup &&
+                        ue_context_pP->ue_context.masterCellGroup->spCellConfig &&
+                        ue_context_pP->ue_context.masterCellGroup->spCellConfig->spCellConfigDedicated &&
+                        ue_context_pP->ue_context.masterCellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList ?
+                        NR_RRC_RECONFIGURATION_DELAY_MS + NR_RRC_BWP_SWITCHING_DELAY_MS : NR_RRC_RECONFIGURATION_DELAY_MS;
+
     nr_mac_enable_ue_rrc_processing_timer(ctxt_pP->module_id,
                                           ue_context_pP->ue_context.rnti,
                                           *RC.nrrrc[ctxt_pP->module_id]->carrier.servingcellconfigcommon->ssbSubcarrierSpacing,
-                                          NR_RRC_RECONFIGURATION_DELAY_MS);
+                                          delay_ms);
   }
 }
 
@@ -1356,7 +1426,6 @@ rrc_gNB_process_RRCReconfigurationComplete(
   NR_DRB_ToReleaseList_t             *DRB_Release_configList2 = ue_context_pP->ue_context.DRB_Release_configList2[xid];
   NR_DRB_Identity_t                  *drb_id_p      = NULL;
   //  uint8_t                             nr_DRB2LCHAN[8];
-  gNB_RRC_INST *rrc = RC.nrrrc[ctxt_pP->module_id];
 
   ue_context_pP->ue_context.ue_reestablishment_timer = 0;
 
@@ -1395,20 +1464,7 @@ rrc_gNB_process_RRCReconfigurationComplete(
                               NULL,
                               get_softmodem_params()->sa ? ue_context_pP->ue_context.masterCellGroup->rlc_BearerToAddModList : NULL);
   /* Refresh SRBs/DRBs */
-
   if (!NODE_IS_CU(RC.nrrrc[ctxt_pP->module_id]->node_type)) {
-    rrc_mac_config_req_gNB(rrc->module_id,
-                           rrc->configuration.ssb_SubcarrierOffset,
-                           rrc->configuration.pdsch_AntennaPorts,
-                           rrc->configuration.pusch_AntennaPorts,
-                           rrc->configuration.sib1_tda,
-                           rrc->configuration.minRXTXTIME,
-                           NULL,
-                           NULL,
-                           NULL,
-                           0,
-                           ue_context_pP->ue_context.rnti,
-                           ue_context_pP->ue_context.masterCellGroup);
     LOG_D(NR_RRC,"Configuring RLC DRBs/SRBs for UE %x\n",ue_context_pP->ue_context.rnti);
     nr_rrc_rlc_config_asn1_req(ctxt_pP,
                                SRB_configList, // NULL,
@@ -1417,49 +1473,6 @@ rrc_gNB_process_RRCReconfigurationComplete(
                                NULL,
                                get_softmodem_params()->sa ? ue_context_pP->ue_context.masterCellGroup->rlc_BearerToAddModList : NULL);
   }
-  else if(SRB_configList!=NULL || DRB_configList!=NULL){
-    MessageDef *message_p;
-    message_p = itti_alloc_new_message (TASK_RRC_GNB, 0, F1AP_UE_CONTEXT_SETUP_REQ);
-    f1ap_ue_context_setup_t *req=&F1AP_UE_CONTEXT_SETUP_REQ (message_p);
-    req->gNB_CU_ue_id     = 0;
-    req->gNB_DU_ue_id = 0;
-    req->rnti = ue_context_pP->ue_context.rnti;
-    req->mcc              = rrc->configuration.mcc[0];
-    req->mnc              = rrc->configuration.mnc[0];
-    req->mnc_digit_length = rrc->configuration.mnc_digit_length[0];
-    req->nr_cellid        = rrc->nr_cellid;
-    if(SRB_configList!=NULL){
-      req->srbs_to_be_setup = malloc(SRB_configList->list.count*sizeof(f1ap_srb_to_be_setup_t));
-      req->srbs_to_be_setup_length = SRB_configList->list.count;
-      f1ap_srb_to_be_setup_t *SRBs=req->srbs_to_be_setup;
-      for (int i = 0; i < SRB_configList->list.count; i++){
-        if(SRB_configList->list.array[i]->srb_Identity > 1){
-          SRBs[i].srb_id = SRB_configList->list.array[i]->srb_Identity;
-          SRBs[i].lcid = SRB_configList->list.array[i]->srb_Identity;
-        }
-      }
-    }
-    if(DRB_configList!=NULL){
-      gtpv1u_gnb_create_tunnel_req_t  create_tunnel_req;
-      memset(&create_tunnel_req, 0, sizeof(gtpv1u_gnb_create_tunnel_req_t));
-      req->drbs_to_be_setup = malloc(DRB_configList->list.count*sizeof(f1ap_drb_to_be_setup_t));
-      req->drbs_to_be_setup_length = DRB_configList->list.count;
-      f1ap_drb_to_be_setup_t *DRBs=req->drbs_to_be_setup;
-      LOG_I(RRC, "Length of DRB list:%d, %d \n", DRB_configList->list.count, req->drbs_to_be_setup_length);
-      for (int i = 0; i < DRB_configList->list.count; i++){
-        DRBs[i].drb_id = DRB_configList->list.array[i]->drb_Identity;
-        DRBs[i].rlc_mode = RLC_MODE_AM;
-        DRBs[i].up_ul_tnl[0].tl_address = inet_addr(rrc->eth_params_s.my_addr);
-        DRBs[i].up_ul_tnl[0].port=rrc->eth_params_s.my_portd;
-        DRBs[i].up_ul_tnl_length = 1;
-        DRBs[i].up_dl_tnl[0].tl_address = inet_addr(rrc->eth_params_s.remote_addr);
-        DRBs[i].up_dl_tnl[0].port=rrc->eth_params_s.remote_portd;
-        DRBs[i].up_dl_tnl_length = 1;
-      }
-      LOG_I(RRC, "Send F1AP_UE_CONTEXT_SETUP_REQ with ITTI\n");
-    }
-    itti_send_msg_to_task (TASK_CU_F1, ctxt_pP->module_id, message_p);
-  }
 #endif
 
   /* Set the SRB active in UE context */
@@ -1610,7 +1623,7 @@ rrc_gNB_generate_RRCReestablishment(
           ue_context->Srb0.Tx_buffer.payload_size);
 #if(0)
     /* TODO : It may be needed if gNB goes into full stack working. */
-    UE_id = find_nr_UE_id(module_id, rnti);
+    UE = find_nr_UE(module_id, rnti);
     if (UE_id != -1) {
       /* Activate reject timer, if RRCComplete not received after 10 frames, reject UE */
       RC.nrmac[module_id]->UE_info.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer = 1;
@@ -1754,15 +1767,16 @@ rrc_gNB_process_RRCConnectionReestablishmentComplete(
       }
     }
 
-    gtpv1u_gnb_create_tunnel_req_t  create_tunnel_req;
+    gtpv1u_gnb_create_tunnel_req_t  create_tunnel_req={0};
     /* Save e RAB information for later */
-    memset(&create_tunnel_req, 0, sizeof(create_tunnel_req));
 
     for ( j = 0, i = 0; i < NB_RB_MAX; i++) {
       if (ue_context_pP->ue_context.pduSession[i].status == PDU_SESSION_STATUS_ESTABLISHED || ue_context_pP->ue_context.pduSession[i].status == PDU_SESSION_STATUS_DONE) {
         create_tunnel_req.pdusession_id[j]   = ue_context_pP->ue_context.pduSession[i].param.pdusession_id;
         create_tunnel_req.incoming_rb_id[j]  = i+1;
         create_tunnel_req.outgoing_teid[j]  = ue_context_pP->ue_context.pduSession[i].param.gtp_teid;
+        // to be developped, use the first QFI only
+        create_tunnel_req.outgoing_qfi[j]  = ue_context_pP->ue_context.pduSession[i].param.qos[0].qfi;
         memcpy(create_tunnel_req.dst_addr[j].buffer,
                ue_context_pP->ue_context.pduSession[i].param.upf_addr.buffer,
                 sizeof(uint8_t)*20);
@@ -1813,7 +1827,7 @@ rrc_gNB_process_RRCConnectionReestablishmentComplete(
   ue_context_pP->ue_context.rnti               = ctxt_pP->rnti;
 
   if (AMF_MODE_ENABLED) {
-    uint8_t send_security_mode_command = FALSE;
+    uint8_t send_security_mode_command = false;
     nr_rrc_pdcp_config_security(
       ctxt_pP,
       ue_context_pP,
@@ -1848,8 +1862,8 @@ rrc_gNB_process_RRCConnectionReestablishmentComplete(
                                 NULL,
                                 NULL,
                                 NULL);
-  LOG_DUMPMSG(NR_RRC,DEBUG_RRC,(char *)buffer,size,
-              "[MSG] RRC Reconfiguration\n");
+
+  LOG_DUMPMSG(NR_RRC,DEBUG_RRC,(char *)buffer,size, "[MSG] RRC Reconfiguration\n");
 
   /* Free all NAS PDUs */
   for (i = 0; i < ue_context_pP->ue_context.nb_of_pdusessions; i++) {
@@ -1893,14 +1907,92 @@ rrc_gNB_process_RRCConnectionReestablishmentComplete(
   }
 
   if (NODE_IS_DU(RC.nrrrc[ctxt_pP->module_id]->node_type) || NODE_IS_MONOLITHIC(RC.nrrrc[ctxt_pP->module_id]->node_type)) {
+    uint32_t delay_ms = ue_context_pP->ue_context.masterCellGroup &&
+                        ue_context_pP->ue_context.masterCellGroup->spCellConfig &&
+                        ue_context_pP->ue_context.masterCellGroup->spCellConfig->spCellConfigDedicated &&
+                        ue_context_pP->ue_context.masterCellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList ?
+                        NR_RRC_RECONFIGURATION_DELAY_MS + NR_RRC_BWP_SWITCHING_DELAY_MS : NR_RRC_RECONFIGURATION_DELAY_MS;
+
     nr_mac_enable_ue_rrc_processing_timer(ctxt_pP->module_id,
                                           ue_context_pP->ue_context.rnti,
                                           *RC.nrrrc[ctxt_pP->module_id]->carrier.servingcellconfigcommon->ssbSubcarrierSpacing,
-                                          NR_RRC_RECONFIGURATION_DELAY_MS);
+                                          delay_ms);
   }
 }
 //-----------------------------------------------------------------------------
 
+int nr_rrc_reconfiguration_req(rrc_gNB_ue_context_t         *const ue_context_pP,
+                               protocol_ctxt_t              *const ctxt_pP,
+                               const int                    dl_bwp_id,
+                               const int                    ul_bwp_id) {
+
+  uint8_t buffer[RRC_BUF_SIZE];
+  memset(buffer, 0, sizeof(buffer));
+  uint8_t xid = rrc_gNB_get_next_transaction_identifier(ctxt_pP->module_id);
+
+  NR_CellGroupConfig_t *masterCellGroup = ue_context_pP->ue_context.masterCellGroup;
+  if (dl_bwp_id >= 0) {
+    *masterCellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id = dl_bwp_id;
+    *masterCellGroup->spCellConfig->spCellConfigDedicated->defaultDownlinkBWP_Id = dl_bwp_id;
+  }
+  if (ul_bwp_id >= 0) {
+    *masterCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->firstActiveUplinkBWP_Id = ul_bwp_id;
+  }
+
+  uint16_t  size = do_RRCReconfiguration(ctxt_pP,
+                                         buffer,
+                                         sizeof(buffer),
+                                         xid,
+                                         NULL,
+                                         NULL,
+                                         NULL,
+                                         NULL,
+                                         NULL,
+                                         NULL,
+                                         NULL,
+                                         ue_context_pP,
+                                         NULL,
+                                         NULL,
+                                         NULL,
+                                         masterCellGroup);
+
+  gNB_RrcConfigurationReq *configuration = &RC.nrrrc[ctxt_pP->module_id]->configuration;
+  rrc_mac_config_req_gNB(ctxt_pP->module_id,
+                         configuration->pdsch_AntennaPorts,
+                         configuration->pusch_AntennaPorts,
+                         configuration->sib1_tda,
+                         configuration->minRXTXTIME,
+                         NULL,
+                         NULL,
+                         NULL,
+                         0,
+                         ue_context_pP->ue_context.rnti,
+                         masterCellGroup);
+
+  nr_rrc_data_req(ctxt_pP,
+                  DCCH,
+                  rrc_gNB_mui++,
+                  SDU_CONFIRM_NO,
+                  size,
+                  buffer,
+                  PDCP_TRANSMISSION_MODE_CONTROL);
+
+  if (NODE_IS_DU(RC.nrrrc[ctxt_pP->module_id]->node_type) || NODE_IS_MONOLITHIC(RC.nrrrc[ctxt_pP->module_id]->node_type)) {
+    uint32_t delay_ms = ue_context_pP->ue_context.masterCellGroup &&
+                        ue_context_pP->ue_context.masterCellGroup->spCellConfig &&
+                        ue_context_pP->ue_context.masterCellGroup->spCellConfig->spCellConfigDedicated &&
+                        ue_context_pP->ue_context.masterCellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList ?
+                        NR_RRC_RECONFIGURATION_DELAY_MS + NR_RRC_BWP_SWITCHING_DELAY_MS : NR_RRC_RECONFIGURATION_DELAY_MS;
+
+    nr_mac_enable_ue_rrc_processing_timer(ctxt_pP->module_id,
+                                          ue_context_pP->ue_context.rnti,
+                                          *RC.nrrrc[ctxt_pP->module_id]->carrier.servingcellconfigcommon->ssbSubcarrierSpacing,
+                                          delay_ms);
+  }
+
+  return 0;
+}
+
 /*------------------------------------------------------------------------------*/
 int nr_rrc_gNB_decode_ccch(protocol_ctxt_t    *const ctxt_pP,
                            const uint8_t      *buffer,
@@ -2022,7 +2114,7 @@ int nr_rrc_gNB_decode_ccch(protocol_ctxt_t    *const ctxt_pP,
               }
 
               if (ue_context_p != NULL) {
-                ue_context_p->ue_context.Initialue_identity_5g_s_TMSI.presence = TRUE;
+                ue_context_p->ue_context.Initialue_identity_5g_s_TMSI.presence = true;
                 ue_context_p->ue_context.ng_5G_S_TMSI_Part1 = s_tmsi_part1;
               }
             }
@@ -2499,7 +2591,7 @@ rrc_gNB_decode_dcch(
                   fiveg_s_TMSI, fiveg_s_TMSI >> 38, fiveg_s_TMSI >> 38,
                   (fiveg_s_TMSI >> 32) & 0x3F, (fiveg_s_TMSI >> 32) & 0x3F,
                   (uint32_t)fiveg_s_TMSI);
-              if (ue_context_p->ue_context.Initialue_identity_5g_s_TMSI.presence == TRUE) {
+              if (ue_context_p->ue_context.Initialue_identity_5g_s_TMSI.presence == true) {
                   ue_context_p->ue_context.Initialue_identity_5g_s_TMSI.amf_set_id = fiveg_s_TMSI >> 38;
                   ue_context_p->ue_context.Initialue_identity_5g_s_TMSI.amf_pointer = (fiveg_s_TMSI >> 32) & 0x3F;
                   ue_context_p->ue_context.Initialue_identity_5g_s_TMSI.fiveg_tmsi = (uint32_t)fiveg_s_TMSI;
@@ -2683,11 +2775,74 @@ rrc_gNB_decode_dcch(
                                     ul_dcch_msg);
       }
 
-      if (ue_context_p->ue_context.established_pdu_sessions_flag == 1) {
-        rrc_gNB_generate_dedicatedRRCReconfiguration(ctxt_pP, ue_context_p);
-      } else {
-        rrc_gNB_generate_defaultRRCReconfiguration(ctxt_pP, ue_context_p);
+      if(!NODE_IS_CU(RC.nrrrc[ctxt_pP->module_id]->node_type)){
+        if (ue_context_p->ue_context.established_pdu_sessions_flag == 1) {
+          rrc_gNB_generate_dedicatedRRCReconfiguration(ctxt_pP, ue_context_p, NULL);
+        } else {
+          rrc_gNB_generate_defaultRRCReconfiguration(ctxt_pP, ue_context_p);
+        }
       }
+      else{
+        /*Generate a UE context setup request message towards the DU to provide the UE
+         *capability info and get the updates on master cell group config from the DU*/
+        MessageDef *message_p;
+        message_p = itti_alloc_new_message (TASK_RRC_GNB, 0, F1AP_UE_CONTEXT_SETUP_REQ);
+        f1ap_ue_context_setup_t *req=&F1AP_UE_CONTEXT_SETUP_REQ (message_p);
+        //UE_IDs will be extracted from F1AP layer
+        req->gNB_CU_ue_id     = 0;
+        req->gNB_DU_ue_id = 0;
+        req->rnti             = ue_context_p->ue_context.rnti;
+        req->mcc              = RC.nrrrc[ctxt_pP->module_id]->configuration.mcc[0];
+        req->mnc              = RC.nrrrc[ctxt_pP->module_id]->configuration.mnc[0];
+        req->mnc_digit_length = RC.nrrrc[ctxt_pP->module_id]->configuration.mnc_digit_length[0];
+        req->nr_cellid        = RC.nrrrc[ctxt_pP->module_id]->nr_cellid;
+
+        if (ue_context_p->ue_context.established_pdu_sessions_flag == 1) {
+          /*Instruction towards the DU for SRB2 configuration*/
+          req->srbs_to_be_setup = malloc(1*sizeof(f1ap_srb_to_be_setup_t));
+          req->srbs_to_be_setup_length = 1;
+          f1ap_srb_to_be_setup_t *SRBs=req->srbs_to_be_setup;
+          SRBs[0].srb_id = 2;
+          SRBs[0].lcid = 2;
+
+          /*Instruction towards the DU for DRB configuration and tunnel creation*/
+          req->drbs_to_be_setup = malloc(1*sizeof(f1ap_drb_to_be_setup_t));
+          req->drbs_to_be_setup_length = 1;
+          f1ap_drb_to_be_setup_t *DRBs=req->drbs_to_be_setup;
+          LOG_I(RRC, "Length of DRB list:%d \n", req->drbs_to_be_setup_length);
+          DRBs[0].drb_id = 1;
+          DRBs[0].rlc_mode = RLC_MODE_AM;
+          DRBs[0].up_ul_tnl[0].tl_address = inet_addr(RC.nrrrc[ctxt_pP->module_id]->eth_params_s.my_addr);
+          DRBs[0].up_ul_tnl[0].port=RC.nrrrc[ctxt_pP->module_id]->eth_params_s.my_portd;
+          DRBs[0].up_ul_tnl_length = 1;
+          DRBs[0].up_dl_tnl[0].tl_address = inet_addr(RC.nrrrc[ctxt_pP->module_id]->eth_params_s.remote_addr);
+          DRBs[0].up_dl_tnl[0].port=RC.nrrrc[ctxt_pP->module_id]->eth_params_s.remote_portd;
+          DRBs[0].up_dl_tnl_length = 1;
+        }
+        if( ul_dcch_msg->message.choice.c1->choice.ueCapabilityInformation->criticalExtensions.present ==
+                NR_UECapabilityInformation__criticalExtensions_PR_ueCapabilityInformation ) {
+          struct NR_UE_CapabilityRAT_ContainerList  *ue_CapabilityRAT_ContainerList =
+              ul_dcch_msg->message.choice.c1->choice.ueCapabilityInformation->criticalExtensions.choice.ueCapabilityInformation->ue_CapabilityRAT_ContainerList;
+          if(ue_CapabilityRAT_ContainerList!=NULL){
+            LOG_I(NR_RRC, "ue_CapabilityRAT_ContainerList is present \n");
+            req->cu_to_du_rrc_information = calloc(1,sizeof(cu_to_du_rrc_information_t));
+            req->cu_to_du_rrc_information->uE_CapabilityRAT_ContainerList = calloc(1,4096);
+            asn_enc_rval_t enc_rval = uper_encode_to_buffer(&asn_DEF_NR_UE_CapabilityRAT_ContainerList,
+              NULL,
+              ue_CapabilityRAT_ContainerList,
+              req->cu_to_du_rrc_information->uE_CapabilityRAT_ContainerList,
+              4096);
+            AssertFatal (enc_rval.encoded > 0, "ASN1 ue_CapabilityRAT_ContainerList encoding failed (%s, %jd)!\n",
+                             enc_rval.failed_type->name, enc_rval.encoded);
+            req->cu_to_du_rrc_information->uE_CapabilityRAT_ContainerList_length = (enc_rval.encoded+7)>>3;
+          }
+          else{
+            LOG_I(NR_RRC, "ue_CapabilityRAT_ContainerList is not present \n");
+          }
+        }
+        itti_send_msg_to_task (TASK_CU_F1, ctxt_pP->module_id, message_p);
+      }
+
 
       break;
 
@@ -2800,11 +2955,8 @@ void rrc_gNB_process_f1_setup_req(f1ap_setup_req_t *f1_setup_req) {
         memset(mib->message.choice.mib,0,sizeof(struct NR_MIB));
         memcpy(mib->message.choice.mib, mib_DU->message.choice.mib, sizeof(struct NR_MIB));
 
-        rrc->carrier.SIB1 = malloc(f1_setup_req->sib1_length[i]);
-        rrc->carrier.sizeof_SIB1 = f1_setup_req->sib1_length[i];
-        memcpy((void *)rrc->carrier.SIB1,f1_setup_req->sib1[i],f1_setup_req->sib1_length[i]);
         dec_rval = uper_decode_complete(NULL,
-                                        &asn_DEF_NR_BCCH_DL_SCH_Message,
+                                        &asn_DEF_NR_SIB1, //&asn_DEF_NR_BCCH_DL_SCH_Message,
                                         (void **)&rrc->carrier.siblock1_DU,
                                         f1_setup_req->sib1[i],
                                         f1_setup_req->sib1_length[i]);
@@ -2814,12 +2966,12 @@ void rrc_gNB_process_f1_setup_req(f1ap_setup_req_t *f1_setup_req) {
                     dec_rval.consumed );
 
         // Parse message and extract SystemInformationBlockType1 field
-        NR_BCCH_DL_SCH_Message_t *bcch_message = rrc->carrier.siblock1_DU;
-        AssertFatal(bcch_message->message.present == NR_BCCH_DL_SCH_MessageType_PR_c1,
-                    "bcch_message->message.present != NR_BCCH_DL_SCH_MessageType_PR_c1\n");
-        AssertFatal(bcch_message->message.choice.c1->present == NR_BCCH_DL_SCH_MessageType__c1_PR_systemInformationBlockType1,
-                    "bcch_message->message.choice.c1->present != NR_BCCH_DL_SCH_MessageType__c1_PR_systemInformationBlockType1\n");
-        rrc->carrier.sib1 = bcch_message->message.choice.c1->choice.systemInformationBlockType1;
+        rrc->carrier.sib1 = rrc->carrier.siblock1_DU;
+        if ( LOG_DEBUGFLAG(DEBUG_ASN1)){
+          LOG_I(NR_RRC, "Printing received SIB1 container inside F1 setup request message:\n");
+          xer_fprint(stdout, &asn_DEF_NR_SIB1,(void *)rrc->carrier.sib1);
+        }
+
         rrc->carrier.physCellId = f1_setup_req->cell[i].nr_pci;
 
 	F1AP_GNB_CU_CONFIGURATION_UPDATE (msg_p2).gNB_CU_name                                = rrc->node_name;
@@ -2877,11 +3029,13 @@ void rrc_gNB_process_dc_overall_timeout(const module_id_t gnb_mod_idP, x2ap_ENDC
 
 static int  rrc_process_DU_DL(MessageDef *msg_p, const char *msg_name, instance_t instance) {
   NRDuDlReq_t * req=&NRDuDlReq(msg_p);
-  protocol_ctxt_t ctxt;
-  ctxt.rnti      = req->rnti;
-  ctxt.module_id = instance;
-  ctxt.instance  = instance;
-  ctxt.enb_flag  = 1;
+  protocol_ctxt_t ctxt = {
+    .rnti = req->rnti,
+    .module_id = instance,
+    .instance  = instance,
+    .enb_flag  = 1,
+    .eNB_index = instance
+  };
   gNB_RRC_INST *rrc = RC.nrrrc[ctxt.module_id];
   struct rrc_gNB_ue_context_s *ue_context_p =
     rrc_gNB_get_ue_context(rrc, ctxt.rnti);
@@ -3082,7 +3236,6 @@ static int  rrc_process_DU_DL(MessageDef *msg_p, const char *msg_name, instance_
   
   LOG_I(F1AP, "Received DL RRC Transfer on srb_id %ld\n", req->srb_id);
   //   rlc_op_status_t    rlc_status;
-  //   boolean_t          ret             = TRUE;
   
   //LOG_I(F1AP, "PRRCContainer size %lu:", ie->value.choice.RRCContainer.size);
   //for (int i = 0; i < ie->value.choice.RRCContainer.size; i++)
@@ -3107,23 +3260,23 @@ static int  rrc_process_DU_DL(MessageDef *msg_p, const char *msg_name, instance_
   //   switch (rlc_status) {
   //     case RLC_OP_STATUS_OK:
   //       //LOG_I(F1AP, "Data sending request over RLC succeeded!\n");
-  //       ret=TRUE;
+  //       ret=true;
   //       break;
   //     case RLC_OP_STATUS_BAD_PARAMETER:
   //       LOG_W(F1AP, "Data sending request over RLC failed with 'Bad Parameter' reason!\n");
-  //       ret= FALSE;
+  //       ret= false;
   //       break;
   //     case RLC_OP_STATUS_INTERNAL_ERROR:
   //       LOG_W(F1AP, "Data sending request over RLC failed with 'Internal Error' reason!\n");
-  //       ret= FALSE;
+  //       ret= false;
   //       break;
   //     case RLC_OP_STATUS_OUT_OF_RESSOURCES:
   //       LOG_W(F1AP, "Data sending request over RLC failed with 'Out of Resources' reason!\n");
-  //       ret= FALSE;
+  //       ret= false;
   //       break;
   //     default:
   //       LOG_W(F1AP, "RLC returned an unknown status code after PDCP placed the order to send some data (Status Code:%d)\n", rlc_status);
-  //       ret= FALSE;
+  //       ret= false;
   //       break;
   //   } // switch case
   //   return ret;
@@ -3133,11 +3286,13 @@ return 0;
 static void rrc_DU_process_ue_context_setup_request(MessageDef *msg_p, const char *msg_name, instance_t instance){
 
   f1ap_ue_context_setup_t * req=&F1AP_UE_CONTEXT_SETUP_REQ(msg_p);
-  protocol_ctxt_t ctxt;
-  ctxt.rnti      = req->rnti;
-  ctxt.module_id = instance;
-  ctxt.instance  = instance;
-  ctxt.enb_flag  = 1;
+  protocol_ctxt_t ctxt = {
+    .rnti = req->rnti,
+    .module_id = instance,
+    .instance  = instance,
+    .enb_flag  = 1,
+    .eNB_index = instance
+  };
   gNB_RRC_INST *rrc = RC.nrrrc[ctxt.module_id];
   gNB_MAC_INST *mac = RC.nrmac[ctxt.module_id];
   struct rrc_gNB_ue_context_s *ue_context_p =
@@ -3147,10 +3302,97 @@ static void rrc_DU_process_ue_context_setup_request(MessageDef *msg_p, const cha
   f1ap_ue_context_setup_t * resp=&F1AP_UE_CONTEXT_SETUP_RESP(message_p);
   uint32_t incoming_teid = 0;
 
+  if(req->cu_to_du_rrc_information!=NULL){
+    if(req->cu_to_du_rrc_information->uE_CapabilityRAT_ContainerList!=NULL){
+      LOG_I(NR_RRC, "Length of ue_CapabilityRAT_ContainerList is: %d \n", (int) req->cu_to_du_rrc_information->uE_CapabilityRAT_ContainerList_length);
+      struct NR_UE_CapabilityRAT_ContainerList  *ue_CapabilityRAT_ContainerList = NULL;
+      asn_dec_rval_t dec_rval = uper_decode_complete( NULL,
+          &asn_DEF_NR_UE_CapabilityRAT_ContainerList,
+          (void **)&ue_CapabilityRAT_ContainerList,
+          (uint8_t *)req->cu_to_du_rrc_information->uE_CapabilityRAT_ContainerList,
+          (int) req->cu_to_du_rrc_information->uE_CapabilityRAT_ContainerList_length);
+
+      if ((dec_rval.code != RC_OK) && (dec_rval.consumed == 0)) {
+        AssertFatal(1==0,"UE Capability RAT ContainerList decode error\n");
+        // free the memory
+        SEQUENCE_free( &asn_DEF_NR_UE_CapabilityRAT_ContainerList, ue_CapabilityRAT_ContainerList, 1 );
+        return;
+      }
+      //To fill ue_context.UE_Capability_MRDC, ue_context.UE_Capability_nr ...
+      int NR_index = -1;
+      for(int i = 0;i < ue_CapabilityRAT_ContainerList->list.count; i++){
+        if(ue_CapabilityRAT_ContainerList->list.array[i]->rat_Type ==
+          NR_RAT_Type_nr){
+          LOG_I(NR_RRC, "DU received NR_RAT_Type_nr UE capabilities Info through the UE Context Setup Request from the CU \n");
+          if(ue_context_p->ue_context.UE_Capability_nr){
+            ASN_STRUCT_FREE(asn_DEF_NR_UE_NR_Capability,ue_context_p->ue_context.UE_Capability_nr);
+            ue_context_p->ue_context.UE_Capability_nr = 0;
+          }
+
+          dec_rval = uper_decode(NULL,
+                                  &asn_DEF_NR_UE_NR_Capability,
+                                  (void**)&ue_context_p->ue_context.UE_Capability_nr,
+                                  ue_CapabilityRAT_ContainerList->list.array[i]->ue_CapabilityRAT_Container.buf,
+                                  ue_CapabilityRAT_ContainerList->list.array[i]->ue_CapabilityRAT_Container.size,
+                                  0,0);
+          if(LOG_DEBUGFLAG(DEBUG_ASN1)){
+            xer_fprint(stdout,&asn_DEF_NR_UE_NR_Capability,ue_context_p->ue_context.UE_Capability_nr);
+          }
+
+          if((dec_rval.code != RC_OK) && (dec_rval.consumed == 0)){
+            LOG_E(NR_RRC, PROTOCOL_NR_RRC_CTXT_UE_FMT" Failed to decode nr UE capabilities (%zu bytes)\n",
+            PROTOCOL_NR_RRC_CTXT_UE_ARGS(&ctxt),dec_rval.consumed);
+            ASN_STRUCT_FREE(asn_DEF_NR_UE_NR_Capability,ue_context_p->ue_context.UE_Capability_nr);
+            ue_context_p->ue_context.UE_Capability_nr = 0;
+          }
+
+          ue_context_p->ue_context.UE_Capability_size =
+          ue_CapabilityRAT_ContainerList->list.array[i]->ue_CapabilityRAT_Container.size;
+          if(NR_index != -1){
+            LOG_E(NR_RRC,"fatal: more than 1 eutra capability\n");
+            exit(1);
+          }
+          NR_index = i;
+        }
+
+        if(ue_CapabilityRAT_ContainerList->list.array[i]->rat_Type ==
+        NR_RAT_Type_eutra_nr){
+          LOG_I(NR_RRC, "DU received NR_RAT_Type_eutra_nr UE capabilities Info through the UE Context Setup Request from the CU \n");
+          if(ue_context_p->ue_context.UE_Capability_MRDC){
+            ASN_STRUCT_FREE(asn_DEF_NR_UE_MRDC_Capability,ue_context_p->ue_context.UE_Capability_MRDC);
+            ue_context_p->ue_context.UE_Capability_MRDC = 0;
+          }
+          dec_rval = uper_decode(NULL,
+              &asn_DEF_NR_UE_MRDC_Capability,
+              (void**)&ue_context_p->ue_context.UE_Capability_MRDC,
+              ue_CapabilityRAT_ContainerList->list.array[i]->ue_CapabilityRAT_Container.buf,
+              ue_CapabilityRAT_ContainerList->list.array[i]->ue_CapabilityRAT_Container.size,
+              0,0);
+          if(LOG_DEBUGFLAG(DEBUG_ASN1)){
+            xer_fprint(stdout,&asn_DEF_NR_UE_MRDC_Capability,ue_context_p->ue_context.UE_Capability_MRDC);
+          }
+
+          if((dec_rval.code != RC_OK) && (dec_rval.consumed == 0)){
+            LOG_E(NR_RRC,PROTOCOL_NR_RRC_CTXT_FMT" Failed to decode nr UE capabilities (%zu bytes)\n",
+              PROTOCOL_NR_RRC_CTXT_UE_ARGS(&ctxt),dec_rval.consumed);
+            ASN_STRUCT_FREE(asn_DEF_NR_UE_MRDC_Capability,ue_context_p->ue_context.UE_Capability_MRDC);
+            ue_context_p->ue_context.UE_Capability_MRDC = 0;
+          }
+          ue_context_p->ue_context.UE_MRDC_Capability_size =
+          ue_CapabilityRAT_ContainerList->list.array[i]->ue_CapabilityRAT_Container.size;
+        }
+
+        if(ue_CapabilityRAT_ContainerList->list.array[i]->rat_Type ==
+        NR_RAT_Type_eutra){
+          //TODO
+        }
+      }
+    }
+  }
 
-  NR_CellGroupConfig_t *cellGroupConfig;
-  cellGroupConfig = calloc(1, sizeof(NR_CellGroupConfig_t));
-  fill_mastercellGroupConfig(cellGroupConfig, ue_context_p->ue_context.masterCellGroup,rrc->um_on_default_drb);
+  uint8_t drb_id_to_setup_start = 0;
+  uint8_t nb_drb_to_setup = 0;
+  long drb_priority[1] = {13}; // For now, we assume only one drb per pdu sessions with a default preiority (will be dynamique in future)
 
   /* Configure SRB2 */
   NR_SRB_ToAddMod_t            *SRB2_config          = NULL;
@@ -3179,6 +3421,7 @@ static void rrc_DU_process_ue_context_setup_request(MessageDef *msg_p, const cha
       ue_context_p->ue_context.DRB_configList = CALLOC(1, sizeof(*ue_context_p->ue_context.DRB_configList));
     }
     DRB_configList = ue_context_p->ue_context.DRB_configList;
+    nb_drb_to_setup = req->drbs_to_be_setup_length;
     for (int i=0; i<req->drbs_to_be_setup_length; i++){
       DRB_config = CALLOC(1, sizeof(*DRB_config));
       DRB_config->drb_Identity = req->drbs_to_be_setup[i].drb_id;
@@ -3188,18 +3431,39 @@ static void rrc_DU_process_ue_context_setup_request(MessageDef *msg_p, const cha
       memcpy(addr.buffer, &drb_p.up_ul_tnl[0].tl_address, sizeof(drb_p.up_ul_tnl[0].tl_address));
       addr.length=sizeof(drb_p.up_ul_tnl[0].tl_address)*8;
       extern instance_t DUuniqInstance;
-      incoming_teid=newGtpuCreateTunnel(DUuniqInstance,
-          req->rnti,
-          drb_p.drb_id,
-          drb_p.drb_id,
-          drb_p.up_ul_tnl[0].teid,
-          addr,
-          drb_p.up_ul_tnl[0].port,
-          DURecvCb);
+      if (!drb_id_to_setup_start) drb_id_to_setup_start = drb_p.drb_id;
+      incoming_teid = newGtpuCreateTunnel(DUuniqInstance,
+                                          req->rnti,
+                                          drb_p.drb_id,
+                                          drb_p.drb_id,
+                                          drb_p.up_ul_tnl[0].teid,
+                                          -1, // no qfi
+                                          addr,
+                                          drb_p.up_ul_tnl[0].port,
+                                          DURecvCb,
+                                          NULL);
     }
   }
 
+  NR_CellGroupConfig_t *cellGroupConfig = calloc(1, sizeof(NR_CellGroupConfig_t));
+  if (req->srbs_to_be_setup_length > 0 || req->drbs_to_be_setup_length>0)
+    // FIXME: fill_mastercellGroupConfig() won't fill the right priorities or
+    // bearer IDs for the DRBs
+    fill_mastercellGroupConfig(cellGroupConfig, ue_context_p->ue_context.masterCellGroup, rrc->um_on_default_drb, SRB2_config ? 1 : 0, drb_id_to_setup_start, nb_drb_to_setup, drb_priority);
+
   apply_macrlc_config(rrc, ue_context_p, &ctxt);
+  
+  if(req->rrc_container_length > 0){
+    mem_block_t *pdcp_pdu_p = get_free_mem_block(req->rrc_container_length, __func__);
+    memcpy(&pdcp_pdu_p->data[0], req->rrc_container, req->rrc_container_length);
+    du_rlc_data_req(&ctxt, 1, 0x00, 1, 1, 0, req->rrc_container_length, pdcp_pdu_p);
+    LOG_I(F1AP, "Printing RRC Container of UE context setup request: \n");
+    for (int j=0; j<req->rrc_container_length; j++){
+      printf("%02x ", pdcp_pdu_p->data[j]);
+    }
+    printf("\n");
+  }
+
   /* Fill the UE context setup response ITTI message to send to F1AP */
   resp->gNB_CU_ue_id = req->gNB_CU_ue_id;
   resp->rnti = ctxt.rnti;
@@ -3234,25 +3498,188 @@ static void rrc_DU_process_ue_context_setup_request(MessageDef *msg_p, const cha
   else{
     LOG_W(NR_RRC, "No SRB added upon reception of F1 UE Context setup request at the DU\n");
   }
-  resp->du_to_cu_rrc_information = calloc(1,1024*sizeof(uint8_t));
+  /* fixme:
+   * Here we should be encoding the updates on cellgroupconfig based on the content of UE capabilities
+   */
+  resp->du_to_cu_rrc_information = calloc(1, sizeof(du_to_cu_rrc_information_t));
+  resp->du_to_cu_rrc_information->cellGroupConfig = calloc(1,1024);
   asn_enc_rval_t enc_rval = uper_encode_to_buffer(&asn_DEF_NR_CellGroupConfig,
                                 NULL,
-                                (void *)cellGroupConfig,
-                                resp->du_to_cu_rrc_information,
+                                ue_context_p->ue_context.masterCellGroup, //(void *)cellGroupConfig,
+                                resp->du_to_cu_rrc_information->cellGroupConfig,
                                 1024);
-  resp->du_to_cu_rrc_information_length = (enc_rval.encoded+7)>>3;
+  if (enc_rval.encoded == -1) {
+        LOG_E(F1AP,"Could not encode ue_context.masterCellGroup, failed element %s\n",enc_rval.failed_type->name);
+        exit(-1);
+  }
+  resp->du_to_cu_rrc_information->cellGroupConfig_length = (enc_rval.encoded+7)>>3;
   free(cellGroupConfig);
   itti_send_msg_to_task (TASK_DU_F1, ctxt.module_id, message_p);
 }
 
+static void rrc_DU_process_ue_context_modification_request(MessageDef *msg_p, const char *msg_name, instance_t instance){
+
+  f1ap_ue_context_setup_t * req=&F1AP_UE_CONTEXT_MODIFICATION_REQ(msg_p);
+  protocol_ctxt_t ctxt = {
+    .rnti = req->rnti,
+    .module_id = instance,
+    .instance  = instance,
+    .enb_flag  = 1,
+    .eNB_index = instance
+  };
+  gNB_RRC_INST *rrc = RC.nrrrc[ctxt.module_id];
+  gNB_MAC_INST *mac = RC.nrmac[ctxt.module_id];
+  struct rrc_gNB_ue_context_s *ue_context_p =
+      rrc_gNB_get_ue_context(rrc, ctxt.rnti);
+  MessageDef *message_p;
+  message_p = itti_alloc_new_message (TASK_RRC_GNB, 0, F1AP_UE_CONTEXT_MODIFICATION_RESP);
+  f1ap_ue_context_setup_t * resp=&F1AP_UE_CONTEXT_MODIFICATION_RESP(message_p);
+  uint32_t incoming_teid = 0;
+  NR_CellGroupConfig_t *cellGroupConfig = NULL;
+
+  /* Configure SRB2 */
+  NR_SRB_ToAddMod_t            *SRB2_config          = NULL;
+  NR_SRB_ToAddModList_t        *SRB_configList       = NULL;
+  uint8_t SRBs_before_new_addition = 0;
+
+  if(req->srbs_to_be_setup_length>0){
+    if(ue_context_p->ue_context.SRB_configList == NULL){
+      LOG_W(NR_RRC, "The SRB list of the UE context is empty before the addition of new SRB at the DU \n");
+      ue_context_p->ue_context.SRB_configList = CALLOC(1, sizeof(*ue_context_p->ue_context.SRB_configList));
+    }
+    SRB_configList = ue_context_p->ue_context.SRB_configList;
+    SRBs_before_new_addition = SRB_configList->list.count;
+    for (int i=0; i<req->srbs_to_be_setup_length; i++){
+      SRB2_config = CALLOC(1, sizeof(*SRB2_config));
+      SRB2_config->srb_Identity = req->srbs_to_be_setup[i].srb_id;
+      ASN_SEQUENCE_ADD(&SRB_configList->list, SRB2_config);
+    }
+  }
+
+  /* Configure DRB */
+  NR_DRB_ToAddMod_t            *DRB_config          = NULL;
+  NR_DRB_ToAddModList_t        *DRB_configList      = NULL;
+  if(req->drbs_to_be_setup_length>0){
+    if(ue_context_p->ue_context.DRB_configList == NULL){
+      ue_context_p->ue_context.DRB_configList = CALLOC(1, sizeof(*ue_context_p->ue_context.DRB_configList));
+    }
+    DRB_configList = ue_context_p->ue_context.DRB_configList;
+    for (int i=0; i<req->drbs_to_be_setup_length; i++){
+      DRB_config = CALLOC(1, sizeof(*DRB_config));
+      DRB_config->drb_Identity = req->drbs_to_be_setup[i].drb_id;
+      ASN_SEQUENCE_ADD(&DRB_configList->list, DRB_config);
+      f1ap_drb_to_be_setup_t drb_p = req->drbs_to_be_setup[i];
+      transport_layer_addr_t addr;
+      memcpy(addr.buffer, &drb_p.up_ul_tnl[0].tl_address, sizeof(drb_p.up_ul_tnl[0].tl_address));
+      addr.length=sizeof(drb_p.up_ul_tnl[0].tl_address)*8;
+      extern instance_t DUuniqInstance;
+      incoming_teid = newGtpuCreateTunnel(DUuniqInstance,
+                                          req->rnti,
+                                          drb_p.drb_id,
+                                          drb_p.drb_id,
+                                          drb_p.up_ul_tnl[0].teid,
+                                          -1, // no qfi
+                                          addr,
+                                          drb_p.up_ul_tnl[0].port,
+                                          DURecvCb,
+                                          NULL);
+    }
+  }
+
+  if(req->srbs_to_be_setup_length>0 || req->drbs_to_be_setup_length>0){
+    cellGroupConfig = calloc(1, sizeof(NR_CellGroupConfig_t));
+    uint8_t drb_id_to_setup_start = 1;
+    long drb_priority[1] = {13}; // For now, we assume only one drb per pdu sessions with a default preiority (will be dynamique in future)
+    fill_mastercellGroupConfig(cellGroupConfig,
+                               ue_context_p->ue_context.masterCellGroup,
+                               rrc->um_on_default_drb,
+                               drb_id_to_setup_start < 2 ? 1 : 0,
+                               drb_id_to_setup_start,
+                               req->drbs_to_be_setup_length,
+                               drb_priority);
+     apply_macrlc_config(rrc, ue_context_p, &ctxt);
+  }
+  if(req->ReconfigComplOutcome == RRCreconf_failure){
+    LOG_W(NR_RRC, "CU reporting RRC Reconfiguration failure \n");
+  }
+  else if(req->ReconfigComplOutcome == RRCreconf_success){
+    LOG_I(NR_RRC, "CU reporting RRC Reconfiguration success \n");
+    if(ue_context_p->ue_context.DRB_configList!=NULL){
+      LOG_I(NR_RRC, "Send first DDD buffer status reporting towards the CU through an ITTI message to gtp-u \n");
+      uint8_t drb_id = ue_context_p->ue_context.DRB_configList->list.array[0]->drb_Identity;
+      rnti_t rnti   = ue_context_p->ue_context.rnti;
+      int rlc_tx_buffer_space = nr_rlc_get_available_tx_space(rnti, drb_id);
+      LOG_I(NR_RRC, "Reported in DDD drb_id:%d, rnti:%d\n", drb_id, rnti);
+      MessageDef *msg = itti_alloc_new_message_sized(TASK_RRC_GNB, 0, GTPV1U_DU_BUFFER_REPORT_REQ,
+                                     sizeof(gtpv1u_gnb_tunnel_data_req_t));
+      gtpv1u_DU_buffer_report_req_t *req=&GTPV1U_DU_BUFFER_REPORT_REQ(msg);
+      req->pdusession_id = drb_id;
+      req->rnti = rnti;
+      req->buffer_availability = rlc_tx_buffer_space; //10000000; //Hardcoding to be removed and read the actual RLC buffer availability instead
+      extern instance_t DUuniqInstance;
+      itti_send_msg_to_task(TASK_GTPV1_U, DUuniqInstance, msg);
+
+    }
+  }
+
+  /* Fill the UE context setup response ITTI message to send to F1AP */
+  resp->gNB_CU_ue_id = req->gNB_CU_ue_id;
+  resp->rnti = ctxt.rnti;
+  if(DRB_configList){
+    if(DRB_configList->list.count > 0){
+      resp->drbs_to_be_setup = calloc(1,DRB_configList->list.count*sizeof(f1ap_drb_to_be_setup_t));
+      resp->drbs_to_be_setup_length = DRB_configList->list.count;
+      for (int i=0; i<DRB_configList->list.count; i++){
+        resp->drbs_to_be_setup[i].drb_id = DRB_configList->list.array[i]->drb_Identity;
+        resp->drbs_to_be_setup[i].rlc_mode = RLC_MODE_AM;
+        resp->drbs_to_be_setup[i].up_dl_tnl[0].teid = incoming_teid;
+        resp->drbs_to_be_setup[i].up_dl_tnl[0].tl_address = inet_addr(mac->eth_params_n.my_addr);
+        resp->drbs_to_be_setup[i].up_dl_tnl_length = 1;
+      }
+    }
+    else{
+      LOG_W(NR_RRC, "No DRB added upon reception of F1 UE context modification request with a DRB to setup list\n");
+    }
+  }
+  if(SRB_configList){
+    if(SRB_configList->list.count >0 && SRBs_before_new_addition < SRB_configList->list.count){
+      resp->srbs_to_be_setup = calloc(1,req->srbs_to_be_setup_length*sizeof(f1ap_srb_to_be_setup_t));
+      resp->srbs_to_be_setup_length = req->srbs_to_be_setup_length;
+      for (int i=SRBs_before_new_addition; i<SRB_configList->list.count; i++){
+        resp->srbs_to_be_setup[i-SRBs_before_new_addition].srb_id = SRB_configList->list.array[i]->srb_Identity;
+      }
+    }
+    else{
+      LOG_W(NR_RRC, "No SRB added upon reception of F1 UE Context modification request at the DU\n");
+    }
+  }
+  else{
+    LOG_W(NR_RRC, "No SRB added upon reception of F1 UE Context modification request at the DU\n");
+  }
+
+  //if(cellGroupConfig != NULL) {
+    resp->du_to_cu_rrc_information = calloc(1,sizeof(du_to_cu_rrc_information_t));
+    resp->du_to_cu_rrc_information->cellGroupConfig = calloc(1,1024);
+    asn_enc_rval_t enc_rval = uper_encode_to_buffer(&asn_DEF_NR_CellGroupConfig,
+                                NULL,
+                                ue_context_p->ue_context.masterCellGroup, //(void *)cellGroupConfig,
+                                resp->du_to_cu_rrc_information->cellGroupConfig,
+                                1024);
+    resp->du_to_cu_rrc_information->cellGroupConfig_length = (enc_rval.encoded+7)>>3;
+  //}
+  itti_send_msg_to_task (TASK_DU_F1, ctxt.module_id, message_p);
+}
+
 static void rrc_CU_process_ue_context_setup_response(MessageDef *msg_p, const char *msg_name, instance_t instance){
 
   f1ap_ue_context_setup_t * resp=&F1AP_UE_CONTEXT_SETUP_RESP(msg_p);
-  protocol_ctxt_t ctxt;
-  ctxt.rnti      = resp->rnti;
-  ctxt.module_id = instance;
-  ctxt.instance  = instance;
-  ctxt.enb_flag  = 1;
+  protocol_ctxt_t ctxt = {
+    .rnti = resp->rnti,
+    .module_id = instance,
+    .instance  = instance,
+    .enb_flag  = 1,
+    .eNB_index = instance
+  };
   gNB_RRC_INST *rrc = RC.nrrrc[ctxt.module_id];
   struct rrc_gNB_ue_context_s *ue_context_p = rrc_gNB_get_ue_context(rrc, ctxt.rnti);
   NR_CellGroupConfig_t *cellGroupConfig = NULL;
@@ -3260,8 +3687,8 @@ static void rrc_CU_process_ue_context_setup_response(MessageDef *msg_p, const ch
   asn_dec_rval_t dec_rval = uper_decode_complete( NULL,
     &asn_DEF_NR_CellGroupConfig,
     (void **)&cellGroupConfig,
-    (uint8_t *)resp->du_to_cu_rrc_information,
-    (int) resp->du_to_cu_rrc_information_length);
+    (uint8_t *)resp->du_to_cu_rrc_information->cellGroupConfig,
+    (int) resp->du_to_cu_rrc_information->cellGroupConfig_length);
 
   if ((dec_rval.code != RC_OK) && (dec_rval.consumed == 0)) {
     AssertFatal(1==0,"Cell group config decode error\n");
@@ -3276,20 +3703,90 @@ static void rrc_CU_process_ue_context_setup_response(MessageDef *msg_p, const ch
   }
   if(cellGroupConfig->rlc_BearerToAddModList!=NULL){
     if(ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList != NULL){
-      LOG_I(NR_RRC, "rlc_BearerToAddModList not empty before filling it \n");
-      free(ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList);
+      int ue_ctxt_rlc_Bearers = ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList->list.count;
+      for(int i=ue_ctxt_rlc_Bearers; i<ue_ctxt_rlc_Bearers + cellGroupConfig->rlc_BearerToAddModList->list.count; i++){
+        ASN_SEQUENCE_ADD(&ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList->list,
+          cellGroupConfig->rlc_BearerToAddModList->list.array[i-ue_ctxt_rlc_Bearers]);
+      }
     }
-    ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList = calloc(1, sizeof(*cellGroupConfig->rlc_BearerToAddModList));
-    memcpy(ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList, cellGroupConfig->rlc_BearerToAddModList,
+    else{
+      LOG_W(NR_RRC, "Empty rlc_BearerToAddModList at ue_context of the CU before filling the updates from UE context setup response \n");
+      ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList = calloc(1, sizeof(*cellGroupConfig->rlc_BearerToAddModList));
+      memcpy(ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList, cellGroupConfig->rlc_BearerToAddModList,
         sizeof(*cellGroupConfig->rlc_BearerToAddModList));
+    }
   }
   xer_fprint(stdout,&asn_DEF_NR_CellGroupConfig, ue_context_p->ue_context.masterCellGroup);
 
+  if (ue_context_p->ue_context.established_pdu_sessions_flag == 1) {
+    rrc_gNB_generate_dedicatedRRCReconfiguration(&ctxt, ue_context_p, cellGroupConfig);
+  } else {
+    rrc_gNB_generate_defaultRRCReconfiguration(&ctxt, ue_context_p);
+  }
+
   free(cellGroupConfig->rlc_BearerToAddModList);
   free(cellGroupConfig);
 
 }
 
+static void rrc_CU_process_ue_context_modification_response(MessageDef *msg_p, const char *msg_name, instance_t instance){
+
+  f1ap_ue_context_setup_t * resp=&F1AP_UE_CONTEXT_SETUP_RESP(msg_p);
+  protocol_ctxt_t ctxt = {
+    .rnti = resp->rnti,
+    .module_id = instance,
+    .instance  = instance,
+    .enb_flag  = 1,
+    .eNB_index = instance
+  };
+  gNB_RRC_INST *rrc = RC.nrrrc[ctxt.module_id];
+  struct rrc_gNB_ue_context_s *ue_context_p = rrc_gNB_get_ue_context(rrc, ctxt.rnti);
+  NR_CellGroupConfig_t *cellGroupConfig = NULL;
+
+  if(resp->du_to_cu_rrc_information->cellGroupConfig!=NULL){
+    asn_dec_rval_t dec_rval = uper_decode_complete( NULL,
+      &asn_DEF_NR_CellGroupConfig,
+      (void **)&cellGroupConfig,
+      (uint8_t *)resp->du_to_cu_rrc_information->cellGroupConfig,
+      (int) resp->du_to_cu_rrc_information->cellGroupConfig_length);
+
+    if((dec_rval.code != RC_OK) && (dec_rval.consumed == 0)) {
+      AssertFatal(1==0,"Cell group config decode error\n");
+      // free the memory
+      SEQUENCE_free( &asn_DEF_NR_CellGroupConfig, cellGroupConfig, 1 );
+      return;
+    }
+    //xer_fprint(stdout,&asn_DEF_NR_CellGroupConfig, cellGroupConfig);
+
+    if(ue_context_p->ue_context.masterCellGroup == NULL){
+      ue_context_p->ue_context.masterCellGroup = calloc(1, sizeof(NR_CellGroupConfig_t));
+    }
+
+    if(cellGroupConfig->rlc_BearerToAddModList!=NULL){
+      if(ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList != NULL){
+        int ue_ctxt_rlc_Bearers = ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList->list.count;
+        for(int i=ue_ctxt_rlc_Bearers; i<ue_ctxt_rlc_Bearers + cellGroupConfig->rlc_BearerToAddModList->list.count; i++){
+          ASN_SEQUENCE_ADD(&ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList->list,
+              cellGroupConfig->rlc_BearerToAddModList->list.array[i-ue_ctxt_rlc_Bearers]);
+        }
+      }
+      else{
+        LOG_W(NR_RRC, "Empty rlc_BearerToAddModList at ue_context of the CU before filling the updates from UE context setup response \n");
+        ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList = calloc(1, sizeof(*cellGroupConfig->rlc_BearerToAddModList));
+        memcpy(ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList, cellGroupConfig->rlc_BearerToAddModList,
+          sizeof(*cellGroupConfig->rlc_BearerToAddModList));
+      }
+    }
+    LOG_I(NR_RRC, "Updated master cell group configuration stored at the UE context of the CU:\n");
+    xer_fprint(stdout,&asn_DEF_NR_CellGroupConfig, ue_context_p->ue_context.masterCellGroup);
+
+    rrc_gNB_generate_dedicatedRRCReconfiguration(&ctxt, ue_context_p, cellGroupConfig);
+
+    free(cellGroupConfig->rlc_BearerToAddModList);
+    free(cellGroupConfig);
+  }
+}
+
 unsigned int mask_flip(unsigned int x) {
   return((((x>>8) + (x<<8))&0xffff)>>6);
 }
@@ -3451,9 +3948,10 @@ void nr_rrc_subframe_process(protocol_ctxt_t *const ctxt_pP, const int CC_id) {
   FILE *fd=NULL;//fopen("nrRRCstats.log","w");
   RB_FOREACH(ue_context_p, rrc_nr_ue_tree_s, &(RC.nrrrc[ctxt_pP->module_id]->rrc_ue_head)) {
     ctxt_pP->rnti = ue_context_p->ue_id_rnti;
+    gNB_MAC_INST *nrmac=RC.nrmac[ctxt_pP->module_id]; //WHAT A BEAUTIFULL RACE CONDITION !!!
 
     if (fd) {
-      if (ue_context_p->ue_context.Initialue_identity_5g_s_TMSI.presence == TRUE) {
+      if (ue_context_p->ue_context.Initialue_identity_5g_s_TMSI.presence == true) {
         fprintf(fd,"NR RRC UE rnti %x: S-TMSI %x failure timer %d/8\n",
                 ue_context_p->ue_id_rnti,
                 ue_context_p->ue_context.Initialue_identity_5g_s_TMSI.fiveg_tmsi,
@@ -3490,15 +3988,27 @@ void nr_rrc_subframe_process(protocol_ctxt_t *const ctxt_pP, const int CC_id) {
 
         // Remove here the MAC and RRC context when RRC is not connected or gNB is not connected to CN5G
         if(ue_context_p->ue_context.StatusRrc < NR_RRC_CONNECTED || ue_context_p->ue_context.gNB_ue_ngap_id == 0) {
-          mac_remove_nr_ue(ctxt_pP->module_id, ctxt_pP->rnti);
-          rrc_rlc_remove_ue(ctxt_pP);
-          pdcp_remove_UE(ctxt_pP);
-
-          /* remove RRC UE Context */
-          ue_context_p = rrc_gNB_get_ue_context(RC.nrrrc[ctxt_pP->module_id], ctxt_pP->rnti);
-          if (ue_context_p) {
-            rrc_gNB_remove_ue_context(ctxt_pP, RC.nrrrc[ctxt_pP->module_id], ue_context_p);
-            LOG_I(NR_RRC, "remove UE %x \n", ctxt_pP->rnti);
+          if(!NODE_IS_CU(RC.nrrrc[ctxt_pP->instance]->node_type)){
+            mac_remove_nr_ue(nrmac, ctxt_pP->rnti);
+            rrc_rlc_remove_ue(ctxt_pP);
+            pdcp_remove_UE(ctxt_pP);
+
+            /* remove RRC UE Context */
+            ue_context_p = rrc_gNB_get_ue_context(RC.nrrrc[ctxt_pP->module_id], ctxt_pP->rnti);
+            if (ue_context_p) {
+              rrc_gNB_remove_ue_context(ctxt_pP, RC.nrrrc[ctxt_pP->module_id], ue_context_p);
+              LOG_I(NR_RRC, "remove UE %x \n", ctxt_pP->rnti);
+            }
+          }
+          // In case of CU trigger UE context release command towards the DU
+          else{
+            MessageDef *message_p;
+            message_p = itti_alloc_new_message (TASK_RRC_GNB, 0, F1AP_UE_CONTEXT_RELEASE_CMD);
+            f1ap_ue_context_release_cmd_t *rel_cmd=&F1AP_UE_CONTEXT_RELEASE_CMD (message_p);
+            rel_cmd->rnti = ctxt_pP->rnti;
+            rel_cmd->cause = F1AP_CAUSE_RADIO_NETWORK;
+            rel_cmd->cause_value = 10; // 10 = F1AP_CauseRadioNetwork_normal_release
+            itti_send_msg_to_task(TASK_CU_F1, ctxt_pP->module_id, message_p);
           }
         }
 
@@ -3514,7 +4024,7 @@ void nr_rrc_subframe_process(protocol_ctxt_t *const ctxt_pP, const int CC_id) {
               ue_context_p->ue_context.rnti);
         ue_context_p->ue_context.ue_release_timer_rrc = 0;
 
-        mac_remove_nr_ue(ctxt_pP->module_id, ctxt_pP->rnti);
+        mac_remove_nr_ue(nrmac, ctxt_pP->rnti);
         rrc_rlc_remove_ue(ctxt_pP);
         pdcp_remove_UE(ctxt_pP);
         newGtpuDeleteAllTunnels(ctxt_pP->instance, ctxt_pP->rnti);
@@ -3533,7 +4043,6 @@ void nr_rrc_subframe_process(protocol_ctxt_t *const ctxt_pP, const int CC_id) {
 
   if (fd) fclose(fd);
 
-
   /* send a tick to x2ap */
   if (is_x2ap_enabled()){
     msg = itti_alloc_new_message(TASK_RRC_ENB, 0, X2AP_SUBFRAME_PROCESS);
@@ -3685,17 +4194,30 @@ void *rrc_gnb_task(void *args_p) {
         rrc_gNB_process_f1_setup_req(&F1AP_SETUP_REQ(msg_p));
         break;
 	
-    case NR_DU_RRC_DL_INDICATION:
-      rrc_process_DU_DL(msg_p, msg_name_p, instance);
-      break;
+      case NR_DU_RRC_DL_INDICATION:
+        rrc_process_DU_DL(msg_p, msg_name_p, instance);
+        break;
       
-    case F1AP_UE_CONTEXT_SETUP_REQ:
-      rrc_DU_process_ue_context_setup_request(msg_p, msg_name_p, instance);
-      break;
+      case F1AP_UE_CONTEXT_SETUP_REQ:
+        rrc_DU_process_ue_context_setup_request(msg_p, msg_name_p, instance);
+        break;
 
-    case F1AP_UE_CONTEXT_SETUP_RESP:
-      rrc_CU_process_ue_context_setup_response(msg_p, msg_name_p, instance);
-      break;
+      case F1AP_UE_CONTEXT_SETUP_RESP:
+        rrc_CU_process_ue_context_setup_response(msg_p, msg_name_p, instance);
+        break;
+
+      case F1AP_UE_CONTEXT_MODIFICATION_RESP:
+        rrc_CU_process_ue_context_modification_response(msg_p, msg_name_p, instance);
+        break;
+
+      case F1AP_UE_CONTEXT_MODIFICATION_REQ:
+        rrc_DU_process_ue_context_modification_request(msg_p, msg_name_p, instance);
+        break;
+
+      case F1AP_UE_CONTEXT_RELEASE_CMD:
+        LOG_W(NR_RRC, "Received F1AP_UE_CONTEXT_RELEASE_CMD for processing at the RRC layer of the DU. Processing function "
+            "implementation is pending\n");
+        break;
 
       /* Messages from X2AP */
       case X2AP_ENDC_SGNB_ADDITION_REQ:
@@ -3966,5 +4488,6 @@ void nr_rrc_trigger(protocol_ctxt_t *ctxt, int CC_id, int frame, int subframe)
   message_p = itti_alloc_new_message(TASK_RRC_GNB, 0, RRC_SUBFRAME_PROCESS);
   RRC_SUBFRAME_PROCESS(message_p).ctxt  = *ctxt;
   RRC_SUBFRAME_PROCESS(message_p).CC_id = CC_id;
+  LOG_D(NR_RRC, "Time in RRC: %u/ %u \n", frame, subframe);
   itti_send_msg_to_task(TASK_RRC_GNB, ctxt->module_id, message_p);
 }
diff --git a/openair2/RRC/NR/rrc_gNB_NGAP.c b/openair2/RRC/NR/rrc_gNB_NGAP.c
index c73c3d9649d..8e1975ea119 100644
--- a/openair2/RRC/NR/rrc_gNB_NGAP.c
+++ b/openair2/RRC/NR/rrc_gNB_NGAP.c
@@ -307,7 +307,6 @@ nr_rrc_pdcp_config_security(
   //uint8_t                            *k_kdf  = NULL;
   static int                          print_keys= 1;
 
-
   /* Derive the keys from kgnb */
   if (SRB_configList != NULL) {
     nr_derive_key_up_enc(ue_context_pP->ue_context.ciphering_algorithm,
@@ -475,7 +474,6 @@ rrc_gNB_process_NGAP_INITIAL_CONTEXT_SETUP_REQ(
     rrc_gNB_ue_context_t            *ue_context_p = NULL;
     protocol_ctxt_t                 ctxt={0};
     uint8_t                         pdu_sessions_done = 0;
-    gtpv1u_gnb_create_tunnel_req_t  create_tunnel_req;
     gtpv1u_gnb_create_tunnel_resp_t create_tunnel_resp;
     uint8_t                         inde_list[NR_NB_RB_MAX - 3]= {0};
     int                             ret = 0;
@@ -504,7 +502,7 @@ rrc_gNB_process_NGAP_INITIAL_CONTEXT_SETUP_REQ(
 
       uint8_t nb_pdusessions_tosetup = NGAP_INITIAL_CONTEXT_SETUP_REQ (msg_p).nb_of_pdusessions;
       if (nb_pdusessions_tosetup != 0) {
-        memset(&create_tunnel_req, 0, sizeof(gtpv1u_gnb_create_tunnel_req_t));
+        gtpv1u_gnb_create_tunnel_req_t  create_tunnel_req={0};
         for (int i = 0; i < NR_NB_RB_MAX - 3; i++) {
           if(ue_context_p->ue_context.pduSession[i].status >= PDU_SESSION_STATUS_DONE)
             continue;
@@ -513,6 +511,8 @@ rrc_gNB_process_NGAP_INITIAL_CONTEXT_SETUP_REQ(
           create_tunnel_req.pdusession_id[pdu_sessions_done]   = NGAP_INITIAL_CONTEXT_SETUP_REQ (msg_p).pdusession_param[pdu_sessions_done].pdusession_id;
           create_tunnel_req.incoming_rb_id[pdu_sessions_done]  = i+1;
           create_tunnel_req.outgoing_teid[pdu_sessions_done]    = NGAP_INITIAL_CONTEXT_SETUP_REQ (msg_p).pdusession_param[pdu_sessions_done].gtp_teid;
+          // To be developped: hardcoded first flow 
+          create_tunnel_req.outgoing_qfi[pdu_sessions_done]    = NGAP_INITIAL_CONTEXT_SETUP_REQ (msg_p).pdusession_param[pdu_sessions_done].qos[0].qfi;
           create_tunnel_req.dst_addr[pdu_sessions_done].length = NGAP_INITIAL_CONTEXT_SETUP_REQ (msg_p).pdusession_param[pdu_sessions_done].upf_addr.length;
           memcpy(create_tunnel_req.dst_addr[pdu_sessions_done].buffer,
                   NGAP_INITIAL_CONTEXT_SETUP_REQ (msg_p).pdusession_param[pdu_sessions_done].upf_addr.buffer,
@@ -709,7 +709,7 @@ rrc_gNB_process_security(
   rrc_gNB_ue_context_t *const ue_context_pP,
   ngap_security_capabilities_t *security_capabilities_pP
 ) {
-  boolean_t                                             changed = FALSE;
+  bool                                                  changed = false;
   NR_CipheringAlgorithm_t                               cipheringAlgorithm;
   e_NR_IntegrityProtAlgorithm                           integrityProtAlgorithm;
   /* Save security parameters */
@@ -727,14 +727,14 @@ rrc_gNB_process_security(
 
   if (ue_context_pP->ue_context.ciphering_algorithm != cipheringAlgorithm) {
     ue_context_pP->ue_context.ciphering_algorithm = cipheringAlgorithm;
-    changed = TRUE;
+    changed = true;
   }
 
   integrityProtAlgorithm = rrc_gNB_select_integrity(ctxt_pP, ue_context_pP->ue_context.security_capabilities.nRintegrity_algorithms);
 
   if (ue_context_pP->ue_context.integrity_algorithm != integrityProtAlgorithm) {
     ue_context_pP->ue_context.integrity_algorithm = integrityProtAlgorithm;
-    changed = TRUE;
+    changed = true;
   }
 
   LOG_I (NR_RRC, "[gNB %d][UE %x] Selected security algorithms (%p): %lx, %x, %s\n",
@@ -905,7 +905,7 @@ rrc_gNB_send_NGAP_PDUSESSION_SETUP_RESP(
   for (pdusession = 0; pdusession < ue_context_pP->ue_context.setup_pdu_sessions; pdusession++) {
     // if (xid == ue_context_pP->ue_context.pdusession[pdusession].xid) {
       if (ue_context_pP->ue_context.pduSession[pdusession].status == PDU_SESSION_STATUS_DONE) {
-        pdusession_setup_t * tmp=&NGAP_PDUSESSION_SETUP_RESP(msg_p).pdusessions[pdusession];
+        pdusession_setup_t * tmp=&NGAP_PDUSESSION_SETUP_RESP(msg_p).pdusessions[pdu_sessions_done];
         tmp->pdusession_id = ue_context_pP->ue_context.pduSession[pdusession].param.pdusession_id;
         // tmp->pdusession_id = 1;
         tmp->nb_of_qos_flow = ue_context_pP->ue_context.pduSession[pdusession].param.nb_qos;
@@ -1004,6 +1004,7 @@ rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ(
       create_tunnel_req.pdusession_id[pdu_sessions_done] = NGAP_PDUSESSION_SETUP_REQ(msg_p).pdusession_setup_params[pdu_sessions_done].pdusession_id;
       create_tunnel_req.incoming_rb_id[pdu_sessions_done]= i+1;
       create_tunnel_req.outgoing_teid[pdu_sessions_done]  = NGAP_PDUSESSION_SETUP_REQ(msg_p).pdusession_setup_params[pdu_sessions_done].gtp_teid;
+      create_tunnel_req.outgoing_qfi[pdu_sessions_done]  = NGAP_PDUSESSION_SETUP_REQ(msg_p).pdusession_setup_params[pdu_sessions_done].qos[0].qfi;
       memcpy(create_tunnel_req.dst_addr[pdu_sessions_done].buffer,
               NGAP_PDUSESSION_SETUP_REQ(msg_p).pdusession_setup_params[pdu_sessions_done].upf_addr.buffer,
               sizeof(uint8_t)*20);
@@ -1050,7 +1051,46 @@ rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ(
     // TEST 
     // ue_context_p->ue_context.pdusession[0].status = PDU_SESSION_STATUS_DONE;
     // rrc_gNB_send_NGAP_PDUSESSION_SETUP_RESP(&ctxt, ue_context_p, 0);
-    rrc_gNB_generate_dedicatedRRCReconfiguration(&ctxt, ue_context_p);
+    if(!NODE_IS_CU(RC.nrrrc[ctxt.module_id]->node_type)){
+      rrc_gNB_generate_dedicatedRRCReconfiguration(&ctxt, ue_context_p, NULL);
+    }
+    else{
+      /*Generate a UE context modification request message towards the DU to instruct the DU
+       *for SRB2 and DRB configuration and get the updates on master cell group config from the DU*/
+      MessageDef *message_p;
+      message_p = itti_alloc_new_message (TASK_RRC_GNB, 0, F1AP_UE_CONTEXT_MODIFICATION_REQ);
+      f1ap_ue_context_setup_t *req=&F1AP_UE_CONTEXT_MODIFICATION_REQ (message_p);
+      req->rnti             = ue_context_p->ue_context.rnti;
+      req->mcc              = RC.nrrrc[ctxt.module_id]->configuration.mcc[0];
+      req->mnc              = RC.nrrrc[ctxt.module_id]->configuration.mnc[0];
+      req->mnc_digit_length = RC.nrrrc[ctxt.module_id]->configuration.mnc_digit_length[0];
+      req->nr_cellid        = RC.nrrrc[ctxt.module_id]->nr_cellid;
+
+      /*Instruction towards the DU for SRB2 configuration*/
+      req->srbs_to_be_setup = malloc(1*sizeof(f1ap_srb_to_be_setup_t));
+      req->srbs_to_be_setup_length = 1;
+      f1ap_srb_to_be_setup_t *SRBs=req->srbs_to_be_setup;
+      SRBs[0].srb_id = 2;
+      SRBs[0].lcid = 2;
+
+      /*Instruction towards the DU for DRB configuration and tunnel creation*/
+      gtpv1u_gnb_create_tunnel_req_t  create_tunnel_req;
+      memset(&create_tunnel_req, 0, sizeof(gtpv1u_gnb_create_tunnel_req_t));
+      req->drbs_to_be_setup = malloc(1*sizeof(f1ap_drb_to_be_setup_t));
+      req->drbs_to_be_setup_length = 1;
+      f1ap_drb_to_be_setup_t *DRBs=req->drbs_to_be_setup;
+      LOG_D(RRC, "Length of DRB list:%d \n", req->drbs_to_be_setup_length);
+      DRBs[0].drb_id = 1;
+      DRBs[0].rlc_mode = RLC_MODE_AM;
+      DRBs[0].up_ul_tnl[0].tl_address = inet_addr(RC.nrrrc[ctxt.module_id]->eth_params_s.my_addr);
+      DRBs[0].up_ul_tnl[0].port=RC.nrrrc[ctxt.module_id]->eth_params_s.my_portd;
+      DRBs[0].up_ul_tnl_length = 1;
+      DRBs[0].up_dl_tnl[0].tl_address = inet_addr(RC.nrrrc[ctxt.module_id]->eth_params_s.remote_addr);
+      DRBs[0].up_dl_tnl[0].port=RC.nrrrc[ctxt.module_id]->eth_params_s.remote_portd;
+      DRBs[0].up_dl_tnl_length = 1;
+
+      itti_send_msg_to_task (TASK_CU_F1, ctxt.module_id, message_p);
+    }
     return(0);
   }
 }
@@ -1088,17 +1128,17 @@ rrc_gNB_process_NGAP_PDUSESSION_MODIFY_REQ(
     ue_context_p->ue_context.gNB_ue_ngap_id = gNB_ue_ngap_id;
     {
       int j;
-      boolean_t is_treated[NGAP_MAX_PDUSESSION] = {FALSE};
+      bool is_treated[NGAP_MAX_PDUSESSION] = {false};
       uint8_t nb_of_failed_pdusessions = 0;
 
       for (i = 0; i < nb_pdusessions_tomodify; i++) {
-        if (is_treated[i] == TRUE) {
+        if (is_treated[i] == true) {
           continue;
         }
         
         //Check if same PDU session ID to handle multiple pdu sessions
         for (j = i+1; j < nb_pdusessions_tomodify; j++) {
-          if (is_treated[j] == FALSE &&
+          if (is_treated[j] == false &&
               NGAP_PDUSESSION_MODIFY_REQ(msg_p).pdusession_modify_params[j].pdusession_id == 
                 NGAP_PDUSESSION_MODIFY_REQ(msg_p).pdusession_modify_params[i].pdusession_id) {
             // handle multiple pdu session id
@@ -1109,12 +1149,12 @@ rrc_gNB_process_NGAP_PDUSESSION_MODIFY_REQ(
             ue_context_p->ue_context.modify_pdusession[j].cause               = NGAP_CAUSE_RADIO_NETWORK;
             ue_context_p->ue_context.modify_pdusession[j].cause_value         = NGAP_CauseRadioNetwork_multiple_PDU_session_ID_instances;
             nb_of_failed_pdusessions++;
-            is_treated[i] = TRUE;
-            is_treated[j] = TRUE;
+            is_treated[i] = true;
+            is_treated[j] = true;
           }
         }
         // handle multiple pdu session id case
-        if (is_treated[i] == TRUE) {
+        if (is_treated[i] == true) {
           LOG_D(NR_RRC, "handle multiple pdu session id \n");
           ue_context_p->ue_context.modify_pdusession[i].status              = PDU_SESSION_STATUS_NEW;
           ue_context_p->ue_context.modify_pdusession[i].param.pdusession_id = 
@@ -1157,13 +1197,13 @@ rrc_gNB_process_NGAP_PDUSESSION_MODIFY_REQ(
             ue_context_p->ue_context.modify_pdusession[i].param.gtp_teid = 
               ue_context_p->ue_context.pduSession[j].param.gtp_teid;
             
-            is_treated[i] = TRUE;
+            is_treated[i] = true;
             break;
           }
         }
 
         // handle Unknown pdu session ID
-        if (is_treated[i] == FALSE) {
+        if (is_treated[i] == false) {
           LOG_D(NR_RRC, "handle Unknown pdu session ID \n");
           ue_context_p->ue_context.modify_pdusession[i].status              = PDU_SESSION_STATUS_NEW;
           ue_context_p->ue_context.modify_pdusession[i].param.pdusession_id = 
@@ -1171,7 +1211,7 @@ rrc_gNB_process_NGAP_PDUSESSION_MODIFY_REQ(
           ue_context_p->ue_context.modify_pdusession[i].cause               = NGAP_CAUSE_RADIO_NETWORK;
           ue_context_p->ue_context.modify_pdusession[i].cause_value         = NGAP_CauseRadioNetwork_unknown_PDU_session_ID;
           nb_of_failed_pdusessions++;
-          is_treated[i] = TRUE;
+          is_treated[i] = true;
         }
       }
 
diff --git a/openair2/RRC/NR/rrc_gNB_nsa.c b/openair2/RRC/NR/rrc_gNB_nsa.c
index b482637dfd4..b3eada8136a 100644
--- a/openair2/RRC/NR/rrc_gNB_nsa.c
+++ b/openair2/RRC/NR/rrc_gNB_nsa.c
@@ -106,6 +106,9 @@ void rrc_parse_ue_capabilities(gNB_RRC_INST *rrc, NR_UE_CapabilityRAT_ContainerL
   }
   LOG_A(NR_RRC, "Successfully decoded UE NR capabilities (NR and MRDC)\n");
 
+  ue_context_p->ue_context.spCellConfig = calloc(1, sizeof(struct NR_SpCellConfig));
+  ue_context_p->ue_context.spCellConfig->spCellConfigDedicated = rrc->carrier.servingcellconfig;
+  LOG_I(NR_RRC,"Adding new NSA user (%p)\n",ue_context_p);
   rrc_add_nsa_user(rrc,ue_context_p, m);
 }
 
@@ -241,6 +244,7 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
                           cipher_algo,
                           NR_SecurityConfig__keyToUse_secondary);
   }
+
   NR_ServingCellConfig_t *scc = ue_context_p->ue_context.spCellConfig ?
       ue_context_p->ue_context.spCellConfig->spCellConfigDedicated : NULL;
   fill_default_reconfig(carrier->servingcellconfigcommon,
@@ -250,6 +254,7 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
                         ue_context_p->ue_context.UE_Capability_nr,
                         configuration,
                         ue_context_p->local_uid);
+
   ue_context_p->ue_id_rnti = ue_context_p->ue_context.secondaryCellGroup->spCellConfig->reconfigurationWithSync->newUE_Identity;
   NR_CG_Config_t *CG_Config = calloc(1,sizeof(*CG_Config));
   memset((void *)CG_Config,0,sizeof(*CG_Config));
@@ -344,7 +349,6 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
   // configure MAC and RLC
   if (NODE_IS_DU(rrc->node_type)) {
     rrc_mac_config_req_gNB(rrc->module_id,
-                           rrc->configuration.ssb_SubcarrierOffset,
                            rrc->configuration.pdsch_AntennaPorts,
                            rrc->configuration.pusch_AntennaPorts,
                            rrc->configuration.sib1_tda,
@@ -357,7 +361,6 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
                            ue_context_p->ue_context.secondaryCellGroup);
   } else {
     rrc_mac_config_req_gNB(rrc->module_id,
-                           rrc->configuration.ssb_SubcarrierOffset,
                            rrc->configuration.pdsch_AntennaPorts,
                            rrc->configuration.pusch_AntennaPorts,
                            rrc->configuration.sib1_tda,
@@ -421,7 +424,8 @@ void rrc_remove_nsa_user(gNB_RRC_INST *rrc, int rnti) {
 
   rrc_rlc_remove_ue(&ctxt);
 
-  mac_remove_nr_ue(rrc->module_id, rnti);
+  // WHAT A RACE CONDITION
+  mac_remove_nr_ue(RC.nrmac[rrc->module_id], rnti);
   gtpv1u_enb_delete_tunnel_req_t tmp={0};
   tmp.rnti=rnti;
   tmp.from_gnb=1;
diff --git a/openair2/RRC/NR/rrc_gNB_reconfig.c b/openair2/RRC/NR/rrc_gNB_reconfig.c
index b56d622acdc..2ee3a26c4b0 100644
--- a/openair2/RRC/NR/rrc_gNB_reconfig.c
+++ b/openair2/RRC/NR/rrc_gNB_reconfig.c
@@ -47,8 +47,463 @@
 #include "LAYER2/nr_rlc/nr_rlc_oai_api.h"
 #include "nr_rrc_config.h"
 
-#define false 0
-#define true 1
+void fix_servingcellconfigdedicated(NR_ServingCellConfig_t *scd) {
+
+  int b = 0;
+  while (b < scd->downlinkBWP_ToAddModList->list.count) {
+    if (scd->downlinkBWP_ToAddModList->list.array[b]->bwp_Common->genericParameters.locationAndBandwidth == 0) {
+      asn_sequence_del(&scd->downlinkBWP_ToAddModList->list, b, 1);
+    } else {
+      b++;
+    }
+  }
+
+  if(scd->downlinkBWP_ToAddModList->list.count == 0) {
+    free(scd->downlinkBWP_ToAddModList);
+    scd->downlinkBWP_ToAddModList = NULL;
+  }
+
+  b = 0;
+  while (b < scd->uplinkConfig->uplinkBWP_ToAddModList->list.count) {
+    if (scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[b]->bwp_Common->genericParameters.locationAndBandwidth ==
+        0) {
+      asn_sequence_del(&scd->uplinkConfig->uplinkBWP_ToAddModList->list, b, 1);
+    } else {
+      b++;
+    }
+  }
+
+  if(scd->uplinkConfig->uplinkBWP_ToAddModList->list.count == 0) {
+    free(scd->uplinkConfig->uplinkBWP_ToAddModList);
+    scd->uplinkConfig->uplinkBWP_ToAddModList = NULL;
+  }
+
+}
+
+void fill_default_nsa_downlinkBWP(NR_BWP_Downlink_t *bwp,
+                                  long bwp_loop,
+                                  NR_CellGroupConfig_t *secondaryCellGroup,
+                                  NR_ServingCellConfig_t *servingcellconfigdedicated,
+                                  NR_ServingCellConfigCommon_t *servingcellconfigcommon,
+                                  const gNB_RrcConfigurationReq *configuration,
+                                  NR_UE_NR_Capability_t *uecap,
+                                  int dl_antenna_ports,
+                                  uint64_t bitmap) {
+
+  /// BWP common configuration
+
+  bwp->bwp_Common = calloc(1,sizeof(*bwp->bwp_Common));
+
+  if(servingcellconfigdedicated->downlinkBWP_ToAddModList &&
+      bwp_loop < servingcellconfigdedicated->downlinkBWP_ToAddModList->list.count) {
+    bwp->bwp_Id = servingcellconfigdedicated->downlinkBWP_ToAddModList->list.array[bwp_loop]->bwp_Id;
+    bwp->bwp_Common->genericParameters.locationAndBandwidth = servingcellconfigdedicated->downlinkBWP_ToAddModList->list.array[bwp_loop]->bwp_Common->genericParameters.locationAndBandwidth;
+    bwp->bwp_Common->genericParameters.subcarrierSpacing = servingcellconfigdedicated->downlinkBWP_ToAddModList->list.array[bwp_loop]->bwp_Common->genericParameters.subcarrierSpacing;
+    bwp->bwp_Common->genericParameters.cyclicPrefix = servingcellconfigdedicated->downlinkBWP_ToAddModList->list.array[bwp_loop]->bwp_Common->genericParameters.cyclicPrefix;
+  } else {
+    bwp->bwp_Id=bwp_loop+1;
+    bwp->bwp_Common->genericParameters.locationAndBandwidth = PRBalloc_to_locationandbandwidth(servingcellconfigcommon->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList.list.array[0]->carrierBandwidth,0);
+    bwp->bwp_Common->genericParameters.subcarrierSpacing = servingcellconfigcommon->downlinkConfigCommon->initialDownlinkBWP->genericParameters.subcarrierSpacing;
+    bwp->bwp_Common->genericParameters.cyclicPrefix = servingcellconfigcommon->downlinkConfigCommon->initialDownlinkBWP->genericParameters.cyclicPrefix;
+  }
+
+  bwp->bwp_Common->pdcch_ConfigCommon=calloc(1,sizeof(*bwp->bwp_Common->pdcch_ConfigCommon));
+  bwp->bwp_Common->pdcch_ConfigCommon->present = NR_SetupRelease_PDCCH_ConfigCommon_PR_setup;
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup = calloc(1,sizeof(*bwp->bwp_Common->pdcch_ConfigCommon->choice.setup));
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->controlResourceSetZero=NULL;
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonControlResourceSet=calloc(1,sizeof(*bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonControlResourceSet));
+
+  int curr_bwp = NRRIV2BW(bwp->bwp_Common->genericParameters.locationAndBandwidth,275);
+
+  NR_ControlResourceSet_t *coreset = calloc(1,sizeof(*coreset));
+  rrc_coreset_config(coreset, bwp->bwp_Id, curr_bwp, bitmap);
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonControlResourceSet = coreset;
+
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->searchSpaceZero=NULL;
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList=NULL;
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList=calloc(1,sizeof(*bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList));
+
+  NR_SearchSpace_t *ss=calloc(1,sizeof(*ss));
+  ss->searchSpaceId = (bwp->bwp_Id<<1)-1; // To uniquely identify each SearchSpace lets derive it from the BWPId
+  ss->controlResourceSetId=calloc(1,sizeof(*ss->controlResourceSetId));
+  *ss->controlResourceSetId=coreset->controlResourceSetId;
+  ss->monitoringSlotPeriodicityAndOffset = calloc(1,sizeof(*ss->monitoringSlotPeriodicityAndOffset));
+  ss->monitoringSlotPeriodicityAndOffset->present = NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1;
+  ss->duration=NULL;
+  ss->monitoringSymbolsWithinSlot = calloc(1,sizeof(*ss->monitoringSymbolsWithinSlot));
+  ss->monitoringSymbolsWithinSlot->buf = calloc(1,2);
+  // should be '1100 0000 0000 00'B (LSB first!), first two symols in slot, adjust if needed
+  ss->monitoringSymbolsWithinSlot->buf[1] = 0;
+  ss->monitoringSymbolsWithinSlot->buf[0] = (1<<7) | (1<<6);
+  ss->monitoringSymbolsWithinSlot->size = 2;
+  ss->monitoringSymbolsWithinSlot->bits_unused = 2;
+  ss->nrofCandidates = calloc(1,sizeof(*ss->nrofCandidates));
+  ss->nrofCandidates->aggregationLevel1 = NR_SearchSpace__nrofCandidates__aggregationLevel1_n0;
+  ss->nrofCandidates->aggregationLevel2 = NR_SearchSpace__nrofCandidates__aggregationLevel2_n0;
+  ss->nrofCandidates->aggregationLevel4 = NR_SearchSpace__nrofCandidates__aggregationLevel4_n1;
+  ss->nrofCandidates->aggregationLevel8 = NR_SearchSpace__nrofCandidates__aggregationLevel8_n0;
+  ss->nrofCandidates->aggregationLevel16 = NR_SearchSpace__nrofCandidates__aggregationLevel16_n0;
+  ss->searchSpaceType = calloc(1,sizeof(*ss->searchSpaceType));
+  ss->searchSpaceType->present = NR_SearchSpace__searchSpaceType_PR_common;
+  ss->searchSpaceType->choice.common=calloc(1,sizeof(*ss->searchSpaceType->choice.common));
+  ss->searchSpaceType->choice.common->dci_Format0_0_AndFormat1_0 = calloc(1,sizeof(*ss->searchSpaceType->choice.common->dci_Format0_0_AndFormat1_0));
+  ASN_SEQUENCE_ADD(&bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList->list,ss);
+
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->searchSpaceSIB1=NULL;
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->searchSpaceOtherSystemInformation=NULL;
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->pagingSearchSpace=NULL;
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->ra_SearchSpace=calloc(1,sizeof(*bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->ra_SearchSpace));
+  *bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->ra_SearchSpace=ss->searchSpaceId;
+  bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->ext1=NULL;
+
+  bwp->bwp_Common->pdsch_ConfigCommon=calloc(1,sizeof(*bwp->bwp_Common->pdsch_ConfigCommon));
+  bwp->bwp_Common->pdsch_ConfigCommon->present = NR_SetupRelease_PDSCH_ConfigCommon_PR_setup;
+  bwp->bwp_Common->pdsch_ConfigCommon->choice.setup = calloc(1,sizeof(*bwp->bwp_Common->pdsch_ConfigCommon->choice.setup));
+  bwp->bwp_Common->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList = calloc(1,sizeof(*bwp->bwp_Common->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList));
+
+  // Prepare PDSCH-TimeDomainResourceAllocation list
+  nr_rrc_config_dl_tda(servingcellconfigcommon,
+                       bwp->bwp_Common->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList,
+                       curr_bwp);
+
+  /// BWP dedicated configuration
+
+  if (!bwp->bwp_Dedicated) {
+    bwp->bwp_Dedicated=calloc(1,sizeof(*bwp->bwp_Dedicated));
+  }
+  bwp->bwp_Dedicated->pdcch_Config=calloc(1,sizeof(*bwp->bwp_Dedicated->pdcch_Config));
+  bwp->bwp_Dedicated->pdcch_Config->present = NR_SetupRelease_PDCCH_Config_PR_setup;
+  bwp->bwp_Dedicated->pdcch_Config->choice.setup = calloc(1,sizeof(*bwp->bwp_Dedicated->pdcch_Config->choice.setup));
+  bwp->bwp_Dedicated->pdcch_Config->choice.setup->controlResourceSetToAddModList = calloc(1,sizeof(*bwp->bwp_Dedicated->pdcch_Config->choice.setup->controlResourceSetToAddModList));
+
+  ASN_SEQUENCE_ADD(&bwp->bwp_Dedicated->pdcch_Config->choice.setup->controlResourceSetToAddModList->list, coreset);
+
+  bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList = calloc(1,sizeof(*bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList));
+
+  NR_SearchSpace_t *ss2 = calloc(1,sizeof(*ss2));
+  ss2->searchSpaceId=(bwp->bwp_Id<<1); // To uniquely identify each SearchSpace lets derive it from the BWPId
+  ss2->controlResourceSetId=calloc(1,sizeof(*ss2->controlResourceSetId));
+  *ss2->controlResourceSetId=coreset->controlResourceSetId;
+  ss2->monitoringSlotPeriodicityAndOffset=calloc(1,sizeof(*ss2->monitoringSlotPeriodicityAndOffset));
+  ss2->monitoringSlotPeriodicityAndOffset->present = NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1;
+  ss2->monitoringSlotPeriodicityAndOffset->choice.sl1=(NULL_t)0;
+  ss2->duration=NULL;
+  ss2->monitoringSymbolsWithinSlot = calloc(1,sizeof(*ss2->monitoringSymbolsWithinSlot));
+  ss2->monitoringSymbolsWithinSlot->buf = calloc(1,2);
+  ss2->monitoringSymbolsWithinSlot->size = 2;
+  ss2->monitoringSymbolsWithinSlot->bits_unused = 2;
+  ss2->monitoringSymbolsWithinSlot->buf[0]=0xc0;
+  ss2->monitoringSymbolsWithinSlot->buf[1]=0x0;
+  ss2->nrofCandidates=calloc(1,sizeof(*ss2->nrofCandidates));
+  ss2->nrofCandidates->aggregationLevel1 = NR_SearchSpace__nrofCandidates__aggregationLevel1_n0;
+  ss2->nrofCandidates->aggregationLevel2 = NR_SearchSpace__nrofCandidates__aggregationLevel2_n0;
+  if (curr_bwp < 48) {
+    ss2->nrofCandidates->aggregationLevel4 = NR_SearchSpace__nrofCandidates__aggregationLevel4_n1;
+    ss2->nrofCandidates->aggregationLevel8 = NR_SearchSpace__nrofCandidates__aggregationLevel8_n0;
+  } else if (curr_bwp < 96) {
+    ss2->nrofCandidates->aggregationLevel4 = NR_SearchSpace__nrofCandidates__aggregationLevel4_n2;
+    ss2->nrofCandidates->aggregationLevel8 = NR_SearchSpace__nrofCandidates__aggregationLevel8_n1;
+  } else {
+    ss2->nrofCandidates->aggregationLevel4 = NR_SearchSpace__nrofCandidates__aggregationLevel4_n4;
+    ss2->nrofCandidates->aggregationLevel8 = NR_SearchSpace__nrofCandidates__aggregationLevel8_n2;
+  }
+  ss2->nrofCandidates->aggregationLevel16 = NR_SearchSpace__nrofCandidates__aggregationLevel16_n0;
+  ss2->searchSpaceType=calloc(1,sizeof(*ss2->searchSpaceType));
+  ss2->searchSpaceType->present = NR_SearchSpace__searchSpaceType_PR_ue_Specific;
+  ss2->searchSpaceType->choice.ue_Specific = calloc(1,sizeof(*ss2->searchSpaceType->choice.ue_Specific));
+  ss2->searchSpaceType->choice.ue_Specific->dci_Formats=NR_SearchSpace__searchSpaceType__ue_Specific__dci_Formats_formats0_1_And_1_1;
+  ASN_SEQUENCE_ADD(&bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList->list, ss2);
+
+  bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToReleaseList = NULL;
+
+  if (!bwp->bwp_Dedicated->pdsch_Config) {
+    bwp->bwp_Dedicated->pdsch_Config = calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config));
+    bwp->bwp_Dedicated->pdsch_Config->present = NR_SetupRelease_PDSCH_Config_PR_setup;
+    bwp->bwp_Dedicated->pdsch_Config->choice.setup = calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup));
+    bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA = calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA));
+    bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->present= NR_SetupRelease_DMRS_DownlinkConfig_PR_setup;
+    bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup = calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup));
+  }
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->dataScramblingIdentityPDSCH = NULL;
+
+  if ((get_softmodem_params()->do_ra || get_softmodem_params()->phy_test) && dl_antenna_ports > 1) // for MIMO, we use DMRS Config Type 2 but only with OAI UE
+    bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_Type=calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_Type));
+  else
+    bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_Type=NULL;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->maxLength=NULL;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->scramblingID0=NULL;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->scramblingID1=NULL;
+  if (!bwp->bwp_Dedicated->pdsch_Config) {
+    bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS=NULL;
+  }
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_AdditionalPosition = calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_AdditionalPosition));
+  *bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_AdditionalPosition = NR_DMRS_DownlinkConfig__dmrs_AdditionalPosition_pos1;
+
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->tci_StatesToAddModList=calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->tci_StatesToAddModList));
+
+  int n_ssb = 0;
+  NR_TCI_State_t *tcid[64];
+  for (int i=0;i<64;i++) {
+    if ((bitmap>>(63-i))&0x01){
+      tcid[i]=calloc(1,sizeof(*tcid[i]));
+      tcid[i]->tci_StateId=n_ssb;
+      tcid[i]->qcl_Type1.cell=NULL;
+      tcid[i]->qcl_Type1.bwp_Id=calloc(1,sizeof(*tcid[i]->qcl_Type1.bwp_Id));
+      *tcid[i]->qcl_Type1.bwp_Id=1;
+      tcid[i]->qcl_Type1.referenceSignal.present = NR_QCL_Info__referenceSignal_PR_ssb;
+      tcid[i]->qcl_Type1.referenceSignal.choice.ssb = i;
+      tcid[i]->qcl_Type1.qcl_Type=NR_QCL_Info__qcl_Type_typeC;
+      ASN_SEQUENCE_ADD(&bwp->bwp_Dedicated->pdsch_Config->choice.setup->tci_StatesToAddModList->list,tcid[i]);
+      n_ssb++;
+    }
+  }
+
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->tci_StatesToReleaseList=NULL;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->vrb_ToPRB_Interleaver=NULL;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->resourceAllocation=NR_PDSCH_Config__resourceAllocation_resourceAllocationType1;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->pdsch_TimeDomainAllocationList=NULL;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->pdsch_AggregationFactor=NULL;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->rateMatchPatternToAddModList=NULL;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->rateMatchPatternToReleaseList=NULL;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->rateMatchPatternGroup1=NULL;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->rateMatchPatternGroup2=NULL;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->rbg_Size=NR_PDSCH_Config__rbg_Size_config1;
+  set_dl_mcs_table(bwp->bwp_Common->genericParameters.subcarrierSpacing,
+                   configuration->force_256qam_off ? NULL : uecap,
+                   secondaryCellGroup->spCellConfig,
+                   bwp->bwp_Dedicated,
+                   servingcellconfigcommon);
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->maxNrofCodeWordsScheduledByDCI = calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->maxNrofCodeWordsScheduledByDCI));
+  *bwp->bwp_Dedicated->pdsch_Config->choice.setup->maxNrofCodeWordsScheduledByDCI = NR_PDSCH_Config__maxNrofCodeWordsScheduledByDCI_n1;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.present = NR_PDSCH_Config__prb_BundlingType_PR_staticBundling;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling = calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling));
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling->bundleSize =
+      calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling->bundleSize));
+  *bwp->bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling->bundleSize = NR_PDSCH_Config__prb_BundlingType__staticBundling__bundleSize_wideband;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->zp_CSI_RS_ResourceToAddModList=NULL;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->zp_CSI_RS_ResourceToReleaseList=NULL;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->aperiodic_ZP_CSI_RS_ResourceSetsToAddModList=NULL;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList=NULL;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->sp_ZP_CSI_RS_ResourceSetsToAddModList=NULL;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->sp_ZP_CSI_RS_ResourceSetsToReleaseList=NULL;
+  bwp->bwp_Dedicated->pdsch_Config->choice.setup->p_ZP_CSI_RS_ResourceSet=NULL;
+  bwp->bwp_Dedicated->sps_Config = NULL;
+  bwp->bwp_Dedicated->radioLinkMonitoringConfig = NULL;
+
+#if 0
+ bwp->bwp_Dedicated->radioLinkMonitoringConfig = calloc(1,sizeof(*bwp->bwp_Dedicated->radioLinkMonitoringConfig));
+ bwp->bwp_Dedicated->radioLinkMonitoringConfig->present = NR_SetupRelease_RadioLinkMonitoringConfig_PR_setup;
+ bwp->bwp_Dedicated->radioLinkMonitoringConfig->choice.setup = calloc(1,sizeof(*bwp->bwp_Dedicated->radioLinkMonitoringConfig->choice.setup));
+ bwp->bwp_Dedicated->radioLinkMonitoringConfig->choice.setup->failureDetectionResourcesToAddModList=NULL;
+ bwp->bwp_Dedicated->radioLinkMonitoringConfig->choice.setup->failureDetectionResourcesToReleaseList=NULL;
+ bwp->bwp_Dedicated->radioLinkMonitoringConfig->choice.setup->beamFailureInstanceMaxCount = calloc(1,sizeof(*bwp->bwp_Dedicated->radioLinkMonitoringConfig->choice.setup->beamFailureInstanceMaxCount));
+ *bwp->bwp_Dedicated->radioLinkMonitoringConfig->choice.setup->beamFailureInstanceMaxCount = NR_RadioLinkMonitoringConfig__beamFailureInstanceMaxCount_n3;
+ bwp->bwp_Dedicated->radioLinkMonitoringConfig->choice.setup->beamFailureDetectionTimer = calloc(1,sizeof(*bwp->bwp_Dedicated->radioLinkMonitoringConfig->choice.setup->beamFailureDetectionTimer));
+ *bwp->bwp_Dedicated->radioLinkMonitoringConfig->choice.setup->beamFailureDetectionTimer = NR_RadioLinkMonitoringConfig__beamFailureDetectionTimer_pbfd2;
+#endif
+
+}
+
+void fill_default_nsa_uplinkBWP(NR_BWP_Uplink_t *ubwp,
+                                long bwp_loop,
+                                NR_ServingCellConfig_t *servingcellconfigdedicated,
+                                NR_ServingCellConfigCommon_t *servingcellconfigcommon,
+                                const gNB_RrcConfigurationReq *configuration,
+                                int uid) {
+
+  /// BWP common configuration
+
+  ubwp->bwp_Common = calloc(1,sizeof(*ubwp->bwp_Common));
+
+  if(servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList &&
+     bwp_loop < servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList->list.count) {
+    ubwp->bwp_Id = servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[bwp_loop]->bwp_Id;
+    ubwp->bwp_Common->genericParameters.locationAndBandwidth = servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[bwp_loop]->bwp_Common->genericParameters.locationAndBandwidth;
+    ubwp->bwp_Common->genericParameters.subcarrierSpacing = servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[bwp_loop]->bwp_Common->genericParameters.subcarrierSpacing;
+    ubwp->bwp_Common->genericParameters.cyclicPrefix = servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[bwp_loop]->bwp_Common->genericParameters.cyclicPrefix;
+  } else {
+    ubwp->bwp_Id=bwp_loop+1;
+    ubwp->bwp_Common->genericParameters.locationAndBandwidth = PRBalloc_to_locationandbandwidth(servingcellconfigcommon->uplinkConfigCommon->frequencyInfoUL->scs_SpecificCarrierList.list.array[0]->carrierBandwidth,0);
+    ubwp->bwp_Common->genericParameters.subcarrierSpacing = servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->genericParameters.subcarrierSpacing;
+    ubwp->bwp_Common->genericParameters.cyclicPrefix = servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->genericParameters.cyclicPrefix;
+  }
+
+  ubwp->bwp_Common->rach_ConfigCommon  = servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon;
+  ubwp->bwp_Common->pusch_ConfigCommon = servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon;
+  ubwp->bwp_Common->pucch_ConfigCommon = servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->pucch_ConfigCommon;
+
+  /// BWP dedicated configuration
+
+  if (!ubwp->bwp_Dedicated)
+    ubwp->bwp_Dedicated = calloc(1,sizeof(*ubwp->bwp_Dedicated));
+
+  int curr_bwp = NRRIV2BW(ubwp->bwp_Common->genericParameters.locationAndBandwidth,275);
+
+  ubwp->bwp_Dedicated->pucch_Config = calloc(1,sizeof(*ubwp->bwp_Dedicated->pucch_Config));
+  ubwp->bwp_Dedicated->pucch_Config->present = NR_SetupRelease_PUCCH_Config_PR_setup;
+  NR_PUCCH_Config_t *pucch_Config = calloc(1,sizeof(*pucch_Config));
+  ubwp->bwp_Dedicated->pucch_Config->choice.setup=pucch_Config;
+
+  pucch_Config->resourceSetToAddModList = calloc(1,sizeof(*pucch_Config->resourceSetToAddModList));
+  pucch_Config->resourceSetToReleaseList = NULL;
+  pucch_Config->resourceToAddModList = calloc(1,sizeof(*pucch_Config->resourceToAddModList));
+  pucch_Config->resourceToReleaseList = NULL;
+  config_pucch_resset0(pucch_Config, uid, curr_bwp, NULL);
+  config_pucch_resset1(pucch_Config, NULL);
+  set_pucch_power_config(pucch_Config, configuration->do_CSIRS);
+
+  scheduling_request_config(servingcellconfigcommon, pucch_Config);
+  set_dl_DataToUL_ACK(pucch_Config, configuration->minRXTXTIME);
+
+  ubwp->bwp_Dedicated->pusch_Config = calloc(1,sizeof(*ubwp->bwp_Dedicated->pusch_Config));
+  ubwp->bwp_Dedicated->pusch_Config->present = NR_SetupRelease_PUSCH_Config_PR_setup;
+  NR_PUSCH_Config_t *pusch_Config = NULL;
+  if(servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList &&
+     bwp_loop < servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList->list.count) {
+    pusch_Config = servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[bwp_loop]->bwp_Dedicated->pusch_Config->choice.setup;
+  } else {
+    pusch_Config = calloc(1,sizeof(*pusch_Config));
+  }
+  ubwp->bwp_Dedicated->pusch_Config->choice.setup = pusch_Config;
+  pusch_Config->txConfig=calloc(1,sizeof(*pusch_Config->txConfig));
+  *pusch_Config->txConfig= NR_PUSCH_Config__txConfig_codebook;
+  pusch_Config->dmrs_UplinkForPUSCH_MappingTypeA = NULL;
+  if (!pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB) {
+    pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB = calloc(1,sizeof(*pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB));
+    pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->present = NR_SetupRelease_DMRS_UplinkConfig_PR_setup;
+    pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup = calloc(1,sizeof(*pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup));
+  }
+  NR_DMRS_UplinkConfig_t *NR_DMRS_UplinkConfig = pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup;
+  NR_DMRS_UplinkConfig->dmrs_Type = NULL;
+  NR_DMRS_UplinkConfig->dmrs_AdditionalPosition = calloc(1,sizeof(*NR_DMRS_UplinkConfig->dmrs_AdditionalPosition));
+  *NR_DMRS_UplinkConfig->dmrs_AdditionalPosition = NR_DMRS_UplinkConfig__dmrs_AdditionalPosition_pos0;
+  if (!servingcellconfigdedicated) {
+    NR_DMRS_UplinkConfig->phaseTrackingRS=NULL;
+  }
+  NR_DMRS_UplinkConfig->maxLength=NULL;
+  NR_DMRS_UplinkConfig->transformPrecodingDisabled = calloc(1,sizeof(*NR_DMRS_UplinkConfig->transformPrecodingDisabled));
+  NR_DMRS_UplinkConfig->transformPrecodingDisabled->scramblingID0 = NULL;
+  NR_DMRS_UplinkConfig->transformPrecodingDisabled->scramblingID1 = NULL;
+  NR_DMRS_UplinkConfig->transformPrecodingEnabled = NULL;
+  pusch_Config->pusch_PowerControl = calloc(1,sizeof(*pusch_Config->pusch_PowerControl));
+  pusch_Config->pusch_PowerControl->tpc_Accumulation = NULL;
+  pusch_Config->pusch_PowerControl->msg3_Alpha = calloc(1,sizeof(*pusch_Config->pusch_PowerControl->msg3_Alpha));
+  *pusch_Config->pusch_PowerControl->msg3_Alpha = NR_Alpha_alpha1;
+  pusch_Config->pusch_PowerControl->p0_NominalWithoutGrant = NULL;
+  pusch_Config->pusch_PowerControl->p0_AlphaSets = calloc(1,sizeof(*pusch_Config->pusch_PowerControl->p0_AlphaSets));
+  NR_P0_PUSCH_AlphaSet_t *aset = calloc(1,sizeof(*aset));
+  aset->p0_PUSCH_AlphaSetId=0;
+  aset->p0=calloc(1,sizeof(*aset->p0));
+  *aset->p0 = 0;
+  aset->alpha=calloc(1,sizeof(*aset->alpha));
+  *aset->alpha=NR_Alpha_alpha1;
+  ASN_SEQUENCE_ADD(&pusch_Config->pusch_PowerControl->p0_AlphaSets->list,aset);
+  pusch_Config->pusch_PowerControl->pathlossReferenceRSToAddModList = NULL;
+  pusch_Config->pusch_PowerControl->pathlossReferenceRSToReleaseList = NULL;
+  pusch_Config->pusch_PowerControl->twoPUSCH_PC_AdjustmentStates = NULL;
+  pusch_Config->pusch_PowerControl->deltaMCS = NULL;
+  pusch_Config->pusch_PowerControl->sri_PUSCH_MappingToAddModList = NULL;
+  pusch_Config->pusch_PowerControl->sri_PUSCH_MappingToReleaseList = NULL;
+  pusch_Config->frequencyHopping=NULL;
+  pusch_Config->frequencyHoppingOffsetLists=NULL;
+  pusch_Config->resourceAllocation = NR_PUSCH_Config__resourceAllocation_resourceAllocationType1;
+  pusch_Config->pusch_TimeDomainAllocationList = NULL;
+  pusch_Config->pusch_AggregationFactor=NULL;
+  pusch_Config->mcs_Table=NULL;
+  pusch_Config->transformPrecoder= NULL;
+  pusch_Config->mcs_TableTransformPrecoder=NULL;
+  /* if msg3_transformprecoding is set in conf file - pusch config should not disable it */
+  if (servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg3_transformPrecoder == NULL) {
+    pusch_Config->transformPrecoder=calloc(1,sizeof(*pusch_Config->transformPrecoder));
+    *pusch_Config->transformPrecoder = NR_PUSCH_Config__transformPrecoder_disabled;
+  }
+  pusch_Config->codebookSubset=calloc(1,sizeof(*pusch_Config->codebookSubset));
+  *pusch_Config->codebookSubset = NR_PUSCH_Config__codebookSubset_nonCoherent;
+  pusch_Config->maxRank=calloc(1,sizeof(*pusch_Config->maxRank));
+  *pusch_Config->maxRank= 1;
+  pusch_Config->rbg_Size=NULL;
+  pusch_Config->uci_OnPUSCH=NULL;
+  pusch_Config->tp_pi2BPSK=NULL;
+
+  ubwp->bwp_Dedicated->srs_Config = calloc(1,sizeof(*ubwp->bwp_Dedicated->srs_Config));
+  ubwp->bwp_Dedicated->srs_Config->present = NR_SetupRelease_SRS_Config_PR_setup;
+  NR_SRS_Config_t *srs_Config = calloc(1,sizeof(*srs_Config));
+  ubwp->bwp_Dedicated->srs_Config->choice.setup = srs_Config;
+  srs_Config->srs_ResourceSetToReleaseList=NULL;
+  srs_Config->srs_ResourceSetToAddModList=calloc(1,sizeof(*srs_Config->srs_ResourceSetToAddModList));
+  NR_SRS_ResourceSet_t *srs_resset0=calloc(1,sizeof(*srs_resset0));
+  srs_resset0->srs_ResourceSetId = 0;
+  srs_resset0->srs_ResourceIdList=calloc(1,sizeof(*srs_resset0->srs_ResourceIdList));
+  NR_SRS_ResourceId_t *srs_resset0_id=calloc(1,sizeof(*srs_resset0_id));
+  *srs_resset0_id=0;
+  ASN_SEQUENCE_ADD(&srs_resset0->srs_ResourceIdList->list,srs_resset0_id);
+  srs_Config->srs_ResourceToReleaseList=NULL;
+
+  if(configuration->do_SRS) {
+    srs_resset0->resourceType.present =  NR_SRS_ResourceSet__resourceType_PR_periodic;
+    srs_resset0->resourceType.choice.periodic = calloc(1,sizeof(*srs_resset0->resourceType.choice.periodic));
+    srs_resset0->resourceType.choice.periodic->associatedCSI_RS = NULL;
+  } else {
+    srs_resset0->resourceType.present =  NR_SRS_ResourceSet__resourceType_PR_aperiodic;
+    srs_resset0->resourceType.choice.aperiodic = calloc(1,sizeof(*srs_resset0->resourceType.choice.aperiodic));
+    srs_resset0->resourceType.choice.aperiodic->aperiodicSRS_ResourceTrigger=1;
+    srs_resset0->resourceType.choice.aperiodic->csi_RS=NULL;
+    srs_resset0->resourceType.choice.aperiodic->slotOffset= calloc(1,sizeof(*srs_resset0->resourceType.choice.aperiodic->slotOffset));
+    *srs_resset0->resourceType.choice.aperiodic->slotOffset=2;
+    srs_resset0->resourceType.choice.aperiodic->ext1=NULL;
+  }
+
+  srs_resset0->usage=NR_SRS_ResourceSet__usage_codebook;
+  srs_resset0->alpha = calloc(1,sizeof(*srs_resset0->alpha));
+  *srs_resset0->alpha = NR_Alpha_alpha1;
+  srs_resset0->p0=calloc(1,sizeof(*srs_resset0->p0));
+  *srs_resset0->p0=-80;
+  srs_resset0->pathlossReferenceRS=NULL;
+  srs_resset0->srs_PowerControlAdjustmentStates=NULL;
+  ASN_SEQUENCE_ADD(&srs_Config->srs_ResourceSetToAddModList->list,srs_resset0);
+  srs_Config->srs_ResourceToReleaseList=NULL;
+  srs_Config->srs_ResourceToAddModList=calloc(1,sizeof(*srs_Config->srs_ResourceToAddModList));
+  NR_SRS_Resource_t *srs_res0=calloc(1,sizeof(*srs_res0));
+  srs_res0->srs_ResourceId=0;
+  srs_res0->nrofSRS_Ports=NR_SRS_Resource__nrofSRS_Ports_port1;
+  srs_res0->ptrs_PortIndex=NULL;
+  srs_res0->transmissionComb.present=NR_SRS_Resource__transmissionComb_PR_n2;
+  srs_res0->transmissionComb.choice.n2=calloc(1,sizeof(*srs_res0->transmissionComb.choice.n2));
+  srs_res0->transmissionComb.choice.n2->combOffset_n2=0;
+  srs_res0->transmissionComb.choice.n2->cyclicShift_n2=0;
+  srs_res0->resourceMapping.startPosition = 2 + uid%2;
+  srs_res0->resourceMapping.nrofSymbols=NR_SRS_Resource__resourceMapping__nrofSymbols_n1;
+  srs_res0->resourceMapping.repetitionFactor=NR_SRS_Resource__resourceMapping__repetitionFactor_n1;
+  srs_res0->freqDomainPosition=0;
+  srs_res0->freqDomainShift=0;
+  srs_res0->freqHopping.b_SRS=0;
+  srs_res0->freqHopping.b_hop=0;
+  srs_res0->freqHopping.c_SRS = rrc_get_max_nr_csrs(
+      NRRIV2BW(servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->genericParameters.locationAndBandwidth, 275),
+      srs_res0->freqHopping.b_SRS);
+  srs_res0->groupOrSequenceHopping=NR_SRS_Resource__groupOrSequenceHopping_neither;
+
+  if(configuration->do_SRS) {
+    srs_res0->resourceType.present= NR_SRS_Resource__resourceType_PR_periodic;
+    srs_res0->resourceType.choice.periodic=calloc(1,sizeof(*srs_res0->resourceType.choice.periodic));
+    srs_res0->resourceType.choice.periodic->periodicityAndOffset_p.present = NR_SRS_PeriodicityAndOffset_PR_sl160;
+    srs_res0->resourceType.choice.periodic->periodicityAndOffset_p.choice.sl160 = 17 + (uid>1)*10; // 17/17/.../147/157 are mixed slots
+  } else {
+    srs_res0->resourceType.present= NR_SRS_Resource__resourceType_PR_aperiodic;
+    srs_res0->resourceType.choice.aperiodic=calloc(1,sizeof(*srs_res0->resourceType.choice.aperiodic));
+  }
+
+  srs_res0->sequenceId=40;
+  srs_res0->spatialRelationInfo=calloc(1,sizeof(*srs_res0->spatialRelationInfo));
+  srs_res0->spatialRelationInfo->servingCellId=NULL;
+  srs_res0->spatialRelationInfo->referenceSignal.present=NR_SRS_SpatialRelationInfo__referenceSignal_PR_csi_RS_Index;
+  srs_res0->spatialRelationInfo->referenceSignal.choice.csi_RS_Index=0;
+  ASN_SEQUENCE_ADD(&srs_Config->srs_ResourceToAddModList->list,srs_res0);
+
+  ubwp->bwp_Dedicated->configuredGrantConfig = NULL;
+  ubwp->bwp_Dedicated->beamFailureRecoveryConfig = NULL;
+
+}
 
 void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellconfigcommon,
                                      NR_ServingCellConfig_t *servingcellconfigdedicated,
@@ -57,8 +512,8 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
                                      int scg_id,
                                      int servCellIndex,
                                      const gNB_RrcConfigurationReq *configuration,
-                                     int uid)
-{
+                                     int uid) {
+
   const rrc_pdsch_AntennaPorts_t* pdschap = &configuration->pdsch_AntennaPorts;
   const int dl_antenna_ports = pdschap->N1 * pdschap->N2 * pdschap->XP;
   const int do_csirs = configuration->do_CSIRS;
@@ -74,22 +529,8 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
   // where the startPosition = 2 or 3 and sl160 = 17, 17, 27 ... 157 only give us 30 different allocations.
   AssertFatal(uid>=0 && uid<30, "gNB cannot allocate the SRS resources\n");
 
-  uint64_t bitmap=0;
-  switch (servingcellconfigcommon->ssb_PositionsInBurst->present) {
-    case 1 :
-      bitmap = ((uint64_t) servingcellconfigcommon->ssb_PositionsInBurst->choice.shortBitmap.buf[0])<<56;
-      break;
-    case 2 :
-      bitmap = ((uint64_t) servingcellconfigcommon->ssb_PositionsInBurst->choice.mediumBitmap.buf[0])<<56;
-      break;
-    case 3 :
-      for (int i=0; i<8; i++) {
-        bitmap |= (((uint64_t) servingcellconfigcommon->ssb_PositionsInBurst->choice.longBitmap.buf[i])<<((7-i)*8));
-      }
-      break;
-    default:
-      AssertFatal(1==0,"SSB bitmap size value %d undefined (allowed values 1,2,3) \n", servingcellconfigcommon->ssb_PositionsInBurst->present);
-  }
+  uint64_t bitmap = get_ssb_bitmap(servingcellconfigcommon);
+  fix_servingcellconfigdedicated(servingcellconfigdedicated);
 
   memset(secondaryCellGroup,0,sizeof(NR_CellGroupConfig_t));
   secondaryCellGroup->cellGroupId = scg_id;
@@ -102,40 +543,33 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
   secondaryCellGroup->rlc_BearerToAddModList = calloc(1,sizeof(*secondaryCellGroup->rlc_BearerToAddModList));
   ASN_SEQUENCE_ADD(&secondaryCellGroup->rlc_BearerToAddModList->list, RLC_BearerConfig);
 
-  secondaryCellGroup->mac_CellGroupConfig=calloc(1,sizeof(*secondaryCellGroup->mac_CellGroupConfig));
-  secondaryCellGroup->mac_CellGroupConfig->drx_Config = NULL;
-  secondaryCellGroup->mac_CellGroupConfig->schedulingRequestConfig = calloc(1,sizeof(*secondaryCellGroup->mac_CellGroupConfig->schedulingRequestConfig));
-  secondaryCellGroup->mac_CellGroupConfig->schedulingRequestConfig->schedulingRequestToAddModList = calloc(1,sizeof(*secondaryCellGroup->mac_CellGroupConfig->schedulingRequestConfig->schedulingRequestToAddModList));
-  NR_SchedulingRequestToAddMod_t *SchedulingRequestConf = calloc(1,sizeof(*SchedulingRequestConf));
-  SchedulingRequestConf->schedulingRequestId = 0;  //Could be changed
-  SchedulingRequestConf->sr_ProhibitTimer = calloc(1,sizeof(*SchedulingRequestConf->sr_ProhibitTimer));
-  *SchedulingRequestConf->sr_ProhibitTimer = NR_SchedulingRequestToAddMod__sr_ProhibitTimer_ms16;
-  SchedulingRequestConf->sr_TransMax = NR_SchedulingRequestToAddMod__sr_TransMax_n32;
-  ASN_SEQUENCE_ADD(&secondaryCellGroup->mac_CellGroupConfig->schedulingRequestConfig->schedulingRequestToAddModList->list,SchedulingRequestConf);
-  secondaryCellGroup->mac_CellGroupConfig->schedulingRequestConfig->schedulingRequestToReleaseList = NULL;
-
-  secondaryCellGroup->mac_CellGroupConfig->bsr_Config=calloc(1,sizeof(*secondaryCellGroup->mac_CellGroupConfig->bsr_Config));
-  secondaryCellGroup->mac_CellGroupConfig->bsr_Config->periodicBSR_Timer = NR_BSR_Config__periodicBSR_Timer_sf10;
-  secondaryCellGroup->mac_CellGroupConfig->bsr_Config->retxBSR_Timer     = NR_BSR_Config__retxBSR_Timer_sf160;
-  secondaryCellGroup->mac_CellGroupConfig->tag_Config=calloc(1,sizeof(*secondaryCellGroup->mac_CellGroupConfig->tag_Config));
-  secondaryCellGroup->mac_CellGroupConfig->tag_Config->tag_ToReleaseList = NULL;
-  secondaryCellGroup->mac_CellGroupConfig->tag_Config->tag_ToAddModList  = calloc(1,sizeof(*secondaryCellGroup->mac_CellGroupConfig->tag_Config->tag_ToAddModList));
+  NR_MAC_CellGroupConfig_t *mac_CellGroupConfig = secondaryCellGroup->mac_CellGroupConfig;
+
+  mac_CellGroupConfig=calloc(1,sizeof(*mac_CellGroupConfig));
+  mac_CellGroupConfig->drx_Config = NULL;
+
+  mac_CellGroupConfig->bsr_Config=calloc(1,sizeof(*mac_CellGroupConfig->bsr_Config));
+  mac_CellGroupConfig->bsr_Config->periodicBSR_Timer = NR_BSR_Config__periodicBSR_Timer_sf10;
+  mac_CellGroupConfig->bsr_Config->retxBSR_Timer     = NR_BSR_Config__retxBSR_Timer_sf160;
+  mac_CellGroupConfig->tag_Config=calloc(1,sizeof(*mac_CellGroupConfig->tag_Config));
+  mac_CellGroupConfig->tag_Config->tag_ToReleaseList = NULL;
+  mac_CellGroupConfig->tag_Config->tag_ToAddModList  = calloc(1,sizeof(*mac_CellGroupConfig->tag_Config->tag_ToAddModList));
   struct NR_TAG *tag=calloc(1,sizeof(*tag));
   tag->tag_Id             = 0;
   tag->timeAlignmentTimer = NR_TimeAlignmentTimer_infinity;
-  ASN_SEQUENCE_ADD(&secondaryCellGroup->mac_CellGroupConfig->tag_Config->tag_ToAddModList->list,tag);
-  secondaryCellGroup->mac_CellGroupConfig->phr_Config  = calloc(1,sizeof(*secondaryCellGroup->mac_CellGroupConfig->phr_Config));
-  secondaryCellGroup->mac_CellGroupConfig->phr_Config->present = NR_SetupRelease_PHR_Config_PR_setup;
-  secondaryCellGroup->mac_CellGroupConfig->phr_Config->choice.setup  = calloc(1,sizeof(*secondaryCellGroup->mac_CellGroupConfig->phr_Config->choice.setup));
-  secondaryCellGroup->mac_CellGroupConfig->phr_Config->choice.setup->phr_PeriodicTimer = NR_PHR_Config__phr_PeriodicTimer_sf20;
-  secondaryCellGroup->mac_CellGroupConfig->phr_Config->choice.setup->phr_ProhibitTimer = NR_PHR_Config__phr_ProhibitTimer_sf0;
-  secondaryCellGroup->mac_CellGroupConfig->phr_Config->choice.setup->phr_Tx_PowerFactorChange = NR_PHR_Config__phr_Tx_PowerFactorChange_dB3;
-  secondaryCellGroup->mac_CellGroupConfig->phr_Config->choice.setup->multiplePHR=false;
-  secondaryCellGroup->mac_CellGroupConfig->phr_Config->choice.setup->dummy=false;
-  secondaryCellGroup->mac_CellGroupConfig->phr_Config->choice.setup->phr_Type2OtherCell = false;
-  secondaryCellGroup->mac_CellGroupConfig->phr_Config->choice.setup->phr_ModeOtherCG = NR_PHR_Config__phr_ModeOtherCG_real;
-  secondaryCellGroup->mac_CellGroupConfig->skipUplinkTxDynamic=false;
-  secondaryCellGroup->mac_CellGroupConfig->ext1 = NULL;
+  ASN_SEQUENCE_ADD(&mac_CellGroupConfig->tag_Config->tag_ToAddModList->list,tag);
+  mac_CellGroupConfig->phr_Config  = calloc(1,sizeof(*mac_CellGroupConfig->phr_Config));
+  mac_CellGroupConfig->phr_Config->present = NR_SetupRelease_PHR_Config_PR_setup;
+  mac_CellGroupConfig->phr_Config->choice.setup  = calloc(1,sizeof(*mac_CellGroupConfig->phr_Config->choice.setup));
+  mac_CellGroupConfig->phr_Config->choice.setup->phr_PeriodicTimer = NR_PHR_Config__phr_PeriodicTimer_sf20;
+  mac_CellGroupConfig->phr_Config->choice.setup->phr_ProhibitTimer = NR_PHR_Config__phr_ProhibitTimer_sf0;
+  mac_CellGroupConfig->phr_Config->choice.setup->phr_Tx_PowerFactorChange = NR_PHR_Config__phr_Tx_PowerFactorChange_dB3;
+  mac_CellGroupConfig->phr_Config->choice.setup->multiplePHR=false;
+  mac_CellGroupConfig->phr_Config->choice.setup->dummy=false;
+  mac_CellGroupConfig->phr_Config->choice.setup->phr_Type2OtherCell = false;
+  mac_CellGroupConfig->phr_Config->choice.setup->phr_ModeOtherCG = NR_PHR_Config__phr_ModeOtherCG_real;
+  mac_CellGroupConfig->skipUplinkTxDynamic=false;
+  mac_CellGroupConfig->ext1 = NULL;
   secondaryCellGroup->physicalCellGroupConfig = calloc(1,sizeof(*secondaryCellGroup->physicalCellGroupConfig));
   secondaryCellGroup->physicalCellGroupConfig->harq_ACK_SpatialBundlingPUCCH=NULL;
   secondaryCellGroup->physicalCellGroupConfig->harq_ACK_SpatialBundlingPUSCH=NULL;
@@ -198,12 +632,12 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
   secondaryCellGroup->spCellConfig->rlf_TimersAndConstants->choice.setup->ext1 = calloc(1,sizeof(*secondaryCellGroup->spCellConfig->rlf_TimersAndConstants->choice.setup->ext1));
   secondaryCellGroup->spCellConfig->rlf_TimersAndConstants->choice.setup->ext1->t311 = NR_RLF_TimersAndConstants__ext1__t311_ms30000;
   secondaryCellGroup->spCellConfig->rlmInSyncOutOfSyncThreshold                   = NULL;
-  if (servingcellconfigdedicated) {
-    secondaryCellGroup->spCellConfig->spCellConfigDedicated = servingcellconfigdedicated;
-  } else {
-    secondaryCellGroup->spCellConfig->spCellConfigDedicated = calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated));
-  }
+
+  secondaryCellGroup->spCellConfig->spCellConfigDedicated = calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated));
   secondaryCellGroup->spCellConfig->spCellConfigDedicated->tdd_UL_DL_ConfigurationDedicated = NULL;
+
+  /// initialDownlinkBWP
+
   secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP = calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP));
   secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdcch_Config=NULL;
   secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config=calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config));
@@ -225,7 +659,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
  secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_AdditionalPosition = calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_AdditionalPosition));
  *secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_AdditionalPosition = NR_DMRS_DownlinkConfig__dmrs_AdditionalPosition_pos1;
 
-
  secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config->choice.setup->tci_StatesToAddModList=calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config->choice.setup->tci_StatesToAddModList));
 
  int n_ssb = 0;
@@ -245,7 +678,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
    }
  }
 
-
 #if 0
 
  NR_TCI_State_t*tci0=calloc(1,sizeof(*tci0));
@@ -371,406 +803,129 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
  *secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->radioLinkMonitoringConfig->choice.setup->beamFailureDetectionTimer = NR_RadioLinkMonitoringConfig__beamFailureDetectionTimer_pbfd2;
 #endif
 
- secondaryCellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToReleaseList= NULL;
- 
- NR_BWP_Downlink_t *bwp = NULL;
- if (servingcellconfigdedicated) {
-   bwp=servingcellconfigdedicated->downlinkBWP_ToAddModList->list.array[0];
- } else {
-   secondaryCellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList = calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList));
-
-   bwp=calloc(1,sizeof(*bwp));
- }
- bwp->bwp_Id=1;
- bwp->bwp_Common=calloc(1,sizeof(*bwp->bwp_Common));
- // copy common BWP size from initial BWP except for bandwdith
- memcpy((void*)&bwp->bwp_Common->genericParameters,
-	&servingcellconfigcommon->downlinkConfigCommon->initialDownlinkBWP->genericParameters,
-	sizeof(bwp->bwp_Common->genericParameters));
- bwp->bwp_Common->genericParameters.locationAndBandwidth=PRBalloc_to_locationandbandwidth(servingcellconfigcommon->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList.list.array[0]->carrierBandwidth,0);
-
- 
- bwp->bwp_Common->pdcch_ConfigCommon=calloc(1,sizeof(*bwp->bwp_Common->pdcch_ConfigCommon));
- bwp->bwp_Common->pdcch_ConfigCommon->present = NR_SetupRelease_PDCCH_ConfigCommon_PR_setup;
- bwp->bwp_Common->pdcch_ConfigCommon->choice.setup = calloc(1,sizeof(*bwp->bwp_Common->pdcch_ConfigCommon->choice.setup));
- bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->controlResourceSetZero=NULL;
- bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonControlResourceSet=calloc(1,sizeof(*bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonControlResourceSet));
-
- int curr_bwp = NRRIV2BW(bwp->bwp_Common->genericParameters.locationAndBandwidth,275);
-
- NR_ControlResourceSet_t *coreset = calloc(1,sizeof(*coreset));
- coreset->controlResourceSetId=1;
- // frequency domain resources depends on BWP size
- // options are 24, 48 or 96
- coreset->frequencyDomainResources.buf = calloc(1,6);
- if (curr_bwp < 48)
-   coreset->frequencyDomainResources.buf[0] = 0xf0;
- else
-   coreset->frequencyDomainResources.buf[0] = 0xff;
- if (curr_bwp < 96)
-   coreset->frequencyDomainResources.buf[1] = 0;
- else
-   coreset->frequencyDomainResources.buf[1] = 0xff;
- coreset->frequencyDomainResources.buf[2] = 0;
- coreset->frequencyDomainResources.buf[3] = 0;
- coreset->frequencyDomainResources.buf[4] = 0;
- coreset->frequencyDomainResources.buf[5] = 0;
- coreset->frequencyDomainResources.size = 6;
- coreset->frequencyDomainResources.bits_unused = 3;
- coreset->duration=1;
- coreset->cce_REG_MappingType.present = NR_ControlResourceSet__cce_REG_MappingType_PR_nonInterleaved;
- coreset->precoderGranularity = NR_ControlResourceSet__precoderGranularity_sameAsREG_bundle;
-
- coreset->tci_StatesPDCCH_ToAddList=calloc(1,sizeof(*coreset->tci_StatesPDCCH_ToAddList));
- NR_TCI_StateId_t *tci[64];
- for (int i=0;i<64;i++) {
-   if ((bitmap>>(63-i))&0x01){
-     tci[i]=calloc(1,sizeof(*tci[i]));
-     *tci[i] = i;
-     ASN_SEQUENCE_ADD(&coreset->tci_StatesPDCCH_ToAddList->list,tci[i]);
-   }
- }
- coreset->tci_StatesPDCCH_ToReleaseList = NULL;
- coreset->tci_PresentInDCI = NULL;
- coreset->pdcch_DMRS_ScramblingID = NULL;
-
- bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonControlResourceSet = coreset;
-
- bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->searchSpaceZero=NULL;
- bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList=NULL;
- bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList=calloc(1,sizeof(*bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList));
-
- NR_SearchSpace_t *ss=calloc(1,sizeof(*ss));
- ss->searchSpaceId = 1;
- ss->controlResourceSetId=calloc(1,sizeof(*ss->controlResourceSetId));
- *ss->controlResourceSetId=1;
- ss->monitoringSlotPeriodicityAndOffset = calloc(1,sizeof(*ss->monitoringSlotPeriodicityAndOffset));
- ss->monitoringSlotPeriodicityAndOffset->present = NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1;
- ss->duration=NULL; 
- ss->monitoringSymbolsWithinSlot = calloc(1,sizeof(*ss->monitoringSymbolsWithinSlot));
- ss->monitoringSymbolsWithinSlot->buf = calloc(1,2);
- // should be '1100 0000 0000 00'B (LSB first!), first two symols in slot, adjust if needed
- ss->monitoringSymbolsWithinSlot->buf[1] = 0;
- ss->monitoringSymbolsWithinSlot->buf[0] = (1<<7) | (1<<6);
- ss->monitoringSymbolsWithinSlot->size = 2;
- ss->monitoringSymbolsWithinSlot->bits_unused = 2;
- ss->nrofCandidates = calloc(1,sizeof(*ss->nrofCandidates));
- ss->nrofCandidates->aggregationLevel1 = NR_SearchSpace__nrofCandidates__aggregationLevel1_n0;
- ss->nrofCandidates->aggregationLevel2 = NR_SearchSpace__nrofCandidates__aggregationLevel2_n0;
- ss->nrofCandidates->aggregationLevel4 = NR_SearchSpace__nrofCandidates__aggregationLevel4_n1;
- ss->nrofCandidates->aggregationLevel8 = NR_SearchSpace__nrofCandidates__aggregationLevel8_n0;
- ss->nrofCandidates->aggregationLevel16 = NR_SearchSpace__nrofCandidates__aggregationLevel16_n0;
- ss->searchSpaceType = calloc(1,sizeof(*ss->searchSpaceType));
- ss->searchSpaceType->present = NR_SearchSpace__searchSpaceType_PR_common;
- ss->searchSpaceType->choice.common=calloc(1,sizeof(*ss->searchSpaceType->choice.common));
- ss->searchSpaceType->choice.common->dci_Format0_0_AndFormat1_0 = calloc(1,sizeof(*ss->searchSpaceType->choice.common->dci_Format0_0_AndFormat1_0));
-
- ASN_SEQUENCE_ADD(&bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList->list,ss);
-
- bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->searchSpaceSIB1=NULL;
- if(get_softmodem_params()->sa) {
-   bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->searchSpaceSIB1=calloc(1,sizeof(*bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->searchSpaceSIB1));
-   *bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->searchSpaceSIB1=0;
- }
- bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->searchSpaceOtherSystemInformation=NULL;
- bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->pagingSearchSpace=NULL;
- bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->ra_SearchSpace=calloc(1,sizeof(*bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->ra_SearchSpace));
- *bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->ra_SearchSpace=1;
- bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->ext1=NULL;
-
- bwp->bwp_Common->pdsch_ConfigCommon=calloc(1,sizeof(*bwp->bwp_Common->pdsch_ConfigCommon));
- bwp->bwp_Common->pdsch_ConfigCommon->present = NR_SetupRelease_PDSCH_ConfigCommon_PR_setup;
- bwp->bwp_Common->pdsch_ConfigCommon->choice.setup = calloc(1,sizeof(*bwp->bwp_Common->pdsch_ConfigCommon->choice.setup));
- bwp->bwp_Common->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList = calloc(1,sizeof(*bwp->bwp_Common->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList));
-
- // copy PDSCH TimeDomainResourceAllocation from InitialBWP
- 
- NR_PDSCH_TimeDomainResourceAllocation_t *pdschi;
- for (int i=0;i<servingcellconfigcommon->downlinkConfigCommon->initialDownlinkBWP->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList->list.count;i++) {
-   pdschi= calloc(1,sizeof(*pdschi));
-   if(servingcellconfigcommon->downlinkConfigCommon->initialDownlinkBWP->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList->list.array[i]->k0){
-     pdschi->k0 = calloc(1,sizeof(*pdschi->k0));
-     *pdschi->k0 = *servingcellconfigcommon->downlinkConfigCommon->initialDownlinkBWP->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList->list.array[i]->k0;
-   }
-   pdschi->mappingType = servingcellconfigcommon->downlinkConfigCommon->initialDownlinkBWP->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList->list.array[i]->mappingType;
-   pdschi->startSymbolAndLength = servingcellconfigcommon->downlinkConfigCommon->initialDownlinkBWP->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList->list.array[i]->startSymbolAndLength;
-   ASN_SEQUENCE_ADD(&bwp->bwp_Common->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList->list,pdschi);
- }
-
- if (!servingcellconfigdedicated) {
-   bwp->bwp_Dedicated=calloc(1,sizeof(*bwp->bwp_Dedicated));
- }
- bwp->bwp_Dedicated->pdcch_Config=calloc(1,sizeof(*bwp->bwp_Dedicated->pdcch_Config));
- bwp->bwp_Dedicated->pdcch_Config->present = NR_SetupRelease_PDCCH_Config_PR_setup;
- bwp->bwp_Dedicated->pdcch_Config->choice.setup = calloc(1,sizeof(*bwp->bwp_Dedicated->pdcch_Config->choice.setup));
- bwp->bwp_Dedicated->pdcch_Config->choice.setup->controlResourceSetToAddModList = calloc(1,sizeof(*bwp->bwp_Dedicated->pdcch_Config->choice.setup->controlResourceSetToAddModList));
-
- ASN_SEQUENCE_ADD(&bwp->bwp_Dedicated->pdcch_Config->choice.setup->controlResourceSetToAddModList->list,
-		  coreset);
-
- bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList = calloc(1,sizeof(*bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList));
-
- NR_SearchSpace_t *ss2 = calloc(1,sizeof(*ss2));
-
- ss2->searchSpaceId=2;
- ss2->controlResourceSetId=calloc(1,sizeof(*ss2->controlResourceSetId));
- *ss2->controlResourceSetId=1;
- ss2->monitoringSlotPeriodicityAndOffset=calloc(1,sizeof(*ss2->monitoringSlotPeriodicityAndOffset));
- ss2->monitoringSlotPeriodicityAndOffset->present = NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1;
- ss2->monitoringSlotPeriodicityAndOffset->choice.sl1=(NULL_t)0;
- ss2->duration=NULL;
- ss2->monitoringSymbolsWithinSlot = calloc(1,sizeof(*ss2->monitoringSymbolsWithinSlot));
- ss2->monitoringSymbolsWithinSlot->buf = calloc(1,2);
- ss2->monitoringSymbolsWithinSlot->size = 2;
- ss2->monitoringSymbolsWithinSlot->bits_unused = 2;
- ss2->monitoringSymbolsWithinSlot->buf[0]=0xc0;
- ss2->monitoringSymbolsWithinSlot->buf[1]=0x0;
- ss2->nrofCandidates=calloc(1,sizeof(*ss2->nrofCandidates));
- ss2->nrofCandidates->aggregationLevel1 = NR_SearchSpace__nrofCandidates__aggregationLevel1_n0;
- ss2->nrofCandidates->aggregationLevel2 = NR_SearchSpace__nrofCandidates__aggregationLevel2_n0;
- if (curr_bwp < 48)
-   ss2->nrofCandidates->aggregationLevel4 = NR_SearchSpace__nrofCandidates__aggregationLevel4_n1;
- else if (curr_bwp < 96)
-   ss2->nrofCandidates->aggregationLevel4 = NR_SearchSpace__nrofCandidates__aggregationLevel4_n2;
- else
-   ss2->nrofCandidates->aggregationLevel4 = NR_SearchSpace__nrofCandidates__aggregationLevel4_n4;
- ss2->nrofCandidates->aggregationLevel8 = NR_SearchSpace__nrofCandidates__aggregationLevel8_n0;
- ss2->nrofCandidates->aggregationLevel16 = NR_SearchSpace__nrofCandidates__aggregationLevel16_n0;
- ss2->searchSpaceType=calloc(1,sizeof(*ss2->searchSpaceType));
- ss2->searchSpaceType->present = NR_SearchSpace__searchSpaceType_PR_ue_Specific;
- ss2->searchSpaceType->choice.ue_Specific = calloc(1,sizeof(*ss2->searchSpaceType->choice.ue_Specific));
- ss2->searchSpaceType->choice.ue_Specific->dci_Formats=NR_SearchSpace__searchSpaceType__ue_Specific__dci_Formats_formats0_1_And_1_1;
-
- ASN_SEQUENCE_ADD(&bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList->list,
-		  ss2);
-
-
- bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToReleaseList = NULL;
-
- if (!servingcellconfigdedicated) {
-  bwp->bwp_Dedicated->pdsch_Config = calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config));
-
-  bwp->bwp_Dedicated->pdsch_Config->present = NR_SetupRelease_PDSCH_Config_PR_setup;
-  bwp->bwp_Dedicated->pdsch_Config->choice.setup = calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup));
-  bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA = calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA));
-  bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->present= NR_SetupRelease_DMRS_DownlinkConfig_PR_setup;
-
-  bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup = calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup));
- }
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->dataScramblingIdentityPDSCH = NULL;
-
- if ((get_softmodem_params()->do_ra ||
-     get_softmodem_params()->phy_test) &&
-     dl_antenna_ports > 1) // for MIMO, we use DMRS Config Type 2 but only with OAI UE
-   bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_Type=calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_Type));
- else
-   bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_Type=NULL;
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->maxLength=NULL;
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->scramblingID0=NULL;
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->scramblingID1=NULL;
- if (!servingcellconfigdedicated) {
-   bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS=NULL;
- }
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_AdditionalPosition = calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_AdditionalPosition));
- *bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_AdditionalPosition = NR_DMRS_DownlinkConfig__dmrs_AdditionalPosition_pos1;
+  /// initialUplinkBWP
 
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->tci_StatesToAddModList=calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->tci_StatesToAddModList));
-
- n_ssb = 0;
- NR_TCI_State_t *tcid[64];
- for (int i=0;i<64;i++) {
-   if ((bitmap>>(63-i))&0x01){
-     tcid[i]=calloc(1,sizeof(*tcid[i]));
-     tcid[i]->tci_StateId=n_ssb;
-     tcid[i]->qcl_Type1.cell=NULL;
-     tcid[i]->qcl_Type1.bwp_Id=calloc(1,sizeof(*tcid[i]->qcl_Type1.bwp_Id));
-     *tcid[i]->qcl_Type1.bwp_Id=1;
-     tcid[i]->qcl_Type1.referenceSignal.present = NR_QCL_Info__referenceSignal_PR_ssb;
-     tcid[i]->qcl_Type1.referenceSignal.choice.ssb = i;
-     tcid[i]->qcl_Type1.qcl_Type=NR_QCL_Info__qcl_Type_typeC;
-     ASN_SEQUENCE_ADD(&bwp->bwp_Dedicated->pdsch_Config->choice.setup->tci_StatesToAddModList->list,tcid[i]);
-     n_ssb++;
-   }
- }
-
-
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->tci_StatesToReleaseList=NULL;
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->vrb_ToPRB_Interleaver=NULL;
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->resourceAllocation=NR_PDSCH_Config__resourceAllocation_resourceAllocationType1;
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->pdsch_TimeDomainAllocationList=NULL;
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->pdsch_AggregationFactor=NULL;
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->rateMatchPatternToAddModList=NULL;
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->rateMatchPatternToReleaseList=NULL;
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->rateMatchPatternGroup1=NULL;
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->rateMatchPatternGroup2=NULL;
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->rbg_Size=NR_PDSCH_Config__rbg_Size_config1;
- set_dl_mcs_table(bwp->bwp_Common->genericParameters.subcarrierSpacing,
-                  configuration->force_256qam_off ? NULL : uecap,
-                  secondaryCellGroup->spCellConfig,bwp->bwp_Dedicated,
-                  servingcellconfigcommon);
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->maxNrofCodeWordsScheduledByDCI = calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->maxNrofCodeWordsScheduledByDCI));
- *bwp->bwp_Dedicated->pdsch_Config->choice.setup->maxNrofCodeWordsScheduledByDCI = NR_PDSCH_Config__maxNrofCodeWordsScheduledByDCI_n1;
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.present = NR_PDSCH_Config__prb_BundlingType_PR_staticBundling;
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling = calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling));
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling->bundleSize =
-   calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling->bundleSize));
- *bwp->bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.choice.staticBundling->bundleSize = NR_PDSCH_Config__prb_BundlingType__staticBundling__bundleSize_wideband;
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->zp_CSI_RS_ResourceToAddModList=NULL;
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->zp_CSI_RS_ResourceToReleaseList=NULL;
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->aperiodic_ZP_CSI_RS_ResourceSetsToAddModList=NULL;
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList=NULL;
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->sp_ZP_CSI_RS_ResourceSetsToAddModList=NULL;
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->sp_ZP_CSI_RS_ResourceSetsToReleaseList=NULL;
- bwp->bwp_Dedicated->pdsch_Config->choice.setup->p_ZP_CSI_RS_ResourceSet=NULL;
- bwp->bwp_Dedicated->sps_Config = NULL; //calloc(1,sizeof(struct NR_SetupRelease_SPS_Config));
-
- bwp->bwp_Dedicated->radioLinkMonitoringConfig = NULL;
-#if 0
- bwp->bwp_Dedicated->radioLinkMonitoringConfig = calloc(1,sizeof(*bwp->bwp_Dedicated->radioLinkMonitoringConfig));
- bwp->bwp_Dedicated->radioLinkMonitoringConfig->present = NR_SetupRelease_RadioLinkMonitoringConfig_PR_setup;
+  if (!secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig) {
+    secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig=calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig));
+  }
 
- bwp->bwp_Dedicated->radioLinkMonitoringConfig->choice.setup = calloc(1,sizeof(*bwp->bwp_Dedicated->radioLinkMonitoringConfig->choice.setup));
- bwp->bwp_Dedicated->radioLinkMonitoringConfig->choice.setup->failureDetectionResourcesToAddModList=NULL;
- bwp->bwp_Dedicated->radioLinkMonitoringConfig->choice.setup->failureDetectionResourcesToReleaseList=NULL;
- bwp->bwp_Dedicated->radioLinkMonitoringConfig->choice.setup->beamFailureInstanceMaxCount = calloc(1,sizeof(*bwp->bwp_Dedicated->radioLinkMonitoringConfig->choice.setup->beamFailureInstanceMaxCount));
- *bwp->bwp_Dedicated->radioLinkMonitoringConfig->choice.setup->beamFailureInstanceMaxCount = NR_RadioLinkMonitoringConfig__beamFailureInstanceMaxCount_n3;
- bwp->bwp_Dedicated->radioLinkMonitoringConfig->choice.setup->beamFailureDetectionTimer = calloc(1,sizeof(*bwp->bwp_Dedicated->radioLinkMonitoringConfig->choice.setup->beamFailureDetectionTimer));
- *bwp->bwp_Dedicated->radioLinkMonitoringConfig->choice.setup->beamFailureDetectionTimer = NR_RadioLinkMonitoringConfig__beamFailureDetectionTimer_pbfd2;
-#endif
- 
- if (!servingcellconfigdedicated) {
-   ASN_SEQUENCE_ADD(&secondaryCellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list,bwp);
- }
- secondaryCellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id=calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id));
- 
- *secondaryCellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id=1;
- secondaryCellGroup->spCellConfig->spCellConfigDedicated->bwp_InactivityTimer = NULL;
- secondaryCellGroup->spCellConfig->spCellConfigDedicated->defaultDownlinkBWP_Id = NULL;
- secondaryCellGroup->spCellConfig->spCellConfigDedicated->defaultDownlinkBWP_Id = calloc(1, sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->defaultDownlinkBWP_Id));
- *secondaryCellGroup->spCellConfig->spCellConfigDedicated->defaultDownlinkBWP_Id = 1;
-
- if (!servingcellconfigdedicated) {
-   secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig=calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig));
- }
+  NR_BWP_UplinkDedicated_t *initialUplinkBWP = calloc(1,sizeof(*initialUplinkBWP));
+  secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP = initialUplinkBWP;
+  initialUplinkBWP->pucch_Config = NULL;
+  initialUplinkBWP->pusch_Config = calloc(1,sizeof(*initialUplinkBWP->pusch_Config));
+  initialUplinkBWP->pusch_Config->present = NR_SetupRelease_PUSCH_Config_PR_setup;
 
- NR_BWP_UplinkDedicated_t *initialUplinkBWP = calloc(1,sizeof(*initialUplinkBWP));
- secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP = initialUplinkBWP;
- initialUplinkBWP->pucch_Config = NULL;
- initialUplinkBWP->pusch_Config = calloc(1,sizeof(*initialUplinkBWP->pusch_Config));
- initialUplinkBWP->pusch_Config->present = NR_SetupRelease_PUSCH_Config_PR_setup;
- NR_PUSCH_Config_t *pusch_Config = NULL;
- if (servingcellconfigdedicated) {
-   pusch_Config = servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup;
- } else {
-   pusch_Config = calloc(1,sizeof(*pusch_Config));
- }
- initialUplinkBWP->pusch_Config->choice.setup = pusch_Config;
- pusch_Config->txConfig=calloc(1,sizeof(*pusch_Config->txConfig));
- *pusch_Config->txConfig= NR_PUSCH_Config__txConfig_codebook;
- pusch_Config->dmrs_UplinkForPUSCH_MappingTypeA = NULL;
- if (!servingcellconfigdedicated) {
-  pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB = calloc(1,sizeof(*pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB));
-  pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->present = NR_SetupRelease_DMRS_UplinkConfig_PR_setup;
-  pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup = calloc(1,sizeof(*pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup));
- }
- NR_DMRS_UplinkConfig_t *NR_DMRS_UplinkConfig = pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup;
- NR_DMRS_UplinkConfig->dmrs_Type = NULL;
- NR_DMRS_UplinkConfig->dmrs_AdditionalPosition = calloc(1,sizeof(*NR_DMRS_UplinkConfig->dmrs_AdditionalPosition));
- *NR_DMRS_UplinkConfig->dmrs_AdditionalPosition = NR_DMRS_UplinkConfig__dmrs_AdditionalPosition_pos0;
- if (!servingcellconfigdedicated) {
-   NR_DMRS_UplinkConfig->phaseTrackingRS=NULL;
- }
- NR_DMRS_UplinkConfig->maxLength=NULL;
- NR_DMRS_UplinkConfig->transformPrecodingDisabled = calloc(1,sizeof(*NR_DMRS_UplinkConfig->transformPrecodingDisabled));
- NR_DMRS_UplinkConfig->transformPrecodingDisabled->scramblingID0 = NULL;
- NR_DMRS_UplinkConfig->transformPrecodingDisabled->scramblingID1 = NULL;
- NR_DMRS_UplinkConfig->transformPrecodingEnabled = NULL;
- pusch_Config->pusch_PowerControl = calloc(1,sizeof(*pusch_Config->pusch_PowerControl));
- pusch_Config->pusch_PowerControl->tpc_Accumulation = NULL;
- pusch_Config->pusch_PowerControl->msg3_Alpha = calloc(1,sizeof(*pusch_Config->pusch_PowerControl->msg3_Alpha));
- *pusch_Config->pusch_PowerControl->msg3_Alpha = NR_Alpha_alpha1;
- pusch_Config->pusch_PowerControl->p0_NominalWithoutGrant = NULL;
- pusch_Config->pusch_PowerControl->p0_AlphaSets = calloc(1,sizeof(*pusch_Config->pusch_PowerControl->p0_AlphaSets));
- NR_P0_PUSCH_AlphaSet_t *aset = calloc(1,sizeof(*aset));
- aset->p0_PUSCH_AlphaSetId=0;
- aset->p0=calloc(1,sizeof(*aset->p0));
- *aset->p0 = 0;
- aset->alpha=calloc(1,sizeof(*aset->alpha));
- *aset->alpha=NR_Alpha_alpha1;
- ASN_SEQUENCE_ADD(&pusch_Config->pusch_PowerControl->p0_AlphaSets->list,aset);
- pusch_Config->pusch_PowerControl->pathlossReferenceRSToAddModList = NULL;
- pusch_Config->pusch_PowerControl->pathlossReferenceRSToReleaseList = NULL;
- pusch_Config->pusch_PowerControl->twoPUSCH_PC_AdjustmentStates = NULL;
- pusch_Config->pusch_PowerControl->deltaMCS = NULL;
- pusch_Config->pusch_PowerControl->sri_PUSCH_MappingToAddModList = NULL;
- pusch_Config->pusch_PowerControl->sri_PUSCH_MappingToReleaseList = NULL;
- pusch_Config->frequencyHopping=NULL;
- pusch_Config->frequencyHoppingOffsetLists=NULL;
- pusch_Config->resourceAllocation = NR_PUSCH_Config__resourceAllocation_resourceAllocationType1;
- pusch_Config->pusch_TimeDomainAllocationList = NULL;
- pusch_Config->pusch_AggregationFactor=NULL;
- pusch_Config->mcs_Table=NULL;
- pusch_Config->transformPrecoder= NULL;
- pusch_Config->mcs_TableTransformPrecoder=NULL;
- /* if msg3_transformprecoding is set in conf file - pusch config should not disable it */
- if (servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg3_transformPrecoder == NULL) {
+  NR_PUSCH_Config_t *pusch_Config = NULL;
+  if (servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList) {
+    pusch_Config = servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup;
+  } else {
+    pusch_Config = calloc(1,sizeof(*pusch_Config));
+  }
+  initialUplinkBWP->pusch_Config->choice.setup = pusch_Config;
+  pusch_Config->txConfig=calloc(1,sizeof(*pusch_Config->txConfig));
+  *pusch_Config->txConfig= NR_PUSCH_Config__txConfig_codebook;
+  pusch_Config->dmrs_UplinkForPUSCH_MappingTypeA = NULL;
+  if (!pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB) {
+    pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB = calloc(1,sizeof(*pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB));
+    pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->present = NR_SetupRelease_DMRS_UplinkConfig_PR_setup;
+    pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup = calloc(1,sizeof(*pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup));
+  }
+  NR_DMRS_UplinkConfig_t *NR_DMRS_UplinkConfig = pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup;
+  NR_DMRS_UplinkConfig->dmrs_Type = NULL;
+  NR_DMRS_UplinkConfig->dmrs_AdditionalPosition = calloc(1,sizeof(*NR_DMRS_UplinkConfig->dmrs_AdditionalPosition));
+  *NR_DMRS_UplinkConfig->dmrs_AdditionalPosition = NR_DMRS_UplinkConfig__dmrs_AdditionalPosition_pos0;
+  if (!servingcellconfigdedicated) {
+    NR_DMRS_UplinkConfig->phaseTrackingRS=NULL;
+  }
+  NR_DMRS_UplinkConfig->maxLength=NULL;
+  NR_DMRS_UplinkConfig->transformPrecodingDisabled = calloc(1,sizeof(*NR_DMRS_UplinkConfig->transformPrecodingDisabled));
+  NR_DMRS_UplinkConfig->transformPrecodingDisabled->scramblingID0 = NULL;
+  NR_DMRS_UplinkConfig->transformPrecodingDisabled->scramblingID1 = NULL;
+  NR_DMRS_UplinkConfig->transformPrecodingEnabled = NULL;
+  pusch_Config->pusch_PowerControl = calloc(1,sizeof(*pusch_Config->pusch_PowerControl));
+  pusch_Config->pusch_PowerControl->tpc_Accumulation = NULL;
+  pusch_Config->pusch_PowerControl->msg3_Alpha = calloc(1,sizeof(*pusch_Config->pusch_PowerControl->msg3_Alpha));
+  *pusch_Config->pusch_PowerControl->msg3_Alpha = NR_Alpha_alpha1;
+  pusch_Config->pusch_PowerControl->p0_NominalWithoutGrant = NULL;
+  pusch_Config->pusch_PowerControl->p0_AlphaSets = calloc(1,sizeof(*pusch_Config->pusch_PowerControl->p0_AlphaSets));
+  NR_P0_PUSCH_AlphaSet_t *aset = calloc(1,sizeof(*aset));
+  aset->p0_PUSCH_AlphaSetId=0;
+  aset->p0=calloc(1,sizeof(*aset->p0));
+  *aset->p0 = 0;
+  aset->alpha=calloc(1,sizeof(*aset->alpha));
+  *aset->alpha=NR_Alpha_alpha1;
+  ASN_SEQUENCE_ADD(&pusch_Config->pusch_PowerControl->p0_AlphaSets->list,aset);
+  pusch_Config->pusch_PowerControl->pathlossReferenceRSToAddModList = NULL;
+  pusch_Config->pusch_PowerControl->pathlossReferenceRSToReleaseList = NULL;
+  pusch_Config->pusch_PowerControl->twoPUSCH_PC_AdjustmentStates = NULL;
+  pusch_Config->pusch_PowerControl->deltaMCS = NULL;
+  pusch_Config->pusch_PowerControl->sri_PUSCH_MappingToAddModList = NULL;
+  pusch_Config->pusch_PowerControl->sri_PUSCH_MappingToReleaseList = NULL;
+  pusch_Config->frequencyHopping=NULL;
+  pusch_Config->frequencyHoppingOffsetLists=NULL;
+  pusch_Config->resourceAllocation = NR_PUSCH_Config__resourceAllocation_resourceAllocationType1;
+  pusch_Config->pusch_TimeDomainAllocationList = NULL;
+  pusch_Config->pusch_AggregationFactor=NULL;
+  pusch_Config->mcs_Table=NULL;
+  pusch_Config->transformPrecoder= NULL;
+  pusch_Config->mcs_TableTransformPrecoder=NULL;
+  /* if msg3_transformprecoding is set in conf file - pusch config should not disable it */
+  if (servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg3_transformPrecoder == NULL) {
     pusch_Config->transformPrecoder=calloc(1,sizeof(*pusch_Config->transformPrecoder));
     *pusch_Config->transformPrecoder = NR_PUSCH_Config__transformPrecoder_disabled;
- }
- pusch_Config->codebookSubset=calloc(1,sizeof(*pusch_Config->codebookSubset));
- *pusch_Config->codebookSubset = NR_PUSCH_Config__codebookSubset_nonCoherent;
- pusch_Config->maxRank=calloc(1,sizeof(*pusch_Config->maxRank));
- *pusch_Config->maxRank= 1;
- pusch_Config->rbg_Size=NULL;
- pusch_Config->uci_OnPUSCH=NULL;
- pusch_Config->tp_pi2BPSK=NULL;
+  }
+  pusch_Config->codebookSubset=calloc(1,sizeof(*pusch_Config->codebookSubset));
+  *pusch_Config->codebookSubset = NR_PUSCH_Config__codebookSubset_nonCoherent;
+  pusch_Config->maxRank=calloc(1,sizeof(*pusch_Config->maxRank));
+  *pusch_Config->maxRank= configuration->pusch_AntennaPorts;
+  pusch_Config->rbg_Size=NULL;
+  pusch_Config->uci_OnPUSCH=NULL;
+  pusch_Config->tp_pi2BPSK=NULL;
 
- /*------------------------------TRANSFORM PRECODING- -----------------------------------------------------------------------*/
+  /*------------------------------TRANSFORM PRECODING- -----------------------------------------------------------------------*/
 
- uint8_t transform_precoding = NR_PUSCH_Config__transformPrecoder_disabled;
+  uint8_t transformPrecoder = NR_PUSCH_Config__transformPrecoder_disabled;
 
- // TBD: configure this from .conf file, Dedicated params cannot yet be configured in .conf file.
- // Enable this to test transform precoding enabled from dedicated config.
- /*if (pusch_Config->transformPrecoder == NULL)
-    pusch_Config->transformPrecoder=calloc(1,sizeof(*pusch_Config->transformPrecoder));
+  // TBD: configure this from .conf file, Dedicated params cannot yet be configured in .conf file.
+  // Enable this to test transform precoding enabled from dedicated config.
+  /*if (pusch_Config->transformPrecoder == NULL)
+     pusch_Config->transformPrecoder=calloc(1,sizeof(*pusch_Config->transformPrecoder));
 
- *pusch_Config->transformPrecoder = NR_PUSCH_Config__transformPrecoder_enabled;  */
+  *pusch_Config->transformPrecoder = NR_PUSCH_Config__transformPrecoder_enabled;  */
   // END -------
 
- if (pusch_Config->transformPrecoder == NULL) {
-  if (servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg3_transformPrecoder != NULL)
-    transform_precoding = NR_PUSCH_Config__transformPrecoder_enabled;
- }
- else
-    transform_precoding = *pusch_Config->transformPrecoder;
+  if (pusch_Config->transformPrecoder == NULL) {
+    if (servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg3_transformPrecoder != NULL)
+      transformPrecoder = NR_PUSCH_Config__transformPrecoder_enabled;
+  }
+  else
+    transformPrecoder = *pusch_Config->transformPrecoder;
 
 
- if (transform_precoding == NR_PUSCH_Config__transformPrecoder_enabled ) {
+  if (transformPrecoder == NR_PUSCH_Config__transformPrecoder_enabled ) {
     /* Enable DMRS uplink config for transform precoding enabled */
     NR_DMRS_UplinkConfig->transformPrecodingEnabled = calloc(1,sizeof(*NR_DMRS_UplinkConfig->transformPrecodingEnabled));
     NR_DMRS_UplinkConfig->transformPrecodingEnabled->nPUSCH_Identity = NULL;
     NR_DMRS_UplinkConfig->transformPrecodingEnabled->sequenceGroupHopping = NULL;
     NR_DMRS_UplinkConfig->transformPrecodingEnabled->sequenceHopping = NULL;
     NR_DMRS_UplinkConfig->transformPrecodingEnabled->ext1 = NULL;
-
     LOG_I(RRC,"TRANSFORM PRECODING ENABLED......\n");
-
   }
- /*----------------------------------------------------------------------------------------------------------------------------*/ 
-
- initialUplinkBWP->srs_Config = calloc(1,sizeof(*initialUplinkBWP->srs_Config));
- initialUplinkBWP->srs_Config->present = NR_SetupRelease_SRS_Config_PR_setup;
- NR_SRS_Config_t *srs_Config = calloc(1,sizeof(*srs_Config));
- initialUplinkBWP->srs_Config->choice.setup=srs_Config;
- srs_Config->srs_ResourceSetToReleaseList=NULL;
- srs_Config->srs_ResourceSetToAddModList=calloc(1,sizeof(*srs_Config->srs_ResourceSetToAddModList));
- NR_SRS_ResourceSet_t *srs_resset0=calloc(1,sizeof(*srs_resset0));
- srs_resset0->srs_ResourceSetId = 0;
- srs_resset0->srs_ResourceIdList=calloc(1,sizeof(*srs_resset0->srs_ResourceIdList));
- NR_SRS_ResourceId_t *srs_resset0_id=calloc(1,sizeof(*srs_resset0_id));
- *srs_resset0_id=0;
- ASN_SEQUENCE_ADD(&srs_resset0->srs_ResourceIdList->list,srs_resset0_id);
- srs_Config->srs_ResourceToReleaseList=NULL;
+
+  initialUplinkBWP->srs_Config = calloc(1,sizeof(*initialUplinkBWP->srs_Config));
+  initialUplinkBWP->srs_Config->present = NR_SetupRelease_SRS_Config_PR_setup;
+
+  NR_SRS_Config_t *srs_Config = calloc(1,sizeof(*srs_Config));
+  initialUplinkBWP->srs_Config->choice.setup=srs_Config;
+  srs_Config->srs_ResourceSetToReleaseList=NULL;
+  srs_Config->srs_ResourceSetToAddModList=calloc(1,sizeof(*srs_Config->srs_ResourceSetToAddModList));
+  NR_SRS_ResourceSet_t *srs_resset0=calloc(1,sizeof(*srs_resset0));
+  srs_resset0->srs_ResourceSetId = 0;
+  srs_resset0->srs_ResourceIdList=calloc(1,sizeof(*srs_resset0->srs_ResourceIdList));
+  NR_SRS_ResourceId_t *srs_resset0_id=calloc(1,sizeof(*srs_resset0_id));
+  *srs_resset0_id=0;
+  ASN_SEQUENCE_ADD(&srs_resset0->srs_ResourceIdList->list,srs_resset0_id);
+  srs_Config->srs_ResourceToReleaseList=NULL;
 
   if (configuration->do_SRS) {
     srs_resset0->resourceType.present =  NR_SRS_ResourceSet__resourceType_PR_periodic;
@@ -786,35 +941,35 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
     srs_resset0->resourceType.choice.aperiodic->ext1=NULL;
   }
 
- srs_resset0->usage=NR_SRS_ResourceSet__usage_codebook;
- srs_resset0->alpha = calloc(1,sizeof(*srs_resset0->alpha));
- *srs_resset0->alpha = NR_Alpha_alpha1;
- srs_resset0->p0=calloc(1,sizeof(*srs_resset0->p0));
- *srs_resset0->p0=-80;
- srs_resset0->pathlossReferenceRS=NULL;
- srs_resset0->srs_PowerControlAdjustmentStates=NULL;
- ASN_SEQUENCE_ADD(&srs_Config->srs_ResourceSetToAddModList->list,srs_resset0);
- srs_Config->srs_ResourceToReleaseList=NULL;
- srs_Config->srs_ResourceToAddModList=calloc(1,sizeof(*srs_Config->srs_ResourceToAddModList));
- NR_SRS_Resource_t *srs_res0=calloc(1,sizeof(*srs_res0));
- srs_res0->srs_ResourceId=0;
- srs_res0->nrofSRS_Ports=NR_SRS_Resource__nrofSRS_Ports_port1;
- srs_res0->ptrs_PortIndex=NULL;
- srs_res0->transmissionComb.present=NR_SRS_Resource__transmissionComb_PR_n2; 
- srs_res0->transmissionComb.choice.n2=calloc(1,sizeof(*srs_res0->transmissionComb.choice.n2));
- srs_res0->transmissionComb.choice.n2->combOffset_n2=0;
- srs_res0->transmissionComb.choice.n2->cyclicShift_n2=0;
- srs_res0->resourceMapping.startPosition = 2 + uid%2;
- srs_res0->resourceMapping.nrofSymbols=NR_SRS_Resource__resourceMapping__nrofSymbols_n1;
- srs_res0->resourceMapping.repetitionFactor=NR_SRS_Resource__resourceMapping__repetitionFactor_n1;
- srs_res0->freqDomainPosition=0;
- srs_res0->freqDomainShift=0;
- srs_res0->freqHopping.b_SRS=0;
- srs_res0->freqHopping.b_hop=0;
- srs_res0->freqHopping.c_SRS = rrc_get_max_nr_csrs(
-     NRRIV2BW(servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->genericParameters.locationAndBandwidth, 275),
-     srs_res0->freqHopping.b_SRS);
- srs_res0->groupOrSequenceHopping=NR_SRS_Resource__groupOrSequenceHopping_neither;
+  srs_resset0->usage=NR_SRS_ResourceSet__usage_codebook;
+  srs_resset0->alpha = calloc(1,sizeof(*srs_resset0->alpha));
+  *srs_resset0->alpha = NR_Alpha_alpha1;
+  srs_resset0->p0=calloc(1,sizeof(*srs_resset0->p0));
+  *srs_resset0->p0=-80;
+  srs_resset0->pathlossReferenceRS=NULL;
+  srs_resset0->srs_PowerControlAdjustmentStates=NULL;
+  ASN_SEQUENCE_ADD(&srs_Config->srs_ResourceSetToAddModList->list,srs_resset0);
+  srs_Config->srs_ResourceToReleaseList=NULL;
+  srs_Config->srs_ResourceToAddModList=calloc(1,sizeof(*srs_Config->srs_ResourceToAddModList));
+  NR_SRS_Resource_t *srs_res0=calloc(1,sizeof(*srs_res0));
+  srs_res0->srs_ResourceId=0;
+  srs_res0->nrofSRS_Ports=NR_SRS_Resource__nrofSRS_Ports_port1;
+  srs_res0->ptrs_PortIndex=NULL;
+  srs_res0->transmissionComb.present=NR_SRS_Resource__transmissionComb_PR_n2;
+  srs_res0->transmissionComb.choice.n2=calloc(1,sizeof(*srs_res0->transmissionComb.choice.n2));
+  srs_res0->transmissionComb.choice.n2->combOffset_n2=0;
+  srs_res0->transmissionComb.choice.n2->cyclicShift_n2=0;
+  srs_res0->resourceMapping.startPosition = 2 + uid%2;
+  srs_res0->resourceMapping.nrofSymbols=NR_SRS_Resource__resourceMapping__nrofSymbols_n1;
+  srs_res0->resourceMapping.repetitionFactor=NR_SRS_Resource__resourceMapping__repetitionFactor_n1;
+  srs_res0->freqDomainPosition=0;
+  srs_res0->freqDomainShift=0;
+  srs_res0->freqHopping.b_SRS=0;
+  srs_res0->freqHopping.b_hop=0;
+  srs_res0->freqHopping.c_SRS = rrc_get_max_nr_csrs(
+      NRRIV2BW(servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->genericParameters.locationAndBandwidth, 275),
+      srs_res0->freqHopping.b_SRS);
+  srs_res0->groupOrSequenceHopping=NR_SRS_Resource__groupOrSequenceHopping_neither;
 
   if (configuration->do_SRS) {
     srs_res0->resourceType.present= NR_SRS_Resource__resourceType_PR_periodic;
@@ -826,174 +981,60 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
     srs_res0->resourceType.choice.aperiodic=calloc(1,sizeof(*srs_res0->resourceType.choice.aperiodic));
   }
 
- srs_res0->sequenceId=40;
- srs_res0->spatialRelationInfo=calloc(1,sizeof(*srs_res0->spatialRelationInfo));
- srs_res0->spatialRelationInfo->servingCellId=NULL;
- srs_res0->spatialRelationInfo->referenceSignal.present=NR_SRS_SpatialRelationInfo__referenceSignal_PR_csi_RS_Index;
- srs_res0->spatialRelationInfo->referenceSignal.choice.csi_RS_Index=0;
- ASN_SEQUENCE_ADD(&srs_Config->srs_ResourceToAddModList->list,srs_res0);
-
- secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToReleaseList = NULL;
- NR_BWP_Uplink_t *ubwp = NULL;
- if (servingcellconfigdedicated) {
-   ubwp = servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[0];
- } else {
-   secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList = calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList));
-   ubwp = calloc(1,sizeof(*ubwp));
- }
- ubwp->bwp_Id=1;
- ubwp->bwp_Common = calloc(1,sizeof(*ubwp->bwp_Common));
- // copy bwp_Common from Initial UL BWP except for bandwidth
- memcpy((void*)&ubwp->bwp_Common->genericParameters,
-	(void*)&servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->genericParameters,
-	sizeof(servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->genericParameters));
- ubwp->bwp_Common->genericParameters.locationAndBandwidth=PRBalloc_to_locationandbandwidth(servingcellconfigcommon->uplinkConfigCommon->frequencyInfoUL->scs_SpecificCarrierList.list.array[0]->carrierBandwidth,0);
-
- ubwp->bwp_Common->rach_ConfigCommon  = servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon;
- ubwp->bwp_Common->pusch_ConfigCommon = servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon;
- ubwp->bwp_Common->pucch_ConfigCommon = servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->pucch_ConfigCommon;
- 
- if (!servingcellconfigdedicated) {
-   ubwp->bwp_Dedicated = calloc(1,sizeof(*ubwp->bwp_Dedicated));
- }
- ubwp->bwp_Dedicated->pucch_Config = calloc(1,sizeof(*ubwp->bwp_Dedicated->pucch_Config));
- ubwp->bwp_Dedicated->pucch_Config->present = NR_SetupRelease_PUCCH_Config_PR_setup;
- NR_PUCCH_Config_t *pucch_Config = calloc(1,sizeof(*pucch_Config));
- ubwp->bwp_Dedicated->pucch_Config->choice.setup=pucch_Config;
- pucch_Config->resourceSetToAddModList = calloc(1,sizeof(*pucch_Config->resourceSetToAddModList));
- pucch_Config->resourceSetToReleaseList = NULL;
- NR_PUCCH_ResourceSet_t *pucchresset0=calloc(1,sizeof(*pucchresset0));
- NR_PUCCH_ResourceSet_t *pucchresset1=calloc(1,sizeof(*pucchresset1));
- pucchresset0->pucch_ResourceSetId = 0;
- NR_PUCCH_ResourceId_t *pucchresset0id0=calloc(1,sizeof(*pucchresset0id0));
- *pucchresset0id0=1;
- ASN_SEQUENCE_ADD(&pucchresset0->resourceList.list,pucchresset0id0);
- pucchresset0->maxPayloadSize=NULL;
-
- ASN_SEQUENCE_ADD(&pucch_Config->resourceSetToAddModList->list,pucchresset0);
-
- pucchresset1->pucch_ResourceSetId = 1;
- NR_PUCCH_ResourceId_t *pucchresset1id0=calloc(1,sizeof(*pucchresset1id0));
- *pucchresset1id0=2;
- ASN_SEQUENCE_ADD(&pucchresset1->resourceList.list,pucchresset1id0);
- pucchresset1->maxPayloadSize=NULL;
- ASN_SEQUENCE_ADD(&pucch_Config->resourceSetToAddModList->list,pucchresset1);
-
- pucch_Config->resourceToAddModList = calloc(1,sizeof(*pucch_Config->resourceToAddModList));
- pucch_Config->resourceToReleaseList = NULL;
- NR_PUCCH_Resource_t *pucchres0=calloc(1,sizeof(*pucchres0));
- NR_PUCCH_Resource_t *pucchres2=calloc(1,sizeof(*pucchres2));
-
- pucchres0->pucch_ResourceId=1;
- pucchres0->startingPRB= (8 + uid) % curr_bwp;
- pucchres0->intraSlotFrequencyHopping=NULL;
- pucchres0->secondHopPRB=NULL;
- pucchres0->format.present= NR_PUCCH_Resource__format_PR_format0;
- pucchres0->format.choice.format0=calloc(1,sizeof(*pucchres0->format.choice.format0));
- pucchres0->format.choice.format0->initialCyclicShift=0;
- pucchres0->format.choice.format0->nrofSymbols=1;
- pucchres0->format.choice.format0->startingSymbolIndex=13;
- ASN_SEQUENCE_ADD(&pucch_Config->resourceToAddModList->list,pucchres0);
-
- pucchres2->pucch_ResourceId=2;
- pucchres2->startingPRB=0;
- pucchres2->intraSlotFrequencyHopping=NULL;
- pucchres2->secondHopPRB=NULL;
- pucchres2->format.present= NR_PUCCH_Resource__format_PR_format2;
- pucchres2->format.choice.format2=calloc(1,sizeof(*pucchres2->format.choice.format2));
- pucchres2->format.choice.format2->nrofPRBs=8;
- pucchres2->format.choice.format2->nrofSymbols=1;
- pucchres2->format.choice.format2->startingSymbolIndex=13;
- ASN_SEQUENCE_ADD(&pucch_Config->resourceToAddModList->list,pucchres2);
-
- pucch_Config->format2=calloc(1,sizeof(*pucch_Config->format2));
- pucch_Config->format2->present=NR_SetupRelease_PUCCH_FormatConfig_PR_setup;
- NR_PUCCH_FormatConfig_t *pucchfmt2 = calloc(1,sizeof(*pucchfmt2));
- pucch_Config->format2->choice.setup = pucchfmt2;
- pucchfmt2->interslotFrequencyHopping=NULL;
- pucchfmt2->additionalDMRS=NULL;
- pucchfmt2->maxCodeRate=calloc(1,sizeof(*pucchfmt2->maxCodeRate));
- *pucchfmt2->maxCodeRate=NR_PUCCH_MaxCodeRate_zeroDot35;
- pucchfmt2->nrofSlots=NULL;
- pucchfmt2->pi2BPSK=NULL;
- pucchfmt2->simultaneousHARQ_ACK_CSI=calloc(1,sizeof(*pucchfmt2->simultaneousHARQ_ACK_CSI));
- *pucchfmt2->simultaneousHARQ_ACK_CSI=NR_PUCCH_FormatConfig__simultaneousHARQ_ACK_CSI_true;
-
- // for scheduling requestresource
- pucch_Config->schedulingRequestResourceToAddModList = calloc(1,sizeof(*pucch_Config->schedulingRequestResourceToAddModList));
- NR_SchedulingRequestResourceConfig_t *schedulingRequestResourceConfig = calloc(1,sizeof(*schedulingRequestResourceConfig));
- schedulingRequestResourceConfig->schedulingRequestResourceId = 1;
- schedulingRequestResourceConfig->schedulingRequestID = 0;
- schedulingRequestResourceConfig->periodicityAndOffset = calloc(1,sizeof(*schedulingRequestResourceConfig->periodicityAndOffset));
- schedulingRequestResourceConfig->periodicityAndOffset->present = NR_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl10;
- schedulingRequestResourceConfig->periodicityAndOffset->choice.sl10 = 7;
- schedulingRequestResourceConfig->resource = calloc(1,sizeof(*schedulingRequestResourceConfig->resource));
- *schedulingRequestResourceConfig->resource = 1;
- ASN_SEQUENCE_ADD(&pucch_Config->schedulingRequestResourceToAddModList->list,schedulingRequestResourceConfig);
-
- pucch_Config->schedulingRequestResourceToReleaseList=NULL;
- pucch_Config->multi_CSI_PUCCH_ResourceList=NULL;
- pucch_Config->dl_DataToUL_ACK = calloc(1,sizeof(*pucch_Config->dl_DataToUL_ACK));
- long *delay[8];
- for (int i=0;i<8;i++) {
-   delay[i] = calloc(1,sizeof(*delay[i]));
-   *delay[i] = i + configuration->minRXTXTIME;
-   ASN_SEQUENCE_ADD(&pucch_Config->dl_DataToUL_ACK->list,delay[i]);
- }
- pucch_Config->spatialRelationInfoToAddModList = calloc(1,sizeof(*pucch_Config->spatialRelationInfoToAddModList));
- NR_PUCCH_SpatialRelationInfo_t *pucchspatial = calloc(1,sizeof(*pucchspatial));
- pucchspatial->pucch_SpatialRelationInfoId = 1;
- pucchspatial->servingCellId = NULL;
- if(do_csirs) {
-   pucchspatial->referenceSignal.present = NR_PUCCH_SpatialRelationInfo__referenceSignal_PR_csi_RS_Index;
-   pucchspatial->referenceSignal.choice.csi_RS_Index = 0;
- }
- else {
-   pucchspatial->referenceSignal.present = NR_PUCCH_SpatialRelationInfo__referenceSignal_PR_ssb_Index;
-   pucchspatial->referenceSignal.choice.ssb_Index = 0;
- }
- pucchspatial->pucch_PathlossReferenceRS_Id = 0;
- pucchspatial->p0_PUCCH_Id = 1;
- pucchspatial->closedLoopIndex = NR_PUCCH_SpatialRelationInfo__closedLoopIndex_i0;
- ASN_SEQUENCE_ADD(&pucch_Config->spatialRelationInfoToAddModList->list,pucchspatial);
- pucch_Config->spatialRelationInfoToReleaseList=NULL;
- pucch_Config->pucch_PowerControl=calloc(1,sizeof(*pucch_Config->pucch_PowerControl));
- pucch_Config->pucch_PowerControl->deltaF_PUCCH_f0 = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->deltaF_PUCCH_f0));
- *pucch_Config->pucch_PowerControl->deltaF_PUCCH_f0 = 0;
- pucch_Config->pucch_PowerControl->deltaF_PUCCH_f1 = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->deltaF_PUCCH_f1));
- *pucch_Config->pucch_PowerControl->deltaF_PUCCH_f1 = 0;
- pucch_Config->pucch_PowerControl->deltaF_PUCCH_f2 = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->deltaF_PUCCH_f2));
- *pucch_Config->pucch_PowerControl->deltaF_PUCCH_f2 = 0;
- pucch_Config->pucch_PowerControl->deltaF_PUCCH_f3 = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->deltaF_PUCCH_f3));
- *pucch_Config->pucch_PowerControl->deltaF_PUCCH_f3 = 0;
- pucch_Config->pucch_PowerControl->deltaF_PUCCH_f4 = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->deltaF_PUCCH_f4));
- *pucch_Config->pucch_PowerControl->deltaF_PUCCH_f4 = 0;
- pucch_Config->pucch_PowerControl->p0_Set = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->p0_Set));
- NR_P0_PUCCH_t *p00 = calloc(1,sizeof(*p00));
- p00->p0_PUCCH_Id=1;
- p00->p0_PUCCH_Value = 0;
- ASN_SEQUENCE_ADD(&pucch_Config->pucch_PowerControl->p0_Set->list,p00);
- pucch_Config->pucch_PowerControl->pathlossReferenceRSs = NULL;
-
- if (!servingcellconfigdedicated) {
-   // copy pusch_Config from dedicated initialBWP
-   ubwp->bwp_Dedicated->pusch_Config = calloc(1,sizeof(*ubwp->bwp_Dedicated->pusch_Config));
-   ubwp->bwp_Dedicated->pusch_Config->present = NR_SetupRelease_PUSCH_Config_PR_setup;
-   ubwp->bwp_Dedicated->pusch_Config->choice.setup = pusch_Config;
- }
- ubwp->bwp_Dedicated->configuredGrantConfig = NULL;
- ubwp->bwp_Dedicated->srs_Config = calloc(1,sizeof(*ubwp->bwp_Dedicated->srs_Config));
- ubwp->bwp_Dedicated->srs_Config->present = NR_SetupRelease_SRS_Config_PR_setup;
- ubwp->bwp_Dedicated->srs_Config->choice.setup = srs_Config;
+  srs_res0->sequenceId=40;
+  srs_res0->spatialRelationInfo=calloc(1,sizeof(*srs_res0->spatialRelationInfo));
+  srs_res0->spatialRelationInfo->servingCellId=NULL;
+  srs_res0->spatialRelationInfo->referenceSignal.present=NR_SRS_SpatialRelationInfo__referenceSignal_PR_csi_RS_Index;
+  srs_res0->spatialRelationInfo->referenceSignal.choice.csi_RS_Index=0;
+  ASN_SEQUENCE_ADD(&srs_Config->srs_ResourceToAddModList->list,srs_res0);
 
- ubwp->bwp_Dedicated->beamFailureRecoveryConfig = NULL;
+  /// Dedicated BWPs
 
- if (!servingcellconfigdedicated) {
-   ASN_SEQUENCE_ADD(&secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList->list,ubwp);
- }
+  // Downlink BWPs
+  int n_dl_bwp = 1;
+  if (servingcellconfigdedicated && servingcellconfigdedicated->downlinkBWP_ToAddModList) {
+    n_dl_bwp = servingcellconfigdedicated->downlinkBWP_ToAddModList->list.count;
+  }
+  if(n_dl_bwp>0) {
+    secondaryCellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList = calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList));
+    for (int bwp_loop = 0; bwp_loop < n_dl_bwp; bwp_loop++) {
+      NR_BWP_Downlink_t *bwp = calloc(1,sizeof(*bwp));
+      fill_default_nsa_downlinkBWP(bwp, bwp_loop, secondaryCellGroup, servingcellconfigdedicated, servingcellconfigcommon, configuration, uecap, dl_antenna_ports, bitmap);
+      ASN_SEQUENCE_ADD(&secondaryCellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list,bwp);
+    }
+    secondaryCellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id = calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id));
+    *secondaryCellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id = servingcellconfigdedicated->firstActiveDownlinkBWP_Id ? *servingcellconfigdedicated->firstActiveDownlinkBWP_Id : 1;
+    secondaryCellGroup->spCellConfig->spCellConfigDedicated->defaultDownlinkBWP_Id = calloc(1, sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->defaultDownlinkBWP_Id));
+    *secondaryCellGroup->spCellConfig->spCellConfigDedicated->defaultDownlinkBWP_Id = servingcellconfigdedicated->defaultDownlinkBWP_Id ? *servingcellconfigdedicated->defaultDownlinkBWP_Id : 1;
+  }
 
- secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->firstActiveUplinkBWP_Id = calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->firstActiveUplinkBWP_Id));
- *secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->firstActiveUplinkBWP_Id = 1;
+  // Uplink BWPs
+  int n_ul_bwp = 1;
+  if (servingcellconfigdedicated && servingcellconfigdedicated->uplinkConfig && servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList) {
+    n_ul_bwp = servingcellconfigdedicated->uplinkConfig->uplinkBWP_ToAddModList->list.count;
+  }
+  if(n_ul_bwp>0) {
+    secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList = calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList));
+    for (int bwp_loop = 0; bwp_loop < n_ul_bwp; bwp_loop++) {
+      NR_BWP_Uplink_t *ubwp = calloc(1,sizeof(*ubwp));
+      fill_default_nsa_uplinkBWP(ubwp, bwp_loop, servingcellconfigdedicated, servingcellconfigcommon, configuration, uid);
+      ASN_SEQUENCE_ADD(&secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList->list,ubwp);
+    }
+    secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->firstActiveUplinkBWP_Id = calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->firstActiveUplinkBWP_Id));
+    *secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->firstActiveUplinkBWP_Id = servingcellconfigdedicated->uplinkConfig->firstActiveUplinkBWP_Id ? *servingcellconfigdedicated->uplinkConfig->firstActiveUplinkBWP_Id : 1;
+  }
+
+  secondaryCellGroup->spCellConfig->spCellConfigDedicated->bwp_InactivityTimer = NULL;
+  secondaryCellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToReleaseList= NULL;
+  secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToReleaseList = NULL;
+
+  mac_CellGroupConfig->schedulingRequestConfig = calloc(1, sizeof(*mac_CellGroupConfig->schedulingRequestConfig));
+  mac_CellGroupConfig->schedulingRequestConfig->schedulingRequestToAddModList = CALLOC(1,sizeof(*mac_CellGroupConfig->schedulingRequestConfig->schedulingRequestToAddModList));
+  struct NR_SchedulingRequestToAddMod *schedulingrequestlist = CALLOC(1,sizeof(*schedulingrequestlist));
+  schedulingrequestlist->schedulingRequestId  = 0;
+  schedulingrequestlist->sr_ProhibitTimer = NULL;
+  schedulingrequestlist->sr_TransMax      = NR_SchedulingRequestToAddMod__sr_TransMax_n64;
+  ASN_SEQUENCE_ADD(&(mac_CellGroupConfig->schedulingRequestConfig->schedulingRequestToAddModList->list),schedulingrequestlist);
 
  secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->pusch_ServingCellConfig = calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->pusch_ServingCellConfig));
  NR_PUSCH_ServingCellConfig_t *pusch_scc = calloc(1,sizeof(*pusch_scc));
@@ -1008,9 +1049,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
  pusch_scc->ext1->processingType2Enabled = NULL;
 
  secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->carrierSwitching = NULL;
-
  secondaryCellGroup->spCellConfig->spCellConfigDedicated->supplementaryUplink=NULL;
-
  secondaryCellGroup->spCellConfig->spCellConfigDedicated->pdcch_ServingCellConfig=NULL;
 
  secondaryCellGroup->spCellConfig->spCellConfigDedicated->pdsch_ServingCellConfig=calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->pdsch_ServingCellConfig));
@@ -1034,39 +1073,9 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
  NR_CSI_MeasConfig_t *csi_MeasConfig = calloc(1,sizeof(*csi_MeasConfig));
  secondaryCellGroup->spCellConfig->spCellConfigDedicated->csi_MeasConfig->choice.setup = csi_MeasConfig;
 
- if (do_csirs && dl_antenna_ports > 1) {
-   csi_MeasConfig->csi_IM_ResourceToAddModList = calloc(1,sizeof(*csi_MeasConfig->csi_IM_ResourceToAddModList));
-   NR_CSI_IM_Resource_t *imres0 = calloc(1,sizeof(*imres0));
-   imres0->csi_IM_ResourceId = 0;
-   imres0->csi_IM_ResourceElementPattern = calloc(1,sizeof(*imres0->csi_IM_ResourceElementPattern));
-   imres0->csi_IM_ResourceElementPattern->present = NR_CSI_IM_Resource__csi_IM_ResourceElementPattern_PR_pattern1;
-   imres0->csi_IM_ResourceElementPattern->choice.pattern1 = calloc(1,sizeof(*imres0->csi_IM_ResourceElementPattern->choice.pattern1));
-   imres0->csi_IM_ResourceElementPattern->choice.pattern1->subcarrierLocation_p1 = NR_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern1__subcarrierLocation_p1_s4;
-   imres0->csi_IM_ResourceElementPattern->choice.pattern1->symbolLocation_p1 = 6;
-   imres0->freqBand = calloc(1,sizeof(*imres0->freqBand));
-   imres0->freqBand->startingRB = 0;
-   imres0->freqBand->nrofRBs = ((curr_bwp>>2)+(curr_bwp%4>0))<<2;
-   imres0->periodicityAndOffset = calloc(1,sizeof(*imres0->periodicityAndOffset));
-   imres0->periodicityAndOffset->present = NR_CSI_ResourcePeriodicityAndOffset_PR_slots320;
-   imres0->periodicityAndOffset->choice.slots320 = 0;
-   ASN_SEQUENCE_ADD(&csi_MeasConfig->csi_IM_ResourceToAddModList->list,imres0);
-   csi_MeasConfig->csi_IM_ResourceSetToAddModList = calloc(1,sizeof(*csi_MeasConfig->csi_IM_ResourceSetToAddModList));
-   NR_CSI_IM_ResourceSet_t *imset0 = calloc(1,sizeof(*imset0));
-   imset0->csi_IM_ResourceSetId = 0;
-   NR_CSI_IM_ResourceId_t *res0 = calloc(1,sizeof(*res0));
-   *res0 = 0;
-   ASN_SEQUENCE_ADD(&imset0->csi_IM_Resources,res0);
-   ASN_SEQUENCE_ADD(&csi_MeasConfig->csi_IM_ResourceSetToAddModList->list,imset0);
- }
- else {
-   csi_MeasConfig->csi_IM_ResourceToAddModList = NULL;
-   csi_MeasConfig->csi_IM_ResourceSetToAddModList = NULL;
- }
-
- csi_MeasConfig->csi_IM_ResourceToReleaseList = NULL;
- csi_MeasConfig->csi_IM_ResourceSetToReleaseList = NULL;
-
+  int curr_bwp = NRRIV2BW(PRBalloc_to_locationandbandwidth(servingcellconfigcommon->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList.list.array[0]->carrierBandwidth,0),275);
  config_csirs(servingcellconfigcommon, csi_MeasConfig, uid, dl_antenna_ports, curr_bwp, do_csirs);
+ config_csiim(do_csirs, dl_antenna_ports, curr_bwp, csi_MeasConfig);
 
  csi_MeasConfig->csi_SSB_ResourceSetToAddModList = calloc(1,sizeof(*csi_MeasConfig->csi_SSB_ResourceSetToAddModList));
  csi_MeasConfig->csi_SSB_ResourceSetToReleaseList = NULL;
@@ -1268,10 +1277,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
    ASN_SEQUENCE_ADD(&csirep2->reportConfigType.choice.periodic->pucch_CSI_ResourceList.list,pucchcsires1);
    csirep2->reportQuantity.present = NR_CSI_ReportConfig__reportQuantity_PR_ssb_Index_RSRP;
    csirep2->reportQuantity.choice.ssb_Index_RSRP=(NULL_t)0;
-   csirep2->reportFreqConfiguration = calloc(1,sizeof(*csirep2->reportFreqConfiguration));
-   csirep2->reportFreqConfiguration->cqi_FormatIndicator=NR_CSI_ReportConfig__reportFreqConfiguration__cqi_FormatIndicator_widebandCQI;
-   csirep2->reportFreqConfiguration->pmi_FormatIndicator=NR_CSI_ReportConfig__reportFreqConfiguration__pmi_FormatIndicator_widebandPMI;
-   csirep2->reportFreqConfiguration->csi_ReportingBand=NULL;
+   csirep2->reportFreqConfiguration = NULL;
    csirep2->timeRestrictionForChannelMeasurements= NR_CSI_ReportConfig__timeRestrictionForChannelMeasurements_configured;
    csirep2->timeRestrictionForInterferenceMeasurements=NR_CSI_ReportConfig__timeRestrictionForInterferenceMeasurements_configured;
    csirep2->codebookConfig= NULL;
@@ -1295,8 +1301,12 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
  secondaryCellGroup->spCellConfig->spCellConfigDedicated->pathlossReferenceLinking=NULL;
  secondaryCellGroup->spCellConfig->spCellConfigDedicated->servingCellMO=NULL;
 
-}
+  *servingcellconfigdedicated = *secondaryCellGroup->spCellConfig->spCellConfigDedicated;
 
+  if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) {
+    xer_fprint(stdout, &asn_DEF_NR_SpCellConfig, (void *)secondaryCellGroup->spCellConfig);
+  }
+}
 
 void fill_default_reconfig(NR_ServingCellConfigCommon_t *servingcellconfigcommon,
                            NR_ServingCellConfig_t *servingcellconfigdedicated,
diff --git a/openair2/RRC/NR_UE/L2_interface_ue.c b/openair2/RRC/NR_UE/L2_interface_ue.c
index 6f0c7fc27fa..b4508e2627d 100644
--- a/openair2/RRC/NR_UE/L2_interface_ue.c
+++ b/openair2/RRC/NR_UE/L2_interface_ue.c
@@ -181,6 +181,6 @@ rrc_data_req_nr_ue(
       TASK_PDCP_UE,
       ctxt_pP->instance,
       message_p);
-    return TRUE; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
+    return true; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
 
 }
diff --git a/openair2/RRC/NR_UE/rrc_UE.c b/openair2/RRC/NR_UE/rrc_UE.c
index 7dca9b27740..53817af48e2 100644
--- a/openair2/RRC/NR_UE/rrc_UE.c
+++ b/openair2/RRC/NR_UE/rrc_UE.c
@@ -1320,11 +1320,11 @@ nr_rrc_ue_process_masterCellGroup(
     //TODO (perform SCell addition/modification as specified in 5.3.5.5.9)
   }
 
-  if( cellGroupConfig->ext2->bh_RLC_ChannelToReleaseList_r16 != NULL){
+  if(cellGroupConfig->ext2 != NULL && cellGroupConfig->ext2->bh_RLC_ChannelToReleaseList_r16 != NULL){
     //TODO (perform the BH RLC channel addition/modification as specified in 5.3.5.5.11)
   }
 
-  if( cellGroupConfig->ext2->bh_RLC_ChannelToAddModList_r16 != NULL){
+  if(cellGroupConfig->ext2 != NULL && cellGroupConfig->ext2->bh_RLC_ChannelToAddModList_r16 != NULL){
     //TODO (perform the BH RLC channel addition/modification as specified in 5.3.5.5.11)
   }
 }
@@ -1340,13 +1340,6 @@ static void rrc_ue_generate_RRCSetupComplete(
   uint8_t size;
   const char *nas_msg;
   int   nas_msg_length;
-  NR_UE_MAC_INST_t *mac = get_mac_inst(0);
-
-  if (mac->cg &&
-      mac->cg->spCellConfig &&
-      mac->cg->spCellConfig->spCellConfigDedicated &&
-      mac->cg->spCellConfig->spCellConfigDedicated->csi_MeasConfig)
-    AssertFatal(1==0,"2 > csi_MeasConfig is not null\n");
 
  if (AMF_MODE_ENABLED) {
 #if defined(ITTI_SIM)
@@ -1462,8 +1455,8 @@ int8_t nr_rrc_ue_decode_ccch( const protocol_ctxt_t *const ctxt_pP, const NR_SRB
 	 nr_rrc_ue_process_RadioBearerConfig(ctxt_pP,
 					     gNB_index,
 					     &dl_ccch_msg->message.choice.c1->choice.rrcSetup->criticalExtensions.choice.rrcSetup->radioBearerConfig);
-	 nr_rrc_set_state (ctxt_pP->module_id, RRC_STATE_CONNECTED);
-	 nr_rrc_set_sub_state (ctxt_pP->module_id, RRC_SUB_STATE_CONNECTED);
+	 nr_rrc_set_state (ctxt_pP->module_id, RRC_STATE_CONNECTED_NR);
+	 nr_rrc_set_sub_state (ctxt_pP->module_id, RRC_SUB_STATE_CONNECTED_NR);
 	 NR_UE_rrc_inst[ctxt_pP->module_id].Info[gNB_index].rnti = ctxt_pP->rnti;
 	 rrc_ue_generate_RRCSetupComplete(
 					  ctxt_pP,
@@ -2021,7 +2014,7 @@ nr_rrc_ue_establish_srb2(
    int i, cnt;
 
    if( radioBearerConfig->srb3_ToRelease != NULL){
-     if( *radioBearerConfig->srb3_ToRelease == TRUE){
+     if( *radioBearerConfig->srb3_ToRelease == true){
        //TODO (release the PDCP entity and the srb-Identity of the SRB3.)
      }
    }
diff --git a/openair2/SDAP/nr_sdap/nr_sdap.c b/openair2/SDAP/nr_sdap/nr_sdap.c
index 74ef93aff74..dd7a76920d3 100644
--- a/openair2/SDAP/nr_sdap/nr_sdap.c
+++ b/openair2/SDAP/nr_sdap/nr_sdap.c
@@ -21,19 +21,19 @@
 
 #include "nr_sdap.h"
 
-boolean_t sdap_data_req(protocol_ctxt_t *ctxt_p,
-                        const srb_flag_t srb_flag,
-                        const rb_id_t rb_id,
-                        const mui_t mui,
-                        const confirm_t confirm,
-                        const sdu_size_t sdu_buffer_size,
-                        unsigned char *const sdu_buffer,
-                        const pdcp_transmission_mode_t pt_mode,
-                        const uint32_t *sourceL2Id,
-                        const uint32_t *destinationL2Id,
-                        const uint8_t qfi,
-                        const boolean_t rqi,
-                        const int pdusession_id) {
+bool sdap_data_req(protocol_ctxt_t *ctxt_p,
+                   const srb_flag_t srb_flag,
+                   const rb_id_t rb_id,
+                   const mui_t mui,
+                   const confirm_t confirm,
+                   const sdu_size_t sdu_buffer_size,
+                   unsigned char *const sdu_buffer,
+                   const pdcp_transmission_mode_t pt_mode,
+                   const uint32_t *sourceL2Id,
+                   const uint32_t *destinationL2Id,
+                   const uint8_t qfi,
+                   const bool rqi,
+                   const int pdusession_id) {
   nr_sdap_entity_t *sdap_entity;
   sdap_entity = nr_sdap_get_entity(ctxt_p->rnti, pdusession_id);
 
@@ -42,19 +42,19 @@ boolean_t sdap_data_req(protocol_ctxt_t *ctxt_p,
     return 0;
   }
 
-  boolean_t ret = sdap_entity->tx_entity(sdap_entity,
-                                         ctxt_p,
-                                         srb_flag,
-                                         rb_id,
-                                         mui,
-                                         confirm,
-                                         sdu_buffer_size,
-                                         sdu_buffer,
-                                         pt_mode,
-                                         sourceL2Id,
-                                         destinationL2Id,
-                                         qfi,
-                                         rqi);
+  bool ret = sdap_entity->tx_entity(sdap_entity,
+                                    ctxt_p,
+                                    srb_flag,
+                                    rb_id,
+                                    mui,
+                                    confirm,
+                                    sdu_buffer_size,
+                                    sdu_buffer,
+                                    pt_mode,
+                                    sourceL2Id,
+                                    destinationL2Id,
+                                    qfi,
+                                    rqi);
   return ret;
 }
 
diff --git a/openair2/SDAP/nr_sdap/nr_sdap.h b/openair2/SDAP/nr_sdap/nr_sdap.h
index cd702cfd7f3..5959ca15589 100644
--- a/openair2/SDAP/nr_sdap/nr_sdap.h
+++ b/openair2/SDAP/nr_sdap/nr_sdap.h
@@ -32,20 +32,19 @@
  * Downlink - gNB
  * Uplink   - nrUE
  */
-boolean_t sdap_data_req(protocol_ctxt_t *ctxt_p,
-                        const srb_flag_t srb_flag,
-                        const rb_id_t rb_id,
-                        const mui_t mui,
-                        const confirm_t confirm,
-                        const sdu_size_t sdu_buffer_size,
-                        unsigned char *const sdu_buffer,
-                        const pdcp_transmission_mode_t pt_mode,
-                        const uint32_t *sourceL2Id,
-                        const uint32_t *destinationL2Id,
-                        const uint8_t qfi,
-                        const boolean_t rqi,
-                        const int pdusession_id
-                       );
+bool sdap_data_req(protocol_ctxt_t *ctxt_p,
+                   const srb_flag_t srb_flag,
+                   const rb_id_t rb_id,
+                   const mui_t mui,
+                   const confirm_t confirm,
+                   const sdu_size_t sdu_buffer_size,
+                   unsigned char *const sdu_buffer,
+                   const pdcp_transmission_mode_t pt_mode,
+                   const uint32_t *sourceL2Id,
+                   const uint32_t *destinationL2Id,
+                   const uint8_t qfi,
+                   const bool rqi,
+                   const int pdusession_id);
 
 /*
  * TS 37.324 4.4 Functions
diff --git a/openair2/SDAP/nr_sdap/nr_sdap_entity.c b/openair2/SDAP/nr_sdap/nr_sdap_entity.c
index c5d1c1d6fe1..5e3627296c5 100644
--- a/openair2/SDAP/nr_sdap/nr_sdap_entity.c
+++ b/openair2/SDAP/nr_sdap/nr_sdap_entity.c
@@ -46,23 +46,22 @@ void nr_pdcp_submit_sdap_ctrl_pdu(int rnti, rb_id_t sdap_ctrl_pdu_drb, nr_sdap_u
   return;
 }
 
-static boolean_t nr_sdap_tx_entity(nr_sdap_entity_t *entity,
-                                   protocol_ctxt_t *ctxt_p,
-                                   const srb_flag_t srb_flag,
-                                   const rb_id_t rb_id,
-                                   const mui_t mui,
-                                   const confirm_t confirm,
-                                   const sdu_size_t sdu_buffer_size,
-                                   unsigned char *const sdu_buffer,
-                                   const pdcp_transmission_mode_t pt_mode,
-                                   const uint32_t *sourceL2Id,
-                                   const uint32_t *destinationL2Id,
-                                   const uint8_t qfi,
-                                   const boolean_t rqi
-                                  ) {
+static bool nr_sdap_tx_entity(nr_sdap_entity_t *entity,
+                              protocol_ctxt_t *ctxt_p,
+                              const srb_flag_t srb_flag,
+                              const rb_id_t rb_id,
+                              const mui_t mui,
+                              const confirm_t confirm,
+                              const sdu_size_t sdu_buffer_size,
+                              unsigned char *const sdu_buffer,
+                              const pdcp_transmission_mode_t pt_mode,
+                              const uint32_t *sourceL2Id,
+                              const uint32_t *destinationL2Id,
+                              const uint8_t qfi,
+                              const bool rqi) {
   /* The offset of the SDAP header, it might be 0 if the has_sdap is not true in the pdcp entity. */
   int offset=0;
-  boolean_t ret=false;
+  bool ret = false;
   /*Hardcode DRB ID given from upper layer (ue/enb_tun_read_thread rb_id), it will change if we have SDAP*/
   rb_id_t sdap_drb_id = rb_id;
   int pdcp_ent_has_sdap = 0;
@@ -297,7 +296,7 @@ static void nr_sdap_rx_entity(nr_sdap_entity_t *entity,
   }
 }
 
-void nr_sdap_qfi2drb_map_update(nr_sdap_entity_t *entity, uint8_t qfi, rb_id_t drb, boolean_t hasSdap){
+void nr_sdap_qfi2drb_map_update(nr_sdap_entity_t *entity, uint8_t qfi, rb_id_t drb, bool hasSdap) {
   if(qfi < SDAP_MAX_QFI &&
      qfi > SDAP_MAP_RULE_EMPTY &&
      drb > 0 &&
@@ -390,7 +389,7 @@ void nr_sdap_ue_qfi2drb_config(nr_sdap_entity_t *existing_sdap_entity,
 nr_sdap_entity_t *new_nr_sdap_entity(int has_sdap,
                                      uint16_t rnti,
                                      int pdusession_id,
-                                     boolean_t is_defaultDRB,
+                                     bool is_defaultDRB,
                                      uint8_t drb_identity,
                                      NR_QFI_t *mapped_qfi_2_add,
                                      uint8_t mappedQFIs2AddCount)
@@ -450,7 +449,7 @@ nr_sdap_entity_t *nr_sdap_get_entity(uint16_t rnti, int pdusession_id) {
   if(sdap_entity == NULL)
     return NULL;
 
-  while(sdap_entity->rnti != rnti && sdap_entity->next_entity != NULL) {
+  while(( sdap_entity->rnti != rnti || sdap_entity->pdusession_id != pdusession_id ) && sdap_entity->next_entity != NULL) {
     sdap_entity = sdap_entity->next_entity;
   }
 
@@ -460,6 +459,7 @@ nr_sdap_entity_t *nr_sdap_get_entity(uint16_t rnti, int pdusession_id) {
   return NULL;
 }
 
+
 void delete_nr_sdap_entity(uint16_t rnti) {
   nr_sdap_entity_t *entityPtr, *entityPrev = NULL;
   entityPtr = sdap_info.sdap_entity_llist;
diff --git a/openair2/SDAP/nr_sdap/nr_sdap_entity.h b/openair2/SDAP/nr_sdap/nr_sdap_entity.h
index b46e5bf4e34..635289d4d48 100644
--- a/openair2/SDAP/nr_sdap/nr_sdap_entity.h
+++ b/openair2/SDAP/nr_sdap/nr_sdap_entity.h
@@ -64,7 +64,7 @@ typedef struct nr_sdap_ul_hdr_s {
 
 typedef struct qfi2drb_s {
   rb_id_t drb_id;
-  boolean_t hasSdap;
+  bool    hasSdap;
 } qfi2drb_t;
 
 void nr_pdcp_submit_sdap_ctrl_pdu(int rnti, rb_id_t sdap_ctrl_pdu_drb, nr_sdap_ul_hdr_t ctrl_pdu);
@@ -75,7 +75,7 @@ typedef struct nr_sdap_entity_s {
   int pdusession_id;
   qfi2drb_t qfi2drb_table[SDAP_MAX_QFI];
 
-  void (*qfi2drb_map_update)(struct nr_sdap_entity_s *entity, uint8_t qfi, rb_id_t drb, boolean_t hasSdap);
+  void (*qfi2drb_map_update)(struct nr_sdap_entity_s *entity, uint8_t qfi, rb_id_t drb, bool hasSdap);
   void (*qfi2drb_map_delete)(struct nr_sdap_entity_s *entity, uint8_t qfi);
   rb_id_t (*qfi2drb_map)(struct nr_sdap_entity_s *entity, uint8_t qfi, rb_id_t upper_layer_rb_id);
 
@@ -84,20 +84,19 @@ typedef struct nr_sdap_entity_s {
   void (*sdap_submit_ctrl_pdu)(int rnti, rb_id_t sdap_ctrl_pdu_drb, nr_sdap_ul_hdr_t ctrl_pdu);
 
 
-  boolean_t (*tx_entity)(struct nr_sdap_entity_s *entity,
-                         protocol_ctxt_t *ctxt_p,
-                         const srb_flag_t srb_flag,
-                         const rb_id_t rb_id,
-                         const mui_t mui,
-                         const confirm_t confirm,
-                         const sdu_size_t sdu_buffer_size,
-                         unsigned char *const sdu_buffer,
-                         const pdcp_transmission_mode_t pt_mode,
-                         const uint32_t *sourceL2Id,
-                         const uint32_t *destinationL2Id,
-                         const uint8_t qfi,
-                         const boolean_t rqi
-                         );
+  bool (*tx_entity)(struct nr_sdap_entity_s *entity,
+                    protocol_ctxt_t *ctxt_p,
+                    const srb_flag_t srb_flag,
+                    const rb_id_t rb_id,
+                    const mui_t mui,
+                    const confirm_t confirm,
+                    const sdu_size_t sdu_buffer_size,
+                    unsigned char *const sdu_buffer,
+                    const pdcp_transmission_mode_t pt_mode,
+                    const uint32_t *sourceL2Id,
+                    const uint32_t *destinationL2Id,
+                    const uint8_t qfi,
+                    const bool rqi);
 
   void (*rx_entity)(struct nr_sdap_entity_s *entity,
                     rb_id_t pdcp_entity,
@@ -114,7 +113,7 @@ typedef struct nr_sdap_entity_s {
 } nr_sdap_entity_t;
 
 /* QFI to DRB Mapping Related Function */
-void nr_sdap_qfi2drb_map_update(nr_sdap_entity_t *entity, uint8_t qfi, rb_id_t drb, boolean_t hasSdap);
+void nr_sdap_qfi2drb_map_update(nr_sdap_entity_t *entity, uint8_t qfi, rb_id_t drb, bool hasSdap);
 
 /* QFI to DRB Mapping Related Function */
 void nr_sdap_qfi2drb_map_del(nr_sdap_entity_t *entity, uint8_t qfi);
@@ -168,7 +167,7 @@ void nr_sdap_ue_qfi2drb_config(nr_sdap_entity_t *existing_sdap_entity,
 nr_sdap_entity_t *new_nr_sdap_entity(int has_sdap,
                                      uint16_t rnti,
                                      int pdusession_id,
-                                     boolean_t is_defaultDRB,
+                                     bool is_defaultDRB,
                                      uint8_t default_DRB,
                                      NR_QFI_t *mapped_qfi_2_add,
                                      uint8_t mappedQFIs2AddCount);
diff --git a/openair2/UTIL/OMG/defs.h b/openair2/UTIL/OMG/defs.h
index 06c9bf6e73f..1102a69cc56 100644
--- a/openair2/UTIL/OMG/defs.h
+++ b/openair2/UTIL/OMG/defs.h
@@ -29,12 +29,6 @@
 
 #include <stdlib.h>
 
-// TYPEDEFS
-
-#define true 1
-#define false 0
-
-//typedef char bool;
 #include <stdbool.h>
 #include "omg_constants.h"
 
diff --git a/openair2/UTIL/OPT/opt.h b/openair2/UTIL/OPT/opt.h
index ae6a3eb2a65..d08790a0584 100644
--- a/openair2/UTIL/OPT/opt.h
+++ b/openair2/UTIL/OPT/opt.h
@@ -109,11 +109,14 @@ typedef enum radio_type_e {
 
 extern int opt_enabled;
 #define trace_pdu(x...) if (opt_enabled) trace_pdu_implementation(0, x)
-#define trace_NRpdu(x...) if (opt_enabled) trace_pdu_implementation(1, x)
+#define trace_NRpdu(x...) if (opt_enabled) nr_trace_pdu_implementation(1, x)
 
 void trace_pdu_implementation(int nr, int direction, uint8_t *pdu_buffer, unsigned int pdu_buffer_size,
                               int ueid, int rntiType, int rnti, uint16_t sysFrame, uint8_t subframe,
                               int oob_event, int oob_event_value);
+void nr_trace_pdu_implementation(int nr, int direction, uint8_t *pdu_buffer, unsigned int pdu_buffer_size,
+				 int rntiType, int rnti, uint16_t sysFrame, uint8_t subframe,
+				 int oob_event, int oob_event_value);
 
 int init_opt(void);
 
diff --git a/openair2/UTIL/OPT/probe.c b/openair2/UTIL/OPT/probe.c
index 8731eb294a5..9359c48e95a 100644
--- a/openair2/UTIL/OPT/probe.c
+++ b/openair2/UTIL/OPT/probe.c
@@ -476,6 +476,14 @@ static void SendFrameNR(guint8 radioType, guint8 direction, guint8 rntiType,
 extern RAN_CONTEXT_t RC;
 #include <openair1/PHY/phy_extern_ue.h>
 /* Remote serveraddress (where Wireshark is running) */
+void nr_trace_pdu_implementation(int nr, int direction, uint8_t *pdu_buffer, unsigned int pdu_buffer_size,
+				 int rntiType, int rnti, uint16_t sysFrameNumber, uint8_t subFrameNumber, int oob_event,
+				 int oob_event_value) {
+  trace_pdu_implementation(nr, direction, pdu_buffer, pdu_buffer_size,
+			   rnti, rntiType, rnti, sysFrameNumber, subFrameNumber, oob_event,
+			   oob_event_value);
+}
+
 void trace_pdu_implementation(int nr, int direction, uint8_t *pdu_buffer, unsigned int pdu_buffer_size,
                               int ueid, int rntiType, int rnti, uint16_t sysFrameNumber, uint8_t subFrameNumber, int oob_event,
                               int oob_event_value) {
diff --git a/openair2/X2AP/x2ap_common.h b/openair2/X2AP/x2ap_common.h
index a2f903a7372..7dd88ffa21a 100644
--- a/openair2/X2AP/x2ap_common.h
+++ b/openair2/X2AP/x2ap_common.h
@@ -52,11 +52,6 @@
 # define X2AP_PORT 36422
 #endif
 
-#ifndef TRUE
-#define TRUE 1
-#define FALSE 0
-#endif
-
 extern int asn1_xer_print;
 
 #if defined(ENB_MODE)
diff --git a/openair3/M3AP/m3ap_common.h b/openair3/M3AP/m3ap_common.h
index 7f68510314f..c5f55bc70a2 100644
--- a/openair3/M3AP/m3ap_common.h
+++ b/openair3/M3AP/m3ap_common.h
@@ -52,11 +52,6 @@
 # define M3AP_PORT 36444
 #endif
 
-#ifndef TRUE
-#define TRUE 1
-#define FALSE 0
-#endif
-
 extern int asn1_xer_print;
 
 #if defined(ENB_MODE)
diff --git a/openair3/NAS/COMMON/UTIL/nas_timer.c b/openair3/NAS/COMMON/UTIL/nas_timer.c
index 8448d9a78cc..b67a3bc232f 100644
--- a/openair3/NAS/COMMON/UTIL/nas_timer.c
+++ b/openair3/NAS/COMMON/UTIL/nas_timer.c
@@ -121,7 +121,7 @@ static nas_timer_database_t _nas_timer_db = {
 static void _nas_timer_db_init(void);
 
 static int _nas_timer_db_get_id(void);
-static int _nas_timer_db_is_active(int id);
+static bool _nas_timer_db_is_active(int id);
 static nas_timer_entry_t *_nas_timer_db_create_entry(long sec,
     nas_timer_callback_t cb, void *args);
 static void _nas_timer_db_delete_entry(int id);
@@ -130,7 +130,7 @@ static void _nas_timer_db_insert_entry(int id, nas_timer_entry_t *te);
 static int _nas_timer_db_insert(timer_queue_t *entry);
 
 static nas_timer_entry_t *_nas_timer_db_remove_entry(int id);
-static int _nas_timer_db_remove(timer_queue_t *entry);
+static bool _nas_timer_db_remove(timer_queue_t *entry);
 
 /*
  * -----------------------------------------------------------------------------
@@ -408,12 +408,12 @@ static int _nas_timer_db_get_id(void)
  **      Others:    _nas_timer_db                              **
  **                                                                        **
  ** Outputs:     None                                                      **
- **      Return:    TRUE if the timer entry is active; FALSE   **
+ **      Return:    true if the timer entry is active; false   **
  **             if it is not an active timer entry.        **
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-static int _nas_timer_db_is_active(int id)
+static bool _nas_timer_db_is_active(int id)
 {
   return ( (id != NAS_TIMER_INACTIVE_ID) &&
            (_nas_timer_db.tq[id].id != NAS_TIMER_INACTIVE_ID) );
@@ -562,11 +562,11 @@ static int _nas_timer_db_insert(timer_queue_t *entry)
   } else {
     /* The new entry is the first entry of the list */
     _nas_timer_db.head = entry;
-    return TRUE;
+    return true;
   }
 
   /* The new entry is NOT the first entry of the list */
-  return FALSE;
+  return false;
 }
 
 /****************************************************************************
@@ -588,7 +588,7 @@ static int _nas_timer_db_insert(timer_queue_t *entry)
  ***************************************************************************/
 static nas_timer_entry_t *_nas_timer_db_remove_entry(int id)
 {
-  int restart;
+  bool restart;
 
   /* The identifier of the timer is valid within the timer queue */
   assert(_nas_timer_db.tq[id].id == id);
@@ -622,7 +622,7 @@ static nas_timer_entry_t *_nas_timer_db_remove_entry(int id)
   return (_nas_timer_db.tq[id].entry);
 }
 
-static int _nas_timer_db_remove(timer_queue_t *entry)
+static bool _nas_timer_db_remove(timer_queue_t *entry)
 {
   /* Update the pointer from the previous entry */
   /* prev ---> entry ---> next */
@@ -644,12 +644,12 @@ static int _nas_timer_db_remove(timer_queue_t *entry)
 
     if (_nas_timer_db.head != NULL) {
       /* Other timers are scheduled to expire */
-      return TRUE;
+      return true;
     }
   }
 
   /* The entry was NOT the first entry of the list */
-  return FALSE;
+  return false;
 }
 
 /*
diff --git a/openair3/NAS/COMMON/UTIL/socket.c b/openair3/NAS/COMMON/UTIL/socket.c
index 53a6ec8823d..20c071203df 100644
--- a/openair3/NAS/COMMON/UTIL/socket.c
+++ b/openair3/NAS/COMMON/UTIL/socket.c
@@ -397,7 +397,7 @@ static int _socket_set_option(int sfd)
    * and it will simply open another socket on the same port and
    * continue listening.
    */
-  optval = TRUE;
+  optval = true;
 
   if (setsockopt (sfd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval)) < 0) {
     return RETURNerror;
@@ -405,12 +405,12 @@ static int _socket_set_option(int sfd)
 
   /* IPV6_V6ONLY socket option
    * -------------------------
-   * When option is set to TRUE, the socket is restricted to sending and
+   * When option is set to true, the socket is restricted to sending and
    * receiving IPv6 packets only.
-   * When option is set to FALSE, the socket can be used to send and receive
+   * When option is set to false, the socket can be used to send and receive
    * packets to and from an IPv6 address or an IPv4-mapped IPv6 address.
    */
-  optval = FALSE;
+  optval = false;
 
   if (setsockopt (sfd, IPPROTO_IPV6, IPV6_V6ONLY, &optval, sizeof(optval)) < 0) {
     return RETURNerror;
diff --git a/openair3/NAS/COMMON/UTIL/stty.c b/openair3/NAS/COMMON/UTIL/stty.c
index eceb0b06b13..fe87a63e440 100644
--- a/openair3/NAS/COMMON/UTIL/stty.c
+++ b/openair3/NAS/COMMON/UTIL/stty.c
@@ -192,7 +192,7 @@ static sttyset_t stty_params[] = {
   { NULL, 0,  0,    0 }
 };
 
-static int _stty_set_this(struct termios *term, const sttyset_t *p, int turnon);
+static int _stty_set_this(struct termios *term, const sttyset_t *p, bool turnon);
 
 /****************************************************************************/
 /******************  E X P O R T E D    F U N C T I O N S  ******************/
@@ -207,7 +207,7 @@ static int _stty_set_this(struct termios *term, const sttyset_t *p, int turnon);
  **                                                                        **
  ** Inputs:  p:   The TTY parameters                         **
  **    turnon:  Indicate whether the parameter should be   **
- **                             turned on (TRUE) or turned off (FALSE)     **
+ **                             turned on (true) or turned off (false)     **
  **    Others:  None                                       **
  **                                                                        **
  ** Outputs:   term:    The termios structure to fill              **
@@ -223,7 +223,7 @@ int stty_set(int fd, const char *params)
   register char *s;
   struct termios term;
   register int i;
-  int mode;
+  bool mode;
 
   /* Get current tty attributes */
   if ( tcgetattr(fd, &term) < 0 ) {
@@ -234,10 +234,10 @@ int stty_set(int fd, const char *params)
   p = strtok(s," \t\n");
 
   while (p && (rc != RETURNerror)) {
-    mode = 1;
+    mode = true;
 
     if ( *p == '-' ) {
-      mode = 0;
+      mode = false;
       p++;
     }
 
@@ -275,7 +275,7 @@ int stty_set(int fd, const char *params)
  **                                                                        **
  ** Inputs:  p:   The TTY parameters                         **
  **    turnon:  Indicate whether the parameter should be   **
- **                             turned on (TRUE) or turned off (FALSE)     **
+ **                             turned on (true) or turned off (false)     **
  **    Others:  None                                       **
  **                                                                        **
  ** Outputs:   term:    The termios structure to fill              **
@@ -283,7 +283,7 @@ int stty_set(int fd, const char *params)
  **    Others:  None                                       **
  **                                                                        **
  ***************************************************************************/
-static int _stty_set_this(struct termios *term, const sttyset_t *p, int turnon)
+static int _stty_set_this(struct termios *term, const sttyset_t *p, bool turnon)
 {
   int rc = RETURNok;
 
diff --git a/openair3/NAS/NR_UE/nr_nas_msg_sim.h b/openair3/NAS/NR_UE/nr_nas_msg_sim.h
index 9655f87130f..abdc5b2e757 100644
--- a/openair3/NAS/NR_UE/nr_nas_msg_sim.h
+++ b/openair3/NAS/NR_UE/nr_nas_msg_sim.h
@@ -80,7 +80,6 @@ typedef struct {
   uint8_t kgnb[32];
 } ue_sa_security_key_t;
 
-
 typedef enum fgs_protocol_discriminator_e {
   /* Protocol discriminator identifier for 5GS Mobility Management */
   FGS_MOBILITY_MANAGEMENT_MESSAGE =   0x7E,
diff --git a/openair3/NAS/TEST/AS_SIMULATOR/as_simulator.c b/openair3/NAS/TEST/AS_SIMULATOR/as_simulator.c
index bbc37d18a3c..387c3de3a8c 100644
--- a/openair3/NAS/TEST/AS_SIMULATOR/as_simulator.c
+++ b/openair3/NAS/TEST/AS_SIMULATOR/as_simulator.c
@@ -120,12 +120,12 @@ static socket_id_t * _as_simulator_mme_sid = NULL;
 /*
  * UE NAS process connection manager's running indicator
  */
-static int _as_simulator_ue_is_running = FALSE;
+static bool _as_simulator_ue_is_running = false;
 
 /*
  * MME NAS process connection manager's running indicator
  */
-static int _as_simulator_mme_is_running = FALSE;
+static bool _as_simulator_mme_is_running = false;
 
 static int _set_signal_handler(int signal, void (handler)(int));
 static void _signal_handler(int signal_number);
@@ -307,8 +307,8 @@ static void _signal_handler(int signal_number)
 {
   printf("\nWARNING\t: %s - Signal %d received\n", __FUNCTION__,
          signal_number);
-  _as_simulator_ue_is_running = FALSE;
-  _as_simulator_mme_is_running = FALSE;
+  _as_simulator_ue_is_running = false;
+  _as_simulator_mme_is_running = false;
 }
 
 /*
@@ -321,7 +321,7 @@ static void* _as_simulator_ue_mngr(void* args)
   int msg_id;
   as_message_t msg;
 
-  _as_simulator_ue_is_running = TRUE;
+  _as_simulator_ue_is_running = true;
 
   printf("INFO\t: %s - UE connection manager started\n", __FUNCTION__);
 
@@ -388,7 +388,7 @@ static void* _as_simulator_ue_mngr(void* args)
   }
 
   /* Close the connection to the network sublayer */
-  _as_simulator_ue_is_running = FALSE;
+  _as_simulator_ue_is_running = false;
   printf("ERROR\t: The UE connection manager exited\n");
   return (NULL);
 }
@@ -403,7 +403,7 @@ static void* _as_simulator_mme_mngr(void* args)
   int msg_id;
   as_message_t msg;
 
-  _as_simulator_mme_is_running = TRUE;
+  _as_simulator_mme_is_running = true;
 
   printf("INFO\t: %s - MME connection manager started\n", __FUNCTION__);
 
@@ -469,7 +469,7 @@ static void* _as_simulator_mme_mngr(void* args)
   }
 
   /* Close the connection to the network sublayer */
-  _as_simulator_mme_is_running = FALSE;
+  _as_simulator_mme_is_running = false;
   printf("ERROR\t: %s - The MME connection manager exited\n", __FUNCTION__);
   return (NULL);
 }
diff --git a/openair3/NAS/TEST/NETWORK/network_simulator.c b/openair3/NAS/TEST/NETWORK/network_simulator.c
index 461f701f951..492a709463f 100644
--- a/openair3/NAS/TEST/NETWORK/network_simulator.c
+++ b/openair3/NAS/TEST/NETWORK/network_simulator.c
@@ -208,7 +208,7 @@ static const OctetString* _network_simulator_pdn[NETWORK_IP_MAX][2] = {
 static int _set_signal_handler(int signal, void (handler)(int));
 static void _signal_handler(int signal_number);
 static int _process_message(int msgID, const as_message_t* req);
-static int _assign_pdn_address(int ue_pdn_type, int is_initial, int* pdn_type, OctetString* pdn);
+static int _assign_pdn_address(int ue_pdn_type, bool is_initial, int* pdn_type, OctetString* pdn);
 
 /* Functions used to process messages received from the Access Stratum */
 static int _process_cell_info_req(const cell_info_req_t* req, cell_info_cnf_t* rsp);
@@ -283,7 +283,7 @@ int main (int argc, const char* argv[])
   /*
    * Network simulator main loop
    */
-  while (TRUE) {
+  while (true) {
     as_message_t msg;
 
     /* Receive message from the NAS */
@@ -1072,11 +1072,11 @@ static int _process_pdn_connectivity_request(const pdn_connectivity_request_msg*
     /* Assign PDN address */
     if (apn.length > 0) {
       request->accesspointname.accesspointnamevalue = apn;
-      esm_cause = _assign_pdn_address(requested_pdn_type, FALSE, &pdn_type,
+      esm_cause = _assign_pdn_address(requested_pdn_type, false, &pdn_type,
                                       &request->pdnaddress.pdnaddressinformation);
     } else {
       request->accesspointname.accesspointnamevalue = EURECOM_APN;
-      esm_cause = _assign_pdn_address(requested_pdn_type, TRUE, &pdn_type,
+      esm_cause = _assign_pdn_address(requested_pdn_type, true, &pdn_type,
                                       &request->pdnaddress.pdnaddressinformation);
     }
 
diff --git a/openair3/NAS/TEST/USER/user_simulator.c b/openair3/NAS/TEST/USER/user_simulator.c
index 1c429c3b850..3050c166927 100644
--- a/openair3/NAS/TEST/USER/user_simulator.c
+++ b/openair3/NAS/TEST/USER/user_simulator.c
@@ -192,7 +192,7 @@ int main (int argc, const char* argv[])
   /*
    * User simulator main loop
    */
-  while (TRUE) {
+  while (true) {
     char c;
     int len;
 
@@ -293,7 +293,7 @@ static void _signal_handler(int signal_number)
  */
 static void* _receive_thread(void* arg)
 {
-  while (TRUE) {
+  while (true) {
     /* Receive AT response from the NAS sublayer */
     int rbytes = USER_RECV(_user_simulator_recv_buffer,
                            USER_SIMULATOR_BUFFER_SIZE);
diff --git a/openair3/NAS/UE/API/USER/at_command.c b/openair3/NAS/UE/API/USER/at_command.c
index ab85b2d2fa6..a6591c67482 100644
--- a/openair3/NAS/UE/API/USER/at_command.c
+++ b/openair3/NAS/UE/API/USER/at_command.c
@@ -354,7 +354,7 @@ static int ParseString(char * at_str, at_command_t* at_command)
   char* terminal_character_index = NULL;
   int num_of_chars_to_compare = -1;
   int handler_index;
-  int handler_found = FALSE;
+  bool handler_found = false;
   int check_for_carriage_return_index = 0;
 
   /*
@@ -415,7 +415,7 @@ static int ParseString(char * at_str, at_command_t* at_command)
     if (strncasecmp(at_str, _at_command_handler[handler_index].command,
                     num_of_chars_to_compare) != 0) continue;
 
-    handler_found = TRUE;
+    handler_found = true;
     break;
   }
 
@@ -681,7 +681,7 @@ static unsigned int NumberOfParameters(const unsigned char* str)
  **      Others:  None                                       **
  **                                                                        **
  ** Outputs:   None                                                      **
- **      Return:  TRUE, FALSE                                **
+ **      Return:  true, false                                **
  **      Others:  None                                       **
  **                                                                        **
  ***************************************************************************/
@@ -689,11 +689,11 @@ static unsigned int IsNumeric(const char* str, size_t len)
 {
   while (len-- > 0) {
     if (!isdigit(str[len])) {
-      return FALSE;
+      return false;
     }
   }
 
-  return TRUE;
+  return true;
 }
 
 /****************************************************************************/
@@ -719,7 +719,7 @@ static int parse_e1(const char* string, int position, at_command_t* at_command)
 static int parse_q0(const char* string, int position, at_command_t* at_command)
 {
   /* Result code suppression Q0 */
-  at_error_code_suppression_q1 = FALSE;
+  at_error_code_suppression_q1 = false;
   at_command->id = 0;
   at_command->mask = AT_COMMAND_NO_PARAM;
   return at_command->id;
@@ -728,7 +728,7 @@ static int parse_q0(const char* string, int position, at_command_t* at_command)
 static int parse_q1(const char* string, int position, at_command_t* at_command)
 {
   /* Result code suppression Q1 */
-  at_error_code_suppression_q1 = TRUE;
+  at_error_code_suppression_q1 = true;
   at_command->id = 0;
   at_command->mask = AT_COMMAND_NO_PARAM;
   return at_command->id;
@@ -738,7 +738,7 @@ static int parse_v0(const char* string, int position, at_command_t* at_command)
 {
   /* Response format V0 (numeric result code + limited header) */
   at_error_format = AT_ERROR_NUMERIC;
-  at_response_format_v1 = FALSE;
+  at_response_format_v1 = false;
   at_command->id = 0;
   at_command->mask = AT_COMMAND_NO_PARAM;
   return at_command->id;
@@ -748,7 +748,7 @@ static int parse_v1(const char* string, int position, at_command_t* at_command)
 {
   /* Response format V1 (verbose result code + full header) */
   at_error_format = AT_ERROR_VERBOSE;
-  at_response_format_v1 = TRUE;
+  at_response_format_v1 = true;
   at_command->id = 0;
   at_command->mask = AT_COMMAND_NO_PARAM;
   return at_command->id;
diff --git a/openair3/NAS/UE/API/USER/at_error.c b/openair3/NAS/UE/API/USER/at_error.c
index d004c897368..bad7127adc4 100644
--- a/openair3/NAS/UE/API/USER/at_error.c
+++ b/openair3/NAS/UE/API/USER/at_error.c
@@ -55,10 +55,10 @@ extern int at_response_format_v1;
 /*
  * Result code suppression indicator (set by ATQ0 and ATQ1)
  * -------------------------------------------------------
- *  FALSE - Result codes are transmitted to the user application
- *  TRUE  - Result codes are suppressed and not transmitted
+ *  false - Result codes are transmitted to the user application
+ *  true  - Result codes are suppressed and not transmitted
  */
-int at_error_code_suppression_q1 = FALSE;
+bool at_error_code_suppression_q1 = false;
 
 /*
  * Verbose mode indicator (set by ATV0, ATV1 and AT+CMEE)
diff --git a/openair3/NAS/UE/API/USER/at_response.c b/openair3/NAS/UE/API/USER/at_response.c
index 859db90d7e0..eef0385750c 100644
--- a/openair3/NAS/UE/API/USER/at_response.c
+++ b/openair3/NAS/UE/API/USER/at_response.c
@@ -52,10 +52,10 @@ Description Defines structure of the AT command response returned after
 /*
  * Response format indicator (set by ATV0 and ATV1)
  * -----------------------------------------------
- *  TRUE  - <CR><LF><text><CR><LF>, <CR><LF><verbose code><CR><LF>
- *  FALSE - <text><CR><LF>, <numeric code><CR><LF>
+ *  true  - <CR><LF><text><CR><LF>, <CR><LF><verbose code><CR><LF>
+ *  false - <text><CR><LF>, <numeric code><CR><LF>
  */
-int at_response_format_v1 = TRUE;
+bool at_response_format_v1 = true;
 
 /****************************************************************************/
 /*******************  L O C A L    D E F I N I T I O N S  *******************/
diff --git a/openair3/NAS/UE/EMM/Attach.c b/openair3/NAS/UE/EMM/Attach.c
index 5e7a1f578b7..52f7ebce448 100644
--- a/openair3/NAS/UE/EMM/Attach.c
+++ b/openair3/NAS/UE/EMM/Attach.c
@@ -146,7 +146,7 @@ int emm_proc_attach(nas_user_t *user, emm_proc_attach_type_t type)
 
   /* Update the emergency bearer service indicator */
   if (type == EMM_ATTACH_TYPE_EMERGENCY) {
-    user->emm_data->is_emergency = TRUE;
+    user->emm_data->is_emergency = true;
   }
 
   /* Setup initial NAS information message to transfer */
@@ -211,7 +211,7 @@ int emm_proc_attach(nas_user_t *user, emm_proc_attach_type_t type)
   }
 
   /* Setup EPS NAS security data */
-  emm_as_set_security_data(&emm_as->sctx, user->emm_data->security, FALSE, FALSE);
+  emm_as_set_security_data(&emm_as->sctx, user->emm_data->security, false, false);
   emm_as->ksi = EMM_AS_NO_KEY_AVAILABLE;
 
   if (user->emm_data->security) {
@@ -230,8 +230,8 @@ int emm_proc_attach(nas_user_t *user, emm_proc_attach_type_t type)
    * is requested to setup a default EPS bearer
    */
   esm_sap.primitive = ESM_PDN_CONNECTIVITY_REQ;
-  esm_sap.is_standalone = FALSE;
-  esm_sap.data.pdn_connect.is_defined = TRUE;
+  esm_sap.is_standalone = false;
+  esm_sap.data.pdn_connect.is_defined = true;
   esm_sap.data.pdn_connect.cid = 1;
   /* TODO: PDN type should be set according to the IP capability of the UE */
   esm_sap.data.pdn_connect.pdn_type = NET_PDN_TYPE_IPV4;
@@ -387,7 +387,7 @@ int emm_proc_attach_accept(nas_user_t *user, long t3412, long t3402, long t3423,
 
   if (n_eplmns > 0) {
     for (i = 0; (i < n_eplmns) && (i < EMM_DATA_EPLMN_MAX); i++) {
-      int is_forbidden = FALSE;
+      bool is_forbidden = false;
 
       if (!user->emm_data->is_emergency) {
         /* If the attach procedure is not for emergency bearer
@@ -395,7 +395,7 @@ int emm_proc_attach_accept(nas_user_t *user, long t3412, long t3402, long t3423,
          * code that is already in the list of forbidden PLMNs */
         for (j = 0; j < user->emm_data->fplmn.n_plmns; j++) {
           if (PLMNS_ARE_EQUAL(eplmn[i], user->emm_data->fplmn.plmn[j])) {
-            is_forbidden = TRUE;
+            is_forbidden = true;
             break;
           }
         }
@@ -418,7 +418,7 @@ int emm_proc_attach_accept(nas_user_t *user, long t3412, long t3402, long t3423,
    * Notify ESM that a default EPS bearer has to be activated
    */
   esm_sap.primitive = ESM_DEFAULT_EPS_BEARER_CONTEXT_ACTIVATE_REQ;
-  esm_sap.is_standalone = FALSE;
+  esm_sap.is_standalone = false;
   esm_sap.recv = esm_msg_pP;
   rc = esm_sap_send(user, &esm_sap);
 
@@ -445,7 +445,7 @@ int emm_proc_attach_accept(nas_user_t *user, long t3412, long t3402, long t3423,
     emm_sap.u.emm_as.u.data.ueid = user->ueid;
     /* Setup EPS NAS security data */
     emm_as_set_security_data(&emm_sap.u.emm_as.u.data.sctx,
-                             user->emm_data->security, FALSE, TRUE);
+                             user->emm_data->security, false, true);
     /* Get the activate default EPS bearer context accept message
      * to be transfered within the ESM container of the attach
      * complete message */
@@ -546,7 +546,7 @@ int emm_proc_attach_reject(nas_user_t *user, int emm_cause, const OctetString *e
   case EMM_CAUSE_EPS_NOT_ALLOWED:
   case EMM_CAUSE_BOTH_NOT_ALLOWED:
     /* Consider the USIM as invalid for EPS services */
-    user->emm_data->usim_is_valid = FALSE;
+    user->emm_data->usim_is_valid = false;
     /* Delete the list of equivalent PLMNs */
     user->emm_data->nvdata.eplmn.n_plmns = 0;
     break;
@@ -682,7 +682,7 @@ int emm_proc_attach_reject(nas_user_t *user, int emm_cause, const OctetString *e
   if (esm_msg_pP != NULL) {
     esm_sap_t esm_sap;
     esm_sap.primitive = ESM_PDN_CONNECTIVITY_REJ;
-    esm_sap.is_standalone = FALSE;
+    esm_sap.is_standalone = false;
     esm_sap.recv = esm_msg_pP;
     rc = esm_sap_send(user, &esm_sap);
   }
@@ -731,7 +731,7 @@ int emm_proc_attach_complete(void *args)
 
   /* Set the EPS update status to EU1 UPDATED */
   user->emm_data->status = EU1_UPDATED;
-  user->emm_data->is_attached = TRUE;
+  user->emm_data->is_attached = true;
 
   /*
    * Notify EMM that network attach complete message has been delivered
@@ -747,7 +747,7 @@ int emm_proc_attach_complete(void *args)
      * Complete message
      */
     esm_sap.primitive = ESM_DEFAULT_EPS_BEARER_CONTEXT_ACTIVATE_CNF;
-    esm_sap.is_standalone = FALSE;
+    esm_sap.is_standalone = false;
     rc = esm_sap_send(user, &esm_sap);
   }
 
@@ -766,7 +766,7 @@ int emm_proc_attach_complete(void *args)
  **      The  UE  shall restart the attach  procedure when timer   **
  **      T3411 expires.                                            **
  **                                                                        **
- ** Inputs:  is_initial:    TRUE if the NAS message that failed to be  **
+ ** Inputs:  is_initial:    true if the NAS message that failed to be  **
  **             transfered is an initial NAS message (ESM  **
  **             message embedded within an Attach Request  **
  **             message)                                   **
@@ -778,7 +778,7 @@ int emm_proc_attach_complete(void *args)
  **      Others:    T3410, T3411                               **
  **                                                                        **
  ***************************************************************************/
-int emm_proc_attach_failure(int is_initial, void *args)
+int emm_proc_attach_failure(bool is_initial, void *args)
 {
   LOG_FUNC_IN;
   int rc = RETURNok;
@@ -804,7 +804,7 @@ int emm_proc_attach_failure(int is_initial, void *args)
      * to be transmitted
      */
     esm_sap.primitive = ESM_PDN_CONNECTIVITY_REJ;
-    esm_sap.is_standalone = FALSE;
+    esm_sap.is_standalone = false;
     esm_sap.recv = NULL;
   } else {
     /*
@@ -813,7 +813,7 @@ int emm_proc_attach_failure(int is_initial, void *args)
      * has failed to be transmitted
      */
     esm_sap.primitive = ESM_DEFAULT_EPS_BEARER_CONTEXT_ACTIVATE_REJ;
-    esm_sap.is_standalone = FALSE;
+    esm_sap.is_standalone = false;
     esm_sap.recv = NULL;
   }
 
@@ -919,7 +919,7 @@ int emm_proc_attach_set_emergency(emm_data_t *emm_data)
   LOG_TRACE(WARNING, "EMM-PROC  - UE is now attached to the network for "
             "emergency bearer services only");
 
-  emm_data->is_emergency = TRUE;
+  emm_data->is_emergency = true;
 
   LOG_FUNC_RETURN(RETURNok);
 }
@@ -950,7 +950,7 @@ int emm_proc_attach_set_detach(void *nas_user)
             "EMM-PROC  - UE is now locally detached from the network");
 
   /* Reset the network attachment indicator */
-  user->emm_data->is_attached = FALSE;
+  user->emm_data->is_attached = false;
   /*
    * Notify that the UE is locally detached from the network
    */
diff --git a/openair3/NAS/UE/EMM/Authentication.c b/openair3/NAS/UE/EMM/Authentication.c
index a2762d08e83..a3b58f89f42 100644
--- a/openair3/NAS/UE/EMM/Authentication.c
+++ b/openair3/NAS/UE/EMM/Authentication.c
@@ -129,7 +129,7 @@ static int _authentication_kasme(const OctetString *autn,
  **      authentication challenge data and respond with an AUTHEN- **
  **      TICATION RESPONSE message to the network.                 **
  **                                                                        **
- ** Inputs:  native_ksi:    TRUE if the security context is of type    **
+ ** Inputs:  native_ksi:    true if the security context is of type    **
  **             native (for KSIASME)                       **
  **      ksi:       The NAS ket sey identifier                 **
  **      rand:      Authentication parameter RAND              **
@@ -179,14 +179,14 @@ int emm_proc_authentication_request(nas_user_t *user, int native_ksi, int ksi,
   OctetString res = {AUTH_RES_SIZE, authentication_data->res};
 
   if ((memcmp(authentication_data->rand, rand->value, AUTH_CK_SIZE) != 0) ||
-      (authentication_data->auth_process_started == FALSE)) {
+      (authentication_data->auth_process_started == false)) {
     /*
      * There is no valid stored RAND in the ME or the stored RAND is
      * different from the new received value in the AUTHENTICATION
      * REQUEST message OR if this is first time UE starting the
      * Authentication process
      */
-	authentication_data->auth_process_started = TRUE;
+	authentication_data->auth_process_started = true;
     OctetString auts;
     auts.length = 0;
     auts.value = (uint8_t *)malloc(AUTH_AUTS_SIZE);
@@ -308,7 +308,7 @@ int emm_proc_authentication_request(nas_user_t *user, int native_ksi, int ksi,
   emm_sap.u.emm_as.u.security.res = &res;
   /* Setup EPS NAS security data */
   emm_as_set_security_data(&emm_sap.u.emm_as.u.security.sctx,
-                           user->emm_data->security, FALSE, TRUE);
+                           user->emm_data->security, false, true);
   rc = emm_sap_send(user, &emm_sap);
 
   if (rc != RETURNerror) {
@@ -398,7 +398,7 @@ int emm_proc_authentication_reject(nas_user_t *user)
   }
 
   /* Consider the USIM invalid */
-  user->emm_data->usim_is_valid = FALSE;
+  user->emm_data->usim_is_valid = false;
 
   /* Stop timer T3410 */
   if (emm_timers->T3410.id != NAS_TIMER_INACTIVE_ID) {
@@ -652,7 +652,7 @@ static int _authentication_abnormal_cases_cde(nas_user_t *user, int emm_cause,
   emm_sap.u.emm_as.u.security.auts = auts;
   /* Setup EPS NAS security data */
   emm_as_set_security_data(&emm_sap.u.emm_as.u.security.sctx,
-                           user->emm_data->security, FALSE, TRUE);
+                           user->emm_data->security, false, true);
   rc = emm_sap_send(user, &emm_sap);
 
   if (rc != RETURNerror) {
diff --git a/openair3/NAS/UE/EMM/Detach.c b/openair3/NAS/UE/EMM/Detach.c
index b61bcdc14dc..654486226e0 100644
--- a/openair3/NAS/UE/EMM/Detach.c
+++ b/openair3/NAS/UE/EMM/Detach.c
@@ -114,7 +114,7 @@ static int _emm_detach_abort(nas_user_t *user, emm_proc_detach_type_t type);
  **      Return:    RETURNok, RETURNerror                      **
  **                                                                        **
  ***************************************************************************/
-int emm_proc_detach(nas_user_t *user, emm_proc_detach_type_t type, int switch_off)
+int emm_proc_detach(nas_user_t *user, emm_proc_detach_type_t type, bool switch_off)
 {
   LOG_FUNC_IN;
 
@@ -154,7 +154,7 @@ int emm_proc_detach(nas_user_t *user, emm_proc_detach_type_t type, int switch_of
   emm_as->guti = user->emm_data->guti;
   emm_as->ueid = user->ueid;
   /* Setup EPS NAS security data */
-  emm_as_set_security_data(&emm_as->sctx, user->emm_data->security, FALSE, TRUE);
+  emm_as_set_security_data(&emm_as->sctx, user->emm_data->security, false, true);
 
   /*
    * Notify EMM-AS SAP that Detach Request message has to
@@ -280,7 +280,7 @@ int emm_proc_detach_accept(void* args)
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int emm_proc_detach_failure(int is_initial, void *args)
+int emm_proc_detach_failure(bool is_initial, void *args)
 {
   LOG_FUNC_IN;
 
@@ -405,8 +405,7 @@ void *emm_detach_t3421_handler(void *args)
     emm_as->guti = user->emm_data->guti;
     emm_as->ueid = user->ueid;
     /* Setup EPS NAS security data */
-    emm_as_set_security_data(&emm_as->sctx, user->emm_data->security,
-                             FALSE, TRUE);
+    emm_as_set_security_data(&emm_as->sctx, user->emm_data->security, false, true);
 
     /*
      * Notify EMM-AS SAP that Detach Request message has to
diff --git a/openair3/NAS/UE/EMM/EmmStatusHdl.c b/openair3/NAS/UE/EMM/EmmStatusHdl.c
index 367d0327f4f..9ac2fc794b9 100644
--- a/openair3/NAS/UE/EMM/EmmStatusHdl.c
+++ b/openair3/NAS/UE/EMM/EmmStatusHdl.c
@@ -137,8 +137,7 @@ int emm_proc_status(nas_user_t *user, int emm_cause)
   emm_sap.u.emm_as.u.status.guti = user->emm_data->guti;
   sctx = user->emm_data->security;
   /* Setup EPS NAS security data */
-  emm_as_set_security_data(&emm_sap.u.emm_as.u.status.sctx, sctx,
-                           FALSE, TRUE);
+  emm_as_set_security_data(&emm_sap.u.emm_as.u.status.sctx, sctx, false, true);
 
   rc = emm_sap_send(user, &emm_sap);
 
diff --git a/openair3/NAS/UE/EMM/Identification.c b/openair3/NAS/UE/EMM/Identification.c
index 0364c6d22f2..d4fc85a931b 100644
--- a/openair3/NAS/UE/EMM/Identification.c
+++ b/openair3/NAS/UE/EMM/Identification.c
@@ -199,8 +199,7 @@ int emm_proc_identification_request(nas_user_t *user, emm_proc_identity_type_t t
   emm_sap.u.emm_as.u.security.ueid = user->ueid;
   emm_sap.u.emm_as.u.security.msgType = EMM_AS_MSG_TYPE_IDENT;
   /* Setup EPS NAS security data */
-  emm_as_set_security_data(&emm_sap.u.emm_as.u.security.sctx,
-                           user->emm_data->security, FALSE, TRUE);
+  emm_as_set_security_data(&emm_sap.u.emm_as.u.security.sctx, user->emm_data->security, false, true);
   rc = emm_sap_send(user, &emm_sap);
 
   LOG_FUNC_RETURN (rc);
diff --git a/openair3/NAS/UE/EMM/IdleMode.c b/openair3/NAS/UE/EMM/IdleMode.c
index 362d5e5b4af..50a318355c5 100644
--- a/openair3/NAS/UE/EMM/IdleMode.c
+++ b/openair3/NAS/UE/EMM/IdleMode.c
@@ -663,8 +663,8 @@ int emm_proc_plmn_selection(nas_user_t *user, int index)
  **      to camp on an acceptable cell, irrespective of its PLMN   **
  **      identity, so that only emergency calls can be made.       **
  **                                                                        **
- ** Inputs:  found:     TRUE if a suitable cell of the chosen      **
- **             PLMN has been found; FALSE otherwise.      **
+ ** Inputs:  found:     true if a suitable cell of the chosen      **
+ **             PLMN has been found; false otherwise.      **
  **      tac:       The code of the location/tracking area the **
  **             chosen PLMN belongs to                     **
  **      ci:        The identifier of the cell                 **
@@ -685,7 +685,7 @@ int emm_proc_plmn_selection_end(nas_user_t *user, int found, tac_t tac, ci_t ci,
   emm_plmn_list_t *emm_plmn_list = user->emm_plmn_list;
   user_api_id_t *user_api_id = user->user_api_id;
   int index = emm_plmn_list->index;
-  int select_next_plmn = FALSE;
+  bool select_next_plmn = false;
 
   LOG_TRACE(INFO, "EMM-IDLE  - %s cell found for PLMN %d in %s mode",
             (found)? "One" : "No", index,
@@ -694,7 +694,7 @@ int emm_proc_plmn_selection_end(nas_user_t *user, int found, tac_t tac, ci_t ci,
             "Automatic/manual");
 
   if (found) {
-    int is_forbidden = FALSE;
+    bool is_forbidden = false;
 
     /* Select the PLMN of which a suitable cell has been found */
     emm_data->splmn = *emm_plmn_list->plmn[index];
@@ -721,7 +721,7 @@ int emm_proc_plmn_selection_end(nas_user_t *user, int found, tac_t tac, ci_t ci,
       /* Check if the selected PLMN is in the forbidden list */
       for (i = 0; i < emm_data->fplmn.n_plmns; i++) {
         if (PLMNS_ARE_EQUAL(emm_data->splmn, emm_data->fplmn.plmn[i])) {
-          is_forbidden = TRUE;
+          is_forbidden = true;
           break;
         }
       }
@@ -730,7 +730,7 @@ int emm_proc_plmn_selection_end(nas_user_t *user, int found, tac_t tac, ci_t ci,
         for (i = 0; i < emm_data->fplmn_gprs.n_plmns; i++) {
           if (PLMNS_ARE_EQUAL(emm_data->splmn,
                               emm_data->fplmn_gprs.plmn[i])) {
-            is_forbidden = TRUE;
+            is_forbidden = true;
             break;
           }
         }
@@ -745,7 +745,7 @@ int emm_proc_plmn_selection_end(nas_user_t *user, int found, tac_t tac, ci_t ci,
       if (!is_forbidden) {
         for (i = 0; i < emm_data->ftai.n_tais; i++) {
           if (TAIS_ARE_EQUAL(tai, emm_data->ftai.tai[i])) {
-            is_forbidden = TRUE;
+            is_forbidden = true;
             break;
           }
         }
@@ -754,7 +754,7 @@ int emm_proc_plmn_selection_end(nas_user_t *user, int found, tac_t tac, ci_t ci,
       if (!is_forbidden) {
         for (i = 0; i < emm_data->ftai_roaming.n_tais; i++) {
           if (TAIS_ARE_EQUAL(tai, emm_data->ftai_roaming.tai[i])) {
-            is_forbidden = TRUE;
+            is_forbidden = true;
             break;
           }
         }
@@ -793,7 +793,7 @@ int emm_proc_plmn_selection_end(nas_user_t *user, int found, tac_t tac, ci_t ci,
      * Try to select the next PLMN in the ordered list of available PLMNs
      */
     index += 1;
-    select_next_plmn = TRUE;
+    select_next_plmn = true;
 
     /* Bypass the previously selected PLMN */
     if (index == emm_plmn_list->splmn) {
@@ -809,7 +809,7 @@ int emm_proc_plmn_selection_end(nas_user_t *user, int found, tac_t tac, ci_t ci,
      * registered or equivalent PLMNs is ongoing
      */
     index += 1;
-    select_next_plmn = TRUE;
+    select_next_plmn = true;
   }
 
   else if (emm_data->plmn_mode == EMM_DATA_PLMN_MANUAL) {
@@ -830,7 +830,7 @@ int emm_proc_plmn_selection_end(nas_user_t *user, int found, tac_t tac, ci_t ci,
      */
     emm_data->plmn_mode = EMM_DATA_PLMN_AUTO;
     index = emm_plmn_list->hplmn;
-    select_next_plmn = TRUE;
+    select_next_plmn = true;
   }
 
   /*
@@ -851,7 +851,7 @@ int emm_proc_plmn_selection_end(nas_user_t *user, int found, tac_t tac, ci_t ci,
     } else {
       /* No suitable cell of any PLMN within the ordered list
        * of available PLMNs has been found */
-      select_next_plmn = FALSE;
+      select_next_plmn = false;
       emm_sap.primitive = EMMREG_NO_CELL;
     }
   }
@@ -892,11 +892,11 @@ int emm_proc_plmn_selection_end(nas_user_t *user, int found, tac_t tac, ci_t ci,
       if (emm_plmn_list->splmn == emm_plmn_list->rplmn) {
         /* The selected PLMN is the registered PLMN */
         LOG_TRACE(INFO, "EMM-IDLE  - The selected PLMN is the registered PLMN");
-        emm_data->is_rplmn = TRUE;
+        emm_data->is_rplmn = true;
       } else if (emm_plmn_list->splmn < emm_plmn_list->hplmn) {
         /* The selected PLMN is in the list of equivalent PLMNs */
         LOG_TRACE(INFO, "EMM-IDLE  - The selected PLMN is in the list of equivalent PLMNs");
-        emm_data->is_eplmn = TRUE;
+        emm_data->is_eplmn = true;
       }
 
       /*
diff --git a/openair3/NAS/UE/EMM/LowerLayer.c b/openair3/NAS/UE/EMM/LowerLayer.c
index 01b07fc3560..538ba210991 100644
--- a/openair3/NAS/UE/EMM/LowerLayer.c
+++ b/openair3/NAS/UE/EMM/LowerLayer.c
@@ -208,7 +208,7 @@ int lowerlayer_data_ind(nas_user_t *user, const OctetString *data)
   LOG_FUNC_IN;
 
   esm_sap.primitive = ESM_UNITDATA_IND;
-  esm_sap.is_standalone = TRUE;
+  esm_sap.is_standalone = true;
   esm_sap.ueid = user->ueid;
 
   esm_sap.recv = data;
@@ -250,7 +250,7 @@ int lowerlayer_data_req(nas_user_t *user, const OctetString *data)
   emm_sap.u.emm_as.u.data.NASmsg.length = data->length;
   emm_sap.u.emm_as.u.data.NASmsg.value = data->value;
   /* Setup EPS NAS security data */
-  emm_as_set_security_data(&emm_sap.u.emm_as.u.data.sctx, sctx, FALSE, TRUE);
+  emm_as_set_security_data(&emm_sap.u.emm_as.u.data.sctx, sctx, false, true);
   rc = emm_sap_send(user, &emm_sap);
 
   LOG_FUNC_RETURN (rc);
@@ -336,7 +336,7 @@ int emm_proc_lowerlayer_success(lowerlayer_data_t *lowerlayer_data)
  ** Description: Handles EMM procedure to be executed upon receiving noti- **
  **      fication that data failed to be delivered to the network. **
  **                                                                        **
- ** Inputs:  is_initial:    TRUE if the NAS message that failed to be  **
+ ** Inputs:  is_initial:    true if the NAS message that failed to be  **
  **             transfered is an initial NAS message       **
  **      Others:    None                                       **
  **                                                                        **
@@ -345,7 +345,7 @@ int emm_proc_lowerlayer_success(lowerlayer_data_t *lowerlayer_data)
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int emm_proc_lowerlayer_failure(lowerlayer_data_t *lowerlayer_data, int is_initial)
+int emm_proc_lowerlayer_failure(lowerlayer_data_t *lowerlayer_data, bool is_initial)
 {
   LOG_FUNC_IN;
 
diff --git a/openair3/NAS/UE/EMM/LowerLayer.h b/openair3/NAS/UE/EMM/LowerLayer.h
index 0d8eefc7f38..ed60e379bc7 100644
--- a/openair3/NAS/UE/EMM/LowerLayer.h
+++ b/openair3/NAS/UE/EMM/LowerLayer.h
@@ -72,7 +72,7 @@ int emm_proc_lowerlayer_initialize(lowerlayer_data_t *lowerlayer_data, lowerlaye
                                    lowerlayer_release_callback_t release,
                                    void *args);
 int emm_proc_lowerlayer_success(lowerlayer_data_t *lowerlayer_data);
-int emm_proc_lowerlayer_failure(lowerlayer_data_t *lowerlayer_data, int is_initial);
+int emm_proc_lowerlayer_failure(lowerlayer_data_t *lowerlayer_data, bool is_initial);
 int emm_proc_lowerlayer_release(lowerlayer_data_t *lowerlayer_data);
 
 
diff --git a/openair3/NAS/UE/EMM/LowerLayer_defs.h b/openair3/NAS/UE/EMM/LowerLayer_defs.h
index 6035d4ed12d..1a0ae7d6564 100644
--- a/openair3/NAS/UE/EMM/LowerLayer_defs.h
+++ b/openair3/NAS/UE/EMM/LowerLayer_defs.h
@@ -11,7 +11,7 @@ typedef int (*lowerlayer_success_callback_t)(void *);
  * Type of EMM procedure callback function executed when data are not
  * delivered to the network because a lower layer failure occurred
  */
-typedef int (*lowerlayer_failure_callback_t)(int, void *);
+typedef int (*lowerlayer_failure_callback_t)(bool, void *);
 
 /*
  * Type of EMM procedure callback function executed when NAS signalling
diff --git a/openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttemptingToAttach.c b/openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttemptingToAttach.c
index f58cf4b9e09..3fa47094c7b 100644
--- a/openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttemptingToAttach.c
+++ b/openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttemptingToAttach.c
@@ -120,7 +120,7 @@ int EmmDeregisteredAttemptingToAttach(nas_user_t *user, const emm_reg_t *evt)
     /*
      * Data failed to be delivered to the network
      */
-    rc = emm_proc_lowerlayer_failure(user->lowerlayer_data, FALSE);
+    rc = emm_proc_lowerlayer_failure(user->lowerlayer_data, false);
     break;
 
   default:
diff --git a/openair3/NAS/UE/EMM/SAP/EmmDeregisteredLimitedService.c b/openair3/NAS/UE/EMM/SAP/EmmDeregisteredLimitedService.c
index 4310f963cd4..c0763009b85 100644
--- a/openair3/NAS/UE/EMM/SAP/EmmDeregisteredLimitedService.c
+++ b/openair3/NAS/UE/EMM/SAP/EmmDeregisteredLimitedService.c
@@ -133,7 +133,7 @@ int EmmDeregisteredLimitedService(nas_user_t *user, const emm_reg_t *evt)
     /*
      * Initial NAS message failed to be delivered to the network
      */
-    rc = emm_proc_lowerlayer_failure(user->lowerlayer_data, TRUE);
+    rc = emm_proc_lowerlayer_failure(user->lowerlayer_data, true);
     break;
 
   case _EMMREG_LOWERLAYER_RELEASE:
diff --git a/openair3/NAS/UE/EMM/SAP/EmmDeregisteredNormalService.c b/openair3/NAS/UE/EMM/SAP/EmmDeregisteredNormalService.c
index f77c2921a31..0925cb4e0f2 100644
--- a/openair3/NAS/UE/EMM/SAP/EmmDeregisteredNormalService.c
+++ b/openair3/NAS/UE/EMM/SAP/EmmDeregisteredNormalService.c
@@ -141,7 +141,7 @@ int EmmDeregisteredNormalService(nas_user_t *user, const emm_reg_t *evt)
     /*
      * Initial NAS message failed to be delivered to the network
      */
-    rc = emm_proc_lowerlayer_failure(user->lowerlayer_data, TRUE);
+    rc = emm_proc_lowerlayer_failure(user->lowerlayer_data, true);
     break;
 
   case _EMMREG_LOWERLAYER_RELEASE:
diff --git a/openair3/NAS/UE/EMM/SAP/EmmRegistered.c b/openair3/NAS/UE/EMM/SAP/EmmRegistered.c
index fbd3e1ce63e..2cd25f77d60 100644
--- a/openair3/NAS/UE/EMM/SAP/EmmRegistered.c
+++ b/openair3/NAS/UE/EMM/SAP/EmmRegistered.c
@@ -143,7 +143,7 @@ int EmmRegistered(nas_user_t *user, const emm_reg_t *evt)
     /*
      * Data transfer message failed to be delivered
      */
-    rc = emm_proc_lowerlayer_failure(user->lowerlayer_data, FALSE);
+    rc = emm_proc_lowerlayer_failure(user->lowerlayer_data, false);
     break;
 
   case _EMMREG_LOWERLAYER_RELEASE:
diff --git a/openair3/NAS/UE/EMM/SAP/EmmRegisteredInitiated.c b/openair3/NAS/UE/EMM/SAP/EmmRegisteredInitiated.c
index 36929fc4d7f..a770e08bab2 100644
--- a/openair3/NAS/UE/EMM/SAP/EmmRegisteredInitiated.c
+++ b/openair3/NAS/UE/EMM/SAP/EmmRegisteredInitiated.c
@@ -240,7 +240,7 @@ int EmmRegisteredInitiated(nas_user_t *user, const emm_reg_t *evt)
      * any message transfered by EMM common procedures requested
      * by the network.
      */
-    rc = emm_proc_lowerlayer_failure(user->lowerlayer_data, FALSE);
+    rc = emm_proc_lowerlayer_failure(user->lowerlayer_data, false);
     break;
 
   case _EMMREG_LOWERLAYER_RELEASE:
diff --git a/openair3/NAS/UE/EMM/SAP/emm_as.c b/openair3/NAS/UE/EMM/SAP/emm_as.c
index ea4eefadeba..de6dee4a5e1 100644
--- a/openair3/NAS/UE/EMM/SAP/emm_as.c
+++ b/openair3/NAS/UE/EMM/SAP/emm_as.c
@@ -679,7 +679,7 @@ static int _emm_as_cell_info_res(nas_user_t *user, const emm_as_cell_info_t *msg
 
   int AcT = NET_ACCESS_EUTRAN;
 
-  if (msg->found == TRUE) {
+  if (msg->found == true) {
     /* Get the first supported access technology */
     while (AcT != NET_ACCESS_UNAVAILABLE) {
       if (msg->rat & (1 << AcT)) {
@@ -1081,7 +1081,7 @@ static int _emm_as_data_req(const emm_data_t *emm_data, const emm_as_data_t *msg
   LOG_FUNC_IN;
   ul_info_transfer_req_t *as_msg = (ul_info_transfer_req_t *)ul_info_transfer_req_unaligned;
   int size = 0;
-  int is_encoded = FALSE;
+  bool is_encoded = false;
 
   LOG_TRACE(INFO, "EMMAS-SAP - Send AS data transfer request");
 
@@ -1114,7 +1114,7 @@ static int _emm_as_data_req(const emm_data_t *emm_data, const emm_as_data_t *msg
     default:
       /* Send other NAS messages as already encoded ESM messages */
       size = msg->NASmsg.length;
-      is_encoded = TRUE;
+      is_encoded = true;
       break;
     }
 
diff --git a/openair3/NAS/UE/EMM/SAP/emm_asDef.h b/openair3/NAS/UE/EMM/SAP/emm_asDef.h
index 7bd464ec04d..4f6182a2c9c 100644
--- a/openair3/NAS/UE/EMM/SAP/emm_asDef.h
+++ b/openair3/NAS/UE/EMM/SAP/emm_asDef.h
@@ -150,7 +150,7 @@ typedef struct emm_as_establish_s {
   uint32_t ueid;      /* UE lower layer identifier         */
   emm_as_EPS_identity_t UEid; /* UE's EPS mobile identity      */
   emm_as_security_data_t sctx;/* EPS NAS security context      */
-  int switch_off;     /* TRUE if the UE is switched off    */
+  bool switch_off;     /* true if the UE is switched off    */
   uint8_t type;       /* Network attach/detach type        */
   uint8_t RRCcause;       /* Connection establishment cause    */
   uint8_t RRCtype;        /* Associated call type          */
@@ -194,7 +194,7 @@ typedef struct emm_as_data_s {
   uint32_t ueid;      /* UE lower layer identifier        */
   const GUTI_t *guti;     /* GUTI temporary mobile identity   */
   emm_as_security_data_t sctx;/* EPS NAS security context     */
-  int switch_off;     /* TRUE if the UE is switched off   */
+  bool switch_off;     /* true if the UE is switched off   */
   uint8_t type;       /* Network detach type          */
   uint8_t delivered;      /* Data message delivery indicator  */
 #define EMM_AS_NAS_DATA_ATTACH  0x01    /* Attach complete      */
diff --git a/openair3/NAS/UE/EMM/SAP/emm_esmDef.h b/openair3/NAS/UE/EMM/SAP/emm_esmDef.h
index aac37b46bfb..6e7065f9139 100644
--- a/openair3/NAS/UE/EMM/SAP/emm_esmDef.h
+++ b/openair3/NAS/UE/EMM/SAP/emm_esmDef.h
@@ -71,9 +71,9 @@ typedef enum {
  * ---------------------------------------------
  */
 typedef struct {
-  int is_emergency;   /* Indicates whether the PDN connection is established
+  bool is_emergency;   /* Indicates whether the PDN connection is established
              * for emergency bearer services only       */
-  int is_attached;    /* Indicates whether the UE remains attached to the
+  bool is_attached;    /* Indicates whether the UE remains attached to the
              * network                  */
 } emm_esm_establish_t;
 
diff --git a/openair3/NAS/UE/EMM/SAP/emm_regDef.h b/openair3/NAS/UE/EMM/SAP/emm_regDef.h
index b66c0565ea6..752f328375b 100644
--- a/openair3/NAS/UE/EMM/SAP/emm_regDef.h
+++ b/openair3/NAS/UE/EMM/SAP/emm_regDef.h
@@ -100,7 +100,7 @@ typedef struct {
  * -------------------------------------
  */
 typedef struct {
-  int is_emergency;   /* TRUE if the UE was attempting to register to
+  bool is_emergency;   /* true if the UE was attempting to register to
              * the network for emergency services only  */
 } emm_reg_attach_t;
 
@@ -109,7 +109,7 @@ typedef struct {
  * -------------------------------------
  */
 typedef struct {
-  int switch_off; /* TRUE if the UE is switched off       */
+  bool switch_off; /* true if the UE is switched off       */
   int type;       /* Network detach type              */
 } emm_reg_detach_t;
 
diff --git a/openair3/NAS/UE/EMM/SecurityModeControl.c b/openair3/NAS/UE/EMM/SecurityModeControl.c
index f9a02b1a705..fd3332669b0 100644
--- a/openair3/NAS/UE/EMM/SecurityModeControl.c
+++ b/openair3/NAS/UE/EMM/SecurityModeControl.c
@@ -124,7 +124,7 @@ static void _security_release(emm_security_context_t *ctx);
  **      grity algorithm and ciphered with the selected NAS ciphe-         **
  **      ring algorithm.                                                   **
  **                                                                        **
- ** Inputs:  native_ksi:    TRUE if the security context is of type        **
+ ** Inputs:  native_ksi:    true if the security context is of type        **
  **             native (for KSIASME)                                       **
  **      ksi:       The NAS ket sey identifier                             **
  **      seea:      Selected EPS cyphering algorithm                       **
@@ -145,7 +145,7 @@ int emm_proc_security_mode_command(nas_user_t *user, int native_ksi, int ksi,
 
   int rc = RETURNerror;
   int emm_cause = EMM_CAUSE_SUCCESS;
-  int security_context_is_new = FALSE;
+  int security_context_is_new = false;
   security_data_t *security_data = user->security_data;
 
   LOG_TRACE(INFO, "EMM-PROC  - Security mode control requested (ksi=%d)",
@@ -263,7 +263,7 @@ int emm_proc_security_mode_command(nas_user_t *user, int native_ksi, int ksi,
           user->emm_data->security->ul_count.overflow = 0;
           user->emm_data->security->ul_count.seq_num = 0;
           /* Set new security context indicator */
-          security_context_is_new = TRUE;
+          security_context_is_new = true;
         }
       }
 
@@ -328,7 +328,7 @@ int emm_proc_security_mode_command(nas_user_t *user, int native_ksi, int ksi,
   emm_sap.u.emm_as.u.security.emm_cause = emm_cause;
   /* Setup EPS NAS security data */
   emm_as_set_security_data(&emm_sap.u.emm_as.u.security.sctx,
-                           user->emm_data->security, security_context_is_new, TRUE);
+                           user->emm_data->security, security_context_is_new, true);
   rc = emm_sap_send(user, &emm_sap);
 
   LOG_FUNC_RETURN (rc);
diff --git a/openair3/NAS/UE/EMM/emmData.h b/openair3/NAS/UE/EMM/emmData.h
index dfdfb34e77e..50219b78837 100644
--- a/openair3/NAS/UE/EMM/emmData.h
+++ b/openair3/NAS/UE/EMM/emmData.h
@@ -112,7 +112,7 @@ typedef struct {
 #define EMM_DETACH_COUNTER_MAX  5
   unsigned int count;      /* Counter used to limit the number of
                   * subsequently detach attempts    */
-  int switch_off;      /* UE switch-off indicator     */
+  bool switch_off;      /* UE switch-off indicator     */
   emm_proc_detach_type_t type; /* Type of the detach procedure
                   * currently in progress       */
 } emm_detach_data_t;
@@ -249,8 +249,8 @@ typedef struct emm_data_s {
 
   emm_eps_update_t    status;    /* The current EPS update status           */
   emm_ecm_state_t     ecm_status; /* The EPS Connection Management status   */
-  int                 is_attached;    /* Network attachment indicator       */
-  int                 is_emergency;   /* Emergency bearer services indicator*/
+  bool                is_attached;    /* Network attachment indicator       */
+  bool                is_emergency;   /* Emergency bearer services indicator*/
 
   /* Tracking Areas list the UE is registered to
    * Contains the list of TAIs that identify the tracking areas that
diff --git a/openair3/NAS/UE/EMM/emm_main.c b/openair3/NAS/UE/EMM/emm_main.c
index 329b59fae67..74676c8b36b 100644
--- a/openair3/NAS/UE/EMM/emm_main.c
+++ b/openair3/NAS/UE/EMM/emm_main.c
@@ -113,7 +113,7 @@ void _emm_attach_initialize(emm_attach_data_t *emm_attach_data) {
 
 void _emm_detach_initialize(emm_detach_data_t *emm_detach) {
   emm_detach->count = 0;
-  emm_detach->switch_off = FALSE;
+  emm_detach->switch_off = false;
   emm_detach->type = EMM_DETACH_TYPE_RESERVED;
 }
 
@@ -137,7 +137,7 @@ void emm_main_initialize(nas_user_t *user, emm_indication_callback_t cb, const c
   LOG_FUNC_IN;
   user->emm_data = calloc_or_fail(sizeof(emm_data_t));
   /* USIM validity indicator */
-  user->emm_data->usim_is_valid = FALSE;
+  user->emm_data->usim_is_valid = false;
   /* The IMEI read from the UE's non-volatile memory  */
   user->emm_data->imei = (imei_t *)malloc(sizeof(imei_t));
   user->emm_data->imei->length = _emm_main_get_imei(user->emm_data->imei, imei);
@@ -157,14 +157,14 @@ void emm_main_initialize(nas_user_t *user, emm_indication_callback_t cb, const c
   user->emm_data->plmn_rat = NET_ACCESS_UNAVAILABLE;
   /* Selected PLMN */
   memset(&user->emm_data->splmn, 0xFF, sizeof(plmn_t));
-  user->emm_data->is_rplmn = FALSE;
-  user->emm_data->is_eplmn = FALSE;
+  user->emm_data->is_rplmn = false;
+  user->emm_data->is_eplmn = false;
   /* Radio Access Technology of the serving cell */
   user->emm_data->rat = NET_ACCESS_UNAVAILABLE;
   /* Network registration status */
   user->emm_data->stat = NET_REG_STATE_OFF;
-  user->emm_data->is_attached = FALSE;
-  user->emm_data->is_emergency = FALSE;
+  user->emm_data->is_attached = false;
+  user->emm_data->is_emergency = false;
   /* Location/Tracking area code */
   user->emm_data->tac = 0;  // two byte in hexadecimal format
   /* Identifier of the serving cell */
@@ -201,7 +201,7 @@ void emm_main_initialize(nas_user_t *user, emm_indication_callback_t cb, const c
 
     /* The USIM application is present and valid */
     LOG_TRACE(INFO, "EMM-MAIN  - USIM application data successfully read");
-    user->emm_data->usim_is_valid = TRUE;
+    user->emm_data->usim_is_valid = true;
 
     /* print keys (for debugging) */
     {
@@ -844,12 +844,12 @@ AcT_t emm_main_get_plmn_rat(emm_data_t *emm_data)
  **      Others:    user->emm_data->                                 **
  **                                                                        **
  ** Outputs:     None                                                      **
- **      Return:    TRUE if the UE is currently attached to    **
- **             the network; FALSE otherwise.              **
+ **      Return:    true if the UE is currently attached to    **
+ **             the network; false otherwise.              **
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int emm_main_is_attached(emm_data_t *emm_data)
+bool emm_main_is_attached(emm_data_t *emm_data)
 {
   LOG_FUNC_IN;
   LOG_FUNC_RETURN (emm_data->is_attached);
@@ -866,13 +866,13 @@ int emm_main_is_attached(emm_data_t *emm_data)
  **      Others:    user->emm_data->                                 **
  **                                                                        **
  ** Outputs:     None                                                      **
- **      Return:    TRUE if the UE is currently attached or is **
+ **      Return:    true if the UE is currently attached or is **
  **             attempting to attach to the network for    **
- **             emergency bearer services; FALSE otherwise **
+ **             emergency bearer services; false otherwise **
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int emm_main_is_emergency(emm_data_t *emm_data)
+bool emm_main_is_emergency(emm_data_t *emm_data)
 {
   LOG_FUNC_IN;
   LOG_FUNC_RETURN (emm_data->is_attached && emm_data->is_emergency);
@@ -967,8 +967,8 @@ static int _emm_main_get_imei(imei_t *imei, const char *imei_str)
  **      Others:    None                                       **
  **                                                                        **
  ** Outputs:     None                                                      **
- **      Return:    TRUE if the first IMSI is found to match   **
- **             the second; FALSE otherwise.               **
+ **      Return:    true if the first IMSI is found to match   **
+ **             the second; false otherwise.               **
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
@@ -977,16 +977,16 @@ static int _emm_main_imsi_cmp(imsi_t *imsi1, imsi_t *imsi2)
   int i;
 
   if (imsi1->length != imsi2->length) {
-    return FALSE;
+    return false;
   }
 
   for (i = 0; i < imsi1->length; i++) {
     if (imsi1->u.value[i] != imsi2->u.value[i]) {
-      return FALSE;
+      return false;
     }
   }
 
-  return TRUE;
+  return true;
 }
 
 /****************************************************************************
diff --git a/openair3/NAS/UE/EMM/emm_main.h b/openair3/NAS/UE/EMM/emm_main.h
index d30f778e3b7..d081024548a 100644
--- a/openair3/NAS/UE/EMM/emm_main.h
+++ b/openair3/NAS/UE/EMM/emm_main.h
@@ -94,8 +94,8 @@ AcT_t emm_main_get_plmn_rat(emm_data_t *emm_data);
 const char *emm_main_get_registered_plmn(emm_plmn_list_t *emm_plmn_list, emm_data_t *emm_data, network_plmn_t *plmn, int format);
 
 /* User's getter for network attachment */
-int emm_main_is_attached(emm_data_t *emm_data);
-int emm_main_is_emergency(emm_data_t *emm_data);
+bool emm_main_is_attached(emm_data_t *emm_data);
+bool emm_main_is_emergency(emm_data_t *emm_data);
 
 
 #endif /* __EMM_MAIN_H__*/
diff --git a/openair3/NAS/UE/EMM/emm_proc.h b/openair3/NAS/UE/EMM/emm_proc.h
index 7d4024d9d63..b93bb33bf16 100644
--- a/openair3/NAS/UE/EMM/emm_proc.h
+++ b/openair3/NAS/UE/EMM/emm_proc.h
@@ -89,7 +89,7 @@ int emm_proc_attach_accept(nas_user_t *user, long T3412, long T3402, long T3423,
                            const OctetString *esm_msg);
 int emm_proc_attach_reject(nas_user_t *user, int emm_cause, const OctetString *esm_msg);
 int emm_proc_attach_complete(void *args);
-int emm_proc_attach_failure(int is_initial, void *args);
+int emm_proc_attach_failure(bool is_initial, void *args);
 int emm_proc_attach_release(void *args);
 int emm_proc_attach_restart(nas_user_t *user);
 
@@ -103,10 +103,10 @@ int emm_proc_attach_set_detach(void *user);
  *              Detach procedure
  * --------------------------------------------------------------------------
  */
-int emm_proc_detach(nas_user_t *user, emm_proc_detach_type_t type, int switch_off);
+int emm_proc_detach(nas_user_t *user, emm_proc_detach_type_t type, bool switch_off);
 int emm_proc_detach_request(void *args);
 int emm_proc_detach_accept(void *args);
-int emm_proc_detach_failure(int is_initial, void *args);
+int emm_proc_detach_failure(bool is_initial, void *args);
 int emm_proc_detach_release(void *args);
 
 
diff --git a/openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c b/openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c
index 21c3da3f195..db95dd648f7 100644
--- a/openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c
+++ b/openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c
@@ -131,7 +131,7 @@ int esm_proc_dedicated_eps_bearer_context_request(nas_user_t *user, int ebi, int
   }
 
   /* Assign dedicated EPS bearer context */
-  int new_ebi = esm_ebr_assign(user->esm_ebr_data, ebi, pid+1, FALSE);
+  int new_ebi = esm_ebr_assign(user->esm_ebr_data, ebi, pid+1, false);
 
   if (new_ebi == ESM_EBI_UNASSIGNED) {
     /* 3GPP TS 24.301, section 6.4.2.5, abnormal cases a and b
@@ -141,7 +141,7 @@ int esm_proc_dedicated_eps_bearer_context_request(nas_user_t *user, int ebi, int
     int old_pid, old_bid;
     /* Locally deactivate the existing EPS bearer context and proceed
      * with the requested dedicated EPS bearer context activation */
-    rc = esm_proc_eps_bearer_context_deactivate(user, TRUE, ebi,
+    rc = esm_proc_eps_bearer_context_deactivate(user, true, ebi,
          &old_pid, &old_bid);
 
     if (rc != RETURNok) {
@@ -149,7 +149,7 @@ int esm_proc_dedicated_eps_bearer_context_request(nas_user_t *user, int ebi, int
       *esm_cause = ESM_CAUSE_PROTOCOL_ERROR;
     } else {
       /* Assign new dedicated EPS bearer context */
-      ebi = esm_ebr_assign(user->esm_ebr_data, ebi, pid+1, FALSE);
+      ebi = esm_ebr_assign(user->esm_ebr_data, ebi, pid+1, false);
     }
   }
 
@@ -165,7 +165,7 @@ int esm_proc_dedicated_eps_bearer_context_request(nas_user_t *user, int ebi, int
       *esm_cause = ESM_CAUSE_SYNTACTICAL_ERROR_IN_PACKET_FILTER;
     } else {
       /* Create new dedicated EPS bearer context */
-      default_ebi = esm_ebr_context_create(esm_data, user->ueid, pid, ebi, FALSE, qos, tft);
+      default_ebi = esm_ebr_context_create(esm_data, user->ueid, pid, ebi, false, qos, tft);
 
       if (default_ebi != ESM_EBI_UNASSIGNED) {
         /* Dedicated EPS bearer contextx successfully created */
@@ -197,7 +197,7 @@ int esm_proc_dedicated_eps_bearer_context_request(nas_user_t *user, int ebi, int
  ** Inputs:  is_standalone: Not used                                   **
  **      ebi:       EPS bearer identity                        **
  **      msg:       Encoded ESM message to be sent             **
- **      ue_triggered:  TRUE if the EPS bearer context procedure   **
+ **      ue_triggered:  true if the EPS bearer context procedure   **
  **             was triggered by the UE                    **
  **      Others:    None                                       **
  **                                                                        **
@@ -206,8 +206,8 @@ int esm_proc_dedicated_eps_bearer_context_request(nas_user_t *user, int ebi, int
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int esm_proc_dedicated_eps_bearer_context_accept(nas_user_t *user, int is_standalone, int ebi,
-    OctetString *msg, int ue_triggered)
+int esm_proc_dedicated_eps_bearer_context_accept(nas_user_t *user, bool is_standalone, int ebi,
+    OctetString *msg, bool ue_triggered)
 {
   LOG_FUNC_IN;
 
@@ -268,8 +268,8 @@ int esm_proc_dedicated_eps_bearer_context_accept(nas_user_t *user, int is_standa
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int esm_proc_dedicated_eps_bearer_context_reject(nas_user_t *user, int is_standalone, int ebi,
-    OctetString *msg, int ue_triggered)
+int esm_proc_dedicated_eps_bearer_context_reject(nas_user_t *user, bool is_standalone, int ebi,
+    OctetString *msg, bool ue_triggered)
 {
   LOG_FUNC_IN;
 
diff --git a/openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c b/openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c
index 7c528d75691..f61b1498226 100644
--- a/openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c
+++ b/openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c
@@ -103,7 +103,7 @@ int esm_proc_default_eps_bearer_context_request(nas_user_t *user, int pid, int e
             "requested by the network (ebi=%d)", ebi);
 
   /* Assign default EPS bearer context */
-  int new_ebi = esm_ebr_assign(user->esm_ebr_data, ebi, pid+1, TRUE);
+  int new_ebi = esm_ebr_assign(user->esm_ebr_data, ebi, pid+1, true);
 
   if (new_ebi == ESM_EBI_UNASSIGNED) {
     /* 3GPP TS 24.301, section 6.4.1.5, abnormal cases a and b
@@ -113,7 +113,7 @@ int esm_proc_default_eps_bearer_context_request(nas_user_t *user, int pid, int e
     int old_pid, old_bid;
     /* Locally deactivate the existing EPS bearer context and proceed
      * with the requested default EPS bearer context activation */
-    rc = esm_proc_eps_bearer_context_deactivate(user, TRUE, ebi,
+    rc = esm_proc_eps_bearer_context_deactivate(user, true, ebi,
          &old_pid, &old_bid);
 
     if (rc != RETURNok) {
@@ -121,13 +121,13 @@ int esm_proc_default_eps_bearer_context_request(nas_user_t *user, int pid, int e
       *esm_cause = ESM_CAUSE_PROTOCOL_ERROR;
     } else {
       /* Assign new default EPS bearer context */
-      ebi = esm_ebr_assign(user->esm_ebr_data, ebi, pid+1, TRUE);
+      ebi = esm_ebr_assign(user->esm_ebr_data, ebi, pid+1, true);
     }
   }
 
   if (ebi != ESM_EBI_UNASSIGNED) {
     /* Create new default EPS bearer context */
-    ebi = esm_ebr_context_create(esm_data, user->ueid, pid, ebi, TRUE, qos, NULL);
+    ebi = esm_ebr_context_create(esm_data, user->ueid, pid, ebi, true, qos, NULL);
 
     if (ebi != ESM_EBI_UNASSIGNED) {
       /* Default EPS bearer contextx successfully created */
@@ -165,9 +165,9 @@ int esm_proc_default_eps_bearer_context_request(nas_user_t *user, int pid, int e
  **             te message                                 **
  **      ebi:       EPS bearer identity                        **
  **      msg:       Encoded ESM message to be sent             **
- **      ue_triggered:  TRUE if the EPS bearer context procedure   **
+ **      ue_triggered:  true if the EPS bearer context procedure   **
  **             was triggered by the UE (should be always  **
- **             TRUE)                                      **
+ **             true)                                      **
  **      Others:    None                                       **
  **                                                                        **
  ** Outputs:     None                                                      **
@@ -175,8 +175,8 @@ int esm_proc_default_eps_bearer_context_request(nas_user_t *user, int pid, int e
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int esm_proc_default_eps_bearer_context_accept(nas_user_t *user, int is_standalone, int ebi,
-    OctetString *msg, int ue_triggered)
+int esm_proc_default_eps_bearer_context_accept(nas_user_t *user, bool is_standalone, int ebi,
+    OctetString *msg, bool ue_triggered)
 {
   LOG_FUNC_IN;
 
@@ -245,8 +245,8 @@ int esm_proc_default_eps_bearer_context_accept(nas_user_t *user, int is_standalo
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int esm_proc_default_eps_bearer_context_reject(nas_user_t *user, int is_standalone, int ebi,
-    OctetString *msg, int ue_triggered)
+int esm_proc_default_eps_bearer_context_reject(nas_user_t *user, bool is_standalone, int ebi,
+    OctetString *msg, bool ue_triggered)
 {
   LOG_FUNC_IN;
 
@@ -344,7 +344,7 @@ int esm_proc_default_eps_bearer_context_failure(nas_user_t *user)
             "ESM-PROC  - Default EPS bearer context activation failure");
 
   /* Release the default EPS bearer context and enter state INACTIVE */
-  int rc = esm_proc_eps_bearer_context_deactivate(user, TRUE, ebi, &pid, &bid);
+  int rc = esm_proc_eps_bearer_context_deactivate(user, true, ebi, &pid, &bid);
 
   if (rc != RETURNerror) {
     /* Reset default EPS bearer context internal data */
diff --git a/openair3/NAS/UE/ESM/EpsBearerContextDeactivation.c b/openair3/NAS/UE/ESM/EpsBearerContextDeactivation.c
index 5adbae05c6f..742e70cd4a7 100644
--- a/openair3/NAS/UE/ESM/EpsBearerContextDeactivation.c
+++ b/openair3/NAS/UE/ESM/EpsBearerContextDeactivation.c
@@ -97,7 +97,7 @@ static int _eps_bearer_release(nas_user_t *user, int ebi, int *pid, int *bid);
  **      has an EPS bearer context with specified EPS bearer iden- **
  **      tity activated.                                           **
  **                                                                        **
- ** Inputs:  is local:  TRUE if the EPS bearer context has to be   **
+ ** Inputs:  is local:  true if the EPS bearer context has to be   **
  **             locally released without peer-to-peer si-  **
  **             gnalling between the UE and the MME        **
  **      ebi:       EPS bearer identity of the EPS bearer con- **
@@ -111,7 +111,7 @@ static int _eps_bearer_release(nas_user_t *user, int ebi, int *pid, int *bid);
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int esm_proc_eps_bearer_context_deactivate(nas_user_t *user, int is_local, int ebi,
+int esm_proc_eps_bearer_context_deactivate(nas_user_t *user, bool is_local, int ebi,
     int *pid, int *bid)
 {
   LOG_FUNC_IN;
@@ -213,7 +213,7 @@ int esm_proc_eps_bearer_context_deactivate_request(nas_user_t *user, int ebi, in
      * the PDN connection */
     if (*esm_cause == ESM_CAUSE_REACTIVATION_REQUESTED) {
       esm_sap_t esm_sap;
-      int active = FALSE;
+      bool active = false;
 
       /* 3GPP TS 24.301, section 6.4.4.3
        * The UE should re-initiate the UE requested PDN connectivity
@@ -242,8 +242,8 @@ int esm_proc_eps_bearer_context_deactivate_request(nas_user_t *user, int ebi, in
          * Notify ESM to re-initiate PDN connectivity procedure
          */
         esm_sap.primitive = ESM_PDN_CONNECTIVITY_REQ;
-        esm_sap.is_standalone = TRUE;
-        esm_sap.data.pdn_connect.is_defined = TRUE;
+        esm_sap.is_standalone = true;
+        esm_sap.data.pdn_connect.is_defined = true;
         esm_sap.data.pdn_connect.cid = pid + 1;
         rc = esm_sap_send(user, &esm_sap);
       }
@@ -265,10 +265,10 @@ int esm_proc_eps_bearer_context_deactivate_request(nas_user_t *user, int ebi, in
  **      DEACTIVATE EPS BEARER CONTEXT ACCEPT message and entering **
  **      the state BEARER CONTEXT INACTIVE.                        **
  **                                                                        **
- ** Inputs:  is_standalone: Should be always TRUE                      **
+ ** Inputs:  is_standalone: Should be always true                      **
  **      ebi:       EPS bearer identity                        **
  **      msg:       Encoded ESM message to be sent             **
- **      ue_triggered:  TRUE if the EPS bearer context procedure   **
+ **      ue_triggered:  true if the EPS bearer context procedure   **
  **             was triggered by the UE                    **
  **      Others:    None                                       **
  **                                                                        **
@@ -277,8 +277,8 @@ int esm_proc_eps_bearer_context_deactivate_request(nas_user_t *user, int ebi, in
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int esm_proc_eps_bearer_context_deactivate_accept(nas_user_t *user, int is_standalone, int ebi,
-    OctetString *msg, int ue_triggered)
+int esm_proc_eps_bearer_context_deactivate_accept(nas_user_t *user, bool is_standalone, int ebi,
+    OctetString *msg, bool ue_triggered)
 {
   LOG_FUNC_IN;
 
@@ -371,7 +371,7 @@ static int _eps_bearer_release(nas_user_t *user, int ebi, int *pid, int *bid)
     LOG_TRACE(WARNING, "ESM-PROC  - Failed to release EPS bearer context");
   } else {
     /* Set the EPS bearer context state to INACTIVE */
-    rc = esm_ebr_set_status(user_api_id, esm_ebr_data, ebi, ESM_EBR_INACTIVE, FALSE);
+    rc = esm_ebr_set_status(user_api_id, esm_ebr_data, ebi, ESM_EBR_INACTIVE, false);
 
     if (rc != RETURNok) {
       /* The EPS bearer context was already in INACTIVE state */
diff --git a/openair3/NAS/UE/ESM/EsmStatusHdl.c b/openair3/NAS/UE/ESM/EsmStatusHdl.c
index def498a89b9..88f6550251f 100644
--- a/openair3/NAS/UE/ESM/EsmStatusHdl.c
+++ b/openair3/NAS/UE/ESM/EsmStatusHdl.c
@@ -149,7 +149,7 @@ int esm_proc_status_ind(
  **                                                                        **
  ** Description: Initiates ESM status procedure.                           **
  **                                                                        **
- ** Inputs:  is_standalone: Not used - Always TRUE                     **
+ ** Inputs:  is_standalone: Not used - Always true                     **
  **      ueid:      UE lower layer identifier                  **
  **      ebi:       Not used                                   **
  **      msg:       Encoded ESM status message to be sent      **
@@ -161,9 +161,9 @@ int esm_proc_status_ind(
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int esm_proc_status(nas_user_t *user, int is_standalone,
+int esm_proc_status(nas_user_t *user, bool is_standalone,
                     int ebi, OctetString *msg,
-                    int ue_triggered)
+                    bool ue_triggered)
 {
   LOG_FUNC_IN;
 
diff --git a/openair3/NAS/UE/ESM/PdnConnectivity.c b/openair3/NAS/UE/ESM/PdnConnectivity.c
index d17b5fde3c7..a79320cccbd 100644
--- a/openair3/NAS/UE/ESM/PdnConnectivity.c
+++ b/openair3/NAS/UE/ESM/PdnConnectivity.c
@@ -80,7 +80,7 @@ Description Defines the PDN connectivity ESM procedure executed by the
  * PDN connection handlers
  */
 static int _pdn_connectivity_create(esm_data_t *esm_data, int pid, const OctetString *apn,
-                                    esm_proc_pdn_type_t pdn_type, int is_emergency);
+                                    esm_proc_pdn_type_t pdn_type, bool is_emergency);
 static int _pdn_connectivity_update(esm_data_t *esm_data, int pid, const OctetString *apn,
                                     esm_proc_pdn_type_t pdn_type, const OctetString *pdn_addr, int esm_cause);
 static int _pdn_connectivity_delete(esm_data_t *esm_data, int pid);
@@ -121,7 +121,7 @@ static void *_pdn_connectivity_t3482_handler(void *);
  **             to be defined or undefined                 **
  **      pdn_type:  PDN connection type (IPv4, IPv6, IPv4v6)   **
  **      apn:       Access Point logical Name to be used       **
- **      is_emergency:  TRUE if the PDN connection has to be esta- **
+ **      is_emergency:  true if the PDN connection has to be esta- **
  **             blished for emergency bearer services      **
  **      Others:    None                                       **
  **                                                                        **
@@ -133,7 +133,7 @@ static void *_pdn_connectivity_t3482_handler(void *);
  ***************************************************************************/
 int esm_proc_pdn_connectivity(nas_user_t *user, int cid, int is_to_define,
                               esm_proc_pdn_type_t pdn_type,
-                              const OctetString *apn, int is_emergency,
+                              const OctetString *apn, bool is_emergency,
                               unsigned int *pti)
 {
     LOG_FUNC_IN;
@@ -270,7 +270,7 @@ int esm_proc_pdn_connectivity(nas_user_t *user, int cid, int is_to_define,
  **      pti:       Procedure transaction identity             **
  **      msg:       Encoded PDN connectivity request message   **
  **             to be sent                                 **
- **      sent_by_ue:    Not used - Always TRUE                     **
+ **      sent_by_ue:    Not used - Always true                     **
  **      Others:    None                                       **
  **                                                                        **
  ** Outputs:     None                                                      **
@@ -278,8 +278,8 @@ int esm_proc_pdn_connectivity(nas_user_t *user, int cid, int is_to_define,
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int esm_proc_pdn_connectivity_request(nas_user_t *user, int is_standalone, int pti,
-                                      OctetString *msg, int sent_by_ue)
+int esm_proc_pdn_connectivity_request(nas_user_t *user, bool is_standalone, int pti,
+                                      OctetString *msg, bool sent_by_ue)
 {
     LOG_FUNC_IN;
     esm_pt_data_t *esm_pt_data = user->esm_pt_data;
@@ -523,7 +523,7 @@ int esm_proc_pdn_connectivity_complete(nas_user_t *user)
  **      PDN connectivity procedure which is still pending in the  **
  **      PROCEDURE TRANSACTION INACTIVE or PENDING state.          **
  **                                                                        **
- ** Inputs:  is_pending:    TRUE if this PDN connectivity procedure    **
+ ** Inputs:  is_pending:    true if this PDN connectivity procedure    **
  **             transaction is in the PENDING state        **
  **      Others:    None                                       **
  **                                                                        **
@@ -679,7 +679,7 @@ static void *_pdn_connectivity_t3482_handler(void *args)
  ** Inputs:  pid:       Identifier of the PDN connection entry     **
  **      apn:       Access Point Name of the PDN connection    **
  **      pdn_type:  PDN type (IPv4, IPv6, IPv4v6)              **
- **      is_emergency:  TRUE if the PDN connection has to be esta- **
+ **      is_emergency:  true if the PDN connection has to be esta- **
  **             blished for emergency bearer services      **
  **                                                                        **
  ** Outputs:     None                                                      **
@@ -688,7 +688,7 @@ static void *_pdn_connectivity_t3482_handler(void *args)
  ***************************************************************************/
 static int _pdn_connectivity_create(esm_data_t *esm_data, int pid, const OctetString *apn,
                                     esm_proc_pdn_type_t pdn_type,
-                                    int is_emergency)
+                                    bool is_emergency)
 {
     esm_pdn_t *pdn = NULL;
 
@@ -720,7 +720,7 @@ static int _pdn_connectivity_create(esm_data_t *esm_data, int pid, const OctetSt
         /* Set the PDN connection identifier */
         esm_data->pdn[pid].pid = pid;
         /* Reset the PDN connection active indicator */
-        esm_data->pdn[pid].is_active = FALSE;
+        esm_data->pdn[pid].is_active = false;
         /* Setup the PDN connection data */
         esm_data->pdn[pid].data = pdn;
     }
@@ -744,7 +744,7 @@ static int _pdn_connectivity_create(esm_data_t *esm_data, int pid, const OctetSt
     }
 
     pdn->type = pdn_type;
-    pdn->addr_realloc = FALSE;
+    pdn->addr_realloc = false;
 
     return (RETURNok);
 }
@@ -825,7 +825,7 @@ static int _pdn_connectivity_update(esm_data_t *esm_data, int pid, const OctetSt
          * the other IP version using the UE requested PDN connectivity
          * procedure to the same APN with a single address PDN type
          * (IPv4 or IPv6) other than the one already activated */
-        pdn->addr_realloc = TRUE;
+        pdn->addr_realloc = true;
     } else if ( (esm_cause == ESM_CAUSE_PDN_TYPE_IPV4_ONLY_ALLOWED) ||
                 (esm_cause == ESM_CAUSE_PDN_TYPE_IPV6_ONLY_ALLOWED) ) {
         /* The UE requested IPv4 or IPv6 address and the network allows
@@ -833,9 +833,9 @@ static int _pdn_connectivity_update(esm_data_t *esm_data, int pid, const OctetSt
          * The UE shall not subsequently initiate another UE requested
          * PDN connectivity procedure to the same APN to obtain a PDN
          * type different from the one allowed by the network */
-        pdn->addr_realloc = FALSE;
+        pdn->addr_realloc = false;
     } else if (pdn_type != ESM_PDN_TYPE_IPV4V6) {
-        pdn->addr_realloc = TRUE;
+        pdn->addr_realloc = true;
     }
 
     return (RETURNok);
diff --git a/openair3/NAS/UE/ESM/PdnDisconnect.c b/openair3/NAS/UE/ESM/PdnDisconnect.c
index 6665126e40a..cb7b3225bcf 100644
--- a/openair3/NAS/UE/ESM/PdnDisconnect.c
+++ b/openair3/NAS/UE/ESM/PdnDisconnect.c
@@ -155,7 +155,7 @@ int esm_proc_pdn_disconnect(esm_data_t *esm_data, int cid, unsigned int *pti, un
  **      PDN DISCONNECT REQUEST message to the MME, starting timer **
  **      T3492 and entering state PROCEDURE TRANSACTION PENDING.   **
  **                                                                        **
- ** Inputs:  is_standalone: Should be always TRUE                      **
+ ** Inputs:  is_standalone: Should be always true                      **
  **      pti:       Procedure transaction identity             **
  **      msg:       Encoded PDN disconnect request message to  **
  **             be sent                                    **
@@ -167,8 +167,8 @@ int esm_proc_pdn_disconnect(esm_data_t *esm_data, int cid, unsigned int *pti, un
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int esm_proc_pdn_disconnect_request(nas_user_t *user, int is_standalone, int pti,
-                                    OctetString *msg, int sent_by_ue)
+int esm_proc_pdn_disconnect_request(nas_user_t *user, bool is_standalone, int pti,
+                                    OctetString *msg, bool sent_by_ue)
 {
   LOG_FUNC_IN;
 
@@ -326,7 +326,7 @@ int esm_proc_pdn_disconnect_reject(nas_user_t *user, int pti, int *esm_cause)
        */
       esm_sap_t esm_sap;
       esm_sap.primitive = ESM_EPS_BEARER_CONTEXT_DEACTIVATE_REQ;
-      esm_sap.is_standalone = TRUE;
+      esm_sap.is_standalone = true;
       esm_sap.recv = NULL;
       esm_sap.send.length = 0;
       esm_sap.data.eps_bearer_context_deactivate.ebi = ebi;
@@ -444,7 +444,7 @@ static void *_pdn_disconnect_t3492_handler(void *args)
          */
         esm_sap_t esm_sap;
         esm_sap.primitive = ESM_EPS_BEARER_CONTEXT_DEACTIVATE_REQ;
-        esm_sap.is_standalone = TRUE;
+        esm_sap.is_standalone = true;
         esm_sap.recv = NULL;
         esm_sap.send.length = 0;
         esm_sap.data.eps_bearer_context_deactivate.ebi = ebi;
diff --git a/openair3/NAS/UE/ESM/SAP/esm_sap.c b/openair3/NAS/UE/ESM/SAP/esm_sap.c
index e039f66a3a8..f1663175d43 100644
--- a/openair3/NAS/UE/ESM/SAP/esm_sap.c
+++ b/openair3/NAS/UE/ESM/SAP/esm_sap.c
@@ -63,9 +63,9 @@ Description Defines the ESM Service Access Points at which the EPS
 /*******************  L O C A L    D E F I N I T I O N S  *******************/
 /****************************************************************************/
 
-static int _esm_sap_recv(nas_user_t *user, int msg_type, int is_standalone,
+static int _esm_sap_recv(nas_user_t *user, int msg_type, bool is_standalone,
                          const OctetString *req, OctetString *rsp, esm_sap_error_t *err);
-static int _esm_sap_send(nas_user_t *user, int msg_type, int is_standalone, int pti, int ebi,
+static int _esm_sap_send(nas_user_t *user, int msg_type, bool is_standalone, int pti, int ebi,
                          const esm_sap_data_t *data, OctetString *rsp);
 
 
@@ -171,7 +171,7 @@ int esm_sap_send(nas_user_t *user, esm_sap_t *msg)
       }
 
       /* Define new PDN context */
-      rc = esm_proc_pdn_connectivity(user, pdn_connect->cid, TRUE,
+      rc = esm_proc_pdn_connectivity(user, pdn_connect->cid, true,
                                      pdn_connect->pdn_type, &apn,
                                      pdn_connect->is_emergency, NULL);
 
@@ -183,7 +183,7 @@ int esm_sap_send(nas_user_t *user, esm_sap_t *msg)
     if (pdn_connect->is_defined) {
       unsigned int pti;
       /* Assign new procedure transaction identity */
-      rc = esm_proc_pdn_connectivity(user, pdn_connect->cid, TRUE,
+      rc = esm_proc_pdn_connectivity(user, pdn_connect->cid, true,
                                      pdn_connect->pdn_type, NULL,
                                      pdn_connect->is_emergency, &pti);
 
@@ -205,7 +205,7 @@ int esm_sap_send(nas_user_t *user, esm_sap_t *msg)
 
       if ( msg->is_standalone && pdn_connect->is_defined ) {
         /* Undefine the specified PDN context */
-        rc = esm_proc_pdn_connectivity(user, pdn_connect->cid, FALSE,
+        rc = esm_proc_pdn_connectivity(user, pdn_connect->cid, false,
                                        pdn_connect->pdn_type, NULL,
                                        pdn_connect->is_emergency, NULL);
       } else if (msg->recv != NULL) {
@@ -214,7 +214,7 @@ int esm_sap_send(nas_user_t *user, esm_sap_t *msg)
                            msg->recv, &msg->send, &msg->err);
       } else {
         /* The PDN connectivity procedure locally failed */
-        rc = esm_proc_pdn_connectivity_failure(user, TRUE);
+        rc = esm_proc_pdn_connectivity_failure(user, true);
       }
     }
     break;
@@ -230,7 +230,7 @@ int esm_sap_send(nas_user_t *user, esm_sap_t *msg)
 
     if (rc != RETURNerror) {
       /* Send PDN disconnect request */
-      rc = _esm_sap_send(user, PDN_DISCONNECT_REQUEST, TRUE, pti, ebi,
+      rc = _esm_sap_send(user, PDN_DISCONNECT_REQUEST, true, pti, ebi,
                          &msg->data, &msg->send);
     }
   }
@@ -278,7 +278,7 @@ int esm_sap_send(nas_user_t *user, esm_sap_t *msg)
     rc = esm_proc_default_eps_bearer_context_failure(user);
 
     if (rc != RETURNerror) {
-      rc = esm_proc_pdn_connectivity_failure(user, FALSE);
+      rc = esm_proc_pdn_connectivity_failure(user, false);
     }
 
     break;
@@ -306,7 +306,7 @@ int esm_sap_send(nas_user_t *user, esm_sap_t *msg)
     /*
      * Locally deactivate EPS bearer context
      */
-    rc = esm_proc_eps_bearer_context_deactivate(user, TRUE,
+    rc = esm_proc_eps_bearer_context_deactivate(user, true,
          msg->data.eps_bearer_context_deactivate.ebi, &pid, &bid);
   }
   break;
@@ -359,7 +359,7 @@ int esm_sap_send(nas_user_t *user, esm_sap_t *msg)
  **      Return:    RETURNok, RETURNerror                      **
  **                                                                        **
  ***************************************************************************/
-static int _esm_sap_recv(nas_user_t *user, int msg_type, int is_standalone,
+static int _esm_sap_recv(nas_user_t *user, int msg_type, bool is_standalone,
                          const OctetString *req, OctetString *rsp,
                          esm_sap_error_t *err)
 {
@@ -422,7 +422,7 @@ static int _esm_sap_recv(nas_user_t *user, int msg_type, int is_standalone,
    * was triggered network-internally */
   int triggered_by_ue = (pti != PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED);
   /* Indicate whether the received message shall be ignored */
-  int is_discarded = FALSE;
+  bool is_discarded = false;
 
   if (esm_cause != ESM_CAUSE_SUCCESS) {
     LOG_TRACE(ERROR, "ESM-SAP   - Failed to decode expected ESM message "
@@ -455,7 +455,7 @@ static int _esm_sap_recv(nas_user_t *user, int msg_type, int is_standalone,
            * of already accepted activate default EPS bearer context
            * request message
            */
-          is_discarded = TRUE;
+          is_discarded = true;
         }
       } else {
         /* Return reject message */
@@ -493,7 +493,7 @@ static int _esm_sap_recv(nas_user_t *user, int msg_type, int is_standalone,
            * of already accepted activate dedicated EPS bearer context
            * request message
            */
-          is_discarded = TRUE;
+          is_discarded = true;
         }
       } else {
         /* Return reject message */
@@ -525,7 +525,7 @@ static int _esm_sap_recv(nas_user_t *user, int msg_type, int is_standalone,
          * received with PTI reserved value, or assigned value
          * that does not match any PTI in use
          */
-        is_discarded = TRUE;
+        is_discarded = true;
       } else if ( (esm_cause == ESM_CAUSE_SUCCESS) ||
                   (esm_cause == ESM_CAUSE_INVALID_EPS_BEARER_IDENTITY) ) {
         /* Return accept message */
@@ -541,7 +541,7 @@ static int _esm_sap_recv(nas_user_t *user, int msg_type, int is_standalone,
            * message with the EPS bearer identity set to the received
            * EPS bearer identity
            */
-          is_discarded = TRUE;
+          is_discarded = true;
         }
       }
 
@@ -565,7 +565,7 @@ static int _esm_sap_recv(nas_user_t *user, int msg_type, int is_standalone,
          * Ignore PDN connectivity reject message received with
          * reserved or unassigned EPS bearer identity value
          */
-        is_discarded = TRUE;
+        is_discarded = true;
       }
 
       break;
@@ -588,7 +588,7 @@ static int _esm_sap_recv(nas_user_t *user, int msg_type, int is_standalone,
          * Ignore PDN disconnect reject message received with
          * reserved or unassigned EPS bearer identity value
          */
-        is_discarded = TRUE;
+        is_discarded = true;
       }
 
       break;
@@ -629,7 +629,7 @@ static int _esm_sap_recv(nas_user_t *user, int msg_type, int is_standalone,
        * onto the network */
       esm_procedure = esm_proc_status;
       /* Discard received ESM message */
-      is_discarded = TRUE;
+      is_discarded = true;
     }
   } else {
     /* ESM message processing succeed */
@@ -687,7 +687,7 @@ static int _esm_sap_recv(nas_user_t *user, int msg_type, int is_standalone,
  **      Return:    RETURNok, RETURNerror                      **
  **                                                                        **
  ***************************************************************************/
-static int _esm_sap_send(nas_user_t *user, int msg_type, int is_standalone,
+static int _esm_sap_send(nas_user_t *user, int msg_type, bool is_standalone,
                          int pti, int ebi, const esm_sap_data_t *data,
                          OctetString *rsp)
 {
@@ -697,7 +697,7 @@ static int _esm_sap_send(nas_user_t *user, int msg_type, int is_standalone,
   int rc = RETURNok;
 
   /* Indicate whether the message is sent by the UE or the MME */
-  int sent_by_ue = TRUE;
+  bool sent_by_ue = true;
 
   ESM_msg esm_msg;
   memset(&esm_msg, 0 , sizeof(ESM_msg));
diff --git a/openair3/NAS/UE/ESM/SAP/esm_sapDef.h b/openair3/NAS/UE/ESM/SAP/esm_sapDef.h
index 4ff7c7e9ddc..2d3227ba75f 100644
--- a/openair3/NAS/UE/ESM/SAP/esm_sapDef.h
+++ b/openair3/NAS/UE/ESM/SAP/esm_sapDef.h
@@ -109,11 +109,11 @@ typedef struct esm_activate_eps_default_bearer_context_s {
  */
 typedef struct esm_pdn_connectivity_s {
   int cid;        /* PDN connection local identifier      */
-  int is_defined; /* Indicates whether a PDN context has been defined
+  bool is_defined; /* Indicates whether a PDN context has been defined
              * for the specified APN            */
   int pdn_type;   /* PDN address type (IPv4, IPv6, IPv4v6)    */
   const char *apn;    /* PDN's Access Point Name          */
-  int is_emergency;   /* Indicates whether the PDN context has been
+  bool is_emergency;   /* Indicates whether the PDN context has been
              * defined to establish connection for emergency
              * bearer services              */
 } esm_pdn_connectivity_t;
@@ -149,7 +149,7 @@ typedef union {
 
 typedef struct esm_sap_s {
   esm_primitive_t primitive;  /* ESM-SAP primitive to process     */
-  int is_standalone;      /* Indicates whether the ESM message handled
+  bool is_standalone;      /* Indicates whether the ESM message handled
                  * within this primitive has to be sent/received
                  * standalone or together within an EMM related
                  * message              */
diff --git a/openair3/NAS/UE/ESM/SAP/esm_send.c b/openair3/NAS/UE/ESM/SAP/esm_send.c
index 020d9d89e3c..e710d745ad5 100644
--- a/openair3/NAS/UE/ESM/SAP/esm_send.c
+++ b/openair3/NAS/UE/ESM/SAP/esm_send.c
@@ -132,7 +132,7 @@ int esm_send_status(int pti, int ebi, esm_status_msg *msg, int esm_cause)
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int esm_send_pdn_connectivity_request(int pti, int is_emergency, int pdn_type,
+int esm_send_pdn_connectivity_request(int pti, bool is_emergency, int pdn_type,
                                       const char *apn,
                                       pdn_connectivity_request_msg *msg)
 {
diff --git a/openair3/NAS/UE/ESM/SAP/esm_send.h b/openair3/NAS/UE/ESM/SAP/esm_send.h
index f97454027ae..b9bcab0f397 100644
--- a/openair3/NAS/UE/ESM/SAP/esm_send.h
+++ b/openair3/NAS/UE/ESM/SAP/esm_send.h
@@ -40,6 +40,8 @@ Description Defines functions executed at the ESM Service Access
 #ifndef __ESM_SEND_H__
 #define __ESM_SEND_H__
 
+#include <stdbool.h>
+
 #include "EsmStatus.h"
 
 
@@ -90,7 +92,7 @@ int esm_send_status(int pti, int ebi, esm_status_msg *msg, int esm_cause);
  * Transaction related messages
  * ----------------------------
  */
-int esm_send_pdn_connectivity_request(int pti, int is_emergency, int pdn_type,
+int esm_send_pdn_connectivity_request(int pti, bool is_emergency, int pdn_type,
                                       const char *apn, pdn_connectivity_request_msg *msg);
 int esm_send_pdn_disconnect_request(int pti, int ebi,
                                     pdn_disconnect_request_msg *msg);
diff --git a/openair3/NAS/UE/ESM/esmData.h b/openair3/NAS/UE/ESM/esmData.h
index 16f4707a377..525f4ec00a7 100644
--- a/openair3/NAS/UE/ESM/esmData.h
+++ b/openair3/NAS/UE/ESM/esmData.h
@@ -37,6 +37,7 @@ Description Defines internal private data handled by EPS Session
 
 *****************************************************************************/
 #include <stdio.h>  // sprintf
+#include <stdbool.h>
 
 #include "networkDef.h"
 #include "OctetString.h"
@@ -92,7 +93,7 @@ typedef enum {
 typedef struct esm_ebr_context_s {
   unsigned char ebi;      /* EPS bearer identity          */
   esm_ebr_state status;   /* EPS bearer context status        */
-  int is_default_ebr;     /* TRUE if the bearer context is associated
+  bool is_default_ebr;     /* bool if the bearer context is associated
                  * to a default EPS bearer      */
   char cid;           /* Identifier of the PDN context the EPS
                  * bearer context has been assigned to  */
@@ -137,7 +138,7 @@ typedef struct esm_bearer_s {
 typedef struct esm_pdn_s {
   unsigned int pti;   /* Identity of the procedure transaction executed
              * to activate the PDN connection entry     */
-  int is_emergency;   /* Emergency bearer services indicator      */
+  bool is_emergency;   /* Emergency bearer services indicator      */
   OctetString apn;    /* Access Point Name currently in used      */
   int ambr;       /* Aggregate Maximum Bit Rate of this APN   */
   int type;       /* Address PDN type (IPv4, IPv6, IPv4v6)    */
@@ -147,7 +148,7 @@ typedef struct esm_pdn_s {
                                      ESM_DATA_IPV6_ADDRESS_SIZE)
   /* IPv4 PDN address and/or IPv6 prefix      */
   char ip_addr[ESM_DATA_IP_ADDRESS_SIZE+1];
-  int addr_realloc;   /* Indicates whether the UE is allowed to subsequently
+  bool addr_realloc;   /* Indicates whether the UE is allowed to subsequently
              * request another PDN connectivity to the same APN
              * using an address PDN type (IPv4 or IPv6) other
              * than the one already activated       */
@@ -175,7 +176,7 @@ typedef struct esm_data_context_s {
 #define ESM_DATA_PDN_MAX    4
   struct {
     int pid;     /* Identifier of the PDN connection        */
-    int is_active;   /* TRUE/FALSE if the PDN connection is active/inactive
+    bool is_active;   /* true/false if the PDN connection is active/inactive
               * or the process to activate/deactivate the PDN
               * connection is in progress           */
     esm_pdn_t *data; /* Active PDN connection data          */
diff --git a/openair3/NAS/UE/ESM/esm_ebr.c b/openair3/NAS/UE/ESM/esm_ebr.c
index 3a62812eca7..4c6b56cec9a 100644
--- a/openair3/NAS/UE/ESM/esm_ebr.c
+++ b/openair3/NAS/UE/ESM/esm_ebr.c
@@ -153,7 +153,7 @@ void esm_ebr_register_callback(esm_indication_callback_t cb)
  **      ebi:       Identity of the new EPS bearer context     **
  **      cid:       Identifier of the PDN context the EPS bea- **
  **             rer context is associated to               **
- **      default_ebr    TRUE if the new bearer context is associa- **
+ **      default_ebr    bool if the new bearer context is associa- **
  **             ted to a default EPS bearer                **
  **      Others:    None                                       **
  **                                                                        **
@@ -163,7 +163,7 @@ void esm_ebr_register_callback(esm_indication_callback_t cb)
  **             the not assigned EBI (0) otherwise.        **
  **                                                                        **
  ***************************************************************************/
-int esm_ebr_assign(esm_ebr_data_t *esm_ebr_data, int ebi, int cid, int default_ebr)
+int esm_ebr_assign(esm_ebr_data_t *esm_ebr_data, int ebi, int cid, bool default_ebr)
 {
   esm_ebr_context_t *ebr_ctx = NULL;
   int                i;
@@ -284,7 +284,7 @@ int esm_ebr_release(esm_ebr_data_t *esm_ebr_data,
  **                                                                        **
  **      ebi:       The identity of the EPS bearer             **
  **      status:    The new EPS bearer context status          **
- **      ue_requested:  TRUE/FALSE if the modification of the EPS  **
+ **      ue_requested:  true/false if the modification of the EPS  **
  **             bearer context status was requested by the **
  **             UE/network                                 **
  **      Others:    None                                       **
@@ -294,7 +294,7 @@ int esm_ebr_release(esm_ebr_data_t *esm_ebr_data,
  **                                                                        **
  ***************************************************************************/
 int esm_ebr_set_status(user_api_id_t *user_api_id, esm_ebr_data_t *esm_ebr_data,
-  int ebi, esm_ebr_state status, int ue_requested)
+  int ebi, esm_ebr_state status, bool ue_requested)
 {
   esm_ebr_context_t *ebr_ctx;
   esm_ebr_state old_status;
@@ -385,11 +385,11 @@ esm_ebr_state esm_ebr_get_status(esm_ebr_data_t *esm_ebr_data,
  **      Others:    None                                       **
  **                                                                        **
  ** Outputs:     None                                                      **
- **      Return:    TRUE, FALSE                                **
+ **      Return:    true, false                                **
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int esm_ebr_is_reserved(esm_ebr_data_t *esm_ebr_data, int ebi)
+bool esm_ebr_is_reserved(esm_ebr_data_t *esm_ebr_data, int ebi)
 {
   return ( (ebi != ESM_EBI_UNASSIGNED) && (ebi < ESM_EBI_MIN) );
 }
@@ -404,12 +404,11 @@ int esm_ebr_is_reserved(esm_ebr_data_t *esm_ebr_data, int ebi)
  **      ebi:       The identity of the EPS bearer             **
  **                                                                        **
  ** Outputs:     None                                                      **
- **      Return:    TRUE, FALSE                                **
+ **      Return:    true, false                                **
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int esm_ebr_is_not_in_use(esm_ebr_data_t *esm_ebr_data,
-  int ebi)
+bool esm_ebr_is_not_in_use(esm_ebr_data_t *esm_ebr_data, int ebi)
 {
 
   return ( (ebi == ESM_EBI_UNASSIGNED) ||
diff --git a/openair3/NAS/UE/ESM/esm_ebr.h b/openair3/NAS/UE/ESM/esm_ebr.h
index 6de4a048a49..4447a227baa 100644
--- a/openair3/NAS/UE/ESM/esm_ebr.h
+++ b/openair3/NAS/UE/ESM/esm_ebr.h
@@ -75,15 +75,15 @@ typedef int (*esm_indication_callback_t) (user_api_id_t *user_api_id, int, netwo
 
 void esm_ebr_register_callback(esm_indication_callback_t cb);
 
-int esm_ebr_is_reserved(esm_ebr_data_t *esm_ebr_data, int ebi);
+bool esm_ebr_is_reserved(esm_ebr_data_t *esm_ebr_data, int ebi);
 
 esm_ebr_data_t *esm_ebr_initialize(void);
-int esm_ebr_assign(esm_ebr_data_t *esm_ebr_data, int ebi, int cid, int default_ebr);
+int esm_ebr_assign(esm_ebr_data_t *esm_ebr_data, int ebi, int cid, bool default_ebr);
 int esm_ebr_release(esm_ebr_data_t *esm_ebr_data, int ebi);
 
-int esm_ebr_set_status(user_api_id_t *user_api_id, esm_ebr_data_t *esm_ebr_data, int ebi, esm_ebr_state status, int ue_requested);
+int esm_ebr_set_status(user_api_id_t *user_api_id, esm_ebr_data_t *esm_ebr_data, int ebi, esm_ebr_state status, bool ue_requested);
 esm_ebr_state esm_ebr_get_status(esm_ebr_data_t *esm_ebr_data, int ebi);
 
-int esm_ebr_is_not_in_use(esm_ebr_data_t *esm_ebr_data, int ebi);
+bool esm_ebr_is_not_in_use(esm_ebr_data_t *esm_ebr_data, int ebi);
 
 #endif /* __ESM_EBR_H__*/
diff --git a/openair3/NAS/UE/ESM/esm_ebr_context.c b/openair3/NAS/UE/ESM/esm_ebr_context.c
index b801ca2ad54..ca69687abe5 100644
--- a/openair3/NAS/UE/ESM/esm_ebr_context.c
+++ b/openair3/NAS/UE/ESM/esm_ebr_context.c
@@ -84,7 +84,7 @@ static int _esm_ebr_context_check_precedence(const network_tft_t *,
  ** Inputs: **
  **      pid:       PDN connection identifier                  **
  **      ebi:       EPS bearer identity                        **
- **      is_default:    TRUE if the new bearer is a default EPS    **
+ **      is_default:    true if the new bearer is a default EPS    **
  **             bearer context                             **
  **      esm_qos:   EPS bearer level QoS parameters            **
  **      tft:       Traffic flow template parameters           **
@@ -98,7 +98,7 @@ static int _esm_ebr_context_check_precedence(const network_tft_t *,
  ***************************************************************************/
 int esm_ebr_context_create(
   esm_data_t *esm_data, int ueid,
-  int pid, int ebi, int is_default,
+  int pid, int ebi, bool is_default,
   const network_qos_t *qos, const network_tft_t *tft) {
   int                 bid     = 0;
   esm_data_context_t *esm_ctx = NULL;
@@ -185,11 +185,11 @@ int esm_ebr_context_create(
 
       if (is_default) {
         /* Set the PDN connection activation indicator */
-        esm_ctx->pdn[pid].is_active = TRUE;
+        esm_ctx->pdn[pid].is_active = true;
 
         /* Update the emergency bearer services indicator */
         if (pdn->is_emergency) {
-          esm_ctx->emergency = TRUE;
+          esm_ctx->emergency = true;
         }
 
         // LG ADD TEMP
@@ -383,7 +383,7 @@ int esm_ebr_context_create(
  ***************************************************************************/
 int esm_ebr_context_release(nas_user_t *user,
                             int ebi, int *pid, int *bid) {
-  int found = FALSE;
+  bool found = false;
   esm_pdn_t *pdn = NULL;
   esm_data_context_t *esm_ctx;
   esm_ebr_data_t *esm_ebr_data = user->esm_ebr_data;
@@ -416,7 +416,7 @@ int esm_ebr_context_release(nas_user_t *user,
             }
 
             /* The EPS bearer context entry is found */
-            found = TRUE;
+            found = true;
             break;
           }
         }
@@ -450,7 +450,7 @@ int esm_ebr_context_release(nas_user_t *user,
 
         if (pdn->bearer[*bid] != NULL) {
           ebi = pdn->bearer[*bid]->ebi;
-          found = TRUE;
+          found = true;
         }
       }
     }
@@ -503,7 +503,7 @@ int esm_ebr_context_release(nas_user_t *user,
 
           /* Set the EPS bearer context state to INACTIVE */
           esm_ebr_set_status(user_api_id, esm_ebr_data, pdn->bearer[i]->ebi,
-                             ESM_EBR_INACTIVE, TRUE);
+                             ESM_EBR_INACTIVE, true);
           /* Release EPS bearer data */
           esm_ebr_release(esm_ebr_data, pdn->bearer[i]->ebi);
           // esm_ebr_release()
@@ -519,11 +519,11 @@ int esm_ebr_context_release(nas_user_t *user,
       }
 
       /* Reset the PDN connection activation indicator */
-      esm_ctx->pdn[*pid].is_active = FALSE;
+      esm_ctx->pdn[*pid].is_active = false;
 
       /* Update the emergency bearer services indicator */
       if (pdn->is_emergency) {
-        esm_ctx->emergency = FALSE;
+        esm_ctx->emergency = false;
       }
     }
 
@@ -534,7 +534,7 @@ int esm_ebr_context_release(nas_user_t *user,
     if (esm_ctx->n_ebrs == 0) {
       emm_sap_t emm_sap;
       emm_sap.primitive = EMMESM_ESTABLISH_CNF;
-      emm_sap.u.emm_esm.u.establish.is_attached = FALSE;
+      emm_sap.u.emm_esm.u.establish.is_attached = false;
       (void) emm_sap_send(user, &emm_sap);
     }
     /* 3GPP TS 24.301, section 6.4.4.3, 6.4.4.6
@@ -546,8 +546,8 @@ int esm_ebr_context_release(nas_user_t *user,
     else if (esm_ctx->emergency && (esm_ctx->n_ebrs == 1) ) {
       emm_sap_t emm_sap;
       emm_sap.primitive = EMMESM_ESTABLISH_CNF;
-      emm_sap.u.emm_esm.u.establish.is_attached = TRUE;
-      emm_sap.u.emm_esm.u.establish.is_emergency = TRUE;
+      emm_sap.u.emm_esm.u.establish.is_attached = true;
+      emm_sap.u.emm_esm.u.establish.is_emergency = true;
       (void) emm_sap_send(user, &emm_sap);
     }
 
diff --git a/openair3/NAS/UE/ESM/esm_ebr_context.h b/openair3/NAS/UE/ESM/esm_ebr_context.h
index d7dfb1da70f..c72f3f0e8b6 100644
--- a/openair3/NAS/UE/ESM/esm_ebr_context.h
+++ b/openair3/NAS/UE/ESM/esm_ebr_context.h
@@ -66,7 +66,7 @@ typedef enum {
 /******************  E X P O R T E D    F U N C T I O N S  ******************/
 /****************************************************************************/
 
-int esm_ebr_context_create(esm_data_t *esm_data, int ueid, int pid, int ebi, int is_default,
+int esm_ebr_context_create(esm_data_t *esm_data, int ueid, int pid, int ebi, bool is_default,
                            const network_qos_t *qos, const network_tft_t *tft);
 
 int esm_ebr_context_release(nas_user_t *user, int ebi, int *pid, int *bid);
diff --git a/openair3/NAS/UE/ESM/esm_main.c b/openair3/NAS/UE/ESM/esm_main.c
index 288e7486796..895e463726b 100644
--- a/openair3/NAS/UE/ESM/esm_main.c
+++ b/openair3/NAS/UE/ESM/esm_main.c
@@ -96,12 +96,12 @@ void esm_main_initialize(nas_user_t *user, esm_indication_callback_t cb)
 
   for (i = 0; i < ESM_DATA_PDN_MAX + 1; i++) {
     esm_data->pdn[i].pid = -1;
-    esm_data->pdn[i].is_active = FALSE;
+    esm_data->pdn[i].is_active = false;
     esm_data->pdn[i].data = NULL;
   }
 
   /* Emergency bearer services indicator */
-  esm_data->emergency = FALSE;
+  esm_data->emergency = false;
 
   /* Initialize the procedure transaction identity manager */
 
@@ -225,12 +225,12 @@ int esm_main_get_nb_pdns(esm_data_t *esm_data)
  ** Inputs:  None                                                      **
  **                                                                        **
  ** Outputs:     None                                                      **
- **      Return:    TRUE if a PDN connection for emergency     **
+ **      Return:    true if a PDN connection for emergency     **
  **             bearer services is established             **
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int esm_main_has_emergency(esm_data_t *esm_data)
+bool esm_main_has_emergency(esm_data_t *esm_data)
 {
   LOG_FUNC_IN;
 
@@ -245,16 +245,16 @@ int esm_main_has_emergency(esm_data_t *esm_data)
  **                                                                        **
  ** Inputs:  cid:       PDN connection identifier                  **
  **                                                                        **
- ** Outputs:     state:     TRUE if the current state of the PDN con-  **
- **             nection is ACTIVE; FALSE otherwise.        **
- **      Return:    TRUE if the specified PDN connection has a **
- **             PDN context defined; FALSE if no any PDN   **
+ ** Outputs:     state:     true if the current state of the PDN con-  **
+ **             nection is ACTIVE; false otherwise.        **
+ **      Return:    true if the specified PDN connection has a **
+ **             PDN context defined; false if no any PDN   **
  **             context has been defined for the specified **
  **             connection.                                **
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int esm_main_get_pdn_status(nas_user_t *user, int cid, int *state)
+bool esm_main_get_pdn_status(nas_user_t *user, int cid, bool *state)
 {
   LOG_FUNC_IN;
 
@@ -263,14 +263,14 @@ int esm_main_get_pdn_status(nas_user_t *user, int cid, int *state)
   esm_ebr_data_t *esm_ebr_data = user-> esm_ebr_data;
 
   if (pid >= ESM_DATA_PDN_MAX) {
-    return (FALSE);
+    return (false);
   } else if (pid != esm_data->pdn[pid].pid) {
     LOG_TRACE(WARNING, "ESM-MAIN  - PDN connection %d is not defined", cid);
-    return (FALSE);
+    return (false);
   } else if (esm_data->pdn[pid].data == NULL) {
     LOG_TRACE(ERROR, "ESM-MAIN  - PDN connection %d has not been allocated",
               cid);
-    return (FALSE);
+    return (false);
   }
 
   if (esm_data->pdn[pid].data->bearer[0] != NULL) {
@@ -281,7 +281,7 @@ int esm_main_get_pdn_status(nas_user_t *user, int cid, int *state)
   }
 
   /* The PDN connection has not been activated yet */
-  LOG_FUNC_RETURN (TRUE);
+  LOG_FUNC_RETURN (true);
 }
 
 /****************************************************************************
@@ -301,7 +301,7 @@ int esm_main_get_pdn_status(nas_user_t *user, int cid, int *state)
  **                                                                        **
  ***************************************************************************/
 int esm_main_get_pdn(esm_data_t *esm_data, int cid, int *type, const char **apn,
-                     int *is_emergency, int *is_active)
+                     bool *is_emergency, bool *is_active)
 {
   LOG_FUNC_IN;
 
diff --git a/openair3/NAS/UE/ESM/esm_main.h b/openair3/NAS/UE/ESM/esm_main.h
index 6e6ecc0db46..ca8679c5b7a 100644
--- a/openair3/NAS/UE/ESM/esm_main.h
+++ b/openair3/NAS/UE/ESM/esm_main.h
@@ -69,10 +69,9 @@ void esm_main_cleanup(esm_data_t *esm_data);
 /* User's getter for PDN connections and EPS bearer contexts */
 int esm_main_get_nb_pdns_max(esm_data_t *esm_data);
 int esm_main_get_nb_pdns(esm_data_t *esm_data);
-int esm_main_has_emergency(esm_data_t *esm_data);
-int esm_main_get_pdn_status(nas_user_t *user, int cid, int *state);
-int esm_main_get_pdn(esm_data_t *esm_data, int cid, int *type, const char **apn, int *is_emergency,
-                     int *is_active);
+bool esm_main_has_emergency(esm_data_t *esm_data);
+bool esm_main_get_pdn_status(nas_user_t *user, int cid, bool *state);
+int esm_main_get_pdn(esm_data_t *esm_data, int cid, int *type, const char **apn, bool *is_emergency, bool *is_active);
 int esm_main_get_pdn_addr(esm_data_t *esm_data, int cid, const char **ipv4addr, const char **ipv6addr);
 
 
diff --git a/openair3/NAS/UE/ESM/esm_proc.h b/openair3/NAS/UE/ESM/esm_proc.h
index 941cfa620db..42a925327e3 100644
--- a/openair3/NAS/UE/ESM/esm_proc.h
+++ b/openair3/NAS/UE/ESM/esm_proc.h
@@ -79,7 +79,7 @@ typedef enum {
  * Type of the ESM procedure callback executed when requested by the UE
  * or initiated by the network
  */
-typedef int (*esm_proc_procedure_t) (nas_user_t *user, int, int, OctetString *, int);
+typedef int (*esm_proc_procedure_t) (nas_user_t *user, bool, int, OctetString *, bool);
 
 /* EPS bearer level QoS parameters */
 typedef network_qos_t esm_proc_qos_t;
@@ -113,8 +113,7 @@ typedef struct {
  * --------------------------------------------------------------------------
  */
 int esm_proc_status_ind(int pti, int ebi, int *esm_cause);
-int esm_proc_status(nas_user_t *user, int is_standalone, int pti, OctetString *msg,
-                    int sent_by_ue);
+int esm_proc_status(nas_user_t *user, bool is_standalone, int pti, OctetString *msg, bool sent_by_ue);
 
 
 /*
@@ -123,10 +122,10 @@ int esm_proc_status(nas_user_t *user, int is_standalone, int pti, OctetString *m
  * --------------------------------------------------------------------------
  */
 int esm_proc_pdn_connectivity(nas_user_t *user, int cid, int to_define,
-                              esm_proc_pdn_type_t pdn_type, const OctetString *apn, int is_emergency,
+                              esm_proc_pdn_type_t pdn_type, const OctetString *apn, bool is_emergency,
                               unsigned int *pti);
-int esm_proc_pdn_connectivity_request(nas_user_t *user, int is_standalone, int pti,
-                                      OctetString *msg, int sent_by_ue);
+int esm_proc_pdn_connectivity_request(nas_user_t *user, bool is_standalone, int pti,
+                                      OctetString *msg, bool sent_by_ue);
 int esm_proc_pdn_connectivity_accept(nas_user_t *user, int pti, esm_proc_pdn_type_t pdn_type,
                                      const OctetString *pdn_address, const OctetString *apn, int *esm_cause);
 int esm_proc_pdn_connectivity_reject(nas_user_t *user, int pti, int *esm_cause);
@@ -140,8 +139,8 @@ int esm_proc_pdn_connectivity_failure(nas_user_t *user, int is_pending);
  * --------------------------------------------------------------------------
  */
 int esm_proc_pdn_disconnect(esm_data_t *esm_data, int cid, unsigned int *pti, unsigned int *ebi);
-int esm_proc_pdn_disconnect_request(nas_user_t *user, int is_standalone, int pti,
-                                    OctetString *msg, int sent_by_ue);
+int esm_proc_pdn_disconnect_request(nas_user_t *user, bool is_standalone, int pti,
+                                    OctetString *msg, bool sent_by_ue);
 
 int esm_proc_pdn_disconnect_accept(esm_pt_data_t *esm_pt_data, int pti, int *esm_cause);
 int esm_proc_pdn_disconnect_reject(nas_user_t *user, int pti, int *esm_cause);
@@ -157,10 +156,10 @@ int esm_proc_default_eps_bearer_context_request(nas_user_t *user, int pid, int e
 int esm_proc_default_eps_bearer_context_complete(default_eps_bearer_context_data_t *default_eps_bearer_context_data);
 int esm_proc_default_eps_bearer_context_failure(nas_user_t *user);
 
-int esm_proc_default_eps_bearer_context_accept(nas_user_t *user, int is_standalone, int ebi,
-    OctetString *msg, int ue_triggered);
-int esm_proc_default_eps_bearer_context_reject(nas_user_t *user, int is_standalone, int ebi,
-    OctetString *msg, int ue_triggered);
+int esm_proc_default_eps_bearer_context_accept(nas_user_t *user, bool is_standalone, int ebi,
+    OctetString *msg, bool ue_triggered);
+int esm_proc_default_eps_bearer_context_reject(nas_user_t *user, bool is_standalone, int ebi,
+    OctetString *msg, bool ue_triggered);
 
 /*
  * --------------------------------------------------------------------------
@@ -171,10 +170,10 @@ int esm_proc_default_eps_bearer_context_reject(nas_user_t *user, int is_standalo
 int esm_proc_dedicated_eps_bearer_context_request(nas_user_t *user, int ebi, int default_ebi,
     const esm_proc_qos_t *qos, const esm_proc_tft_t *tft, int *esm_cause);
 
-int esm_proc_dedicated_eps_bearer_context_accept(nas_user_t *user, int is_standalone, int ebi,
-    OctetString *msg, int ue_triggered);
-int esm_proc_dedicated_eps_bearer_context_reject(nas_user_t *user, int is_standalone, int ebi,
-    OctetString *msg, int ue_triggered);
+int esm_proc_dedicated_eps_bearer_context_accept(nas_user_t *user, bool is_standalone, int ebi,
+    OctetString *msg, bool ue_triggered);
+int esm_proc_dedicated_eps_bearer_context_reject(nas_user_t *user, bool is_standalone, int ebi,
+    OctetString *msg, bool ue_triggered);
 
 /*
  * --------------------------------------------------------------------------
@@ -182,11 +181,11 @@ int esm_proc_dedicated_eps_bearer_context_reject(nas_user_t *user, int is_standa
  * --------------------------------------------------------------------------
  */
 
-int esm_proc_eps_bearer_context_deactivate(nas_user_t *user, int is_local, int ebi, int *pid,
+int esm_proc_eps_bearer_context_deactivate(nas_user_t *user, bool is_local, int ebi, int *pid,
     int *bid);
 int esm_proc_eps_bearer_context_deactivate_request(nas_user_t *user, int ebi, int *esm_cause);
 
-int esm_proc_eps_bearer_context_deactivate_accept(nas_user_t *user, int is_standalone, int ebi,
-    OctetString *msg, int ue_triggered);
+int esm_proc_eps_bearer_context_deactivate_accept(nas_user_t *user, bool is_standalone, int ebi,
+    OctetString *msg, bool ue_triggered);
 
 #endif /* __ESM_PROC_H__*/
diff --git a/openair3/NAS/UE/ESM/esm_pt.c b/openair3/NAS/UE/ESM/esm_pt.c
index f253291fd9f..d9f593fb571 100644
--- a/openair3/NAS/UE/ESM/esm_pt.c
+++ b/openair3/NAS/UE/ESM/esm_pt.c
@@ -482,11 +482,11 @@ int esm_pt_get_pending_pti(esm_pt_data_t *esm_pt_data, esm_pt_state status)
  ** Inputs:  pti:       The identity of the procedure transaction  **
  **                                                                        **
  ** Outputs:     None                                                      **
- **      Return:    TRUE, FALSE                                **
+ **      Return:    true, false                                **
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int esm_pt_is_not_in_use(esm_pt_data_t *esm_pt_data, int pti)
+bool esm_pt_is_not_in_use(esm_pt_data_t *esm_pt_data, int pti)
 {
   return ( (pti == ESM_PT_UNASSIGNED) ||
            (esm_pt_data->context[pti - ESM_PTI_MIN] == NULL) ||
@@ -504,11 +504,11 @@ int esm_pt_is_not_in_use(esm_pt_data_t *esm_pt_data, int pti)
  **      Others:    None                                       **
  **                                                                        **
  ** Outputs:     None                                                      **
- **      Return:    TRUE, FALSE                                **
+ **      Return:    true, false                                **
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int esm_pt_is_reserved(int pti)
+bool esm_pt_is_reserved(int pti)
 {
   return ( (pti != ESM_PT_UNASSIGNED) && (pti > ESM_PTI_MAX) );
 }
diff --git a/openair3/NAS/UE/ESM/esm_pt.h b/openair3/NAS/UE/ESM/esm_pt.h
index 3179e0f47b7..b0c62253abc 100644
--- a/openair3/NAS/UE/ESM/esm_pt.h
+++ b/openair3/NAS/UE/ESM/esm_pt.h
@@ -64,7 +64,7 @@ Description Defines functions used to handle ESM procedure transactions.
 /******************  E X P O R T E D    F U N C T I O N S  ******************/
 /****************************************************************************/
 
-int esm_pt_is_reserved(int pti);
+bool esm_pt_is_reserved(int pti);
 
 esm_pt_data_t *esm_pt_initialize(void);
 
@@ -79,6 +79,6 @@ int esm_pt_set_status(esm_pt_data_t *esm_pt_data, int pti, esm_pt_state status);
 esm_pt_state esm_pt_get_status(esm_pt_data_t *esm_pt_data, int pti);
 int esm_pt_get_pending_pti(esm_pt_data_t *esm_pt_data, esm_pt_state status);
 
-int esm_pt_is_not_in_use(esm_pt_data_t *esm_pt_data, int pti);
+bool esm_pt_is_not_in_use(esm_pt_data_t *esm_pt_data, int pti);
 
 #endif /* __ESM_PT_H__*/
diff --git a/openair3/NAS/UE/UEprocess.c b/openair3/NAS/UE/UEprocess.c
index 7b9a1be4224..a3a1c9c79b6 100644
--- a/openair3/NAS/UE/UEprocess.c
+++ b/openair3/NAS/UE/UEprocess.c
@@ -205,7 +205,7 @@ static void *_nas_user_mngr(void *args)
   LOG_FUNC_IN;
 
   pthread_setname_np( pthread_self(), "nas_user_mngr");
-  int exit_loop = FALSE;
+  bool exit_loop = false;
 
   int *fd = (int *) args;
 
@@ -251,7 +251,7 @@ static void *_nas_network_mngr(void *args)
   LOG_TRACE (INFO, "UE-MAIN   - Network connection manager started (%d)", *fd);
 
   /* Network receiving loop */
-  while (TRUE) {
+  while (true) {
     /* Read the network data message */
     bytes = network_api_read_data (*fd);
 
diff --git a/openair3/NAS/UE/nas_proc.c b/openair3/NAS/UE/nas_proc.c
index 9350590788a..41230696a48 100644
--- a/openair3/NAS/UE/nas_proc.c
+++ b/openair3/NAS/UE/nas_proc.c
@@ -64,8 +64,8 @@ Description NAS procedure call manager
 #define NAS_PROC_RSRP_UNKNOWN   255
 
 
-static int _nas_proc_activate(nas_user_t *user, int cid, int apply_to_all);
-static int _nas_proc_deactivate(nas_user_t *user, int cid, int apply_to_all);
+static int _nas_proc_activate(nas_user_t *user, int cid, bool apply_to_all);
+static int _nas_proc_deactivate(nas_user_t *user, int cid, bool apply_to_all);
 
 /****************************************************************************/
 /******************  E X P O R T E D    F U N C T I O N S  ******************/
@@ -93,7 +93,7 @@ void nas_proc_initialize(nas_user_t *user, emm_indication_callback_t emm_cb,
   LOG_FUNC_IN;
 
   /* Initialize local NAS data */
-  user->proc.EPS_capability_status = FALSE;
+  user->proc.EPS_capability_status = false;
   user->proc.rsrq = NAS_PROC_RSRQ_UNKNOWN;
   user->proc.rsrp = NAS_PROC_RSRP_UNKNOWN;
 
@@ -129,7 +129,7 @@ void nas_proc_cleanup(nas_user_t *user)
   LOG_FUNC_IN;
 
   /* Detach the UE from the EPS network */
-  int rc = nas_proc_detach(user, TRUE);
+  int rc = nas_proc_detach(user, true);
 
   if (rc != RETURNok) {
     LOG_TRACE(ERROR, "NAS-PROC  - Failed to detach from the network");
@@ -176,7 +176,7 @@ int nas_proc_enable_s1_mode(nas_user_t *user)
    * Notify the EMM procedure call manager that EPS capability
    * of the UE is enabled
    */
-  user->proc.EPS_capability_status = TRUE;
+  user->proc.EPS_capability_status = true;
   emm_sap.primitive = EMMREG_S1_ENABLED;
   rc = emm_sap_send(user, &emm_sap);
 
@@ -209,7 +209,7 @@ int nas_proc_disable_s1_mode(nas_user_t *user)
    * Notify the EMM procedure call manager that EPS capability
    * of the UE is disabled
    */
-  user->proc.EPS_capability_status = FALSE;
+  user->proc.EPS_capability_status = false;
   emm_sap.primitive = EMMREG_S1_DISABLED;
   rc = emm_sap_send(user, &emm_sap);
 
@@ -231,7 +231,7 @@ int nas_proc_disable_s1_mode(nas_user_t *user)
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int nas_proc_get_eps(nas_user_t *user, int *stat)
+int nas_proc_get_eps(nas_user_t *user, bool *stat)
 {
   LOG_FUNC_IN;
 
@@ -449,7 +449,7 @@ int nas_proc_deregister(nas_user_t *user)
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int nas_proc_get_reg_data(nas_user_t *user, int *mode, int *selected, int format,
+int nas_proc_get_reg_data(nas_user_t *user, int *mode, bool *selected, int format,
                           network_plmn_t *oper, int *AcT)
 {
   LOG_FUNC_IN;
@@ -462,12 +462,12 @@ int nas_proc_get_reg_data(nas_user_t *user, int *mode, int *selected, int format
 
   if (oper_name != NULL) {
     /* An operator is currently selected */
-    *selected = TRUE;
+    *selected = true;
     /* Get the supported Radio Access Technology */
     *AcT = emm_main_get_plmn_rat(user->emm_data);
   } else {
     /* No any operator is selected */
-    *selected = FALSE;
+    *selected = false;
     *AcT = NET_ACCESS_UNAVAILABLE;
   }
 
@@ -558,7 +558,7 @@ int nas_proc_get_loc_info(nas_user_t *user, char *tac, char *ci, int *AcT)
  **                                                                        **
  ** Description: Initiates a detach procedure                              **
  **                                                                        **
- ** Inputs:  switch_off:    TRUE if the detach is due to UE switch-off **
+ ** Inputs:  switch_off:    true if the detach is due to UE switch-off **
  **      Others:    None                                       **
  **                                                                        **
  ** Outputs:     None                                                      **
@@ -566,7 +566,7 @@ int nas_proc_get_loc_info(nas_user_t *user, char *tac, char *ci, int *AcT)
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int nas_proc_detach(nas_user_t *user, int switch_off)
+int nas_proc_detach(nas_user_t *user, bool switch_off)
 {
   LOG_FUNC_IN;
 
@@ -607,7 +607,7 @@ int nas_proc_attach(nas_user_t *user)
   if ( !emm_main_is_attached(user->emm_data) ) {
     /* Initiate an Attach procedure */
     emm_sap.primitive = EMMREG_ATTACH_INIT;
-    emm_sap.u.emm_reg.u.attach.is_emergency = FALSE;
+    emm_sap.u.emm_reg.u.attach.is_emergency = false;
     rc = emm_sap_send(user, &emm_sap);
   }
 
@@ -624,16 +624,16 @@ int nas_proc_attach(nas_user_t *user)
  **      Others:    None                                       **
  **                                                                        **
  ** Outputs:     None                                                      **
- **      Return:    TRUE if the UE is currently attached to    **
+ **      Return:    true if the UE is currently attached to    **
  **             the network                                **
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int nas_proc_get_attach_status(nas_user_t *user)
+bool nas_proc_get_attach_status(nas_user_t *user)
 {
   LOG_FUNC_IN;
 
-  int is_attached = emm_main_is_attached(user->emm_data);
+  bool is_attached = emm_main_is_attached(user->emm_data);
 
   LOG_FUNC_RETURN (is_attached);
 }
@@ -690,10 +690,10 @@ int nas_proc_get_pdn_status(nas_user_t *user, int *cids, int *states, int n_pdn_
   /* For all PDN contexts */
   for (cid = 1; (cid < n_pdn+1) && (n_defined_pdn < n_pdn_max); cid++) {
     /* Get the status of this PDN */
-    int state = FALSE;
-    int is_defined = esm_main_get_pdn_status(user, cid, &state);
+    bool state = false;
+    bool is_defined = esm_main_get_pdn_status(user, cid, &state);
 
-    if (is_defined != FALSE) {
+    if (is_defined != false) {
       /* This PDN has been defined */
       *(cids++) = cid;
       *(states++) = state;
@@ -734,7 +734,7 @@ int nas_proc_get_pdn_param(esm_data_t *esm_data, int *cids, int *types, const ch
 
   /* For all PDN contexts */
   for (cid = 1; (cid < n_pdn+1) && (n_defined_pdn < n_pdn_max); cid++) {
-    int emergency, active;
+    bool emergency, active;
     /* Get PDN connection parameters */
     int rc = esm_main_get_pdn(esm_data, cid, types, apns, &emergency, &active);
 
@@ -845,8 +845,8 @@ int nas_proc_set_pdn(nas_user_t *user, int cid, int type, const char *apn, int i
 
   esm_sap_t esm_sap;
   esm_sap.primitive = ESM_PDN_CONNECTIVITY_REQ;
-  esm_sap.is_standalone = TRUE;
-  esm_sap.data.pdn_connect.is_defined = FALSE;
+  esm_sap.is_standalone = true;
+  esm_sap.data.pdn_connect.is_defined = false;
   esm_sap.data.pdn_connect.cid = cid;
   esm_sap.data.pdn_connect.pdn_type = type;
   esm_sap.data.pdn_connect.apn = apn;
@@ -882,8 +882,8 @@ int nas_proc_reset_pdn(nas_user_t *user, int cid)
 
   esm_sap_t esm_sap;
   esm_sap.primitive = ESM_PDN_CONNECTIVITY_REJ;
-  esm_sap.is_standalone = TRUE;
-  esm_sap.data.pdn_connect.is_defined = TRUE;
+  esm_sap.is_standalone = true;
+  esm_sap.data.pdn_connect.is_defined = true;
   esm_sap.data.pdn_connect.cid = cid;
   /*
    * Notify ESM that the specified PDN context has to be undefined
@@ -916,7 +916,7 @@ int nas_proc_deactivate_pdn(nas_user_t *user, int cid)
 
   if (cid > 0) {
     /* Deactivate only the specified PDN context */
-    rc = _nas_proc_deactivate(user, cid, FALSE);
+    rc = _nas_proc_deactivate(user, cid, false);
   } else {
     /* Do not deactivate the PDN connection established during initial
      * network attachment (identifier 1) */
@@ -924,7 +924,7 @@ int nas_proc_deactivate_pdn(nas_user_t *user, int cid)
 
     /* Deactivate all active PDN contexts */
     while ((rc != RETURNerror) && (cid < esm_main_get_nb_pdns_max(user->esm_data)+1)) {
-      rc = _nas_proc_deactivate(user, cid++, TRUE);
+      rc = _nas_proc_deactivate(user, cid++, true);
     }
   }
 
@@ -970,13 +970,13 @@ int nas_proc_activate_pdn(nas_user_t *user, int cid)
   if (rc != RETURNerror) {
     if (cid > 0) {
       /* Activate only the specified PDN context */
-      rc = _nas_proc_activate(user, cid, FALSE);
+      rc = _nas_proc_activate(user, cid, false);
     } else {
       cid = 1;
 
       /* Activate all defined PDN contexts */
       while ((rc != RETURNerror) && (cid < esm_main_get_nb_pdns_max(user->esm_data)+1)) {
-        rc = _nas_proc_activate(user, cid++, TRUE);
+        rc = _nas_proc_activate(user, cid++, true);
       }
     }
   }
@@ -1177,7 +1177,7 @@ int nas_proc_ul_transfer_cnf(nas_user_t *user)
    */
   emm_sap.primitive = EMMAS_DATA_IND;
   emm_sap.u.emm_as.u.data.ueid = user->ueid;
-  emm_sap.u.emm_as.u.data.delivered = TRUE;
+  emm_sap.u.emm_as.u.data.delivered = true;
   emm_sap.u.emm_as.u.data.NASmsg.length = 0;
   rc = emm_sap_send(user, &emm_sap);
 
@@ -1214,7 +1214,7 @@ int nas_proc_ul_transfer_rej(nas_user_t *user)
    */
   emm_sap.primitive = EMMAS_DATA_IND;
   emm_sap.u.emm_as.u.data.ueid = user->ueid;
-  emm_sap.u.emm_as.u.data.delivered = FALSE;
+  emm_sap.u.emm_as.u.data.delivered = false;
   emm_sap.u.emm_as.u.data.NASmsg.length = 0;
   rc = emm_sap_send(user, &emm_sap);
 
@@ -1251,7 +1251,7 @@ int nas_proc_dl_transfer_ind(nas_user_t *user, const Byte_t *data, uint32_t len)
      */
     emm_sap.primitive = EMMAS_DATA_IND;
     emm_sap.u.emm_as.u.data.ueid = user->ueid;
-    emm_sap.u.emm_as.u.data.delivered = TRUE;
+    emm_sap.u.emm_as.u.data.delivered = true;
     emm_sap.u.emm_as.u.data.NASmsg.length = len;
     emm_sap.u.emm_as.u.data.NASmsg.value = (uint8_t *)data;
     rc = emm_sap_send(user, &emm_sap);
@@ -1274,7 +1274,7 @@ int nas_proc_dl_transfer_ind(nas_user_t *user, const Byte_t *data, uint32_t len)
  **                                                                        **
  ** Inputs:  cid:       Identifier of the PDN context used to es-  **
  **             tablished connectivity to specified PDN    **
- **      apply_to_all:  TRUE if the PDN connectivity procedure is  **
+ **      apply_to_all:  true if the PDN connectivity procedure is  **
  **             initiated to establish connectivity to all **
  **             defined PDNs                               **
  **      Others:    None                                       **
@@ -1284,12 +1284,12 @@ int nas_proc_dl_transfer_ind(nas_user_t *user, const Byte_t *data, uint32_t len)
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-static int _nas_proc_activate(nas_user_t *user, int cid, int apply_to_all)
+static int _nas_proc_activate(nas_user_t *user, int cid, bool apply_to_all)
 {
   LOG_FUNC_IN;
 
   int rc;
-  int active = FALSE;
+  bool active = false;
 
   esm_sap_t esm_sap;
 
@@ -1332,8 +1332,8 @@ static int _nas_proc_activate(nas_user_t *user, int cid, int apply_to_all)
    * for the specified PDN
    */
   esm_sap.primitive = ESM_PDN_CONNECTIVITY_REQ;
-  esm_sap.is_standalone = TRUE;
-  esm_sap.data.pdn_connect.is_defined = TRUE;
+  esm_sap.is_standalone = true;
+  esm_sap.data.pdn_connect.is_defined = true;
   esm_sap.data.pdn_connect.cid = cid;
   rc = esm_sap_send(user, &esm_sap);
 
@@ -1347,7 +1347,7 @@ static int _nas_proc_activate(nas_user_t *user, int cid, int apply_to_all)
  ** Description: Initiates a PDN disconnect procedure                      **
  **                                                                        **
  ** Inputs:  cid:       Identifier of the PDN context              **
- **      apply_to_all:  TRUE if the PDN disconnect procedure is    **
+ **      apply_to_all:  true if the PDN disconnect procedure is    **
  **             initiated to request disconnection from    **
  **             all active PDNs                            **
  **      Others:    None                                       **
@@ -1357,15 +1357,15 @@ static int _nas_proc_activate(nas_user_t *user, int cid, int apply_to_all)
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-static int _nas_proc_deactivate(nas_user_t *user, int cid, int apply_to_all)
+static int _nas_proc_deactivate(nas_user_t *user, int cid, bool apply_to_all)
 {
   LOG_FUNC_IN;
 
   int rc;
   int pdn_type;
   const char *apn;
-  int emergency = FALSE;
-  int active = FALSE;
+  bool emergency = false;
+  bool active = false;
 
   /* Get PDN context parameters */
   rc = esm_main_get_pdn(user->esm_data, cid, &pdn_type, &apn, &emergency, &active);
diff --git a/openair3/NAS/UE/nas_proc.h b/openair3/NAS/UE/nas_proc.h
index 4e653549ae0..bd88691de87 100644
--- a/openair3/NAS/UE/nas_proc.h
+++ b/openair3/NAS/UE/nas_proc.h
@@ -74,7 +74,7 @@ void nas_proc_cleanup(nas_user_t *user);
 
 int nas_proc_enable_s1_mode(nas_user_t *user);
 int nas_proc_disable_s1_mode(nas_user_t *user);
-int nas_proc_get_eps(nas_user_t *user, int *stat);
+int nas_proc_get_eps(nas_user_t *user, bool *stat);
 
 int nas_proc_get_imsi(emm_data_t *emm_data, char *imsi_str);
 int nas_proc_get_msisdn(nas_user_t *user, char *msisdn_str, int *ton_npi);
@@ -83,16 +83,16 @@ int nas_proc_get_signal_quality(nas_user_t *user, int *rsrq, int *rsrp);
 
 int nas_proc_register(nas_user_t *user, int mode, int format, const network_plmn_t *oper, int AcT);
 int nas_proc_deregister(nas_user_t *user);
-int nas_proc_get_reg_data(nas_user_t *user, int *mode, int *selected, int format,
+int nas_proc_get_reg_data(nas_user_t *user, int *mode, bool *selected, int format,
                           network_plmn_t *oper, int *AcT);
 int nas_proc_get_oper_list(nas_user_t *user, const char **oper_list);
 
 int nas_proc_get_reg_status(nas_user_t *user, int *stat);
 int nas_proc_get_loc_info(nas_user_t *user, char *tac, char *ci, int *AcT);
 
-int nas_proc_detach(nas_user_t *user, int switch_off);
+int nas_proc_detach(nas_user_t *user, bool switch_off);
 int nas_proc_attach(nas_user_t *user);
-int nas_proc_get_attach_status(nas_user_t *user);
+bool nas_proc_get_attach_status(nas_user_t *user);
 
 int nas_proc_reset_pdn(nas_user_t *user, int cid);
 int nas_proc_set_pdn(nas_user_t *user, int cid, int type, const char *apn, int ipv4_addr,
diff --git a/openair3/NAS/UE/nas_proc_defs.h b/openair3/NAS/UE/nas_proc_defs.h
index 1ce2bfd929d..09cf8e834e2 100644
--- a/openair3/NAS/UE/nas_proc_defs.h
+++ b/openair3/NAS/UE/nas_proc_defs.h
@@ -1,12 +1,14 @@
 #ifndef _NAS_PROC_DEFS_H
 #define _NAS_PROC_DEFS_H
 
+#include <stdbool.h>
+
 /*
  * Local NAS data
  */
 typedef struct {
   /* EPS capibility status */
-  int EPS_capability_status;
+  bool EPS_capability_status;
   /* Reference signal received quality    */
   int rsrq;
   /* Reference signal received power      */
diff --git a/openair3/NAS/UE/nas_ue_task.c b/openair3/NAS/UE/nas_ue_task.c
index a94445349cf..34bf6cb3ad5 100644
--- a/openair3/NAS/UE/nas_ue_task.c
+++ b/openair3/NAS/UE/nas_ue_task.c
@@ -43,10 +43,10 @@ uint16_t ue_idx_standalone = 0xFFFF;
 
 char *make_port_str_from_ueid(const char *base_port_str, int ueid);
 
-static int nas_ue_process_events(nas_user_container_t *users, struct epoll_event *events, int nb_events)
+static bool nas_ue_process_events(nas_user_container_t *users, struct epoll_event *events, int nb_events)
 {
   int event;
-  int exit_loop = FALSE;
+  bool exit_loop = false;
 
   LOG_I(NAS, "[UE] Received %d events\n", nb_events);
 
@@ -310,7 +310,7 @@ void *nas_ue_task(void *args_p)
     nb_events = itti_get_events(TASK_NAS_UE, &events);
 
     if ((nb_events > 0) && (events != NULL)) {
-      if (nas_ue_process_events(users, events, nb_events) == TRUE) {
+      if (nas_ue_process_events(users, events, nb_events) == true) {
         LOG_E(NAS, "[UE] Received exit loop\n");
       }
     }
diff --git a/openair3/NAS/UE/nas_user.c b/openair3/NAS/UE/nas_user.c
index d3467eddd51..56e41e4610e 100644
--- a/openair3/NAS/UE/nas_user.c
+++ b/openair3/NAS/UE/nas_user.c
@@ -187,10 +187,10 @@ void nas_user_initialize(nas_user_t *user, emm_indication_callback_t emm_cb,
  **                             from which data have been received         **
  **              Others:        None                                       **
  **                                                                        **
- ** Outputs:     Return:        FALSE, TRUE                                **
+ ** Outputs:     Return:        false, true                                **
  **                                                                        **
  ***************************************************************************/
-int nas_user_receive_and_process(nas_user_t *user, char *message)
+bool nas_user_receive_and_process(nas_user_t *user, char *message)
 {
   LOG_FUNC_IN;
 
@@ -212,13 +212,13 @@ int nas_user_receive_and_process(nas_user_t *user, char *message)
        * exit from the receiving loop */
       LOG_TRACE (ERROR, "UE-MAIN   - "
                  "Failed to read data from the user application layer");
-      LOG_FUNC_RETURN(TRUE);
+      LOG_FUNC_RETURN(true);
     }
   }
 
   if (bytes == 0) {
     /* A signal was caught before any data were available */
-    LOG_FUNC_RETURN(FALSE);
+    LOG_FUNC_RETURN(false);
   }
 
   /* Decode the user data message */
@@ -268,12 +268,12 @@ int nas_user_receive_and_process(nas_user_t *user, char *message)
          * exit from the receiving loop */
         LOG_TRACE (ERROR, "UE-MAIN   - "
                    "Failed to send data to the user application layer");
-        LOG_FUNC_RETURN(TRUE);
+        LOG_FUNC_RETURN(true);
       }
     }
   }
 
-  LOG_FUNC_RETURN(FALSE);
+  LOG_FUNC_RETURN(false);
 }
 
 /****************************************************************************
@@ -989,7 +989,7 @@ static int _nas_user_proc_cops(nas_user_t *user, const at_command_t *data)
   char oper_buffer[NET_FORMAT_MAX_SIZE], *oper = oper_buffer;
   memset(oper, 0, NET_FORMAT_MAX_SIZE);
 
-  int oper_is_selected;
+  bool oper_is_selected;
 
   at_response->id = data->id;
   at_response->type = data->type;
@@ -1266,7 +1266,7 @@ static int _nas_user_proc_cgatt(nas_user_t *user, const at_command_t *data)
       if (data->command.cgatt.state == AT_CGATT_ATTACHED) {
         ret_code = nas_proc_attach(user);
       } else if (data->command.cgatt.state == AT_CGATT_DETACHED) {
-        ret_code = nas_proc_detach(user, FALSE);
+        ret_code = nas_proc_detach(user, false);
       }
 
       if (ret_code != RETURNok) {
@@ -1284,7 +1284,7 @@ static int _nas_user_proc_cgatt(nas_user_t *user, const at_command_t *data)
     /*
      * Read command returns the current EPS service state.
      */
-    if (nas_proc_get_attach_status(user) != TRUE) {
+    if (nas_proc_get_attach_status(user) != true) {
       cgatt->state = AT_CGATT_DETACHED;
     } else {
       cgatt->state = AT_CGATT_ATTACHED;
@@ -1821,7 +1821,7 @@ static int _nas_user_proc_cgdcont(nas_user_t *user, const at_command_t *data)
   int emergency = AT_CGDCONT_EBS_DEFAULT;
   int p_cscf = AT_CGDCONT_PCSCF_DEFAULT;
   int im_cn_signalling = AT_CGDCONT_IM_CM_DEFAULT;
-  int reset_pdn = TRUE;
+  bool reset_pdn = true;
 
   at_response->id = data->id;
   at_response->type = data->type;
@@ -1870,7 +1870,7 @@ static int _nas_user_proc_cgdcont(nas_user_t *user, const at_command_t *data)
         break;
       }
 
-      reset_pdn = FALSE;
+      reset_pdn = false;
     }
 
     if (data->mask & AT_CGDCONT_APN_MASK) {
diff --git a/openair3/NAS/UE/nas_user.h b/openair3/NAS/UE/nas_user.h
index 1ded438ddd1..63920540d4d 100644
--- a/openair3/NAS/UE/nas_user.h
+++ b/openair3/NAS/UE/nas_user.h
@@ -63,7 +63,7 @@ Description NAS procedure functions triggered by the user
 void nas_user_initialize(nas_user_t *user, emm_indication_callback_t emm_cb,
                          esm_indication_callback_t esm_cb, const char *version);
 
-int nas_user_receive_and_process(nas_user_t *user, char *message);
+bool nas_user_receive_and_process(nas_user_t *user, char *message);
 
 int nas_user_process_data(nas_user_t *user, const void *data);
 
diff --git a/openair3/NGAP/ngap_common.h b/openair3/NGAP/ngap_common.h
index 60f7beacd06..a550b6e4367 100644
--- a/openair3/NGAP/ngap_common.h
+++ b/openair3/NGAP/ngap_common.h
@@ -102,13 +102,6 @@
 # error "You are compiling ngap with the wrong version of ASN1C"
 #endif
 
-#ifndef FALSE
-# define FALSE (0)
-#endif
-#ifndef TRUE
-# define TRUE  (!FALSE)
-#endif
-
 #define NGAP_UE_ID_FMT  "0x%06"PRIX32
 
 extern int asn_debug;
diff --git a/openair3/S1AP/s1ap_common.h b/openair3/S1AP/s1ap_common.h
index 3c07f92a7f5..d383b622b61 100644
--- a/openair3/S1AP/s1ap_common.h
+++ b/openair3/S1AP/s1ap_common.h
@@ -61,13 +61,6 @@
 # error "You are compiling s1ap with the wrong version of ASN1C"
 #endif
 
-#ifndef FALSE
-# define FALSE (0)
-#endif
-#ifndef TRUE
-# define TRUE  (!FALSE)
-#endif
-
 #define S1AP_UE_ID_FMT  "0x%06"PRIX32
 
 extern int asn_debug;
diff --git a/openair3/S1AP/s1ap_eNB_trace.c b/openair3/S1AP/s1ap_eNB_trace.c
index 695eeb4ef83..de84682ec1a 100644
--- a/openair3/S1AP/s1ap_eNB_trace.c
+++ b/openair3/S1AP/s1ap_eNB_trace.c
@@ -115,7 +115,7 @@ int s1ap_eNB_handle_trace_start(uint32_t         assoc_id,
     container = &pdu->choice.initiatingMessage.value.choice.TraceStart;
 
     S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_TraceStartIEs_t, ie, container,
-                               S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID, TRUE);
+                               S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID, true);
     mme_ref_p = s1ap_eNB_get_MME(NULL, assoc_id, 0);
     DevAssert(mme_ref_p != NULL);
   if (ie != NULL) {
diff --git a/openair3/SCTP/sctp_eNB_task.c b/openair3/SCTP/sctp_eNB_task.c
index 06e606e36b6..df6dde0f997 100644
--- a/openair3/SCTP/sctp_eNB_task.c
+++ b/openair3/SCTP/sctp_eNB_task.c
@@ -859,7 +859,7 @@ sctp_eNB_accept_associations(
     struct sctp_cnx_list_elm_s *sctp_cnx)
 {
     int             client_sd;
-    struct sockaddr saddr;
+    struct sockaddr_in6 saddr;
     socklen_t       saddr_size;
 
     DevAssert(sctp_cnx != NULL);
@@ -868,14 +868,14 @@ sctp_eNB_accept_associations(
 
     /* There is a new client connecting. Accept it...
      */
-    if ((client_sd = accept(sctp_cnx->sd, &saddr, &saddr_size)) < 0) {
+    if ((client_sd = accept(sctp_cnx->sd, (struct sockaddr*)&saddr, &saddr_size)) < 0) {
         SCTP_ERROR("[%d] accept failed: %s:%d\n", sctp_cnx->sd, strerror(errno), errno);
     } else {
         struct sctp_cnx_list_elm_s *new_cnx;
         uint16_t port;
 
         /* This is an ipv6 socket */
-        port = ((struct sockaddr_in6*)&saddr)->sin6_port;
+        port = saddr.sin6_port;
 
         /* Contrary to BSD, client socket does not inherit O_NONBLOCK option */
         if (fcntl(client_sd, F_SETFL, O_NONBLOCK) < 0) {
diff --git a/openair3/UTILS/conversions.h b/openair3/UTILS/conversions.h
index 00b650a3025..0361c34f334 100644
--- a/openair3/UTILS/conversions.h
+++ b/openair3/UTILS/conversions.h
@@ -70,8 +70,8 @@
 /* Convert an integer on 16 bits to the given bUFFER */
 #define INT16_TO_BUFFER(x, buf) \
 do {                            \
-    (buf)[0] = (x) >> 8;        \
-    (buf)[1] = (x);             \
+    (buf)[0] = ((x) >> 8) & 0xff; \
+    (buf)[1] = (x)      & 0xff; \
 } while(0)
 
 /* Convert an array of char containing vALUE to x */
@@ -84,9 +84,9 @@ do {                            \
 /* Convert an integer on 24 bits to the given bUFFER */
 #define INT24_TO_BUFFER(x, buf) \
 do {                            \
-    (buf)[0] = (x) >> 16;       \
-    (buf)[1] = (x) >> 8;        \
-    (buf)[2] = (x);             \
+    (buf)[0] = ((x) >> 16) & 0xff;\
+    (buf)[1] = ((x) >> 8) & 0xff; \
+    (buf)[2] = (x)      & 0xff; \
 } while(0)
 
 /* Convert an array of char containing vALUE to x */
@@ -101,10 +101,10 @@ do {                            \
 /* Convert an integer on 32 bits to the given bUFFER */
 #define INT32_TO_BUFFER(x, buf) \
 do {                            \
-    (buf)[0] = (x) >> 24;       \
-    (buf)[1] = (x) >> 16;       \
-    (buf)[2] = (x) >> 8;        \
-    (buf)[3] = (x);             \
+    (buf)[0] = ((x) >> 24) & 0xff;\
+    (buf)[1] = ((x) >> 16) & 0xff;\
+    (buf)[2] = ((x) >> 8) & 0xff; \
+    (buf)[3] = (x)      & 0xff; \
 } while(0)
 
 /* Convert an array of char containing vALUE to x */
diff --git a/openair3/ocp-gtpu/gtp_itf.cpp b/openair3/ocp-gtpu/gtp_itf.cpp
index 7b8ba308bfb..e318f0cf95c 100644
--- a/openair3/ocp-gtpu/gtp_itf.cpp
+++ b/openair3/ocp-gtpu/gtp_itf.cpp
@@ -17,11 +17,10 @@ extern "C" {
 #include <openair2/COMMON/gtpv1_u_messages_types.h>
 #include <openair3/ocp-gtpu/gtp_itf.h>
 #include <openair2/LAYER2/PDCP_v10.1.0/pdcp.h>
+#include <openair2/LAYER2/nr_rlc/nr_rlc_oai_api.h>
 #include "openair2/SDAP/nr_sdap/nr_sdap.h"
 //#include <openair1/PHY/phy_extern.h>
 
-static boolean_t is_gnb = false;
-
 #pragma pack(1)
 
 typedef struct Gtpv1uMsgHeader {
@@ -36,6 +35,22 @@ typedef struct Gtpv1uMsgHeader {
   teid_t teid;
 } __attribute__((packed)) Gtpv1uMsgHeaderT;
 
+//TS 38.425, Figure 5.5.2.2-1
+typedef struct DlDataDeliveryStatus_flags {
+  uint8_t LPR:1;                    //Lost packet report
+  uint8_t FFI:1;                    //Final Frame Ind
+  uint8_t deliveredPdcpSn:1;        //Highest Delivered NR PDCP SN Ind
+  uint8_t transmittedPdcpSn:1;      //Highest Transmitted NR PDCP SN Ind
+  uint8_t pduType:4;                //PDU type
+  uint8_t CR:1;                     //Cause Report
+  uint8_t deliveredReTxPdcpSn:1;    //Delivered retransmitted NR PDCP SN Ind
+  uint8_t reTxPdcpSn:1;             //Retransmitted NR PDCP SN Ind
+  uint8_t DRI:1;                    //Data Rate Indication
+  uint8_t deliveredPdcpSnRange:1;   //Delivered NR PDCP SN Range Ind
+  uint8_t spare:3;
+  uint32_t drbBufferSize;            //Desired buffer size for the data radio bearer
+} __attribute__((packed)) DlDataDeliveryStatus_flagsT;
+
 typedef struct Gtpv1uMsgHeaderOptFields {
   uint8_t seqNum1Oct;
   uint8_t seqNum2Oct;
@@ -43,24 +58,29 @@ typedef struct Gtpv1uMsgHeaderOptFields {
   uint8_t NextExtHeaderType;    
 } __attribute__((packed)) Gtpv1uMsgHeaderOptFieldsT;
 
-typedef struct PDUSessionContainer {
+#define DL_PDU_SESSION_INFORMATION 0
+#define UL_PDU_SESSION_INFORMATION 1
+
+  typedef struct PDUSessionContainer {
   uint8_t spare:4;
   uint8_t PDU_type:4;
   uint8_t QFI:6;
-  uint8_t RQI:1;
-  uint8_t PPP:1;
+  uint8_t Reflective_QoS_activation:1;
+  uint8_t Paging_Policy_Indicator:1;
 } __attribute__((packed)) PDUSessionContainerT;
 
 typedef struct Gtpv1uExtHeader {
   uint8_t ExtHeaderLen;
   PDUSessionContainerT pdusession_cntr;
-  //uint8_t NextExtHeaderType;
+  uint8_t NextExtHeaderType;
 }__attribute__((packed)) Gtpv1uExtHeaderT;
 
 #pragma pack()
 
 // TS 29.281, fig 5.2.1-3
 #define PDU_SESSION_CONTAINER       (0x85)
+#define NR_RAN_CONTAINER            (0x84)
+
 // TS 29.281, 5.2.1
 #define EXT_HDR_LNTH_OCTET_UNITS    (4)
 #define NO_MORE_EXT_HDRS            (0)
@@ -84,16 +104,19 @@ typedef struct gtpv1u_bearer_s {
   tcp_udp_port_t  outgoing_port;
   uint16_t        seqNum;
   uint8_t         npduNum;
+  int outgoing_qfi;
 } gtpv1u_bearer_t;
 
 typedef struct {
   map<int, gtpv1u_bearer_t> bearers;
+  teid_t outgoing_teid;
 } teidData_t;
 
 typedef struct {
   rnti_t rnti;
   ebi_t incoming_rb_id;
   gtpCallback callBack;
+  teid_t outgoing_teid;
   gtpCallbackSDAP callBackSDAP;
   int pdusession_id;
 } rntiData_t;
@@ -137,53 +160,81 @@ instance_t legacyInstanceMapping=0;
 #define compatInst(a) ((a)==0 || (a)==INSTANCE_DEFAULT?legacyInstanceMapping:a)
 
 #define GTPV1U_HEADER_SIZE                                  (8)
-
-
-static int gtpv1uCreateAndSendMsg(int h, uint32_t peerIp, uint16_t peerPort, int msgType, teid_t teid, uint8_t *Msg,int msgLen,
-                                  bool seqNumFlag, bool  npduNumFlag, bool extHdrFlag, int seqNum, int npduNum, int extHdrType) {
-  AssertFatal(extHdrFlag==false,"Not developped");
-  int headerAdditional=0;
-
-  if ( seqNumFlag || npduNumFlag || extHdrFlag)
-    headerAdditional=4;
-
-  int fullSize=GTPV1U_HEADER_SIZE+headerAdditional+msgLen;
-  uint8_t buffer[fullSize];
+  
+  #define HDR_MAX 256 // 256 is supposed to be larger than any gtp header
+static int gtpv1uCreateAndSendMsg(int h,
+                                  uint32_t peerIp,
+                                  uint16_t peerPort,
+                                  int msgType,
+                                  teid_t teid,
+                                  uint8_t *Msg,
+                                  int msgLen,
+                                  bool seqNumFlag,
+                                  bool npduNumFlag,
+                                  int seqNum,
+                                  int npduNum,
+                                  int extHdrType,
+                                  uint8_t *extensionHeader_buffer,
+                                  uint8_t extensionHeader_length) {
+  LOG_D(GTPU, "Peer IP:%u peer port:%u outgoing teid:%u \n", peerIp, peerPort, teid);
+
+  uint8_t buffer[msgLen+HDR_MAX]; 
+  uint8_t *curPtr=buffer;
   Gtpv1uMsgHeaderT      *msgHdr = (Gtpv1uMsgHeaderT *)buffer ;
   // N should be 0 for us (it was used only in 2G and 3G)
   msgHdr->PN=npduNumFlag;
   msgHdr->S=seqNumFlag;
-  msgHdr->E=extHdrFlag;
+  msgHdr->E = extHdrType;
   msgHdr->spare=0;
   //PT=0 is for GTP' TS 32.295 (charging)
   msgHdr->PT=1;
   msgHdr->version=1;
   msgHdr->msgType=msgType;
-  msgHdr->msgLength=htons(msgLen);
+  msgHdr->msgLength = htons(msgLen + extensionHeader_length);
+  msgHdr->teid=htonl(teid);
 
-  if ( seqNumFlag || extHdrFlag || npduNumFlag)
-    msgHdr->msgLength+=4;
+  curPtr+=sizeof(Gtpv1uMsgHeaderT);
 
-  msgHdr->teid=htonl(teid);
+  if (seqNumFlag || (extHdrType != NO_MORE_EXT_HDRS) || npduNumFlag) {
+    msgHdr->msgLength += htons(4);
+    *(uint16_t *)curPtr = seqNumFlag ? seqNum : 0x0000;
+    curPtr+=sizeof(uint16_t);
+    *(uint8_t *)curPtr = npduNumFlag ? npduNum : 0x00;
+    curPtr++;
+    *(uint8_t *)curPtr = extHdrType;
+    curPtr++;
+  }
+
+  // Bug: if there is more than one extension, infinite loop on extensionHeader_buffer
+  while (extHdrType != NO_MORE_EXT_HDRS) {
+    if (extensionHeader_length > 0) {
+      memcpy(curPtr, extensionHeader_buffer, extensionHeader_length);
+      curPtr += extensionHeader_length;
+      LOG_D(GTPU, "Extension Header for DDD added. The length is: %d, extension header type is: %x \n", extensionHeader_length, *((uint8_t *)(buffer + 11)));
+      extHdrType = extensionHeader_buffer[extensionHeader_length - 1];
+      LOG_D(GTPU, "Next extension header type is: %x \n", *((uint8_t *)(buffer + 11)));
+    } else {
+      LOG_W(GTPU, "Extension header type not supported, returning... \n");
+    }
+  }
 
-  if(seqNumFlag || extHdrFlag || npduNumFlag) {
-    *((uint16_t *) (buffer+8)) = seqNumFlag ? htons(seqNum) : 0x0000;
-    *((uint8_t *) (buffer+10)) = npduNumFlag ? htons(npduNum) : 0x00;
-    *((uint8_t *) (buffer+11)) = extHdrFlag ? htons(extHdrType) : 0x00;
+  if (Msg!= NULL){
+    memcpy(curPtr, Msg, msgLen);
+    curPtr+=msgLen;
   }
 
-  memcpy(buffer+GTPV1U_HEADER_SIZE+headerAdditional, Msg, msgLen);
+  AssertFatal(curPtr-(buffer+msgLen) < HDR_MAX, "");
   // Fix me: add IPv6 support, using flag ipVersion
   static struct sockaddr_in to= {0};
   to.sin_family      = AF_INET;
   to.sin_port        = htons(peerPort);
   to.sin_addr.s_addr = peerIp ;
-  LOG_D(GTPU,"sending packet size: %d to %s\n",fullSize, inet_ntoa(to.sin_addr) );
+  LOG_D(GTPU,"sending packet size: %ld to %s\n",curPtr-buffer, inet_ntoa(to.sin_addr) );
   int ret;
 
-  if ((ret=sendto(h, (void *)buffer, (size_t)fullSize, 0,(struct sockaddr *)&to, sizeof(to) )) != fullSize ) {
-    LOG_E(GTPU, "[SD %d] Failed to send data to " IPV4_ADDR " on port %d, buffer size %u, ret: %d, errno: %d\n",
-          h, IPV4_ADDR_FORMAT(peerIp), peerPort, fullSize, ret, errno);
+  if ((ret=sendto(h, (void *)buffer, curPtr-buffer, 0,(struct sockaddr *)&to, sizeof(to) )) != curPtr-buffer ) {
+    LOG_E(GTPU, "[SD %d] Failed to send data to " IPV4_ADDR " on port %d, buffer size %lu, ret: %d, errno: %d\n",
+          h, IPV4_ADDR_FORMAT(peerIp), peerPort, curPtr-buffer, ret, errno);
     return GTPNOK;
   }
 
@@ -225,12 +276,8 @@ static void gtpv1uSend(instance_t instance, gtpv1u_enb_tunnel_data_req_t *req, b
   // copy to release the mutex
   gtpv1u_bearer_t tmp=ptr2->second;
   pthread_mutex_unlock(&globGtp.gtp_lock);
-  gtpv1uCreateAndSendMsg(compatInst(instance),
-                         tmp.outgoing_ip_addr,
-                         tmp.outgoing_port,
-                         GTP_GPDU,
-                         tmp.teid_outgoing,
-                         buffer, length, seqNumFlag, npduNumFlag, false, tmp.seqNum, tmp.npduNum, 0) ;
+  gtpv1uCreateAndSendMsg(
+      compatInst(instance), tmp.outgoing_ip_addr, tmp.outgoing_port, GTP_GPDU, tmp.teid_outgoing, buffer, length, seqNumFlag, npduNumFlag, tmp.seqNum, tmp.npduNum, NO_MORE_EXT_HDRS, NULL, 0);
 }
 
 static void gtpv1uSend2(instance_t instance, gtpv1u_gnb_tunnel_data_req_t *req, bool seqNumFlag, bool npduNumFlag) {
@@ -268,12 +315,98 @@ static void gtpv1uSend2(instance_t instance, gtpv1u_gnb_tunnel_data_req_t *req,
   // copy to release the mutex
   gtpv1u_bearer_t tmp=ptr2->second;
   pthread_mutex_unlock(&globGtp.gtp_lock);
-  gtpv1uCreateAndSendMsg(compatInst(instance),
-                         tmp.outgoing_ip_addr,
-                         tmp.outgoing_port,
-                         GTP_GPDU,
-                         tmp.teid_outgoing,
-                         buffer, length, seqNumFlag, npduNumFlag, false, tmp.seqNum, tmp.npduNum, 0) ;
+
+  if (tmp.outgoing_qfi != -1) {
+    Gtpv1uExtHeaderT ext = { 0 };
+    ext.ExtHeaderLen = 1; // in quad bytes  EXT_HDR_LNTH_OCTET_UNITS
+    ext.pdusession_cntr.spare = 0;
+    ext.pdusession_cntr.PDU_type = UL_PDU_SESSION_INFORMATION;
+    ext.pdusession_cntr.QFI = tmp.outgoing_qfi;
+    ext.pdusession_cntr.Reflective_QoS_activation = false;
+    ext.pdusession_cntr.Paging_Policy_Indicator = false;
+    ext.NextExtHeaderType = NO_MORE_EXT_HDRS;
+
+    gtpv1uCreateAndSendMsg(compatInst(instance),
+                           tmp.outgoing_ip_addr,
+                           tmp.outgoing_port,
+                           GTP_GPDU,
+                           tmp.teid_outgoing,
+                           buffer,
+                           length,
+                           seqNumFlag,
+                           npduNumFlag,
+                           tmp.seqNum,
+                           tmp.npduNum,
+                           PDU_SESSION_CONTAINER,
+                           (uint8_t *)&ext,
+                           sizeof(ext));
+  } else {
+    gtpv1uCreateAndSendMsg(
+        compatInst(instance), tmp.outgoing_ip_addr, tmp.outgoing_port, GTP_GPDU, tmp.teid_outgoing, buffer, length, seqNumFlag, npduNumFlag, tmp.seqNum, tmp.npduNum, NO_MORE_EXT_HDRS, NULL, 0);
+  }
+}
+
+static void fillDlDeliveryStatusReport(extensionHeader_t *extensionHeader, uint32_t RLC_buffer_availability, uint32_t NR_PDCP_PDU_SN){
+
+  extensionHeader->buffer[0] = (1+sizeof(DlDataDeliveryStatus_flagsT)+(NR_PDCP_PDU_SN>0?3:0)+(NR_PDCP_PDU_SN>0?1:0)+1)/4;
+  DlDataDeliveryStatus_flagsT DlDataDeliveryStatus;
+  DlDataDeliveryStatus.deliveredPdcpSn = 0;
+  DlDataDeliveryStatus.transmittedPdcpSn= NR_PDCP_PDU_SN>0?1:0;
+  DlDataDeliveryStatus.pduType = 1;
+  DlDataDeliveryStatus.drbBufferSize = htonl(RLC_buffer_availability);
+  memcpy(extensionHeader->buffer+1, &DlDataDeliveryStatus, sizeof(DlDataDeliveryStatus_flagsT));
+  uint8_t offset = sizeof(DlDataDeliveryStatus_flagsT)+1;
+
+  if(NR_PDCP_PDU_SN>0){
+    extensionHeader->buffer[offset] =   (NR_PDCP_PDU_SN >> 16) & 0xff;
+    extensionHeader->buffer[offset+1] = (NR_PDCP_PDU_SN >> 8) & 0xff;
+    extensionHeader->buffer[offset+2] = NR_PDCP_PDU_SN & 0xff;
+    LOG_D(GTPU, "Octets reporting NR_PDCP_PDU_SN, extensionHeader->buffer[offset]: %u, extensionHeader->buffer[offset+1]:%u, extensionHeader->buffer[offset+2]:%u \n", extensionHeader->buffer[offset], extensionHeader->buffer[offset+1],extensionHeader->buffer[offset+2]);
+    extensionHeader->buffer[offset+3] = 0x00; //Padding octet
+    offset = offset+3;
+  }
+  extensionHeader->buffer[offset] = 0x00; //No more extension headers
+  /*Total size of DDD_status PDU = size of mandatory part +
+   * 3 octets for highest transmitted/delivered PDCP SN +
+   * 1 octet for padding + 1 octet for next extension header type,
+   * according to TS 38.425: Fig. 5.5.2.2-1 and section 5.5.3.24*/
+  extensionHeader->length  = 1+sizeof(DlDataDeliveryStatus_flagsT)+
+                              (NR_PDCP_PDU_SN>0?3:0)+
+                              (NR_PDCP_PDU_SN>0?1:0)+1;
+}
+
+static void gtpv1uSendDlDeliveryStatus(instance_t instance, gtpv1u_DU_buffer_report_req_t *req){
+  rnti_t rnti=req->rnti;
+  int  rab_id=req->pdusession_id;
+  pthread_mutex_lock(&globGtp.gtp_lock);
+  auto inst=&globGtp.instances[compatInst(instance)];
+  auto ptrRnti=inst->ue2te_mapping.find(rnti);
+
+  if (  ptrRnti==inst->ue2te_mapping.end() ) {
+    LOG_E(GTPU, "[%ld] GTP-U gtpv1uSend failed: while getting ue rnti %x in hashtable ue_mapping\n", instance, rnti);
+    pthread_mutex_unlock(&globGtp.gtp_lock);
+    return;
+  }
+
+  map<int, gtpv1u_bearer_t>::iterator ptr2=ptrRnti->second.bearers.find(rab_id);
+
+  if ( ptr2 == ptrRnti->second.bearers.end() ) {
+    LOG_D(GTPU,"GTP-U instance: %ld sending a packet to a non existant RNTI:RAB: %x/%x\n", instance, rnti, rab_id);
+    pthread_mutex_unlock(&globGtp.gtp_lock);
+    return;
+  }
+
+  extensionHeader_t *extensionHeader;
+  extensionHeader = (extensionHeader_t *) calloc(1, sizeof(extensionHeader_t));
+  fillDlDeliveryStatusReport(extensionHeader, req->buffer_availability,0);
+
+  LOG_I(GTPU,"[%ld] GTP-U sending DL Data Delivery status to RNTI:RAB:teid %x/%x/%x, oldseq %d, oldnum %d\n",
+        instance, rnti, rab_id,ptr2->second.teid_outgoing, ptr2->second.seqNum,ptr2->second.npduNum );
+  // copy to release the mutex
+  gtpv1u_bearer_t tmp=ptr2->second;
+  pthread_mutex_unlock(&globGtp.gtp_lock);
+  gtpv1uCreateAndSendMsg(
+      compatInst(instance), tmp.outgoing_ip_addr, tmp.outgoing_port, GTP_GPDU, tmp.teid_outgoing, NULL, 0, false, false, 0, 0, NR_RAN_CONTAINER, extensionHeader->buffer, extensionHeader->length);
 }
 
 static void gtpv1uEndTunnel(instance_t instance, gtpv1u_enb_tunnel_data_req_t *req) {
@@ -455,14 +588,22 @@ void GtpuUpdateTunnelOutgoingTeid(instance_t instance, rnti_t rnti, ebi_t bearer
   return;
 }
 
-teid_t newGtpuCreateTunnel(instance_t instance, rnti_t rnti, int incoming_bearer_id, int outgoing_bearer_id, teid_t outgoing_teid,
-                           transport_layer_addr_t remoteAddr, int port, gtpCallback callBack) {
+teid_t newGtpuCreateTunnel(instance_t instance,
+                           rnti_t rnti,
+                           int incoming_bearer_id,
+                           int outgoing_bearer_id,
+                           teid_t outgoing_teid,
+                           int outgoing_qfi,
+                           transport_layer_addr_t remoteAddr,
+                           int port,
+                           gtpCallback callBack,
+                           gtpCallbackSDAP callBackSDAP) {
   pthread_mutex_lock(&globGtp.gtp_lock);
   instance=compatInst(instance);
   auto inst=&globGtp.instances[instance];
   auto it=inst->ue2te_mapping.find(rnti);
 
-  if ( it != inst->ue2te_mapping.end() ) {
+  if ( it != inst->ue2te_mapping.end() &&  it->second.bearers.find(outgoing_bearer_id) != it->second.bearers.end()) {
     LOG_W(GTPU,"[%ld] Create a config for a already existing GTP tunnel (rnti %x)\n", instance, rnti);
     inst->ue2te_mapping.erase(it);
   }
@@ -478,9 +619,11 @@ teid_t newGtpuCreateTunnel(instance_t instance, rnti_t rnti, int incoming_bearer
 
   inst->te2ue_mapping[incoming_teid].incoming_rb_id= incoming_bearer_id;
 
+  inst->te2ue_mapping[incoming_teid].outgoing_teid= outgoing_teid;
+
   inst->te2ue_mapping[incoming_teid].callBack=callBack;
-  
-  inst->te2ue_mapping[incoming_teid].callBackSDAP = sdap_data_req;
+
+  inst->te2ue_mapping[incoming_teid].callBackSDAP = callBackSDAP;
 
   inst->te2ue_mapping[incoming_teid].pdusession_id = (uint8_t)outgoing_bearer_id;
 
@@ -511,6 +654,7 @@ teid_t newGtpuCreateTunnel(instance_t instance, rnti_t rnti, int incoming_bearer
   tmp->teid_incoming = incoming_teid;
   tmp->outgoing_port=port;
   tmp->teid_outgoing= outgoing_teid;
+  tmp->outgoing_qfi=outgoing_qfi;
   pthread_mutex_unlock(&globGtp.gtp_lock);
   char ip4[INET_ADDRSTRLEN];
   char ip6[INET6_ADDRSTRLEN];
@@ -539,12 +683,16 @@ int gtpv1u_create_s1u_tunnel(instance_t instance,
                 "From legacy code not clear, seems impossible (bearer=%d)\n",
                 create_tunnel_req->eps_bearer_id[i]);
     int incoming_rb_id=create_tunnel_req->eps_bearer_id[i]-4;
-    teid_t teid=newGtpuCreateTunnel(compatInst(instance), create_tunnel_req->rnti,
-                                    incoming_rb_id,
-                                    create_tunnel_req->eps_bearer_id[i],
-                                    create_tunnel_req->sgw_S1u_teid[i],
-                                    create_tunnel_req->sgw_addr[i],  dstport,
-                                    pdcp_data_req);
+    teid_t teid = newGtpuCreateTunnel(compatInst(instance),
+                                      create_tunnel_req->rnti,
+                                      incoming_rb_id,
+                                      create_tunnel_req->eps_bearer_id[i],
+                                      create_tunnel_req->sgw_S1u_teid[i],
+                                      -1, // no pdu session in 4G
+                                      create_tunnel_req->sgw_addr[i],
+                                      dstport,
+                                      pdcp_data_req,
+                                      NULL);
     create_tunnel_resp->status=0;
     create_tunnel_resp->rnti=create_tunnel_req->rnti;
     create_tunnel_resp->num_tunnels=create_tunnel_req->num_tunnels;
@@ -601,15 +749,18 @@ int gtpv1u_create_ngu_tunnel(  const instance_t instance,
         create_tunnel_req->rnti,
         create_tunnel_req->num_tunnels,
         create_tunnel_req->outgoing_teid[0]);
-  tcp_udp_port_t dstport=globGtp.instances[compatInst(instance)].get_dstport();
-  is_gnb = true;
+  tcp_udp_port_t dstport = globGtp.instances[compatInst(instance)].get_dstport();
   for (int i = 0; i < create_tunnel_req->num_tunnels; i++) {
-    teid_t teid=newGtpuCreateTunnel(instance, create_tunnel_req->rnti,
-                                    create_tunnel_req->incoming_rb_id[i],
-                                    create_tunnel_req->pdusession_id[i],
-                                    create_tunnel_req->outgoing_teid[i],
-                                    create_tunnel_req->dst_addr[i], dstport,
-                                    pdcp_data_req);
+    teid_t teid = newGtpuCreateTunnel(instance,
+                                      create_tunnel_req->rnti,
+                                      create_tunnel_req->incoming_rb_id[i],
+                                      create_tunnel_req->pdusession_id[i],
+                                      create_tunnel_req->outgoing_teid[i],
+                                      create_tunnel_req->outgoing_qfi[i],
+                                      create_tunnel_req->dst_addr[i],
+                                      dstport,
+                                      pdcp_data_req,
+                                      sdap_data_req);
     create_tunnel_resp->status=0;
     create_tunnel_resp->rnti=create_tunnel_req->rnti;
     create_tunnel_resp->num_tunnels=create_tunnel_req->num_tunnels;
@@ -739,9 +890,7 @@ static int Gtpv1uHandleEchoReq(int h,
   uint16_t seq=ntohs(*(uint16_t *)(msgHdr+1));
   LOG_D(GTPU, "[%d] Received a echo request, TEID: %d, seq: %hu\n", h, msgHdr->teid, seq);
   uint8_t recovery[2]= {14,0};
-  return gtpv1uCreateAndSendMsg(h, peerIp, peerPort, GTP_ECHO_RSP, ntohl(msgHdr->teid),
-                                recovery, sizeof recovery,
-                                1, 0, 0, seq, 0, 0);
+  return gtpv1uCreateAndSendMsg(h, peerIp, peerPort, GTP_ECHO_RSP, ntohl(msgHdr->teid), recovery, sizeof recovery, true, false, seq, 0, NO_MORE_EXT_HDRS, NULL, 0);
 }
 
 static int Gtpv1uHandleError(int h,
@@ -850,26 +999,63 @@ static int Gtpv1uHandleGpdu(int h,
     return GTPNOK;
   }
 
-  int offset=sizeof(Gtpv1uMsgHeaderT);
-
-  uint8_t qfi = 0;
-  boolean_t rqi = FALSE;
-
-  if( msgHdr->E || msgHdr->S || msgHdr->PN){
-   Gtpv1uMsgHeaderOptFieldsT *msgHdrOpt = (Gtpv1uMsgHeaderOptFieldsT *)(msgBuf+offset);
-   offset+=sizeof(Gtpv1uMsgHeaderOptFieldsT);
-    if( msgHdr->E && msgHdrOpt->NextExtHeaderType == PDU_SESSION_CONTAINER){
-      Gtpv1uExtHeaderT *msgHdrExt = (Gtpv1uExtHeaderT *)(msgBuf+offset);
-      offset+=msgHdrExt->ExtHeaderLen*EXT_HDR_LNTH_OCTET_UNITS;
-      qfi = msgHdrExt->pdusession_cntr.QFI;
-      rqi = msgHdrExt->pdusession_cntr.RQI;
-
-      /* 
-       * Check if the next extension header type of GTP extension header is set to 0
-       * We can not put it in the struct Gtpv1uExtHeaderT because the length is dynamic.
-       */
-      if(*(msgBuf+offset-1) != NO_MORE_EXT_HDRS)
-        LOG_W(GTPU, "Warning -  Next extension header is not zero, handle it \n");
+  /* see TS 29.281 5.1 */
+  //Minimum length of GTP-U header if non of the optional fields are present
+  int offset = sizeof(Gtpv1uMsgHeaderT);
+
+  uint8_t qfi = -1;
+  bool rqi = false;
+  uint32_t NR_PDCP_PDU_SN = 0;
+
+  /* if E, S, or PN is set then there are 4 more bytes of header */
+  if( msgHdr->E ||  msgHdr->S ||msgHdr->PN)
+    offset += 4;
+
+  if (msgHdr->E) {
+    int next_extension_header_type = msgBuf[offset - 1];
+    int extension_header_length;
+
+    while (next_extension_header_type != NO_MORE_EXT_HDRS) {
+      extension_header_length = msgBuf[offset];
+      switch (next_extension_header_type) {
+        case PDU_SESSION_CONTAINER: {
+          PDUSessionContainerT *pdusession_cntr = (PDUSessionContainerT *)(msgBuf + offset + 1);
+          qfi = pdusession_cntr->QFI;
+          rqi = pdusession_cntr->Reflective_QoS_activation;
+          break;
+        }
+        case NR_RAN_CONTAINER: {
+          uint8_t PDU_type = (msgBuf[offset+1]>>4) & 0x0f;
+          if (PDU_type == 0){ //DL USER Data Format
+            int additional_offset = 6; //Additional offset capturing the first non-mandatory octet (TS 38.425, Figure 5.5.2.1-1)
+            if(msgBuf[offset+1]>>2 & 0x1){ //DL Discard Blocks flag is present
+              LOG_I(GTPU, "DL User Data: DL Discard Blocks handling not enabled\n"); 
+              additional_offset = additional_offset + 9; //For the moment ignore
+            }
+            if(msgBuf[offset+1]>>1 & 0x1){ //DL Flush flag is present
+              LOG_I(GTPU, "DL User Data: DL Flush handling not enabled\n");
+              additional_offset = additional_offset + 3; //For the moment ignore
+            }
+            if((msgBuf[offset+2]>>3)& 0x1){ //"Report delivered" enabled (TS 38.425, 5.4)
+              /*Store the NR PDCP PDU SN for which a delivery status report shall be generated once the
+               *PDU gets forwarded to the lower layers*/
+              //NR_PDCP_PDU_SN = msgBuf[offset+6] << 16 | msgBuf[offset+7] << 8 | msgBuf[offset+8];
+              NR_PDCP_PDU_SN = msgBuf[offset+additional_offset] << 16 | msgBuf[offset+additional_offset+1] << 8 | msgBuf[offset+additional_offset+2]; 
+              LOG_D(GTPU, " NR_PDCP_PDU_SN: %u \n",  NR_PDCP_PDU_SN);
+            }
+          }
+          else{
+            LOG_W(GTPU, "NR-RAN container type: %d not supported \n", PDU_type);
+          }
+          break;
+        }
+        default:
+          LOG_W(GTPU, "unhandled extension 0x%2.2x, skipping\n", next_extension_header_type);
+          break;
+      }
+
+      offset += extension_header_length * EXT_HDR_LNTH_OCTET_UNITS;
+      next_extension_header_type = msgBuf[offset - 1];
     }
   }
 
@@ -896,7 +1082,7 @@ static int Gtpv1uHandleGpdu(int h,
   const uint32_t destinationL2Id=0;
   pthread_mutex_unlock(&globGtp.gtp_lock);
 
-  if(is_gnb && qfi){
+  if (qfi != -1 && tunnel->second.callBackSDAP) {
     if ( !tunnel->second.callBackSDAP(&ctxt,
                                       srb_flag,
                                       rb_id,
@@ -925,6 +1111,40 @@ static int Gtpv1uHandleGpdu(int h,
       LOG_E(GTPU,"[%d] down layer refused incoming packet\n", h);
   }
 
+  if(NR_PDCP_PDU_SN > 0 && NR_PDCP_PDU_SN %5 ==0){
+    LOG_D (GTPU, "Create and send DL DATA Delivery status for the previously received PDU, NR_PDCP_PDU_SN: %u \n", NR_PDCP_PDU_SN);
+    int rlc_tx_buffer_space = nr_rlc_get_available_tx_space(ctxt.rnti, rb_id);
+    LOG_D(GTPU, "Available buffer size in RLC for Tx: %d \n", rlc_tx_buffer_space);
+    /*Total size of DDD_status PDU = 1 octet to report extension header length
+     * size of mandatory part + 3 octets for highest transmitted/delivered PDCP SN
+     * 1 octet for padding + 1 octet for next extension header type,
+     * according to TS 38.425: Fig. 5.5.2.2-1 and section 5.5.3.24*/
+    extensionHeader_t *extensionHeader;
+    extensionHeader = (extensionHeader_t *) calloc(1, sizeof(extensionHeader_t)) ;
+    extensionHeader->buffer[0] = (1+sizeof(DlDataDeliveryStatus_flagsT)+3+1+1)/4;
+    DlDataDeliveryStatus_flagsT DlDataDeliveryStatus;
+    DlDataDeliveryStatus.deliveredPdcpSn = 0;
+    DlDataDeliveryStatus.transmittedPdcpSn= 1; 
+    DlDataDeliveryStatus.pduType = 1;
+    DlDataDeliveryStatus.drbBufferSize = htonl(rlc_tx_buffer_space); //htonl(10000000); //hardcoded for now but normally we should extract it from RLC
+    memcpy(extensionHeader->buffer+1, &DlDataDeliveryStatus, sizeof(DlDataDeliveryStatus_flagsT));
+    uint8_t offset = sizeof(DlDataDeliveryStatus_flagsT)+1;
+
+    extensionHeader->buffer[offset] =   (NR_PDCP_PDU_SN >> 16) & 0xff;
+    extensionHeader->buffer[offset+1] = (NR_PDCP_PDU_SN >> 8) & 0xff;
+    extensionHeader->buffer[offset+2] = NR_PDCP_PDU_SN & 0xff;
+    LOG_D(GTPU, "Octets reporting NR_PDCP_PDU_SN, extensionHeader->buffer[offset]: %u, extensionHeader->buffer[offset+1]:%u, extensionHeader->buffer[offset+2]:%u \n", extensionHeader->buffer[offset], extensionHeader->buffer[offset+1],extensionHeader->buffer[offset+2]);
+    extensionHeader->buffer[offset+3] = 0x00; //Padding octet
+    extensionHeader->buffer[offset+4] = 0x00; //No more extension headers
+    /*Total size of DDD_status PDU = size of mandatory part +
+     * 3 octets for highest transmitted/delivered PDCP SN +
+     * 1 octet for padding + 1 octet for next extension header type,
+     * according to TS 38.425: Fig. 5.5.2.2-1 and section 5.5.3.24*/
+    extensionHeader->length  = 1+sizeof(DlDataDeliveryStatus_flagsT)+3+1+1;
+    gtpv1uCreateAndSendMsg(
+        h, peerIp, peerPort, GTP_GPDU, inst->te2ue_mapping[ntohl(msgHdr->teid)].outgoing_teid, NULL, 0, false, false, 0, 0, NR_RAN_CONTAINER, extensionHeader->buffer, extensionHeader->length);
+  }
+
   LOG_D(GTPU,"[%d] Received a %d bytes packet for: teid:%x\n", h,
         msgBufLen-offset,
         ntohl(msgHdr->teid));
@@ -1009,6 +1229,12 @@ void *gtpv1uTask(void *args)  {
         }
         break;
 
+        case GTPV1U_DU_BUFFER_REPORT_REQ:{
+          gtpv1uSendDlDeliveryStatus(compatInst(ITTI_MSG_DESTINATION_INSTANCE(message_p)),
+              &GTPV1U_DU_BUFFER_REPORT_REQ(message_p));
+        }
+        break;
+
         case TERMINATE_MESSAGE:
           break;
 
diff --git a/openair3/ocp-gtpu/gtp_itf.h b/openair3/ocp-gtpu/gtp_itf.h
index 17882ebf1e7..7951c4db09b 100644
--- a/openair3/ocp-gtpu/gtp_itf.h
+++ b/openair3/ocp-gtpu/gtp_itf.h
@@ -8,32 +8,30 @@
 extern "C" {
 #endif
 
-typedef boolean_t (*gtpCallback)(
-  protocol_ctxt_t  *ctxt_pP,
-  const srb_flag_t     srb_flagP,
-  const rb_id_t        rb_idP,
-  const mui_t          muiP,
-  const confirm_t      confirmP,
-  const sdu_size_t     sdu_buffer_sizeP,
-  unsigned char *const sdu_buffer_pP,
-  const pdcp_transmission_mode_t modeP,
-  const uint32_t *sourceL2Id,
-  const uint32_t *destinationL2Id);
+typedef bool (*gtpCallback)(protocol_ctxt_t  *ctxt_pP,
+                            const srb_flag_t     srb_flagP,
+                            const rb_id_t        rb_idP,
+                            const mui_t          muiP,
+                            const confirm_t      confirmP,
+                            const sdu_size_t     sdu_buffer_sizeP,
+                            unsigned char *const sdu_buffer_pP,
+                            const pdcp_transmission_mode_t modeP,
+                            const uint32_t *sourceL2Id,
+                            const uint32_t *destinationL2Id);
 
-typedef boolean_t (*gtpCallbackSDAP)(
-  protocol_ctxt_t  *ctxt_pP,
-  const srb_flag_t     srb_flagP,
-  const rb_id_t        rb_idP,
-  const mui_t          muiP,
-  const confirm_t      confirmP,
-  const sdu_size_t     sdu_buffer_sizeP,
-  unsigned char *const sdu_buffer_pP,
-  const pdcp_transmission_mode_t modeP,
-  const uint32_t *sourceL2Id,
-  const uint32_t *destinationL2Id,
-  const uint8_t   qfi,
-  const boolean_t rqi,
-  const int       pdusession_id);
+typedef bool (*gtpCallbackSDAP)(protocol_ctxt_t  *ctxt_pP,
+                                const srb_flag_t     srb_flagP,
+                                const rb_id_t        rb_idP,
+                                const mui_t          muiP,
+                                const confirm_t      confirmP,
+                                const sdu_size_t     sdu_buffer_sizeP,
+                                unsigned char *const sdu_buffer_pP,
+                                const pdcp_transmission_mode_t modeP,
+                                const uint32_t *sourceL2Id,
+                                const uint32_t *destinationL2Id,
+                                const uint8_t   qfi,
+                                const bool      rqi,
+                                const int       pdusession_id);
 
 typedef struct openAddr_s {
   char originHost[HOST_NAME_MAX];
@@ -43,6 +41,11 @@ typedef struct openAddr_s {
   instance_t originInstance;
 } openAddr_t;
 
+typedef struct extensionHeader_s{
+  uint8_t buffer[500];
+  uint8_t length;
+}extensionHeader_t;
+
 // the init function create a gtp instance and return the gtp instance id
 // the parameter originInstance will be sent back in each message from gtp to the creator
 void gtpv1uReceiver(int h);
@@ -63,8 +66,16 @@ int gtpv1u_create_x2u_tunnel(
 
 
 // New API
-teid_t newGtpuCreateTunnel(instance_t instance, rnti_t rnti, int incoming_bearer_id, int outgoing_rb_id, teid_t teid,
-                           transport_layer_addr_t remoteAddr, int port, gtpCallback callBack);
+teid_t newGtpuCreateTunnel(instance_t instance,
+                           rnti_t rnti,
+                           int incoming_bearer_id,
+                           int outgoing_rb_id,
+                           teid_t teid,
+                           int outgoing_qfi,
+                           transport_layer_addr_t remoteAddr,
+                           int port,
+                           gtpCallback callBack,
+                           gtpCallbackSDAP callBackSDAP);
 void GtpuUpdateTunnelOutgoingTeid(instance_t instance, rnti_t rnti, ebi_t bearer_id, teid_t newOutgoingTeid);
 int newGtpuDeleteAllTunnels(instance_t instance, rnti_t rnti);
 int newGtpuDeleteTunnels(instance_t instance, rnti_t rnti, int nbTunnels, pdusessionid_t *pdusession_id);
diff --git a/rxsigF0.m b/rxsigF0.m
new file mode 100644
index 00000000000..3309e1aa6f5
--- /dev/null
+++ b/rxsigF0.m
@@ -0,0 +1,57345 @@
+rxsF0 = [173 + j*(-306)
+-141 + j*(-130)
+-166 + j*(-246)
+-107 + j*(-42)
+-105 + j*(0)
+-179 + j*(-28)
+-87 + j*(186)
+-95 + j*(151)
+-1 + j*(228)
+172 + j*(-62)
+110 + j*(-5)
+-178 + j*(-33)
+-18 + j*(57)
+9 + j*(146)
+-11 + j*(103)
+-67 + j*(64)
+28 + j*(-375)
+-72 + j*(-75)
+-14 + j*(-318)
+194 + j*(193)
+-173 + j*(-228)
+295 + j*(119)
+203 + j*(-179)
+-238 + j*(-276)
+-286 + j*(112)
+-409 + j*(95)
+-260 + j*(84)
+72 + j*(40)
+105 + j*(-120)
+57 + j*(66)
+58 + j*(173)
+-170 + j*(-189)
+192 + j*(-50)
+-88 + j*(160)
+-187 + j*(-132)
+120 + j*(41)
+239 + j*(-115)
+80 + j*(263)
+-45 + j*(-30)
+396 + j*(192)
+161 + j*(-11)
+-325 + j*(296)
+-64 + j*(-192)
+-181 + j*(-59)
+-272 + j*(192)
+11 + j*(192)
+-215 + j*(50)
+122 + j*(177)
+-255 + j*(26)
+87 + j*(11)
+-86 + j*(-129)
+-199 + j*(199)
+-238 + j*(163)
+29 + j*(134)
+175 + j*(81)
+30 + j*(-214)
+-344 + j*(131)
+124 + j*(-252)
+134 + j*(-325)
+224 + j*(-78)
+223 + j*(-190)
+-15 + j*(88)
+-223 + j*(128)
+-48 + j*(-223)
+-109 + j*(-209)
+-17 + j*(-84)
+179 + j*(73)
+-25 + j*(-81)
+6 + j*(88)
+8 + j*(83)
+-75 + j*(38)
+-119 + j*(51)
+15 + j*(199)
+140 + j*(42)
+44 + j*(-132)
+-247 + j*(118)
+242 + j*(-82)
+140 + j*(-258)
+-98 + j*(28)
+262 + j*(107)
+-141 + j*(-21)
+137 + j*(382)
+64 + j*(-163)
+-81 + j*(62)
+54 + j*(245)
+-132 + j*(75)
+196 + j*(-219)
+-146 + j*(211)
+-64 + j*(64)
+-146 + j*(-37)
+-37 + j*(-94)
+-318 + j*(160)
+-237 + j*(112)
+-98 + j*(2)
+-286 + j*(209)
+-69 + j*(192)
+-52 + j*(105)
+-63 + j*(-35)
+119 + j*(59)
+-19 + j*(-25)
+110 + j*(54)
+45 + j*(-37)
+42 + j*(-107)
+57 + j*(74)
+190 + j*(105)
+246 + j*(20)
+233 + j*(93)
+290 + j*(180)
+232 + j*(-113)
+281 + j*(243)
+280 + j*(-250)
+47 + j*(-245)
+144 + j*(-150)
+-272 + j*(25)
+-94 + j*(163)
+-135 + j*(-334)
+16 + j*(-211)
+-165 + j*(214)
+88 + j*(34)
+27 + j*(-36)
+-161 + j*(-243)
+94 + j*(151)
+112 + j*(-66)
+-180 + j*(48)
+-77 + j*(-64)
+-293 + j*(300)
+-42 + j*(-139)
+-177 + j*(91)
+-37 + j*(-39)
+-88 + j*(216)
+-123 + j*(1)
+141 + j*(-250)
+100 + j*(-148)
+-11 + j*(265)
+30 + j*(-212)
+-9 + j*(146)
+281 + j*(223)
+-166 + j*(141)
+-7 + j*(-51)
+69 + j*(-37)
+-91 + j*(45)
+198 + j*(-225)
+560 + j*(-64)
+-245 + j*(-145)
+194 + j*(231)
+-96 + j*(216)
+8 + j*(-158)
+117 + j*(42)
+-42 + j*(132)
+97 + j*(178)
+-182 + j*(-65)
+-59 + j*(118)
+129 + j*(-45)
+75 + j*(-6)
+-88 + j*(20)
+-425 + j*(35)
+140 + j*(424)
+-40 + j*(116)
+27 + j*(-297)
+123 + j*(230)
+86 + j*(-293)
+104 + j*(-127)
+47 + j*(-89)
+60 + j*(97)
+-23 + j*(197)
+-7 + j*(-93)
+115 + j*(205)
+271 + j*(-159)
+-56 + j*(159)
+-57 + j*(556)
+-48 + j*(-196)
+-71 + j*(-63)
+-353 + j*(-221)
+-84 + j*(-173)
+30 + j*(45)
+-302 + j*(371)
+354 + j*(-22)
+-233 + j*(35)
+-308 + j*(-202)
+-433 + j*(-44)
+-158 + j*(73)
+185 + j*(-150)
+48 + j*(124)
+-7 + j*(168)
+190 + j*(78)
+211 + j*(-9)
+-71 + j*(-193)
+-119 + j*(97)
+-234 + j*(-197)
+341 + j*(-197)
+-346 + j*(74)
+105 + j*(17)
+57 + j*(-105)
+-161 + j*(-138)
+-180 + j*(180)
+-156 + j*(91)
+-9 + j*(-139)
+-87 + j*(165)
+-64 + j*(-238)
+15 + j*(-221)
+-113 + j*(8)
+-331 + j*(59)
+90 + j*(-150)
+-136 + j*(-325)
+73 + j*(178)
+-18 + j*(170)
+67 + j*(-96)
+85 + j*(-37)
+-9 + j*(-114)
+-22 + j*(136)
+-175 + j*(165)
+-87 + j*(-25)
+-31 + j*(-152)
+-301 + j*(-18)
+42 + j*(-54)
+-32 + j*(-168)
+-74 + j*(163)
+-54 + j*(-52)
+-76 + j*(-21)
+67 + j*(73)
+129 + j*(-255)
+-270 + j*(203)
+-112 + j*(-71)
+-106 + j*(13)
+175 + j*(-194)
+6 + j*(110)
+115 + j*(135)
+-22 + j*(-50)
+143 + j*(220)
+-17 + j*(-82)
+-65 + j*(204)
+-46 + j*(-112)
+86 + j*(-199)
+3 + j*(-52)
+88 + j*(116)
+184 + j*(227)
+-65 + j*(189)
+-54 + j*(-150)
+139 + j*(206)
+122 + j*(72)
+-71 + j*(194)
+-134 + j*(287)
+44 + j*(-124)
+13 + j*(-250)
+-100 + j*(95)
+-110 + j*(16)
+233 + j*(-139)
+228 + j*(-39)
+-252 + j*(133)
+-122 + j*(-129)
+21 + j*(-143)
+-55 + j*(-144)
+-199 + j*(14)
+110 + j*(-195)
+85 + j*(-45)
+-243 + j*(-35)
+59 + j*(-86)
+-361 + j*(179)
+69 + j*(34)
+-22 + j*(42)
+-267 + j*(-294)
+28 + j*(-84)
+40 + j*(-247)
+-112 + j*(128)
+54 + j*(182)
+71 + j*(-33)
+-40 + j*(448)
+-75 + j*(-132)
+10 + j*(-37)
+272 + j*(-126)
+-209 + j*(-100)
+-98 + j*(58)
+72 + j*(391)
+25 + j*(21)
+-126 + j*(-110)
+-238 + j*(138)
+227 + j*(-283)
+64 + j*(-523)
+-42 + j*(392)
+103 + j*(-288)
+-131 + j*(-207)
+88 + j*(3)
+-81 + j*(382)
+-4 + j*(119)
+177 + j*(-137)
+-95 + j*(228)
+39 + j*(-127)
+-265 + j*(202)
+145 + j*(66)
+-358 + j*(127)
+-320 + j*(-144)
+-48 + j*(-260)
+119 + j*(37)
+-359 + j*(49)
+257 + j*(-112)
+112 + j*(84)
+30 + j*(171)
+136 + j*(-186)
+-250 + j*(-115)
+-274 + j*(-281)
+-37 + j*(1)
+69 + j*(130)
+-125 + j*(-184)
+-315 + j*(-75)
+-93 + j*(104)
+64 + j*(-6)
+198 + j*(141)
+-88 + j*(18)
+248 + j*(-57)
+-107 + j*(74)
+-71 + j*(26)
+-90 + j*(-21)
+-282 + j*(-201)
+57 + j*(47)
+-15 + j*(33)
+-144 + j*(153)
+-202 + j*(-221)
+-124 + j*(-175)
+-146 + j*(-276)
+-74 + j*(39)
+-91 + j*(512)
+125 + j*(213)
+139 + j*(168)
+-233 + j*(-91)
+60 + j*(-132)
+-36 + j*(-132)
+21 + j*(105)
+-129 + j*(231)
+-283 + j*(191)
+320 + j*(134)
+-171 + j*(70)
+-133 + j*(66)
+189 + j*(47)
+188 + j*(-88)
+-16 + j*(263)
+-44 + j*(4)
+93 + j*(-2)
+33 + j*(2)
+30 + j*(211)
+-114 + j*(-76)
+54 + j*(12)
+-128 + j*(-8)
+-23 + j*(265)
+-235 + j*(224)
+-56 + j*(260)
+30 + j*(106)
+-150 + j*(-223)
+-37 + j*(-291)
+-175 + j*(177)
+-165 + j*(259)
+-206 + j*(63)
+131 + j*(-61)
+-43 + j*(-186)
+-90 + j*(14)
+79 + j*(-190)
+-127 + j*(115)
+48 + j*(28)
+-5 + j*(17)
+-28 + j*(47)
+163 + j*(135)
+44 + j*(-125)
+-86 + j*(275)
+1 + j*(117)
+49 + j*(-62)
+147 + j*(80)
+85 + j*(84)
+-31 + j*(-101)
+243 + j*(150)
+-181 + j*(-219)
+-138 + j*(-10)
+-214 + j*(-151)
+27 + j*(-88)
+211 + j*(86)
+-162 + j*(-350)
+-455 + j*(77)
+237 + j*(30)
+18 + j*(189)
+-131 + j*(119)
+18 + j*(96)
+85 + j*(78)
+182 + j*(155)
+6 + j*(250)
+195 + j*(-153)
+-74 + j*(-51)
+44 + j*(-60)
+-234 + j*(221)
+359 + j*(-139)
+-228 + j*(291)
+-28 + j*(173)
+-147 + j*(-59)
+-357 + j*(100)
+-86 + j*(464)
+-113 + j*(-74)
+-282 + j*(356)
+16 + j*(-52)
+204 + j*(-316)
+258 + j*(178)
+-75 + j*(100)
+-113 + j*(83)
+158 + j*(309)
+65 + j*(-170)
+91 + j*(-125)
+-151 + j*(318)
+-52 + j*(-18)
+-138 + j*(176)
+-226 + j*(30)
+-177 + j*(39)
+-150 + j*(-13)
+35 + j*(-183)
+204 + j*(-308)
+186 + j*(-243)
+-115 + j*(-71)
+66 + j*(55)
+-88 + j*(-128)
+-109 + j*(195)
+-244 + j*(-90)
+175 + j*(-177)
+231 + j*(-194)
+-59 + j*(101)
+23 + j*(-8)
+-117 + j*(209)
+-16 + j*(-97)
+4 + j*(190)
+-28 + j*(-67)
+-94 + j*(3)
+-54 + j*(-21)
+-27 + j*(83)
+-127 + j*(-21)
+187 + j*(-289)
+3 + j*(-82)
+-1 + j*(-223)
+-168 + j*(232)
+-148 + j*(163)
+274 + j*(-324)
+-156 + j*(-82)
+384 + j*(162)
+-91 + j*(94)
+-37 + j*(10)
+-66 + j*(330)
+-85 + j*(-8)
+62 + j*(216)
+-98 + j*(95)
+126 + j*(189)
+196 + j*(-243)
+81 + j*(-42)
+-250 + j*(-2)
+118 + j*(146)
+-1 + j*(-98)
+88 + j*(-234)
+-151 + j*(25)
+175 + j*(235)
+36 + j*(-182)
+-108 + j*(69)
+105 + j*(-38)
+-175 + j*(-36)
+-327 + j*(-45)
+80 + j*(268)
+13 + j*(-43)
+-87 + j*(57)
+-70 + j*(-112)
+192 + j*(71)
+-369 + j*(-114)
+224 + j*(341)
+-144 + j*(-145)
+262 + j*(105)
+-91 + j*(-185)
+-6 + j*(116)
+-344 + j*(-245)
+90 + j*(-101)
+147 + j*(-123)
+-76 + j*(-71)
+6 + j*(197)
+-44 + j*(-130)
+21 + j*(-84)
+448 + j*(74)
+175 + j*(-3)
+-175 + j*(-156)
+-18 + j*(-110)
+-95 + j*(-250)
+-107 + j*(172)
+-110 + j*(157)
+132 + j*(6)
+47 + j*(146)
+212 + j*(-167)
+95 + j*(40)
+-239 + j*(-44)
+97 + j*(134)
+-104 + j*(-193)
+-363 + j*(-244)
+86 + j*(-1)
+72 + j*(-13)
+62 + j*(157)
+214 + j*(-103)
+-161 + j*(-3)
+-252 + j*(-139)
+147 + j*(39)
+30 + j*(-73)
+-100 + j*(-203)
+159 + j*(-250)
+-323 + j*(-118)
+-35 + j*(-88)
+-76 + j*(-105)
+-24 + j*(28)
+-194 + j*(-233)
+-272 + j*(23)
+-204 + j*(89)
+-83 + j*(-110)
+-88 + j*(110)
+254 + j*(-103)
+32 + j*(136)
+92 + j*(-226)
+-92 + j*(-203)
+-136 + j*(94)
+-283 + j*(-192)
+161 + j*(272)
+-102 + j*(30)
+71 + j*(-71)
+158 + j*(58)
+-71 + j*(-139)
+220 + j*(-131)
+225 + j*(-135)
+-222 + j*(332)
+-296 + j*(-165)
+-156 + j*(-104)
+-216 + j*(164)
+305 + j*(-68)
+-102 + j*(47)
+-25 + j*(66)
+28 + j*(250)
+120 + j*(-64)
+-120 + j*(-134)
+-42 + j*(114)
+18 + j*(32)
+-83 + j*(157)
+115 + j*(-25)
+-247 + j*(-110)
+-53 + j*(206)
+170 + j*(-30)
+-86 + j*(100)
+384 + j*(119)
+-332 + j*(-5)
+-37 + j*(163)
+74 + j*(285)
+139 + j*(-320)
+-286 + j*(18)
+21 + j*(313)
+125 + j*(50)
+-30 + j*(530)
+153 + j*(24)
+115 + j*(-141)
+-392 + j*(-131)
+194 + j*(-179)
+167 + j*(211)
+161 + j*(133)
+101 + j*(-263)
+-185 + j*(-81)
+-6 + j*(240)
+257 + j*(71)
+-30 + j*(68)
+-143 + j*(29)
+124 + j*(154)
+296 + j*(-67)
+360 + j*(-25)
+187 + j*(-21)
+-70 + j*(409)
+-95 + j*(39)
+53 + j*(161)
+-158 + j*(64)
+-141 + j*(112)
+414 + j*(-13)
+-153 + j*(-59)
+-189 + j*(-54)
+-69 + j*(19)
+1 + j*(-12)
+191 + j*(192)
+-133 + j*(-95)
+-245 + j*(232)
+86 + j*(-66)
+-173 + j*(129)
+63 + j*(131)
+-348 + j*(-260)
+143 + j*(-136)
+-97 + j*(-107)
+135 + j*(58)
+184 + j*(-80)
+-7 + j*(363)
+-285 + j*(-198)
+-103 + j*(290)
+134 + j*(87)
+-22 + j*(-163)
+66 + j*(-226)
+182 + j*(54)
+-204 + j*(-52)
+-194 + j*(161)
+-63 + j*(-117)
+61 + j*(98)
+49 + j*(-33)
+-152 + j*(40)
+177 + j*(-91)
+22 + j*(-106)
+89 + j*(-54)
+37 + j*(-148)
+286 + j*(-67)
+-114 + j*(69)
+13 + j*(127)
+-218 + j*(-8)
+-154 + j*(19)
+73 + j*(138)
+-132 + j*(16)
+185 + j*(117)
+-136 + j*(351)
+-121 + j*(98)
+184 + j*(-65)
+187 + j*(51)
+119 + j*(68)
+-85 + j*(-50)
+145 + j*(-25)
+-8 + j*(61)
+137 + j*(325)
+-124 + j*(-22)
+326 + j*(-175)
+-25 + j*(86)
+279 + j*(-95)
+8 + j*(159)
+-4 + j*(186)
+390 + j*(-138)
+-162 + j*(-42)
+-28 + j*(114)
+153 + j*(44)
+340 + j*(-112)
+-300 + j*(-58)
+-86 + j*(-173)
+267 + j*(-119)
+209 + j*(74)
+-279 + j*(105)
+-37 + j*(-37)
+-59 + j*(80)
+-148 + j*(-163)
+81 + j*(-156)
+-163 + j*(80)
+-73 + j*(378)
+-189 + j*(190)
+-35 + j*(-102)
+-49 + j*(-172)
+-177 + j*(-221)
+-4 + j*(215)
+-297 + j*(1)
+-94 + j*(-299)
+129 + j*(-374)
+-38 + j*(-16)
+-21 + j*(-97)
+-215 + j*(-75)
+147 + j*(111)
+-173 + j*(-72)
+92 + j*(-138)
+110 + j*(132)
+28 + j*(16)
+-143 + j*(-182)
+-109 + j*(325)
+-30 + j*(128)
+-200 + j*(-168)
+-148 + j*(-261)
+132 + j*(-63)
+-30 + j*(-14)
+-238 + j*(-55)
+-67 + j*(26)
+-214 + j*(1)
+-180 + j*(-286)
+-147 + j*(-66)
+205 + j*(41)
+152 + j*(-89)
+35 + j*(148)
+-112 + j*(38)
+156 + j*(-81)
+-177 + j*(104)
+-194 + j*(307)
+-46 + j*(-199)
+-290 + j*(35)
+-170 + j*(28)
+-23 + j*(214)
+-78 + j*(-90)
+-52 + j*(249)
+-140 + j*(-72)
+175 + j*(-34)
+103 + j*(115)
+266 + j*(-186)
+70 + j*(-192)
+-204 + j*(94)
+18 + j*(287)
+-173 + j*(289)
+136 + j*(216)
+-98 + j*(164)
+-37 + j*(185)
+-147 + j*(59)
+-105 + j*(-132)
+51 + j*(139)
+68 + j*(165)
+-330 + j*(-124)
+-30 + j*(-76)
+5 + j*(-193)
+209 + j*(-233)
+63 + j*(117)
+-260 + j*(-180)
+-34 + j*(182)
+40 + j*(-52)
+97 + j*(-188)
+-62 + j*(-71)
+-13 + j*(-250)
+-15 + j*(234)
+243 + j*(-193)
+26 + j*(-392)
+-129 + j*(69)
+-143 + j*(-115)
+-108 + j*(56)
+-52 + j*(282)
+-7 + j*(-90)
+37 + j*(-105)
+-615 + j*(-199)
+-74 + j*(85)
+-322 + j*(-64)
+69 + j*(-165)
+-70 + j*(101)
+29 + j*(92)
+-150 + j*(-327)
+54 + j*(89)
+-398 + j*(186)
+-102 + j*(-121)
+-269 + j*(-71)
+52 + j*(-62)
+170 + j*(-125)
+6 + j*(-69)
+-76 + j*(-327)
+35 + j*(139)
+-3 + j*(-87)
+-322 + j*(167)
+4 + j*(-26)
+184 + j*(160)
+-178 + j*(-75)
+109 + j*(62)
+50 + j*(54)
+-64 + j*(-115)
+-371 + j*(-247)
+-124 + j*(-45)
+-211 + j*(-123)
+153 + j*(86)
+-222 + j*(-161)
+-163 + j*(-173)
+-17 + j*(263)
+171 + j*(27)
+287 + j*(105)
+31 + j*(-233)
+-8 + j*(-81)
+37 + j*(120)
+-8 + j*(21)
+3 + j*(-138)
+95 + j*(202)
+511 + j*(81)
+-117 + j*(-196)
+35 + j*(28)
+-136 + j*(-301)
+182 + j*(-140)
+-60 + j*(-66)
+-206 + j*(-111)
+231 + j*(27)
+48 + j*(49)
+206 + j*(315)
+86 + j*(93)
+131 + j*(-232)
+-161 + j*(6)
+22 + j*(306)
+-307 + j*(-81)
+-170 + j*(87)
+173 + j*(1)
+-286 + j*(-155)
+-278 + j*(-192)
+10 + j*(-42)
+-153 + j*(202)
+377 + j*(35)
+8 + j*(-47)
+-54 + j*(-46)
+138 + j*(-201)
+26 + j*(-49)
+235 + j*(-73)
+-143 + j*(-291)
+-103 + j*(-30)
+18 + j*(-281)
+311 + j*(122)
+9 + j*(-27)
+-240 + j*(50)
+-110 + j*(209)
+187 + j*(-209)
+68 + j*(247)
+498 + j*(-59)
+161 + j*(-189)
+-132 + j*(72)
+-127 + j*(18)
+-193 + j*(-185)
+-127 + j*(-276)
+-104 + j*(235)
+-26 + j*(165)
+148 + j*(-181)
+87 + j*(-107)
+-177 + j*(136)
+173 + j*(2)
+-298 + j*(-63)
+218 + j*(29)
+-330 + j*(-167)
+110 + j*(127)
+-18 + j*(-42)
+-85 + j*(153)
+-92 + j*(-119)
+23 + j*(115)
+149 + j*(-76)
+-132 + j*(85)
+-163 + j*(-52)
+-139 + j*(303)
+151 + j*(113)
+264 + j*(74)
+48 + j*(115)
+-38 + j*(-9)
+-232 + j*(262)
+412 + j*(123)
+28 + j*(108)
+-53 + j*(-95)
+-79 + j*(184)
+-252 + j*(192)
+170 + j*(39)
+220 + j*(249)
+-5 + j*(-8)
+125 + j*(27)
+147 + j*(-80)
+25 + j*(-272)
+52 + j*(47)
+248 + j*(-56)
+-84 + j*(-51)
+-93 + j*(-395)
+-179 + j*(221)
+-110 + j*(108)
+13 + j*(26)
+332 + j*(336)
+31 + j*(-141)
+-2 + j*(76)
+334 + j*(-79)
+28 + j*(86)
+307 + j*(-129)
+-251 + j*(197)
+-21 + j*(-36)
+-117 + j*(71)
+-279 + j*(42)
+220 + j*(216)
+135 + j*(-161)
+345 + j*(-245)
+40 + j*(-155)
+-61 + j*(159)
+105 + j*(52)
+278 + j*(-63)
+-40 + j*(35)
+-47 + j*(326)
+-171 + j*(-151)
+83 + j*(177)
+-250 + j*(-70)
+20 + j*(-68)
+87 + j*(-123)
+-325 + j*(-98)
+-3 + j*(81)
+-21 + j*(165)
+97 + j*(295)
+554 + j*(168)
+-192 + j*(-154)
+14 + j*(-11)
+-201 + j*(67)
+-163 + j*(153)
+-23 + j*(-153)
+-44 + j*(-7)
+-18 + j*(63)
+-110 + j*(-35)
+471 + j*(-202)
+267 + j*(-194)
+-140 + j*(-358)
+-204 + j*(-94)
+-25 + j*(-147)
+59 + j*(199)
+58 + j*(-13)
+-36 + j*(-114)
+115 + j*(-163)
+190 + j*(226)
+-142 + j*(-144)
+51 + j*(-93)
+68 + j*(-77)
+1 + j*(-323)
+95 + j*(-72)
+-112 + j*(3)
+202 + j*(284)
+-261 + j*(18)
+-358 + j*(122)
+-129 + j*(-37)
+80 + j*(-91)
+59 + j*(132)
+274 + j*(-385)
+54 + j*(-131)
+-49 + j*(-127)
+-94 + j*(-332)
+276 + j*(-44)
+332 + j*(139)
+13 + j*(-103)
+-63 + j*(137)
+115 + j*(-137)
+-117 + j*(233)
+10 + j*(-170)
+-358 + j*(-182)
+-37 + j*(15)
+68 + j*(9)
+342 + j*(-268)
+-127 + j*(-199)
+141 + j*(-452)
+-265 + j*(1)
+-180 + j*(236)
+-18 + j*(4)
+35 + j*(228)
+-30 + j*(8)
+182 + j*(-211)
+-233 + j*(0)
+-79 + j*(-53)
+-159 + j*(100)
+-29 + j*(-131)
+-22 + j*(27)
+-136 + j*(165)
+44 + j*(146)
+-162 + j*(21)
+60 + j*(-158)
+-127 + j*(-2)
+-11 + j*(191)
+-139 + j*(9)
+315 + j*(115)
+175 + j*(-193)
+-45 + j*(250)
+36 + j*(2)
+141 + j*(-198)
+-307 + j*(2)
+144 + j*(-59)
+122 + j*(-27)
+-211 + j*(-483)
+185 + j*(58)
+39 + j*(127)
+-238 + j*(-109)
+106 + j*(345)
+76 + j*(33)
+239 + j*(207)
+-109 + j*(-249)
+-146 + j*(45)
+-38 + j*(-150)
+78 + j*(-186)
+8 + j*(71)
+-207 + j*(-255)
+85 + j*(16)
+-23 + j*(-153)
+82 + j*(-11)
+-10 + j*(116)
+162 + j*(-201)
+66 + j*(-116)
+277 + j*(163)
+102 + j*(-358)
+54 + j*(10)
+37 + j*(-112)
+127 + j*(-64)
+-74 + j*(-93)
+-54 + j*(214)
+149 + j*(-37)
+-269 + j*(-66)
+-13 + j*(-220)
+-120 + j*(76)
+97 + j*(75)
+238 + j*(-78)
+263 + j*(-293)
+-57 + j*(-131)
+127 + j*(-202)
+235 + j*(-105)
+226 + j*(-18)
+-107 + j*(-286)
+194 + j*(-118)
+104 + j*(-121)
+21 + j*(117)
+380 + j*(92)
+22 + j*(-190)
+79 + j*(37)
+175 + j*(180)
+42 + j*(-70)
+40 + j*(-174)
+-36 + j*(-141)
+-165 + j*(92)
+9 + j*(-335)
+328 + j*(-194)
+-198 + j*(-147)
+342 + j*(-129)
+71 + j*(-201)
+176 + j*(-66)
+16 + j*(-255)
+179 + j*(-119)
+89 + j*(133)
+144 + j*(-78)
+106 + j*(235)
+175 + j*(-324)
+-68 + j*(315)
+-265 + j*(-374)
+-28 + j*(14)
+-213 + j*(106)
+106 + j*(-163)
+49 + j*(-71)
+-151 + j*(6)
+-421 + j*(119)
+-244 + j*(23)
+81 + j*(-57)
+-259 + j*(-230)
+177 + j*(101)
+-48 + j*(-308)
+147 + j*(57)
+152 + j*(47)
+-194 + j*(-25)
+-116 + j*(356)
+-68 + j*(149)
+7 + j*(-132)
+-126 + j*(-159)
+-177 + j*(272)
+226 + j*(-257)
+-158 + j*(51)
+-73 + j*(214)
+47 + j*(-237)
+161 + j*(250)
+83 + j*(105)
+103 + j*(35)
+99 + j*(81)
+-6 + j*(0)
+-122 + j*(39)
+-116 + j*(-209)
+-172 + j*(-250)
+179 + j*(-8)
+-174 + j*(134)
+-71 + j*(-194)
+105 + j*(257)
+-124 + j*(100)
+33 + j*(-117)
+-73 + j*(53)
+144 + j*(-12)
+-185 + j*(-141)
+136 + j*(110)
+45 + j*(117)
+-7 + j*(-195)
+-86 + j*(172)
+-23 + j*(-103)
+-263 + j*(-26)
+-37 + j*(124)
+166 + j*(392)
+-373 + j*(111)
+-34 + j*(-202)
+63 + j*(299)
+474 + j*(273)
+-264 + j*(-284)
+-119 + j*(33)
+227 + j*(-117)
+-98 + j*(135)
+-47 + j*(-141)
+-158 + j*(-36)
+160 + j*(38)
+-29 + j*(66)
+144 + j*(-272)
+-171 + j*(-107)
+357 + j*(-86)
+-231 + j*(-86)
+-75 + j*(-76)
+216 + j*(156)
+-13 + j*(-187)
+-88 + j*(37)
+119 + j*(270)
+31 + j*(-77)
+-140 + j*(37)
+21 + j*(-17)
+211 + j*(-33)
+-287 + j*(101)
+-112 + j*(142)
+-3 + j*(-140)
+-91 + j*(-151)
+150 + j*(-243)
+-64 + j*(96)
+-262 + j*(163)
+196 + j*(-39)
+-126 + j*(-71)
+-161 + j*(102)
+-125 + j*(35)
+292 + j*(98)
+-6 + j*(192)
+107 + j*(-71)
+83 + j*(-193)
+272 + j*(-25)
+235 + j*(67)
+-87 + j*(-159)
+-54 + j*(-118)
+-279 + j*(-4)
+29 + j*(-20)
+132 + j*(314)
+-73 + j*(-148)
+-470 + j*(86)
+262 + j*(-260)
+-76 + j*(-42)
+256 + j*(64)
+-18 + j*(-144)
+40 + j*(-151)
+75 + j*(-166)
+-196 + j*(21)
+-45 + j*(184)
+121 + j*(18)
+-89 + j*(-148)
+-170 + j*(-18)
+338 + j*(-150)
+-276 + j*(221)
+-177 + j*(236)
+139 + j*(-134)
+139 + j*(213)
+33 + j*(233)
+-53 + j*(16)
+-219 + j*(-206)
+301 + j*(-21)
+83 + j*(-59)
+47 + j*(-66)
+325 + j*(-275)
+53 + j*(10)
+-25 + j*(106)
+85 + j*(-86)
+-150 + j*(-16)
+-172 + j*(-122)
+317 + j*(-115)
+66 + j*(-1)
+-176 + j*(4)
+-47 + j*(-43)
+-122 + j*(-28)
+79 + j*(519)
+-87 + j*(190)
+81 + j*(-124)
+149 + j*(-67)
+-68 + j*(-148)
+-154 + j*(-199)
+-127 + j*(94)
+-21 + j*(-108)
+-185 + j*(155)
+-327 + j*(223)
+127 + j*(27)
+140 + j*(118)
+260 + j*(-68)
+-228 + j*(200)
+-431 + j*(-226)
+97 + j*(153)
+68 + j*(25)
+-226 + j*(245)
+-83 + j*(133)
+23 + j*(45)
+70 + j*(52)
+-4 + j*(-66)
+-137 + j*(71)
+-110 + j*(78)
+95 + j*(-11)
+93 + j*(-266)
+-163 + j*(103)
+-246 + j*(-91)
+-9 + j*(-296)
+177 + j*(-14)
+-151 + j*(-157)
+60 + j*(73)
+54 + j*(308)
+165 + j*(-85)
+106 + j*(-66)
+-205 + j*(-183)
+45 + j*(107)
+71 + j*(-59)
+249 + j*(27)
+10 + j*(168)
+-153 + j*(-134)
+-40 + j*(208)
+-214 + j*(156)
+77 + j*(220)
+115 + j*(103)
+52 + j*(-8)
+-93 + j*(133)
+-163 + j*(78)
+283 + j*(22)
+-500 + j*(-91)
+-42 + j*(-286)
+25 + j*(143)
+-62 + j*(350)
+303 + j*(157)
+-164 + j*(-109)
+36 + j*(-296)
+166 + j*(19)
+298 + j*(161)
+99 + j*(-253)
+37 + j*(-6)
+-117 + j*(245)
+191 + j*(-123)
+153 + j*(-14)
+107 + j*(77)
+-71 + j*(-195)
+266 + j*(-438)
+163 + j*(3)
+-202 + j*(-173)
+-95 + j*(62)
+11 + j*(337)
+33 + j*(-120)
+206 + j*(-425)
+-189 + j*(-49)
+183 + j*(118)
+-66 + j*(144)
+-214 + j*(-160)
+88 + j*(-28)
+-49 + j*(102)
+-262 + j*(-225)
+-136 + j*(-174)
+-87 + j*(265)
+-43 + j*(-2)
+68 + j*(36)
+47 + j*(-197)
+-139 + j*(194)
+14 + j*(332)
+89 + j*(-95)
+-348 + j*(-112)
+122 + j*(-240)
+221 + j*(132)
+170 + j*(-24)
+310 + j*(-73)
+-103 + j*(-392)
+61 + j*(-144)
+112 + j*(-128)
+73 + j*(52)
+48 + j*(435)
+224 + j*(169)
+116 + j*(-322)
+91 + j*(-1)
+-40 + j*(243)
+72 + j*(-96)
+159 + j*(-83)
+69 + j*(30)
+-173 + j*(316)
+322 + j*(-42)
+99 + j*(208)
+76 + j*(-222)
+-35 + j*(-66)
+4 + j*(-345)
+-223 + j*(-115)
+-37 + j*(212)
+-119 + j*(6)
+-23 + j*(-83)
+-25 + j*(-12)
+-78 + j*(-47)
+166 + j*(69)
+116 + j*(72)
+-60 + j*(105)
+165 + j*(53)
+83 + j*(-57)
+-48 + j*(337)
+35 + j*(-71)
+-260 + j*(124)
+-185 + j*(49)
+-117 + j*(-358)
+138 + j*(-20)
+-103 + j*(-228)
+-87 + j*(105)
+-141 + j*(-50)
+160 + j*(124)
+-448 + j*(42)
+-87 + j*(36)
+-227 + j*(-343)
+-188 + j*(-226)
+-101 + j*(-183)
+-8 + j*(-93)
+-264 + j*(-92)
+233 + j*(57)
+5 + j*(6)
+-47 + j*(122)
+46 + j*(11)
+-13 + j*(-95)
+-35 + j*(60)
+203 + j*(-5)
+-267 + j*(25)
+112 + j*(-79)
+329 + j*(-30)
+111 + j*(-98)
+-238 + j*(286)
+-76 + j*(-166)
+103 + j*(-232)
+-41 + j*(-90)
+28 + j*(182)
+190 + j*(-57)
+203 + j*(-90)
+-51 + j*(-117)
+74 + j*(120)
+-161 + j*(-360)
+72 + j*(-57)
+296 + j*(-36)
+146 + j*(-111)
+149 + j*(-75)
+-59 + j*(-81)
+104 + j*(-30)
+198 + j*(124)
+-120 + j*(-214)
+-98 + j*(63)
+-127 + j*(-165)
+284 + j*(-8)
+-92 + j*(-310)
+-368 + j*(105)
+-314 + j*(-363)
+184 + j*(265)
+-100 + j*(-36)
+-134 + j*(-56)
+-158 + j*(121)
+72 + j*(-204)
+130 + j*(44)
+-209 + j*(-211)
+62 + j*(-212)
+177 + j*(100)
+78 + j*(-333)
+-42 + j*(-40)
+-37 + j*(125)
+57 + j*(21)
+182 + j*(-21)
+3 + j*(-171)
+243 + j*(-354)
+344 + j*(57)
+-157 + j*(-167)
+121 + j*(59)
+151 + j*(145)
+-162 + j*(-107)
+181 + j*(-11)
+-32 + j*(383)
+86 + j*(7)
+-135 + j*(-260)
+-79 + j*(-11)
+-136 + j*(-334)
+66 + j*(219)
+300 + j*(1)
+-116 + j*(-202)
+186 + j*(-223)
+228 + j*(400)
+-150 + j*(-101)
+161 + j*(-204)
+-10 + j*(53)
+-236 + j*(172)
+143 + j*(-182)
+10 + j*(272)
+55 + j*(184)
+32 + j*(-390)
+-69 + j*(317)
+-37 + j*(11)
+-74 + j*(30)
+140 + j*(-83)
+53 + j*(-136)
+200 + j*(-285)
+-189 + j*(-378)
+-101 + j*(-253)
+-25 + j*(78)
+17 + j*(-104)
+-180 + j*(196)
+-148 + j*(-309)
+-317 + j*(119)
+141 + j*(79)
+-41 + j*(-72)
+-162 + j*(-63)
+-65 + j*(-35)
+-110 + j*(49)
+110 + j*(-48)
+19 + j*(92)
+-148 + j*(14)
+-102 + j*(280)
+139 + j*(43)
+-36 + j*(-207)
+40 + j*(-76)
+172 + j*(-279)
+-35 + j*(224)
+414 + j*(-378)
+157 + j*(-112)
+529 + j*(-307)
+-1 + j*(-74)
+-11 + j*(330)
+236 + j*(-36)
+-158 + j*(-353)
+-215 + j*(-29)
+185 + j*(174)
+-8 + j*(-27)
+306 + j*(170)
+-214 + j*(-102)
+-73 + j*(37)
+199 + j*(-156)
+230 + j*(-113)
+-2 + j*(-106)
+-80 + j*(204)
+40 + j*(-276)
+196 + j*(-459)
+-330 + j*(-98)
+-267 + j*(83)
+-15 + j*(-58)
+-163 + j*(403)
+-126 + j*(-262)
+-215 + j*(178)
+89 + j*(121)
+-132 + j*(130)
+154 + j*(210)
+-159 + j*(337)
+-264 + j*(161)
+25 + j*(201)
+-21 + j*(102)
+-132 + j*(101)
+6 + j*(98)
+-19 + j*(-328)
+62 + j*(-122)
+-151 + j*(-103)
+-72 + j*(316)
+150 + j*(-520)
+438 + j*(378)
+144 + j*(462)
+161 + j*(15)
+42 + j*(-182)
+-123 + j*(479)
+-248 + j*(145)
+-416 + j*(305)
+34 + j*(-459)
+334 + j*(133)
+391 + j*(-385)
+-167 + j*(324)
+-98 + j*(104)
+444 + j*(-168)
+151 + j*(-241)
+-143 + j*(56)
+-148 + j*(281)
+-276 + j*(269)
+260 + j*(-255)
+173 + j*(-64)
+534 + j*(206)
+-692 + j*(597)
+173 + j*(-259)
+235 + j*(346)
+-59 + j*(-310)
+124 + j*(334)
+-416 + j*(-148)
+438 + j*(66)
+-269 + j*(421)
+-455 + j*(235)
+355 + j*(-293)
+-326 + j*(-148)
+-332 + j*(-433)
+-89 + j*(75)
+468 + j*(-103)
+376 + j*(-51)
+-180 + j*(12)
+91 + j*(-346)
+-95 + j*(447)
+-214 + j*(281)
+107 + j*(256)
+179 + j*(-77)
+-397 + j*(-168)
+-208 + j*(528)
+-342 + j*(282)
+212 + j*(-330)
+-327 + j*(119)
+339 + j*(-146)
+112 + j*(346)
+361 + j*(142)
+-556 + j*(260)
+-226 + j*(-152)
+-368 + j*(-221)
+-532 + j*(-147)
+-494 + j*(-18)
+614 + j*(-132)
+274 + j*(-102)
+-269 + j*(-486)
+-263 + j*(134)
+-486 + j*(426)
+-143 + j*(-286)
+-215 + j*(-343)
+-383 + j*(-17)
+-139 + j*(245)
+346 + j*(157)
+2 + j*(60)
+264 + j*(64)
+304 + j*(-49)
+298 + j*(-491)
+-375 + j*(-129)
+170 + j*(109)
+-226 + j*(-220)
+450 + j*(117)
+-173 + j*(221)
+-119 + j*(484)
+-325 + j*(-109)
+-301 + j*(-263)
+-227 + j*(-337)
+-144 + j*(-313)
+-93 + j*(-265)
+-14 + j*(-269)
+-456 + j*(25)
+-330 + j*(127)
+-286 + j*(351)
+482 + j*(-336)
+-387 + j*(436)
+-182 + j*(260)
+-327 + j*(-333)
+-502 + j*(-140)
+-131 + j*(-227)
+-261 + j*(-309)
+183 + j*(195)
+-160 + j*(-465)
+-325 + j*(-431)
+212 + j*(-549)
+19 + j*(-120)
+73 + j*(-1)
+-316 + j*(347)
+192 + j*(265)
+-192 + j*(-124)
+260 + j*(417)
+431 + j*(-404)
+192 + j*(-508)
+-54 + j*(-424)
+370 + j*(18)
+-393 + j*(-101)
+434 + j*(-268)
+50 + j*(-37)
+504 + j*(-91)
+462 + j*(337)
+-223 + j*(-328)
+298 + j*(-308)
+140 + j*(-303)
+-208 + j*(-406)
+378 + j*(-223)
+-325 + j*(105)
+-467 + j*(-122)
+297 + j*(279)
+-589 + j*(-381)
+252 + j*(185)
+161 + j*(-177)
+348 + j*(605)
+-329 + j*(116)
+122 + j*(-226)
+-303 + j*(-57)
+357 + j*(-264)
+-152 + j*(-261)
+-234 + j*(-112)
+-66 + j*(37)
+239 + j*(446)
+-20 + j*(170)
+-202 + j*(72)
+-132 + j*(-164)
+-121 + j*(-69)
+-368 + j*(-541)
+-16 + j*(356)
+-226 + j*(-168)
+-274 + j*(-315)
+606 + j*(-180)
+-187 + j*(-28)
+-444 + j*(333)
+-466 + j*(-235)
+-121 + j*(-71)
+-236 + j*(-49)
+506 + j*(-332)
+218 + j*(248)
+-22 + j*(-289)
+308 + j*(-8)
+-85 + j*(414)
+-154 + j*(360)
+46 + j*(-332)
+199 + j*(10)
+-243 + j*(485)
+-368 + j*(-624)
+-367 + j*(170)
+-339 + j*(274)
+895 + j*(286)
+148 + j*(-251)
+167 + j*(156)
+195 + j*(205)
+27 + j*(-98)
+86 + j*(-226)
+-197 + j*(-206)
+417 + j*(-226)
+308 + j*(503)
+401 + j*(-250)
+-139 + j*(158)
+108 + j*(190)
+462 + j*(257)
+14 + j*(-387)
+360 + j*(155)
+-435 + j*(-99)
+361 + j*(416)
+258 + j*(-62)
+25 + j*(-333)
+66 + j*(352)
+546 + j*(-286)
+-180 + j*(-458)
+280 + j*(-151)
+72 + j*(-216)
+-368 + j*(403)
+464 + j*(527)
+-344 + j*(-60)
+-129 + j*(516)
+-279 + j*(348)
+-249 + j*(257)
+95 + j*(226)
+180 + j*(170)
+-97 + j*(-238)
+-234 + j*(-164)
+148 + j*(-344)
+-190 + j*(-359)
+152 + j*(537)
+187 + j*(-93)
+-264 + j*(311)
+100 + j*(115)
+329 + j*(-129)
+-264 + j*(495)
+281 + j*(296)
+-216 + j*(-100)
+255 + j*(635)
+-410 + j*(324)
+368 + j*(349)
+-515 + j*(-427)
+-296 + j*(-91)
+-89 + j*(-357)
+23 + j*(-220)
+-39 + j*(-482)
+366 + j*(613)
+359 + j*(44)
+270 + j*(-241)
+146 + j*(-653)
+-220 + j*(441)
+269 + j*(125)
+-350 + j*(321)
+284 + j*(12)
+-209 + j*(-60)
+305 + j*(144)
+-368 + j*(272)
+468 + j*(-231)
+176 + j*(12)
+-149 + j*(-216)
+424 + j*(-84)
+-462 + j*(-520)
+349 + j*(-377)
+-361 + j*(166)
+165 + j*(238)
+-78 + j*(201)
+-188 + j*(330)
+-70 + j*(-25)
+-220 + j*(330)
+-206 + j*(308)
+378 + j*(-181)
+-203 + j*(-356)
+501 + j*(-574)
+63 + j*(134)
+-493 + j*(-103)
+-26 + j*(-341)
+-390 + j*(158)
+69 + j*(249)
+279 + j*(358)
+441 + j*(-253)
+-142 + j*(142)
+-346 + j*(-387)
+332 + j*(-606)
+187 + j*(240)
+431 + j*(-35)
+308 + j*(-181)
+240 + j*(-338)
+240 + j*(-168)
+-429 + j*(-134)
+161 + j*(-89)
+-460 + j*(-346)
+-382 + j*(247)
+-521 + j*(-66)
+99 + j*(318)
+-193 + j*(-20)
+148 + j*(551)
+366 + j*(200)
+560 + j*(-170)
+281 + j*(280)
+-462 + j*(-173)
+-424 + j*(66)
+190 + j*(354)
+-135 + j*(-346)
+-283 + j*(-282)
+306 + j*(-280)
+308 + j*(341)
+57 + j*(-380)
+-439 + j*(-147)
+46 + j*(-188)
+-189 + j*(136)
+-167 + j*(281)
+-73 + j*(-352)
+286 + j*(165)
+-353 + j*(152)
+255 + j*(-443)
+458 + j*(300)
+126 + j*(-267)
+-147 + j*(430)
+756 + j*(232)
+-462 + j*(-200)
+-246 + j*(368)
+392 + j*(501)
+593 + j*(-118)
+-341 + j*(274)
+240 + j*(221)
+-474 + j*(-129)
+277 + j*(418)
+-134 + j*(231)
+-302 + j*(115)
+101 + j*(337)
+-122 + j*(-20)
+503 + j*(-217)
+473 + j*(-235)
+-338 + j*(-158)
+-43 + j*(472)
+-428 + j*(-216)
+-344 + j*(75)
+-728 + j*(233)
+-86 + j*(6)
+337 + j*(-549)
+-318 + j*(4)
+-322 + j*(177)
+141 + j*(-152)
+445 + j*(85)
+260 + j*(178)
+54 + j*(128)
+-45 + j*(103)
+-320 + j*(307)
+-640 + j*(-346)
+-98 + j*(445)
+-356 + j*(-291)
+173 + j*(229)
+-5 + j*(130)
+142 + j*(248)
+-248 + j*(412)
+-18 + j*(494)
+238 + j*(195)
+-159 + j*(-196)
+338 + j*(211)
+767 + j*(-549)
+516 + j*(185)
+252 + j*(87)
+-416 + j*(387)
+371 + j*(-352)
+-396 + j*(34)
+455 + j*(34)
+298 + j*(-147)
+-377 + j*(119)
+214 + j*(-19)
+-242 + j*(-141)
+115 + j*(305)
+542 + j*(292)
+58 + j*(-453)
+199 + j*(-347)
+-431 + j*(-128)
+260 + j*(-252)
+-175 + j*(491)
+535 + j*(-119)
+330 + j*(69)
+-240 + j*(-301)
+499 + j*(525)
+-400 + j*(-455)
+549 + j*(636)
+247 + j*(-328)
+-293 + j*(-170)
+-178 + j*(270)
+-119 + j*(250)
+183 + j*(57)
+252 + j*(97)
+-539 + j*(-34)
+-353 + j*(-15)
+-105 + j*(-148)
+-272 + j*(-336)
+-338 + j*(-402)
+-396 + j*(57)
+292 + j*(41)
+-204 + j*(-299)
+281 + j*(333)
+77 + j*(323)
+-190 + j*(-385)
+426 + j*(-128)
+263 + j*(282)
+16 + j*(18)
+327 + j*(-40)
+-411 + j*(-99)
+387 + j*(91)
+-238 + j*(166)
+-72 + j*(11)
+-508 + j*(233)
+244 + j*(-490)
+-442 + j*(216)
+178 + j*(-419)
+313 + j*(187)
+266 + j*(-521)
+390 + j*(-337)
+448 + j*(-103)
+425 + j*(-349)
+-151 + j*(310)
+283 + j*(-153)
+320 + j*(-281)
+56 + j*(99)
+-202 + j*(-406)
+-141 + j*(-409)
+121 + j*(317)
+380 + j*(371)
+-177 + j*(-47)
+361 + j*(-379)
+-448 + j*(-28)
+296 + j*(-269)
+508 + j*(-238)
+659 + j*(-47)
+-298 + j*(-180)
+104 + j*(174)
+49 + j*(-67)
+233 + j*(-449)
+339 + j*(156)
+258 + j*(-158)
+-181 + j*(426)
+278 + j*(-175)
+-68 + j*(-334)
+327 + j*(-599)
+118 + j*(-216)
+45 + j*(-304)
+-158 + j*(216)
+-257 + j*(204)
+396 + j*(-415)
+338 + j*(229)
+-194 + j*(256)
+-583 + j*(306)
+103 + j*(-457)
+185 + j*(-439)
+478 + j*(66)
+-255 + j*(464)
+-145 + j*(346)
+-660 + j*(-47)
+-511 + j*(-410)
+-288 + j*(453)
+-258 + j*(250)
+-115 + j*(-121)
+134 + j*(344)
+349 + j*(-287)
+-503 + j*(205)
+-383 + j*(-410)
+-470 + j*(240)
+325 + j*(-687)
+221 + j*(-151)
+426 + j*(418)
+134 + j*(206)
+88 + j*(-121)
+-111 + j*(362)
+-305 + j*(-182)
+93 + j*(-185)
+-174 + j*(406)
+-417 + j*(240)
+104 + j*(-155)
+146 + j*(375)
+618 + j*(146)
+134 + j*(196)
+-393 + j*(343)
+-454 + j*(-76)
+260 + j*(-24)
+132 + j*(-68)
+242 + j*(426)
+106 + j*(-454)
+-266 + j*(-200)
+337 + j*(576)
+180 + j*(95)
+-257 + j*(116)
+459 + j*(417)
+-129 + j*(-160)
+142 + j*(-197)
+219 + j*(504)
+154 + j*(170)
+132 + j*(185)
+316 + j*(264)
+-440 + j*(200)
+97 + j*(-3)
+-9 + j*(-173)
+249 + j*(-28)
+612 + j*(-663)
+-484 + j*(-26)
+419 + j*(425)
+-228 + j*(330)
+4 + j*(-297)
+445 + j*(201)
+519 + j*(37)
+333 + j*(158)
+362 + j*(45)
+333 + j*(-542)
+187 + j*(-188)
+-148 + j*(-273)
+-329 + j*(241)
+-148 + j*(-251)
+423 + j*(-16)
+90 + j*(-232)
+-293 + j*(551)
+-190 + j*(165)
+-256 + j*(-518)
+143 + j*(-260)
+463 + j*(-392)
+-295 + j*(-20)
+14 + j*(-130)
+2 + j*(293)
+-354 + j*(-299)
+409 + j*(298)
+185 + j*(238)
+383 + j*(220)
+316 + j*(-39)
+177 + j*(-8)
+-269 + j*(-223)
+-332 + j*(132)
+-312 + j*(137)
+-254 + j*(-224)
+-279 + j*(-206)
+103 + j*(276)
+-81 + j*(235)
+106 + j*(-356)
+-250 + j*(170)
+146 + j*(-256)
+375 + j*(206)
+35 + j*(285)
+179 + j*(-480)
+-4 + j*(262)
+286 + j*(339)
+349 + j*(3)
+262 + j*(-317)
+-188 + j*(314)
+258 + j*(280)
+-60 + j*(-63)
+-358 + j*(-431)
+355 + j*(-313)
+602 + j*(-572)
+-97 + j*(29)
+-361 + j*(112)
+426 + j*(-446)
+-334 + j*(-248)
+-468 + j*(-301)
+-134 + j*(-296)
+344 + j*(-398)
+-33 + j*(361)
+339 + j*(-470)
+238 + j*(311)
+455 + j*(372)
+-419 + j*(47)
+-267 + j*(-6)
+313 + j*(-315)
+-314 + j*(148)
+-167 + j*(-559)
+371 + j*(-467)
+-377 + j*(337)
+535 + j*(-262)
+170 + j*(-213)
+-719 + j*(-409)
+-59 + j*(155)
+-137 + j*(240)
+-403 + j*(-211)
+-310 + j*(-119)
+405 + j*(-72)
+-488 + j*(136)
+-270 + j*(-495)
+375 + j*(-124)
+294 + j*(-73)
+494 + j*(406)
+423 + j*(311)
+-401 + j*(-383)
+378 + j*(293)
+-290 + j*(-348)
+111 + j*(-182)
+414 + j*(523)
+-121 + j*(746)
+129 + j*(-466)
+409 + j*(-359)
+342 + j*(63)
+-325 + j*(174)
+-292 + j*(103)
+221 + j*(407)
+298 + j*(240)
+-343 + j*(363)
+192 + j*(-296)
+-291 + j*(180)
+-76 + j*(-33)
+-58 + j*(-362)
+-260 + j*(-202)
+-301 + j*(-129)
+86 + j*(400)
+-240 + j*(337)
+77 + j*(-55)
+279 + j*(831)
+20 + j*(-13)
+305 + j*(-124)
+551 + j*(99)
+439 + j*(438)
+-194 + j*(490)
+592 + j*(216)
+-382 + j*(228)
+-316 + j*(76)
+98 + j*(30)
+216 + j*(-286)
+268 + j*(18)
+-13 + j*(233)
+-497 + j*(-483)
+25 + j*(-332)
+168 + j*(227)
+301 + j*(143)
+73 + j*(-48)
+-3 + j*(-291)
+588 + j*(16)
+192 + j*(-489)
+243 + j*(76)
+254 + j*(539)
+-380 + j*(229)
+489 + j*(15)
+241 + j*(131)
+158 + j*(-295)
+306 + j*(195)
+-283 + j*(428)
+412 + j*(-48)
+384 + j*(-260)
+-188 + j*(38)
+-104 + j*(-159)
+64 + j*(142)
+-39 + j*(92)
+-73 + j*(243)
+114 + j*(-292)
+-19 + j*(36)
+-160 + j*(345)
+123 + j*(-62)
+-45 + j*(297)
+299 + j*(33)
+117 + j*(-93)
+-214 + j*(44)
+-345 + j*(-15)
+-11 + j*(-78)
+204 + j*(16)
+132 + j*(-22)
+-45 + j*(59)
+-220 + j*(-21)
+145 + j*(-76)
+-124 + j*(120)
+156 + j*(-31)
+21 + j*(-187)
+-81 + j*(160)
+-43 + j*(-79)
+114 + j*(7)
+247 + j*(-122)
+90 + j*(96)
+-132 + j*(27)
+228 + j*(11)
+-179 + j*(40)
+78 + j*(89)
+-513 + j*(3)
+-152 + j*(246)
+-60 + j*(211)
+-108 + j*(-76)
+-30 + j*(-112)
+-68 + j*(-276)
+18 + j*(42)
+-13 + j*(-322)
+-76 + j*(-78)
+156 + j*(48)
+-25 + j*(121)
+106 + j*(-127)
+-110 + j*(257)
+263 + j*(132)
+-168 + j*(303)
+18 + j*(271)
+6 + j*(-148)
+133 + j*(-263)
+-25 + j*(130)
+71 + j*(329)
+406 + j*(-14)
+-28 + j*(-89)
+-214 + j*(40)
+-121 + j*(194)
+-138 + j*(-7)
+107 + j*(97)
+213 + j*(-98)
+114 + j*(73)
+-233 + j*(3)
+-34 + j*(290)
+18 + j*(-125)
+-28 + j*(263)
+-121 + j*(12)
+53 + j*(-48)
+95 + j*(-21)
+-461 + j*(13)
+213 + j*(110)
+223 + j*(98)
+-137 + j*(-126)
+-167 + j*(30)
+-60 + j*(-438)
+86 + j*(-72)
+94 + j*(-175)
+-103 + j*(111)
+93 + j*(57)
+-177 + j*(-207)
+-134 + j*(130)
+194 + j*(159)
+25 + j*(36)
+25 + j*(-231)
+134 + j*(7)
+117 + j*(-178)
+-200 + j*(214)
+11 + j*(51)
+-337 + j*(-10)
+259 + j*(-6)
+-61 + j*(129)
+-28 + j*(39)
+-150 + j*(-81)
+67 + j*(1)
+-139 + j*(144)
+-64 + j*(-216)
+107 + j*(-387)
+-105 + j*(93)
+342 + j*(-31)
+-133 + j*(26)
+18 + j*(-242)
+-230 + j*(-160)
+-255 + j*(-103)
+288 + j*(70)
+45 + j*(18)
+91 + j*(-15)
+95 + j*(69)
+6 + j*(193)
+-107 + j*(-19)
+264 + j*(-83)
+42 + j*(-170)
+-48 + j*(-8)
+242 + j*(4)
+320 + j*(47)
+-75 + j*(-93)
+-161 + j*(45)
+-58 + j*(-127)
+112 + j*(66)
+193 + j*(224)
+-577 + j*(-352)
+-33 + j*(142)
+117 + j*(72)
+1 + j*(-115)
+-107 + j*(167)
+-45 + j*(187)
+29 + j*(-117)
+108 + j*(-128)
+103 + j*(226)
+-436 + j*(-210)
+-245 + j*(54)
+37 + j*(-62)
+1 + j*(-59)
+-233 + j*(82)
+-101 + j*(299)
+74 + j*(46)
+59 + j*(-214)
+-245 + j*(-179)
+153 + j*(-385)
+-86 + j*(215)
+-105 + j*(-47)
+-48 + j*(-337)
+51 + j*(153)
+118 + j*(159)
+-117 + j*(-160)
+131 + j*(19)
+245 + j*(74)
+-171 + j*(86)
+-31 + j*(-61)
+-144 + j*(179)
+35 + j*(-370)
+170 + j*(-76)
+280 + j*(-52)
+-89 + j*(-163)
+78 + j*(47)
+-345 + j*(-32)
+-236 + j*(-15)
+204 + j*(-49)
+-517 + j*(-52)
+-93 + j*(-81)
+264 + j*(18)
+-144 + j*(-25)
+212 + j*(121)
+26 + j*(-342)
+165 + j*(53)
+41 + j*(-14)
+-111 + j*(197)
+-179 + j*(233)
+121 + j*(255)
+208 + j*(-71)
+187 + j*(293)
+110 + j*(-317)
+118 + j*(225)
+250 + j*(187)
+4 + j*(-260)
+-48 + j*(72)
+-195 + j*(97)
+91 + j*(-210)
+113 + j*(-173)
+-32 + j*(2)
+-112 + j*(-9)
+373 + j*(-229)
+42 + j*(-64)
+-106 + j*(-13)
+-58 + j*(25)
+68 + j*(89)
+-93 + j*(-106)
+204 + j*(-76)
+-177 + j*(13)
+-84 + j*(-198)
+168 + j*(287)
+-218 + j*(220)
+-139 + j*(-203)
+346 + j*(156)
+-194 + j*(-30)
+134 + j*(-30)
+-124 + j*(147)
+-199 + j*(-285)
+168 + j*(-201)
+122 + j*(-271)
+103 + j*(-25)
+40 + j*(-42)
+-129 + j*(42)
+119 + j*(234)
+91 + j*(185)
+154 + j*(-153)
+114 + j*(396)
+103 + j*(156)
+-127 + j*(-274)
+122 + j*(-151)
+34 + j*(112)
+-236 + j*(-66)
+266 + j*(-33)
+-177 + j*(-86)
+-26 + j*(-129)
+52 + j*(164)
+-59 + j*(-304)
+-383 + j*(-279)
+146 + j*(136)
+419 + j*(40)
+-30 + j*(113)
+-105 + j*(142)
+213 + j*(-259)
+30 + j*(363)
+168 + j*(-375)
+-107 + j*(60)
+128 + j*(199)
+-71 + j*(113)
+-95 + j*(-124)
+-17 + j*(48)
+-57 + j*(65)
+-76 + j*(23)
+-274 + j*(-206)
+125 + j*(276)
+98 + j*(-57)
+-129 + j*(-179)
+-58 + j*(311)
+54 + j*(52)
+-351 + j*(226)
+-252 + j*(55)
+-142 + j*(-17)
+202 + j*(107)
+176 + j*(-477)
+-71 + j*(18)
+-174 + j*(125)
+144 + j*(-108)
+-10 + j*(-19)
+-28 + j*(112)
+-26 + j*(132)
+-236 + j*(-8)
+37 + j*(-214)
+111 + j*(216)
+260 + j*(70)
+-30 + j*(-69)
+-91 + j*(157)
+221 + j*(-96)
+-162 + j*(-126)
+-71 + j*(110)
+16 + j*(117)
+128 + j*(-4)
+69 + j*(35)
+-62 + j*(177)
+143 + j*(88)
+-124 + j*(-195)
+-118 + j*(-61)
+26 + j*(-187)
+-76 + j*(262)
+-21 + j*(-103)
+-164 + j*(-139)
+-73 + j*(-175)
+262 + j*(-58)
+44 + j*(58)
+78 + j*(-43)
+-245 + j*(336)
+-28 + j*(-38)
+-124 + j*(-168)
+-320 + j*(34)
+-175 + j*(-11)
+-190 + j*(-241)
+119 + j*(-78)
+-242 + j*(264)
+-91 + j*(234)
+-57 + j*(-42)
+-189 + j*(11)
+130 + j*(103)
+217 + j*(-100)
+170 + j*(-62)
+-327 + j*(82)
+-132 + j*(-118)
+19 + j*(1)
+15 + j*(-6)
+-479 + j*(69)
+38 + j*(68)
+1 + j*(-229)
+93 + j*(-98)
+54 + j*(-93)
+-23 + j*(-100)
+1 + j*(-197)
+-269 + j*(-126)
+177 + j*(23)
+-412 + j*(-282)
+-78 + j*(88)
+-214 + j*(225)
+-96 + j*(127)
+-40 + j*(181)
+276 + j*(175)
+-191 + j*(-257)
+163 + j*(-84)
+-82 + j*(92)
+171 + j*(132)
+213 + j*(-79)
+234 + j*(125)
+-62 + j*(-272)
+57 + j*(-56)
+62 + j*(-363)
+-136 + j*(64)
+40 + j*(33)
+-63 + j*(-95)
+-162 + j*(172)
+-141 + j*(-281)
+-13 + j*(40)
+248 + j*(-70)
+-104 + j*(-439)
+57 + j*(192)
+21 + j*(16)
+-385 + j*(-86)
+86 + j*(-322)
+-263 + j*(279)
+238 + j*(83)
+62 + j*(-112)
+-68 + j*(-26)
+30 + j*(182)
+6 + j*(-152)
+100 + j*(-80)
+91 + j*(1)
+-49 + j*(-240)
+88 + j*(19)
+74 + j*(98)
+87 + j*(234)
+5 + j*(-245)
+-310 + j*(57)
+-78 + j*(-243)
+-163 + j*(-32)
+114 + j*(-437)
+44 + j*(150)
+158 + j*(-68)
+327 + j*(-263)
+-3 + j*(-2)
+151 + j*(268)
+-274 + j*(-351)
+-291 + j*(-420)
+-409 + j*(204)
+-454 + j*(-66)
+66 + j*(26)
+-187 + j*(277)
+73 + j*(-33)
+118 + j*(123)
+136 + j*(-40)
+87 + j*(138)
+264 + j*(47)
+93 + j*(288)
+113 + j*(107)
+-233 + j*(95)
+19 + j*(170)
+-23 + j*(-486)
+30 + j*(-47)
+146 + j*(107)
+177 + j*(226)
+-82 + j*(-301)
+155 + j*(58)
+78 + j*(-10)
+390 + j*(233)
+-5 + j*(74)
+-33 + j*(25)
+-117 + j*(394)
+202 + j*(-98)
+18 + j*(83)
+47 + j*(-127)
+230 + j*(-156)
+255 + j*(112)
+-26 + j*(358)
+50 + j*(109)
+-56 + j*(-51)
+-78 + j*(-240)
+-190 + j*(42)
+119 + j*(98)
+-146 + j*(84)
+-37 + j*(-115)
+76 + j*(38)
+99 + j*(-181)
+31 + j*(-63)
+69 + j*(61)
+-100 + j*(62)
+-81 + j*(161)
+130 + j*(-101)
+134 + j*(-168)
+40 + j*(25)
+-57 + j*(-278)
+-58 + j*(244)
+-368 + j*(-64)
+214 + j*(367)
+43 + j*(104)
+347 + j*(-150)
+293 + j*(45)
+-139 + j*(-16)
+198 + j*(120)
+286 + j*(255)
+342 + j*(-254)
+70 + j*(-104)
+-275 + j*(-223)
+-37 + j*(-50)
+-337 + j*(-89)
+-74 + j*(-56)
+133 + j*(202)
+-61 + j*(255)
+-209 + j*(-103)
+-110 + j*(-83)
+130 + j*(244)
+-274 + j*(2)
+78 + j*(-186)
+56 + j*(163)
+-122 + j*(-139)
+90 + j*(-124)
+-6 + j*(-28)
+99 + j*(-203)
+-340 + j*(-146)
+90 + j*(-62)
+215 + j*(-257)
+42 + j*(-3)
+170 + j*(380)
+2 + j*(62)
+-43 + j*(-52)
+-331 + j*(12)
+-26 + j*(33)
+77 + j*(141)
+-184 + j*(-206)
+349 + j*(74)
+128 + j*(-83)
+-309 + j*(213)
+233 + j*(22)
+155 + j*(-16)
+-82 + j*(-190)
+-129 + j*(-1)
+131 + j*(-341)
+182 + j*(-120)
+211 + j*(81)
+47 + j*(-32)
+-79 + j*(233)
+-113 + j*(-443)
+89 + j*(170)
+218 + j*(-257)
+-78 + j*(74)
+-11 + j*(-57)
+-220 + j*(233)
+-165 + j*(62)
+19 + j*(44)
+-121 + j*(-240)
+-3 + j*(-156)
+272 + j*(11)
+-161 + j*(-361)
+-133 + j*(-153)
+-51 + j*(122)
+-30 + j*(56)
+-116 + j*(-74)
+90 + j*(-298)
+97 + j*(-151)
+126 + j*(-69)
+64 + j*(49)
+-18 + j*(-126)
+-45 + j*(-190)
+72 + j*(-124)
+42 + j*(-128)
+238 + j*(-228)
+18 + j*(-296)
+182 + j*(188)
+52 + j*(-131)
+-25 + j*(47)
+66 + j*(-49)
+327 + j*(-474)
+110 + j*(71)
+-76 + j*(-78)
+86 + j*(30)
+-158 + j*(221)
+-16 + j*(-371)
+-144 + j*(100)
+9 + j*(197)
+-65 + j*(-11)
+-218 + j*(-257)
+278 + j*(75)
+-103 + j*(40)
+42 + j*(-145)
+496 + j*(53)
+-161 + j*(-137)
+-82 + j*(-205)
+116 + j*(-37)
+-134 + j*(98)
+-26 + j*(392)
+221 + j*(-45)
+-209 + j*(-288)
+-261 + j*(96)
+199 + j*(-429)
+516 + j*(-110)
+18 + j*(112)
+106 + j*(-329)
+-83 + j*(-117)
+-190 + j*(36)
+177 + j*(252)
+13 + j*(15)
+0 + j*(-269)
+18 + j*(49)
+262 + j*(17)
+-161 + j*(154)
+71 + j*(-43)
+274 + j*(-88)
+-167 + j*(67)
+192 + j*(-173)
+-156 + j*(251)
+-127 + j*(31)
+53 + j*(112)
+-47 + j*(306)
+-409 + j*(-194)
+70 + j*(172)
+-108 + j*(-223)
+-54 + j*(6)
+215 + j*(283)
+281 + j*(-138)
+53 + j*(102)
+12 + j*(-93)
+293 + j*(48)
+-223 + j*(-163)
+37 + j*(127)
+-21 + j*(-30)
+122 + j*(139)
+-6 + j*(147)
+-168 + j*(-25)
+-1 + j*(63)
+203 + j*(-30)
+-184 + j*(-281)
+0 + j*(-66)
+245 + j*(80)
+-3 + j*(-154)
+-151 + j*(-327)
+-185 + j*(-123)
+105 + j*(-202)
+-218 + j*(190)
+-54 + j*(29)
+25 + j*(-47)
+-437 + j*(-132)
+-42 + j*(-11)
+-264 + j*(-191)
+-55 + j*(-18)
+277 + j*(-223)
+69 + j*(-213)
+-334 + j*(-90)
+185 + j*(-269)
+-95 + j*(-21)
+-281 + j*(240)
+-86 + j*(132)
+-134 + j*(-120)
+17 + j*(-402)
+-30 + j*(-4)
+124 + j*(-308)
+-21 + j*(-54)
+107 + j*(-12)
+86 + j*(-109)
+23 + j*(53)
+-42 + j*(-352)
+-68 + j*(-250)
+354 + j*(-155)
+34 + j*(-111)
+-156 + j*(228)
+127 + j*(-209)
+47 + j*(69)
+-118 + j*(298)
+33 + j*(-36)
+62 + j*(392)
+-269 + j*(-88)
+-366 + j*(-47)
+-127 + j*(-98)
+91 + j*(40)
+-138 + j*(-253)
+-57 + j*(181)
+186 + j*(-102)
+83 + j*(-89)
+-9 + j*(-419)
+109 + j*(265)
+124 + j*(316)
+12 + j*(-206)
+-10 + j*(153)
+-159 + j*(27)
+53 + j*(-252)
+-21 + j*(168)
+129 + j*(91)
+-205 + j*(-82)
+85 + j*(143)
+-11 + j*(17)
+71 + j*(-145)
+45 + j*(80)
+71 + j*(50)
+180 + j*(49)
+110 + j*(0)
+-60 + j*(233)
+24 + j*(-153)
+-16 + j*(137)
+269 + j*(187)
+-115 + j*(156)
+29 + j*(81)
+-232 + j*(-161)
+206 + j*(-56)
+-47 + j*(17)
+-18 + j*(-177)
+-100 + j*(126)
+-270 + j*(82)
+-180 + j*(42)
+238 + j*(366)
+69 + j*(236)
+182 + j*(-151)
+0 + j*(180)
+232 + j*(-28)
+72 + j*(299)
+87 + j*(84)
+35 + j*(-416)
+-200 + j*(-43)
+206 + j*(-60)
+-245 + j*(-146)
+89 + j*(95)
+-127 + j*(250)
+-342 + j*(-6)
+-5 + j*(342)
+-239 + j*(-119)
+169 + j*(-29)
+-375 + j*(98)
+81 + j*(-380)
+-65 + j*(4)
+-139 + j*(-205)
+69 + j*(-94)
+-81 + j*(-175)
+16 + j*(-124)
+-81 + j*(185)
+165 + j*(378)
+-140 + j*(337)
+42 + j*(91)
+-156 + j*(201)
+-127 + j*(-64)
+-35 + j*(-177)
+-238 + j*(-87)
+-241 + j*(-294)
+88 + j*(-289)
+-164 + j*(56)
+-141 + j*(-109)
+64 + j*(29)
+-239 + j*(-172)
+88 + j*(-416)
+-188 + j*(-76)
+-222 + j*(103)
+7 + j*(-53)
+218 + j*(-284)
+82 + j*(-288)
+111 + j*(40)
+-47 + j*(111)
+-57 + j*(176)
+20 + j*(-96)
+-25 + j*(284)
+-29 + j*(87)
+63 + j*(266)
+-67 + j*(-129)
+154 + j*(-69)
+141 + j*(78)
+38 + j*(-177)
+-46 + j*(-306)
+271 + j*(125)
+378 + j*(130)
+-303 + j*(-30)
+148 + j*(-64)
+-124 + j*(-332)
+-153 + j*(71)
+-49 + j*(18)
+-78 + j*(-183)
+-334 + j*(-199)
+-238 + j*(-58)
+-269 + j*(-38)
+253 + j*(-426)
+-166 + j*(197)
+197 + j*(-147)
+-33 + j*(-86)
+190 + j*(80)
+-111 + j*(-462)
+-76 + j*(-369)
+501 + j*(-119)
+192 + j*(-117)
+106 + j*(-60)
+148 + j*(-238)
+10 + j*(79)
+97 + j*(53)
+64 + j*(-66)
+-162 + j*(-535)
+60 + j*(83)
+-188 + j*(-98)
+32 + j*(15)
+-74 + j*(-52)
+-30 + j*(-102)
+61 + j*(300)
+-64 + j*(8)
+-245 + j*(105)
+114 + j*(-330)
+83 + j*(141)
+98 + j*(98)
+-74 + j*(-268)
+112 + j*(49)
+451 + j*(-61)
+-107 + j*(52)
+136 + j*(-39)
+-157 + j*(350)
+33 + j*(-122)
+258 + j*(173)
+334 + j*(45)
+-48 + j*(170)
+78 + j*(-82)
+59 + j*(-108)
+347 + j*(75)
+-314 + j*(86)
+-387 + j*(275)
+6 + j*(132)
+-204 + j*(294)
+124 + j*(98)
+-254 + j*(22)
+-89 + j*(-156)
+-392 + j*(-168)
+141 + j*(-159)
+201 + j*(-175)
+-28 + j*(5)
+132 + j*(116)
+4 + j*(-4)
+227 + j*(-108)
+-268 + j*(-85)
+115 + j*(-98)
+-57 + j*(139)
+200 + j*(-103)
+-65 + j*(-194)
+-146 + j*(-59)
+-314 + j*(45)
+146 + j*(-1)
+26 + j*(40)
+-290 + j*(-56)
+-260 + j*(-264)
+165 + j*(35)
+235 + j*(-228)
+149 + j*(-168)
+-25 + j*(-196)
+33 + j*(-211)
+-172 + j*(-173)
+-148 + j*(168)
+-281 + j*(62)
+-56 + j*(-12)
+179 + j*(-24)
+54 + j*(45)
+-128 + j*(-153)
+72 + j*(-62)
+-12 + j*(343)
+214 + j*(-173)
+-105 + j*(41)
+151 + j*(-11)
+-226 + j*(140)
+24 + j*(175)
+-57 + j*(12)
+-25 + j*(86)
+-269 + j*(27)
+175 + j*(13)
+238 + j*(9)
+107 + j*(62)
+15 + j*(-73)
+115 + j*(-37)
+80 + j*(-197)
+-50 + j*(118)
+-206 + j*(123)
+23 + j*(35)
+-257 + j*(-112)
+-66 + j*(183)
+-155 + j*(-4)
+-161 + j*(135)
+132 + j*(-220)
+-22 + j*(-358)
+197 + j*(277)
+339 + j*(8)
+-232 + j*(-293)
+134 + j*(-162)
+-253 + j*(179)
+-255 + j*(-197)
+-110 + j*(-202)
+-216 + j*(-243)
+-247 + j*(103)
+-16 + j*(-33)
+107 + j*(-113)
+-93 + j*(-20)
+-52 + j*(299)
+-43 + j*(-234)
+-131 + j*(-33)
+135 + j*(207)
+88 + j*(-26)
+125 + j*(206)
+164 + j*(5)
+78 + j*(-178)
+-151 + j*(-197)
+190 + j*(-16)
+151 + j*(88)
+-52 + j*(255)
+19 + j*(-182)
+144 + j*(-44)
+-16 + j*(-112)
+145 + j*(81)
+-35 + j*(-1)
+-107 + j*(-6)
+148 + j*(351)
+-156 + j*(421)
+-252 + j*(-71)
+373 + j*(-182)
+228 + j*(51)
+-71 + j*(137)
+83 + j*(201)
+54 + j*(-112)
+26 + j*(-145)
+-55 + j*(4)
+161 + j*(330)
+-30 + j*(-250)
+-421 + j*(-114)
+30 + j*(-16)
+69 + j*(106)
+-43 + j*(43)
+-155 + j*(178)
+20 + j*(-208)
+-395 + j*(226)
+-147 + j*(129)
+11 + j*(-42)
+-331 + j*(91)
+81 + j*(56)
+-460 + j*(-49)
+-269 + j*(1)
+19 + j*(216)
+-124 + j*(30)
+16 + j*(190)
+-293 + j*(-240)
+-170 + j*(149)
+-101 + j*(95)
+130 + j*(-82)
+-33 + j*(116)
+28 + j*(21)
+83 + j*(-83)
+-211 + j*(257)
+-6 + j*(133)
+32 + j*(-163)
+44 + j*(-69)
+36 + j*(95)
+-80 + j*(24)
+-17 + j*(-354)
+115 + j*(130)
+28 + j*(-41)
+287 + j*(195)
+433 + j*(-71)
+-191 + j*(195)
+-75 + j*(-296)
+-195 + j*(170)
+291 + j*(-35)
+-164 + j*(128)
+271 + j*(50)
+132 + j*(-71)
+202 + j*(26)
+12 + j*(-90)
+-260 + j*(25)
+165 + j*(29)
+-89 + j*(250)
+-25 + j*(-21)
+-33 + j*(-4)
+284 + j*(108)
+-162 + j*(-106)
+76 + j*(-163)
+85 + j*(70)
+-106 + j*(61)
+-273 + j*(32)
+24 + j*(-115)
+268 + j*(-297)
+-211 + j*(58)
+243 + j*(16)
+105 + j*(-155)
+-36 + j*(-225)
+64 + j*(80)
+-42 + j*(31)
+115 + j*(276)
+-332 + j*(-232)
+111 + j*(7)
+-216 + j*(-134)
+-154 + j*(-279)
+-182 + j*(76)
+121 + j*(-49)
+-88 + j*(-52)
+167 + j*(-93)
+-135 + j*(-245)
+-210 + j*(405)
+-69 + j*(212)
+-48 + j*(-240)
+385 + j*(306)
+31 + j*(108)
+-7 + j*(-222)
+30 + j*(-53)
+-194 + j*(-183)
+-21 + j*(57)
+-330 + j*(171)
+-42 + j*(-16)
+199 + j*(221)
+-12 + j*(25)
+-70 + j*(458)
+-371 + j*(-155)
+-78 + j*(100)
+49 + j*(-85)
+110 + j*(-243)
+-23 + j*(40)
+12 + j*(-71)
+-82 + j*(-624)
+-156 + j*(53)
+-153 + j*(264)
+2 + j*(-132)
+63 + j*(86)
+133 + j*(40)
+129 + j*(221)
+192 + j*(-300)
+-122 + j*(202)
+76 + j*(-155)
+94 + j*(28)
+-17 + j*(281)
+-382 + j*(105)
+310 + j*(158)
+20 + j*(122)
+211 + j*(-99)
+217 + j*(-166)
+-1 + j*(-130)
+32 + j*(-39)
+-64 + j*(-286)
+365 + j*(-83)
+216 + j*(89)
+167 + j*(-338)
+324 + j*(67)
+223 + j*(123)
+44 + j*(-21)
+66 + j*(79)
+-109 + j*(105)
+59 + j*(-62)
+211 + j*(35)
+-165 + j*(-54)
+142 + j*(123)
+-187 + j*(-115)
+76 + j*(100)
+-290 + j*(-316)
+-78 + j*(162)
+156 + j*(49)
+-69 + j*(-29)
+202 + j*(151)
+37 + j*(11)
+-40 + j*(-138)
+31 + j*(10)
+-28 + j*(-112)
+-195 + j*(175)
+-178 + j*(187)
+51 + j*(-35)
+112 + j*(-6)
+-207 + j*(-35)
+-70 + j*(19)
+-129 + j*(-331)
+99 + j*(-210)
+275 + j*(123)
+-262 + j*(250)
+-9 + j*(129)
+156 + j*(223)
+59 + j*(42)
+-272 + j*(-320)
+-107 + j*(-27)
+-274 + j*(317)
+-271 + j*(238)
+74 + j*(-22)
+181 + j*(-249)
+286 + j*(86)
+57 + j*(268)
+-69 + j*(-50)
+22 + j*(233)
+137 + j*(168)
+156 + j*(88)
+250 + j*(165)
+175 + j*(-258)
+-250 + j*(-158)
+-57 + j*(251)
+-192 + j*(98)
+88 + j*(208)
+-175 + j*(130)
+40 + j*(-162)
+-237 + j*(-4)
+272 + j*(8)
+-54 + j*(163)
+105 + j*(72)
+216 + j*(-69)
+-257 + j*(139)
+-250 + j*(53)
+30 + j*(-439)
+78 + j*(-208)
+182 + j*(177)
+262 + j*(83)
+318 + j*(-4)
+-6 + j*(214)
+-37 + j*(-172)
+-144 + j*(-33)
+-278 + j*(42)
+195 + j*(29)
+158 + j*(76)
+-30 + j*(-395)
+189 + j*(-122)
+-165 + j*(-22)
+-307 + j*(240)
+18 + j*(-73)
+11 + j*(422)
+-108 + j*(-59)
+366 + j*(13)
+-81 + j*(-116)
+-286 + j*(244)
+99 + j*(349)
+-102 + j*(-100)
+-247 + j*(-32)
+2 + j*(175)
+-40 + j*(337)
+284 + j*(124)
+107 + j*(-8)
+126 + j*(107)
+-348 + j*(-184)
+206 + j*(-15)
+242 + j*(-8)
+248 + j*(9)
+83 + j*(65)
+-153 + j*(53)
+-117 + j*(169)
+-359 + j*(41)
+-34 + j*(3)
+-264 + j*(-237)
+42 + j*(-223)
+218 + j*(116)
+-92 + j*(-192)
+-259 + j*(-144)
+304 + j*(78)
+-10 + j*(337)
+8 + j*(122)
+-57 + j*(28)
+-35 + j*(37)
+-46 + j*(13)
+55 + j*(261)
+-244 + j*(-163)
+42 + j*(-45)
+-339 + j*(-79)
+82 + j*(412)
+7 + j*(150)
+132 + j*(199)
+137 + j*(-323)
+269 + j*(-166)
+-7 + j*(54)
+-243 + j*(232)
+-180 + j*(-30)
+-78 + j*(-49)
+-113 + j*(4)
+30 + j*(-32)
+95 + j*(64)
+-1 + j*(-146)
+20 + j*(-11)
+91 + j*(194)
+51 + j*(-269)
+-250 + j*(-105)
+-141 + j*(-33)
+-114 + j*(310)
+177 + j*(211)
+-138 + j*(417)
+-13 + j*(258)
+260 + j*(-113)
+47 + j*(169)
+11 + j*(-429)
+-204 + j*(-11)
+-370 + j*(33)
+401 + j*(-77)
+74 + j*(186)
+322 + j*(146)
+57 + j*(-364)
+18 + j*(-114)
+171 + j*(-362)
+-86 + j*(66)
+11 + j*(-148)
+-72 + j*(190)
+185 + j*(-168)
+-73 + j*(-161)
+182 + j*(18)
+-256 + j*(-304)
+-103 + j*(21)
+-41 + j*(358)
+-136 + j*(132)
+-18 + j*(-144)
+267 + j*(102)
+76 + j*(146)
+-5 + j*(-34)
+-105 + j*(29)
+-261 + j*(-179)
+-86 + j*(63)
+106 + j*(280)
+-15 + j*(-155)
+144 + j*(-52)
+-55 + j*(-344)
+156 + j*(-20)
+161 + j*(-242)
+163 + j*(-223)
+-354 + j*(64)
+-5 + j*(-21)
+20 + j*(-246)
+210 + j*(-316)
+396 + j*(-194)
+16 + j*(225)
+-228 + j*(165)
+46 + j*(21)
+-43 + j*(-298)
+-129 + j*(-132)
+-201 + j*(77)
+-32 + j*(21)
+-37 + j*(107)
+-16 + j*(94)
+18 + j*(-93)
+207 + j*(-175)
+88 + j*(226)
+216 + j*(-142)
+-170 + j*(102)
+21 + j*(-291)
+119 + j*(-173)
+-236 + j*(-33)
+49 + j*(302)
+-151 + j*(136)
+-284 + j*(-181)
+286 + j*(39)
+-70 + j*(160)
+-56 + j*(122)
+5 + j*(320)
+-34 + j*(-181)
+-272 + j*(83)
+33 + j*(-203)
+-248 + j*(-199)
+146 + j*(255)
+-190 + j*(28)
+-60 + j*(-340)
+13 + j*(-252)
+134 + j*(269)
+130 + j*(-115)
+137 + j*(-25)
+292 + j*(141)
+171 + j*(82)
+14 + j*(49)
+11 + j*(23)
+-257 + j*(124)
+-130 + j*(-160)
+-247 + j*(164)
+-13 + j*(168)
+-62 + j*(-258)
+-11 + j*(-66)
+291 + j*(274)
+42 + j*(224)
+-135 + j*(266)
+-109 + j*(47)
+-37 + j*(-110)
+84 + j*(-120)
+-73 + j*(322)
+-52 + j*(33)
+-139 + j*(24)
+42 + j*(-132)
+41 + j*(259)
+-45 + j*(165)
+248 + j*(-201)
+-334 + j*(-131)
+-92 + j*(154)
+202 + j*(7)
+88 + j*(154)
+-100 + j*(42)
+-251 + j*(9)
+129 + j*(-116)
+-187 + j*(82)
+134 + j*(-412)
+-271 + j*(-181)
+-137 + j*(-20)
+-57 + j*(79)
+136 + j*(95)
+81 + j*(157)
+-100 + j*(107)
+-235 + j*(233)
+117 + j*(-72)
+388 + j*(-156)
+-147 + j*(-264)
+0 + j*(-124)
+-18 + j*(156)
+-119 + j*(-114)
+-334 + j*(144)
+206 + j*(303)
+181 + j*(84)
+-198 + j*(-121)
+-146 + j*(91)
+-49 + j*(-77)
+313 + j*(148)
+-241 + j*(57)
+33 + j*(11)
+161 + j*(-20)
+-76 + j*(158)
+51 + j*(28)
+-106 + j*(67)
+-6 + j*(-136)
+-172 + j*(-97)
+77 + j*(112)
+0 + j*(59)
+34 + j*(-29)
+276 + j*(-67)
+-209 + j*(-214)
+21 + j*(-59)
+19 + j*(23)
+35 + j*(-177)
+-221 + j*(242)
+49 + j*(-40)
+291 + j*(248)
+220 + j*(57)
+-193 + j*(65)
+129 + j*(101)
+-36 + j*(-160)
+-431 + j*(-53)
+-78 + j*(-492)
+147 + j*(-326)
+-260 + j*(-37)
+322 + j*(-134)
+-202 + j*(-203)
+58 + j*(40)
+45 + j*(-83)
+-66 + j*(-205)
+-130 + j*(-68)
+122 + j*(47)
+124 + j*(-115)
+-37 + j*(281)
+-276 + j*(-77)
+-188 + j*(379)
+195 + j*(-42)
+-4 + j*(110)
+-288 + j*(-63)
+1 + j*(-96)
+69 + j*(-42)
+100 + j*(173)
+-129 + j*(246)
+311 + j*(-30)
+-71 + j*(-151)
+-368 + j*(-41)
+-347 + j*(190)
+-173 + j*(-92)
+-170 + j*(224)
+-40 + j*(-163)
+-103 + j*(90)
+373 + j*(301)
+-206 + j*(55)
+-8 + j*(-184)
+30 + j*(-18)
+-184 + j*(15)
+-132 + j*(103)
+69 + j*(88)
+-115 + j*(-293)
+-318 + j*(124)
+250 + j*(284)
+33 + j*(-127)
+193 + j*(317)
+-72 + j*(242)
+-32 + j*(122)
+-214 + j*(277)
+78 + j*(-18)
+-173 + j*(-41)
+-135 + j*(-180)
+-31 + j*(-104)
+-22 + j*(278)
+52 + j*(-16)
+204 + j*(-62)
+-30 + j*(-24)
+171 + j*(-48)
+-54 + j*(-339)
+-84 + j*(91)
+-95 + j*(-288)
+40 + j*(-330)
+-115 + j*(16)
+-451 + j*(-48)
+119 + j*(99)
+-36 + j*(135)
+200 + j*(144)
+127 + j*(-43)
+252 + j*(91)
+105 + j*(218)
+29 + j*(176)
+139 + j*(-190)
+-108 + j*(-139)
+144 + j*(-76)
+120 + j*(214)
+47 + j*(228)
+-42 + j*(-4)
+279 + j*(3)
+-140 + j*(-100)
+-16 + j*(49)
+-148 + j*(-21)
+102 + j*(-150)
+-48 + j*(-264)
+-204 + j*(-53)
+207 + j*(81)
+-272 + j*(-115)
+-28 + j*(-252)
+-61 + j*(-4)
+-114 + j*(116)
+64 + j*(182)
+131 + j*(101)
+117 + j*(-1)
+148 + j*(-296)
+99 + j*(248)
+112 + j*(-18)
+198 + j*(306)
+-63 + j*(13)
+-226 + j*(-149)
+93 + j*(121)
+-233 + j*(140)
+-156 + j*(-279)
+-182 + j*(-107)
+-117 + j*(-240)
+-209 + j*(36)
+32 + j*(-31)
+257 + j*(-126)
+-320 + j*(94)
+25 + j*(-454)
+-35 + j*(81)
+-132 + j*(170)
+-161 + j*(230)
+365 + j*(304)
+-53 + j*(-175)
+101 + j*(165)
+242 + j*(301)
+113 + j*(190)
+164 + j*(-160)
+25 + j*(-512)
+343 + j*(31)
+-228 + j*(4)
+185 + j*(-76)
+-13 + j*(272)
+69 + j*(6)
+45 + j*(-23)
+3 + j*(135)
+-240 + j*(-105)
+124 + j*(143)
+-40 + j*(-218)
+-35 + j*(-109)
+-23 + j*(-3)
+-96 + j*(-139)
+93 + j*(240)
+-193 + j*(-181)
+-45 + j*(80)
+165 + j*(-144)
+-176 + j*(-94)
+-85 + j*(-242)
+-100 + j*(-11)
+-73 + j*(181)
+-6 + j*(-151)
+98 + j*(109)
+-223 + j*(101)
+-279 + j*(58)
+81 + j*(86)
+14 + j*(102)
+56 + j*(-215)
+-228 + j*(-92)
+-165 + j*(-62)
+262 + j*(52)
+-40 + j*(-160)
+-183 + j*(-139)
+226 + j*(-66)
+-107 + j*(184)
+115 + j*(-64)
+-129 + j*(139)
+90 + j*(-296)
+-88 + j*(-1)
+-81 + j*(-83)
+78 + j*(-35)
+68 + j*(-37)
+-86 + j*(-149)
+-1 + j*(84)
+-124 + j*(-24)
+-319 + j*(-315)
+-105 + j*(-221)
+-185 + j*(77)
+-211 + j*(28)
+-58 + j*(-169)
+59 + j*(-424)
+97 + j*(222)
+-82 + j*(216)
+170 + j*(-109)
+185 + j*(6)
+-328 + j*(202)
+-128 + j*(-71)
+-34 + j*(-259)
+23 + j*(409)
+-218 + j*(55)
+55 + j*(-269)
+-49 + j*(368)
+62 + j*(131)
+15 + j*(29)
+79 + j*(349)
+9 + j*(-190)
+-188 + j*(232)
+194 + j*(153)
+74 + j*(291)
+-152 + j*(119)
+148 + j*(-206)
+-110 + j*(-170)
+194 + j*(-139)
+113 + j*(-100)
+-209 + j*(-302)
+2 + j*(64)
+-128 + j*(-59)
+13 + j*(-122)
+7 + j*(-200)
+25 + j*(-101)
+104 + j*(-127)
+168 + j*(-125)
+93 + j*(-216)
+-91 + j*(-49)
+-179 + j*(-68)
+-95 + j*(117)
+267 + j*(-81)
+-48 + j*(-41)
+-122 + j*(-340)
+-91 + j*(216)
+104 + j*(142)
+-69 + j*(-206)
+-82 + j*(-101)
+-93 + j*(136)
+6 + j*(-57)
+-51 + j*(-202)
+53 + j*(-167)
+-127 + j*(-216)
+-292 + j*(-243)
+170 + j*(-228)
+-241 + j*(-90)
+-132 + j*(-216)
+-81 + j*(-295)
+-40 + j*(96)
+-180 + j*(-167)
+-404 + j*(42)
+-64 + j*(-373)
+-190 + j*(100)
+75 + j*(-219)
+430 + j*(219)
+-23 + j*(-146)
+-93 + j*(25)
+18 + j*(257)
+-28 + j*(303)
+-209 + j*(261)
+748 + j*(271)
+177 + j*(154)
+352 + j*(577)
+-202 + j*(-223)
+-177 + j*(11)
+327 + j*(256)
+346 + j*(-228)
+-372 + j*(398)
+354 + j*(666)
+399 + j*(-1)
+406 + j*(-42)
+105 + j*(-37)
+-281 + j*(523)
+-76 + j*(-529)
+675 + j*(81)
+-245 + j*(418)
+333 + j*(275)
+-395 + j*(136)
+-63 + j*(338)
+-166 + j*(-158)
+-139 + j*(-445)
+-238 + j*(407)
+-342 + j*(-115)
+-323 + j*(101)
+-547 + j*(289)
+329 + j*(117)
+-255 + j*(-172)
+375 + j*(-109)
+-52 + j*(-234)
+643 + j*(-313)
+-18 + j*(258)
+11 + j*(168)
+-12 + j*(15)
+351 + j*(-247)
+-199 + j*(334)
+387 + j*(21)
+-126 + j*(63)
+-375 + j*(263)
+23 + j*(206)
+31 + j*(261)
+-211 + j*(334)
+633 + j*(210)
+-194 + j*(-467)
+335 + j*(-243)
+368 + j*(-135)
+542 + j*(-241)
+-190 + j*(-300)
+-18 + j*(-262)
+279 + j*(-42)
+-548 + j*(-407)
+107 + j*(-480)
+318 + j*(274)
+-220 + j*(-252)
+142 + j*(66)
+-156 + j*(290)
+-474 + j*(320)
+602 + j*(255)
+-226 + j*(187)
+-403 + j*(-288)
+-443 + j*(-303)
+159 + j*(-513)
+-480 + j*(-58)
+263 + j*(-127)
+-346 + j*(537)
+187 + j*(-350)
+-146 + j*(336)
+-175 + j*(-127)
+250 + j*(532)
+317 + j*(173)
+-38 + j*(-279)
+339 + j*(-542)
+168 + j*(-103)
+606 + j*(-121)
+128 + j*(-260)
+132 + j*(-116)
+487 + j*(497)
+-177 + j*(-310)
+-281 + j*(-375)
+-33 + j*(-250)
+-459 + j*(37)
+13 + j*(-3)
+206 + j*(-288)
+167 + j*(-218)
+225 + j*(163)
+-460 + j*(-350)
+-422 + j*(-256)
+-273 + j*(-288)
+145 + j*(-539)
+264 + j*(675)
+-177 + j*(-416)
+-278 + j*(92)
+256 + j*(93)
+-11 + j*(122)
+119 + j*(205)
+264 + j*(-350)
+267 + j*(320)
+628 + j*(115)
+-300 + j*(206)
+-256 + j*(127)
+46 + j*(644)
+-257 + j*(174)
+397 + j*(-358)
+437 + j*(-221)
+-404 + j*(-392)
+-453 + j*(-234)
+211 + j*(-168)
+-473 + j*(-173)
+378 + j*(297)
+206 + j*(280)
+-203 + j*(-341)
+-251 + j*(-229)
+173 + j*(-60)
+-311 + j*(-156)
+1 + j*(134)
+-24 + j*(-322)
+-291 + j*(-203)
+-424 + j*(127)
+134 + j*(-62)
+-295 + j*(-141)
+-380 + j*(-233)
+-83 + j*(320)
+-169 + j*(171)
+-419 + j*(263)
+219 + j*(-126)
+-227 + j*(221)
+-533 + j*(-33)
+139 + j*(162)
+-259 + j*(81)
+-77 + j*(-316)
+-334 + j*(368)
+78 + j*(-279)
+-127 + j*(-14)
+186 + j*(-54)
+-317 + j*(-562)
+127 + j*(424)
+23 + j*(241)
+-170 + j*(-218)
+533 + j*(511)
+-530 + j*(-110)
+-246 + j*(576)
+151 + j*(-443)
+38 + j*(358)
+-462 + j*(-40)
+-293 + j*(386)
+403 + j*(404)
+465 + j*(126)
+-39 + j*(220)
+546 + j*(-482)
+187 + j*(267)
+-166 + j*(-417)
+293 + j*(-158)
+190 + j*(-276)
+291 + j*(-456)
+-256 + j*(177)
+236 + j*(83)
+-21 + j*(566)
+-309 + j*(-536)
+-276 + j*(274)
+291 + j*(30)
+316 + j*(480)
+471 + j*(114)
+-284 + j*(197)
+344 + j*(-291)
+-263 + j*(-347)
+81 + j*(33)
+-381 + j*(-364)
+49 + j*(-97)
+300 + j*(516)
+303 + j*(-48)
+192 + j*(499)
+115 + j*(-372)
+387 + j*(-398)
+264 + j*(2)
+-104 + j*(286)
+643 + j*(-144)
+327 + j*(447)
+33 + j*(-457)
+-221 + j*(-59)
+-251 + j*(37)
+300 + j*(4)
+245 + j*(77)
+-199 + j*(-344)
+-103 + j*(16)
+-275 + j*(596)
+226 + j*(-307)
+-321 + j*(379)
+151 + j*(237)
+403 + j*(-258)
+292 + j*(-358)
+728 + j*(378)
+204 + j*(601)
+-392 + j*(-49)
+205 + j*(56)
+-96 + j*(143)
+-361 + j*(270)
+132 + j*(159)
+342 + j*(156)
+171 + j*(262)
+252 + j*(55)
+205 + j*(-261)
+272 + j*(-192)
+225 + j*(139)
+-375 + j*(241)
+-179 + j*(325)
+-121 + j*(-150)
+178 + j*(-279)
+532 + j*(-95)
+-397 + j*(361)
+149 + j*(-227)
+-253 + j*(-415)
+-622 + j*(-208)
+-309 + j*(369)
+305 + j*(361)
+224 + j*(394)
+385 + j*(617)
+-238 + j*(-120)
+524 + j*(-277)
+-209 + j*(-190)
+387 + j*(658)
+405 + j*(211)
+45 + j*(333)
+-313 + j*(137)
+-313 + j*(-31)
+492 + j*(320)
+138 + j*(-307)
+-240 + j*(364)
+316 + j*(204)
+177 + j*(-408)
+204 + j*(-63)
+358 + j*(-165)
+-47 + j*(-238)
+425 + j*(361)
+596 + j*(-56)
+409 + j*(-180)
+-61 + j*(-536)
+-389 + j*(262)
+-337 + j*(-270)
+-185 + j*(-47)
+-414 + j*(-222)
+394 + j*(200)
+102 + j*(201)
+-581 + j*(-57)
+312 + j*(118)
+284 + j*(421)
+171 + j*(242)
+385 + j*(-218)
+119 + j*(166)
+408 + j*(484)
+215 + j*(188)
+269 + j*(434)
+8 + j*(337)
+-308 + j*(514)
+366 + j*(-49)
+167 + j*(-166)
+638 + j*(185)
+344 + j*(-203)
+-331 + j*(174)
+315 + j*(-16)
+264 + j*(-185)
+-389 + j*(382)
+-76 + j*(-346)
+284 + j*(221)
+216 + j*(309)
+-296 + j*(-339)
+-290 + j*(89)
+341 + j*(400)
+126 + j*(-108)
+267 + j*(288)
+-211 + j*(177)
+355 + j*(-21)
+522 + j*(255)
+268 + j*(-234)
+436 + j*(392)
+703 + j*(57)
+-435 + j*(-436)
+284 + j*(-130)
+-115 + j*(-286)
+-614 + j*(-284)
+-152 + j*(-368)
+219 + j*(-30)
+313 + j*(-261)
+-134 + j*(-260)
+-55 + j*(-498)
+-254 + j*(291)
+196 + j*(-122)
+318 + j*(334)
+-264 + j*(366)
+13 + j*(-230)
+314 + j*(609)
+241 + j*(-139)
+-88 + j*(347)
+323 + j*(-305)
+-443 + j*(-257)
+-231 + j*(300)
+-424 + j*(479)
+320 + j*(543)
+23 + j*(-188)
+-392 + j*(22)
+-497 + j*(93)
+-218 + j*(-392)
+-286 + j*(-441)
+-263 + j*(-591)
+-153 + j*(-87)
+-125 + j*(204)
+-385 + j*(54)
+92 + j*(269)
+-45 + j*(46)
+-571 + j*(-607)
+-372 + j*(122)
+-384 + j*(19)
+193 + j*(258)
+-22 + j*(377)
+-268 + j*(331)
+-184 + j*(425)
+554 + j*(-243)
+-146 + j*(490)
+-168 + j*(-530)
+180 + j*(38)
+-352 + j*(25)
+-334 + j*(57)
+-215 + j*(188)
+57 + j*(89)
+196 + j*(182)
+397 + j*(491)
+-361 + j*(-99)
+214 + j*(161)
+-84 + j*(346)
+112 + j*(364)
+-244 + j*(346)
+-320 + j*(79)
+406 + j*(93)
+-196 + j*(-371)
+158 + j*(-298)
+82 + j*(189)
+-342 + j*(-235)
+202 + j*(-280)
+-194 + j*(-349)
+-197 + j*(-312)
+-291 + j*(-99)
+-171 + j*(283)
+87 + j*(-41)
+-266 + j*(92)
+595 + j*(573)
+-362 + j*(-139)
+154 + j*(-235)
+127 + j*(-603)
+191 + j*(663)
+387 + j*(-70)
+275 + j*(505)
+161 + j*(-393)
+411 + j*(-243)
+-258 + j*(366)
+-273 + j*(35)
+-436 + j*(-470)
+472 + j*(62)
+-401 + j*(75)
+99 + j*(-165)
+180 + j*(421)
+270 + j*(-199)
+-52 + j*(-218)
+-260 + j*(-283)
+-527 + j*(277)
+-286 + j*(456)
+-444 + j*(97)
+-276 + j*(309)
+132 + j*(-304)
+-231 + j*(-378)
+-245 + j*(153)
+406 + j*(305)
+-338 + j*(229)
+163 + j*(180)
+-281 + j*(290)
+477 + j*(-118)
+-377 + j*(457)
+169 + j*(-161)
+-347 + j*(-248)
+291 + j*(-45)
+-157 + j*(60)
+124 + j*(227)
+-281 + j*(-433)
+513 + j*(-282)
+333 + j*(235)
+299 + j*(-273)
+322 + j*(211)
+391 + j*(402)
+198 + j*(-60)
+-58 + j*(-472)
+559 + j*(125)
+130 + j*(334)
+-93 + j*(245)
+471 + j*(-211)
+93 + j*(276)
+36 + j*(-378)
+780 + j*(281)
+-291 + j*(301)
+286 + j*(334)
+227 + j*(-363)
+351 + j*(163)
+194 + j*(98)
+-512 + j*(317)
+-47 + j*(197)
+-325 + j*(393)
+122 + j*(9)
+-264 + j*(-231)
+339 + j*(141)
+-274 + j*(-426)
+330 + j*(-318)
+625 + j*(-276)
+-372 + j*(406)
+-253 + j*(-171)
+-314 + j*(-271)
+159 + j*(161)
+264 + j*(-505)
+-280 + j*(563)
+326 + j*(3)
+235 + j*(78)
+66 + j*(-384)
+368 + j*(156)
+-227 + j*(-17)
+-409 + j*(-381)
+-252 + j*(-306)
+108 + j*(218)
+-433 + j*(-35)
+16 + j*(23)
+648 + j*(-353)
+296 + j*(47)
+-291 + j*(360)
+408 + j*(-459)
+530 + j*(156)
+175 + j*(262)
+8 + j*(-363)
+57 + j*(221)
+142 + j*(161)
+-162 + j*(72)
+185 + j*(-160)
+280 + j*(-128)
+-272 + j*(-232)
+31 + j*(-88)
+-626 + j*(-132)
+122 + j*(-325)
+-274 + j*(126)
+-312 + j*(206)
+231 + j*(37)
+-261 + j*(-124)
+86 + j*(450)
+-328 + j*(-586)
+-175 + j*(-283)
+25 + j*(-170)
+340 + j*(372)
+385 + j*(181)
+354 + j*(-480)
+-204 + j*(30)
+-368 + j*(273)
+-315 + j*(204)
+-453 + j*(269)
+-433 + j*(173)
+532 + j*(258)
+351 + j*(-124)
+-26 + j*(-1)
+208 + j*(83)
+84 + j*(141)
+-620 + j*(-32)
+-229 + j*(34)
+-146 + j*(-315)
+-143 + j*(-223)
+-135 + j*(375)
+421 + j*(345)
+498 + j*(-307)
+425 + j*(-670)
+315 + j*(613)
+-361 + j*(253)
+470 + j*(-390)
+-8 + j*(132)
+-173 + j*(74)
+-375 + j*(317)
+278 + j*(-225)
+-247 + j*(156)
+-371 + j*(-346)
+-366 + j*(-146)
+417 + j*(-374)
+27 + j*(-231)
+462 + j*(311)
+-147 + j*(385)
+433 + j*(-363)
+-347 + j*(-521)
+-345 + j*(206)
+-503 + j*(473)
+238 + j*(-395)
+159 + j*(-239)
+-163 + j*(189)
+-468 + j*(-154)
+-351 + j*(-30)
+-271 + j*(491)
+277 + j*(94)
+-4 + j*(-162)
+331 + j*(-389)
+-246 + j*(496)
+165 + j*(330)
+453 + j*(257)
+-64 + j*(-125)
+-544 + j*(-247)
+135 + j*(-176)
+-383 + j*(-524)
+-16 + j*(693)
+-104 + j*(189)
+139 + j*(110)
+525 + j*(236)
+172 + j*(-342)
+313 + j*(223)
+307 + j*(-435)
+-525 + j*(-231)
+317 + j*(-317)
+-525 + j*(-696)
+245 + j*(-131)
+-568 + j*(-351)
+71 + j*(-274)
+-57 + j*(95)
+-313 + j*(-417)
+250 + j*(-74)
+338 + j*(-238)
+270 + j*(-151)
+-166 + j*(437)
+-414 + j*(460)
+-285 + j*(304)
+-274 + j*(511)
+408 + j*(-422)
+25 + j*(-37)
+-370 + j*(107)
+367 + j*(146)
+-135 + j*(-324)
+-329 + j*(180)
+163 + j*(-82)
+-568 + j*(185)
+-496 + j*(-288)
+-416 + j*(-366)
+37 + j*(-95)
+70 + j*(-424)
+88 + j*(38)
+-277 + j*(87)
+-44 + j*(404)
+-184 + j*(-651)
+-304 + j*(-487)
+-301 + j*(-136)
+-36 + j*(-501)
+416 + j*(104)
+130 + j*(-443)
+127 + j*(-177)
+387 + j*(-144)
+-186 + j*(6)
+-333 + j*(-57)
+-101 + j*(-190)
+450 + j*(161)
+85 + j*(-147)
+442 + j*(-466)
+-52 + j*(-173)
+45 + j*(13)
+289 + j*(96)
+148 + j*(461)
+-49 + j*(330)
+-6 + j*(-279)
+-44 + j*(152)
+279 + j*(-176)
+404 + j*(178)
+239 + j*(297)
+-267 + j*(449)
+-371 + j*(-45)
+-206 + j*(-267)
+144 + j*(-57)
+-352 + j*(199)
+249 + j*(472)
+-87 + j*(136)
+-147 + j*(-480)
+442 + j*(397)
+-30 + j*(129)
+-322 + j*(417)
+818 + j*(11)
+-14 + j*(338)
+-257 + j*(-72)
+352 + j*(-235)
+-411 + j*(82)
+348 + j*(-66)
+50 + j*(257)
+-315 + j*(103)
+-394 + j*(-30)
+-274 + j*(336)
+-436 + j*(-178)
+-147 + j*(-202)
+173 + j*(264)
+-167 + j*(-347)
+-430 + j*(-67)
+229 + j*(-447)
+-255 + j*(771)
+29 + j*(-579)
+412 + j*(208)
+385 + j*(-573)
+-523 + j*(-310)
+-513 + j*(-223)
+148 + j*(-237)
+-70 + j*(127)
+-346 + j*(12)
+-245 + j*(-208)
+-146 + j*(204)
+-216 + j*(23)
+4 + j*(87)
+-163 + j*(274)
+-146 + j*(-27)
+-74 + j*(250)
+-97 + j*(69)
+18 + j*(85)
+-33 + j*(-192)
+-84 + j*(-299)
+15 + j*(32)
+182 + j*(-194)
+30 + j*(-209)
+-151 + j*(-126)
+315 + j*(-103)
+-146 + j*(-21)
+79 + j*(168)
+535 + j*(44)
+169 + j*(-331)
+-139 + j*(229)
+-192 + j*(55)
+-84 + j*(-47)
+221 + j*(78)
+-83 + j*(-228)
+86 + j*(-13)
+-165 + j*(58)
+-315 + j*(72)
+-57 + j*(-23)
+16 + j*(-209)
+-50 + j*(-103)
+-206 + j*(-19)
+36 + j*(-36)
+-78 + j*(-187)
+-224 + j*(173)
+172 + j*(29)
+284 + j*(66)
+155 + j*(194)
+14 + j*(28)
+144 + j*(-105)
+-102 + j*(-113)
+-132 + j*(-83)
+15 + j*(-325)
+40 + j*(-86)
+203 + j*(-185)
+64 + j*(115)
+427 + j*(-47)
+20 + j*(40)
+-71 + j*(127)
+238 + j*(44)
+112 + j*(-142)
+39 + j*(-171)
+122 + j*(-204)
+62 + j*(-64)
+-33 + j*(-149)
+-170 + j*(106)
+296 + j*(52)
+332 + j*(279)
+203 + j*(70)
+286 + j*(76)
+-206 + j*(42)
+-11 + j*(298)
+129 + j*(-209)
+110 + j*(218)
+-17 + j*(-75)
+198 + j*(15)
+153 + j*(256)
+-6 + j*(-125)
+71 + j*(-89)
+64 + j*(-11)
+80 + j*(-31)
+192 + j*(112)
+-196 + j*(-18)
+-21 + j*(204)
+-54 + j*(305)
+10 + j*(292)
+30 + j*(238)
+-144 + j*(333)
+-230 + j*(-60)
+-354 + j*(76)
+87 + j*(-45)
+193 + j*(215)
+-170 + j*(204)
+143 + j*(93)
+-206 + j*(231)
+151 + j*(121)
+323 + j*(-74)
+-132 + j*(-209)
+-150 + j*(-150)
+-153 + j*(-82)
+-243 + j*(-144)
+310 + j*(95)
+342 + j*(-61)
+-155 + j*(-117)
+357 + j*(66)
+-360 + j*(119)
+86 + j*(-33)
+209 + j*(40)
+-105 + j*(62)
+163 + j*(43)
+-58 + j*(56)
+134 + j*(-247)
+14 + j*(84)
+-105 + j*(-28)
+-193 + j*(-215)
+-51 + j*(-180)
+97 + j*(-98)
+-116 + j*(-25)
+422 + j*(107)
+105 + j*(62)
+-30 + j*(62)
+255 + j*(141)
+-247 + j*(240)
+23 + j*(25)
+-163 + j*(6)
+0 + j*(308)
+-115 + j*(-250)
+-83 + j*(-33)
+-345 + j*(-57)
+495 + j*(-29)
+148 + j*(-51)
+-203 + j*(144)
+-57 + j*(39)
+-52 + j*(283)
+-7 + j*(218)
+300 + j*(-182)
+274 + j*(202)
+59 + j*(13)
+-74 + j*(259)
+300 + j*(28)
+1 + j*(117)
+151 + j*(242)
+267 + j*(332)
+57 + j*(-315)
+38 + j*(-178)
+65 + j*(8)
+-144 + j*(-271)
+213 + j*(-199)
+151 + j*(-91)
+-252 + j*(-130)
+-93 + j*(-66)
+74 + j*(69)
+-118 + j*(110)
+293 + j*(187)
+124 + j*(84)
+211 + j*(-75)
+-40 + j*(-15)
+123 + j*(28)
+105 + j*(-295)
+198 + j*(185)
+76 + j*(74)
+-236 + j*(203)
+-81 + j*(1)
+-135 + j*(73)
+-333 + j*(-332)
+46 + j*(64)
+-37 + j*(233)
+-17 + j*(37)
+321 + j*(182)
+146 + j*(307)
+98 + j*(-2)
+-191 + j*(-138)
+-252 + j*(124)
+168 + j*(-105)
+28 + j*(343)
+-59 + j*(-71)
+-119 + j*(-351)
+18 + j*(-82)
+319 + j*(69)
+140 + j*(-41)
+278 + j*(301)
+-142 + j*(166)
+-189 + j*(-316)
+173 + j*(-260)
+-26 + j*(-151)
+-94 + j*(-54)
+10 + j*(23)
+134 + j*(-170)
+-45 + j*(-260)
+138 + j*(-59)
+79 + j*(-220)
+2 + j*(102)
+163 + j*(74)
+-105 + j*(42)
+-295 + j*(-200)
+184 + j*(-141)
+-216 + j*(246)
+-66 + j*(-23)
+185 + j*(86)
+-378 + j*(146)
+-137 + j*(250)
+233 + j*(190)
+-66 + j*(-220)
+-30 + j*(-128)
+332 + j*(-71)
+293 + j*(-6)
+-35 + j*(-1)
+-58 + j*(247)
+252 + j*(-73)
+-75 + j*(-220)
+-57 + j*(6)
+-197 + j*(-8)
+321 + j*(149)
+-308 + j*(141)
+146 + j*(-230)
+-168 + j*(-322)
+-315 + j*(-190)
+120 + j*(-298)
+155 + j*(-344)
+-15 + j*(146)
+-156 + j*(-192)
+-91 + j*(-6)
+-62 + j*(-40)
+-40 + j*(109)
+-256 + j*(-19)
+118 + j*(-350)
+-365 + j*(-211)
+-68 + j*(-100)
+-86 + j*(-320)
+33 + j*(-34)
+136 + j*(1)
+7 + j*(430)
+161 + j*(54)
+30 + j*(-78)
+-87 + j*(-162)
+282 + j*(269)
+-277 + j*(260)
+-10 + j*(404)
+245 + j*(134)
+-96 + j*(-129)
+-183 + j*(83)
+-114 + j*(266)
+-3 + j*(-74)
+115 + j*(77)
+141 + j*(31)
+-105 + j*(50)
+-20 + j*(-341)
+148 + j*(-116)
+388 + j*(-106)
+-112 + j*(-20)
+58 + j*(-6)
+207 + j*(-138)
+124 + j*(-84)
+-174 + j*(71)
+-79 + j*(321)
+-153 + j*(48)
+-171 + j*(-315)
+-115 + j*(19)
+-73 + j*(-77)
+-2 + j*(-59)
+71 + j*(-69)
+13 + j*(1)
+129 + j*(-286)
+-316 + j*(162)
+303 + j*(210)
+32 + j*(136)
+-199 + j*(85)
+-248 + j*(169)
+246 + j*(88)
+309 + j*(-105)
+83 + j*(-149)
+-46 + j*(-25)
+-194 + j*(-202)
+-88 + j*(-108)
+76 + j*(29)
+79 + j*(-213)
+-90 + j*(14)
+-88 + j*(106)
+-194 + j*(-71)
+-57 + j*(42)
+-478 + j*(-83)
+269 + j*(-33)
+180 + j*(25)
+-47 + j*(-96)
+-190 + j*(115)
+-10 + j*(-342)
+-144 + j*(-26)
+-264 + j*(4)
+-192 + j*(48)
+-303 + j*(117)
+-49 + j*(268)
+95 + j*(-177)
+419 + j*(69)
+-131 + j*(156)
+-170 + j*(-4)
+-8 + j*(-139)
+-42 + j*(185)
+0 + j*(-301)
+20 + j*(-200)
+397 + j*(-147)
+-130 + j*(-238)
+-42 + j*(33)
+-78 + j*(12)
+-59 + j*(-111)
+-206 + j*(-145)
+-141 + j*(-148)
+-94 + j*(-163)
+146 + j*(-16)
+43 + j*(211)
+202 + j*(244)
+-67 + j*(-282)
+223 + j*(64)
+65 + j*(194)
+-76 + j*(-1)
+14 + j*(240)
+-51 + j*(136)
+-23 + j*(165)
+-44 + j*(64)
+110 + j*(132)
+-153 + j*(-107)
+-20 + j*(-114)
+-226 + j*(-141)
+-103 + j*(4)
+-113 + j*(211)
+153 + j*(-9)
+252 + j*(-18)
+-115 + j*(-216)
+-83 + j*(295)
+165 + j*(47)
+66 + j*(-152)
+194 + j*(88)
+-46 + j*(-30)
+100 + j*(-37)
+148 + j*(-224)
+167 + j*(84)
+-174 + j*(-62)
+-333 + j*(-233)
+250 + j*(-173)
+325 + j*(-9)
+36 + j*(-29)
+-85 + j*(20)
+141 + j*(179)
+-13 + j*(15)
+-179 + j*(-415)
+-358 + j*(87)
+-236 + j*(236)
+291 + j*(-188)
+-114 + j*(268)
+-187 + j*(-233)
+62 + j*(-151)
+-139 + j*(-336)
+301 + j*(-37)
+-75 + j*(74)
+12 + j*(-259)
+-351 + j*(-17)
+193 + j*(-151)
+-4 + j*(105)
+206 + j*(5)
+-153 + j*(-107)
+185 + j*(242)
+-5 + j*(-105)
+20 + j*(14)
+36 + j*(368)
+37 + j*(139)
+11 + j*(-123)
+-218 + j*(-71)
+-122 + j*(86)
+-95 + j*(95)
+-412 + j*(-148)
+-218 + j*(-69)
+-326 + j*(-87)
+-131 + j*(11)
+-11 + j*(84)
+98 + j*(-194)
+-49 + j*(-99)
+207 + j*(-170)
+-200 + j*(-292)
+-46 + j*(152)
+-144 + j*(-54)
+196 + j*(268)
+100 + j*(31)
+-132 + j*(157)
+-95 + j*(-239)
+185 + j*(-6)
+-117 + j*(-161)
+106 + j*(164)
+122 + j*(48)
+-47 + j*(45)
+47 + j*(83)
+195 + j*(361)
+68 + j*(207)
+43 + j*(17)
+-120 + j*(-76)
+1 + j*(-81)
+-138 + j*(-8)
+1 + j*(-15)
+10 + j*(-10)
+30 + j*(37)
+-24 + j*(-55)
+-235 + j*(251)
+-16 + j*(236)
+139 + j*(-286)
+62 + j*(86)
+183 + j*(-165)
+-71 + j*(-117)
+57 + j*(-56)
+71 + j*(-23)
+-518 + j*(52)
+189 + j*(-45)
+3 + j*(-190)
+89 + j*(186)
+36 + j*(-11)
+-308 + j*(283)
+153 + j*(-55)
+170 + j*(68)
+16 + j*(-214)
+141 + j*(223)
+13 + j*(163)
+-99 + j*(197)
+-350 + j*(-84)
+361 + j*(-123)
+-153 + j*(-35)
+184 + j*(-101)
+-250 + j*(104)
+-256 + j*(147)
+-56 + j*(166)
+-67 + j*(-78)
+1 + j*(-257)
+-173 + j*(-69)
+-109 + j*(-93)
+-17 + j*(71)
+243 + j*(-110)
+54 + j*(166)
+-80 + j*(-250)
+-134 + j*(-32)
+-169 + j*(-201)
+-98 + j*(-239)
+339 + j*(-90)
+-11 + j*(-78)
+25 + j*(45)
+109 + j*(-8)
+45 + j*(-274)
+-215 + j*(-130)
+-139 + j*(178)
+213 + j*(-269)
+-202 + j*(-202)
+-221 + j*(-17)
+219 + j*(-466)
+87 + j*(-278)
+358 + j*(-91)
+5 + j*(169)
+-129 + j*(330)
+42 + j*(0)
+-86 + j*(-29)
+-80 + j*(295)
+-154 + j*(-121)
+76 + j*(233)
+238 + j*(-31)
+97 + j*(-160)
+23 + j*(-81)
+5 + j*(-187)
+-39 + j*(-139)
+-262 + j*(83)
+128 + j*(23)
+-274 + j*(-51)
+229 + j*(-56)
+127 + j*(486)
+104 + j*(112)
+-46 + j*(257)
+-210 + j*(-244)
+81 + j*(111)
+112 + j*(198)
+231 + j*(319)
+-86 + j*(103)
+-7 + j*(-55)
+-6 + j*(-153)
+139 + j*(141)
+37 + j*(212)
+56 + j*(346)
+298 + j*(-73)
+-4 + j*(-55)
+163 + j*(36)
+-46 + j*(229)
+124 + j*(-144)
+-156 + j*(122)
+-209 + j*(-109)
+117 + j*(-151)
+-235 + j*(-193)
+-38 + j*(-64)
+136 + j*(28)
+66 + j*(-388)
+-102 + j*(101)
+171 + j*(182)
+-192 + j*(81)
+251 + j*(-343)
+261 + j*(-61)
+88 + j*(-33)
+-158 + j*(408)
+305 + j*(-63)
+-8 + j*(-103)
+565 + j*(250)
+-128 + j*(-51)
+-211 + j*(-122)
+-115 + j*(170)
+42 + j*(-29)
+-99 + j*(-112)
+-30 + j*(-85)
+232 + j*(213)
+282 + j*(-5)
+-86 + j*(113)
+-300 + j*(-236)
+-132 + j*(-146)
+-4 + j*(93)
+99 + j*(215)
+-70 + j*(-24)
+-95 + j*(23)
+-104 + j*(-33)
+237 + j*(-209)
+190 + j*(-75)
+15 + j*(73)
+106 + j*(86)
+3 + j*(-178)
+148 + j*(-86)
+105 + j*(209)
+34 + j*(-276)
+10 + j*(204)
+135 + j*(-187)
+-57 + j*(-210)
+69 + j*(93)
+-7 + j*(487)
+-141 + j*(-340)
+33 + j*(13)
+106 + j*(-265)
+51 + j*(105)
+-247 + j*(-185)
+-168 + j*(-27)
+-46 + j*(-325)
+79 + j*(139)
+-74 + j*(535)
+245 + j*(-96)
+334 + j*(-317)
+-103 + j*(159)
+-204 + j*(-19)
+144 + j*(239)
+36 + j*(-187)
+98 + j*(-91)
+-249 + j*(-33)
+9 + j*(-223)
+326 + j*(-165)
+-135 + j*(-42)
+-125 + j*(-16)
+15 + j*(-2)
+-243 + j*(-287)
+-33 + j*(182)
+-91 + j*(15)
+-81 + j*(-71)
+-194 + j*(-63)
+37 + j*(-23)
+-138 + j*(-11)
+-54 + j*(100)
+50 + j*(31)
+-43 + j*(115)
+-36 + j*(-128)
+153 + j*(-170)
+23 + j*(-226)
+-72 + j*(13)
+130 + j*(-53)
+-259 + j*(93)
+-315 + j*(-78)
+-141 + j*(-96)
+241 + j*(112)
+-54 + j*(159)
+58 + j*(57)
+-355 + j*(63)
+307 + j*(-132)
+192 + j*(88)
+-240 + j*(15)
+-35 + j*(-6)
+123 + j*(291)
+-161 + j*(158)
+34 + j*(-92)
+36 + j*(233)
+302 + j*(-199)
+71 + j*(56)
+-144 + j*(91)
+131 + j*(276)
+-77 + j*(151)
+-110 + j*(214)
+12 + j*(-490)
+-186 + j*(-77)
+308 + j*(84)
+-203 + j*(3)
+113 + j*(-112)
+-222 + j*(-176)
+81 + j*(-112)
+15 + j*(-14)
+-50 + j*(-186)
+144 + j*(-47)
+-120 + j*(-125)
+215 + j*(207)
+-32 + j*(-16)
+-383 + j*(247)
+-96 + j*(81)
+-148 + j*(-11)
+48 + j*(148)
+173 + j*(0)
+79 + j*(390)
+180 + j*(-223)
+274 + j*(40)
+-153 + j*(47)
+-116 + j*(112)
+121 + j*(255)
+198 + j*(176)
+74 + j*(134)
+-170 + j*(168)
+91 + j*(129)
+105 + j*(-324)
+-326 + j*(25)
+-109 + j*(74)
+174 + j*(-59)
+-244 + j*(54)
+-314 + j*(279)
+-145 + j*(213)
+238 + j*(103)
+28 + j*(190)
+46 + j*(-172)
+-28 + j*(-190)
+-122 + j*(-110)
+-112 + j*(-82)
+298 + j*(-21)
+-171 + j*(83)
+99 + j*(16)
+143 + j*(71)
+-141 + j*(-247)
+-214 + j*(-83)
+-9 + j*(14)
+-66 + j*(-51)
+-175 + j*(-115)
+233 + j*(-421)
+117 + j*(54)
+148 + j*(-204)
+-122 + j*(128)
+-4 + j*(20)
+-139 + j*(-47)
+105 + j*(-64)
+21 + j*(-56)
+-144 + j*(-13)
+-238 + j*(-225)
+-97 + j*(139)
+-83 + j*(15)
+45 + j*(80)
+-1 + j*(173)
+260 + j*(141)
+-125 + j*(2)
+117 + j*(100)
+100 + j*(-3)
+255 + j*(-33)
+-214 + j*(-199)
+243 + j*(344)
+85 + j*(158)
+-322 + j*(-165)
+-214 + j*(296)
+-128 + j*(58)
+-74 + j*(-222)
+-25 + j*(-93)
+44 + j*(5)
+-63 + j*(-137)
+-160 + j*(-328)
+29 + j*(12)
+-78 + j*(107)
+142 + j*(238)
+205 + j*(-250)
+-207 + j*(191)
+165 + j*(-142)
+199 + j*(141)
+28 + j*(-93)
+-141 + j*(175)
+-177 + j*(148)
+274 + j*(-18)
+-224 + j*(-92)
+17 + j*(-247)
+265 + j*(-45)
+-121 + j*(134)
+-66 + j*(-78)
+253 + j*(-176)
+-52 + j*(86)
+-156 + j*(13)
+-239 + j*(-81)
+51 + j*(-115)
+-134 + j*(36)
+-83 + j*(-69)
+-117 + j*(78)
+145 + j*(91)
+288 + j*(114)
+6 + j*(136)
+121 + j*(240)
+-60 + j*(37)
+197 + j*(100)
+-275 + j*(78)
+57 + j*(321)
+-260 + j*(170)
+91 + j*(-288)
+-168 + j*(-164)
+-171 + j*(-35)
+-136 + j*(344)
+43 + j*(3)
+-206 + j*(168)
+-343 + j*(124)
+-222 + j*(-301)
+98 + j*(146)
+-30 + j*(-252)
+203 + j*(-21)
+-42 + j*(-90)
+49 + j*(-36)
+-62 + j*(-53)
+-202 + j*(103)
+2 + j*(53)
+95 + j*(297)
+67 + j*(-303)
+183 + j*(-70)
+-399 + j*(74)
+-272 + j*(-213)
+-167 + j*(158)
+68 + j*(-21)
+-180 + j*(77)
+25 + j*(-18)
+-57 + j*(-4)
+136 + j*(-37)
+215 + j*(-322)
+322 + j*(34)
+-122 + j*(-172)
+185 + j*(264)
+-144 + j*(247)
+5 + j*(-125)
+36 + j*(-313)
+189 + j*(5)
+140 + j*(-150)
+7 + j*(69)
+-113 + j*(11)
+190 + j*(368)
+-284 + j*(-105)
+-62 + j*(5)
+-132 + j*(-367)
+-225 + j*(-90)
+50 + j*(-269)
+134 + j*(243)
+-141 + j*(-52)
+-226 + j*(53)
+342 + j*(-53)
+93 + j*(-263)
+-92 + j*(-141)
+125 + j*(162)
+-123 + j*(66)
+42 + j*(49)
+-93 + j*(-114)
+-92 + j*(-310)
+-271 + j*(-95)
+114 + j*(-197)
+322 + j*(158)
+-43 + j*(28)
+-215 + j*(-171)
+173 + j*(204)
+332 + j*(213)
+94 + j*(67)
+328 + j*(23)
+392 + j*(-35)
+155 + j*(-135)
+3 + j*(315)
+-211 + j*(50)
+226 + j*(-136)
+-25 + j*(-26)
+-126 + j*(78)
+-107 + j*(-45)
+24 + j*(227)
+-100 + j*(100)
+260 + j*(22)
+-76 + j*(390)
+-288 + j*(49)
+66 + j*(110)
+-163 + j*(-91)
+-273 + j*(-385)
+28 + j*(-218)
+-231 + j*(156)
+47 + j*(-76)
+75 + j*(-82)
+-43 + j*(133)
+3 + j*(-226)
+-69 + j*(-83)
+231 + j*(-101)
+-290 + j*(-52)
+47 + j*(57)
+-200 + j*(89)
+-70 + j*(265)
+55 + j*(-255)
+-156 + j*(127)
+91 + j*(337)
+-3 + j*(163)
+-129 + j*(-339)
+-16 + j*(167)
+-245 + j*(291)
+-114 + j*(168)
+-84 + j*(-148)
+-7 + j*(-243)
+-47 + j*(-44)
+166 + j*(50)
+227 + j*(-92)
+215 + j*(291)
+149 + j*(35)
+-109 + j*(-145)
+-190 + j*(-100)
+-102 + j*(-8)
+230 + j*(169)
+16 + j*(58)
+133 + j*(-169)
+-16 + j*(291)
+267 + j*(72)
+84 + j*(52)
+-342 + j*(73)
+-101 + j*(228)
+-16 + j*(180)
+-2 + j*(122)
+3 + j*(-344)
+-93 + j*(-185)
+38 + j*(92)
+226 + j*(71)
+390 + j*(-98)
+179 + j*(-201)
+-180 + j*(-31)
+-40 + j*(-165)
+109 + j*(-119)
+105 + j*(-171)
+-322 + j*(313)
+-1 + j*(-18)
+-47 + j*(256)
+282 + j*(-29)
+-383 + j*(-225)
+284 + j*(16)
+81 + j*(244)
+252 + j*(279)
+257 + j*(-23)
+-491 + j*(254)
+-102 + j*(175)
+-46 + j*(269)
+102 + j*(91)
+5 + j*(123)
+55 + j*(69)
+29 + j*(105)
+-197 + j*(4)
+-84 + j*(226)
+-12 + j*(95)
+-57 + j*(-259)
+195 + j*(-243)
+134 + j*(133)
+25 + j*(-165)
+-71 + j*(-205)
+91 + j*(-71)
+-201 + j*(18)
+-135 + j*(-405)
+180 + j*(153)
+323 + j*(276)
+376 + j*(73)
+221 + j*(65)
+-231 + j*(236)
+164 + j*(156)
+238 + j*(97)
+-18 + j*(-199)
+144 + j*(-33)
+-231 + j*(33)
+-23 + j*(154)
+50 + j*(24)
+-145 + j*(-113)
+32 + j*(138)
+110 + j*(-121)
+168 + j*(-242)
+233 + j*(20)
+30 + j*(87)
+115 + j*(-67)
+221 + j*(-12)
+23 + j*(64)
+66 + j*(161)
+-91 + j*(-159)
+-98 + j*(158)
+-73 + j*(49)
+-74 + j*(-26)
+-209 + j*(76)
+280 + j*(88)
+1 + j*(-30)
+474 + j*(136)
+-39 + j*(-202)
+61 + j*(-49)
+-82 + j*(-31)
+-25 + j*(267)
+110 + j*(286)
+-257 + j*(-42)
+288 + j*(-35)
+16 + j*(324)
+449 + j*(-50)
+-169 + j*(190)
+108 + j*(-13)
+-151 + j*(33)
+-21 + j*(119)
+82 + j*(-81)
+132 + j*(-28)
+-413 + j*(-19)
+-295 + j*(-208)
+153 + j*(145)
+-7 + j*(194)
+-110 + j*(-147)
+-145 + j*(-126)
+284 + j*(64)
+-81 + j*(110)
+263 + j*(-72)
+12 + j*(-312)
+-76 + j*(119)
+154 + j*(52)
+138 + j*(109)
+-98 + j*(-220)
+-433 + j*(-9)
+267 + j*(-3)
+-168 + j*(203)
+33 + j*(-329)
+129 + j*(-35)
+-177 + j*(-58)
+-161 + j*(-55)
+-161 + j*(108)
+-168 + j*(320)
+-258 + j*(65)
+-165 + j*(30)
+-131 + j*(-6)
+-98 + j*(25)
+136 + j*(410)
+1 + j*(332)
+6 + j*(117)
+-42 + j*(-151)
+-15 + j*(-139)
+292 + j*(-97)
+208 + j*(-216)
+113 + j*(-93)
+168 + j*(160)
+-261 + j*(88)
+226 + j*(110)
+70 + j*(-298)
+-221 + j*(312)
+54 + j*(101)
+-108 + j*(166)
+306 + j*(162)
+75 + j*(52)
+-129 + j*(-223)
+47 + j*(59)
+235 + j*(75)
+-226 + j*(45)
+238 + j*(91)
+324 + j*(168)
+132 + j*(-354)
+-504 + j*(151)
+234 + j*(112)
+236 + j*(179)
+-25 + j*(-47)
+136 + j*(-141)
+311 + j*(352)
+20 + j*(-145)
+61 + j*(-187)
+146 + j*(-66)
+-111 + j*(-25)
+238 + j*(-6)
+-248 + j*(-57)
+255 + j*(169)
+368 + j*(-76)
+13 + j*(7)
+-101 + j*(33)
+1 + j*(227)
+-243 + j*(-105)
+-4 + j*(59)
+118 + j*(38)
+-23 + j*(57)
+85 + j*(-116)
+-170 + j*(-131)
+-13 + j*(-11)
+49 + j*(-61)
+-37 + j*(294)
+118 + j*(308)
+-120 + j*(-21)
+-232 + j*(-107)
+393 + j*(312)
+25 + j*(76)
+74 + j*(23)
+59 + j*(-136)
+306 + j*(86)
+-260 + j*(-314)
+194 + j*(163)
+-199 + j*(257)
+-175 + j*(-257)
+-232 + j*(13)
+240 + j*(-95)
+-155 + j*(-172)
+361 + j*(-116)
+-132 + j*(-152)
+-110 + j*(71)
+-279 + j*(288)
+-4 + j*(-28)
+-12 + j*(154)
+89 + j*(190)
+104 + j*(42)
+-221 + j*(-151)
+-91 + j*(115)
+162 + j*(-30)
+-471 + j*(-45)
+225 + j*(-34)
+161 + j*(199)
+136 + j*(164)
+-116 + j*(87)
+-48 + j*(195)
+74 + j*(156)
+-23 + j*(7)
+204 + j*(166)
+-150 + j*(1)
+19 + j*(79)
+44 + j*(5)
+-161 + j*(76)
+122 + j*(-240)
+151 + j*(-18)
+-23 + j*(53)
+-227 + j*(97)
+-26 + j*(-221)
+-358 + j*(-142)
+217 + j*(-240)
+-139 + j*(-170)
+39 + j*(202)
+55 + j*(-36)
+122 + j*(-217)
+65 + j*(242)
+23 + j*(13)
+-46 + j*(-73)
+-81 + j*(-328)
+131 + j*(-276)
+-136 + j*(186)
+158 + j*(204)
+100 + j*(-209)
+35 + j*(43)
+4 + j*(43)
+-263 + j*(6)
+-16 + j*(159)
+316 + j*(139)
+336 + j*(-135)
+-201 + j*(-235)
+-13 + j*(-197)
+275 + j*(139)
+-188 + j*(13)
+-152 + j*(-9)
+-61 + j*(-177)
+-369 + j*(-195)
+160 + j*(-98)
+56 + j*(-1)
+-276 + j*(-13)
+112 + j*(-183)
+-231 + j*(206)
+42 + j*(-163)
+76 + j*(-34)
+25 + j*(-84)
+62 + j*(-61)
+-258 + j*(-87)
+-145 + j*(169)
+-240 + j*(289)
+-204 + j*(-272)
+-191 + j*(-68)
+45 + j*(91)
+-124 + j*(46)
+-261 + j*(-18)
+144 + j*(340)
+-24 + j*(216)
+-7 + j*(-41)
+239 + j*(52)
+-292 + j*(-157)
+210 + j*(-414)
+-299 + j*(-11)
+6 + j*(71)
+226 + j*(-406)
+27 + j*(187)
+-72 + j*(-43)
+-115 + j*(-215)
+41 + j*(-39)
+220 + j*(38)
+-158 + j*(-246)
+-24 + j*(-111)
+-69 + j*(126)
+137 + j*(-32)
+-279 + j*(11)
+-98 + j*(-329)
+-38 + j*(68)
+-366 + j*(19)
+-94 + j*(-104)
+197 + j*(-37)
+-93 + j*(34)
+-352 + j*(-19)
+64 + j*(40)
+165 + j*(-195)
+37 + j*(42)
+-177 + j*(-74)
+-194 + j*(-129)
+269 + j*(174)
+55 + j*(-28)
+-56 + j*(-37)
+-309 + j*(-131)
+69 + j*(-18)
+-173 + j*(-9)
+122 + j*(-270)
+64 + j*(-221)
+197 + j*(66)
+-66 + j*(354)
+1 + j*(133)
+-125 + j*(129)
+-255 + j*(-137)
+180 + j*(106)
+-223 + j*(385)
+335 + j*(42)
+-99 + j*(-32)
+182 + j*(91)
+213 + j*(29)
+32 + j*(-33)
+-75 + j*(37)
+-109 + j*(-296)
+134 + j*(99)
+-53 + j*(-76)
+140 + j*(176)
+248 + j*(-379)
+-76 + j*(-151)
+-132 + j*(-22)
+-116 + j*(110)
+-82 + j*(-76)
+-199 + j*(-174)
+118 + j*(240)
+-144 + j*(13)
+-25 + j*(173)
+-230 + j*(-95)
+125 + j*(182)
+-105 + j*(122)
+-101 + j*(195)
+20 + j*(-121)
+35 + j*(-342)
+-119 + j*(-385)
+-188 + j*(-165)
+-252 + j*(-393)
+-269 + j*(-127)
+-31 + j*(-12)
+336 + j*(-78)
+-52 + j*(-105)
+-25 + j*(330)
+11 + j*(149)
+-81 + j*(-163)
+-153 + j*(-223)
+107 + j*(-33)
+-294 + j*(-106)
+-189 + j*(247)
+-218 + j*(-154)
+99 + j*(-35)
+127 + j*(-290)
+404 + j*(-88)
+-135 + j*(268)
+316 + j*(313)
+206 + j*(161)
+-385 + j*(36)
+-17 + j*(266)
+4 + j*(-23)
+-83 + j*(73)
+0 + j*(116)
+160 + j*(199)
+178 + j*(-109)
+-69 + j*(-147)
+125 + j*(59)
+244 + j*(98)
+-146 + j*(197)
+59 + j*(234)
+218 + j*(386)
+23 + j*(-74)
+438 + j*(90)
+259 + j*(55)
+181 + j*(214)
+-38 + j*(-76)
+-182 + j*(55)
+-148 + j*(-138)
+-130 + j*(281)
+125 + j*(-132)
+-90 + j*(-105)
+183 + j*(255)
+-138 + j*(288)
+-165 + j*(-25)
+-207 + j*(427)
+259 + j*(-175)
+147 + j*(-359)
+116 + j*(-28)
+-263 + j*(-146)
+-217 + j*(48)
+9 + j*(-62)
+77 + j*(-11)
+61 + j*(-215)
+35 + j*(66)
+85 + j*(1)
+6 + j*(-23)
+161 + j*(37)
+-124 + j*(280)
+111 + j*(-3)
+26 + j*(233)
+-76 + j*(130)
+15 + j*(-241)
+-78 + j*(-167)
+44 + j*(-25)
+-167 + j*(205)
+-99 + j*(-188)
+-154 + j*(120)
+-61 + j*(11)
+361 + j*(-10)
+236 + j*(-204)
+139 + j*(-104)
+-106 + j*(44)
+-40 + j*(99)
+-1 + j*(-134)
+-148 + j*(30)
+-134 + j*(54)
+-239 + j*(85)
+-275 + j*(-269)
+90 + j*(-83)
+-225 + j*(-148)
+332 + j*(-88)
+-47 + j*(424)
+-128 + j*(78)
+163 + j*(69)
+-175 + j*(88)
+-146 + j*(243)
+308 + j*(25)
+301 + j*(26)
+110 + j*(-218)
+-139 + j*(-78)
+279 + j*(92)
+161 + j*(252)
+-91 + j*(81)
+-100 + j*(11)
+-90 + j*(92)
+-98 + j*(-146)
+404 + j*(216)
+178 + j*(-197)
+-50 + j*(-149)
+165 + j*(-58)
+27 + j*(-303)
+95 + j*(169)
+-108 + j*(52)
+294 + j*(-26)
+-37 + j*(-3)
+-101 + j*(-292)
+187 + j*(250)
+-71 + j*(339)
+42 + j*(-67)
+-66 + j*(50)
+-37 + j*(-90)
+93 + j*(56)
+141 + j*(-18)
+77 + j*(-32)
+74 + j*(28)
+248 + j*(223)
+232 + j*(-345)
+66 + j*(-51)
+42 + j*(49)
+54 + j*(113)
+25 + j*(-40)
+-88 + j*(156)
+52 + j*(-112)
+-214 + j*(325)
+144 + j*(122)
+-170 + j*(147)
+-251 + j*(33)
+-195 + j*(-218)
+433 + j*(224)
+-174 + j*(-269)
+-75 + j*(-378)
+-30 + j*(-155)
+227 + j*(-212)
+-1 + j*(-420)
+-45 + j*(331)
+139 + j*(-228)
+114 + j*(438)
+313 + j*(-54)
+-460 + j*(-39)
+125 + j*(-170)
+222 + j*(-85)
+-127 + j*(-302)
+97 + j*(279)
+114 + j*(121)
+-226 + j*(144)
+69 + j*(10)
+162 + j*(-109)
+206 + j*(-395)
+-243 + j*(-5)
+-86 + j*(294)
+15 + j*(68)
+206 + j*(-216)
+-190 + j*(151)
+-88 + j*(-41)
+44 + j*(202)
+-36 + j*(-110)
+-35 + j*(16)
+-29 + j*(85)
+0 + j*(155)
+-35 + j*(-83)
+221 + j*(-148)
+18 + j*(-342)
+-83 + j*(7)
+-8 + j*(-144)
+9 + j*(-88)
+-103 + j*(-317)
+191 + j*(187)
+-337 + j*(-266)
+-24 + j*(8)
+-515 + j*(-130)
+-129 + j*(142)
+78 + j*(138)
+-70 + j*(264)
+117 + j*(-196)
+214 + j*(263)
+45 + j*(-140)
+127 + j*(-354)
+-16 + j*(-46)
+-6 + j*(-17)
+-69 + j*(-194)
+8 + j*(315)
+52 + j*(119)
+243 + j*(65)
+19 + j*(1)
+-163 + j*(-174)
+124 + j*(-188)
+-438 + j*(25)
+102 + j*(-9)
+88 + j*(-352)
+214 + j*(-132)
+150 + j*(-23)
+-28 + j*(58)
+52 + j*(-147)
+-59 + j*(332)
+-248 + j*(88)
+47 + j*(138)
+210 + j*(-60)
+129 + j*(-173)
+-54 + j*(235)
+-190 + j*(284)
+-74 + j*(142)
+73 + j*(-128)
+-46 + j*(-215)
+126 + j*(328)
+-136 + j*(105)
+-32 + j*(-168)
+-313 + j*(-133)
+59 + j*(-33)
+-39 + j*(158)
+93 + j*(-158)
+-30 + j*(-192)
+119 + j*(21)
+-8 + j*(180)
+177 + j*(-231)
+211 + j*(-264)
+98 + j*(146)
+46 + j*(13)
+-170 + j*(98)
+93 + j*(18)
+-115 + j*(-21)
+-86 + j*(-20)
+76 + j*(325)
+77 + j*(33)
+199 + j*(-40)
+154 + j*(-236)
+-14 + j*(139)
+37 + j*(65)
+-121 + j*(36)
+-206 + j*(247)
+-18 + j*(65)
+573 + j*(148)
+169 + j*(-257)
+-64 + j*(40)
+53 + j*(-59)
+-46 + j*(88)
+-197 + j*(176)
+18 + j*(-134)
+-177 + j*(-109)
+-76 + j*(142)
+252 + j*(-144)
+-2 + j*(-101)
+41 + j*(-153)
+-109 + j*(-24)
+4 + j*(141)
+49 + j*(-73)
+-151 + j*(134)
+-125 + j*(151)
+-78 + j*(272)
+49 + j*(-177)
+-193 + j*(-143)
+-164 + j*(-261)
+29 + j*(-115)
+195 + j*(-140)
+85 + j*(13)
+-86 + j*(27)
+-77 + j*(-128)
+378 + j*(114)
+-436 + j*(49)
+-55 + j*(134)
+-144 + j*(-27)
+99 + j*(315)
+92 + j*(154)
+148 + j*(177)
+93 + j*(83)
+119 + j*(310)
+190 + j*(-248)
+-259 + j*(-248)
+218 + j*(310)
+63 + j*(197)
+226 + j*(81)
+22 + j*(-151)
+60 + j*(-168)
+-285 + j*(231)
+-40 + j*(-78)
+144 + j*(-128)
+-20 + j*(-402)
+66 + j*(-8)
+-71 + j*(17)
+94 + j*(-111)
+-22 + j*(-16)
+128 + j*(-156)
+-212 + j*(324)
+-320 + j*(409)
+-137 + j*(235)
+52 + j*(-438)
+205 + j*(178)
+86 + j*(-149)
+246 + j*(-124)
+129 + j*(-48)
+-23 + j*(72)
+54 + j*(-18)
+-136 + j*(225)
+-134 + j*(198)
+255 + j*(-239)
+-378 + j*(-39)
+-23 + j*(110)
+35 + j*(-124)
+47 + j*(-40)
+177 + j*(-16)
+178 + j*(-54)
+-197 + j*(33)
+141 + j*(-42)
+134 + j*(245)
+68 + j*(101)
+-353 + j*(-16)
+-375 + j*(47)
+129 + j*(-129)
+-75 + j*(-96)
+192 + j*(66)
+116 + j*(41)
+-33 + j*(17)
+103 + j*(81)
+-52 + j*(214)
+132 + j*(59)
+-342 + j*(375)
+-308 + j*(-103)
+-68 + j*(140)
+460 + j*(110)
+-18 + j*(-97)
+551 + j*(-522)
+243 + j*(69)
+534 + j*(264)
+-373 + j*(-374)
+-543 + j*(503)
+292 + j*(223)
+494 + j*(-12)
+-96 + j*(-122)
+600 + j*(-210)
+378 + j*(-357)
+39 + j*(477)
+298 + j*(82)
+-46 + j*(604)
+-197 + j*(28)
+-313 + j*(460)
+-57 + j*(168)
+368 + j*(-167)
+-82 + j*(-532)
+12 + j*(-259)
+-498 + j*(-542)
+567 + j*(190)
+18 + j*(-402)
+675 + j*(32)
+-188 + j*(272)
+778 + j*(51)
+245 + j*(479)
+-82 + j*(-250)
+342 + j*(-177)
+360 + j*(-356)
+279 + j*(286)
+-396 + j*(-656)
+154 + j*(-335)
+-88 + j*(-243)
+327 + j*(-137)
+488 + j*(274)
+322 + j*(-62)
+-43 + j*(507)
+660 + j*(265)
+-264 + j*(81)
+-158 + j*(-299)
+-449 + j*(-491)
+557 + j*(78)
+-6 + j*(-75)
+569 + j*(135)
+478 + j*(-146)
+-92 + j*(-381)
+-289 + j*(170)
+276 + j*(-35)
+-373 + j*(-409)
+-288 + j*(-107)
+173 + j*(-235)
+286 + j*(-235)
+236 + j*(-559)
+52 + j*(164)
+-2 + j*(-477)
+169 + j*(346)
+-322 + j*(-5)
+-154 + j*(151)
+250 + j*(66)
+-477 + j*(79)
+281 + j*(-82)
+214 + j*(-72)
+188 + j*(394)
+146 + j*(-163)
+-297 + j*(292)
+133 + j*(-588)
+648 + j*(-378)
+285 + j*(453)
+377 + j*(-400)
+441 + j*(349)
+388 + j*(-69)
+396 + j*(550)
+-27 + j*(-142)
+446 + j*(361)
+255 + j*(-25)
+138 + j*(-252)
+443 + j*(162)
+471 + j*(-293)
+309 + j*(359)
+187 + j*(178)
+359 + j*(-255)
+-251 + j*(292)
+-246 + j*(-288)
+-402 + j*(427)
+77 + j*(211)
+-254 + j*(364)
+123 + j*(-347)
+-223 + j*(-178)
+-245 + j*(-308)
+392 + j*(192)
+-302 + j*(453)
+-384 + j*(-284)
+-161 + j*(-283)
+117 + j*(-281)
+-272 + j*(274)
+-211 + j*(249)
+-530 + j*(-353)
+204 + j*(471)
+23 + j*(-124)
+-119 + j*(-276)
+-35 + j*(-373)
+443 + j*(-426)
+-23 + j*(-441)
+149 + j*(-441)
+-160 + j*(335)
+224 + j*(-366)
+-166 + j*(81)
+30 + j*(-435)
+213 + j*(-171)
+337 + j*(364)
+-301 + j*(121)
+163 + j*(358)
+-417 + j*(255)
+-170 + j*(-19)
+198 + j*(-239)
+418 + j*(-470)
+187 + j*(225)
+-338 + j*(-273)
+-581 + j*(87)
+167 + j*(-600)
+-685 + j*(414)
+351 + j*(-370)
+6 + j*(-515)
+-279 + j*(-240)
+45 + j*(-40)
+-130 + j*(233)
+-637 + j*(-235)
+-187 + j*(165)
+-135 + j*(386)
+16 + j*(355)
+-219 + j*(8)
+469 + j*(-107)
+71 + j*(108)
+-16 + j*(15)
+-14 + j*(-530)
+-252 + j*(68)
+288 + j*(536)
+288 + j*(-182)
+-478 + j*(-6)
+-134 + j*(151)
+-38 + j*(-388)
+-414 + j*(-317)
+440 + j*(-426)
+-218 + j*(-705)
+-304 + j*(-85)
+-662 + j*(54)
+273 + j*(-4)
+268 + j*(211)
+18 + j*(315)
+141 + j*(292)
+116 + j*(268)
+-253 + j*(146)
+235 + j*(-55)
+-259 + j*(-178)
+-197 + j*(-585)
+-64 + j*(441)
+-271 + j*(-188)
+358 + j*(506)
+13 + j*(-94)
+-339 + j*(-167)
+329 + j*(400)
+50 + j*(-484)
+91 + j*(366)
+-407 + j*(-144)
+-439 + j*(165)
+170 + j*(-325)
+-479 + j*(355)
+237 + j*(-239)
+99 + j*(-355)
+-122 + j*(281)
+515 + j*(148)
+-132 + j*(-269)
+-174 + j*(34)
+11 + j*(-386)
+291 + j*(-351)
+243 + j*(52)
+-300 + j*(129)
+344 + j*(-442)
+-232 + j*(83)
+-10 + j*(2)
+300 + j*(733)
+-139 + j*(28)
+83 + j*(-425)
+-403 + j*(-188)
+-344 + j*(-337)
+345 + j*(144)
+-245 + j*(-193)
+-552 + j*(105)
+433 + j*(-513)
+426 + j*(188)
+12 + j*(385)
+-114 + j*(-211)
+-261 + j*(-512)
+268 + j*(139)
+327 + j*(305)
+309 + j*(-86)
+366 + j*(407)
+-206 + j*(277)
+-81 + j*(319)
+-21 + j*(108)
+33 + j*(-84)
+234 + j*(349)
+-337 + j*(759)
+169 + j*(324)
+-183 + j*(333)
+1 + j*(-487)
+156 + j*(-346)
+240 + j*(-270)
+224 + j*(-426)
+-71 + j*(-328)
+117 + j*(-204)
+79 + j*(-344)
+-361 + j*(113)
+-165 + j*(332)
+-582 + j*(-463)
+504 + j*(204)
+-578 + j*(139)
+-26 + j*(209)
+-121 + j*(378)
+-511 + j*(55)
+156 + j*(-371)
+12 + j*(-390)
+231 + j*(-57)
+11 + j*(-35)
+-498 + j*(-8)
+-465 + j*(-315)
+-45 + j*(-214)
+245 + j*(53)
+-460 + j*(-199)
+-151 + j*(272)
+-453 + j*(-342)
+194 + j*(8)
+-68 + j*(-393)
+-231 + j*(168)
+-364 + j*(-337)
+-414 + j*(-211)
+701 + j*(-303)
+-287 + j*(-534)
+201 + j*(140)
+177 + j*(110)
+-54 + j*(-180)
+-344 + j*(-205)
+280 + j*(53)
+432 + j*(-19)
+376 + j*(99)
+363 + j*(509)
+404 + j*(-474)
+-279 + j*(28)
+-496 + j*(74)
+308 + j*(-384)
+680 + j*(230)
+620 + j*(-209)
+295 + j*(444)
+194 + j*(411)
+-185 + j*(-2)
+546 + j*(317)
+-5 + j*(313)
+-415 + j*(229)
+188 + j*(429)
+247 + j*(617)
+-12 + j*(495)
+175 + j*(312)
+-170 + j*(-268)
+-74 + j*(-233)
+-162 + j*(-310)
+-210 + j*(156)
+395 + j*(-435)
+-184 + j*(268)
+-24 + j*(-264)
+431 + j*(-350)
+-389 + j*(453)
+-98 + j*(-118)
+117 + j*(531)
+-165 + j*(358)
+74 + j*(-362)
+-304 + j*(61)
+-199 + j*(158)
+228 + j*(167)
+397 + j*(170)
+266 + j*(-310)
+450 + j*(93)
+-215 + j*(-63)
+-231 + j*(-31)
+411 + j*(-336)
+443 + j*(173)
+288 + j*(240)
+70 + j*(208)
+-298 + j*(-249)
+349 + j*(279)
+-82 + j*(-6)
+-282 + j*(-40)
+227 + j*(-322)
+93 + j*(695)
+-433 + j*(392)
+65 + j*(-356)
+-249 + j*(250)
+297 + j*(-205)
+107 + j*(363)
+95 + j*(270)
+310 + j*(-12)
+-228 + j*(532)
+111 + j*(78)
+227 + j*(-24)
+141 + j*(-596)
+-252 + j*(409)
+-277 + j*(-249)
+-53 + j*(532)
+-173 + j*(-244)
+519 + j*(402)
+18 + j*(234)
+-135 + j*(307)
+-309 + j*(95)
+-289 + j*(264)
+289 + j*(-284)
+147 + j*(-311)
+-377 + j*(460)
+-298 + j*(549)
+177 + j*(332)
+599 + j*(-378)
+40 + j*(355)
+373 + j*(121)
+-266 + j*(-45)
+-85 + j*(-47)
+-186 + j*(-18)
+-8 + j*(-195)
+409 + j*(-610)
+34 + j*(502)
+-576 + j*(78)
+298 + j*(164)
+409 + j*(-331)
+506 + j*(-433)
+460 + j*(-700)
+-84 + j*(269)
+-303 + j*(375)
+-5 + j*(-106)
+30 + j*(85)
+296 + j*(361)
+-179 + j*(-178)
+-477 + j*(-308)
+-141 + j*(-696)
+-149 + j*(398)
+392 + j*(431)
+-300 + j*(206)
+-248 + j*(515)
+462 + j*(217)
+253 + j*(244)
+164 + j*(-196)
+308 + j*(-40)
+28 + j*(124)
+-172 + j*(-233)
+471 + j*(-272)
+332 + j*(445)
+-217 + j*(200)
+-307 + j*(-209)
+503 + j*(207)
+499 + j*(378)
+-203 + j*(87)
+-273 + j*(438)
+170 + j*(364)
+384 + j*(-122)
+291 + j*(-509)
+-74 + j*(422)
+-571 + j*(126)
+76 + j*(264)
+-383 + j*(-128)
+333 + j*(-436)
+-105 + j*(-313)
+260 + j*(-61)
+404 + j*(465)
+-172 + j*(363)
+-225 + j*(-317)
+185 + j*(-140)
+132 + j*(40)
+-199 + j*(-365)
+470 + j*(-37)
+89 + j*(-250)
+-94 + j*(256)
+0 + j*(397)
+-326 + j*(531)
+-245 + j*(-2)
+-105 + j*(-4)
+100 + j*(274)
+-392 + j*(-227)
+-274 + j*(173)
+-93 + j*(-418)
+646 + j*(214)
+-568 + j*(-668)
+582 + j*(16)
+-129 + j*(-274)
+272 + j*(226)
+-8 + j*(-176)
+351 + j*(387)
+467 + j*(194)
+-225 + j*(166)
+-40 + j*(-489)
+82 + j*(-408)
+-168 + j*(268)
+-28 + j*(-298)
+-503 + j*(-358)
+94 + j*(-250)
+564 + j*(41)
+-468 + j*(-158)
+331 + j*(311)
+303 + j*(-211)
+185 + j*(-366)
+-262 + j*(171)
+-165 + j*(-372)
+-414 + j*(-305)
+-334 + j*(-371)
+-62 + j*(26)
+141 + j*(208)
+250 + j*(347)
+-256 + j*(-16)
+-501 + j*(552)
+452 + j*(-195)
+-239 + j*(-151)
+-426 + j*(-532)
+10 + j*(-282)
+-412 + j*(414)
+-482 + j*(-233)
+-321 + j*(256)
+-124 + j*(32)
+409 + j*(-373)
+-568 + j*(-613)
+-311 + j*(306)
+-81 + j*(-678)
+432 + j*(-555)
+-374 + j*(376)
+231 + j*(-211)
+404 + j*(-189)
+191 + j*(403)
+511 + j*(-279)
+-544 + j*(202)
+136 + j*(-401)
+363 + j*(-269)
+-499 + j*(-64)
+385 + j*(549)
+243 + j*(250)
+-209 + j*(393)
+-231 + j*(-198)
+272 + j*(-286)
+133 + j*(-260)
+-366 + j*(-317)
+-76 + j*(25)
+-270 + j*(255)
+-267 + j*(118)
+-217 + j*(-233)
+313 + j*(370)
+282 + j*(-179)
+-513 + j*(120)
+-118 + j*(-400)
+286 + j*(-403)
+-231 + j*(133)
+-175 + j*(-118)
+-161 + j*(-173)
+-118 + j*(411)
+-51 + j*(-93)
+-542 + j*(16)
+233 + j*(-422)
+-13 + j*(-86)
+345 + j*(-467)
+-296 + j*(-259)
+-23 + j*(-313)
+74 + j*(476)
+182 + j*(-244)
+-266 + j*(-231)
+-251 + j*(-226)
+-395 + j*(-360)
+-156 + j*(550)
+217 + j*(163)
+-486 + j*(433)
+-281 + j*(248)
+-65 + j*(67)
+232 + j*(-296)
+-383 + j*(-46)
+403 + j*(99)
+210 + j*(-325)
+-217 + j*(-564)
+-328 + j*(169)
+-196 + j*(132)
+-624 + j*(225)
+-480 + j*(200)
+-418 + j*(307)
+367 + j*(-327)
+-365 + j*(-371)
+422 + j*(-177)
+296 + j*(-316)
+-284 + j*(-382)
+414 + j*(163)
+-542 + j*(-593)
+332 + j*(40)
+-100 + j*(368)
+355 + j*(-380)
+542 + j*(-166)
+63 + j*(267)
+-427 + j*(293)
+-83 + j*(206)
+-610 + j*(45)
+348 + j*(-95)
+469 + j*(-153)
+235 + j*(-150)
+-285 + j*(380)
+-399 + j*(-140)
+247 + j*(-107)
+-556 + j*(472)
+-168 + j*(-3)
+-204 + j*(-325)
+590 + j*(303)
+-222 + j*(228)
+200 + j*(233)
+524 + j*(-117)
+-57 + j*(257)
+-405 + j*(-373)
+-441 + j*(-124)
+16 + j*(374)
+306 + j*(-499)
+-36 + j*(-2)
+-103 + j*(-356)
+378 + j*(214)
+-361 + j*(-255)
+-180 + j*(328)
+-267 + j*(-305)
+204 + j*(-63)
+45 + j*(-543)
+-134 + j*(-142)
+321 + j*(508)
+-412 + j*(549)
+-240 + j*(182)
+-353 + j*(177)
+-138 + j*(-158)
+165 + j*(-395)
+234 + j*(-400)
+-256 + j*(373)
+37 + j*(-249)
+69 + j*(-151)
+-211 + j*(-291)
+-209 + j*(-90)
+-366 + j*(-367)
+555 + j*(-146)
+-202 + j*(-583)
+-280 + j*(-259)
+264 + j*(-309)
+595 + j*(80)
+-318 + j*(-107)
+-306 + j*(96)
+128 + j*(-289)
+149 + j*(65)
+265 + j*(-255)
+-399 + j*(-277)
+325 + j*(-206)
+-368 + j*(122)
+306 + j*(-187)
+-261 + j*(329)
+-223 + j*(-4)
+443 + j*(477)
+-476 + j*(403)
+112 + j*(-310)
+-124 + j*(93)
+-25 + j*(-349)
+404 + j*(-98)
+-134 + j*(328)
+-289 + j*(-192)
+151 + j*(137)
+431 + j*(301)
+-76 + j*(-70)
+-161 + j*(-161)
+-590 + j*(-261)
+276 + j*(291)
+232 + j*(-365)
+-383 + j*(-45)
+409 + j*(-97)
+-266 + j*(366)
+433 + j*(-146)
+-308 + j*(18)
+238 + j*(80)
+-52 + j*(299)
+-250 + j*(499)
+-395 + j*(358)
+-83 + j*(-467)
+173 + j*(284)
+43 + j*(-25)
+97 + j*(293)
+-46 + j*(578)
+245 + j*(-372)
+-127 + j*(197)
+-59 + j*(-461)
+301 + j*(358)
+-95 + j*(205)
+-132 + j*(260)
+-337 + j*(286)
+-215 + j*(-344)
+-224 + j*(256)
+748 + j*(-341)
+402 + j*(-316)
+264 + j*(-693)
+18 + j*(115)
+127 + j*(-64)
+-18 + j*(-102)
+-95 + j*(-594)
+385 + j*(72)
+73 + j*(11)
+-237 + j*(58)
+-177 + j*(-98)
+117 + j*(-21)
+-536 + j*(173)
+231 + j*(89)
+-290 + j*(-238)
+176 + j*(-135)
+-293 + j*(50)
+112 + j*(33)
+73 + j*(-214)
+89 + j*(-269)
+62 + j*(6)
+-204 + j*(9)
+49 + j*(17)
+21 + j*(91)
+-170 + j*(49)
+-112 + j*(-310)
+-247 + j*(168)
+-28 + j*(221)
+98 + j*(-145)
+234 + j*(33)
+-22 + j*(-23)
+-81 + j*(148)
+69 + j*(117)
+-144 + j*(-127)
+-62 + j*(4)
+76 + j*(149)
+76 + j*(-45)
+-6 + j*(61)
+75 + j*(95)
+-105 + j*(-210)
+-378 + j*(-561)
+-334 + j*(86)
+309 + j*(-91)
+309 + j*(-67)
+190 + j*(-124)
+91 + j*(23)
+8 + j*(-58)
+-235 + j*(-55)
+57 + j*(-322)
+-93 + j*(133)
+-189 + j*(-179)
+278 + j*(-37)
+177 + j*(14)
+-4 + j*(-166)
+-71 + j*(-71)
+310 + j*(-178)
+107 + j*(-23)
+153 + j*(55)
+-146 + j*(350)
+17 + j*(70)
+-94 + j*(180)
+-69 + j*(181)
+-124 + j*(-424)
+-75 + j*(117)
+-124 + j*(-28)
+-194 + j*(-111)
+45 + j*(58)
+12 + j*(-58)
+197 + j*(-82)
+212 + j*(32)
+144 + j*(179)
+-9 + j*(56)
+-200 + j*(-328)
+-64 + j*(70)
+-48 + j*(332)
+-71 + j*(-75)
+-189 + j*(-15)
+35 + j*(143)
+-3 + j*(148)
+-158 + j*(-24)
+-69 + j*(165)
+74 + j*(73)
+149 + j*(-45)
+-30 + j*(-211)
+-195 + j*(158)
+-147 + j*(272)
+69 + j*(-50)
+-73 + j*(54)
+-309 + j*(-164)
+-44 + j*(-103)
+-401 + j*(132)
+-271 + j*(104)
+-269 + j*(-28)
+-303 + j*(267)
+-21 + j*(281)
+-47 + j*(34)
+-164 + j*(-165)
+-110 + j*(241)
+-37 + j*(62)
+-40 + j*(-134)
+2 + j*(19)
+241 + j*(-375)
+-301 + j*(-67)
+204 + j*(-37)
+303 + j*(-142)
+-8 + j*(184)
+60 + j*(-178)
+-158 + j*(238)
+223 + j*(-71)
+63 + j*(-277)
+144 + j*(-3)
+-375 + j*(-45)
+-186 + j*(6)
+-36 + j*(-61)
+46 + j*(-59)
+-22 + j*(191)
+-127 + j*(84)
+-202 + j*(-13)
+519 + j*(253)
+-378 + j*(129)
+16 + j*(176)
+14 + j*(66)
+-198 + j*(341)
+-16 + j*(-180)
+16 + j*(54)
+42 + j*(49)
+116 + j*(127)
+60 + j*(-39)
+-100 + j*(-65)
+94 + j*(-66)
+126 + j*(150)
+396 + j*(-101)
+-228 + j*(-126)
+188 + j*(-42)
+-88 + j*(-210)
+-1 + j*(-69)
+132 + j*(85)
+-140 + j*(28)
+-165 + j*(162)
+-105 + j*(129)
+-69 + j*(-122)
+-130 + j*(-45)
+-35 + j*(-15)
+-217 + j*(63)
+24 + j*(-269)
+67 + j*(103)
+-230 + j*(-104)
+74 + j*(-202)
+-48 + j*(-80)
+-175 + j*(-81)
+-118 + j*(-93)
+-151 + j*(-15)
+300 + j*(-88)
+-107 + j*(-209)
+113 + j*(52)
+3 + j*(162)
+-64 + j*(-366)
+-180 + j*(-201)
+291 + j*(65)
+56 + j*(-347)
+-21 + j*(28)
+99 + j*(154)
+119 + j*(5)
+-18 + j*(-43)
+101 + j*(-66)
+279 + j*(-172)
+210 + j*(-234)
+119 + j*(-100)
+4 + j*(-65)
+-221 + j*(-33)
+177 + j*(33)
+289 + j*(240)
+-134 + j*(261)
+-474 + j*(50)
+274 + j*(-269)
+79 + j*(-84)
+-164 + j*(63)
+-103 + j*(151)
+25 + j*(299)
+87 + j*(67)
+-302 + j*(93)
+378 + j*(22)
+230 + j*(-15)
+70 + j*(-76)
+74 + j*(-161)
+-108 + j*(46)
+52 + j*(-183)
+-117 + j*(20)
+351 + j*(-247)
+169 + j*(115)
+143 + j*(-125)
+122 + j*(-360)
+173 + j*(199)
+337 + j*(-138)
+-255 + j*(-175)
+76 + j*(108)
+256 + j*(-67)
+184 + j*(-215)
+103 + j*(303)
+244 + j*(-360)
+-130 + j*(-75)
+98 + j*(-192)
+-126 + j*(244)
+249 + j*(-49)
+331 + j*(-116)
+-232 + j*(-227)
+205 + j*(50)
+-46 + j*(156)
+274 + j*(153)
+-392 + j*(-40)
+-111 + j*(-1)
+45 + j*(-269)
+138 + j*(22)
+238 + j*(172)
+-24 + j*(-80)
+160 + j*(-28)
+-56 + j*(280)
+-26 + j*(-56)
+73 + j*(42)
+360 + j*(29)
+142 + j*(-410)
+-126 + j*(107)
+-134 + j*(288)
+42 + j*(414)
+-83 + j*(-246)
+170 + j*(19)
+1 + j*(-26)
+-31 + j*(-13)
+113 + j*(40)
+82 + j*(145)
+139 + j*(362)
+-89 + j*(122)
+-133 + j*(-552)
+-269 + j*(-70)
+-29 + j*(-21)
+-161 + j*(-243)
+-134 + j*(-10)
+16 + j*(117)
+13 + j*(-63)
+-160 + j*(252)
+-27 + j*(77)
+-252 + j*(-119)
+-65 + j*(167)
+-71 + j*(259)
+62 + j*(-130)
+-223 + j*(117)
+-58 + j*(-50)
+132 + j*(-72)
+21 + j*(157)
+56 + j*(-150)
+-171 + j*(-102)
+-42 + j*(106)
+-66 + j*(21)
+-83 + j*(119)
+158 + j*(252)
+-252 + j*(-111)
+-47 + j*(92)
+46 + j*(-76)
+-199 + j*(39)
+-5 + j*(-91)
+-65 + j*(-152)
+308 + j*(-76)
+36 + j*(276)
+-144 + j*(-122)
+382 + j*(330)
+212 + j*(-305)
+-23 + j*(-304)
+-19 + j*(117)
+150 + j*(-267)
+-317 + j*(-182)
+-100 + j*(33)
+-23 + j*(92)
+-258 + j*(-35)
+70 + j*(-20)
+-83 + j*(-13)
+138 + j*(98)
+301 + j*(-17)
+448 + j*(289)
+126 + j*(176)
+284 + j*(12)
+-176 + j*(-56)
+320 + j*(144)
+-188 + j*(-220)
+-7 + j*(-40)
+164 + j*(-198)
+23 + j*(148)
+260 + j*(184)
+-187 + j*(-52)
+-47 + j*(146)
+-234 + j*(-148)
+66 + j*(141)
+243 + j*(-199)
+-21 + j*(-17)
+178 + j*(42)
+204 + j*(93)
+106 + j*(135)
+14 + j*(88)
+135 + j*(-242)
+-35 + j*(-99)
+-186 + j*(-61)
+-167 + j*(-122)
+-21 + j*(-138)
+-41 + j*(-13)
+-83 + j*(-98)
+343 + j*(-217)
+180 + j*(-9)
+-476 + j*(-114)
+-110 + j*(-219)
+-272 + j*(211)
+-47 + j*(-130)
+-395 + j*(-134)
+-200 + j*(54)
+-107 + j*(-376)
+47 + j*(298)
+84 + j*(-206)
+-355 + j*(115)
+42 + j*(147)
+211 + j*(119)
+18 + j*(-42)
+-173 + j*(77)
+-40 + j*(259)
+-168 + j*(193)
+-167 + j*(-274)
+-182 + j*(-132)
+45 + j*(124)
+351 + j*(-177)
+170 + j*(-41)
+44 + j*(90)
+183 + j*(-95)
+-361 + j*(60)
+-24 + j*(-53)
+122 + j*(-78)
+-129 + j*(-28)
+-160 + j*(92)
+35 + j*(83)
+-105 + j*(41)
+-86 + j*(-101)
+-228 + j*(120)
+-27 + j*(-172)
+36 + j*(221)
+58 + j*(217)
+91 + j*(-128)
+-58 + j*(-247)
+-78 + j*(270)
+221 + j*(-192)
+267 + j*(66)
+115 + j*(48)
+200 + j*(33)
+155 + j*(-253)
+172 + j*(93)
+260 + j*(-219)
+241 + j*(-64)
+21 + j*(309)
+37 + j*(-251)
+238 + j*(-236)
+-4 + j*(121)
+38 + j*(-204)
+-116 + j*(-143)
+349 + j*(137)
+60 + j*(23)
+174 + j*(-243)
+169 + j*(-221)
+-192 + j*(-170)
+124 + j*(-182)
+43 + j*(-52)
+209 + j*(223)
+146 + j*(172)
+-155 + j*(64)
+28 + j*(129)
+-118 + j*(232)
+79 + j*(-8)
+-294 + j*(40)
+-414 + j*(-79)
+45 + j*(234)
+50 + j*(23)
+-139 + j*(61)
+40 + j*(41)
+88 + j*(-35)
+94 + j*(11)
+-35 + j*(-146)
+54 + j*(117)
+-107 + j*(5)
+-321 + j*(-30)
+-190 + j*(-89)
+227 + j*(90)
+-72 + j*(-39)
+-107 + j*(-324)
+-117 + j*(71)
+-33 + j*(99)
+-82 + j*(-171)
+75 + j*(-69)
+33 + j*(151)
+-106 + j*(-52)
+35 + j*(-5)
+-141 + j*(441)
+48 + j*(62)
+5 + j*(36)
+2 + j*(136)
+24 + j*(303)
+-137 + j*(-233)
+-249 + j*(241)
+53 + j*(-79)
+92 + j*(-265)
+98 + j*(210)
+-89 + j*(166)
+-18 + j*(-91)
+-62 + j*(-67)
+74 + j*(-53)
+91 + j*(-283)
+330 + j*(77)
+-16 + j*(-185)
+293 + j*(47)
+-54 + j*(66)
+17 + j*(28)
+-34 + j*(49)
+190 + j*(-28)
+-161 + j*(287)
+-99 + j*(187)
+5 + j*(34)
+21 + j*(116)
+-105 + j*(335)
+-28 + j*(-32)
+-74 + j*(-55)
+148 + j*(69)
+37 + j*(-168)
+-233 + j*(42)
+-66 + j*(-16)
+115 + j*(-319)
+81 + j*(-20)
+120 + j*(180)
+114 + j*(346)
+61 + j*(-107)
+143 + j*(-15)
+70 + j*(-122)
+-119 + j*(-272)
+-39 + j*(129)
+-163 + j*(103)
+76 + j*(169)
+-243 + j*(-21)
+-145 + j*(-156)
+-211 + j*(-214)
+127 + j*(340)
+79 + j*(-57)
+-16 + j*(-45)
+-24 + j*(87)
+161 + j*(52)
+-282 + j*(212)
+-62 + j*(91)
+-44 + j*(-33)
+81 + j*(151)
+69 + j*(68)
+237 + j*(-74)
+-132 + j*(260)
+143 + j*(-132)
+-11 + j*(-6)
+-49 + j*(88)
+-28 + j*(138)
+-341 + j*(6)
+231 + j*(35)
+88 + j*(81)
+-4 + j*(-156)
+296 + j*(79)
+-458 + j*(51)
+35 + j*(-387)
+-32 + j*(-234)
+88 + j*(-45)
+-173 + j*(-64)
+-33 + j*(-172)
+-204 + j*(-99)
+-202 + j*(228)
+105 + j*(-313)
+-60 + j*(-256)
+-104 + j*(-276)
+222 + j*(-34)
+-1 + j*(-357)
+-98 + j*(-369)
+-129 + j*(-107)
+344 + j*(312)
+-262 + j*(249)
+108 + j*(-228)
+364 + j*(-30)
+-10 + j*(83)
+-187 + j*(23)
+330 + j*(249)
+57 + j*(124)
+317 + j*(-185)
+-100 + j*(34)
+225 + j*(82)
+-36 + j*(-7)
+-25 + j*(71)
+-90 + j*(-27)
+-132 + j*(155)
+-106 + j*(-190)
+-29 + j*(403)
+-35 + j*(209)
+66 + j*(-105)
+137 + j*(-29)
+84 + j*(238)
+-1 + j*(-75)
+-158 + j*(-138)
+-120 + j*(349)
+-66 + j*(-279)
+127 + j*(-31)
+-247 + j*(42)
+186 + j*(-256)
+-69 + j*(-107)
+60 + j*(280)
+237 + j*(190)
+-161 + j*(47)
+-104 + j*(173)
+29 + j*(11)
+59 + j*(177)
+-43 + j*(-9)
+-207 + j*(248)
+115 + j*(-81)
+-122 + j*(57)
+20 + j*(-103)
+-25 + j*(-41)
+-13 + j*(66)
+-169 + j*(23)
+16 + j*(-243)
+-83 + j*(-59)
+121 + j*(-153)
+-38 + j*(-99)
+269 + j*(252)
+303 + j*(-616)
+-87 + j*(218)
+-23 + j*(-52)
+286 + j*(147)
+-146 + j*(28)
+185 + j*(88)
+181 + j*(88)
+58 + j*(300)
+-59 + j*(-236)
+-152 + j*(-32)
+-132 + j*(-127)
+-42 + j*(62)
+200 + j*(-16)
+178 + j*(87)
+-10 + j*(-289)
+85 + j*(-192)
+373 + j*(92)
+-641 + j*(26)
+-253 + j*(-136)
+-87 + j*(38)
+7 + j*(-527)
+79 + j*(-31)
+10 + j*(76)
+235 + j*(-160)
+78 + j*(-93)
+346 + j*(-32)
+45 + j*(-271)
+-30 + j*(269)
+180 + j*(-45)
+-39 + j*(125)
+-256 + j*(206)
+-24 + j*(-163)
+98 + j*(317)
+-194 + j*(-140)
+-76 + j*(-12)
+523 + j*(-112)
+392 + j*(28)
+58 + j*(-8)
+-118 + j*(-94)
+-129 + j*(17)
+-217 + j*(18)
+200 + j*(34)
+-261 + j*(-148)
+43 + j*(284)
+-160 + j*(16)
+332 + j*(67)
+36 + j*(-7)
+324 + j*(-185)
+-134 + j*(-88)
+-43 + j*(-363)
+161 + j*(-263)
+-59 + j*(-300)
+-127 + j*(164)
+-178 + j*(123)
+-146 + j*(44)
+-39 + j*(-35)
+-131 + j*(-76)
+-23 + j*(-384)
+-112 + j*(-11)
+86 + j*(177)
+127 + j*(107)
+-75 + j*(-81)
+198 + j*(50)
+24 + j*(-1)
+-17 + j*(78)
+-223 + j*(-136)
+257 + j*(152)
+-81 + j*(81)
+-128 + j*(255)
+-16 + j*(201)
+16 + j*(187)
+-143 + j*(-303)
+-144 + j*(-173)
+95 + j*(-123)
+-264 + j*(177)
+449 + j*(-10)
+65 + j*(21)
+-348 + j*(129)
+-72 + j*(-158)
+-283 + j*(43)
+59 + j*(-156)
+113 + j*(20)
+-1 + j*(115)
+201 + j*(25)
+-91 + j*(-21)
+46 + j*(140)
+-54 + j*(-143)
+71 + j*(-136)
+-296 + j*(-75)
+-202 + j*(293)
+-51 + j*(202)
+-33 + j*(88)
+231 + j*(-65)
+165 + j*(23)
+-1 + j*(165)
+-47 + j*(51)
+-4 + j*(-314)
+-141 + j*(-169)
+53 + j*(-211)
+89 + j*(204)
+-105 + j*(-218)
+61 + j*(-53)
+-143 + j*(-284)
+-11 + j*(-369)
+-54 + j*(-280)
+189 + j*(250)
+-209 + j*(-136)
+-65 + j*(-126)
+25 + j*(168)
+-137 + j*(165)
+41 + j*(-85)
+76 + j*(231)
+-229 + j*(-282)
+45 + j*(122)
+-92 + j*(66)
+-80 + j*(-161)
+57 + j*(-59)
+-95 + j*(-53)
+-37 + j*(-35)
+-20 + j*(103)
+-124 + j*(-59)
+-75 + j*(21)
+-260 + j*(-112)
+132 + j*(-57)
+183 + j*(6)
+243 + j*(-146)
+102 + j*(384)
+-172 + j*(-175)
+21 + j*(-363)
+192 + j*(-266)
+52 + j*(-297)
+-293 + j*(155)
+58 + j*(-263)
+207 + j*(14)
+62 + j*(-169)
+-152 + j*(250)
+46 + j*(-74)
+95 + j*(-74)
+-75 + j*(147)
+29 + j*(8)
+-140 + j*(-167)
+206 + j*(-33)
+249 + j*(168)
+47 + j*(38)
+72 + j*(-209)
+52 + j*(32)
+123 + j*(294)
+316 + j*(-170)
+-91 + j*(-158)
+-132 + j*(-92)
+124 + j*(127)
+215 + j*(110)
+95 + j*(141)
+-309 + j*(-30)
+231 + j*(-153)
+165 + j*(-54)
+71 + j*(-115)
+-250 + j*(-105)
+-8 + j*(-131)
+251 + j*(214)
+-199 + j*(-33)
+92 + j*(-49)
+86 + j*(187)
+-441 + j*(-16)
+303 + j*(46)
+163 + j*(-116)
+6 + j*(45)
+-53 + j*(209)
+97 + j*(202)
+371 + j*(-264)
+-113 + j*(-148)
+-70 + j*(-216)
+-23 + j*(123)
+-88 + j*(91)
+-146 + j*(96)
+45 + j*(-79)
+-67 + j*(-41)
+51 + j*(-138)
+-203 + j*(-65)
+-193 + j*(214)
+91 + j*(187)
+-246 + j*(-214)
+-300 + j*(153)
+21 + j*(-79)
+-18 + j*(-130)
+-165 + j*(256)
+88 + j*(182)
+-160 + j*(105)
+120 + j*(-272)
+440 + j*(327)
+98 + j*(3)
+-104 + j*(107)
+215 + j*(84)
+398 + j*(-12)
+146 + j*(32)
+343 + j*(6)
+-522 + j*(284)
+105 + j*(8)
+112 + j*(41)
+-263 + j*(84)
+-36 + j*(-168)
+45 + j*(90)
+-111 + j*(-188)
+1 + j*(83)
+-159 + j*(40)
+-345 + j*(59)
+-17 + j*(-190)
+-84 + j*(134)
+201 + j*(-206)
+46 + j*(-110)
+136 + j*(-88)
+144 + j*(92)
+-11 + j*(-25)
+-102 + j*(233)
+-190 + j*(285)
+50 + j*(123)
+112 + j*(102)
+72 + j*(387)
+14 + j*(-137)
+33 + j*(111)
+-60 + j*(-201)
+-86 + j*(118)
+52 + j*(259)
+52 + j*(28)
+73 + j*(-199)
+284 + j*(215)
+296 + j*(-136)
+-103 + j*(146)
+1 + j*(49)
+120 + j*(-55)
+38 + j*(187)
+-581 + j*(158)
+163 + j*(-325)
+-129 + j*(-29)
+257 + j*(113)
+135 + j*(250)
+-246 + j*(-14)
+-285 + j*(78)
+-181 + j*(-91)
+311 + j*(0)
+75 + j*(68)
+18 + j*(-100)
+144 + j*(43)
+324 + j*(95)
+-107 + j*(69)
+-133 + j*(-156)
+-203 + j*(-366)
+-245 + j*(-175)
+72 + j*(39)
+-6 + j*(-11)
+-67 + j*(179)
+-26 + j*(-18)
+-271 + j*(375)
+-201 + j*(-147)
+-57 + j*(-52)
+139 + j*(-216)
+-93 + j*(54)
+100 + j*(373)
+-148 + j*(33)
+-171 + j*(-137)
+-43 + j*(98)
+-4 + j*(-42)
+-115 + j*(213)
+22 + j*(-251)
+-165 + j*(16)
+-177 + j*(-170)
+-275 + j*(184)
+-153 + j*(-170)
+-73 + j*(-168)
+11 + j*(130)
+48 + j*(121)
+173 + j*(125)
+1 + j*(37)
+66 + j*(321)
+365 + j*(-200)
+240 + j*(107)
+231 + j*(-123)
+-115 + j*(41)
+-211 + j*(16)
+-192 + j*(-125)
+-108 + j*(50)
+-66 + j*(-6)
+-8 + j*(-118)
+81 + j*(68)
+372 + j*(-31)
+-280 + j*(66)
+105 + j*(16)
+-97 + j*(-85)
+-175 + j*(-276)
+-52 + j*(204)
+-220 + j*(64)
+-22 + j*(-260)
+-138 + j*(88)
+-86 + j*(-236)
+0 + j*(13)
+40 + j*(-56)
+-161 + j*(-40)
+-106 + j*(-194)
+-265 + j*(-81)
+86 + j*(83)
+-48 + j*(7)
+127 + j*(-83)
+218 + j*(-228)
+155 + j*(88)
+-195 + j*(288)
+-69 + j*(-33)
+-122 + j*(36)
+-195 + j*(-75)
+-36 + j*(127)
+-54 + j*(119)
+95 + j*(-52)
+18 + j*(-72)
+-44 + j*(-35)
+39 + j*(105)
+109 + j*(-2)
+-190 + j*(79)
+171 + j*(301)
+67 + j*(-164)
+93 + j*(-250)
+383 + j*(30)
+-233 + j*(148)
+64 + j*(25)
+-22 + j*(-25)
+73 + j*(160)
+457 + j*(196)
+-23 + j*(6)
+154 + j*(35)
+-78 + j*(-95)
+18 + j*(-118)
+-17 + j*(100)
+125 + j*(-159)
+-107 + j*(47)
+18 + j*(342)
+-83 + j*(-453)
+411 + j*(157)
+83 + j*(-192)
+143 + j*(-182)
+-266 + j*(-77)
+124 + j*(-392)
+94 + j*(-190)
+-200 + j*(261)
+-146 + j*(-107)
+80 + j*(-24)
+-113 + j*(57)
+-4 + j*(87)
+78 + j*(32)
+-257 + j*(-225)
+252 + j*(98)
+121 + j*(222)
+20 + j*(15)
+-233 + j*(-42)
+-76 + j*(-408)
+-141 + j*(40)
+146 + j*(-282)
+52 + j*(-11)
+88 + j*(-210)
+93 + j*(157)
+112 + j*(270)
+45 + j*(34)
+3 + j*(-139)
+20 + j*(197)
+86 + j*(-23)
+-154 + j*(-133)
+98 + j*(-40)
+-356 + j*(-88)
+-159 + j*(-144)
+235 + j*(289)
+7 + j*(-182)
+-52 + j*(-290)
+589 + j*(-199)
+-26 + j*(-64)
+14 + j*(-146)
+-436 + j*(45)
+-8 + j*(339)
+-64 + j*(-50)
+-325 + j*(53)
+83 + j*(223)
+-16 + j*(-254)
+192 + j*(-69)
+251 + j*(-84)
+228 + j*(8)
+114 + j*(163)
+-55 + j*(84)
+10 + j*(-61)
+193 + j*(84)
+-214 + j*(-66)
+-49 + j*(69)
+-231 + j*(-11)
+-22 + j*(-81)
+-199 + j*(90)
+264 + j*(138)
+-331 + j*(71)
+132 + j*(122)
+147 + j*(7)
+-77 + j*(-69)
+86 + j*(-34)
+-98 + j*(143)
+-408 + j*(153)
+243 + j*(32)
+-192 + j*(45)
+210 + j*(-25)
+2 + j*(16)
+-516 + j*(-149)
+80 + j*(-56)
+-145 + j*(54)
+108 + j*(8)
+-151 + j*(59)
+-255 + j*(200)
+28 + j*(30)
+-170 + j*(-214)
+-14 + j*(14)
+221 + j*(3)
+-190 + j*(-98)
+-173 + j*(-229)
+-131 + j*(-164)
+313 + j*(-194)
+97 + j*(112)
+222 + j*(-268)
+13 + j*(-59)
+117 + j*(-142)
+172 + j*(-177)
+67 + j*(221)
+-87 + j*(-32)
+-144 + j*(93)
+-135 + j*(-286)
+385 + j*(-101)
+-86 + j*(202)
+-149 + j*(127)
+-56 + j*(195)
+-2 + j*(-35)
+-5 + j*(-182)
+195 + j*(170)
+202 + j*(-215)
+-213 + j*(-109)
+101 + j*(-176)
+255 + j*(-240)
+-86 + j*(214)
+-165 + j*(-35)
+242 + j*(-112)
+-18 + j*(-156)
+81 + j*(-96)
+-4 + j*(120)
+-97 + j*(8)
+217 + j*(195)
+256 + j*(-281)
+71 + j*(-104)
+-125 + j*(153)
+-89 + j*(86)
+-69 + j*(210)
+-45 + j*(4)
+445 + j*(-89)
+-50 + j*(-165)
+-212 + j*(58)
+405 + j*(202)
+153 + j*(383)
+-74 + j*(199)
+317 + j*(-228)
+-6 + j*(-18)
+24 + j*(-126)
+234 + j*(141)
+-113 + j*(-23)
+128 + j*(80)
+202 + j*(194)
+52 + j*(110)
+-8 + j*(-151)
+-58 + j*(132)
+-171 + j*(115)
+54 + j*(49)
+-151 + j*(-103)
+132 + j*(-243)
+276 + j*(-27)
+-361 + j*(-115)
+-150 + j*(84)
+-148 + j*(-176)
+-145 + j*(82)
+219 + j*(-160)
+184 + j*(-7)
+33 + j*(-124)
+-95 + j*(114)
+190 + j*(-218)
+141 + j*(-73)
+-187 + j*(190)
+-1 + j*(9)
+149 + j*(6)
+254 + j*(-40)
+-35 + j*(-286)
+151 + j*(303)
+-139 + j*(-175)
+-104 + j*(49)
+-400 + j*(-63)
+92 + j*(-197)
+-318 + j*(10)
+25 + j*(-160)
+-183 + j*(-194)
+74 + j*(45)
+33 + j*(-66)
+124 + j*(-181)
+-93 + j*(74)
+206 + j*(-126)
+257 + j*(-97)
+18 + j*(9)
+-128 + j*(64)
+119 + j*(125)
+-140 + j*(11)
+-257 + j*(7)
+-356 + j*(-113)
+-295 + j*(287)
+-144 + j*(104)
+174 + j*(59)
+-13 + j*(-155)
+-43 + j*(92)
+-238 + j*(-49)
+-195 + j*(238)
+112 + j*(-262)
+-103 + j*(37)
+45 + j*(-238)
+-217 + j*(-295)
+-153 + j*(156)
+281 + j*(88)
+-107 + j*(-43)
+293 + j*(47)
+-215 + j*(80)
+-48 + j*(-238)
+-395 + j*(122)
+-348 + j*(-60)
+11 + j*(40)
+216 + j*(56)
+-78 + j*(163)
+8 + j*(-216)
+105 + j*(91)
+106 + j*(261)
+-95 + j*(-192)
+112 + j*(67)
+312 + j*(-171)
+168 + j*(-223)
+-7 + j*(171)
+-27 + j*(-176)
+166 + j*(206)
+40 + j*(89)
+-80 + j*(-222)
+-120 + j*(-236)
+-173 + j*(-10)
+-48 + j*(-100)
+-228 + j*(-205)
+303 + j*(134)
+222 + j*(18)
+-118 + j*(203)
+-35 + j*(40)
+29 + j*(-70)
+226 + j*(-18)
+164 + j*(59)
+173 + j*(-224)
+45 + j*(-255)
+149 + j*(-78)
+-10 + j*(-176)
+-168 + j*(216)
+60 + j*(46)
+45 + j*(-16)
+-254 + j*(-35)
+116 + j*(28)
+87 + j*(170)
+91 + j*(-139)
+204 + j*(-61)
+-131 + j*(-184)
+158 + j*(184)
+-118 + j*(-86)
+475 + j*(158)
+255 + j*(-69)
+54 + j*(-293)
+-11 + j*(91)
+-74 + j*(-40)
+-122 + j*(245)
+-371 + j*(-127)
+-13 + j*(-100)
+-156 + j*(1)
+71 + j*(-356)
+-117 + j*(1)
+-56 + j*(319)
+-126 + j*(-319)
+-159 + j*(-66)
+-115 + j*(188)
+-153 + j*(257)
+187 + j*(-379)
+64 + j*(-60)
+-56 + j*(6)
+-279 + j*(-78)
+437 + j*(-305)
+164 + j*(161)
+371 + j*(-175)
+76 + j*(143)
+240 + j*(-185)
+14 + j*(187)
+381 + j*(134)
+65 + j*(-382)
+274 + j*(-39)
+91 + j*(78)
+-284 + j*(24)
+115 + j*(82)
+-64 + j*(194)
+33 + j*(182)
+-130 + j*(-107)
+-77 + j*(-45)
+-229 + j*(-103)
+199 + j*(594)
+117 + j*(59)
+143 + j*(-350)
+123 + j*(31)
+-86 + j*(-33)
+-301 + j*(258)
+18 + j*(322)
+166 + j*(-163)
+157 + j*(-4)
+201 + j*(228)
+-115 + j*(-309)
+-33 + j*(-49)
+-257 + j*(1)
+75 + j*(-115)
+45 + j*(367)
+-37 + j*(-36)
+-77 + j*(-276)
+163 + j*(138)
+-42 + j*(103)
+13 + j*(-232)
+56 + j*(110)
+-30 + j*(-88)
+-47 + j*(-7)
+42 + j*(235)
+151 + j*(-332)
+257 + j*(-101)
+152 + j*(216)
+-316 + j*(212)
+-92 + j*(115)
+127 + j*(-179)
+-67 + j*(47)
+-197 + j*(26)
+441 + j*(-165)
+-227 + j*(124)
+49 + j*(45)
+-81 + j*(368)
+-62 + j*(-108)
+251 + j*(-332)
+-36 + j*(-64)
+147 + j*(-291)
+-129 + j*(-181)
+226 + j*(-194)
+-74 + j*(-160)
+-250 + j*(-107)
+-322 + j*(72)
+-95 + j*(15)
+-130 + j*(14)
+-42 + j*(-41)
+23 + j*(-275)
+-61 + j*(-23)
+-400 + j*(257)
+73 + j*(-130)
+-119 + j*(-42)
+-28 + j*(-104)
+27 + j*(-366)
+-64 + j*(209)
+84 + j*(206)
+-176 + j*(-442)
+103 + j*(-235)
+-76 + j*(-279)
+99 + j*(52)
+-264 + j*(-8)
+-288 + j*(71)
+14 + j*(24)
+-402 + j*(25)
+-299 + j*(156)
+-146 + j*(135)
+-21 + j*(187)
+-255 + j*(-52)
+-214 + j*(239)
+106 + j*(-19)
+63 + j*(-71)
+25 + j*(-88)
+220 + j*(426)
+-358 + j*(91)
+-252 + j*(-223)
+-54 + j*(-177)
+122 + j*(-41)
+105 + j*(-161)
+-65 + j*(84)
+252 + j*(10)
+-168 + j*(-198)
+183 + j*(-35)
+11 + j*(172)
+-226 + j*(-230)
+-184 + j*(-214)
+-151 + j*(-233)
+-92 + j*(-59)
+31 + j*(100)
+16 + j*(331)
+125 + j*(81)
+-301 + j*(-35)
+69 + j*(-139)
+-60 + j*(107)
+-64 + j*(-63)
+-43 + j*(-99)
+-130 + j*(-54)
+134 + j*(381)
+-155 + j*(17)
+-499 + j*(223)
+-148 + j*(-124)
+-95 + j*(226)
+247 + j*(-55)
+-181 + j*(-183)
+-94 + j*(-284)
+-287 + j*(-103)
+-136 + j*(59)
+59 + j*(67)
+259 + j*(-352)
+-150 + j*(-10)
+-43 + j*(119)
+69 + j*(30)
+-106 + j*(351)
+-38 + j*(-85)
+366 + j*(249)
+71 + j*(197)
+215 + j*(-37)
+-136 + j*(196)
+-231 + j*(75)
+97 + j*(-383)
+103 + j*(95)
+99 + j*(-164)
+172 + j*(-106)
+93 + j*(177)
+42 + j*(-337)
+-23 + j*(-7)
+199 + j*(262)
+-141 + j*(70)
+60 + j*(-132)
+-5 + j*(-18)
+-40 + j*(117)
+-18 + j*(127)
+-224 + j*(245)
+-200 + j*(-121)
+-22 + j*(74)
+-23 + j*(-212)
+129 + j*(119)
+42 + j*(286)
+18 + j*(261)
+-17 + j*(-211)
+-72 + j*(84)
+327 + j*(-28)
+2 + j*(-11)
+100 + j*(-301)
+-37 + j*(9)
+-66 + j*(-165)
+16 + j*(-57)
+-59 + j*(-22)
+49 + j*(158)
+338 + j*(144)
+11 + j*(87)
+-276 + j*(-42)
+-20 + j*(226)
+-117 + j*(0)
+-199 + j*(-294)
+-274 + j*(18)
+-21 + j*(-148)
+-173 + j*(216)
+103 + j*(101)
+162 + j*(18)
+301 + j*(157)
+-43 + j*(486)
+174 + j*(-354)
+-61 + j*(-138)
+-62 + j*(-337)
+24 + j*(161)
+106 + j*(-105)
+69 + j*(-204)
+247 + j*(166)
+-199 + j*(235)
+11 + j*(107)
+273 + j*(180)
+157 + j*(-83)
+174 + j*(21)
+-88 + j*(192)
+-171 + j*(-54)
+393 + j*(294)
+-23 + j*(-21)
+-6 + j*(4)
+-73 + j*(-25)
+-319 + j*(-282)
+-407 + j*(-130)
+86 + j*(76)
+293 + j*(52)
+392 + j*(-10)
+-297 + j*(-74)
+89 + j*(-230)
+-149 + j*(286)
+-185 + j*(43)
+-91 + j*(-103)
+-277 + j*(-305)
+-189 + j*(-58)
+-190 + j*(-8)
+-54 + j*(-74)
+99 + j*(26)
+-83 + j*(-206)
+223 + j*(82)
+-60 + j*(-88)
+342 + j*(-260)
+-350 + j*(-141)
+154 + j*(-4)
+48 + j*(-197)
+153 + j*(211)
+223 + j*(118)
+52 + j*(-206)
+158 + j*(-131)
+-368 + j*(49)
+-180 + j*(-28)
+19 + j*(-435)
+112 + j*(83)
+-167 + j*(-94)
+161 + j*(284)
+317 + j*(196)
+-108 + j*(-390)
+-236 + j*(105)
+-287 + j*(-153)
+-87 + j*(-1)
+-42 + j*(-37)
+-77 + j*(-438)
+-9 + j*(59)
+48 + j*(-317)
+395 + j*(133)
+-83 + j*(86)
+-60 + j*(16)
+-31 + j*(-90)
+144 + j*(-65)
+-80 + j*(-160)
+42 + j*(-12)
+-260 + j*(247)
+-56 + j*(185)
+16 + j*(70)
+-87 + j*(-107)
+74 + j*(187)
+-37 + j*(210)
+303 + j*(52)
+-42 + j*(323)
+-40 + j*(-14)
+54 + j*(119)
+-30 + j*(100)
+-129 + j*(-9)
+223 + j*(11)
+-103 + j*(34)
+225 + j*(316)
+-11 + j*(-108)
+-141 + j*(204)
+86 + j*(-39)
+50 + j*(361)
+-120 + j*(-119)
+233 + j*(-174)
+-277 + j*(-74)
+-126 + j*(169)
+58 + j*(-33)
+-177 + j*(-51)
+-153 + j*(-271)
+151 + j*(119)
+215 + j*(18)
+-69 + j*(-188)
+305 + j*(130)
+-144 + j*(7)
+-210 + j*(50)
+190 + j*(148)
+78 + j*(-69)
+37 + j*(96)
+42 + j*(209)
+243 + j*(57)
+103 + j*(-252)
+-69 + j*(101)
+-43 + j*(-157)
+-168 + j*(-206)
+27 + j*(-35)
+100 + j*(-18)
+6 + j*(33)
+-52 + j*(5)
+13 + j*(-250)
+17 + j*(268)
+204 + j*(-153)
+210 + j*(-54)
+-117 + j*(85)
+-30 + j*(22)
+-255 + j*(19)
+-3 + j*(-106)
+-87 + j*(-130)
+50 + j*(-207)
+340 + j*(143)
+-350 + j*(-105)
+190 + j*(62)
+32 + j*(-141)
+21 + j*(289)
+-322 + j*(394)
+29 + j*(-30)
+132 + j*(-94)
+114 + j*(-328)
+-195 + j*(372)
+-228 + j*(-20)
+54 + j*(66)
+-39 + j*(-59)
+186 + j*(10)
+153 + j*(258)
+12 + j*(45)
+4 + j*(-96)
+-33 + j*(54)
+-210 + j*(116)
+-369 + j*(72)
+28 + j*(180)
+93 + j*(114)
+-98 + j*(208)
+211 + j*(119)
+-148 + j*(-176)
+-391 + j*(-227)
+-63 + j*(122)
+59 + j*(30)
+41 + j*(269)
+-97 + j*(200)
+-49 + j*(-78)
+-208 + j*(261)
+25 + j*(-16)
+-253 + j*(8)
+146 + j*(68)
+71 + j*(28)
+221 + j*(-176)
+-281 + j*(-49)
+278 + j*(134)
+83 + j*(168)
+-66 + j*(543)
+260 + j*(-264)
+-245 + j*(-107)
+-205 + j*(669)
+-275 + j*(207)
+-265 + j*(294)
+88 + j*(137)
+-162 + j*(-23)
+-410 + j*(-24)
+-228 + j*(-286)
+486 + j*(-153)
+-10 + j*(112)
+113 + j*(-173)
+317 + j*(-373)
+-211 + j*(-313)
+-163 + j*(-56)
+362 + j*(-64)
+83 + j*(397)
+-247 + j*(312)
+385 + j*(-145)
+-151 + j*(74)
+361 + j*(161)
+-247 + j*(451)
+-320 + j*(-274)
+314 + j*(337)
+155 + j*(233)
+114 + j*(-267)
+115 + j*(201)
+377 + j*(-134)
+194 + j*(218)
+36 + j*(202)
+-598 + j*(232)
+122 + j*(-301)
+411 + j*(256)
+260 + j*(-323)
+12 + j*(466)
+-78 + j*(-218)
+267 + j*(-318)
+-243 + j*(-390)
+573 + j*(441)
+-57 + j*(-368)
+-492 + j*(141)
+-271 + j*(-62)
+310 + j*(246)
+226 + j*(-334)
+-395 + j*(-523)
+-323 + j*(166)
+-339 + j*(-184)
+283 + j*(90)
+-737 + j*(-246)
+196 + j*(335)
+354 + j*(-433)
+-33 + j*(13)
+-402 + j*(-357)
+322 + j*(209)
+69 + j*(109)
+453 + j*(-119)
+245 + j*(34)
+296 + j*(-48)
+283 + j*(-426)
+228 + j*(-288)
+86 + j*(185)
+453 + j*(-25)
+-137 + j*(255)
+77 + j*(-154)
+-166 + j*(-66)
+-342 + j*(179)
+-454 + j*(-412)
+387 + j*(-252)
+292 + j*(122)
+334 + j*(0)
+-254 + j*(129)
+-116 + j*(-10)
+-292 + j*(-6)
+268 + j*(-445)
+-209 + j*(-537)
+424 + j*(-64)
+279 + j*(-367)
+-361 + j*(-91)
+-243 + j*(-316)
+250 + j*(-355)
+238 + j*(-216)
+-464 + j*(386)
+-296 + j*(150)
+-192 + j*(-322)
+151 + j*(-255)
+341 + j*(361)
+-467 + j*(269)
+-282 + j*(-421)
+180 + j*(-375)
+-428 + j*(-371)
+211 + j*(272)
+65 + j*(-426)
+-378 + j*(-335)
+158 + j*(-18)
+-214 + j*(195)
+-12 + j*(-337)
+-115 + j*(116)
+433 + j*(-126)
+228 + j*(-88)
+-329 + j*(54)
+425 + j*(-19)
+-443 + j*(496)
+358 + j*(-255)
+-401 + j*(272)
+285 + j*(172)
+-81 + j*(405)
+10 + j*(-358)
+-370 + j*(102)
+-477 + j*(30)
+8 + j*(519)
+-323 + j*(447)
+-527 + j*(-167)
+-218 + j*(36)
+-116 + j*(-40)
+501 + j*(-393)
+180 + j*(-192)
+-93 + j*(-530)
+-57 + j*(-521)
+21 + j*(-306)
+252 + j*(228)
+-330 + j*(-42)
+35 + j*(-476)
+-482 + j*(-399)
+221 + j*(348)
+-257 + j*(-202)
+-110 + j*(-249)
+313 + j*(-1)
+-303 + j*(51)
+-374 + j*(683)
+339 + j*(279)
+428 + j*(363)
+18 + j*(-341)
+355 + j*(508)
+-128 + j*(265)
+-309 + j*(-98)
+-28 + j*(-35)
+-439 + j*(231)
+499 + j*(458)
+-546 + j*(-80)
+-31 + j*(395)
+-47 + j*(-1)
+135 + j*(-437)
+299 + j*(126)
+161 + j*(424)
+275 + j*(-41)
+-172 + j*(77)
+-433 + j*(57)
+477 + j*(-182)
+334 + j*(349)
+233 + j*(-412)
+414 + j*(93)
+93 + j*(103)
+-146 + j*(-267)
+-232 + j*(-346)
+324 + j*(204)
+-500 + j*(-10)
+276 + j*(-453)
+23 + j*(-245)
+343 + j*(-359)
+419 + j*(-468)
+517 + j*(83)
+332 + j*(583)
+355 + j*(-421)
+-238 + j*(-115)
+729 + j*(-23)
+218 + j*(148)
+305 + j*(-159)
+-265 + j*(102)
+-346 + j*(109)
+343 + j*(140)
+504 + j*(-364)
+-424 + j*(-228)
+-202 + j*(64)
+-35 + j*(265)
+-456 + j*(599)
+-388 + j*(-223)
+83 + j*(-33)
+375 + j*(-334)
+-115 + j*(53)
+383 + j*(387)
+110 + j*(-587)
+518 + j*(49)
+318 + j*(418)
+-219 + j*(-455)
+-37 + j*(-326)
+-233 + j*(182)
+-334 + j*(406)
+559 + j*(327)
+-398 + j*(265)
+-517 + j*(-204)
+436 + j*(204)
+260 + j*(644)
+407 + j*(-289)
+355 + j*(-119)
+377 + j*(-563)
+171 + j*(-69)
+313 + j*(-574)
+228 + j*(-445)
+-118 + j*(-154)
+-161 + j*(424)
+124 + j*(-366)
+335 + j*(-135)
+-99 + j*(-424)
+437 + j*(506)
+490 + j*(747)
+272 + j*(79)
+-28 + j*(-279)
+214 + j*(333)
+-190 + j*(251)
+220 + j*(-320)
+18 + j*(298)
+292 + j*(136)
+-164 + j*(-386)
+-437 + j*(373)
+-122 + j*(-311)
+59 + j*(-512)
+115 + j*(-47)
+371 + j*(105)
+432 + j*(-331)
+-418 + j*(247)
+-438 + j*(356)
+231 + j*(-129)
+-334 + j*(178)
+-309 + j*(-184)
+269 + j*(460)
+-460 + j*(118)
+537 + j*(36)
+550 + j*(224)
+275 + j*(-334)
+-344 + j*(245)
+-120 + j*(-237)
+122 + j*(-154)
+68 + j*(-146)
+68 + j*(-363)
+-211 + j*(-162)
+-258 + j*(-269)
+560 + j*(-274)
+145 + j*(-81)
+562 + j*(231)
+-363 + j*(-486)
+429 + j*(-189)
+317 + j*(286)
+298 + j*(-331)
+110 + j*(-121)
+4 + j*(-651)
+4 + j*(648)
+318 + j*(506)
+478 + j*(79)
+103 + j*(40)
+-136 + j*(-419)
+412 + j*(-26)
+-493 + j*(290)
+-364 + j*(513)
+158 + j*(35)
+-472 + j*(-109)
+-293 + j*(-365)
+372 + j*(437)
+-171 + j*(-282)
+-439 + j*(202)
+-136 + j*(202)
+-196 + j*(427)
+-387 + j*(283)
+-329 + j*(118)
+-320 + j*(-251)
+-141 + j*(382)
+290 + j*(-96)
+262 + j*(-165)
+-173 + j*(-39)
+126 + j*(-477)
+-247 + j*(299)
+-247 + j*(382)
+-315 + j*(356)
+141 + j*(-220)
+291 + j*(-223)
+281 + j*(448)
+287 + j*(90)
+457 + j*(-190)
+-184 + j*(438)
+302 + j*(-472)
+-176 + j*(286)
+-207 + j*(-400)
+439 + j*(-117)
+74 + j*(125)
+292 + j*(-349)
+299 + j*(-208)
+-30 + j*(-268)
+-59 + j*(-288)
+-226 + j*(-315)
+-499 + j*(-209)
+-340 + j*(423)
+-389 + j*(-105)
+-170 + j*(-335)
+-76 + j*(225)
+-312 + j*(88)
+379 + j*(303)
+284 + j*(-255)
+-291 + j*(296)
+601 + j*(220)
+207 + j*(105)
+148 + j*(313)
+281 + j*(420)
+-402 + j*(382)
+-141 + j*(148)
+-74 + j*(318)
+-618 + j*(-348)
+-385 + j*(-310)
+448 + j*(233)
+471 + j*(-279)
+9 + j*(125)
+-191 + j*(-74)
+559 + j*(529)
+-421 + j*(-25)
+615 + j*(-308)
+-161 + j*(370)
+493 + j*(-135)
+-39 + j*(-309)
+-270 + j*(-256)
+527 + j*(8)
+-204 + j*(474)
+88 + j*(514)
+-276 + j*(-429)
+238 + j*(277)
+-216 + j*(165)
+-202 + j*(-349)
+-73 + j*(-279)
+267 + j*(279)
+-186 + j*(-200)
+-404 + j*(639)
+233 + j*(-351)
+304 + j*(-202)
+-91 + j*(-161)
+383 + j*(-247)
+-437 + j*(-287)
+-275 + j*(-8)
+453 + j*(-290)
+305 + j*(-100)
+323 + j*(-377)
+22 + j*(112)
+-371 + j*(-85)
+-23 + j*(-8)
+276 + j*(173)
+226 + j*(120)
+-491 + j*(337)
+-245 + j*(497)
+368 + j*(-130)
+77 + j*(190)
+378 + j*(34)
+-298 + j*(187)
+146 + j*(322)
+-494 + j*(-216)
+-312 + j*(80)
+361 + j*(195)
+213 + j*(-537)
+-49 + j*(-452)
+-282 + j*(-228)
+-171 + j*(382)
+74 + j*(-387)
+-382 + j*(378)
+513 + j*(-339)
+67 + j*(-65)
+301 + j*(-3)
+438 + j*(-215)
+-516 + j*(100)
+55 + j*(-149)
+-47 + j*(-359)
+92 + j*(-285)
+-182 + j*(193)
+152 + j*(-314)
+-270 + j*(255)
+-334 + j*(-128)
+299 + j*(-450)
+-197 + j*(311)
+-231 + j*(-173)
+458 + j*(-262)
+-206 + j*(477)
+-338 + j*(202)
+-37 + j*(454)
+-477 + j*(-1)
+-157 + j*(-477)
+-339 + j*(-322)
+-278 + j*(607)
+257 + j*(-292)
+-199 + j*(77)
+132 + j*(182)
+-314 + j*(-312)
+-439 + j*(366)
+-319 + j*(-279)
+358 + j*(74)
+-198 + j*(-170)
+557 + j*(-256)
+-207 + j*(-424)
+-472 + j*(-307)
+158 + j*(228)
+-80 + j*(-64)
+395 + j*(383)
+-168 + j*(-6)
+-40 + j*(-215)
+78 + j*(-342)
+-28 + j*(97)
+357 + j*(73)
+-584 + j*(-170)
+-510 + j*(296)
+-155 + j*(42)
+187 + j*(13)
+510 + j*(334)
+113 + j*(-436)
+-448 + j*(265)
+-327 + j*(184)
+128 + j*(141)
+211 + j*(-30)
+139 + j*(197)
+-36 + j*(65)
+546 + j*(220)
+473 + j*(-143)
+-139 + j*(175)
+-473 + j*(243)
+247 + j*(-214)
+18 + j*(262)
+28 + j*(-354)
+140 + j*(-25)
+-325 + j*(-457)
+-284 + j*(-313)
+229 + j*(-353)
+-337 + j*(-385)
+448 + j*(501)
+-292 + j*(-126)
+484 + j*(-617)
+-291 + j*(-453)
+-297 + j*(-247)
+347 + j*(-323)
+204 + j*(-272)
+-252 + j*(-155)
+-148 + j*(-477)
+166 + j*(378)
+142 + j*(0)
+174 + j*(438)
+653 + j*(-51)
+259 + j*(458)
+-282 + j*(237)
+13 + j*(350)
+-537 + j*(365)
+215 + j*(315)
+467 + j*(129)
+244 + j*(-213)
+285 + j*(1)
+182 + j*(-56)
+135 + j*(-305)
+208 + j*(-312)
+612 + j*(-123)
+303 + j*(473)
+102 + j*(-471)
+-190 + j*(-270)
+3 + j*(-470)
+192 + j*(483)
+94 + j*(-435)
+-69 + j*(333)
+527 + j*(9)
+-203 + j*(201)
+159 + j*(1)
+-428 + j*(333)
+54 + j*(-194)
+391 + j*(303)
+-171 + j*(-295)
+315 + j*(-127)
+260 + j*(197)
+-146 + j*(-67)
+297 + j*(446)
+-474 + j*(285)
+-95 + j*(165)
+286 + j*(-295)
+-482 + j*(-386)
+37 + j*(-359)
+-295 + j*(-119)
+187 + j*(-374)
+359 + j*(-55)
+-294 + j*(-349)
+301 + j*(301)
+148 + j*(-211)
+-259 + j*(-183)
+-325 + j*(28)
+-144 + j*(39)
+-403 + j*(-242)
+-465 + j*(49)
+176 + j*(-325)
+262 + j*(-41)
+547 + j*(260)
+-316 + j*(65)
+425 + j*(-1)
+310 + j*(-226)
+-163 + j*(-569)
+-361 + j*(268)
+385 + j*(-217)
+-474 + j*(-19)
+-143 + j*(238)
+-280 + j*(-138)
+170 + j*(233)
+124 + j*(-78)
+593 + j*(348)
+-291 + j*(-136)
+98 + j*(542)
+-211 + j*(-704)
+431 + j*(-303)
+79 + j*(-228)
+134 + j*(-62)
+-247 + j*(-397)
+567 + j*(52)
+521 + j*(-226)
+368 + j*(-127)
+-654 + j*(28)
+-457 + j*(595)
+-162 + j*(-465)
+-161 + j*(-552)
+202 + j*(-199)
+-409 + j*(-440)
+623 + j*(137)
+305 + j*(6)
+-115 + j*(-160)
+206 + j*(-120)
+182 + j*(285)
+-478 + j*(-85)
+-197 + j*(-403)
+119 + j*(-354)
+-308 + j*(349)
+482 + j*(-368)
+-296 + j*(96)
+-27 + j*(141)
+665 + j*(389)
+458 + j*(179)
+-8 + j*(-435)
+-648 + j*(-80)
+-403 + j*(192)
+-212 + j*(161)
+319 + j*(-486)
+222 + j*(-178)
+308 + j*(338)
+-88 + j*(-101)
+406 + j*(-424)
+-95 + j*(-590)
+-412 + j*(-542)
+-64 + j*(-274)
+-245 + j*(320)
+144 + j*(192)
+144 + j*(300)
+225 + j*(-187)
+-200 + j*(352)
+-576 + j*(-369)
+86 + j*(-57)
+243 + j*(-177)
+-106 + j*(-433)
+275 + j*(361)
+85 + j*(164)
+-300 + j*(338)
+-659 + j*(-456)
+-293 + j*(-298)
+-453 + j*(209)
+-493 + j*(165)
+-635 + j*(-501)
+-353 + j*(357)
+-294 + j*(184)
+47 + j*(-356)
+251 + j*(37)
+490 + j*(250)
+-204 + j*(-330)
+344 + j*(291)
+110 + j*(165)
+97 + j*(18)
+540 + j*(-192)
+-569 + j*(-88)
+-135 + j*(95)
+-326 + j*(-617)
+115 + j*(-14)
+263 + j*(-353)
+436 + j*(-301)
+83 + j*(265)
+-94 + j*(269)
+-194 + j*(-245)
+-6 + j*(-158)
+-156 + j*(-540)
+476 + j*(313)
+308 + j*(-288)
+-74 + j*(-361)
+-286 + j*(-144)
+332 + j*(-60)
+327 + j*(147)
+-452 + j*(477)
+95 + j*(116)
+477 + j*(413)
+343 + j*(427)
+548 + j*(351)
+-358 + j*(108)
+-147 + j*(-146)
+-383 + j*(-209)
+-431 + j*(-528)
+555 + j*(473)
+233 + j*(-53)
+-44 + j*(-122)
+339 + j*(626)
+-10 + j*(-454)
+-10 + j*(484)
+-222 + j*(225)
+-47 + j*(90)
+170 + j*(162)
+61 + j*(-95)
+25 + j*(-11)
+74 + j*(269)
+-2 + j*(243)
+3 + j*(30)
+-267 + j*(-80)
+59 + j*(374)
+-35 + j*(-372)
+165 + j*(221)
+-102 + j*(-175)
+-34 + j*(-115)
+-75 + j*(-95)
+126 + j*(88)
+-245 + j*(194)
+-351 + j*(72)
+33 + j*(47)
+-87 + j*(-266)
+-95 + j*(165)
+-56 + j*(42)
+179 + j*(123)
+-30 + j*(170)
+5 + j*(-428)
+279 + j*(346)
+-349 + j*(-42)
+-9 + j*(-86)
+-62 + j*(293)
+344 + j*(-372)
+148 + j*(-54)
+-160 + j*(-57)
+-57 + j*(109)
+-88 + j*(128)
+-73 + j*(156)
+-130 + j*(60)
+-206 + j*(472)
+-129 + j*(4)
+231 + j*(-168)
+-84 + j*(-132)
+-189 + j*(310)
+-64 + j*(-107)
+274 + j*(-236)
+-53 + j*(-1)
+8 + j*(-197)
+327 + j*(-13)
+85 + j*(321)
+41 + j*(158)
+134 + j*(267)
+53 + j*(129)
+42 + j*(-11)
+144 + j*(-164)
+216 + j*(29)
+-70 + j*(-49)
+-153 + j*(-78)
+303 + j*(91)
+248 + j*(-240)
+60 + j*(191)
+51 + j*(51)
+38 + j*(30)
+-110 + j*(72)
+395 + j*(-380)
+-98 + j*(-201)
+-21 + j*(-40)
+26 + j*(122)
+6 + j*(268)
+-85 + j*(78)
+105 + j*(49)
+152 + j*(-69)
+277 + j*(134)
+59 + j*(-185)
+-112 + j*(-143)
+-12 + j*(275)
+-103 + j*(-44)
+-190 + j*(-227)
+-245 + j*(105)
+-21 + j*(-148)
+-67 + j*(45)
+154 + j*(128)
+-110 + j*(-153)
+-33 + j*(-143)
+-88 + j*(-81)
+163 + j*(-1)
+42 + j*(-227)
+93 + j*(1)
+202 + j*(-52)
+305 + j*(58)
+-170 + j*(-458)
+-181 + j*(418)
+291 + j*(402)
+-198 + j*(166)
+196 + j*(-259)
+-263 + j*(186)
+77 + j*(137)
+59 + j*(-204)
+379 + j*(-7)
+-19 + j*(64)
+235 + j*(35)
+81 + j*(-90)
+24 + j*(79)
+54 + j*(-92)
+-119 + j*(-243)
+99 + j*(187)
+-18 + j*(109)
+139 + j*(-76)
+-267 + j*(-52)
+-111 + j*(92)
+6 + j*(-2)
+57 + j*(158)
+158 + j*(-405)
+-224 + j*(242)
+271 + j*(-42)
+131 + j*(-201)
+151 + j*(192)
+-50 + j*(42)
+333 + j*(-21)
+-34 + j*(-134)
+-121 + j*(110)
+-480 + j*(-63)
+40 + j*(-447)
+-150 + j*(147)
+90 + j*(-212)
+-186 + j*(-5)
+174 + j*(-49)
+-319 + j*(91)
+145 + j*(-51)
+-251 + j*(-44)
+57 + j*(13)
+-9 + j*(-190)
+-72 + j*(107)
+54 + j*(114)
+156 + j*(20)
+-134 + j*(98)
+-89 + j*(-16)
+-120 + j*(-82)
+-135 + j*(-173)
+307 + j*(-235)
+-24 + j*(-242)
+132 + j*(-212)
+-139 + j*(-104)
+349 + j*(-211)
+23 + j*(146)
+65 + j*(25)
+-104 + j*(140)
+-110 + j*(115)
+-97 + j*(-174)
+162 + j*(35)
+86 + j*(-174)
+222 + j*(48)
+136 + j*(279)
+-100 + j*(-28)
+-5 + j*(-159)
+49 + j*(-167)
+-3 + j*(230)
+-57 + j*(12)
+136 + j*(-295)
+62 + j*(-274)
+-178 + j*(-213)
+-34 + j*(284)
+102 + j*(174)
+-112 + j*(83)
+99 + j*(161)
+-141 + j*(-249)
+16 + j*(21)
+135 + j*(-135)
+62 + j*(162)
+23 + j*(-67)
+-128 + j*(-1)
+-24 + j*(-153)
+8 + j*(128)
+134 + j*(-47)
+-240 + j*(185)
+18 + j*(310)
+-136 + j*(108)
+-266 + j*(-65)
+174 + j*(33)
+-188 + j*(18)
+-146 + j*(180)
+128 + j*(-28)
+339 + j*(157)
+-163 + j*(215)
+148 + j*(26)
+-57 + j*(-83)
+-116 + j*(82)
+-91 + j*(110)
+-258 + j*(1)
+-128 + j*(-60)
+26 + j*(-158)
+-87 + j*(-183)
+1 + j*(12)
+-73 + j*(313)
+265 + j*(-34)
+-39 + j*(-241)
+-30 + j*(66)
+81 + j*(-78)
+97 + j*(-133)
+-57 + j*(-127)
+94 + j*(-61)
+228 + j*(-84)
+-77 + j*(276)
+76 + j*(86)
+-38 + j*(-375)
+-130 + j*(136)
+-11 + j*(-57)
+-182 + j*(25)
+40 + j*(-249)
+-206 + j*(100)
+0 + j*(119)
+-240 + j*(-139)
+-165 + j*(55)
+170 + j*(-28)
+361 + j*(-87)
+91 + j*(132)
+10 + j*(139)
+-154 + j*(-103)
+37 + j*(39)
+-142 + j*(-283)
+181 + j*(207)
+-1 + j*(-238)
+-273 + j*(93)
+27 + j*(-272)
+-78 + j*(-228)
+322 + j*(-95)
+-100 + j*(-489)
+-257 + j*(-308)
+-112 + j*(302)
+145 + j*(243)
+-69 + j*(88)
+-78 + j*(-173)
+96 + j*(107)
+-100 + j*(178)
+-348 + j*(45)
+-27 + j*(30)
+267 + j*(-211)
+52 + j*(-66)
+236 + j*(-195)
+339 + j*(-69)
+351 + j*(125)
+-79 + j*(-368)
+71 + j*(4)
+-151 + j*(159)
+-47 + j*(-404)
+-266 + j*(209)
+175 + j*(46)
+-301 + j*(-93)
+281 + j*(-106)
+-25 + j*(-88)
+-96 + j*(-258)
+160 + j*(-1)
+128 + j*(28)
+11 + j*(43)
+137 + j*(412)
+-276 + j*(141)
+64 + j*(-101)
+-82 + j*(-85)
+-194 + j*(100)
+-305 + j*(-136)
+45 + j*(175)
+-28 + j*(-45)
+190 + j*(169)
+265 + j*(74)
+264 + j*(-54)
+-26 + j*(112)
+-264 + j*(177)
+-255 + j*(320)
+127 + j*(70)
+184 + j*(-347)
+132 + j*(244)
+298 + j*(-8)
+-182 + j*(-144)
+-226 + j*(175)
+-40 + j*(323)
+200 + j*(-257)
+-293 + j*(282)
+11 + j*(-280)
+-1 + j*(-445)
+18 + j*(-180)
+134 + j*(10)
+-3 + j*(-98)
+262 + j*(-4)
+45 + j*(153)
+376 + j*(84)
+-324 + j*(185)
+-197 + j*(-124)
+-152 + j*(-61)
+-40 + j*(-2)
+-173 + j*(-68)
+98 + j*(108)
+261 + j*(-73)
+119 + j*(76)
+28 + j*(-102)
+-305 + j*(-276)
+243 + j*(180)
+-221 + j*(128)
+64 + j*(-102)
+-108 + j*(267)
+-8 + j*(-108)
+-116 + j*(139)
+-91 + j*(-62)
+24 + j*(25)
+-83 + j*(98)
+45 + j*(-124)
+173 + j*(47)
+-124 + j*(-233)
+-47 + j*(-125)
+-88 + j*(-132)
+-21 + j*(277)
+-112 + j*(-133)
+88 + j*(97)
+-320 + j*(354)
+338 + j*(259)
+-6 + j*(-208)
+-8 + j*(-50)
+310 + j*(-15)
+-33 + j*(-134)
+93 + j*(-54)
+70 + j*(-214)
+10 + j*(-65)
+123 + j*(78)
+317 + j*(147)
+-209 + j*(-153)
+513 + j*(-206)
+-306 + j*(-128)
+27 + j*(-395)
+112 + j*(90)
+-17 + j*(35)
+-57 + j*(-4)
+-122 + j*(-385)
+30 + j*(-61)
+-167 + j*(238)
+269 + j*(265)
+203 + j*(41)
+253 + j*(70)
+52 + j*(-152)
+-53 + j*(-49)
+96 + j*(49)
+-202 + j*(-424)
+34 + j*(-286)
+-505 + j*(-199)
+-190 + j*(166)
+308 + j*(-265)
+-186 + j*(451)
+-331 + j*(-117)
+115 + j*(64)
+-171 + j*(111)
+-106 + j*(266)
+143 + j*(-148)
+-13 + j*(16)
+-168 + j*(375)
+211 + j*(150)
+-470 + j*(104)
+-274 + j*(-323)
+198 + j*(76)
+115 + j*(349)
+-244 + j*(129)
+-5 + j*(-64)
+309 + j*(-34)
+18 + j*(107)
+482 + j*(76)
+136 + j*(245)
+-91 + j*(-34)
+-130 + j*(153)
+83 + j*(-168)
+0 + j*(-32)
+23 + j*(-372)
+-44 + j*(-225)
+-228 + j*(-75)
+28 + j*(244)
+-141 + j*(82)
+-149 + j*(-58)
+-271 + j*(-217)
+-331 + j*(270)
+-100 + j*(-6)
+185 + j*(-83)
+325 + j*(-273)
+226 + j*(-206)
+240 + j*(86)
+-154 + j*(-227)
+-48 + j*(-69)
+-42 + j*(72)
+377 + j*(137)
+62 + j*(-402)
+-53 + j*(-8)
+29 + j*(63)
+-30 + j*(204)
+-255 + j*(390)
+233 + j*(180)
+-53 + j*(-97)
+-42 + j*(-55)
+-32 + j*(-76)
+66 + j*(410)
+33 + j*(243)
+163 + j*(-12)
+-195 + j*(-38)
+254 + j*(98)
+-132 + j*(-132)
+7 + j*(-87)
+136 + j*(240)
+59 + j*(42)
+225 + j*(-68)
+-159 + j*(152)
+-129 + j*(-4)
+269 + j*(-86)
+-37 + j*(79)
+-436 + j*(-71)
+-23 + j*(211)
+163 + j*(176)
+-89 + j*(-98)
+-129 + j*(-387)
+118 + j*(8)
+38 + j*(-47)
+337 + j*(-88)
+-4 + j*(-1)
+231 + j*(-82)
+54 + j*(366)
+-73 + j*(138)
+-8 + j*(-69)
+-163 + j*(135)
+-159 + j*(-257)
+-214 + j*(-268)
+-60 + j*(-36)
+69 + j*(182)
+172 + j*(115)
+-105 + j*(288)
+77 + j*(-184)
+-107 + j*(101)
+248 + j*(45)
+61 + j*(-101)
+292 + j*(-93)
+69 + j*(-192)
+143 + j*(66)
+-279 + j*(138)
+-74 + j*(-21)
+371 + j*(-74)
+134 + j*(300)
+-71 + j*(8)
+108 + j*(-291)
+4 + j*(129)
+-373 + j*(-51)
+59 + j*(-117)
+189 + j*(-206)
+206 + j*(28)
+-242 + j*(-433)
+-98 + j*(-260)
+-102 + j*(169)
+-82 + j*(33)
+-11 + j*(-184)
+-24 + j*(-47)
+77 + j*(-71)
+-117 + j*(-44)
+204 + j*(-164)
+-10 + j*(-81)
+179 + j*(-16)
+68 + j*(-293)
+22 + j*(37)
+202 + j*(104)
+30 + j*(45)
+192 + j*(180)
+-136 + j*(-117)
+120 + j*(173)
+-202 + j*(148)
+-172 + j*(173)
+-28 + j*(190)
+115 + j*(-58)
+-167 + j*(199)
+-95 + j*(212)
+168 + j*(-260)
+-250 + j*(-95)
+-35 + j*(100)
+-360 + j*(-88)
+-163 + j*(75)
+335 + j*(-58)
+-14 + j*(151)
+-169 + j*(104)
+334 + j*(105)
+-157 + j*(102)
+-45 + j*(316)
+-64 + j*(-126)
+-4 + j*(-431)
+-91 + j*(-217)
+13 + j*(-134)
+52 + j*(409)
+160 + j*(14)
+89 + j*(9)
+-217 + j*(5)
+-177 + j*(-442)
+225 + j*(-34)
+-110 + j*(-98)
+130 + j*(-428)
+-225 + j*(212)
+44 + j*(-217)
+40 + j*(-213)
+-158 + j*(30)
+16 + j*(49)
+101 + j*(-322)
+-93 + j*(38)
+330 + j*(214)
+-61 + j*(18)
+285 + j*(34)
+-228 + j*(-156)
+146 + j*(83)
+-427 + j*(-93)
+-119 + j*(58)
+-91 + j*(-428)
+-177 + j*(-75)
+62 + j*(-10)
+-29 + j*(-49)
+-76 + j*(95)
+62 + j*(-320)
+-144 + j*(88)
+197 + j*(-121)
+243 + j*(-54)
+113 + j*(223)
+59 + j*(-157)
+136 + j*(-99)
+145 + j*(-90)
+-283 + j*(-42)
+-247 + j*(-106)
+99 + j*(-380)
+-8 + j*(-124)
+-28 + j*(-31)
+407 + j*(250)
+-198 + j*(-94)
+244 + j*(154)
+119 + j*(501)
+82 + j*(315)
+16 + j*(122)
+-6 + j*(-247)
+-162 + j*(300)
+103 + j*(-98)
+221 + j*(-177)
+-80 + j*(207)
+43 + j*(105)
+8 + j*(2)
+251 + j*(-303)
+143 + j*(-45)
+209 + j*(-18)
+-35 + j*(76)
+-191 + j*(254)
+178 + j*(-18)
+66 + j*(-378)
+45 + j*(-7)
+-159 + j*(-144)
+-282 + j*(-106)
+-225 + j*(2)
+-107 + j*(-255)
+92 + j*(226)
+-39 + j*(-218)
+-102 + j*(139)
+184 + j*(77)
+-78 + j*(134)
+56 + j*(-278)
+-35 + j*(-81)
+-61 + j*(-204)
+-65 + j*(-25)
+-202 + j*(163)
+310 + j*(-28)
+-111 + j*(-95)
+-2 + j*(141)
+-173 + j*(-51)
+-21 + j*(182)
+-257 + j*(-57)
+-83 + j*(81)
+-267 + j*(52)
+2 + j*(13)
+35 + j*(59)
+105 + j*(190)
+-306 + j*(-253)
+19 + j*(88)
+-3 + j*(-221)
+234 + j*(-160)
+-9 + j*(-108)
+-325 + j*(356)
+-71 + j*(268)
+-308 + j*(364)
+-308 + j*(183)
+193 + j*(-95)
+62 + j*(-12)
+107 + j*(42)
+-100 + j*(62)
+-84 + j*(57)
+-90 + j*(-427)
+-73 + j*(-35)
+-191 + j*(134)
+-48 + j*(-85)
+193 + j*(-242)
+-80 + j*(61)
+225 + j*(-24)
+-179 + j*(-218)
+353 + j*(394)
+197 + j*(109)
+228 + j*(9)
+386 + j*(167)
+86 + j*(-8)
+55 + j*(-312)
+-18 + j*(78)
+-32 + j*(-191)
+-24 + j*(20)
+121 + j*(-126)
+-80 + j*(16)
+-161 + j*(367)
+-64 + j*(109)
+-22 + j*(37)
+-145 + j*(65)
+-197 + j*(-272)
+103 + j*(-46)
+-98 + j*(99)
+-325 + j*(-251)
+43 + j*(-93)
+-54 + j*(-3)
+193 + j*(-82)
+91 + j*(57)
+80 + j*(-122)
+151 + j*(-258)
+36 + j*(-443)
+-69 + j*(-25)
+-116 + j*(-222)
+-12 + j*(-306)
+-298 + j*(-242)
+243 + j*(-248)
+94 + j*(-47)
+-65 + j*(103)
+-246 + j*(128)
+-27 + j*(52)
+-165 + j*(235)
+-88 + j*(41)
+-21 + j*(-100)
+-2 + j*(222)
+-156 + j*(163)
+209 + j*(279)
+55 + j*(177)
+-209 + j*(-136)
+132 + j*(-42)
+-221 + j*(-51)
+91 + j*(62)
+-34 + j*(129)
+-217 + j*(-257)
+6 + j*(-36)
+-353 + j*(-90)
+-7 + j*(-86)
+105 + j*(81)
+148 + j*(-40)
+-20 + j*(-6)
+93 + j*(-156)
+145 + j*(120)
+-110 + j*(465)
+-39 + j*(23)
+-54 + j*(138)
+-69 + j*(87)
+-91 + j*(-74)
+361 + j*(26)
+513 + j*(-134)
+-293 + j*(-134)
+18 + j*(-93)
+424 + j*(177)
+-22 + j*(40)
+173 + j*(74)
+2 + j*(-207)
+-162 + j*(-165)
+57 + j*(128)
+315 + j*(80)
+-102 + j*(117)
+238 + j*(-75)
+-107 + j*(134)
+-204 + j*(-153)
+-170 + j*(-9)
+2 + j*(50)
+88 + j*(110)
+-8 + j*(-115)
+-92 + j*(-237)
+-52 + j*(265)
+-40 + j*(16)
+-74 + j*(-80)
+-150 + j*(-26)
+-33 + j*(-29)
+383 + j*(-48)
+-182 + j*(247)
+-192 + j*(260)
+108 + j*(133)
+175 + j*(-317)
+-12 + j*(-103)
+-24 + j*(-373)
+141 + j*(-220)
+170 + j*(-106)
+-112 + j*(-248)
+180 + j*(-78)
+-252 + j*(-380)
+-39 + j*(-247)
+-152 + j*(39)
+28 + j*(-119)
+-47 + j*(-174)
+101 + j*(87)
+127 + j*(77)
+103 + j*(-255)
+66 + j*(257)
+-105 + j*(32)
+78 + j*(69)
+26 + j*(-54)
+-31 + j*(73)
+346 + j*(346)
+8 + j*(26)
+-37 + j*(-59)
+21 + j*(194)
+-28 + j*(183)
+100 + j*(-55)
+-157 + j*(175)
+-322 + j*(-137)
+-33 + j*(132)
+-477 + j*(-62)
+332 + j*(-111)
+83 + j*(282)
+-134 + j*(92)
+-269 + j*(-296)
+-4 + j*(5)
+69 + j*(-35)
+-299 + j*(14)
+154 + j*(-176)
+-137 + j*(11)
+156 + j*(-180)
+-66 + j*(-36)
+-10 + j*(57)
+-261 + j*(-361)
+-36 + j*(74)
+-31 + j*(147)
+-19 + j*(-169)
+149 + j*(256)
+-332 + j*(29)
+-293 + j*(-197)
+117 + j*(-184)
+235 + j*(134)
+251 + j*(86)
+54 + j*(-310)
+13 + j*(-11)
+-385 + j*(-286)
+-2 + j*(-37)
+-115 + j*(-48)
+197 + j*(-20)
+264 + j*(136)
+-243 + j*(-59)
+-187 + j*(30)
+92 + j*(28)
+-91 + j*(-238)
+-93 + j*(-179)
+6 + j*(76)
+11 + j*(6)
+-96 + j*(78)
+25 + j*(59)
+110 + j*(523)
+141 + j*(-14)
+-94 + j*(-10)
+22 + j*(-120)
+443 + j*(-14)
+95 + j*(-174)
+-141 + j*(125)
+-12 + j*(-354)
+-193 + j*(-144)
+-156 + j*(-74)
+210 + j*(317)
+281 + j*(-52)
+77 + j*(89)
+21 + j*(-80)
+332 + j*(-6)
+292 + j*(18)
+57 + j*(-45)
+-65 + j*(113)
+-317 + j*(-109)
+-378 + j*(-298)
+185 + j*(1)
+-453 + j*(-45)
+123 + j*(279)
+27 + j*(57)
+-299 + j*(23)
+112 + j*(47)
+-47 + j*(174)
+33 + j*(-227)
+-288 + j*(9)
+-153 + j*(5)
+250 + j*(52)
+-119 + j*(-208)
+127 + j*(262)
+-30 + j*(-109)
+55 + j*(-247)
+-112 + j*(-44)
+-82 + j*(-38)
+-297 + j*(-16)
+59 + j*(60)
+-198 + j*(-55)
+204 + j*(-151)
+12 + j*(40)
+-627 + j*(-236)
+-112 + j*(-281)
+-91 + j*(-167)
+38 + j*(83)
+-146 + j*(130)
+-228 + j*(29)
+-67 + j*(-216)
+100 + j*(30)
+137 + j*(190)
+173 + j*(337)
+252 + j*(-108)
+431 + j*(-163)
+217 + j*(-54)
+-156 + j*(-250)
+286 + j*(-232)
+286 + j*(-181)
+-103 + j*(-117)
+-177 + j*(81)
+-246 + j*(-159)
+-254 + j*(58)
+69 + j*(157)
+-110 + j*(34)
+262 + j*(95)
+-130 + j*(148)
+144 + j*(345)
+152 + j*(25)
+89 + j*(236)
+257 + j*(146)
+50 + j*(-297)
+109 + j*(207)
+105 + j*(-262)
+330 + j*(-397)
+-221 + j*(-162)
+60 + j*(-54)
+49 + j*(-194)
+24 + j*(-104)
+-45 + j*(-18)
+-180 + j*(266)
+-25 + j*(183)
+64 + j*(221)
+302 + j*(409)
+-55 + j*(3)
+226 + j*(-310)
+37 + j*(-49)
+-116 + j*(66)
+115 + j*(-84)
+-155 + j*(174)
+-134 + j*(100)
+-211 + j*(-69)
+226 + j*(-11)
+397 + j*(43)
+170 + j*(81)
+-107 + j*(-122)
+433 + j*(-25)
+115 + j*(-77)
+-235 + j*(-4)
+-308 + j*(-138)
+187 + j*(241)
+49 + j*(8)
+62 + j*(105)
+-296 + j*(122)
+33 + j*(497)
+334 + j*(-1)
+194 + j*(41)
+204 + j*(-245)
+-49 + j*(15)
+-103 + j*(16)
+-217 + j*(56)
+28 + j*(196)
+343 + j*(-173)
+173 + j*(164)
+-100 + j*(167)
+-94 + j*(-25)
+-79 + j*(-95)
+30 + j*(-276)
+144 + j*(61)
+-120 + j*(-195)
+-213 + j*(-366)
+209 + j*(30)
+6 + j*(-245)
+-43 + j*(-83)
+28 + j*(61)
+4 + j*(-51)
+-167 + j*(52)
+-245 + j*(4)
+-48 + j*(-92)
+-53 + j*(210)
+-156 + j*(-160)
+-82 + j*(-115)
+-198 + j*(-206)
+-134 + j*(-6)
+203 + j*(-311)
+-317 + j*(-81)
+-66 + j*(-54)
+67 + j*(-153)
+-34 + j*(-26)
+-14 + j*(-69)
+91 + j*(163)
+-6 + j*(-6)
+-141 + j*(66)
+-91 + j*(241)
+-42 + j*(196)
+-49 + j*(-35)
+-175 + j*(-137)
+16 + j*(267)
+49 + j*(-106)
+45 + j*(97)
+-351 + j*(119)
+-276 + j*(-46)
+-109 + j*(94)
+3 + j*(170)
+-182 + j*(323)
+97 + j*(-124)
+-203 + j*(307)
+-233 + j*(231)
+-134 + j*(78)
+282 + j*(8)
+124 + j*(319)
+119 + j*(-40)
+-176 + j*(-145)
+26 + j*(42)
+97 + j*(-273)
+-319 + j*(-56)
+-148 + j*(-65)
+-12 + j*(242)
+16 + j*(165)
+264 + j*(85)
+-181 + j*(-34)
+1 + j*(-103)
+194 + j*(-12)
+14 + j*(260)
+-251 + j*(-40)
+-280 + j*(81)
+-42 + j*(-2)
+-6 + j*(152)
+155 + j*(245)
+-267 + j*(103)
+-23 + j*(-334)
+-177 + j*(100)
+8 + j*(-99)
+104 + j*(-202)
+168 + j*(94)
+59 + j*(-193)
+57 + j*(116)
+98 + j*(-116)
+-96 + j*(-264)
+-44 + j*(301)
+138 + j*(6)
+-168 + j*(187)
+-306 + j*(-88)
+-163 + j*(-206)
+-222 + j*(52)
+319 + j*(32)
+45 + j*(-178)
+-207 + j*(-179)
+160 + j*(-24)
+84 + j*(460)
+91 + j*(-168)
+168 + j*(119)
+11 + j*(-8)
+-145 + j*(195)
+-145 + j*(-81)
+39 + j*(247)
+-66 + j*(203)
+208 + j*(-63)
+167 + j*(40)
+-64 + j*(366)
+51 + j*(262)
+21 + j*(139)
+-38 + j*(-226)
+158 + j*(-107)
+-109 + j*(566)
+100 + j*(-16)
+2 + j*(43)
+1 + j*(-100)
+23 + j*(-98)
+-48 + j*(-217)
+-64 + j*(218)
+105 + j*(-83)
+-186 + j*(104)
+-64 + j*(-268)
+1 + j*(131)
+-219 + j*(-175)
+-100 + j*(69)
+34 + j*(-469)
+199 + j*(177)
+305 + j*(-176)
+-184 + j*(-29)
+-332 + j*(50)
+309 + j*(93)
+-19 + j*(-73)
+-21 + j*(-3)
+56 + j*(81)
+171 + j*(-164)
+62 + j*(-228)
+-21 + j*(-373)
+-88 + j*(-193)
+201 + j*(-6)
+340 + j*(-322)
+207 + j*(7)
+-89 + j*(-211)
+-206 + j*(12)
+-161 + j*(-84)
+49 + j*(-272)
+132 + j*(-129)
+-126 + j*(304)
+26 + j*(66)
+-39 + j*(84)
+-228 + j*(-138)
+71 + j*(13)
+-27 + j*(-319)
+157 + j*(104)
+98 + j*(291)
+187 + j*(-319)
+287 + j*(52)
+-91 + j*(228)
+-42 + j*(-133)
+297 + j*(-35)
+28 + j*(-127)
+50 + j*(38)
+253 + j*(-35)
+126 + j*(-69)
+153 + j*(-41)
+-141 + j*(203)
+-63 + j*(-108)
+-69 + j*(-134)
+274 + j*(273)
+255 + j*(-329)
+202 + j*(31)
+-158 + j*(-15)
+240 + j*(122)
+-249 + j*(205)
+-29 + j*(171)
+-209 + j*(28)
+146 + j*(-77)
+124 + j*(-155)
+-21 + j*(-257)
+342 + j*(292)
+-75 + j*(145)
+-37 + j*(199)
+124 + j*(317)
+198 + j*(48)
+197 + j*(35)
+-71 + j*(-55)
+235 + j*(-358)
+-136 + j*(62)
+-121 + j*(-194)
+-129 + j*(190)
+126 + j*(160)
+153 + j*(154)
+223 + j*(-95)
+78 + j*(-270)
+447 + j*(60)
+-184 + j*(-173)
+-121 + j*(-134)
+141 + j*(-25)
+179 + j*(-190)
+26 + j*(305)
+-180 + j*(-13)
+123 + j*(-4)
+130 + j*(-310)
+-42 + j*(-91)
+71 + j*(286)
+-192 + j*(33)
+130 + j*(206)
+147 + j*(2)
+-38 + j*(-156)
+1 + j*(327)
+-34 + j*(-42)
+-254 + j*(-168)
+189 + j*(227)
+143 + j*(32)
+-211 + j*(-264)
+-39 + j*(-439)
+-24 + j*(271)
+-25 + j*(110)
+190 + j*(-4)
+-102 + j*(-243)
+-13 + j*(40)
+-87 + j*(55)
+156 + j*(89)
+295 + j*(-50)
+210 + j*(-263)
+-303 + j*(70)
+86 + j*(-102)
+-68 + j*(4)
+79 + j*(-426)
+-152 + j*(-158)
+93 + j*(36)
+52 + j*(-144)
+27 + j*(-280)
+58 + j*(-16)
+82 + j*(2)
+57 + j*(-151)
+-76 + j*(-21)
+-67 + j*(125)
+233 + j*(-44)
+72 + j*(-83)
+203 + j*(52)
+-35 + j*(0)
+140 + j*(-147)
+110 + j*(144)
+96 + j*(23)
+288 + j*(-122)
+-67 + j*(85)
+300 + j*(-56)
+-262 + j*(39)
+201 + j*(233)
+-20 + j*(151)
+-323 + j*(-35)
+49 + j*(143)
+-89 + j*(-158)
+-66 + j*(-216)
+-244 + j*(163)
+240 + j*(-245)
+364 + j*(-71)
+-205 + j*(280)
+66 + j*(-18)
+-58 + j*(144)
+141 + j*(-151)
+154 + j*(-25)
+202 + j*(-83)
+33 + j*(-127)
+-166 + j*(-157)
+451 + j*(-244)
+-101 + j*(35)
+18 + j*(134)
+134 + j*(252)
+-95 + j*(-264)
+320 + j*(211)
+-54 + j*(-52)
+-145 + j*(122)
+-10 + j*(247)
+-359 + j*(164)
+-93 + j*(-90)
+-141 + j*(199)
+-122 + j*(-140)
+-384 + j*(-230)
+34 + j*(2)
+-190 + j*(276)
+-49 + j*(185)
+197 + j*(-12)
+-213 + j*(-105)
+-110 + j*(-62)
+-1 + j*(163)
+54 + j*(12)
+74 + j*(-148)
+-130 + j*(221)
+-86 + j*(161)
+86 + j*(50)
+-110 + j*(-74)
+129 + j*(256)
+25 + j*(-84)
+-35 + j*(-124)
+71 + j*(-105)
+274 + j*(-267)
+298 + j*(-52)
+-1 + j*(116)
+220 + j*(-17)
+147 + j*(126)
+69 + j*(53)
+-208 + j*(-60)
+197 + j*(115)
+-140 + j*(13)
+122 + j*(-74)
+36 + j*(194)
+-40 + j*(-26)
+-126 + j*(97)
+288 + j*(115)
+-142 + j*(127)
+-20 + j*(-21)
+-117 + j*(79)
+-73 + j*(308)
+-430 + j*(132)
+-129 + j*(161)
+83 + j*(56)
+-63 + j*(-355)
+-139 + j*(132)
+206 + j*(8)
+19 + j*(-193)
+156 + j*(-25)
+20 + j*(-277)
+74 + j*(207)
+-312 + j*(-97)
+-264 + j*(127)
+219 + j*(69)
+-16 + j*(126)
+92 + j*(-206)
+-227 + j*(164)
+-172 + j*(-120)
+158 + j*(-31)
+110 + j*(83)
+-103 + j*(6)
+-22 + j*(120)
+110 + j*(93)
+37 + j*(-170)
+-148 + j*(136)
+-23 + j*(12)
+59 + j*(61)
+117 + j*(119)
+163 + j*(283)
+263 + j*(95)
+334 + j*(65)
+-169 + j*(80)
+-129 + j*(543)
+-163 + j*(179)
+46 + j*(193)
+-177 + j*(232)
+206 + j*(13)
+203 + j*(67)
+42 + j*(31)
+119 + j*(-159)
+-98 + j*(104)
+68 + j*(70)
+91 + j*(155)
+55 + j*(-175)
+88 + j*(-54)
+-148 + j*(-14)
+405 + j*(30)
+250 + j*(-249)
+6 + j*(234)
+71 + j*(69)
+57 + j*(-92)
+194 + j*(44)
+-104 + j*(175)
+136 + j*(-145)
+137 + j*(-80)
+110 + j*(-363)
+240 + j*(-14)
+-110 + j*(158)
+-57 + j*(28)
+-112 + j*(-86)
+25 + j*(192)
+139 + j*(-252)
+-250 + j*(-42)
+25 + j*(61)
+-235 + j*(-152)
+310 + j*(-206)
+-341 + j*(-164)
+-113 + j*(4)
+-62 + j*(-13)
+216 + j*(90)
+-45 + j*(-161)
+-129 + j*(-240)
+124 + j*(173)
+66 + j*(180)
+80 + j*(-23)
+-62 + j*(144)
+28 + j*(-5)
+115 + j*(184)
+75 + j*(-197)
+-325 + j*(100)
+94 + j*(-126)
+-78 + j*(-344)
+-107 + j*(302)
+-243 + j*(-243)
+62 + j*(227)
+-15 + j*(-337)
+-49 + j*(-74)
+88 + j*(134)
+-91 + j*(81)
+-34 + j*(103)
+-112 + j*(233)
+253 + j*(151)
+-45 + j*(-25)
+212 + j*(-127)
+-363 + j*(66)
+251 + j*(12)
+267 + j*(27)
+280 + j*(-414)
+136 + j*(131)
+-32 + j*(-176)
+136 + j*(31)
+-139 + j*(171)
+185 + j*(103)
+84 + j*(198)
+88 + j*(81)
+104 + j*(-158)
+301 + j*(298)
+63 + j*(260)
+210 + j*(-169)
+112 + j*(-52)
+-64 + j*(119)
+-169 + j*(-281)
+-83 + j*(-310)
+274 + j*(-79)
+209 + j*(-182)
+-107 + j*(-240)
+-86 + j*(4)
+202 + j*(16)
+-387 + j*(75)
+-81 + j*(85)
+17 + j*(260)
+-348 + j*(-243)
+-39 + j*(88)
+259 + j*(-40)
+37 + j*(13)
+157 + j*(-121)
+40 + j*(-37)
+267 + j*(-28)
+85 + j*(47)
+-310 + j*(52)
+25 + j*(33)
+-366 + j*(-264)
+-58 + j*(120)
+36 + j*(-93)
+187 + j*(6)
+93 + j*(23)
+44 + j*(-240)
+235 + j*(161)
+197 + j*(293)
+-153 + j*(126)
+211 + j*(-71)
+213 + j*(-42)
+176 + j*(-6)
+-176 + j*(-40)
+33 + j*(64)
+-81 + j*(-133)
+52 + j*(256)
+160 + j*(-141)
+118 + j*(187)
+-212 + j*(26)
+-257 + j*(157)
+192 + j*(18)
+199 + j*(295)
+49 + j*(-94)
+2 + j*(208)
+-83 + j*(-170)
+-226 + j*(-139)
+-197 + j*(18)
+40 + j*(-130)
+144 + j*(-136)
+107 + j*(19)
+-102 + j*(472)
+-53 + j*(-39)
+5 + j*(265)
+173 + j*(256)
+-349 + j*(40)
+54 + j*(-140)
+66 + j*(132)
+64 + j*(73)
+-141 + j*(95)
+327 + j*(-69)
+-547 + j*(115)
+59 + j*(-115)
+-62 + j*(69)
+81 + j*(182)
+-86 + j*(-208)
+-100 + j*(-318)
+127 + j*(213)
+93 + j*(16)
+243 + j*(-7)
+-23 + j*(333)
+-21 + j*(330)
+74 + j*(-50)
+-40 + j*(-168)
+434 + j*(333)
+81 + j*(-143)
+230 + j*(163)
+209 + j*(-187)
+-33 + j*(270)
+132 + j*(-217)
+-127 + j*(-35)
+-59 + j*(40)
+187 + j*(32)
+-11 + j*(-143)
+156 + j*(245)
+-18 + j*(-28)
+-166 + j*(-27)
+332 + j*(145)
+8 + j*(-192)
+-11 + j*(-185)
+-190 + j*(72)
+-118 + j*(138)
+112 + j*(215)
+-26 + j*(52)
+137 + j*(29)
+-200 + j*(-123)
+183 + j*(-187)
+93 + j*(35)
+-336 + j*(-33)
+28 + j*(223)
+-1 + j*(-18)
+-234 + j*(98)
+117 + j*(25)
+132 + j*(-174)
+-430 + j*(-3)
+52 + j*(-205)
+95 + j*(148)
+-55 + j*(-199)
+20 + j*(-107)
+-113 + j*(-80)
+51 + j*(26)
+-13 + j*(79)
+-182 + j*(20)
+-71 + j*(-19)
+-16 + j*(-290)
+-197 + j*(204)
+42 + j*(-184)
+-63 + j*(52)
+16 + j*(-112)
+164 + j*(-293)
+-39 + j*(113)
+267 + j*(-49)
+259 + j*(-80)
+-65 + j*(55)
+151 + j*(112)
+-21 + j*(113)
+64 + j*(-163)
+71 + j*(28)
+155 + j*(126)
+226 + j*(47)
+173 + j*(195)
+11 + j*(-218)
+87 + j*(-64)
+126 + j*(-53)
+34 + j*(-310)
+225 + j*(-183)
+-148 + j*(-328)
+210 + j*(-400)
+289 + j*(49)
+3 + j*(-170)
+231 + j*(54)
+136 + j*(21)
+-83 + j*(273)
+108 + j*(251)
+429 + j*(277)
+6 + j*(294)
+103 + j*(207)
+16 + j*(-199)
+187 + j*(28)
+16 + j*(51)
+232 + j*(51)
+-148 + j*(9)
+77 + j*(-168)
+42 + j*(279)
+132 + j*(265)
+145 + j*(-90)
+-49 + j*(-211)
+90 + j*(144)
+156 + j*(3)
+27 + j*(-264)
+302 + j*(23)
+148 + j*(-5)
+-119 + j*(-27)
+-100 + j*(-138)
+-182 + j*(-56)
+-303 + j*(333)
+-101 + j*(162)
+311 + j*(-143)
+-27 + j*(-283)
+-215 + j*(-93)
+-64 + j*(120)
+-10 + j*(-337)
+-204 + j*(48)
+-91 + j*(-95)
+113 + j*(-223)
+-68 + j*(-86)
+91 + j*(-162)
+383 + j*(534)
+331 + j*(-151)
+296 + j*(-125)
+-534 + j*(195)
+68 + j*(341)
+-64 + j*(338)
+202 + j*(199)
+277 + j*(-187)
+10 + j*(-149)
+-89 + j*(-287)
+356 + j*(-535)
+136 + j*(225)
+221 + j*(-13)
+245 + j*(105)
+-55 + j*(-260)
+-246 + j*(-332)
+-146 + j*(315)
+-602 + j*(-237)
+-329 + j*(238)
+-173 + j*(-174)
+562 + j*(83)
+-189 + j*(-310)
+339 + j*(361)
+-309 + j*(-162)
+81 + j*(317)
+445 + j*(-265)
+-183 + j*(343)
+-302 + j*(33)
+-663 + j*(180)
+-257 + j*(-70)
+515 + j*(252)
+192 + j*(334)
+-560 + j*(68)
+214 + j*(11)
+-463 + j*(-437)
+66 + j*(286)
+-305 + j*(236)
+-332 + j*(40)
+-180 + j*(-321)
+420 + j*(-76)
+63 + j*(-168)
+243 + j*(-251)
+176 + j*(-378)
+328 + j*(303)
+-270 + j*(353)
+-407 + j*(-240)
+257 + j*(207)
+-107 + j*(-203)
+-100 + j*(-153)
+635 + j*(335)
+45 + j*(52)
+251 + j*(-25)
+238 + j*(232)
+-268 + j*(-144)
+183 + j*(-70)
+-237 + j*(-222)
+231 + j*(274)
+-132 + j*(372)
+383 + j*(50)
+-187 + j*(195)
+81 + j*(156)
+-145 + j*(-689)
+139 + j*(312)
+-162 + j*(419)
+387 + j*(-187)
+-168 + j*(-233)
+-344 + j*(184)
+-337 + j*(-478)
+737 + j*(-88)
+-106 + j*(486)
+44 + j*(226)
+-293 + j*(100)
+532 + j*(-33)
+534 + j*(-52)
+-527 + j*(431)
+-438 + j*(-312)
+223 + j*(-175)
+149 + j*(367)
+132 + j*(-694)
+406 + j*(306)
+222 + j*(-339)
+-68 + j*(493)
+348 + j*(123)
+16 + j*(-402)
+125 + j*(-231)
+-468 + j*(-245)
+304 + j*(74)
+439 + j*(423)
+-438 + j*(18)
+-686 + j*(327)
+-150 + j*(98)
+303 + j*(147)
+411 + j*(-9)
+-298 + j*(103)
+-185 + j*(-97)
+-288 + j*(-369)
+393 + j*(-370)
+491 + j*(433)
+412 + j*(146)
+-167 + j*(-435)
+199 + j*(-350)
+316 + j*(-90)
+204 + j*(-154)
+-333 + j*(-12)
+682 + j*(-197)
+-139 + j*(439)
+-306 + j*(49)
+-281 + j*(-679)
+454 + j*(-212)
+444 + j*(508)
+106 + j*(-67)
+-122 + j*(-80)
+268 + j*(196)
+587 + j*(-342)
+-275 + j*(379)
+443 + j*(-190)
+-606 + j*(199)
+-108 + j*(524)
+-202 + j*(201)
+-395 + j*(-388)
+511 + j*(-591)
+-265 + j*(-98)
+224 + j*(189)
+231 + j*(-250)
+45 + j*(-397)
+-286 + j*(-167)
+230 + j*(40)
+346 + j*(395)
+-400 + j*(635)
+43 + j*(-228)
+397 + j*(149)
+-160 + j*(520)
+204 + j*(213)
+335 + j*(398)
+344 + j*(504)
+-11 + j*(-309)
+59 + j*(-37)
+-390 + j*(-374)
+-361 + j*(518)
+386 + j*(131)
+233 + j*(-187)
+356 + j*(23)
+-157 + j*(-261)
+-451 + j*(-523)
+167 + j*(593)
+209 + j*(119)
+-730 + j*(-56)
+-219 + j*(-598)
+29 + j*(250)
+79 + j*(392)
+300 + j*(158)
+276 + j*(-165)
+72 + j*(-346)
+-245 + j*(-170)
+455 + j*(-394)
+48 + j*(315)
+33 + j*(-81)
+201 + j*(127)
+-37 + j*(51)
+196 + j*(180)
+-62 + j*(416)
+267 + j*(252)
+-242 + j*(-452)
+-8 + j*(397)
+124 + j*(40)
+-264 + j*(-126)
+42 + j*(404)
+558 + j*(103)
+-327 + j*(35)
+-510 + j*(528)
+-561 + j*(-597)
+-349 + j*(-397)
+41 + j*(214)
+-334 + j*(462)
+98 + j*(-105)
+-75 + j*(229)
+245 + j*(-116)
+330 + j*(186)
+-81 + j*(434)
+488 + j*(200)
+-124 + j*(-164)
+-8 + j*(68)
+-88 + j*(373)
+-312 + j*(-402)
+103 + j*(267)
+683 + j*(217)
+-341 + j*(67)
+-280 + j*(350)
+492 + j*(-231)
+-211 + j*(-218)
+240 + j*(316)
+364 + j*(272)
+370 + j*(453)
+253 + j*(171)
+184 + j*(663)
+-333 + j*(-392)
+-192 + j*(-409)
+384 + j*(-292)
+220 + j*(-143)
+-284 + j*(242)
+118 + j*(-272)
+170 + j*(-47)
+422 + j*(-353)
+494 + j*(-685)
+-88 + j*(95)
+264 + j*(232)
+153 + j*(175)
+168 + j*(205)
+-126 + j*(-213)
+-51 + j*(390)
+-283 + j*(40)
+-361 + j*(689)
+171 + j*(-141)
+435 + j*(-318)
+-141 + j*(-260)
+220 + j*(-144)
+286 + j*(155)
+-310 + j*(299)
+78 + j*(-204)
+373 + j*(273)
+-321 + j*(723)
+707 + j*(-203)
+324 + j*(102)
+-177 + j*(-383)
+245 + j*(-99)
+-380 + j*(339)
+235 + j*(-375)
+-292 + j*(77)
+23 + j*(-351)
+330 + j*(-171)
+211 + j*(167)
+455 + j*(-540)
+-448 + j*(-230)
+215 + j*(263)
+137 + j*(373)
+-66 + j*(-47)
+-300 + j*(-85)
+302 + j*(177)
+-442 + j*(197)
+-46 + j*(132)
+-419 + j*(214)
+-166 + j*(92)
+-184 + j*(447)
+94 + j*(342)
+-328 + j*(-42)
+-552 + j*(-458)
+374 + j*(-177)
+300 + j*(404)
+40 + j*(219)
+-228 + j*(-505)
+272 + j*(266)
+-192 + j*(200)
+213 + j*(-150)
+274 + j*(-355)
+492 + j*(54)
+541 + j*(-602)
+460 + j*(-52)
+98 + j*(449)
+382 + j*(-380)
+-153 + j*(-241)
+-250 + j*(-45)
+-245 + j*(-315)
+264 + j*(-289)
+154 + j*(-177)
+146 + j*(-441)
+-336 + j*(285)
+-102 + j*(388)
+236 + j*(-18)
+-115 + j*(335)
+-532 + j*(421)
+484 + j*(450)
+354 + j*(738)
+-416 + j*(523)
+-293 + j*(-193)
+115 + j*(-764)
+-327 + j*(-238)
+-425 + j*(-378)
+-269 + j*(-413)
+-642 + j*(-380)
+-43 + j*(-7)
+206 + j*(424)
+244 + j*(-416)
+453 + j*(-545)
+-165 + j*(-64)
+-138 + j*(-312)
+-499 + j*(484)
+-307 + j*(-119)
+122 + j*(578)
+-266 + j*(-390)
+-218 + j*(395)
+-188 + j*(-14)
+373 + j*(-118)
+86 + j*(629)
+-435 + j*(-107)
+390 + j*(-469)
+197 + j*(-99)
+343 + j*(-344)
+-137 + j*(-218)
+-252 + j*(354)
+-261 + j*(329)
+-214 + j*(393)
+-247 + j*(274)
+214 + j*(158)
+74 + j*(315)
+434 + j*(-211)
+-228 + j*(-161)
+-86 + j*(482)
+41 + j*(197)
+-110 + j*(217)
+182 + j*(16)
+437 + j*(-583)
+446 + j*(-162)
+-139 + j*(122)
+117 + j*(368)
+173 + j*(179)
+245 + j*(-228)
+78 + j*(450)
+-484 + j*(-112)
+-375 + j*(-177)
+-265 + j*(-155)
+185 + j*(-10)
+635 + j*(-213)
+-59 + j*(223)
+306 + j*(-93)
+8 + j*(-310)
+201 + j*(333)
+482 + j*(-70)
+-78 + j*(115)
+390 + j*(564)
+433 + j*(280)
+52 + j*(25)
+185 + j*(328)
+273 + j*(-367)
+-156 + j*(255)
+177 + j*(-170)
+-181 + j*(207)
+-466 + j*(-256)
+-279 + j*(-97)
+444 + j*(-466)
+-105 + j*(308)
+71 + j*(-127)
+-1 + j*(6)
+171 + j*(163)
+-357 + j*(440)
+346 + j*(97)
+-366 + j*(-355)
+-149 + j*(-342)
+-72 + j*(-146)
+120 + j*(185)
+190 + j*(237)
+-53 + j*(-444)
+340 + j*(68)
+103 + j*(7)
+210 + j*(183)
+282 + j*(-173)
+240 + j*(373)
+-112 + j*(463)
+-187 + j*(262)
+-260 + j*(-234)
+-33 + j*(217)
+-347 + j*(2)
+229 + j*(-414)
+163 + j*(284)
+121 + j*(61)
+-286 + j*(439)
+403 + j*(112)
+-290 + j*(122)
+339 + j*(151)
+339 + j*(-290)
+349 + j*(-248)
+-403 + j*(315)
+-318 + j*(-601)
+-293 + j*(-348)
+279 + j*(-15)
+79 + j*(-222)
+-458 + j*(-433)
+625 + j*(-496)
+-81 + j*(204)
+-222 + j*(-499)
+-486 + j*(-186)
+-113 + j*(-105)
+-199 + j*(-497)
+351 + j*(174)
+347 + j*(-373)
+233 + j*(49)
+-64 + j*(-416)
+264 + j*(-139)
+33 + j*(494)
+281 + j*(180)
+-412 + j*(-375)
+-318 + j*(502)
+-265 + j*(274)
+-260 + j*(175)
+167 + j*(-491)
+647 + j*(236)
+-25 + j*(238)
+-326 + j*(-495)
+100 + j*(-313)
+173 + j*(-786)
+-98 + j*(231)
+-238 + j*(409)
+361 + j*(-446)
+538 + j*(-350)
+-127 + j*(-153)
+-576 + j*(-199)
+-72 + j*(-510)
+363 + j*(-360)
+-482 + j*(-238)
+-352 + j*(-363)
+-295 + j*(-104)
+-119 + j*(212)
+297 + j*(351)
+-268 + j*(-371)
+97 + j*(53)
+235 + j*(90)
+209 + j*(298)
+-212 + j*(-276)
+-309 + j*(551)
+-54 + j*(-273)
+225 + j*(457)
+37 + j*(-149)
+-81 + j*(202)
+345 + j*(300)
+-322 + j*(247)
+202 + j*(425)
+-215 + j*(-173)
+-123 + j*(297)
+-227 + j*(19)
+-170 + j*(-366)
+344 + j*(-305)
+369 + j*(-191)
+-318 + j*(525)
+332 + j*(-325)
+-337 + j*(-318)
+-655 + j*(564)
+595 + j*(-511)
+436 + j*(384)
+-515 + j*(40)
+243 + j*(-459)
+-21 + j*(156)
+258 + j*(-438)
+-357 + j*(-326)
+-433 + j*(583)
+-357 + j*(-489)
+171 + j*(-34)
+122 + j*(402)
+-289 + j*(339)
+160 + j*(189)
+94 + j*(-71)
+453 + j*(-301)
+292 + j*(-117)
+338 + j*(216)
+363 + j*(400)
+-43 + j*(-35)
+217 + j*(85)
+33 + j*(241)
+173 + j*(-141)
+-266 + j*(-306)
+-264 + j*(-451)
+226 + j*(-296)
+350 + j*(-16)
+30 + j*(312)
+-566 + j*(-133)
+-195 + j*(219)
+478 + j*(-61)
+-612 + j*(-527)
+-189 + j*(-585)
+-466 + j*(-600)
+-288 + j*(445)
+-460 + j*(245)
+171 + j*(-448)
+-258 + j*(520)
+-379 + j*(-194)
+369 + j*(-410)
+-213 + j*(144)
+128 + j*(-40)
+308 + j*(277)
+-37 + j*(-508)
+226 + j*(-127)
+290 + j*(285)
+-506 + j*(-353)
+-356 + j*(-194)
+298 + j*(307)
+161 + j*(499)
+267 + j*(157)
+117 + j*(-136)
+494 + j*(-658)
+103 + j*(-286)
+415 + j*(465)
+233 + j*(-156)
+110 + j*(-371)
+-428 + j*(196)
+-377 + j*(269)
+-234 + j*(127)
+-321 + j*(-78)
+282 + j*(-223)
+-310 + j*(-246)
+45 + j*(146)
+5 + j*(38)
+-182 + j*(239)
+-430 + j*(453)
+414 + j*(-105)
+-527 + j*(147)
+-12 + j*(554)
+-296 + j*(-168)
+-147 + j*(-170)
+-504 + j*(-331)
+-313 + j*(-380)
+453 + j*(429)
+-463 + j*(-119)
+-175 + j*(-387)
+251 + j*(403)
+-143 + j*(187)
+208 + j*(-498)
+434 + j*(-214)
+600 + j*(-360)
+-251 + j*(28)
+373 + j*(-204)
+-305 + j*(-288)
+-243 + j*(356)
+53 + j*(-467)
+127 + j*(226)
+-412 + j*(-91)
+325 + j*(371)
+347 + j*(-487)
+332 + j*(327)
+-226 + j*(-306)
+482 + j*(-47)
+-62 + j*(397)
+363 + j*(-184)
+192 + j*(257)
+-390 + j*(-347)
+-15 + j*(-159)
+434 + j*(-467)
+347 + j*(-162)
+374 + j*(-216)
+-197 + j*(-21)
+195 + j*(679)
+317 + j*(451)
+206 + j*(400)
+420 + j*(421)
+-190 + j*(-107)
+-141 + j*(192)
+452 + j*(364)
+-550 + j*(44)
+-141 + j*(-274)
+-459 + j*(409)
+466 + j*(-351)
+-178 + j*(103)
+-378 + j*(351)
+-213 + j*(132)
+-322 + j*(102)
+-244 + j*(-537)
+-252 + j*(-467)
+-266 + j*(483)
+433 + j*(-273)
+-180 + j*(-474)
+69 + j*(-356)
+412 + j*(-295)
+-36 + j*(-529)
+-588 + j*(194)
+-10 + j*(-25)
+-446 + j*(-204)
+-380 + j*(1)
+-481 + j*(-128)
+-271 + j*(151)
+-303 + j*(-184)
+272 + j*(-253)
+102 + j*(284)
+-153 + j*(66)
+100 + j*(-302)
+385 + j*(-581)
+259 + j*(605)
+205 + j*(-482)
+-288 + j*(-276)
+197 + j*(-288)
+-398 + j*(325)
+358 + j*(-357)
+104 + j*(-474)
+735 + j*(38)
+306 + j*(-162)
+121 + j*(-267)
+-480 + j*(272)
+-13 + j*(-94)
+-146 + j*(131)
+-484 + j*(-257)
+-64 + j*(227)
+178 + j*(19)
+212 + j*(450)
+17 + j*(-184)
+-406 + j*(-301)
+-424 + j*(252)
+-194 + j*(444)
+-550 + j*(-138)
+361 + j*(424)
+-308 + j*(-156)
+-251 + j*(-183)
+293 + j*(-98)
+-271 + j*(249)
+-317 + j*(-79)
+-42 + j*(276)
+-88 + j*(217)
+1 + j*(327)
+-53 + j*(250)
+-42 + j*(-334)
+154 + j*(70)
+262 + j*(-33)
+-1 + j*(-104)
+35 + j*(-118)
+57 + j*(455)
+247 + j*(-148)
+0 + j*(62)
+-200 + j*(193)
+62 + j*(-139)
+95 + j*(111)
+291 + j*(-154)
+-135 + j*(118)
+66 + j*(-148)
+-337 + j*(192)
+-247 + j*(-26)
+-13 + j*(-40)
+-412 + j*(-91)
+-66 + j*(-206)
+91 + j*(179)
+-189 + j*(407)
+-152 + j*(35)
+187 + j*(28)
+206 + j*(7)
+242 + j*(-28)
+-71 + j*(-75)
+-187 + j*(-48)
+240 + j*(-105)
+-122 + j*(-187)
+-156 + j*(163)
+225 + j*(102)
+52 + j*(198)
+-62 + j*(3)
+171 + j*(-147)
+-84 + j*(-253)
+-1 + j*(-402)
+264 + j*(140)
+-2 + j*(-152)
+75 + j*(-168)
+-134 + j*(-34)
+45 + j*(155)
+-164 + j*(135)
+334 + j*(281)
+-71 + j*(-170)
+296 + j*(-413)
+44 + j*(260)
+197 + j*(204)
+71 + j*(2)
+119 + j*(-129)
+169 + j*(68)
+-196 + j*(198)
+170 + j*(-124)
+-120 + j*(-8)
+102 + j*(-120)
+-578 + j*(93)
+71 + j*(239)
+-218 + j*(91)
+-206 + j*(9)
+-287 + j*(-461)
+-260 + j*(-65)
+28 + j*(-45)
+-26 + j*(132)
+-86 + j*(-8)
+0 + j*(-16)
+-86 + j*(499)
+-49 + j*(352)
+14 + j*(108)
+299 + j*(-55)
+-255 + j*(-81)
+-375 + j*(228)
+-125 + j*(66)
+-107 + j*(159)
+-199 + j*(-283)
+158 + j*(-206)
+241 + j*(-91)
+-44 + j*(4)
+-288 + j*(127)
+-19 + j*(-119)
+83 + j*(-223)
+76 + j*(-191)
+-19 + j*(64)
+205 + j*(-267)
+209 + j*(100)
+290 + j*(175)
+96 + j*(12)
+71 + j*(15)
+231 + j*(70)
+127 + j*(-37)
+-153 + j*(195)
+29 + j*(189)
+-30 + j*(-94)
+-55 + j*(-209)
+338 + j*(-214)
+122 + j*(-64)
+-234 + j*(172)
+160 + j*(-110)
+142 + j*(114)
+157 + j*(136)
+-189 + j*(-197)
+28 + j*(-45)
+-42 + j*(-143)
+171 + j*(-12)
+-168 + j*(163)
+-199 + j*(194)
+-265 + j*(-212)
+181 + j*(-21)
+-267 + j*(-224)
+-191 + j*(110)
+-77 + j*(-215)
+83 + j*(-106)
+-52 + j*(451)
+-60 + j*(92)
+-171 + j*(-199)
+233 + j*(-231)
+-107 + j*(39)
+151 + j*(42)
+120 + j*(-6)
+-257 + j*(-182)
+110 + j*(-52)
+-208 + j*(-26)
+-130 + j*(-157)
+153 + j*(267)
+494 + j*(-45)
+178 + j*(-91)
+-59 + j*(-184)
+137 + j*(318)
+-315 + j*(254)
+-264 + j*(-67)
+42 + j*(-4)
+102 + j*(62)
+-43 + j*(-23)
+-132 + j*(79)
+-163 + j*(-138)
+-132 + j*(-232)
+106 + j*(50)
+264 + j*(56)
+-172 + j*(-100)
+318 + j*(147)
+84 + j*(-246)
+274 + j*(-330)
+177 + j*(19)
+185 + j*(81)
+201 + j*(18)
+-306 + j*(110)
+81 + j*(-6)
+65 + j*(-186)
+-278 + j*(-66)
+175 + j*(55)
+8 + j*(107)
+-85 + j*(14)
+300 + j*(395)
+-65 + j*(-403)
+293 + j*(-56)
+-187 + j*(103)
+66 + j*(-240)
+66 + j*(-302)
+-82 + j*(-214)
+194 + j*(-47)
+64 + j*(-235)
+-372 + j*(-222)
+119 + j*(-341)
+-323 + j*(40)
+-114 + j*(293)
+-208 + j*(-158)
+-95 + j*(183)
+161 + j*(231)
+47 + j*(-131)
+102 + j*(-31)
+205 + j*(-180)
+-40 + j*(-127)
+175 + j*(-288)
+79 + j*(-272)
+-245 + j*(3)
+251 + j*(-3)
+-119 + j*(243)
+-123 + j*(-339)
+-290 + j*(85)
+-100 + j*(-175)
+-205 + j*(477)
+-24 + j*(-71)
+342 + j*(-185)
+66 + j*(13)
+-56 + j*(78)
+175 + j*(-124)
+-228 + j*(117)
+-122 + j*(-62)
+72 + j*(308)
+222 + j*(-223)
+85 + j*(47)
+-59 + j*(173)
+-97 + j*(142)
+141 + j*(-108)
+-278 + j*(107)
+-141 + j*(75)
+211 + j*(74)
+319 + j*(-107)
+-98 + j*(209)
+-350 + j*(45)
+-468 + j*(-308)
+332 + j*(-157)
+-10 + j*(-57)
+21 + j*(-37)
+1 + j*(-71)
+151 + j*(18)
+-356 + j*(361)
+7 + j*(-8)
+-87 + j*(-148)
+205 + j*(-86)
+-9 + j*(85)
+419 + j*(64)
+80 + j*(60)
+199 + j*(197)
+-187 + j*(-205)
+-119 + j*(228)
+11 + j*(187)
+-212 + j*(-21)
+-160 + j*(121)
+45 + j*(-420)
+-158 + j*(-173)
+49 + j*(286)
+204 + j*(54)
+158 + j*(206)
+-1 + j*(-63)
+119 + j*(9)
+169 + j*(-116)
+325 + j*(145)
+-106 + j*(6)
+-96 + j*(44)
+-140 + j*(253)
+138 + j*(23)
+-431 + j*(-37)
+-72 + j*(5)
+-35 + j*(128)
+-165 + j*(75)
+-45 + j*(-158)
+298 + j*(119)
+105 + j*(119)
+162 + j*(-16)
+64 + j*(-173)
+-269 + j*(37)
+110 + j*(-21)
+-16 + j*(30)
+113 + j*(129)
+-164 + j*(-238)
+-189 + j*(62)
+66 + j*(-142)
+418 + j*(20)
+-264 + j*(-245)
+-251 + j*(76)
+24 + j*(-4)
+310 + j*(-84)
+-112 + j*(-76)
+-20 + j*(27)
+270 + j*(-126)
+-241 + j*(46)
+-258 + j*(123)
+-195 + j*(-302)
+294 + j*(-168)
+83 + j*(-46)
+-121 + j*(-111)
+-297 + j*(-122)
+-269 + j*(32)
+-171 + j*(-107)
+-89 + j*(336)
+-180 + j*(-263)
+-163 + j*(-48)
+265 + j*(-103)
+33 + j*(22)
+448 + j*(99)
+-49 + j*(85)
+259 + j*(-72)
+13 + j*(7)
+-156 + j*(11)
+-112 + j*(186)
+91 + j*(-44)
+127 + j*(110)
+190 + j*(-151)
+26 + j*(-373)
+115 + j*(177)
+99 + j*(-327)
+60 + j*(-87)
+-42 + j*(-71)
+80 + j*(132)
+173 + j*(276)
+6 + j*(177)
+46 + j*(-154)
+6 + j*(115)
+132 + j*(156)
+-303 + j*(257)
+105 + j*(-506)
+293 + j*(82)
+23 + j*(62)
+-563 + j*(397)
+308 + j*(17)
+-16 + j*(-53)
+-22 + j*(-210)
+256 + j*(190)
+-40 + j*(308)
+181 + j*(37)
+-179 + j*(-71)
+-42 + j*(37)
+-258 + j*(375)
+-81 + j*(115)
+-59 + j*(287)
+-66 + j*(122)
+-1 + j*(-218)
+258 + j*(-6)
+78 + j*(-95)
+97 + j*(-148)
+-255 + j*(165)
+226 + j*(0)
+39 + j*(-141)
+175 + j*(111)
+21 + j*(110)
+-93 + j*(288)
+-240 + j*(-11)
+-163 + j*(77)
+25 + j*(110)
+70 + j*(78)
+51 + j*(425)
+-74 + j*(-186)
+121 + j*(-54)
+270 + j*(64)
+115 + j*(-173)
+-143 + j*(281)
+88 + j*(-247)
+-20 + j*(-112)
+156 + j*(-362)
+33 + j*(-128)
+97 + j*(-328)
+28 + j*(-41)
+58 + j*(47)
+45 + j*(13)
+206 + j*(560)
+94 + j*(-16)
+81 + j*(41)
+270 + j*(13)
+68 + j*(95)
+-33 + j*(-120)
+-173 + j*(-166)
+-64 + j*(124)
+17 + j*(-88)
+99 + j*(13)
+-380 + j*(6)
+-65 + j*(219)
+-16 + j*(-51)
+35 + j*(146)
+138 + j*(74)
+453 + j*(-59)
+337 + j*(-5)
+-218 + j*(-105)
+-360 + j*(-43)
+99 + j*(-1)
+-12 + j*(-76)
+-183 + j*(221)
+52 + j*(13)
+86 + j*(-76)
+-265 + j*(-12)
+61 + j*(-264)
+-29 + j*(91)
+20 + j*(-177)
+89 + j*(-281)
+276 + j*(-13)
+243 + j*(-251)
+-140 + j*(-55)
+173 + j*(23)
+-14 + j*(-109)
+59 + j*(57)
+238 + j*(-78)
+50 + j*(124)
+132 + j*(70)
+-358 + j*(21)
+-228 + j*(51)
+-16 + j*(-243)
+-40 + j*(267)
+49 + j*(231)
+309 + j*(8)
+32 + j*(-109)
+-147 + j*(190)
+232 + j*(-166)
+-190 + j*(-117)
+18 + j*(-43)
+-54 + j*(129)
+145 + j*(110)
+-202 + j*(-232)
+-16 + j*(64)
+-320 + j*(354)
+69 + j*(-96)
+-233 + j*(165)
+-93 + j*(-98)
+-182 + j*(-310)
+144 + j*(-146)
+192 + j*(6)
+112 + j*(146)
+214 + j*(352)
+-153 + j*(44)
+-218 + j*(-5)
+-76 + j*(110)
+18 + j*(-194)
+-23 + j*(-85)
+-4 + j*(-256)
+8 + j*(1)
+49 + j*(111)
+-108 + j*(-100)
+-47 + j*(214)
+-72 + j*(143)
+-351 + j*(212)
+-51 + j*(62)
+-96 + j*(173)
+-56 + j*(-223)
+101 + j*(-143)
+245 + j*(-344)
+-74 + j*(103)
+381 + j*(-153)
+76 + j*(271)
+-126 + j*(-9)
+62 + j*(90)
+72 + j*(459)
+-132 + j*(-227)
+-57 + j*(161)
+-294 + j*(48)
+-158 + j*(65)
+-154 + j*(-49)
+21 + j*(156)
+-289 + j*(226)
+45 + j*(79)
+-156 + j*(61)
+50 + j*(15)
+-368 + j*(-200)
+-202 + j*(64)
+344 + j*(190)
+31 + j*(139)
+101 + j*(95)
+-446 + j*(74)
+254 + j*(-9)
+175 + j*(28)
+-158 + j*(115)
+-173 + j*(-316)
+-88 + j*(-179)
+-18 + j*(-386)
+112 + j*(144)
+-368 + j*(250)
+-233 + j*(-171)
+-165 + j*(16)
+-188 + j*(71)
+-41 + j*(-57)
+422 + j*(47)
+62 + j*(-120)
+18 + j*(4)
+-103 + j*(-131)
+-21 + j*(-190)
+-205 + j*(-158)
+268 + j*(151)
+-250 + j*(156)
+-142 + j*(-12)
+99 + j*(237)
+363 + j*(78)
+108 + j*(-13)
+291 + j*(-148)
+-243 + j*(486)
+177 + j*(33)
+117 + j*(15)
+-126 + j*(-1)
+-185 + j*(-149)
+115 + j*(108)
+1 + j*(-47)
+58 + j*(-262)
+275 + j*(-234)
+-83 + j*(155)
+291 + j*(72)
+-187 + j*(147)
+57 + j*(14)
+25 + j*(280)
+318 + j*(23)
+-229 + j*(223)
+164 + j*(86)
+293 + j*(100)
+-52 + j*(-40)
+87 + j*(118)
+-8 + j*(4)
+134 + j*(47)
+250 + j*(376)
+-73 + j*(64)
+104 + j*(-39)
+-305 + j*(-147)
+-419 + j*(-16)
+-41 + j*(8)
+-83 + j*(-453)
+-19 + j*(201)
+-124 + j*(-91)
+-175 + j*(-139)
+25 + j*(144)
+-28 + j*(303)
+-339 + j*(57)
+-139 + j*(319)
+-141 + j*(11)
+-109 + j*(-14)
+-6 + j*(-254)
+-8 + j*(80)
+319 + j*(101)
+94 + j*(-40)
+-202 + j*(-161)
+-329 + j*(-263)
+-115 + j*(-208)
+250 + j*(-221)
+214 + j*(29)
+297 + j*(-151)
+21 + j*(-16)
+3 + j*(204)
+8 + j*(-18)
+302 + j*(-215)
+-216 + j*(-25)
+-54 + j*(-63)
+-113 + j*(-21)
+-218 + j*(-19)
+102 + j*(-134)
+303 + j*(-272)
+-199 + j*(-87)
+-115 + j*(-137)
+-52 + j*(16)
+-153 + j*(-173)
+228 + j*(428)
+-43 + j*(-187)
+149 + j*(-149)
+-83 + j*(373)
+-158 + j*(512)
+-306 + j*(64)
+-59 + j*(54)
+-94 + j*(-110)
+240 + j*(-116)
+99 + j*(52)
+262 + j*(-194)
+-152 + j*(85)
+-105 + j*(218)
+-30 + j*(-55)
+187 + j*(98)
+308 + j*(-119)
+54 + j*(-221)
+103 + j*(175)
+16 + j*(129)
+149 + j*(-23)
+95 + j*(7)
+-267 + j*(-37)
+2 + j*(283)
+-237 + j*(30)
+-28 + j*(-204)
+18 + j*(10)
+-25 + j*(-262)
+-252 + j*(45)
+-7 + j*(64)
+139 + j*(325)
+-44 + j*(-243)
+-94 + j*(194)
+132 + j*(192)
+74 + j*(-332)
+212 + j*(-189)
+-20 + j*(83)
+56 + j*(-45)
+-371 + j*(-122)
+10 + j*(134)
+-163 + j*(69)
+-305 + j*(35)
+27 + j*(-186)
+106 + j*(54)
+226 + j*(8)
+-185 + j*(50)
+-3 + j*(-26)
+11 + j*(136)
+-360 + j*(-132)
+192 + j*(-67)
+189 + j*(-46)
+-23 + j*(122)
+-119 + j*(-45)
+187 + j*(-186)
+24 + j*(78)
+21 + j*(-125)
+433 + j*(-60)
+180 + j*(-35)
+-166 + j*(3)
+44 + j*(134)
+79 + j*(26)
+-82 + j*(103)
+-180 + j*(-40)
+11 + j*(49)
+147 + j*(132)
+10 + j*(-36)
+53 + j*(-157)
+170 + j*(163)
+71 + j*(213)
+82 + j*(-135)
+-56 + j*(-138)
+41 + j*(-115)
+-190 + j*(-4)
+55 + j*(199)
+-144 + j*(-113)
+-397 + j*(-207)
+-165 + j*(-22)
+46 + j*(122)
+-151 + j*(-102)
+124 + j*(-79)
+1 + j*(-262)
+313 + j*(-66)
+117 + j*(54)
+110 + j*(-117)
+-254 + j*(-152)
+-2 + j*(-24)
+-199 + j*(25)
+-178 + j*(-133)
+-164 + j*(88)
+-18 + j*(-30)
+-166 + j*(83)
+18 + j*(-286)
+230 + j*(100)
+153 + j*(-115)
+49 + j*(-59)
+-39 + j*(-12)
+-412 + j*(-168)
+-151 + j*(293)
+81 + j*(-356)
+106 + j*(11)
+101 + j*(-76)
+-103 + j*(489)
+60 + j*(327)
+-254 + j*(-398)
+-96 + j*(-74)
+115 + j*(-133)
+-114 + j*(91)
+105 + j*(23)
+-334 + j*(-8)
+421 + j*(-191)
+-281 + j*(-4)
+49 + j*(-26)
+83 + j*(-13)
+102 + j*(202)
+115 + j*(214)
+-18 + j*(322)
+201 + j*(161)
+34 + j*(-37)
+-204 + j*(181)
+412 + j*(-41)
+187 + j*(-15)
+-11 + j*(95)
+-8 + j*(-322)
+-364 + j*(40)
+-148 + j*(-52)
+351 + j*(-114)
+244 + j*(175)
+-123 + j*(-182)
+-59 + j*(-103)
+-60 + j*(98)
+-166 + j*(83)
+-192 + j*(71)
+-187 + j*(223)
+-24 + j*(-272)
+209 + j*(-320)
+-45 + j*(-89)
+438 + j*(-54)
+-64 + j*(-235)
+-346 + j*(-112)
+-12 + j*(142)
+-331 + j*(-138)
+78 + j*(-123)
+-274 + j*(28)
+-6 + j*(-132)
+-64 + j*(258)
+159 + j*(-135)
+146 + j*(-85)
+-69 + j*(-122)
+12 + j*(394)
+-24 + j*(-233)
+194 + j*(144)
+105 + j*(-107)
+47 + j*(33)
+30 + j*(-122)
+-27 + j*(-21)
+-48 + j*(-248)
+354 + j*(91)
+-3 + j*(54)
+-440 + j*(-37)
+-127 + j*(198)
+99 + j*(-142)
+252 + j*(139)
+-150 + j*(-184)
+-355 + j*(-5)
+192 + j*(243)
+-107 + j*(259)
+-95 + j*(81)
+-345 + j*(40)
+-207 + j*(-141)
+47 + j*(76)
+-118 + j*(66)
+-161 + j*(128)
+-1 + j*(186)
+-45 + j*(-187)
+106 + j*(224)
+-48 + j*(-237)
+35 + j*(-229)
+-55 + j*(-293)
+-54 + j*(-86)
+-183 + j*(79)
+-15 + j*(-41)
+-122 + j*(231)
+69 + j*(-17)
+100 + j*(279)
+320 + j*(76)
+-68 + j*(-83)
+107 + j*(-70)
+-94 + j*(158)
+-93 + j*(122)
+-141 + j*(22)
+65 + j*(91)
+-390 + j*(-91)
+-216 + j*(35)
+37 + j*(-191)
+-57 + j*(14)
+57 + j*(-288)
+378 + j*(344)
+42 + j*(448)
+38 + j*(66)
+-76 + j*(-260)
+298 + j*(-250)
+13 + j*(-370)
+156 + j*(-169)
+72 + j*(-215)
+173 + j*(289)
+194 + j*(130)
+-23 + j*(202)
+-22 + j*(298)
+148 + j*(-113)
+-131 + j*(-168)
+339 + j*(107)
+172 + j*(245)
+-136 + j*(-105)
+-186 + j*(-156)
+-67 + j*(221)
+-139 + j*(-42)
+151 + j*(247)
+-13 + j*(24)
+41 + j*(139)
+-165 + j*(185)
+-55 + j*(-143)
+35 + j*(-252)
+-148 + j*(349)
+-147 + j*(-26)
+36 + j*(-332)
+-58 + j*(-306)
+-152 + j*(107)
+157 + j*(-163)
+-195 + j*(68)
+241 + j*(282)
+18 + j*(-115)
+211 + j*(-32)
+185 + j*(309)
+-76 + j*(122)
+114 + j*(6)
+-58 + j*(-52)
+-161 + j*(-116)
+6 + j*(159)
+141 + j*(173)
+-134 + j*(-146)
+-243 + j*(250)
+38 + j*(221)
+-122 + j*(-24)
+-37 + j*(454)
+-119 + j*(-127)
+122 + j*(-71)
+52 + j*(-101)
+63 + j*(-133)
+8 + j*(-279)
+214 + j*(-154)
+-467 + j*(110)
+78 + j*(6)
+-216 + j*(-87)
+-147 + j*(-160)
+-38 + j*(161)
+124 + j*(245)
+-56 + j*(-250)
+-70 + j*(-132)
+-235 + j*(117)
+-25 + j*(36)
+67 + j*(-18)
+115 + j*(-83)
+88 + j*(278)
+-175 + j*(-8)
+285 + j*(-65)
+29 + j*(-49)
+-42 + j*(-153)
+-23 + j*(-26)
+153 + j*(-66)
+-218 + j*(251)
+-37 + j*(228)
+-21 + j*(30)
+101 + j*(-76)
+-5 + j*(-206)
+49 + j*(37)
+-100 + j*(-129)
+3 + j*(-216)
+9 + j*(49)
+247 + j*(13)
+-20 + j*(99)
+-19 + j*(134)
+-2 + j*(144)
+153 + j*(112)
+362 + j*(91)
+-74 + j*(-28)
+211 + j*(-182)
+105 + j*(226)
+-100 + j*(130)
+37 + j*(16)
+130 + j*(167)
+-88 + j*(-218)
+143 + j*(84)
+31 + j*(35)
+212 + j*(390)
+1 + j*(-293)
+-12 + j*(-161)
+-49 + j*(-143)
+-91 + j*(-130)
+6 + j*(-74)
+-59 + j*(185)
+-177 + j*(92)
+-19 + j*(25)
+-232 + j*(-138)
+110 + j*(103)
+-40 + j*(131)
+3 + j*(-152)
+-55 + j*(105)
+260 + j*(-247)
+286 + j*(-23)
+98 + j*(-16)
+54 + j*(33)
+-358 + j*(-16)
+-146 + j*(107)
+-249 + j*(-199)
+-158 + j*(87)
+-72 + j*(-110)
+133 + j*(-196)
+-141 + j*(354)
+71 + j*(-152)
+159 + j*(192)
+-162 + j*(62)
+182 + j*(344)
+-2 + j*(14)
+-293 + j*(321)
+-41 + j*(-82)
+-24 + j*(225)
+-17 + j*(-158)
+-37 + j*(103)
+42 + j*(-50)
+-33 + j*(229)
+-22 + j*(54)
+-105 + j*(-125)
+343 + j*(298)
+-211 + j*(231)
+75 + j*(-85)
+181 + j*(-33)
+194 + j*(205)
+-36 + j*(103)
+-325 + j*(-103)
+-148 + j*(-293)
+-143 + j*(-52)
+-294 + j*(16)
+-147 + j*(-192)
+-132 + j*(64)
+-75 + j*(-105)
+-279 + j*(-113)
+15 + j*(-10)
+103 + j*(-361)
+45 + j*(315)
+-8 + j*(-119)
+-352 + j*(-97)
+-8 + j*(-74)
+-363 + j*(112)
+-196 + j*(67)
+226 + j*(-40)
+235 + j*(117)
+-140 + j*(47)
+33 + j*(161)
+149 + j*(162)
+-468 + j*(-17)
+-270 + j*(-72)
+-335 + j*(-178)
+-23 + j*(184)
+156 + j*(361)
+184 + j*(177)
+151 + j*(141)
+-100 + j*(-231)
+-2 + j*(71)
+-3 + j*(103)
+230 + j*(105)
+50 + j*(306)
+-194 + j*(216)
+101 + j*(-252)
+-187 + j*(88)
+-114 + j*(43)
+6 + j*(124)
+-143 + j*(-50)
+-237 + j*(33)
+115 + j*(144)
+-112 + j*(-465)
+86 + j*(-54)
+-125 + j*(-146)
+127 + j*(-179)
+175 + j*(-162)
+146 + j*(-141)
+-272 + j*(-158)
+107 + j*(168)
+48 + j*(143)
+-42 + j*(-18)
+33 + j*(83)
+-213 + j*(269)
+58 + j*(-211)
+-140 + j*(100)
+29 + j*(-171)
+311 + j*(-104)
+-13 + j*(127)
+-55 + j*(110)
+-191 + j*(4)
+-16 + j*(93)
+-338 + j*(255)
+103 + j*(55)
+-88 + j*(-111)
+41 + j*(49)
+191 + j*(124)
+145 + j*(163)
+18 + j*(-132)
+-46 + j*(81)
+-59 + j*(-154)
+277 + j*(179)
+199 + j*(104)
+40 + j*(4)
+-46 + j*(28)
+-13 + j*(-26)
+89 + j*(11)
+-56 + j*(91)
+-228 + j*(-152)
+-7 + j*(64)
+122 + j*(-274)
+151 + j*(-303)
+-273 + j*(-251)
+-60 + j*(264)
+49 + j*(-74)
+-56 + j*(-255)
+445 + j*(210)
+33 + j*(-155)
+-271 + j*(-182)
+-36 + j*(-136)
+8 + j*(-16)
+-204 + j*(-123)
+-124 + j*(33)
+-139 + j*(32)
+90 + j*(-192)
+282 + j*(83)
+48 + j*(-245)
+129 + j*(98)
+-54 + j*(344)
+-18 + j*(252)
+-279 + j*(-146)
+-115 + j*(-52)
+79 + j*(192)
+132 + j*(22)
+-103 + j*(-162)
+-42 + j*(64)
+9 + j*(-185)
+-132 + j*(-54)
+9 + j*(129)
+211 + j*(50)
+-164 + j*(-13)
+258 + j*(-100)
+194 + j*(145)
+-420 + j*(-276)
+27 + j*(-30)
+-106 + j*(74)
+-71 + j*(378)
+-296 + j*(178)
+190 + j*(175)
+217 + j*(-64)
+455 + j*(-68)
+69 + j*(144)
+216 + j*(6)
+25 + j*(39)
+39 + j*(78)
+-31 + j*(134)
+165 + j*(-6)
+-160 + j*(-95)
+185 + j*(-281)
+71 + j*(402)
+-155 + j*(414)
+159 + j*(-88)
+302 + j*(-307)
+73 + j*(-36)
+-81 + j*(215)
+142 + j*(-110)
+103 + j*(-156)
+195 + j*(-28)
+185 + j*(167)
+-89 + j*(117)
+-147 + j*(-75)
+118 + j*(-332)
+-7 + j*(104)
+211 + j*(-114)
+201 + j*(-291)
+49 + j*(88)
+159 + j*(-75)
+-327 + j*(-508)
+26 + j*(13)
+-387 + j*(-252)
+148 + j*(-234)
+23 + j*(-49)
+78 + j*(-138)
+189 + j*(-103)
+-20 + j*(117)
+-33 + j*(6)
+149 + j*(-153)
+-85 + j*(-231)
+-127 + j*(135)
+-136 + j*(-206)
+-73 + j*(69)
+-134 + j*(7)
+-264 + j*(-69)
+-82 + j*(89)
+-248 + j*(127)
+30 + j*(-12)
+-138 + j*(-164)
+123 + j*(-185)
+237 + j*(-33)
+-187 + j*(-103)
+-115 + j*(-215)
+28 + j*(347)
+220 + j*(131)
+281 + j*(-134)
+-107 + j*(110)
+133 + j*(-53)
+204 + j*(132)
+-85 + j*(289)
+235 + j*(-135)
+-145 + j*(153)
+-87 + j*(332)
+-213 + j*(-73)
+-153 + j*(-220)
+-214 + j*(-223)
+59 + j*(-12)
+48 + j*(-79)
+11 + j*(8)
+-46 + j*(-181)
+94 + j*(141)
+39 + j*(-21)
+70 + j*(-293)
+145 + j*(13)
+32 + j*(-18)
+134 + j*(129)
+-110 + j*(-243)
+-127 + j*(292)
+4 + j*(209)
+-139 + j*(-44)
+-21 + j*(-40)
+35 + j*(-84)
+-316 + j*(-268)
+-195 + j*(166)
+-95 + j*(-24)
+233 + j*(-18)
+240 + j*(-88)
+-66 + j*(-143)
+155 + j*(9)
+266 + j*(235)
+-94 + j*(-28)
+117 + j*(35)
+-189 + j*(9)
+-205 + j*(40)
+-74 + j*(252)
+-141 + j*(150)
+-29 + j*(-57)
+49 + j*(103)
+-57 + j*(251)
+109 + j*(95)
+284 + j*(-16)
+11 + j*(-96)
+-289 + j*(-351)
+-6 + j*(-222)
+355 + j*(118)
+-139 + j*(179)
+-143 + j*(137)
+88 + j*(-86)
+243 + j*(-131)
+117 + j*(-6)
+-489 + j*(70)
+74 + j*(245)
+93 + j*(88)
+-62 + j*(54)
+218 + j*(176)
+-146 + j*(-126)
+28 + j*(-53)
+86 + j*(13)
+203 + j*(153)
+150 + j*(74)
+200 + j*(320)
+95 + j*(142)
+58 + j*(156)
+345 + j*(-52)
+-59 + j*(462)
+-22 + j*(-43)
+-160 + j*(141)
+313 + j*(-104)
+-190 + j*(-67)
+25 + j*(-103)
+-305 + j*(17)
+53 + j*(-52)
+-36 + j*(-101)
+-67 + j*(-47)
+-198 + j*(202)
+231 + j*(-218)
+-62 + j*(146)
+68 + j*(-172)
+-148 + j*(-134)
+-32 + j*(-184)
+-378 + j*(88)
+-248 + j*(12)
+-37 + j*(-68)
+11 + j*(44)
+-19 + j*(-67)
+215 + j*(262)
+-190 + j*(229)
+-277 + j*(62)
+140 + j*(-204)
+-219 + j*(-9)
+78 + j*(-64)
+249 + j*(16)
+-1 + j*(-115)
+58 + j*(276)
+-94 + j*(-193)
+80 + j*(-61)
+333 + j*(77)
+150 + j*(233)
+-251 + j*(-255)
+0 + j*(340)
+-205 + j*(-45)
+80 + j*(-305)
+112 + j*(-45)
+-28 + j*(-1)
+-1 + j*(22)
+125 + j*(-304)
+-276 + j*(-24)
+-28 + j*(-177)
+117 + j*(197)
+192 + j*(-29)
+40 + j*(158)
+-304 + j*(-122)
+-84 + j*(-35)
+160 + j*(-28)
+36 + j*(110)
+119 + j*(7)
+-35 + j*(-127)
+8 + j*(33)
+161 + j*(48)
+-65 + j*(158)
+-237 + j*(-220)
+-65 + j*(-294)
+157 + j*(155)
+-8 + j*(-296)
+18 + j*(-273)
+173 + j*(-16)
+136 + j*(23)
+85 + j*(156)
+1 + j*(144)
+147 + j*(-281)
+-95 + j*(94)
+-69 + j*(-103)
+165 + j*(-25)
+-196 + j*(257)
+80 + j*(195)
+31 + j*(-11)
+-267 + j*(-69)
+-208 + j*(-127)
+-180 + j*(-87)
+-90 + j*(48)
+69 + j*(-47)
+-163 + j*(-314)
+-4 + j*(-166)
+-45 + j*(460)
+-5 + j*(-4)
+105 + j*(-238)
+-240 + j*(158)
+-145 + j*(72)
+95 + j*(-35)
+-4 + j*(-213)
+14 + j*(182)
+-33 + j*(123)
+-385 + j*(170)
+32 + j*(-27)
+-19 + j*(-164)
+-245 + j*(68)
+-16 + j*(-67)
+226 + j*(88)
+-130 + j*(-112)
+4 + j*(-4)
+-320 + j*(54)
+-154 + j*(-131)
+184 + j*(33)
+137 + j*(-269)
+148 + j*(-68)
+-93 + j*(-13)
+94 + j*(-280)
+35 + j*(98)
+-104 + j*(-165)
+-71 + j*(-84)
+293 + j*(-71)
+247 + j*(159)
+-91 + j*(-63)
+-95 + j*(246)
+-124 + j*(49)
+-158 + j*(227)
+-146 + j*(-84)
+-185 + j*(-206)
+101 + j*(129)
+-45 + j*(-361)
+-140 + j*(115)
+8 + j*(-83)
+-426 + j*(-45)
+365 + j*(-120)
+-115 + j*(98)
+-247 + j*(192)
+23 + j*(39)
+-22 + j*(205)
+30 + j*(40)
+196 + j*(-71)
+-74 + j*(193)
+76 + j*(-51)
+-123 + j*(-93)
+-37 + j*(-251)
+-26 + j*(170)
+-263 + j*(43)
+-42 + j*(-224)
+214 + j*(153)
+-33 + j*(86)
+-137 + j*(158)
+148 + j*(122)
+68 + j*(26)
+341 + j*(-75)
+121 + j*(96)
+74 + j*(-235)
+25 + j*(-41)
+50 + j*(141)
+-183 + j*(69)
+74 + j*(-94)
+119 + j*(-129)
+55 + j*(5)
+-132 + j*(267)
+-167 + j*(-24)
+-273 + j*(139)
+270 + j*(59)
+-114 + j*(-62)
+46 + j*(63)
+-74 + j*(42)
+378 + j*(-223)
+27 + j*(122)
+121 + j*(372)
+278 + j*(116)
+-33 + j*(-276)
+9 + j*(-49)
+-403 + j*(138)
+-5 + j*(342)
+-109 + j*(-95)
+-31 + j*(-43)
+62 + j*(-186)
+163 + j*(-233)
+-28 + j*(144)
+194 + j*(93)
+69 + j*(-206)
+180 + j*(-120)
+-72 + j*(-62)
+-52 + j*(-166)
+81 + j*(128)
+239 + j*(-315)
+30 + j*(-97)
+194 + j*(-300)
+26 + j*(197)
+12 + j*(-54)
+-13 + j*(146)
+322 + j*(55)
+-341 + j*(-282)
+29 + j*(-225)
+-91 + j*(7)
+-160 + j*(64)
+7 + j*(-127)
+28 + j*(-158)
+-97 + j*(283)
+-276 + j*(62)
+-53 + j*(-362)
+59 + j*(18)
+227 + j*(-390)
+-86 + j*(132)
+-105 + j*(-513)
+-87 + j*(29)
+35 + j*(-110)
+18 + j*(47)
+180 + j*(-45)
+-112 + j*(5)
+44 + j*(-31)
+-144 + j*(66)
+-284 + j*(187)
+-373 + j*(183)
+66 + j*(-160)
+378 + j*(209)
+-360 + j*(-33)
+-181 + j*(-174)
+31 + j*(-209)
+66 + j*(-187)
+-224 + j*(-27)
+-118 + j*(-124)
+16 + j*(156)
+-29 + j*(163)
+-112 + j*(69)
+-10 + j*(191)
+114 + j*(-103)
+8 + j*(16)
+-132 + j*(105)
+-221 + j*(211)
+-187 + j*(-11)
+100 + j*(-49)
+-27 + j*(52)
+-62 + j*(1)
+48 + j*(-86)
+-243 + j*(296)
+-307 + j*(-22)
+47 + j*(-23)
+-126 + j*(-111)
+-93 + j*(-12)
+-46 + j*(-265)
+71 + j*(-1)
+-52 + j*(42)
+-180 + j*(344)
+78 + j*(-95)
+-167 + j*(-28)
+-293 + j*(196)
+247 + j*(63)
+112 + j*(383)
+225 + j*(-232)
+97 + j*(-60)
+-57 + j*(-233)
+-180 + j*(-136)
+130 + j*(-187)
+-62 + j*(-65)
+13 + j*(14)
+-9 + j*(267)
+-243 + j*(-458)
+21 + j*(267)
+-57 + j*(-45)
+-148 + j*(130)
+86 + j*(251)
+-366 + j*(93)
+-375 + j*(302)
+107 + j*(-11)
+-12 + j*(-207)
+198 + j*(-397)
+-346 + j*(15)
+-19 + j*(177)
+28 + j*(-23)
+-87 + j*(-81)
+-164 + j*(-117)
+-184 + j*(42)
+-43 + j*(231)
+-49 + j*(-143)
+-209 + j*(-252)
+-344 + j*(171)
+261 + j*(200)
+210 + j*(2)
+-78 + j*(18)
+120 + j*(-31)
+-46 + j*(37)
+105 + j*(228)
+252 + j*(-62)
+76 + j*(190)
+-200 + j*(-88)
+112 + j*(31)
+97 + j*(46)
+-14 + j*(191)
+122 + j*(70)
+-110 + j*(132)
+52 + j*(-151)
+-161 + j*(69)
+74 + j*(228)
+-170 + j*(41)
+-59 + j*(-354)
+-98 + j*(325)
+64 + j*(-64)
+-235 + j*(175)
+-230 + j*(-93)
+83 + j*(-48)
+-274 + j*(-86)
+133 + j*(-92)
+-118 + j*(190)
+-192 + j*(232)
+107 + j*(226)
+-178 + j*(-91)
+-45 + j*(35)
+212 + j*(194)
+38 + j*(-66)
+2 + j*(142)
+156 + j*(296)
+-62 + j*(38)
+34 + j*(-358)
+-133 + j*(-114)
+94 + j*(80)
+-299 + j*(41)
+23 + j*(264)
+-223 + j*(515)
+-82 + j*(-98)
+-180 + j*(175)
+-160 + j*(-163)
+-42 + j*(81)
+-110 + j*(-93)
+-95 + j*(-186)
+-182 + j*(-190)
+29 + j*(-227)
+36 + j*(107)
+-25 + j*(-239)
+-147 + j*(-128)
+214 + j*(178)
+-144 + j*(-26)
+-162 + j*(210)
+-1 + j*(-170)
+-182 + j*(76)
+-214 + j*(272)
+209 + j*(112)
+-335 + j*(199)
+202 + j*(93)
+192 + j*(-119)
+-160 + j*(65)
+231 + j*(-61)
+-37 + j*(-151)
+77 + j*(114)
+293 + j*(34)
+-203 + j*(-176)
+-164 + j*(142)
+-233 + j*(269)
+-45 + j*(227)
+313 + j*(74)
+-52 + j*(210)
+-396 + j*(-31)
+-111 + j*(-95)
+-11 + j*(83)
+112 + j*(246)
+-59 + j*(95)
+196 + j*(121)
+-364 + j*(-285)
+139 + j*(284)
+-301 + j*(-78)
+-274 + j*(-334)
+-413 + j*(-324)
+25 + j*(-57)
+-251 + j*(-60)
+552 + j*(-140)
+98 + j*(559)
+452 + j*(-165)
+334 + j*(-16)
+-477 + j*(-221)
+-273 + j*(82)
+-170 + j*(127)
+600 + j*(348)
+412 + j*(187)
+392 + j*(393)
+356 + j*(-431)
+-303 + j*(-270)
+-383 + j*(388)
+107 + j*(-441)
+-371 + j*(155)
+385 + j*(398)
+-262 + j*(-58)
+244 + j*(-265)
+494 + j*(359)
+-245 + j*(214)
+141 + j*(-274)
+281 + j*(-645)
+252 + j*(222)
+-252 + j*(-163)
+-350 + j*(371)
+143 + j*(-293)
+-426 + j*(-419)
+107 + j*(-83)
+-183 + j*(-363)
+431 + j*(-91)
+-557 + j*(-171)
+-7 + j*(576)
+393 + j*(-195)
+-415 + j*(387)
+95 + j*(-383)
+56 + j*(156)
+223 + j*(433)
+-670 + j*(232)
+-78 + j*(192)
+327 + j*(187)
+-47 + j*(-198)
+-47 + j*(379)
+158 + j*(-204)
+170 + j*(40)
+120 + j*(-402)
+-57 + j*(-609)
+363 + j*(197)
+572 + j*(240)
+159 + j*(277)
+51 + j*(594)
+284 + j*(-165)
+-221 + j*(406)
+-83 + j*(-173)
+248 + j*(-268)
+-106 + j*(67)
+-233 + j*(330)
+-208 + j*(-184)
+414 + j*(-62)
+-170 + j*(609)
+-309 + j*(177)
+278 + j*(-119)
+611 + j*(251)
+-67 + j*(438)
+354 + j*(87)
+344 + j*(225)
+388 + j*(190)
+386 + j*(273)
+-235 + j*(-399)
+450 + j*(89)
+-129 + j*(-380)
+307 + j*(-317)
+6 + j*(454)
+-21 + j*(683)
+382 + j*(607)
+26 + j*(269)
+397 + j*(394)
+525 + j*(-202)
+-373 + j*(-337)
+607 + j*(363)
+142 + j*(235)
+320 + j*(-230)
+276 + j*(223)
+-82 + j*(-39)
+-41 + j*(374)
+298 + j*(313)
+-453 + j*(136)
+-487 + j*(-484)
+-50 + j*(214)
+-265 + j*(259)
+-185 + j*(-32)
+-268 + j*(6)
+335 + j*(414)
+-385 + j*(-177)
+-438 + j*(-168)
+-153 + j*(475)
+-93 + j*(223)
+-279 + j*(283)
+481 + j*(-119)
+2 + j*(-363)
+571 + j*(346)
+342 + j*(143)
+-379 + j*(175)
+-30 + j*(-334)
+-431 + j*(237)
+113 + j*(-408)
+420 + j*(-398)
+-101 + j*(-35)
+-363 + j*(77)
+-421 + j*(129)
+378 + j*(166)
+-316 + j*(-40)
+402 + j*(-251)
+22 + j*(-351)
+223 + j*(-376)
+273 + j*(599)
+-213 + j*(30)
+269 + j*(-317)
+209 + j*(357)
+-156 + j*(517)
+97 + j*(504)
+296 + j*(-239)
+65 + j*(1)
+278 + j*(342)
+-175 + j*(-567)
+325 + j*(-247)
+-455 + j*(-64)
+512 + j*(-163)
+148 + j*(542)
+183 + j*(273)
+-224 + j*(53)
+327 + j*(256)
+124 + j*(-139)
+63 + j*(124)
+-57 + j*(-381)
+112 + j*(-13)
+269 + j*(-236)
+-104 + j*(-487)
+-227 + j*(-422)
+434 + j*(-423)
+387 + j*(-274)
+-118 + j*(110)
+197 + j*(342)
+-96 + j*(300)
+413 + j*(-33)
+-184 + j*(-374)
+451 + j*(68)
+435 + j*(-132)
+-244 + j*(-332)
+482 + j*(296)
+500 + j*(-520)
+41 + j*(-66)
+-137 + j*(678)
+-433 + j*(361)
+-573 + j*(576)
+-350 + j*(255)
+-185 + j*(-711)
+491 + j*(403)
+-203 + j*(-359)
+36 + j*(-153)
+-199 + j*(-299)
+312 + j*(-607)
+17 + j*(82)
+-284 + j*(311)
+-651 + j*(349)
+-317 + j*(-525)
+461 + j*(-175)
+-272 + j*(-30)
+-433 + j*(392)
+-204 + j*(242)
+-132 + j*(330)
+37 + j*(-193)
+461 + j*(-472)
+-188 + j*(-404)
+136 + j*(434)
+489 + j*(-688)
+-261 + j*(-331)
+-79 + j*(323)
+-181 + j*(-231)
+236 + j*(483)
+294 + j*(-152)
+118 + j*(-52)
+286 + j*(299)
+353 + j*(-41)
+-250 + j*(262)
+-332 + j*(385)
+-1 + j*(-199)
+547 + j*(-29)
+135 + j*(307)
+150 + j*(348)
+-211 + j*(386)
+-124 + j*(-317)
+197 + j*(289)
+6 + j*(224)
+-571 + j*(327)
+-127 + j*(-331)
+164 + j*(-490)
+-211 + j*(428)
+507 + j*(99)
+1 + j*(-32)
+-378 + j*(-261)
+396 + j*(-520)
+-180 + j*(332)
+318 + j*(119)
+-143 + j*(364)
+-177 + j*(527)
+-141 + j*(47)
+180 + j*(104)
+-38 + j*(-321)
+185 + j*(353)
+-414 + j*(250)
+29 + j*(-441)
+-202 + j*(247)
+16 + j*(62)
+432 + j*(467)
+-206 + j*(175)
+94 + j*(-132)
+321 + j*(369)
+705 + j*(170)
+346 + j*(512)
+-368 + j*(-420)
+53 + j*(117)
+98 + j*(-211)
+-267 + j*(251)
+366 + j*(144)
+630 + j*(144)
+-187 + j*(333)
+-271 + j*(566)
+-344 + j*(-87)
+437 + j*(316)
+-181 + j*(423)
+-280 + j*(90)
+497 + j*(226)
+-191 + j*(-57)
+334 + j*(122)
+-228 + j*(309)
+412 + j*(-351)
+289 + j*(193)
+194 + j*(124)
+293 + j*(-198)
+-175 + j*(343)
+-222 + j*(-327)
+40 + j*(-205)
+357 + j*(-335)
+-131 + j*(-187)
+5 + j*(-491)
+38 + j*(330)
+6 + j*(274)
+207 + j*(113)
+-339 + j*(-238)
+245 + j*(-246)
+-46 + j*(-59)
+-375 + j*(-393)
+-231 + j*(515)
+53 + j*(262)
+-224 + j*(190)
+-363 + j*(-43)
+224 + j*(150)
+122 + j*(-337)
+-296 + j*(-264)
+73 + j*(445)
+-217 + j*(359)
+-270 + j*(-305)
+-342 + j*(526)
+286 + j*(-655)
+-216 + j*(410)
+606 + j*(368)
+540 + j*(347)
+-66 + j*(-136)
+149 + j*(342)
+64 + j*(-315)
+-483 + j*(-236)
+-313 + j*(-325)
+-150 + j*(238)
+-175 + j*(-165)
+-239 + j*(409)
+166 + j*(-18)
+282 + j*(-151)
+-202 + j*(-446)
+452 + j*(360)
+-205 + j*(-263)
+-283 + j*(320)
+-358 + j*(266)
+170 + j*(28)
+-288 + j*(-393)
+97 + j*(423)
+122 + j*(425)
+-6 + j*(146)
+144 + j*(-282)
+368 + j*(413)
+-320 + j*(410)
+-513 + j*(-503)
+237 + j*(-528)
+-398 + j*(254)
+-237 + j*(474)
+-128 + j*(499)
+233 + j*(396)
+262 + j*(404)
+240 + j*(-390)
+-372 + j*(245)
+-313 + j*(-37)
+-99 + j*(-187)
+-301 + j*(-677)
+-321 + j*(120)
+294 + j*(-131)
+276 + j*(-228)
+-313 + j*(-604)
+-140 + j*(-262)
+-437 + j*(-173)
+98 + j*(192)
+235 + j*(394)
+256 + j*(-503)
+336 + j*(383)
+138 + j*(277)
+-56 + j*(260)
+-305 + j*(-528)
+206 + j*(59)
+221 + j*(191)
+552 + j*(-141)
+15 + j*(434)
+223 + j*(24)
+56 + j*(325)
+-49 + j*(238)
+-410 + j*(270)
+11 + j*(-322)
+-91 + j*(-492)
+-315 + j*(-44)
+-165 + j*(-332)
+242 + j*(108)
+29 + j*(226)
+95 + j*(-47)
+-218 + j*(-109)
+251 + j*(-426)
+-332 + j*(213)
+33 + j*(443)
+207 + j*(-475)
+148 + j*(-1)
+-147 + j*(-504)
+-158 + j*(1)
+378 + j*(15)
+-612 + j*(-174)
+255 + j*(182)
+240 + j*(-387)
+-206 + j*(176)
+523 + j*(-181)
+241 + j*(-255)
+-362 + j*(-265)
+84 + j*(100)
+-299 + j*(165)
+291 + j*(192)
+-109 + j*(-377)
+-72 + j*(532)
+-86 + j*(-276)
+250 + j*(489)
+-301 + j*(-421)
+187 + j*(401)
+-241 + j*(58)
+-369 + j*(-199)
+23 + j*(501)
+-194 + j*(-318)
+-278 + j*(578)
+552 + j*(223)
+-197 + j*(-253)
+231 + j*(-304)
+-33 + j*(-308)
+296 + j*(437)
+-462 + j*(445)
+57 + j*(-146)
+-127 + j*(94)
+98 + j*(21)
+392 + j*(-337)
+-290 + j*(244)
+-216 + j*(434)
+112 + j*(-111)
+1 + j*(-450)
+294 + j*(115)
+-486 + j*(-211)
+-293 + j*(-436)
+-181 + j*(315)
+231 + j*(375)
+192 + j*(-240)
+200 + j*(-343)
+-310 + j*(34)
+-459 + j*(-279)
+-173 + j*(-120)
+391 + j*(-253)
+-197 + j*(-226)
+224 + j*(-334)
+-604 + j*(325)
+-18 + j*(-379)
+269 + j*(-285)
+454 + j*(483)
+-172 + j*(-185)
+-479 + j*(135)
+319 + j*(275)
+423 + j*(-495)
+-319 + j*(315)
+22 + j*(466)
+-86 + j*(-120)
+224 + j*(198)
+210 + j*(-262)
+106 + j*(170)
+-293 + j*(220)
+491 + j*(524)
+128 + j*(525)
+-318 + j*(419)
+352 + j*(-143)
+-196 + j*(130)
+-222 + j*(317)
+302 + j*(-421)
+388 + j*(-199)
+-243 + j*(395)
+87 + j*(397)
+-383 + j*(296)
+99 + j*(-499)
+-97 + j*(-214)
+279 + j*(-408)
+-428 + j*(-327)
+250 + j*(-131)
+260 + j*(110)
+-346 + j*(323)
+-204 + j*(341)
+-344 + j*(-276)
+266 + j*(-33)
+-482 + j*(-466)
+-284 + j*(10)
+-331 + j*(236)
+66 + j*(272)
+-415 + j*(227)
+16 + j*(81)
+-647 + j*(671)
+-20 + j*(93)
+-130 + j*(-244)
+-272 + j*(74)
+-243 + j*(379)
+168 + j*(-558)
+-49 + j*(264)
+-257 + j*(231)
+-298 + j*(231)
+235 + j*(496)
+263 + j*(77)
+-192 + j*(250)
+110 + j*(87)
+-301 + j*(49)
+391 + j*(-658)
+482 + j*(-317)
+267 + j*(-197)
+89 + j*(-107)
+240 + j*(-375)
+-354 + j*(-299)
+-441 + j*(-1)
+113 + j*(-134)
+530 + j*(-79)
+405 + j*(-101)
+476 + j*(45)
+460 + j*(145)
+332 + j*(-77)
+-86 + j*(-153)
+74 + j*(-574)
+-298 + j*(-58)
+-220 + j*(-371)
+438 + j*(192)
+-325 + j*(175)
+-132 + j*(-379)
+225 + j*(96)
+307 + j*(-55)
+-137 + j*(303)
+-112 + j*(423)
+-327 + j*(-241)
+-329 + j*(351)
+62 + j*(-287)
+372 + j*(-214)
+426 + j*(-216)
+176 + j*(-170)
+-449 + j*(-296)
+522 + j*(-1)
+-66 + j*(396)
+-223 + j*(92)
+228 + j*(165)
+-233 + j*(105)
+-272 + j*(-164)
+248 + j*(121)
+-518 + j*(20)
+-65 + j*(-497)
+-272 + j*(118)
+166 + j*(-117)
+-279 + j*(-284)
+426 + j*(-590)
+-317 + j*(346)
+197 + j*(421)
+552 + j*(181)
+-163 + j*(290)
+253 + j*(-554)
+60 + j*(16)
+-336 + j*(-438)
+-154 + j*(-322)
+-202 + j*(188)
+-177 + j*(-8)
+-427 + j*(-361)
+-353 + j*(27)
+406 + j*(119)
+-326 + j*(-155)
+170 + j*(-190)
+-235 + j*(59)
+-67 + j*(287)
+106 + j*(438)
+192 + j*(-505)
+173 + j*(-77)
+-147 + j*(-275)
+-683 + j*(342)
+-411 + j*(433)
+307 + j*(4)
+-506 + j*(44)
+322 + j*(-171)
+337 + j*(-151)
+276 + j*(332)
+-269 + j*(293)
+-8 + j*(151)
+-552 + j*(216)
+-168 + j*(-276)
+195 + j*(-460)
+287 + j*(645)
+-132 + j*(-112)
+681 + j*(355)
+336 + j*(-137)
+-539 + j*(-412)
+82 + j*(433)
+-363 + j*(-254)
+-175 + j*(311)
+-180 + j*(155)
+759 + j*(222)
+-756 + j*(387)
+598 + j*(11)
+-66 + j*(47)
+354 + j*(-71)
+-262 + j*(-247)
+-397 + j*(14)
+400 + j*(-116)
+141 + j*(132)
+387 + j*(38)
+269 + j*(-296)
+457 + j*(54)
+-173 + j*(85)
+-370 + j*(191)
+53 + j*(-285)
+-457 + j*(-389)
+60 + j*(-470)
+384 + j*(-293)
+-405 + j*(139)
+-138 + j*(168)
+-107 + j*(-69)
+334 + j*(-50)
+210 + j*(-148)
+268 + j*(-327)
+-325 + j*(316)
+-157 + j*(3)
+-202 + j*(-96)
+-214 + j*(244)
+-336 + j*(-150)
+495 + j*(-384)
+380 + j*(283)
+-184 + j*(-419)
+293 + j*(339)
+178 + j*(67)
+-156 + j*(249)
+-563 + j*(407)
+-561 + j*(185)
+-93 + j*(-275)
+-299 + j*(363)
+356 + j*(482)
+301 + j*(163)
+-518 + j*(-438)
+-379 + j*(-109)
+-474 + j*(438)
+486 + j*(180)
+204 + j*(648)
+-122 + j*(190)
+-387 + j*(-214)
+10 + j*(238)
+124 + j*(406)
+420 + j*(-313)
+-163 + j*(110)
+-330 + j*(-315)
+303 + j*(262)
+371 + j*(189)
+452 + j*(-500)
+430 + j*(-48)
+-10 + j*(129)
+-278 + j*(136)
+-366 + j*(420)
+163 + j*(-250)
+337 + j*(-217)
+326 + j*(473)
+-353 + j*(-308)
+-11 + j*(-25)
+106 + j*(-86)
+237 + j*(325)
+368 + j*(340)
+53 + j*(-92)
+116 + j*(-206)
+163 + j*(206)
+-122 + j*(185)
+282 + j*(-407)
+-41 + j*(35)
+-279 + j*(110)
+-204 + j*(4)
+42 + j*(236)
+-190 + j*(66)
+2 + j*(-25)
+-112 + j*(-47)
+35 + j*(-76)
+165 + j*(293)
+-218 + j*(-17)
+-69 + j*(-71)
+-158 + j*(48)
+88 + j*(-57)
+-67 + j*(-9)
+-144 + j*(-40)
+-216 + j*(218)
+-161 + j*(88)
+100 + j*(89)
+226 + j*(219)
+-10 + j*(0)
+96 + j*(-326)
+79 + j*(-63)
+-82 + j*(219)
+345 + j*(69)
+486 + j*(-264)
+-37 + j*(11)
+373 + j*(-105)
+-292 + j*(-99)
+214 + j*(-145)
+-187 + j*(-156)
+-96 + j*(-194)
+-200 + j*(-57)
+-134 + j*(-142)
+152 + j*(-251)
+-112 + j*(25)
+-33 + j*(179)
+-177 + j*(-7)
+-245 + j*(1)
+-114 + j*(122)
+-9 + j*(-83)
+-157 + j*(132)
+-173 + j*(-385)
+-25 + j*(308)
+280 + j*(-180)
+-240 + j*(-129)
+-286 + j*(-115)
+-184 + j*(161)
+180 + j*(-82)
+-2 + j*(383)
+-139 + j*(192)
+112 + j*(-71)
+178 + j*(-163)
+104 + j*(15)
+-103 + j*(-185)
+-207 + j*(197)
+-78 + j*(108)
+86 + j*(60)
+52 + j*(296)
+-240 + j*(-98)
+-9 + j*(150)
+107 + j*(-222)
+281 + j*(223)
+-79 + j*(-42)
+49 + j*(-105)
+-157 + j*(84)
+42 + j*(-150)
+80 + j*(-23)
+178 + j*(-237)
+269 + j*(119)
+-438 + j*(-72)
+-51 + j*(-114)
+-279 + j*(-76)
+130 + j*(97)
+-125 + j*(138)
+100 + j*(-168)
+-332 + j*(155)
+112 + j*(413)
+175 + j*(-136)
+-450 + j*(77)
+34 + j*(51)
+-140 + j*(257)
+170 + j*(-117)
+-275 + j*(-221)
+30 + j*(361)
+0 + j*(35)
+-165 + j*(-214)
+227 + j*(186)
+326 + j*(363)
+175 + j*(11)
+-52 + j*(51)
+153 + j*(-244)
+0 + j*(-8)
+-78 + j*(68)
+25 + j*(-67)
+88 + j*(7)
+-204 + j*(216)
+117 + j*(127)
+-214 + j*(-161)
+192 + j*(285)
+-366 + j*(13)
+185 + j*(92)
+-117 + j*(-243)
+132 + j*(0)
+141 + j*(9)
+-138 + j*(-232)
+-107 + j*(147)
+175 + j*(-41)
+35 + j*(47)
+175 + j*(-52)
+109 + j*(-82)
+-18 + j*(-75)
+94 + j*(47)
+76 + j*(111)
+59 + j*(-148)
+137 + j*(168)
+-24 + j*(171)
+-44 + j*(262)
+-299 + j*(-66)
+130 + j*(-274)
+64 + j*(-99)
+10 + j*(-214)
+-251 + j*(330)
+-77 + j*(-100)
+-239 + j*(226)
+-83 + j*(-61)
+-240 + j*(162)
+-475 + j*(173)
+-32 + j*(-143)
+112 + j*(238)
+-8 + j*(-178)
+-95 + j*(247)
+-33 + j*(87)
+-302 + j*(298)
+202 + j*(69)
+33 + j*(-87)
+-184 + j*(-31)
+234 + j*(220)
+122 + j*(-123)
+-64 + j*(155)
+106 + j*(115)
+161 + j*(56)
+72 + j*(243)
+-27 + j*(47)
+-3 + j*(-138)
+-302 + j*(-216)
+156 + j*(-93)
+-139 + j*(-104)
+-316 + j*(45)
+-161 + j*(345)
+-354 + j*(110)
+-79 + j*(155)
+193 + j*(21)
+31 + j*(-125)
+-119 + j*(-205)
+35 + j*(21)
+-75 + j*(241)
+23 + j*(-146)
+224 + j*(-222)
+-171 + j*(231)
+-61 + j*(-42)
+-372 + j*(102)
+-19 + j*(-151)
+368 + j*(89)
+318 + j*(-52)
+-327 + j*(-301)
+47 + j*(57)
+-243 + j*(-231)
+-461 + j*(59)
+118 + j*(-65)
+67 + j*(202)
+402 + j*(-226)
+-123 + j*(-42)
+-127 + j*(325)
+-24 + j*(-166)
+185 + j*(161)
+111 + j*(-74)
+-44 + j*(-95)
+-290 + j*(137)
+-125 + j*(-220)
+54 + j*(-77)
+70 + j*(46)
+153 + j*(-112)
+17 + j*(170)
+-185 + j*(77)
+193 + j*(140)
+-388 + j*(150)
+-381 + j*(-216)
+-11 + j*(262)
+-130 + j*(8)
+149 + j*(-19)
+240 + j*(134)
+101 + j*(-161)
+147 + j*(-86)
+101 + j*(51)
+110 + j*(-91)
+67 + j*(126)
+122 + j*(-72)
+-100 + j*(-166)
+146 + j*(-159)
+-175 + j*(208)
+-90 + j*(-16)
+-288 + j*(-130)
+-256 + j*(-168)
+-29 + j*(62)
+68 + j*(95)
+18 + j*(95)
+147 + j*(-91)
+-11 + j*(162)
+136 + j*(35)
+98 + j*(33)
+-180 + j*(308)
+171 + j*(-5)
+-114 + j*(25)
+-30 + j*(-217)
+-88 + j*(184)
+45 + j*(91)
+214 + j*(-21)
+91 + j*(348)
+-92 + j*(-296)
+-58 + j*(96)
+38 + j*(-119)
+-202 + j*(135)
+-28 + j*(-60)
+-123 + j*(31)
+102 + j*(12)
+-132 + j*(217)
+-28 + j*(245)
+-267 + j*(5)
+41 + j*(249)
+-21 + j*(-147)
+102 + j*(-320)
+-274 + j*(-25)
+156 + j*(-100)
+100 + j*(-124)
+-136 + j*(275)
+320 + j*(-35)
+-115 + j*(104)
+-11 + j*(-205)
+-254 + j*(-291)
+-9 + j*(-318)
+-97 + j*(195)
+279 + j*(29)
+269 + j*(227)
+67 + j*(-39)
+-136 + j*(241)
+-96 + j*(-19)
+250 + j*(-127)
+84 + j*(-129)
+228 + j*(90)
+-98 + j*(23)
+-46 + j*(-4)
+42 + j*(47)
+-15 + j*(-37)
+-122 + j*(-230)
+67 + j*(163)
+176 + j*(-43)
+82 + j*(-132)
+115 + j*(157)
+86 + j*(33)
+-325 + j*(-20)
+-115 + j*(77)
+-33 + j*(-4)
+197 + j*(161)
+88 + j*(33)
+-55 + j*(72)
+113 + j*(-60)
+135 + j*(132)
+9 + j*(291)
+-468 + j*(99)
+122 + j*(-105)
+95 + j*(-26)
+29 + j*(-37)
+40 + j*(-100)
+-100 + j*(26)
+-369 + j*(228)
+86 + j*(-67)
+-47 + j*(-98)
+52 + j*(-129)
+271 + j*(-58)
+131 + j*(-315)
+-78 + j*(361)
+-2 + j*(-98)
+143 + j*(-180)
+78 + j*(123)
+-77 + j*(-190)
+-92 + j*(-76)
+151 + j*(71)
+-47 + j*(13)
+246 + j*(-71)
+-178 + j*(59)
+134 + j*(-88)
+243 + j*(-98)
+-51 + j*(11)
+244 + j*(45)
+-66 + j*(127)
+44 + j*(223)
+145 + j*(-98)
+-129 + j*(173)
+-226 + j*(330)
+264 + j*(168)
+-93 + j*(27)
+-146 + j*(-133)
+-203 + j*(-310)
+8 + j*(11)
+378 + j*(112)
+385 + j*(281)
+182 + j*(-64)
+35 + j*(158)
+-199 + j*(-1)
+-168 + j*(120)
+192 + j*(-133)
+-127 + j*(59)
+-130 + j*(-279)
+1 + j*(-224)
+-70 + j*(-42)
+61 + j*(80)
+-13 + j*(-11)
+-8 + j*(-95)
+132 + j*(-240)
+-215 + j*(-160)
+191 + j*(133)
+124 + j*(-373)
+-161 + j*(-139)
+110 + j*(-134)
+-245 + j*(1)
+-267 + j*(103)
+-13 + j*(-384)
+226 + j*(-58)
+21 + j*(121)
+-45 + j*(-400)
+120 + j*(76)
+69 + j*(35)
+-111 + j*(40)
+105 + j*(190)
+164 + j*(161)
+-268 + j*(-40)
+177 + j*(-25)
+-61 + j*(-80)
+185 + j*(310)
+-110 + j*(141)
+20 + j*(187)
+-299 + j*(-25)
+-24 + j*(326)
+-92 + j*(-335)
+52 + j*(-324)
+-342 + j*(-267)
+-91 + j*(-10)
+332 + j*(-119)
+18 + j*(-219)
+54 + j*(140)
+333 + j*(237)
+-201 + j*(207)
+-99 + j*(294)
+-49 + j*(-26)
+306 + j*(-37)
+-404 + j*(277)
+22 + j*(-156)
+348 + j*(-117)
+62 + j*(197)
+80 + j*(240)
+-317 + j*(402)
+226 + j*(-252)
+-26 + j*(-31)
+-107 + j*(65)
+-45 + j*(7)
+-237 + j*(-146)
+-102 + j*(-73)
+-199 + j*(63)
+-196 + j*(-39)
+68 + j*(50)
+111 + j*(-71)
+86 + j*(-13)
+-69 + j*(44)
+163 + j*(-116)
+181 + j*(-127)
+-115 + j*(527)
+112 + j*(16)
+-135 + j*(122)
+124 + j*(28)
+140 + j*(-145)
+-149 + j*(-218)
+51 + j*(-5)
+66 + j*(315)
+249 + j*(-198)
+54 + j*(60)
+283 + j*(227)
+272 + j*(237)
+228 + j*(53)
+296 + j*(212)
+-255 + j*(-52)
+252 + j*(93)
+49 + j*(-134)
+279 + j*(54)
+-21 + j*(-343)
+-116 + j*(206)
+-52 + j*(-47)
+69 + j*(187)
+21 + j*(93)
+-28 + j*(-166)
+-97 + j*(-161)
+367 + j*(-90)
+-39 + j*(53)
+400 + j*(92)
+381 + j*(-169)
+-303 + j*(219)
+2 + j*(58)
+21 + j*(248)
+-160 + j*(-125)
+379 + j*(-387)
+62 + j*(-31)
+-126 + j*(-76)
+-17 + j*(47)
+29 + j*(45)
+-286 + j*(-181)
+21 + j*(103)
+-117 + j*(29)
+86 + j*(386)
+-132 + j*(-129)
+83 + j*(178)
+243 + j*(-298)
+144 + j*(-295)
+111 + j*(-109)
+-201 + j*(168)
+55 + j*(-192)
+-13 + j*(41)
+-129 + j*(147)
+-8 + j*(-37)
+-39 + j*(32)
+28 + j*(90)
+323 + j*(-245)
+107 + j*(-77)
+-8 + j*(-421)
+187 + j*(-118)
+-54 + j*(-160)
+-91 + j*(54)
+215 + j*(267)
+239 + j*(-159)
+106 + j*(-174)
+-106 + j*(349)
+-153 + j*(33)
+45 + j*(98)
+-145 + j*(134)
+-101 + j*(-190)
+-331 + j*(40)
+-167 + j*(-255)
+129 + j*(-113)
+112 + j*(250)
+10 + j*(-317)
+125 + j*(-106)
+96 + j*(102)
+238 + j*(-6)
+-108 + j*(222)
+-82 + j*(122)
+-453 + j*(-377)
+-97 + j*(139)
+103 + j*(-56)
+-425 + j*(28)
+164 + j*(154)
+152 + j*(-62)
+74 + j*(320)
+85 + j*(-80)
+146 + j*(-23)
+-291 + j*(-153)
+-5 + j*(-3)
+-155 + j*(23)
+153 + j*(294)
+59 + j*(-132)
+5 + j*(153)
+59 + j*(-105)
+54 + j*(-325)
+177 + j*(170)
+-223 + j*(-124)
+183 + j*(-128)
+119 + j*(-180)
+332 + j*(71)
+-14 + j*(93)
+199 + j*(81)
+-101 + j*(-75)
+7 + j*(-35)
+-101 + j*(52)
+219 + j*(-284)
+-102 + j*(-143)
+16 + j*(-176)
+132 + j*(-16)
+76 + j*(-266)
+24 + j*(-6)
+-81 + j*(8)
+-240 + j*(362)
+-54 + j*(-95)
+490 + j*(-91)
+201 + j*(-194)
+-127 + j*(-102)
+48 + j*(4)
+250 + j*(-54)
+146 + j*(-409)
+260 + j*(-20)
+-40 + j*(50)
+-119 + j*(-64)
+319 + j*(-222)
+-88 + j*(-216)
+157 + j*(191)
+112 + j*(-34)
+-222 + j*(-145)
+-129 + j*(175)
+71 + j*(134)
+27 + j*(-133)
+-87 + j*(-340)
+-175 + j*(126)
+76 + j*(54)
+-261 + j*(172)
+64 + j*(-37)
+-10 + j*(-211)
+30 + j*(169)
+23 + j*(-247)
+-204 + j*(-54)
+67 + j*(63)
+191 + j*(-223)
+22 + j*(454)
+-156 + j*(91)
+-45 + j*(-122)
+-23 + j*(-189)
+-31 + j*(139)
+138 + j*(-201)
+-324 + j*(-299)
+-88 + j*(158)
+-8 + j*(-104)
+93 + j*(-129)
+112 + j*(-8)
+75 + j*(-82)
+279 + j*(182)
+118 + j*(-400)
+-162 + j*(89)
+-398 + j*(58)
+4 + j*(101)
+-133 + j*(-206)
+-42 + j*(-1)
+-276 + j*(322)
+-385 + j*(5)
+56 + j*(43)
+281 + j*(107)
+-91 + j*(70)
+31 + j*(33)
+57 + j*(4)
+71 + j*(-126)
+129 + j*(175)
+565 + j*(-270)
+-211 + j*(40)
+-54 + j*(216)
+57 + j*(-281)
+255 + j*(-197)
+-21 + j*(190)
+183 + j*(110)
+-123 + j*(46)
+111 + j*(45)
+-381 + j*(100)
+-296 + j*(153)
+-214 + j*(-46)
+-221 + j*(-68)
+348 + j*(231)
+247 + j*(24)
+-38 + j*(263)
+-146 + j*(-361)
+51 + j*(271)
+146 + j*(-119)
+-86 + j*(-81)
+-163 + j*(-21)
+92 + j*(70)
+159 + j*(139)
+-301 + j*(54)
+-13 + j*(-272)
+-105 + j*(25)
+-95 + j*(-56)
+222 + j*(54)
+250 + j*(-56)
+354 + j*(-152)
+139 + j*(59)
+-126 + j*(-175)
+332 + j*(-244)
+-88 + j*(-8)
+-214 + j*(-261)
+-282 + j*(-13)
+75 + j*(49)
+-180 + j*(-13)
+-69 + j*(66)
+-161 + j*(-1)
+51 + j*(-62)
+26 + j*(-37)
+-54 + j*(323)
+264 + j*(-8)
+-52 + j*(-44)
+86 + j*(341)
+-48 + j*(-54)
+-469 + j*(167)
+-436 + j*(-108)
+-132 + j*(-14)
+-134 + j*(74)
+364 + j*(258)
+22 + j*(156)
+-40 + j*(293)
+41 + j*(98)
+-83 + j*(-12)
+117 + j*(59)
+89 + j*(216)
+-9 + j*(146)
+40 + j*(-132)
+35 + j*(-151)
+-178 + j*(-33)
+-194 + j*(-57)
+-85 + j*(206)
+-134 + j*(256)
+110 + j*(214)
+204 + j*(-109)
+236 + j*(-13)
+113 + j*(-40)
+-409 + j*(52)
+-37 + j*(223)
+139 + j*(61)
+-145 + j*(212)
+-97 + j*(161)
+340 + j*(-211)
+-184 + j*(13)
+235 + j*(-4)
+-237 + j*(-257)
+81 + j*(49)
+196 + j*(79)
+84 + j*(131)
+6 + j*(-95)
+-291 + j*(426)
+221 + j*(89)
+-31 + j*(116)
+74 + j*(260)
+-156 + j*(47)
+-261 + j*(-265)
+-8 + j*(-291)
+23 + j*(129)
+89 + j*(87)
+71 + j*(-16)
+217 + j*(293)
+-402 + j*(-98)
+-1 + j*(4)
+84 + j*(-253)
+39 + j*(108)
+175 + j*(301)
+-257 + j*(81)
+-289 + j*(-86)
+-313 + j*(-76)
+39 + j*(-79)
+146 + j*(136)
+218 + j*(33)
+-217 + j*(31)
+-11 + j*(237)
+-117 + j*(56)
+130 + j*(100)
+178 + j*(416)
+99 + j*(84)
+165 + j*(-202)
+61 + j*(-320)
+-215 + j*(186)
+-78 + j*(220)
+-235 + j*(-151)
+-60 + j*(107)
+-40 + j*(45)
+-119 + j*(-298)
+250 + j*(-164)
+-129 + j*(-186)
+247 + j*(182)
+52 + j*(238)
+-23 + j*(165)
+122 + j*(78)
+161 + j*(-262)
+-313 + j*(44)
+1 + j*(-35)
+1 + j*(-36)
+13 + j*(-135)
+-223 + j*(-115)
+-320 + j*(303)
+-268 + j*(-66)
+-19 + j*(52)
+-12 + j*(-124)
+-28 + j*(42)
+219 + j*(-94)
+-272 + j*(-265)
+-114 + j*(-81)
+-107 + j*(28)
+-129 + j*(-131)
+-139 + j*(-63)
+55 + j*(-259)
+241 + j*(-81)
+-159 + j*(43)
+-125 + j*(221)
+119 + j*(-114)
+95 + j*(-36)
+-213 + j*(-377)
+109 + j*(-205)
+332 + j*(69)
+71 + j*(-182)
+-28 + j*(-100)
+95 + j*(-33)
+134 + j*(201)
+-81 + j*(245)
+-41 + j*(-175)
+-55 + j*(-212)
+235 + j*(-14)
+123 + j*(21)
+-86 + j*(207)
+-156 + j*(71)
+-115 + j*(363)
+339 + j*(-28)
+-325 + j*(262)
+188 + j*(-102)
+112 + j*(189)
+19 + j*(-39)
+35 + j*(-77)
+181 + j*(-13)
+-77 + j*(-12)
+202 + j*(66)
+-254 + j*(-63)
+150 + j*(131)
+-136 + j*(42)
+-238 + j*(-233)
+467 + j*(-366)
+-125 + j*(202)
+-333 + j*(52)
+-27 + j*(-125)
+-224 + j*(4)
+-52 + j*(246)
+362 + j*(-105)
+-151 + j*(-169)
+175 + j*(36)
+-5 + j*(-147)
+-59 + j*(23)
+222 + j*(86)
+-9 + j*(-178)
+95 + j*(-159)
+-40 + j*(-3)
+298 + j*(158)
+-94 + j*(354)
+48 + j*(33)
+-42 + j*(-237)
+120 + j*(115)
+-9 + j*(-30)
+172 + j*(42)
+158 + j*(153)
+-320 + j*(-88)
+22 + j*(-382)
+-199 + j*(-37)
+234 + j*(-310)
+-208 + j*(2)
+40 + j*(16)
+309 + j*(-85)
+123 + j*(-172)
+77 + j*(77)
+-30 + j*(135)
+-95 + j*(-40)
+72 + j*(-25)
+-43 + j*(37)
+237 + j*(-185)
+-68 + j*(-187)
+-298 + j*(55)
+105 + j*(-116)
+82 + j*(81)
+-107 + j*(-53)
+18 + j*(156)
+-170 + j*(257)
+-93 + j*(128)
+70 + j*(83)
+-8 + j*(-257)
+-46 + j*(-182)
+-496 + j*(-38)
+-16 + j*(-24)
+-5 + j*(-170)
+152 + j*(-168)
+-338 + j*(-136)
+-75 + j*(104)
+265 + j*(119)
+-146 + j*(231)
+-310 + j*(0)
+-7 + j*(-157)
+-48 + j*(-255)
+254 + j*(-21)
+134 + j*(-4)
+-101 + j*(146)
+-236 + j*(-372)
+-164 + j*(32)
+122 + j*(177)
+-180 + j*(108)
+57 + j*(-165)
+-6 + j*(255)
+-75 + j*(123)
+13 + j*(100)
+-170 + j*(-28)
+-135 + j*(173)
+83 + j*(151)
+-379 + j*(16)
+-8 + j*(44)
+-325 + j*(57)
+186 + j*(129)
+46 + j*(-37)
+-185 + j*(39)
+45 + j*(8)
+-170 + j*(156)
+95 + j*(231)
+180 + j*(-313)
+-371 + j*(-122)
+-106 + j*(112)
+23 + j*(303)
+-59 + j*(-170)
+45 + j*(84)
+62 + j*(169)
+-292 + j*(-88)
+60 + j*(-78)
+-204 + j*(-129)
+-61 + j*(18)
+-118 + j*(-74)
+-98 + j*(227)
+170 + j*(201)
+86 + j*(254)
+119 + j*(98)
+-173 + j*(129)
+-62 + j*(71)
+7 + j*(-236)
+216 + j*(161)
+-129 + j*(-50)
+-182 + j*(43)
+-54 + j*(-159)
+113 + j*(-342)
+107 + j*(-122)
+-175 + j*(-31)
+30 + j*(112)
+42 + j*(-136)
+123 + j*(-122)
+46 + j*(-36)
+22 + j*(-10)
+124 + j*(356)
+297 + j*(-171)
+-27 + j*(284)
+317 + j*(-117)
+-34 + j*(-349)
+177 + j*(16)
+-259 + j*(112)
+-161 + j*(-250)
+-232 + j*(43)
+-240 + j*(-83)
+-162 + j*(370)
+-13 + j*(253)
+-77 + j*(-49)
+-6 + j*(-209)
+-88 + j*(219)
+-211 + j*(107)
+147 + j*(25)
+-273 + j*(36)
+-139 + j*(-117)
+-177 + j*(52)
+223 + j*(170)
+139 + j*(-26)
+168 + j*(-164)
+124 + j*(143)
+23 + j*(-224)
+-54 + j*(-113)
+243 + j*(-158)
+-97 + j*(42)
+-169 + j*(-34)
+-30 + j*(110)
+317 + j*(6)
+173 + j*(317)
+-210 + j*(-268)
+-126 + j*(11)
+56 + j*(-126)
+78 + j*(-158)
+-82 + j*(133)
+-133 + j*(-240)
+-180 + j*(-79)
+-80 + j*(115)
+-25 + j*(-201)
+371 + j*(11)
+-68 + j*(202)
+-231 + j*(-102)
+-69 + j*(-87)
+-294 + j*(327)
+-95 + j*(-16)
+-231 + j*(-69)
+53 + j*(240)
+-58 + j*(84)
+-94 + j*(90)
+141 + j*(176)
+-90 + j*(-110)
+-153 + j*(-4)
+-58 + j*(126)
+-67 + j*(13)
+92 + j*(-43)
+-13 + j*(-36)
+-139 + j*(-202)
+-228 + j*(-331)
+180 + j*(34)
+-257 + j*(458)
+-211 + j*(111)
+-337 + j*(83)
+40 + j*(-76)
+40 + j*(-325)
+-4 + j*(-22)
+-124 + j*(2)
+112 + j*(-317)
+204 + j*(82)
+-4 + j*(-29)
+112 + j*(-193)
+-70 + j*(-98)
+-99 + j*(144)
+241 + j*(3)
+-74 + j*(-40)
+224 + j*(148)
+216 + j*(69)
+36 + j*(-23)
+-28 + j*(-166)
+40 + j*(157)
+198 + j*(52)
+-225 + j*(69)
+77 + j*(-260)
+-32 + j*(-78)
+-313 + j*(-35)
+138 + j*(28)
+-10 + j*(102)
+92 + j*(-91)
+267 + j*(-384)
+148 + j*(211)
+-44 + j*(170)
+-30 + j*(207)
+125 + j*(51)
+175 + j*(-47)
+-23 + j*(-171)
+-165 + j*(-109)
+176 + j*(83)
+-62 + j*(148)
+124 + j*(-119)
+-121 + j*(-276)
+54 + j*(-243)
+-163 + j*(-109)
+1 + j*(-34)
+-83 + j*(182)
+35 + j*(146)
+322 + j*(53)
+-175 + j*(34)
+-156 + j*(-173)
+83 + j*(428)
+195 + j*(-110)
+70 + j*(-187)
+259 + j*(107)
+99 + j*(233)
+-73 + j*(-90)
+-73 + j*(52)
+48 + j*(327)
+108 + j*(-49)
+218 + j*(-158)
+-22 + j*(-165)
+296 + j*(-61)
+-22 + j*(91)
+-109 + j*(92)
+26 + j*(-6)
+-75 + j*(41)
+52 + j*(187)
+82 + j*(184)
+42 + j*(116)
+-71 + j*(228)
+-72 + j*(190)
+-218 + j*(-179)
+156 + j*(284)
+-151 + j*(0)
+191 + j*(-107)
+-35 + j*(-240)
+245 + j*(-145)
+-96 + j*(-74)
+146 + j*(168)
+-59 + j*(-107)
+-114 + j*(115)
+60 + j*(-71)
+93 + j*(5)
+46 + j*(142)
+-16 + j*(63)
+-232 + j*(151)
+-312 + j*(-18)
+182 + j*(-24)
+227 + j*(221)
+-200 + j*(-145)
+251 + j*(254)
+25 + j*(-163)
+-110 + j*(-184)
+-256 + j*(173)
+-83 + j*(56)
+184 + j*(-23)
+-12 + j*(-21)
+-228 + j*(15)
+35 + j*(-117)
+-6 + j*(25)
+77 + j*(-12)
+-243 + j*(-4)
+29 + j*(-12)
+-221 + j*(71)
+-30 + j*(40)
+100 + j*(-631)
+-146 + j*(-156)
+310 + j*(94)
+33 + j*(76)
+-184 + j*(168)
+-2 + j*(56)
+-76 + j*(57)
+-37 + j*(93)
+266 + j*(3)
+127 + j*(-191)
+284 + j*(-4)
+63 + j*(248)
+327 + j*(-94)
+-276 + j*(119)
+-351 + j*(2)
+379 + j*(6)
+-80 + j*(163)
+135 + j*(59)
+-156 + j*(0)
+228 + j*(-18)
+566 + j*(-95)
+375 + j*(-13)
+-68 + j*(-289)
+-250 + j*(-154)
+98 + j*(79)
+-4 + j*(0)
+-165 + j*(153)
+-36 + j*(285)
+70 + j*(-14)
+-155 + j*(74)
+45 + j*(8)
+123 + j*(14)
+-197 + j*(232)
+-250 + j*(58)
+-124 + j*(319)
+125 + j*(0)
+10 + j*(-142)
+137 + j*(-70)
+-180 + j*(146)
+280 + j*(77)
+-252 + j*(-92)
+35 + j*(13)
+-135 + j*(366)
+104 + j*(37)
+-84 + j*(-117)
+11 + j*(-238)
+74 + j*(-181)
+134 + j*(21)
+-64 + j*(-122)
+-344 + j*(-146)
+194 + j*(-158)
+-59 + j*(-111)
+-286 + j*(-121)
+-225 + j*(71)
+-93 + j*(-153)
+94 + j*(21)
+1 + j*(323)
+1 + j*(138)
+-59 + j*(-13)
+5 + j*(-44)
+-55 + j*(47)
+-45 + j*(126)
+-136 + j*(105)
+-420 + j*(-415)
+-1 + j*(-133)
+-259 + j*(-263)
+-106 + j*(-181)
+-112 + j*(-18)
+18 + j*(318)
+-173 + j*(162)
+-166 + j*(7)
+11 + j*(-161)
+326 + j*(3)
+90 + j*(301)
+-198 + j*(-94)
+151 + j*(-48)
+-272 + j*(103)
+97 + j*(15)
+-125 + j*(52)
+378 + j*(-346)
+40 + j*(-30)
+-98 + j*(-186)
+207 + j*(339)
+42 + j*(-130)
+-16 + j*(13)
+-33 + j*(49)
+140 + j*(193)
+-49 + j*(233)
+-106 + j*(-242)
+-207 + j*(-18)
+177 + j*(-38)
+-520 + j*(-117)
+60 + j*(40)
+-327 + j*(279)
+342 + j*(-58)
+-39 + j*(-69)
+-127 + j*(-42)
+235 + j*(-59)
+-267 + j*(46)
+71 + j*(130)
+-88 + j*(45)
+282 + j*(-4)
+219 + j*(-82)
+-122 + j*(-25)
+-76 + j*(169)
+284 + j*(124)
+4 + j*(-43)
+83 + j*(-349)
+43 + j*(342)
+31 + j*(-173)
+345 + j*(250)
+-18 + j*(177)
+-81 + j*(155)
+355 + j*(156)
+-93 + j*(-11)
+141 + j*(3)
+-83 + j*(77)
+340 + j*(-164)
+-117 + j*(59)
+94 + j*(189)
+127 + j*(-243)
+-284 + j*(-161)
+-19 + j*(-133)
+182 + j*(86)
+-153 + j*(97)
+-16 + j*(-69)
+197 + j*(-16)
+-18 + j*(29)
+8 + j*(-72)
+-95 + j*(312)
+-76 + j*(-127)
+93 + j*(-103)
+-127 + j*(16)
+78 + j*(329)
+-69 + j*(111)
+182 + j*(192)
+43 + j*(-180)
+-77 + j*(81)
+-91 + j*(-274)
+-136 + j*(57)
+29 + j*(-122)
+291 + j*(-81)
+-227 + j*(127)
+-165 + j*(227)
+61 + j*(-100)
+-80 + j*(-31)
+-211 + j*(-145)
+-168 + j*(-113)
+-40 + j*(68)
+259 + j*(121)
+111 + j*(-69)
+245 + j*(47)
+11 + j*(-61)
+-136 + j*(104)
+3 + j*(-161)
+-105 + j*(-15)
+122 + j*(-453)
+-36 + j*(-18)
+-148 + j*(243)
+78 + j*(-107)
+181 + j*(276)
+276 + j*(-42)
+179 + j*(-117)
+-103 + j*(397)
+250 + j*(-53)
+-25 + j*(184)
+108 + j*(-56)
+171 + j*(-1)
+217 + j*(178)
+-149 + j*(-189)
+-134 + j*(-218)
+76 + j*(402)
+-10 + j*(139)
+100 + j*(236)
+61 + j*(-177)
+27 + j*(9)
+151 + j*(38)
+-110 + j*(-92)
+222 + j*(-115)
+118 + j*(-158)
+94 + j*(118)
+494 + j*(197)
+-16 + j*(-27)
+-307 + j*(-13)
+-81 + j*(262)
+231 + j*(192)
+278 + j*(21)
+56 + j*(-35)
+-328 + j*(316)
+130 + j*(32)
+-37 + j*(209)
+306 + j*(51)
+113 + j*(114)
+-228 + j*(-101)
+-45 + j*(22)
+-106 + j*(-86)
+-188 + j*(-74)
+124 + j*(57)
+-70 + j*(-83)
+-216 + j*(-23)
+-87 + j*(-109)
+97 + j*(-263)
+78 + j*(90)
+-15 + j*(256)
+-103 + j*(350)
+21 + j*(-25)
+32 + j*(115)
+76 + j*(-270)
+190 + j*(-41)
+8 + j*(195)
+127 + j*(-100)
+-8 + j*(-132)
+253 + j*(-117)
+-100 + j*(5)
+-57 + j*(-319)
+-18 + j*(82)
+163 + j*(231)
+-127 + j*(-271)
+-74 + j*(-243)
+39 + j*(-278)
+-88 + j*(179)
+-100 + j*(-33)
+-373 + j*(-333)
+-182 + j*(-299)
+-117 + j*(-78)
+34 + j*(-185)
+-117 + j*(155)
+-28 + j*(56)
+-161 + j*(-70)
+-97 + j*(-310)
+-30 + j*(13)
+-254 + j*(33)
+119 + j*(8)
+333 + j*(46)
+-383 + j*(27)
+83 + j*(188)
+73 + j*(-217)
+59 + j*(60)
+-166 + j*(266)
+-177 + j*(123)
+-356 + j*(-55)
+-339 + j*(-30)
+-143 + j*(49)
+105 + j*(-224)
+-173 + j*(305)
+-35 + j*(202)
+-185 + j*(-152)
+-221 + j*(132)
+-244 + j*(-58)
+104 + j*(276)
+-182 + j*(21)
+117 + j*(-134)
+285 + j*(-66)
+33 + j*(-86)
+91 + j*(-28)
+6 + j*(50)
+83 + j*(-8)
+-185 + j*(60)
+-32 + j*(-94)
+-179 + j*(9)
+-323 + j*(136)
+15 + j*(-417)
+197 + j*(-105)
+-71 + j*(74)
+6 + j*(-117)
+184 + j*(407)
+123 + j*(-37)
+57 + j*(12)
+-52 + j*(168)
+-188 + j*(-119)
+28 + j*(-129)
+-78 + j*(-1)
+-104 + j*(-83)
+1 + j*(-223)
+-468 + j*(42)
+157 + j*(52)
+-144 + j*(-72)
+75 + j*(296)
+45 + j*(-285)
+-221 + j*(301)
+-103 + j*(163)
+-341 + j*(-457)
+105 + j*(23)
+-23 + j*(-88)
+-264 + j*(-552)
+81 + j*(4)
+-274 + j*(-131)
+214 + j*(-18)
+151 + j*(-214)
+-1 + j*(-205)
+103 + j*(-49)
+81 + j*(-8)
+-80 + j*(16)
+246 + j*(-183)
+136 + j*(-100)
+35 + j*(-69)
+-217 + j*(254)
+252 + j*(-156)
+-47 + j*(-160)
+-162 + j*(167)
+-148 + j*(-201)
+265 + j*(-240)
+-141 + j*(-8)
+35 + j*(33)
+-99 + j*(-95)
+-4 + j*(124)
+65 + j*(-206)
+-175 + j*(279)
+-1 + j*(114)
+-52 + j*(71)
+-103 + j*(47)
+-164 + j*(-41)
+206 + j*(216)
+-148 + j*(19)
+-161 + j*(-187)
+-200 + j*(223)
+131 + j*(238)
+18 + j*(101)
+229 + j*(22)
+71 + j*(53)
+509 + j*(-293)
+139 + j*(161)
+-322 + j*(180)
+119 + j*(196)
+12 + j*(103)
+10 + j*(-187)
+104 + j*(-28)
+82 + j*(50)
+86 + j*(125)
+117 + j*(59)
+-225 + j*(129)
+167 + j*(-177)
+-125 + j*(-100)
+-178 + j*(-124)
+-144 + j*(-262)
+457 + j*(-237)
+-267 + j*(22)
+240 + j*(22)
+155 + j*(89)
+-6 + j*(-361)
+266 + j*(-358)
+-180 + j*(110)
+-73 + j*(69)
+-42 + j*(93)
+-257 + j*(-151)
+3 + j*(141)
+192 + j*(356)
+26 + j*(-76)
+103 + j*(340)
+83 + j*(70)
+75 + j*(-245)
+206 + j*(340)
+-144 + j*(360)
+344 + j*(76)
+-74 + j*(325)
+-7 + j*(208)
+-238 + j*(-206)
+25 + j*(83)
+57 + j*(-286)
+-82 + j*(232)
+251 + j*(-76)
+-218 + j*(-234)
+-170 + j*(-219)
+-75 + j*(-252)
+-112 + j*(259)
+24 + j*(31)
+-226 + j*(59)
+-67 + j*(-4)
+-344 + j*(-240)
+-86 + j*(143)
+37 + j*(-59)
+54 + j*(-173)
+-264 + j*(-52)
+78 + j*(104)
+-337 + j*(-103)
+115 + j*(-144)
+228 + j*(4)
+93 + j*(-54)
+15 + j*(-245)
+118 + j*(-70)
+-8 + j*(-69)
+195 + j*(-202)
+110 + j*(172)
+-214 + j*(-326)
+-74 + j*(199)
+81 + j*(124)
+59 + j*(141)
+88 + j*(-178)
+-28 + j*(22)
+132 + j*(144)
+71 + j*(-90)
+101 + j*(-243)
+-191 + j*(32)
+-12 + j*(-52)
+134 + j*(18)
+-416 + j*(338)
+98 + j*(-92)
+-122 + j*(-18)
+-123 + j*(-100)
+-405 + j*(86)
+59 + j*(260)
+-272 + j*(201)
+-129 + j*(320)
+-214 + j*(35)
+-24 + j*(9)
+-137 + j*(88)
+-46 + j*(-113)
+-99 + j*(105)
+-4 + j*(51)
+-59 + j*(-19)
+267 + j*(56)
+77 + j*(-30)
+66 + j*(61)
+6 + j*(-23)
+0 + j*(198)
+-4 + j*(-117)
+-58 + j*(5)
+-141 + j*(143)
+-4 + j*(100)
+-150 + j*(-117)
+88 + j*(-301)
+-90 + j*(-31)
+247 + j*(58)
+-84 + j*(-112)
+387 + j*(-145)
+-50 + j*(-57)
+-117 + j*(-25)
+-103 + j*(102)
+113 + j*(294)
+248 + j*(142)
+-61 + j*(-134)
+-152 + j*(129)
+106 + j*(-170)
+-332 + j*(-23)
+-168 + j*(206)
+240 + j*(36)
+-196 + j*(-146)
+-400 + j*(67)
+40 + j*(-26)
+110 + j*(213)
+-288 + j*(252)
+53 + j*(206)
+253 + j*(-489)
+-428 + j*(390)
+-426 + j*(339)
+162 + j*(-463)
+278 + j*(159)
+-35 + j*(426)
+-375 + j*(323)
+-243 + j*(186)
+230 + j*(325)
+-340 + j*(-334)
+-193 + j*(148)
+-640 + j*(75)
+-14 + j*(106)
+-49 + j*(233)
+93 + j*(225)
+-23 + j*(-235)
+-560 + j*(-476)
+-494 + j*(412)
+302 + j*(424)
+122 + j*(255)
+-317 + j*(320)
+-47 + j*(-134)
+-411 + j*(412)
+-241 + j*(107)
+-639 + j*(-566)
+427 + j*(-136)
+-165 + j*(-217)
+515 + j*(471)
+-91 + j*(-151)
+405 + j*(221)
+139 + j*(-260)
+-82 + j*(151)
+228 + j*(514)
+-165 + j*(231)
+425 + j*(-11)
+-210 + j*(117)
+-475 + j*(247)
+-291 + j*(500)
+18 + j*(-106)
+443 + j*(57)
+-283 + j*(348)
+226 + j*(-305)
+-211 + j*(-33)
+412 + j*(-233)
+-272 + j*(237)
+-378 + j*(8)
+299 + j*(-136)
+182 + j*(-98)
+-489 + j*(183)
+41 + j*(286)
+-64 + j*(226)
+102 + j*(351)
+375 + j*(471)
+-121 + j*(252)
+310 + j*(-366)
+194 + j*(-442)
+67 + j*(-332)
+190 + j*(-188)
+467 + j*(-81)
+-313 + j*(-344)
+-49 + j*(-161)
+-589 + j*(85)
+-91 + j*(187)
+127 + j*(11)
+-212 + j*(551)
+350 + j*(7)
+170 + j*(327)
+-387 + j*(-363)
+-190 + j*(-612)
+207 + j*(319)
+-121 + j*(315)
+-401 + j*(161)
+-432 + j*(209)
+-467 + j*(-334)
+276 + j*(90)
+185 + j*(-222)
+-506 + j*(490)
+-455 + j*(-293)
+-49 + j*(-448)
+224 + j*(293)
+427 + j*(-559)
+-267 + j*(-164)
+-23 + j*(-156)
+-324 + j*(-267)
+-215 + j*(-33)
+98 + j*(-173)
+-209 + j*(-255)
+-197 + j*(431)
+238 + j*(367)
+47 + j*(-198)
+-308 + j*(-1)
+-173 + j*(119)
+-134 + j*(-357)
+-186 + j*(71)
+198 + j*(-59)
+66 + j*(298)
+-412 + j*(45)
+416 + j*(426)
+127 + j*(231)
+285 + j*(-231)
+81 + j*(-380)
+228 + j*(52)
+-291 + j*(436)
+-28 + j*(91)
+331 + j*(-356)
+-12 + j*(800)
+-144 + j*(303)
+-334 + j*(206)
+316 + j*(250)
+272 + j*(-503)
+-192 + j*(-511)
+298 + j*(-80)
+23 + j*(-566)
+480 + j*(-347)
+222 + j*(-330)
+148 + j*(256)
+505 + j*(-419)
+270 + j*(-203)
+409 + j*(-450)
+-115 + j*(325)
+-101 + j*(-471)
+-74 + j*(23)
+-163 + j*(-351)
+-3 + j*(354)
+8 + j*(-183)
+-196 + j*(132)
+329 + j*(-443)
+342 + j*(334)
+-338 + j*(-366)
+-143 + j*(-636)
+464 + j*(-245)
+-168 + j*(204)
+216 + j*(252)
+252 + j*(-243)
+-81 + j*(342)
+-196 + j*(233)
+277 + j*(-301)
+367 + j*(-276)
+59 + j*(58)
+163 + j*(398)
+-68 + j*(144)
+47 + j*(335)
+504 + j*(-647)
+-169 + j*(-404)
+343 + j*(-343)
+-452 + j*(90)
+-189 + j*(175)
+-70 + j*(322)
+354 + j*(-152)
+422 + j*(262)
+-247 + j*(-209)
+569 + j*(157)
+75 + j*(-52)
+-169 + j*(-175)
+-334 + j*(16)
+177 + j*(605)
+434 + j*(-502)
+-339 + j*(37)
+57 + j*(-246)
+437 + j*(249)
+-235 + j*(-141)
+-247 + j*(-356)
+-54 + j*(-366)
+-305 + j*(-142)
+-237 + j*(164)
+8 + j*(-373)
+204 + j*(107)
+-617 + j*(136)
+429 + j*(-337)
+-337 + j*(-326)
+506 + j*(477)
+161 + j*(-22)
+149 + j*(231)
+202 + j*(-274)
+-176 + j*(-391)
+-252 + j*(-400)
+-28 + j*(167)
+256 + j*(-452)
+419 + j*(188)
+-142 + j*(-805)
+417 + j*(-392)
+10 + j*(197)
+-335 + j*(105)
+-114 + j*(149)
+-170 + j*(265)
+-387 + j*(-233)
+-444 + j*(-151)
+119 + j*(451)
+270 + j*(422)
+591 + j*(-421)
+-250 + j*(-196)
+62 + j*(-338)
+266 + j*(28)
+-476 + j*(69)
+71 + j*(-97)
+-52 + j*(-268)
+-136 + j*(-214)
+223 + j*(633)
+-518 + j*(220)
+595 + j*(184)
+160 + j*(124)
+-304 + j*(-202)
+246 + j*(187)
+64 + j*(300)
+368 + j*(108)
+255 + j*(-130)
+-220 + j*(-389)
+-424 + j*(41)
+508 + j*(16)
+-334 + j*(-446)
+-89 + j*(81)
+-685 + j*(169)
+273 + j*(-25)
+110 + j*(374)
+355 + j*(250)
+-29 + j*(-200)
+-298 + j*(-629)
+-508 + j*(144)
+319 + j*(-343)
+103 + j*(-57)
+-59 + j*(373)
+282 + j*(-14)
+-102 + j*(350)
+147 + j*(14)
+-185 + j*(35)
+-260 + j*(220)
+-337 + j*(-359)
+357 + j*(182)
+192 + j*(-279)
+-293 + j*(-5)
+257 + j*(217)
+247 + j*(-105)
+-5 + j*(-358)
+252 + j*(-95)
+69 + j*(-534)
+-95 + j*(-283)
+147 + j*(-37)
+170 + j*(409)
+394 + j*(452)
+-110 + j*(-421)
+-257 + j*(190)
+-450 + j*(-209)
+77 + j*(-546)
+161 + j*(16)
+337 + j*(-32)
+543 + j*(145)
+-306 + j*(-438)
+-64 + j*(159)
+-234 + j*(-197)
+-445 + j*(-51)
+-208 + j*(-62)
+-275 + j*(228)
+-445 + j*(-221)
+524 + j*(-37)
+204 + j*(516)
+246 + j*(-404)
+624 + j*(-243)
+-118 + j*(264)
+61 + j*(194)
+-132 + j*(-127)
+220 + j*(298)
+-222 + j*(-282)
+167 + j*(-286)
+330 + j*(466)
+501 + j*(0)
+620 + j*(414)
+134 + j*(-269)
+-212 + j*(193)
+373 + j*(-335)
+-107 + j*(40)
+342 + j*(-279)
+-286 + j*(138)
+190 + j*(238)
+-321 + j*(-240)
+-409 + j*(-247)
+371 + j*(505)
+247 + j*(272)
+-223 + j*(-23)
+111 + j*(349)
+-177 + j*(306)
+466 + j*(92)
+-267 + j*(322)
+301 + j*(231)
+460 + j*(-168)
+-155 + j*(-254)
+-320 + j*(-181)
+50 + j*(-330)
+283 + j*(-357)
+163 + j*(-354)
+67 + j*(379)
+-105 + j*(-199)
+245 + j*(-296)
+387 + j*(371)
+56 + j*(57)
+453 + j*(279)
+-324 + j*(33)
+-327 + j*(-474)
+-238 + j*(308)
+-28 + j*(-187)
+-252 + j*(-229)
+165 + j*(194)
+509 + j*(434)
+-337 + j*(518)
+3 + j*(-243)
+275 + j*(378)
+237 + j*(-86)
+245 + j*(192)
+225 + j*(-257)
+-325 + j*(-468)
+-482 + j*(291)
+-266 + j*(63)
+-496 + j*(315)
+408 + j*(-185)
+-536 + j*(102)
+-320 + j*(-224)
+-404 + j*(16)
+302 + j*(246)
+-263 + j*(19)
+308 + j*(-209)
+8 + j*(363)
+-605 + j*(-448)
+266 + j*(347)
+602 + j*(-82)
+-276 + j*(-238)
+296 + j*(111)
+293 + j*(-229)
+-233 + j*(-84)
+186 + j*(-148)
+193 + j*(365)
+99 + j*(-303)
+117 + j*(454)
+-98 + j*(288)
+-508 + j*(-424)
+-370 + j*(650)
+324 + j*(375)
+415 + j*(-221)
+-211 + j*(40)
+258 + j*(-7)
+-519 + j*(-225)
+-303 + j*(112)
+247 + j*(-286)
+303 + j*(-456)
+179 + j*(244)
+29 + j*(-155)
+321 + j*(458)
+144 + j*(226)
+-195 + j*(-434)
+-52 + j*(-276)
+-339 + j*(203)
+-531 + j*(35)
+-82 + j*(57)
+-717 + j*(-362)
+-407 + j*(227)
+257 + j*(343)
+140 + j*(-224)
+403 + j*(195)
+-177 + j*(469)
+158 + j*(-312)
+15 + j*(-269)
+-363 + j*(262)
+-36 + j*(-339)
+342 + j*(-153)
+-56 + j*(696)
+298 + j*(197)
+-93 + j*(134)
+-14 + j*(501)
+511 + j*(228)
+-98 + j*(269)
+235 + j*(417)
+274 + j*(-367)
+-327 + j*(228)
+-27 + j*(148)
+404 + j*(-207)
+411 + j*(332)
+449 + j*(276)
+716 + j*(725)
+42 + j*(429)
+-163 + j*(527)
+156 + j*(274)
+-593 + j*(-375)
+496 + j*(419)
+277 + j*(-330)
+513 + j*(-36)
+175 + j*(-386)
+134 + j*(-376)
+-95 + j*(-299)
+-179 + j*(57)
+465 + j*(416)
+342 + j*(317)
+158 + j*(47)
+-141 + j*(248)
+-173 + j*(206)
+-394 + j*(119)
+392 + j*(136)
+-315 + j*(195)
+335 + j*(450)
+176 + j*(8)
+613 + j*(-317)
+150 + j*(-186)
+-403 + j*(-643)
+133 + j*(-279)
+41 + j*(-164)
+276 + j*(-46)
+298 + j*(396)
+-260 + j*(-488)
+-390 + j*(114)
+32 + j*(375)
+-470 + j*(216)
+585 + j*(298)
+-443 + j*(-373)
+251 + j*(306)
+-372 + j*(318)
+-371 + j*(408)
+-92 + j*(-80)
+-286 + j*(14)
+-351 + j*(59)
+-21 + j*(366)
+-197 + j*(-182)
+-267 + j*(-47)
+177 + j*(-265)
+-443 + j*(-212)
+470 + j*(0)
+90 + j*(315)
+-68 + j*(-222)
+-506 + j*(-289)
+-236 + j*(-293)
+131 + j*(-98)
+-257 + j*(174)
+-37 + j*(-494)
+-486 + j*(35)
+195 + j*(-247)
+325 + j*(-836)
+-73 + j*(-497)
+-91 + j*(531)
+642 + j*(-362)
+344 + j*(124)
+-120 + j*(-199)
+-50 + j*(-488)
+1 + j*(-345)
+285 + j*(103)
+206 + j*(452)
+176 + j*(433)
+-323 + j*(427)
+-442 + j*(340)
+-362 + j*(-361)
+417 + j*(-184)
+-148 + j*(251)
+-289 + j*(-111)
+-426 + j*(-202)
+-597 + j*(-365)
+409 + j*(199)
+227 + j*(339)
+-284 + j*(-69)
+282 + j*(-156)
+40 + j*(473)
+-271 + j*(-76)
+-228 + j*(-424)
+-44 + j*(-64)
+28 + j*(371)
+494 + j*(-400)
+-192 + j*(368)
+199 + j*(211)
+-148 + j*(-41)
+77 + j*(-412)
+13 + j*(139)
+350 + j*(-71)
+40 + j*(117)
+-59 + j*(320)
+240 + j*(-369)
+193 + j*(180)
+25 + j*(-484)
+416 + j*(-252)
+323 + j*(-39)
+201 + j*(-394)
+-221 + j*(351)
+375 + j*(-190)
+249 + j*(562)
+197 + j*(-238)
+235 + j*(336)
+296 + j*(-149)
+-493 + j*(-477)
+310 + j*(-543)
+495 + j*(38)
+-320 + j*(308)
+-496 + j*(130)
+-392 + j*(-78)
+-478 + j*(103)
+-346 + j*(-525)
+-134 + j*(-368)
+-247 + j*(-150)
+-472 + j*(-18)
+-354 + j*(40)
+349 + j*(131)
+-284 + j*(312)
+308 + j*(189)
+67 + j*(-427)
+-1 + j*(-159)
+362 + j*(-454)
+219 + j*(262)
+-53 + j*(-28)
+-501 + j*(-225)
+-359 + j*(547)
+369 + j*(315)
+-344 + j*(-361)
+-492 + j*(403)
+500 + j*(-291)
+260 + j*(191)
+194 + j*(-170)
+324 + j*(280)
+595 + j*(120)
+185 + j*(123)
+222 + j*(670)
+-309 + j*(219)
+-237 + j*(-138)
+338 + j*(-388)
+-223 + j*(100)
+-140 + j*(-430)
+685 + j*(115)
+339 + j*(-9)
+-100 + j*(-745)
+-561 + j*(-101)
+360 + j*(446)
+191 + j*(-467)
+-243 + j*(-378)
+-107 + j*(-345)
+21 + j*(620)
+-223 + j*(-322)
+409 + j*(-306)
+-23 + j*(499)
+-259 + j*(-576)
+493 + j*(658)
+180 + j*(118)
+-378 + j*(198)
+378 + j*(-53)
+-554 + j*(-61)
+-305 + j*(305)
+95 + j*(415)
+455 + j*(-305)
+-275 + j*(-77)
+390 + j*(-62)
+-15 + j*(151)
+-238 + j*(191)
+-94 + j*(390)
+369 + j*(262)
+441 + j*(67)
+439 + j*(-121)
+315 + j*(66)
+282 + j*(216)
+-193 + j*(-280)
+-194 + j*(625)
+-240 + j*(231)
+-228 + j*(68)
+245 + j*(144)
+-467 + j*(64)
+23 + j*(523)
+46 + j*(-216)
+-248 + j*(390)
+98 + j*(462)
+-378 + j*(329)
+410 + j*(211)
+-81 + j*(277)
+293 + j*(-16)
+204 + j*(-506)
+-78 + j*(151)
+-88 + j*(455)
+242 + j*(-62)
+-426 + j*(-105)
+-320 + j*(221)
+84 + j*(-386)
+398 + j*(565)
+50 + j*(248)
+-254 + j*(-37)
+-179 + j*(479)
+-59 + j*(30)
+-225 + j*(253)
+630 + j*(-185)
+-76 + j*(-363)
+136 + j*(-498)
+289 + j*(-79)
+315 + j*(-177)
+367 + j*(60)
+-131 + j*(-190)
+-482 + j*(-127)
+-68 + j*(220)
+204 + j*(16)
+-175 + j*(45)
+421 + j*(180)
+231 + j*(-324)
+93 + j*(334)
+-344 + j*(-599)
+-257 + j*(-276)
+-134 + j*(-98)
+384 + j*(-203)
+290 + j*(-177)
+-82 + j*(-226)
+-367 + j*(-1)
+154 + j*(-307)
+-155 + j*(576)
+216 + j*(279)
+229 + j*(196)
+35 + j*(138)
+-52 + j*(-210)
+24 + j*(231)
+153 + j*(-117)
+-125 + j*(-174)
+23 + j*(-64)
+-96 + j*(-199)
+-167 + j*(16)
+158 + j*(93)
+-180 + j*(-331)
+-42 + j*(-5)
+6 + j*(521)
+-161 + j*(197)
+-6 + j*(-6)
+268 + j*(107)
+-275 + j*(156)
+245 + j*(-13)
+-52 + j*(-217)
+-221 + j*(355)
+84 + j*(-42)
+31 + j*(-204)
+-117 + j*(523)
+211 + j*(268)
+-86 + j*(104)
+-181 + j*(-62)
+-45 + j*(-198)
+141 + j*(82)
+-373 + j*(122)
+-151 + j*(5)
+-33 + j*(-191)
+69 + j*(21)
+-124 + j*(30)
+-153 + j*(-206)
+-49 + j*(-235)
+-246 + j*(-214)
+-224 + j*(-144)
+-77 + j*(-115)
+-242 + j*(-233)
+56 + j*(127)
+-137 + j*(-156)
+-108 + j*(-163)
+-60 + j*(-140)
+-91 + j*(73)
+-85 + j*(-101)
+-141 + j*(30)
+-144 + j*(34)
+82 + j*(-5)
+52 + j*(187)
+-285 + j*(-59)
+62 + j*(271)
+-29 + j*(-113)
+-1 + j*(225)
+101 + j*(-23)
+-143 + j*(196)
+-168 + j*(158)
+-211 + j*(-158)
+71 + j*(-28)
+-115 + j*(-99)
+-49 + j*(-183)
+-58 + j*(8)
+-187 + j*(303)
+-6 + j*(-127)
+188 + j*(-136)
+-66 + j*(-156)
+134 + j*(-123)
+-78 + j*(41)
+-134 + j*(-218)
+-33 + j*(194)
+-33 + j*(-91)
+15 + j*(326)
+187 + j*(336)
+9 + j*(21)
+143 + j*(-202)
+64 + j*(388)
+-179 + j*(-59)
+149 + j*(-228)
+62 + j*(255)
+-161 + j*(-35)
+-98 + j*(-286)
+-282 + j*(243)
+-2 + j*(112)
+-168 + j*(-325)
+-197 + j*(180)
+182 + j*(-438)
+-193 + j*(-105)
+103 + j*(-26)
+168 + j*(135)
+-91 + j*(266)
+-94 + j*(-79)
+165 + j*(228)
+215 + j*(-136)
+-76 + j*(-318)
+-177 + j*(-263)
+-272 + j*(156)
+337 + j*(-240)
+310 + j*(95)
+116 + j*(-1)
+243 + j*(-195)
+223 + j*(-48)
+-231 + j*(-1)
+16 + j*(21)
+-153 + j*(66)
+16 + j*(176)
+-52 + j*(136)
+144 + j*(-22)
+89 + j*(-197)
+161 + j*(252)
+-122 + j*(-67)
+-258 + j*(127)
+-168 + j*(-146)
+-155 + j*(-39)
+101 + j*(303)
+60 + j*(-25)
+-305 + j*(67)
+-253 + j*(-231)
+91 + j*(-173)
+71 + j*(81)
+23 + j*(186)
+-260 + j*(208)
+-2 + j*(149)
+-95 + j*(-175)
+21 + j*(204)
+402 + j*(-2)
+-8 + j*(-16)
+-175 + j*(150)
+45 + j*(-235)
+200 + j*(260)
+-375 + j*(-325)
+179 + j*(166)
+152 + j*(246)
+6 + j*(80)
+212 + j*(-17)
+-207 + j*(125)
+-6 + j*(12)
+119 + j*(61)
+-115 + j*(320)
+35 + j*(342)
+-184 + j*(-132)
+62 + j*(-43)
+-151 + j*(125)
+117 + j*(-96)
+2 + j*(59)
+-90 + j*(-66)
+-18 + j*(239)
+-175 + j*(-296)
+112 + j*(-147)
+68 + j*(92)
+61 + j*(-134)
+8 + j*(-170)
+59 + j*(225)
+150 + j*(135)
+-108 + j*(-182)
+120 + j*(340)
+-10 + j*(-316)
+54 + j*(4)
+-40 + j*(29)
+7 + j*(58)
+-280 + j*(143)
+-206 + j*(197)
+-183 + j*(181)
+-90 + j*(177)
+-115 + j*(26)
+-42 + j*(168)
+-34 + j*(-195)
+32 + j*(125)
+272 + j*(-323)
+-118 + j*(22)
+125 + j*(-72)
+-164 + j*(296)
+260 + j*(37)
+133 + j*(228)
+30 + j*(-123)
+90 + j*(167)
+39 + j*(83)
+63 + j*(445)
+7 + j*(-14)
+-21 + j*(83)
+-139 + j*(302)
+-600 + j*(137)
+-149 + j*(-34)
+305 + j*(-392)
+208 + j*(151)
+26 + j*(16)
+135 + j*(-170)
+-183 + j*(215)
+-78 + j*(1)
+-131 + j*(206)
+202 + j*(356)
+187 + j*(-204)
+147 + j*(-86)
+283 + j*(107)
+30 + j*(-57)
+182 + j*(36)
+-154 + j*(-84)
+24 + j*(36)
+124 + j*(52)
+-237 + j*(114)
+-218 + j*(39)
+-40 + j*(-302)
+-456 + j*(4)
+136 + j*(63)
+-20 + j*(33)
+81 + j*(-118)
+-52 + j*(140)
+46 + j*(56)
+146 + j*(-45)
+-85 + j*(-44)
+33 + j*(-86)
+-76 + j*(-269)
+143 + j*(91)
+-121 + j*(23)
+12 + j*(93)
+-57 + j*(-215)
+47 + j*(-370)
+317 + j*(22)
+-103 + j*(16)
+179 + j*(-135)
+57 + j*(0)
+-30 + j*(88)
+131 + j*(-74)
+207 + j*(-72)
+-234 + j*(179)
+-226 + j*(-16)
+226 + j*(161)
+143 + j*(108)
+-95 + j*(-100)
+-24 + j*(-88)
+380 + j*(102)
+187 + j*(57)
+-23 + j*(188)
+174 + j*(-252)
+93 + j*(498)
+194 + j*(196)
+72 + j*(-33)
+-112 + j*(20)
+-106 + j*(-163)
+-93 + j*(-49)
+98 + j*(100)
+-79 + j*(-144)
+-322 + j*(-298)
+-160 + j*(-301)
+144 + j*(-13)
+262 + j*(-20)
+-250 + j*(-38)
+59 + j*(-44)
+-1 + j*(219)
+234 + j*(-99)
+-3 + j*(-152)
+160 + j*(-97)
+359 + j*(152)
+-6 + j*(-20)
+-209 + j*(183)
+-36 + j*(192)
+-5 + j*(74)
+-171 + j*(-285)
+11 + j*(49)
+-6 + j*(103)
+18 + j*(147)
+-27 + j*(161)
+4 + j*(-77)
+193 + j*(-27)
+81 + j*(89)
+-20 + j*(140)
+-253 + j*(-40)
+246 + j*(104)
+83 + j*(87)
+160 + j*(-54)
+277 + j*(4)
+129 + j*(-228)
+89 + j*(-37)
+222 + j*(-259)
+4 + j*(-252)
+-135 + j*(-66)
+-7 + j*(228)
+190 + j*(133)
+-67 + j*(-235)
+157 + j*(-184)
+126 + j*(-25)
+-321 + j*(46)
+-291 + j*(-25)
+-365 + j*(-303)
+83 + j*(-93)
+-286 + j*(77)
+-1 + j*(-198)
+-246 + j*(-414)
+64 + j*(-129)
+142 + j*(105)
+188 + j*(-168)
+-139 + j*(-209)
+-58 + j*(330)
+-16 + j*(-140)
+-33 + j*(157)
+-77 + j*(-275)
+-151 + j*(-147)
+-37 + j*(-271)
+206 + j*(254)
+419 + j*(39)
+156 + j*(-215)
+-33 + j*(86)
+164 + j*(-355)
+-202 + j*(231)
+-162 + j*(-66)
+-112 + j*(-197)
+-72 + j*(-170)
+-66 + j*(-123)
+70 + j*(245)
+-182 + j*(-83)
+173 + j*(-288)
+148 + j*(158)
+38 + j*(324)
+67 + j*(-69)
+18 + j*(-21)
+49 + j*(-88)
+54 + j*(-108)
+-49 + j*(200)
+-228 + j*(-81)
+-436 + j*(-100)
+-21 + j*(-150)
+-58 + j*(-40)
+368 + j*(-151)
+-32 + j*(-195)
+30 + j*(-35)
+190 + j*(21)
+191 + j*(-153)
+-322 + j*(95)
+-42 + j*(-115)
+103 + j*(-181)
+-110 + j*(183)
+76 + j*(-199)
+-103 + j*(285)
+81 + j*(271)
+214 + j*(81)
+10 + j*(6)
+19 + j*(7)
+149 + j*(42)
+-22 + j*(10)
+211 + j*(-118)
+126 + j*(-46)
+276 + j*(163)
+86 + j*(155)
+-108 + j*(19)
+-16 + j*(-174)
+104 + j*(-542)
+70 + j*(125)
+168 + j*(128)
+-215 + j*(305)
+-2 + j*(35)
+-87 + j*(150)
+50 + j*(-389)
+111 + j*(136)
+-211 + j*(-159)
+-20 + j*(-172)
+240 + j*(-195)
+205 + j*(57)
+-98 + j*(43)
+194 + j*(-65)
+-37 + j*(153)
+30 + j*(123)
+-52 + j*(29)
+-266 + j*(8)
+-146 + j*(-105)
+158 + j*(15)
+69 + j*(-259)
+304 + j*(176)
+96 + j*(160)
+-39 + j*(-62)
+5 + j*(80)
+-24 + j*(214)
+152 + j*(61)
+119 + j*(-291)
+-44 + j*(168)
+48 + j*(431)
+-17 + j*(66)
+-4 + j*(264)
+-88 + j*(33)
+-160 + j*(-226)
+-238 + j*(-113)
+42 + j*(-112)
+75 + j*(30)
+130 + j*(-27)
+100 + j*(175)
+106 + j*(-87)
+-320 + j*(-256)
+122 + j*(-37)
+-141 + j*(-22)
+80 + j*(-106)
+301 + j*(-71)
+117 + j*(-21)
+93 + j*(419)
+46 + j*(-291)
+-59 + j*(-177)
+-76 + j*(47)
+-64 + j*(-56)
+-12 + j*(74)
+-79 + j*(-18)
+214 + j*(-89)
+122 + j*(-144)
+-142 + j*(-150)
+-199 + j*(-298)
+13 + j*(-134)
+-366 + j*(21)
+-2 + j*(-26)
+-30 + j*(139)
+-328 + j*(-211)
+-141 + j*(235)
+253 + j*(-21)
+-219 + j*(-209)
+-71 + j*(-62)
+82 + j*(-146)
+-127 + j*(261)
+-319 + j*(-255)
+-121 + j*(86)
+585 + j*(32)
+-54 + j*(-60)
+282 + j*(58)
+-122 + j*(221)
+84 + j*(110)
+-153 + j*(1)
+44 + j*(209)
+229 + j*(110)
+313 + j*(69)
+202 + j*(-211)
+39 + j*(21)
+194 + j*(177)
+209 + j*(69)
+-30 + j*(-167)
+127 + j*(38)
+-177 + j*(11)
+-41 + j*(86)
+-15 + j*(243)
+78 + j*(11)
+-79 + j*(-228)
+-116 + j*(-86)
+23 + j*(47)
+383 + j*(73)
+203 + j*(-68)
+111 + j*(140)
+-63 + j*(68)
+-82 + j*(-229)
+-157 + j*(-313)
+-190 + j*(279)
+-104 + j*(61)
+-180 + j*(-204)
+265 + j*(-153)
+-42 + j*(-48)
+100 + j*(172)
+-147 + j*(-308)
+267 + j*(54)
+-112 + j*(272)
+-264 + j*(-36)
+29 + j*(-332)
+140 + j*(-86)
+400 + j*(-38)
+-121 + j*(-231)
+-42 + j*(344)
+129 + j*(-81)
+-111 + j*(226)
+3 + j*(150)
+-37 + j*(18)
+0 + j*(-82)
+153 + j*(151)
+81 + j*(91)
+-136 + j*(184)
+503 + j*(-113)
+-49 + j*(319)
+70 + j*(77)
+197 + j*(-66)
+-62 + j*(149)
+254 + j*(-122)
+45 + j*(-32)
+3 + j*(9)
+25 + j*(89)
+6 + j*(-45)
+-22 + j*(161)
+-40 + j*(83)
+103 + j*(23)
+110 + j*(278)
+8 + j*(-61)
+-57 + j*(37)
+-99 + j*(86)
+-64 + j*(339)
+-37 + j*(214)
+-84 + j*(6)
+303 + j*(-178)
+205 + j*(97)
+11 + j*(194)
+129 + j*(11)
+687 + j*(-100)
+187 + j*(-238)
+40 + j*(-74)
+332 + j*(-25)
+-94 + j*(165)
+64 + j*(246)
+-291 + j*(-108)
+-121 + j*(-284)
+216 + j*(-104)
+159 + j*(23)
+75 + j*(-47)
+70 + j*(4)
+-10 + j*(-34)
+-155 + j*(34)
+-35 + j*(89)
+-13 + j*(-134)
+-99 + j*(40)
+-463 + j*(-13)
+-252 + j*(172)
+-22 + j*(-351)
+-69 + j*(88)
+-284 + j*(-21)
+13 + j*(-6)
+-35 + j*(-71)
+-40 + j*(317)
+405 + j*(-60)
+-358 + j*(104)
+56 + j*(-119)
+-135 + j*(-156)
+-66 + j*(-23)
+168 + j*(59)
+148 + j*(-76)
+-213 + j*(-190)
+-190 + j*(-27)
+103 + j*(392)
+52 + j*(110)
+211 + j*(-61)
+-165 + j*(218)
+3 + j*(-231)
+69 + j*(-161)
+-263 + j*(54)
+98 + j*(-191)
+30 + j*(167)
+45 + j*(9)
+-373 + j*(181)
+69 + j*(105)
+-23 + j*(-100)
+-127 + j*(-9)
+-64 + j*(287)
+202 + j*(290)
+115 + j*(-109)
+-72 + j*(-205)
+166 + j*(238)
+151 + j*(-25)
+186 + j*(290)
+-108 + j*(33)
+-163 + j*(-180)
+148 + j*(124)
+94 + j*(-270)
+-52 + j*(27)
+161 + j*(134)
+-61 + j*(-25)
+-23 + j*(-233)
+93 + j*(-245)
+57 + j*(162)
+-172 + j*(-354)
+133 + j*(129)
+339 + j*(107)
+12 + j*(65)
+6 + j*(-80)
+-51 + j*(-17)
+-13 + j*(-37)
+-18 + j*(-258)
+-54 + j*(-141)
+295 + j*(6)
+-215 + j*(-192)
+-109 + j*(-73)
+105 + j*(43)
+-277 + j*(-251)
+57 + j*(188)
+-38 + j*(390)
+-117 + j*(-390)
+107 + j*(233)
+131 + j*(98)
+366 + j*(-215)
+-136 + j*(-154)
+45 + j*(-112)
+-10 + j*(-6)
+27 + j*(-114)
+-119 + j*(8)
+-163 + j*(-4)
+78 + j*(261)
+221 + j*(-37)
+-92 + j*(-23)
+4 + j*(221)
+-2 + j*(-153)
+-76 + j*(-158)
+66 + j*(141)
+-182 + j*(136)
+-446 + j*(-88)
+71 + j*(-145)
+-75 + j*(-87)
+101 + j*(-97)
+-177 + j*(146)
+93 + j*(21)
+324 + j*(397)
+281 + j*(-229)
+-138 + j*(117)
+-188 + j*(112)
+39 + j*(-66)
+163 + j*(-98)
+71 + j*(57)
+-65 + j*(187)
+125 + j*(197)
+-135 + j*(141)
+-105 + j*(47)
+19 + j*(-86)
+66 + j*(-235)
+-480 + j*(225)
+76 + j*(28)
+342 + j*(47)
+0 + j*(-366)
+-140 + j*(74)
+193 + j*(144)
+-126 + j*(-43)
+-191 + j*(158)
+-180 + j*(-55)
+63 + j*(-255)
+-98 + j*(-2)
+-13 + j*(308)
+-183 + j*(207)
+144 + j*(37)
+-51 + j*(-175)
+28 + j*(-29)
+-211 + j*(356)
+-132 + j*(173)
+-173 + j*(199)
+36 + j*(329)
+-139 + j*(228)
+-311 + j*(177)
+65 + j*(-343)
+-217 + j*(-20)
+119 + j*(18)
+29 + j*(-58)
+156 + j*(129)
+-41 + j*(23)
+202 + j*(-163)
+224 + j*(196)
+-47 + j*(25)
+15 + j*(-122)
+-182 + j*(280)
+-170 + j*(21)
+8 + j*(-144)
+20 + j*(246)
+-148 + j*(143)
+91 + j*(93)
+168 + j*(44)
+-100 + j*(270)
+-51 + j*(-167)
+-285 + j*(125)
+-93 + j*(63)
+-1 + j*(-290)
+-214 + j*(-47)
+-78 + j*(243)
+-156 + j*(-314)
+152 + j*(57)
+163 + j*(267)
+8 + j*(-167)
+-262 + j*(114)
+132 + j*(49)
+199 + j*(-85)
+3 + j*(228)
+57 + j*(-151)
+104 + j*(-98)
+-45 + j*(-381)
+238 + j*(-59)
+-62 + j*(-158)
+-96 + j*(-87)
+8 + j*(279)
+-84 + j*(260)
+276 + j*(127)
+-142 + j*(-42)
+-119 + j*(-185)
+67 + j*(134)
+-20 + j*(129)
+-47 + j*(-30)
+-250 + j*(156)
+200 + j*(108)
+-450 + j*(49)
+-30 + j*(87)
+205 + j*(-137)
+-165 + j*(217)
+100 + j*(-165)
+-52 + j*(-71)
+-232 + j*(-131)
+-289 + j*(-36)
+310 + j*(-194)
+-88 + j*(127)
+17 + j*(-71)
+50 + j*(232)
+181 + j*(21)
+-65 + j*(-333)
+158 + j*(-238)
+176 + j*(-210)
+-279 + j*(173)
+-21 + j*(-192)
+-363 + j*(-361)
+6 + j*(185)
+-25 + j*(-4)
+62 + j*(-21)
+33 + j*(-59)
+2 + j*(-121)
+-192 + j*(-84)
+32 + j*(204)
+23 + j*(57)
+-186 + j*(341)
+1 + j*(-191)
+-262 + j*(-313)
+121 + j*(13)
+-211 + j*(-185)
+-470 + j*(23)
+-221 + j*(94)
+50 + j*(25)
+-277 + j*(53)
+174 + j*(29)
+-26 + j*(-297)
+-1 + j*(-285)
+90 + j*(-249)
+50 + j*(214)
+72 + j*(-9)
+-107 + j*(-288)
+-98 + j*(-368)
+-146 + j*(-28)
+-135 + j*(-53)
+-245 + j*(240)
+-88 + j*(134)
+211 + j*(-91)
+-175 + j*(42)
+117 + j*(212)
+179 + j*(-4)
+-96 + j*(202)
+-119 + j*(-134)
+22 + j*(291)
+-515 + j*(119)
+36 + j*(-319)
+190 + j*(-428)
+128 + j*(-48)
+458 + j*(-10)
+-104 + j*(-23)
+-51 + j*(173)
+93 + j*(95)
+-222 + j*(47)
+-141 + j*(-39)
+-175 + j*(-116)
+35 + j*(-10)
+56 + j*(-146)
+275 + j*(14)
+14 + j*(31)
+-105 + j*(-30)
+105 + j*(64)
+21 + j*(-163)
+-33 + j*(-29)
+-56 + j*(-397)
+-235 + j*(-142)
+-91 + j*(-166)
+-112 + j*(-132)
+342 + j*(116)
+76 + j*(-300)
+-118 + j*(71)
+-137 + j*(196)
+83 + j*(204)
+89 + j*(-214)
+78 + j*(-142)
+-82 + j*(-71)
+-301 + j*(-57)
+141 + j*(111)
+-74 + j*(4)
+-76 + j*(179)
+-545 + j*(209)
+121 + j*(-37)
+303 + j*(121)
+-182 + j*(47)
+83 + j*(-137)
+251 + j*(118)
+60 + j*(36)
+134 + j*(221)
+257 + j*(245)
+30 + j*(-115)
+192 + j*(-68)
+-280 + j*(-52)
+-197 + j*(255)
+-106 + j*(23)
+-2 + j*(-309)
+175 + j*(305)
+78 + j*(31)
+86 + j*(-110)
+-37 + j*(-164)
+-28 + j*(135)
+29 + j*(-107)
+161 + j*(228)
+269 + j*(167)
+-46 + j*(-32)
+-175 + j*(-12)
+244 + j*(-436)
+-118 + j*(276)
+-151 + j*(-311)
+-127 + j*(91)
+27 + j*(182)
+71 + j*(-19)
+170 + j*(-5)
+-67 + j*(75)
+196 + j*(233)
+253 + j*(47)
+-23 + j*(-124)
+10 + j*(-184)
+-90 + j*(-4)
+-13 + j*(-43)
+-248 + j*(-177)
+-4 + j*(-153)
+192 + j*(-52)
+-232 + j*(-206)
+238 + j*(138)
+-165 + j*(55)
+-158 + j*(-70)
+77 + j*(55)
+-6 + j*(47)
+227 + j*(-101)
+7 + j*(281)
+-52 + j*(156)
+137 + j*(-203)
+56 + j*(64)
+71 + j*(16)
+-171 + j*(-17)
+-127 + j*(325)
+8 + j*(91)
+-107 + j*(197)
+-25 + j*(22)
+-203 + j*(-243)
+120 + j*(57)
+205 + j*(-311)
+117 + j*(30)
+-167 + j*(149)
+202 + j*(27)
+-257 + j*(177)
+-293 + j*(76)
+-211 + j*(-262)
+-106 + j*(-71)
+-43 + j*(-121)
+-140 + j*(-146)
+-118 + j*(138)
+114 + j*(-126)
+114 + j*(35)
+-208 + j*(59)
+177 + j*(34)
+-18 + j*(-115)
+60 + j*(9)
+-24 + j*(-62)
+288 + j*(66)
+-176 + j*(-223)
+94 + j*(69)
+334 + j*(-168)
+281 + j*(-23)
+-40 + j*(139)
+-59 + j*(-4)
+-45 + j*(-16)
+100 + j*(-16)
+216 + j*(-39)
+30 + j*(-128)
+-351 + j*(161)
+67 + j*(-194)
+-213 + j*(-55)
+102 + j*(-107)
+236 + j*(-30)
+317 + j*(-180)
+66 + j*(-140)
+-4 + j*(157)
+-191 + j*(-49)
+-101 + j*(-248)
+-21 + j*(-175)
+-9 + j*(-108)
+-268 + j*(-51)
+158 + j*(168)
+11 + j*(117)
+-4 + j*(78)
+77 + j*(186)
+72 + j*(-84)
+-88 + j*(-228)
+-66 + j*(-83)
+-272 + j*(-322)
+-123 + j*(-65)
+-105 + j*(25)
+368 + j*(-404)
+0 + j*(-161)
+162 + j*(-31)
+96 + j*(232)
+236 + j*(-275)
+40 + j*(-96)
+250 + j*(-218)
+-234 + j*(-142)
+-10 + j*(63)
+-264 + j*(210)
+40 + j*(-186)
+-290 + j*(4)
+176 + j*(-90)
+109 + j*(282)
+13 + j*(465)
+40 + j*(7)
+129 + j*(-70)
+-30 + j*(7)
+-151 + j*(71)
+-240 + j*(152)
+-238 + j*(-159)
+50 + j*(-19)
+-81 + j*(76)
+132 + j*(-339)
+7 + j*(190)
+68 + j*(-272)
+-231 + j*(199)
+-6 + j*(-153)
+-71 + j*(224)
+-362 + j*(203)
+122 + j*(-11)
+125 + j*(-11)
+40 + j*(-13)
+69 + j*(370)
+128 + j*(-18)
+-73 + j*(77)
+-194 + j*(-13)
+144 + j*(33)
+168 + j*(331)
+-224 + j*(-53)
+18 + j*(-140)
+-47 + j*(232)
+20 + j*(-175)
+235 + j*(-91)
+241 + j*(-113)
+-290 + j*(-156)
+-180 + j*(-276)
+-187 + j*(69)
+-25 + j*(-264)
+-29 + j*(-21)
+-70 + j*(-210)
+-301 + j*(-95)
+-34 + j*(-162)
+-252 + j*(10)
+80 + j*(-33)
+-62 + j*(-161)
+14 + j*(29)
+83 + j*(170)
+154 + j*(-146)
+50 + j*(-245)
+112 + j*(82)
+-60 + j*(132)
+257 + j*(174)
+-10 + j*(-168)
+147 + j*(-98)
+-224 + j*(-255)
+-240 + j*(-171)
+155 + j*(-137)
+-81 + j*(138)
+-325 + j*(-52)
+247 + j*(141)
+-365 + j*(16)
+385 + j*(-28)
+165 + j*(-25)
+-62 + j*(60)
+-140 + j*(-218)
+426 + j*(178)
+-83 + j*(156)
+163 + j*(-32)
+263 + j*(13)
+-159 + j*(45)
+-7 + j*(-478)
+-43 + j*(221)
+37 + j*(-121)
+57 + j*(-92)
+4 + j*(207)
+-91 + j*(-10)
+-173 + j*(31)
+182 + j*(-86)
+153 + j*(59)
+-259 + j*(-192)
+185 + j*(-95)
+155 + j*(169)
+136 + j*(-41)
+-330 + j*(-250)
+-178 + j*(-422)
+218 + j*(307)
+264 + j*(-365)
+317 + j*(-4)
+424 + j*(-73)
+-162 + j*(-162)
+-238 + j*(-79)
+-28 + j*(270)
+-309 + j*(224)
+230 + j*(42)
+168 + j*(66)
+243 + j*(-93)
+-57 + j*(248)
+-28 + j*(131)
+-1 + j*(173)
+-61 + j*(-118)
+-35 + j*(104)
+156 + j*(-25)
+20 + j*(182)
+-57 + j*(-141)
+-115 + j*(-38)
+68 + j*(-209)
+97 + j*(-191)
+170 + j*(226)
+70 + j*(42)
+-115 + j*(105)
+-105 + j*(167)
+-153 + j*(-176)
+1 + j*(214)
+144 + j*(404)
+76 + j*(303)
+220 + j*(2)
+-428 + j*(-21)
+-53 + j*(49)
+-35 + j*(262)
+29 + j*(-51)
+104 + j*(-71)
+161 + j*(-219)
+57 + j*(-207)
+-167 + j*(200)
+-170 + j*(174)
+-46 + j*(-60)
+4 + j*(-160)
+117 + j*(50)
+390 + j*(21)
+-37 + j*(16)
+3 + j*(-183)
+-27 + j*(194)
+93 + j*(42)
+-457 + j*(214)
+310 + j*(-107)
+-8 + j*(-76)
+282 + j*(183)
+-30 + j*(56)
+201 + j*(322)
+421 + j*(227)
+230 + j*(-49)
+156 + j*(-142)
+-208 + j*(-272)
+-81 + j*(-156)
+-293 + j*(-89)
+-108 + j*(-82)
+225 + j*(73)
+-69 + j*(91)
+-227 + j*(-105)
+350 + j*(-50)
+8 + j*(-212)
+-149 + j*(234)
+-61 + j*(139)
+134 + j*(-105)
+177 + j*(-169)
+-113 + j*(113)
+178 + j*(44)
+120 + j*(62)
+-1 + j*(253)
+-45 + j*(-24)
+240 + j*(-194)
+23 + j*(90)
+237 + j*(68)
+-13 + j*(83)
+-148 + j*(-37)
+136 + j*(-278)
+-175 + j*(334)
+160 + j*(-148)
+153 + j*(-133)
+60 + j*(124)
+-221 + j*(-114)
+96 + j*(116)
+-43 + j*(30)
+38 + j*(-186)
+-302 + j*(-27)
+93 + j*(-78)
+-64 + j*(274)
+-75 + j*(-1)
+66 + j*(232)
+199 + j*(22)
+-64 + j*(40)
+-199 + j*(66)
+168 + j*(-209)
+122 + j*(-142)
+305 + j*(71)
+-11 + j*(-146)
+-418 + j*(5)
+24 + j*(133)
+203 + j*(-218)
+394 + j*(165)
+-156 + j*(-112)
+93 + j*(-129)
+-204 + j*(59)
+95 + j*(317)
+-151 + j*(-274)
+-122 + j*(-175)
+-115 + j*(-29)
+-50 + j*(-112)
+224 + j*(-140)
+47 + j*(-1)
+-80 + j*(-177)
+-244 + j*(-238)
+-102 + j*(45)
+-117 + j*(-63)
+62 + j*(8)
+-85 + j*(20)
+-209 + j*(-100)
+-118 + j*(-187)
+-158 + j*(57)
+-174 + j*(-190)
+-23 + j*(389)
+-24 + j*(110)
+-163 + j*(-100)
+45 + j*(234)
+-49 + j*(76)
+-349 + j*(193)
+-40 + j*(-93)
+162 + j*(120)
+-119 + j*(-11)
+-126 + j*(322)
+42 + j*(240)
+49 + j*(-10)
+445 + j*(175)
+-243 + j*(78)
+95 + j*(-86)
+237 + j*(66)
+148 + j*(-190)
+-105 + j*(37)
+112 + j*(40)
+-134 + j*(-176)
+241 + j*(-241)
+-398 + j*(185)
+-57 + j*(36)
+323 + j*(36)
+206 + j*(-162)
+-100 + j*(231)
+-121 + j*(192)
+52 + j*(68)
+113 + j*(-16)
+-312 + j*(-42)
+185 + j*(-37)
+-140 + j*(124)
+252 + j*(-82)
+74 + j*(-66)
+-182 + j*(-21)
+-168 + j*(-48)
+-198 + j*(-36)
+-100 + j*(-97)
+108 + j*(-23)
+16 + j*(-69)
+-303 + j*(-143)
+-182 + j*(-119)
+149 + j*(-485)
+279 + j*(110)
+-151 + j*(-129)
+263 + j*(-245)
+166 + j*(28)
+216 + j*(74)
+25 + j*(96)
+-122 + j*(146)
+81 + j*(103)
+129 + j*(-6)
+-167 + j*(-17)
+-351 + j*(-259)
+3 + j*(-125)
+-163 + j*(68)
+279 + j*(91)
+-49 + j*(-257)
+195 + j*(-93)
+47 + j*(118)
+-197 + j*(-392)
+-125 + j*(-238)
+284 + j*(48)
+218 + j*(-397)
+72 + j*(-14)
+-46 + j*(223)
+-140 + j*(-227)
+182 + j*(-205)
+-218 + j*(-226)
+-57 + j*(-305)
+-48 + j*(-37)
+-199 + j*(-303)
+16 + j*(-168)
+38 + j*(-11)
+-73 + j*(-53)
+-142 + j*(-253)
+-83 + j*(246)
+77 + j*(-91)
+-128 + j*(-83)
+-315 + j*(-84)
+-229 + j*(-173)
+-238 + j*(-5)
+118 + j*(-53)
+-119 + j*(124)
+57 + j*(-78)
+33 + j*(-105)
+-52 + j*(-35)
+-11 + j*(87)
+-172 + j*(18)
+-40 + j*(-88)
+-42 + j*(188)
+3 + j*(-257)
+-205 + j*(97)
+244 + j*(337)
+-30 + j*(35)
+52 + j*(-91)
+-379 + j*(-11)
+-187 + j*(-46)
+-99 + j*(-209)
+-197 + j*(-16)
+-168 + j*(-129)
+-429 + j*(34)
+-54 + j*(-23)
+-110 + j*(-78)
+328 + j*(98)
+-142 + j*(139)
+-204 + j*(124)
+-123 + j*(-131)
+-110 + j*(-260)
+47 + j*(-187)
+138 + j*(121)
+-160 + j*(91)
+-414 + j*(-91)
+-73 + j*(169)
+-91 + j*(-195)
+-343 + j*(-139)
+-105 + j*(-62)
+127 + j*(308)
+43 + j*(147)
+-381 + j*(40)
+-107 + j*(197)
+264 + j*(-93)
+-170 + j*(122)
+156 + j*(-71)
+-37 + j*(233)
+77 + j*(51)
+152 + j*(14)
+-35 + j*(76)
+-259 + j*(124)
+-253 + j*(10)
+234 + j*(-71)
+562 + j*(-276)
+0 + j*(88)
+45 + j*(115)
+-56 + j*(-43)
+262 + j*(25)
+-69 + j*(119)
+-143 + j*(-172)
+176 + j*(-386)
+-144 + j*(38)
+-18 + j*(170)
+259 + j*(-262)
+-8 + j*(88)
+-113 + j*(-90)
+139 + j*(74)
+141 + j*(-67)
+208 + j*(-146)
+118 + j*(46)
+-156 + j*(-5)
+-69 + j*(-154)
+-252 + j*(115)
+93 + j*(6)
+55 + j*(257)
+19 + j*(62)
+211 + j*(129)
+-421 + j*(107)
+120 + j*(77)
+-86 + j*(-219)
+-292 + j*(-37)
+-13 + j*(-209)
+-185 + j*(-60)
+-71 + j*(163)
+-301 + j*(-11)
+-138 + j*(188)
+110 + j*(6)
+310 + j*(356)
+101 + j*(-104)
+-11 + j*(125)
+107 + j*(81)
+157 + j*(-269)
+-98 + j*(-77)
+427 + j*(-223)
+-159 + j*(154)
+11 + j*(148)
+-168 + j*(-61)
+19 + j*(-80)
+-69 + j*(276)
+-376 + j*(283)
+23 + j*(91)
+-237 + j*(41)
+-194 + j*(11)
+-209 + j*(-356)
+-21 + j*(170)
+-204 + j*(92)
+180 + j*(89)
+-72 + j*(52)
+-102 + j*(128)
+155 + j*(-105)
+-308 + j*(215)
+-206 + j*(187)
+-31 + j*(27)
+-264 + j*(33)
+192 + j*(50)
+-184 + j*(-98)
+-213 + j*(-190)
+-296 + j*(-141)
+42 + j*(-74)
+59 + j*(153)
+-2 + j*(-122)
+124 + j*(-98)
+37 + j*(-61)
+-5 + j*(-226)
+-327 + j*(-73)
+187 + j*(238)
+-193 + j*(145)
+-49 + j*(199)
+12 + j*(-103)
+254 + j*(-51)
+138 + j*(-86)
+166 + j*(-317)
+61 + j*(-37)
+-264 + j*(37)
+-108 + j*(-327)
+-274 + j*(312)
+-293 + j*(146)
+-120 + j*(-36)
+153 + j*(-57)
+91 + j*(205)
+-26 + j*(432)
+-310 + j*(168)
+137 + j*(171)
+-57 + j*(11)
+233 + j*(-103)
+-19 + j*(-187)
+-33 + j*(-207)
+-239 + j*(153)
+250 + j*(-412)
+23 + j*(-238)
+218 + j*(-332)
+284 + j*(-149)
+68 + j*(37)
+-3 + j*(303)
+145 + j*(90)
+7 + j*(-6)
+93 + j*(-117)
+218 + j*(-139)
+-204 + j*(30)
+-51 + j*(-193)
+-52 + j*(-139)
+-104 + j*(-123)
+-164 + j*(55)
+169 + j*(12)
+-155 + j*(-104)
+230 + j*(26)
+-1 + j*(93)
+-243 + j*(-438)
+-313 + j*(98)
+22 + j*(-40)
+-18 + j*(166)
+116 + j*(-16)
+-221 + j*(156)
+10 + j*(-282)
+-21 + j*(41)
+-111 + j*(-107)
+78 + j*(68)
+-165 + j*(14)
+-99 + j*(16)
+315 + j*(66)
+11 + j*(-98)
+65 + j*(97)
+-82 + j*(227)
+35 + j*(-300)
+-29 + j*(30)
+222 + j*(-175)
+89 + j*(91)
+133 + j*(-55)
+-165 + j*(26)
+294 + j*(-19)
+-134 + j*(173)
+-6 + j*(-123)
+265 + j*(316)
+-37 + j*(-37)
+37 + j*(-9)
+-28 + j*(54)
+66 + j*(52)
+-2 + j*(-216)
+111 + j*(-18)
+144 + j*(153)
+46 + j*(17)
+-18 + j*(184)
+-277 + j*(-111)
+136 + j*(-34)
+181 + j*(-19)
+-358 + j*(42)
+112 + j*(24)
+-58 + j*(-71)
+21 + j*(89)
+250 + j*(2)
+-151 + j*(7)
+-45 + j*(29)
+-100 + j*(-1)
+-96 + j*(148)
+197 + j*(52)
+-18 + j*(-540)
+7 + j*(-98)
+-18 + j*(27)
+74 + j*(166)
+-16 + j*(-130)
+62 + j*(108)
+37 + j*(88)
+-97 + j*(-153)
+-11 + j*(36)
+-204 + j*(48)
+70 + j*(115)
+-161 + j*(142)
+-72 + j*(-76)
+156 + j*(112)
+149 + j*(317)
+-163 + j*(193)
+353 + j*(-178)
+160 + j*(-74)
+67 + j*(201)
+-218 + j*(146)
+111 + j*(42)
+-27 + j*(28)
+-207 + j*(-126)
+115 + j*(68)
+178 + j*(95)
+110 + j*(-12)
+74 + j*(-181)
+-38 + j*(-50)
+147 + j*(321)
+132 + j*(110)
+297 + j*(158)
+-107 + j*(59)
+100 + j*(142)
+-35 + j*(252)
+122 + j*(69)
+105 + j*(-229)
+34 + j*(-2)
+479 + j*(-9)
+-16 + j*(96)
+201 + j*(-258)
+-104 + j*(133)
+129 + j*(-23)
+194 + j*(134)
+-106 + j*(-35)
+-281 + j*(-300)
+36 + j*(-212)
+-175 + j*(21)
+-287 + j*(86)
+79 + j*(-139)
+173 + j*(133)
+16 + j*(-117)
+-152 + j*(33)
+201 + j*(-59)
+-149 + j*(150)
+-75 + j*(-175)
+-416 + j*(-181)
+-64 + j*(-284)
+0 + j*(401)
+-170 + j*(425)
+-214 + j*(-47)
+-211 + j*(247)
+-98 + j*(8)
+-129 + j*(447)
+271 + j*(272)
+9 + j*(-279)
+-64 + j*(-25)
+176 + j*(240)
+-462 + j*(-388)
+-25 + j*(391)
+132 + j*(-235)
+173 + j*(-240)
+371 + j*(-346)
+230 + j*(-164)
+-228 + j*(18)
+-81 + j*(323)
+150 + j*(89)
+197 + j*(-226)
+387 + j*(-117)
+170 + j*(-281)
+-300 + j*(-19)
+-4 + j*(-175)
+428 + j*(-17)
+523 + j*(419)
+168 + j*(455)
+-202 + j*(-57)
+-372 + j*(-344)
+-133 + j*(-50)
+87 + j*(-18)
+-21 + j*(347)
+237 + j*(446)
+-267 + j*(-60)
+-407 + j*(-203)
+-99 + j*(-204)
+259 + j*(247)
+-342 + j*(342)
+273 + j*(330)
+-400 + j*(238)
+365 + j*(-625)
+400 + j*(-322)
+5 + j*(168)
+371 + j*(329)
+148 + j*(443)
+134 + j*(-100)
+-497 + j*(272)
+-395 + j*(400)
+-403 + j*(267)
+411 + j*(-407)
+-341 + j*(-416)
+155 + j*(-460)
+332 + j*(-323)
+-194 + j*(42)
+-268 + j*(133)
+224 + j*(-124)
+535 + j*(478)
+143 + j*(-390)
+368 + j*(-152)
+-110 + j*(-284)
+-693 + j*(-241)
+-386 + j*(450)
+-215 + j*(373)
+-156 + j*(189)
+349 + j*(-105)
+390 + j*(61)
+269 + j*(-430)
+183 + j*(-207)
+-150 + j*(-489)
+518 + j*(531)
+186 + j*(692)
+395 + j*(-305)
+166 + j*(249)
+243 + j*(-417)
+-135 + j*(-226)
+103 + j*(46)
+281 + j*(125)
+182 + j*(351)
+-250 + j*(40)
+-157 + j*(-467)
+-240 + j*(178)
+170 + j*(-20)
+-379 + j*(-303)
+-149 + j*(295)
+444 + j*(-149)
+595 + j*(231)
+-92 + j*(-199)
+-362 + j*(-141)
+-561 + j*(33)
+588 + j*(-375)
+-267 + j*(-479)
+327 + j*(100)
+-598 + j*(-174)
+-42 + j*(406)
+342 + j*(-147)
+336 + j*(-131)
+140 + j*(115)
+438 + j*(119)
+-50 + j*(100)
+277 + j*(402)
+-230 + j*(-449)
+202 + j*(367)
+388 + j*(-771)
+288 + j*(-619)
+204 + j*(-395)
+-47 + j*(-322)
+-293 + j*(322)
+-315 + j*(-171)
+-141 + j*(127)
+-414 + j*(-54)
+36 + j*(366)
+-325 + j*(466)
+471 + j*(-397)
+-284 + j*(-148)
+-380 + j*(111)
+277 + j*(-126)
+252 + j*(220)
+81 + j*(-233)
+241 + j*(-114)
+-260 + j*(417)
+462 + j*(-177)
+-95 + j*(398)
+-182 + j*(-351)
+-76 + j*(-392)
+-268 + j*(-288)
+351 + j*(-228)
+501 + j*(62)
+51 + j*(273)
+-418 + j*(-262)
+385 + j*(198)
+-156 + j*(497)
+185 + j*(-89)
+-111 + j*(-339)
+-297 + j*(260)
+141 + j*(-395)
+202 + j*(-265)
+291 + j*(-190)
+344 + j*(83)
+-349 + j*(64)
+-132 + j*(284)
+361 + j*(363)
+212 + j*(241)
+527 + j*(514)
+69 + j*(530)
+403 + j*(281)
+-375 + j*(-121)
+-355 + j*(-482)
+177 + j*(158)
+187 + j*(-8)
+696 + j*(-346)
+132 + j*(-311)
+1 + j*(213)
+395 + j*(-237)
+303 + j*(246)
+320 + j*(-262)
+308 + j*(187)
+527 + j*(18)
+-641 + j*(192)
+-265 + j*(-494)
+703 + j*(446)
+412 + j*(116)
+-544 + j*(392)
+219 + j*(387)
+-129 + j*(351)
+-192 + j*(187)
+-379 + j*(-465)
+322 + j*(-293)
+192 + j*(-500)
+22 + j*(351)
+-387 + j*(-301)
+-67 + j*(456)
+194 + j*(450)
+218 + j*(-581)
+-276 + j*(-107)
+187 + j*(198)
+28 + j*(-418)
+-85 + j*(292)
+-156 + j*(-344)
+-214 + j*(-260)
+-151 + j*(-267)
+41 + j*(-289)
+347 + j*(329)
+-33 + j*(-435)
+76 + j*(298)
+202 + j*(222)
+-78 + j*(284)
+575 + j*(-494)
+291 + j*(204)
+197 + j*(523)
+-494 + j*(-342)
+86 + j*(328)
+257 + j*(600)
+236 + j*(-177)
+-128 + j*(-152)
+-214 + j*(-280)
+251 + j*(352)
+-202 + j*(17)
+74 + j*(424)
+-280 + j*(276)
+-160 + j*(293)
+337 + j*(310)
+-448 + j*(-120)
+-243 + j*(-566)
+-279 + j*(-2)
+298 + j*(483)
+-263 + j*(459)
+-253 + j*(-158)
+-312 + j*(-397)
+-192 + j*(228)
+-249 + j*(-423)
+51 + j*(-308)
+526 + j*(-261)
+74 + j*(446)
+-124 + j*(-276)
+-95 + j*(444)
+16 + j*(163)
+-301 + j*(110)
+457 + j*(-303)
+-216 + j*(-169)
+429 + j*(-260)
+-603 + j*(436)
+57 + j*(324)
+-115 + j*(-294)
+313 + j*(295)
+470 + j*(-225)
+518 + j*(129)
+-504 + j*(-204)
+-540 + j*(-33)
+-177 + j*(-329)
+253 + j*(-247)
+-467 + j*(-372)
+185 + j*(-238)
+267 + j*(186)
+-384 + j*(141)
+250 + j*(-291)
+-3 + j*(-309)
+-214 + j*(-30)
+118 + j*(635)
+-256 + j*(327)
+312 + j*(-137)
+197 + j*(-70)
+18 + j*(-503)
+317 + j*(367)
+181 + j*(-424)
+-344 + j*(-240)
+57 + j*(-547)
+-364 + j*(13)
+-27 + j*(-107)
+-59 + j*(80)
+369 + j*(51)
+-217 + j*(-81)
+-407 + j*(509)
+291 + j*(182)
+-293 + j*(334)
+28 + j*(-156)
+-438 + j*(400)
+343 + j*(-96)
+477 + j*(371)
+-287 + j*(-291)
+482 + j*(328)
+-282 + j*(-414)
+61 + j*(179)
+-224 + j*(-69)
+-153 + j*(331)
+188 + j*(-46)
+41 + j*(-78)
+-571 + j*(556)
+-293 + j*(91)
+-260 + j*(90)
+239 + j*(-81)
+-174 + j*(-201)
+262 + j*(189)
+-197 + j*(-334)
+368 + j*(311)
+-501 + j*(88)
+-48 + j*(-481)
+325 + j*(389)
+-238 + j*(86)
+-356 + j*(-254)
+-293 + j*(-133)
+287 + j*(380)
+527 + j*(33)
+497 + j*(-288)
+432 + j*(-242)
+409 + j*(-207)
+28 + j*(-156)
+-240 + j*(181)
+-320 + j*(-711)
+-104 + j*(-373)
+341 + j*(-32)
+-406 + j*(-363)
+155 + j*(57)
+-262 + j*(190)
+210 + j*(742)
+65 + j*(-220)
+-291 + j*(-206)
+-197 + j*(352)
+-100 + j*(-406)
+356 + j*(320)
+-412 + j*(217)
+-3 + j*(602)
+382 + j*(-284)
+-122 + j*(93)
+-682 + j*(-298)
+276 + j*(62)
+-551 + j*(75)
+607 + j*(474)
+26 + j*(235)
+252 + j*(-453)
+-262 + j*(-438)
+-40 + j*(-168)
+-53 + j*(71)
+192 + j*(431)
+435 + j*(-244)
+380 + j*(358)
+-403 + j*(-416)
+-105 + j*(-338)
+58 + j*(-154)
+-199 + j*(-422)
+-193 + j*(391)
+281 + j*(-103)
+298 + j*(-147)
+426 + j*(-414)
+398 + j*(100)
+165 + j*(140)
+126 + j*(-89)
+122 + j*(300)
+-155 + j*(-434)
+-440 + j*(69)
+391 + j*(-152)
+-307 + j*(-64)
+285 + j*(-441)
+-154 + j*(-491)
+-419 + j*(-529)
+-31 + j*(-330)
+60 + j*(81)
+-173 + j*(132)
+488 + j*(338)
+-42 + j*(-450)
+-159 + j*(-192)
+-74 + j*(-560)
+235 + j*(-305)
+-415 + j*(-184)
+-165 + j*(-223)
+158 + j*(383)
+27 + j*(-197)
+-255 + j*(-47)
+438 + j*(315)
+138 + j*(-294)
+-40 + j*(-127)
+337 + j*(-310)
+257 + j*(239)
+25 + j*(385)
+-507 + j*(55)
+-337 + j*(185)
+355 + j*(501)
+-223 + j*(258)
+161 + j*(-298)
+-408 + j*(-71)
+-342 + j*(351)
+256 + j*(-382)
+-455 + j*(194)
+-324 + j*(457)
+-124 + j*(509)
+-184 + j*(209)
+51 + j*(-226)
+-337 + j*(-282)
+-38 + j*(-43)
+95 + j*(110)
+163 + j*(-158)
+-318 + j*(-346)
+160 + j*(321)
+-257 + j*(310)
+305 + j*(-486)
+258 + j*(214)
+-281 + j*(-214)
+293 + j*(9)
+-225 + j*(-240)
+207 + j*(-445)
+-308 + j*(185)
+-59 + j*(-70)
+-493 + j*(-380)
+655 + j*(-197)
+-268 + j*(-100)
+315 + j*(-30)
+382 + j*(-180)
+45 + j*(-370)
+396 + j*(391)
+-488 + j*(-400)
+-333 + j*(-64)
+-162 + j*(456)
+-315 + j*(-665)
+229 + j*(205)
+-97 + j*(441)
+278 + j*(227)
+-42 + j*(-278)
+-182 + j*(413)
+286 + j*(69)
+-286 + j*(530)
+86 + j*(326)
+196 + j*(257)
+-218 + j*(161)
+444 + j*(-151)
+-243 + j*(11)
+-325 + j*(329)
+648 + j*(55)
+546 + j*(632)
+-120 + j*(370)
+127 + j*(-274)
+341 + j*(356)
+605 + j*(-571)
+129 + j*(441)
+-491 + j*(-367)
+427 + j*(-232)
+-573 + j*(33)
+99 + j*(240)
+-359 + j*(-138)
+229 + j*(165)
+309 + j*(119)
+242 + j*(284)
+-192 + j*(27)
+621 + j*(-439)
+-198 + j*(181)
+-245 + j*(275)
+-130 + j*(-330)
+286 + j*(187)
+295 + j*(-190)
+665 + j*(218)
+266 + j*(-188)
+-49 + j*(-291)
+-264 + j*(-29)
+156 + j*(-284)
+106 + j*(200)
+342 + j*(250)
+456 + j*(8)
+-72 + j*(-268)
+132 + j*(385)
+190 + j*(-104)
+125 + j*(-565)
+233 + j*(103)
+260 + j*(9)
+6 + j*(-413)
+358 + j*(-296)
+-222 + j*(-221)
+-90 + j*(335)
+361 + j*(-165)
+440 + j*(344)
+-477 + j*(81)
+-384 + j*(-272)
+366 + j*(144)
+482 + j*(268)
+368 + j*(-361)
+270 + j*(-76)
+238 + j*(-549)
+-412 + j*(-489)
+-165 + j*(28)
+-234 + j*(303)
+53 + j*(263)
+-335 + j*(463)
+435 + j*(-43)
+402 + j*(-403)
+573 + j*(438)
+-498 + j*(-515)
+-197 + j*(243)
+456 + j*(28)
+-546 + j*(409)
+-193 + j*(-208)
+66 + j*(417)
+-84 + j*(330)
+-218 + j*(-150)
+378 + j*(202)
+177 + j*(-46)
+472 + j*(106)
+-259 + j*(-188)
+291 + j*(-82)
+251 + j*(423)
+187 + j*(-513)
+385 + j*(206)
+-281 + j*(-349)
+105 + j*(202)
+-230 + j*(448)
+-470 + j*(-348)
+13 + j*(-522)
+-318 + j*(-141)
+-642 + j*(-298)
+82 + j*(-451)
+-448 + j*(419)
+349 + j*(435)
+-437 + j*(618)
+-74 + j*(-261)
+207 + j*(-99)
+-386 + j*(292)
+290 + j*(-264)
+431 + j*(-342)
+346 + j*(-221)
+240 + j*(151)
+-209 + j*(-525)
+-188 + j*(-429)
+-590 + j*(-514)
+409 + j*(-223)
+-315 + j*(285)
+-521 + j*(-451)
+202 + j*(458)
+-221 + j*(-139)
+236 + j*(378)
+-672 + j*(421)
+1 + j*(315)
+-83 + j*(-494)
+-306 + j*(396)
+185 + j*(-515)
+-528 + j*(120)
+-441 + j*(96)
+-17 + j*(-30)
+213 + j*(271)
+631 + j*(-5)
+364 + j*(26)
+289 + j*(-235)
+-78 + j*(269)
+-317 + j*(-59)
+-365 + j*(-119)
+-433 + j*(439)
+524 + j*(208)
+-506 + j*(479)
+144 + j*(-102)
+218 + j*(486)
+166 + j*(308)
+340 + j*(-202)
+195 + j*(376)
+-243 + j*(18)
+666 + j*(-218)
+-438 + j*(-264)
+-342 + j*(328)
+-4 + j*(-325)
+266 + j*(344)
+-282 + j*(80)
+-177 + j*(581)
+-470 + j*(-49)
+173 + j*(-510)
+-232 + j*(204)
+192 + j*(-291)
+-95 + j*(-459)
+-422 + j*(420)
+-381 + j*(442)
+-5 + j*(-301)
+23 + j*(-64)
+-246 + j*(-320)
+86 + j*(22)
+227 + j*(153)
+523 + j*(-78)
+-17 + j*(234)
+152 + j*(221)
+361 + j*(127)
+477 + j*(-136)
+-260 + j*(-223)
+-452 + j*(-424)
+-38 + j*(316)
+7 + j*(41)
+314 + j*(-93)
+-199 + j*(-49)
+373 + j*(27)
+138 + j*(-133)
+670 + j*(440)
+279 + j*(-281)
+651 + j*(-272)
+-327 + j*(352)
+-197 + j*(-193)
+50 + j*(-195)
+-464 + j*(169)
+91 + j*(299)
+-268 + j*(-354)
+-175 + j*(243)
+209 + j*(-299)
+246 + j*(-74)
+-211 + j*(32)
+-590 + j*(-237)
+-349 + j*(-13)
+493 + j*(91)
+163 + j*(-473)
+-229 + j*(-415)
+341 + j*(-74)
+-523 + j*(-462)
+233 + j*(354)
+476 + j*(-384)
+-311 + j*(429)
+-110 + j*(129)
+316 + j*(-384)
+-472 + j*(187)
+276 + j*(-151)
+-118 + j*(-93)
+290 + j*(212)
+427 + j*(168)
+-263 + j*(495)
+173 + j*(170)
+-376 + j*(113)
+-264 + j*(252)
+-285 + j*(-351)
+477 + j*(-281)
+-305 + j*(39)
+-271 + j*(75)
+-76 + j*(113)
+-59 + j*(45)
+64 + j*(-188)
+131 + j*(244)
+23 + j*(242)
+6 + j*(-276)
+34 + j*(-119)
+-132 + j*(123)
+158 + j*(-139)
+-154 + j*(-136)
+-228 + j*(-295)
+-5 + j*(-81)
+-198 + j*(-13)
+-163 + j*(-329)
+123 + j*(-270)
+-20 + j*(-197)
+-28 + j*(-51)
+145 + j*(-162)
+157 + j*(24)
+-126 + j*(54)
+371 + j*(-254)
+-260 + j*(-204)
+-182 + j*(-146)
+156 + j*(264)
+168 + j*(-101)
+11 + j*(-81)
+-284 + j*(-288)
+-79 + j*(-81)
+76 + j*(137)
+-160 + j*(-287)
+165 + j*(-95)
+83 + j*(7)
+83 + j*(-138)
+-11 + j*(134)
+-58 + j*(281)
+11 + j*(-214)
+-231 + j*(-128)
+124 + j*(-11)
+-13 + j*(-123)
+-122 + j*(154)
+286 + j*(-387)
+-153 + j*(59)
+-168 + j*(-157)
+-93 + j*(204)
+143 + j*(237)
+164 + j*(47)
+-13 + j*(170)
+-236 + j*(-96)
+57 + j*(395)
+71 + j*(-207)
+-18 + j*(-145)
+-165 + j*(-25)
+-185 + j*(-54)
+144 + j*(6)
+-3 + j*(202)
+-39 + j*(137)
+75 + j*(64)
+65 + j*(-144)
+57 + j*(-88)
+130 + j*(-175)
+86 + j*(268)
+-220 + j*(99)
+-303 + j*(-27)
+-86 + j*(-230)
+0 + j*(-168)
+-86 + j*(-19)
+-112 + j*(-159)
+-46 + j*(-31)
+-248 + j*(334)
+47 + j*(23)
+109 + j*(130)
+-86 + j*(-11)
+48 + j*(-79)
+-115 + j*(35)
+-107 + j*(139)
+-181 + j*(244)
+33 + j*(-192)
+72 + j*(235)
+13 + j*(-37)
+-188 + j*(-218)
+-122 + j*(139)
+83 + j*(211)
+11 + j*(-64)
+-1 + j*(80)
+6 + j*(296)
+-327 + j*(32)
+51 + j*(-163)
+5 + j*(-147)
+89 + j*(-125)
+72 + j*(-122)
+163 + j*(119)
+45 + j*(-27)
+-14 + j*(194)
+67 + j*(35)
+-115 + j*(138)
+-69 + j*(352)
+-124 + j*(264)
+358 + j*(-136)
+16 + j*(-250)
+-62 + j*(148)
+-21 + j*(-112)
+100 + j*(-281)
+-192 + j*(256)
+-50 + j*(113)
+83 + j*(-140)
+-53 + j*(-184)
+26 + j*(226)
+-146 + j*(-12)
+59 + j*(323)
+92 + j*(-313)
+74 + j*(182)
+-87 + j*(371)
+-54 + j*(388)
+102 + j*(-137)
+-317 + j*(235)
+113 + j*(-13)
+-125 + j*(-184)
+-296 + j*(-134)
+-24 + j*(-75)
+211 + j*(-616)
+-286 + j*(-27)
+153 + j*(129)
+-287 + j*(221)
+139 + j*(-23)
+211 + j*(-58)
+34 + j*(-3)
+68 + j*(58)
+-232 + j*(52)
+-57 + j*(-89)
+30 + j*(-63)
+412 + j*(81)
+44 + j*(65)
+-155 + j*(248)
+-379 + j*(57)
+226 + j*(-62)
+40 + j*(-147)
+50 + j*(-100)
+223 + j*(-29)
+-38 + j*(-45)
+-107 + j*(103)
+-33 + j*(-237)
+-35 + j*(5)
+49 + j*(-75)
+230 + j*(-153)
+36 + j*(-48)
+-76 + j*(64)
+17 + j*(-260)
+-31 + j*(134)
+-52 + j*(-53)
+-49 + j*(-129)
+-400 + j*(531)
+103 + j*(29)
+-274 + j*(317)
+-204 + j*(297)
+33 + j*(2)
+-34 + j*(27)
+-18 + j*(-21)
+118 + j*(49)
+-165 + j*(-112)
+20 + j*(48)
+112 + j*(-151)
+-61 + j*(-64)
+-165 + j*(-1)
+-86 + j*(205)
+-132 + j*(-49)
+227 + j*(115)
+-112 + j*(-151)
+-229 + j*(208)
+-18 + j*(288)
+-11 + j*(-17)
+-87 + j*(-221)
+59 + j*(-103)
+178 + j*(34)
+-68 + j*(78)
+-331 + j*(236)
+-50 + j*(202)
+-406 + j*(300)
+168 + j*(360)
+66 + j*(135)
+210 + j*(-129)
+261 + j*(-44)
+-182 + j*(100)
+-231 + j*(-123)
+-11 + j*(49)
+-225 + j*(-245)
+299 + j*(-52)
+57 + j*(-13)
+-121 + j*(342)
+-224 + j*(191)
+13 + j*(-150)
+-9 + j*(-26)
+146 + j*(-146)
+192 + j*(-49)
+-19 + j*(-104)
+92 + j*(-254)
+214 + j*(-313)
+-219 + j*(19)
+-65 + j*(-359)
+-255 + j*(-38)
+65 + j*(177)
+-96 + j*(-128)
+-78 + j*(6)
+16 + j*(-17)
+-260 + j*(-66)
+-95 + j*(-110)
+193 + j*(87)
+77 + j*(-107)
+-19 + j*(-52)
+-70 + j*(-187)
+547 + j*(262)
+-59 + j*(-39)
+126 + j*(46)
+-47 + j*(-180)
+18 + j*(-137)
+18 + j*(-50)
+110 + j*(354)
+273 + j*(18)
+-44 + j*(-349)
+97 + j*(-141)
+112 + j*(173)
+42 + j*(204)
+-33 + j*(-132)
+157 + j*(-131)
+62 + j*(-146)
+84 + j*(-30)
+-169 + j*(163)
+90 + j*(-85)
+-211 + j*(215)
+-147 + j*(-100)
+-325 + j*(17)
+11 + j*(132)
+-309 + j*(99)
+-291 + j*(-136)
+183 + j*(32)
+25 + j*(-317)
+-243 + j*(-312)
+115 + j*(129)
+-78 + j*(79)
+249 + j*(-482)
+160 + j*(-260)
+-12 + j*(130)
+-395 + j*(1)
+330 + j*(-161)
+21 + j*(9)
+-133 + j*(-103)
+361 + j*(-362)
+222 + j*(204)
+-265 + j*(88)
+-35 + j*(197)
+-187 + j*(123)
+-22 + j*(101)
+-37 + j*(12)
+-42 + j*(-145)
+112 + j*(-66)
+-208 + j*(-199)
+-221 + j*(181)
+2 + j*(-8)
+-106 + j*(-108)
+238 + j*(28)
+113 + j*(-265)
+-43 + j*(-2)
+-194 + j*(151)
+485 + j*(0)
+-87 + j*(-110)
+-52 + j*(-28)
+-11 + j*(144)
+63 + j*(-206)
+75 + j*(292)
+-385 + j*(157)
+-62 + j*(223)
+-265 + j*(-31)
+153 + j*(-35)
+-298 + j*(-184)
+78 + j*(26)
+-50 + j*(192)
+42 + j*(150)
+27 + j*(-25)
+310 + j*(175)
+48 + j*(-118)
+100 + j*(55)
+120 + j*(175)
+327 + j*(-191)
+65 + j*(-161)
+-13 + j*(94)
+60 + j*(62)
+-109 + j*(-181)
+-36 + j*(-14)
+-128 + j*(-132)
+-124 + j*(-5)
+88 + j*(-116)
+233 + j*(-172)
+124 + j*(-318)
+93 + j*(-222)
+-46 + j*(-119)
+25 + j*(115)
+-62 + j*(-232)
+182 + j*(-144)
+115 + j*(-137)
+209 + j*(-123)
+-194 + j*(156)
+141 + j*(-25)
+54 + j*(-33)
+228 + j*(151)
+161 + j*(-208)
+-235 + j*(-128)
+77 + j*(433)
+-103 + j*(186)
+-173 + j*(105)
+-28 + j*(-249)
+199 + j*(255)
+-308 + j*(-40)
+72 + j*(-93)
+-238 + j*(-285)
+549 + j*(58)
+-267 + j*(-106)
+-11 + j*(-100)
+95 + j*(41)
+112 + j*(185)
+17 + j*(-157)
+-20 + j*(163)
+-278 + j*(8)
+-92 + j*(-59)
+-197 + j*(37)
+-441 + j*(-72)
+-11 + j*(68)
+4 + j*(-237)
+166 + j*(-2)
+15 + j*(-119)
+-309 + j*(-29)
+-144 + j*(-14)
+-230 + j*(-114)
+-5 + j*(151)
+-181 + j*(-371)
+18 + j*(-228)
+163 + j*(-178)
+13 + j*(248)
+-243 + j*(-315)
+-116 + j*(101)
+146 + j*(206)
+88 + j*(60)
+111 + j*(-144)
+0 + j*(281)
+10 + j*(-163)
+-59 + j*(127)
+517 + j*(11)
+73 + j*(35)
+172 + j*(12)
+47 + j*(4)
+-83 + j*(-124)
+53 + j*(50)
+-148 + j*(-124)
+-141 + j*(238)
+-54 + j*(41)
+-139 + j*(-158)
+-196 + j*(374)
+-301 + j*(265)
+-39 + j*(2)
+97 + j*(-139)
+-106 + j*(133)
+-305 + j*(62)
+114 + j*(90)
+-55 + j*(-114)
+-122 + j*(-102)
+8 + j*(-168)
+-252 + j*(-70)
+-70 + j*(42)
+-141 + j*(-4)
+-69 + j*(226)
+56 + j*(244)
+49 + j*(2)
+-57 + j*(57)
+-194 + j*(122)
+-329 + j*(-75)
+167 + j*(-91)
+-197 + j*(279)
+117 + j*(-48)
+30 + j*(-26)
+-132 + j*(159)
+332 + j*(76)
+36 + j*(230)
+-37 + j*(-238)
+-40 + j*(-260)
+151 + j*(91)
+-77 + j*(60)
+98 + j*(27)
+251 + j*(-101)
+-18 + j*(120)
+-93 + j*(-235)
+-76 + j*(8)
+404 + j*(191)
+-8 + j*(-64)
+30 + j*(58)
+-175 + j*(281)
+-102 + j*(-7)
+-254 + j*(144)
+-15 + j*(13)
+393 + j*(-165)
+-185 + j*(-293)
+-86 + j*(59)
+-87 + j*(-224)
+-60 + j*(-87)
+177 + j*(-240)
+455 + j*(64)
+78 + j*(-25)
+41 + j*(-100)
+-71 + j*(-47)
+8 + j*(138)
+18 + j*(-21)
+-141 + j*(195)
+127 + j*(185)
+-158 + j*(-86)
+-62 + j*(5)
+206 + j*(103)
+156 + j*(-23)
+46 + j*(0)
+83 + j*(119)
+-12 + j*(-33)
+-260 + j*(-20)
+-59 + j*(-342)
+159 + j*(52)
+112 + j*(228)
+137 + j*(212)
+-153 + j*(-200)
+-134 + j*(-71)
+262 + j*(312)
+-369 + j*(-21)
+129 + j*(-147)
+-73 + j*(-161)
+-117 + j*(110)
+110 + j*(113)
+-8 + j*(49)
+52 + j*(296)
+-158 + j*(-57)
+-72 + j*(94)
+-134 + j*(-95)
+41 + j*(-303)
+177 + j*(-135)
+-338 + j*(182)
+-182 + j*(33)
+-183 + j*(97)
+144 + j*(-33)
+-47 + j*(-262)
+139 + j*(95)
+-286 + j*(88)
+318 + j*(-64)
+119 + j*(252)
+-46 + j*(-5)
+372 + j*(201)
+-144 + j*(103)
+-52 + j*(165)
+59 + j*(214)
+232 + j*(-100)
+-237 + j*(85)
+-396 + j*(-92)
+-230 + j*(126)
+-81 + j*(-54)
+205 + j*(71)
+-80 + j*(-67)
+322 + j*(-10)
+-101 + j*(-81)
+-22 + j*(110)
+280 + j*(-179)
+26 + j*(-250)
+49 + j*(143)
+-253 + j*(16)
+-140 + j*(70)
+238 + j*(177)
+165 + j*(27)
+-12 + j*(233)
+281 + j*(147)
+49 + j*(-413)
+190 + j*(-138)
+-115 + j*(280)
+184 + j*(-147)
+174 + j*(4)
+-112 + j*(56)
+-163 + j*(-38)
+-260 + j*(201)
+257 + j*(-362)
+344 + j*(141)
+-185 + j*(-252)
+257 + j*(135)
+-119 + j*(-91)
+-13 + j*(-37)
+133 + j*(21)
+72 + j*(58)
+71 + j*(368)
+276 + j*(279)
+-87 + j*(293)
+46 + j*(-38)
+-127 + j*(-140)
+-55 + j*(40)
+180 + j*(-16)
+-54 + j*(267)
+59 + j*(213)
+24 + j*(-54)
+-160 + j*(-71)
+-115 + j*(-206)
+0 + j*(-27)
+30 + j*(63)
+175 + j*(48)
+250 + j*(107)
+141 + j*(-119)
+-46 + j*(-228)
+141 + j*(55)
+-11 + j*(-161)
+71 + j*(-49)
+132 + j*(-453)
+-171 + j*(134)
+-240 + j*(-64)
+-238 + j*(-89)
+215 + j*(143)
+95 + j*(-177)
+-115 + j*(12)
+-98 + j*(-80)
+168 + j*(-66)
+83 + j*(33)
+-310 + j*(256)
+108 + j*(-310)
+206 + j*(83)
+103 + j*(61)
+-42 + j*(-98)
+117 + j*(-24)
+12 + j*(66)
+-107 + j*(-325)
+-97 + j*(-29)
+279 + j*(-264)
+-112 + j*(-161)
+-330 + j*(88)
+-315 + j*(-161)
+-74 + j*(-153)
+102 + j*(235)
+-49 + j*(358)
+298 + j*(-292)
+170 + j*(292)
+139 + j*(254)
+-199 + j*(-175)
+238 + j*(181)
+-100 + j*(77)
+-125 + j*(382)
+69 + j*(40)
+-155 + j*(-226)
+-220 + j*(-99)
+-39 + j*(-467)
+-185 + j*(-52)
+-100 + j*(-15)
+-55 + j*(84)
+80 + j*(278)
+52 + j*(-245)
+-37 + j*(-181)
+194 + j*(358)
+180 + j*(25)
+215 + j*(-21)
+-254 + j*(128)
+208 + j*(43)
+148 + j*(-43)
+80 + j*(168)
+168 + j*(-79)
+-107 + j*(-41)
+98 + j*(250)
+-51 + j*(-281)
+81 + j*(-32)
+-45 + j*(-207)
+95 + j*(31)
+29 + j*(60)
+-104 + j*(-112)
+16 + j*(175)
+64 + j*(-142)
+-16 + j*(-264)
+90 + j*(-200)
+106 + j*(-193)
+-76 + j*(-26)
+-81 + j*(226)
+4 + j*(-62)
+-105 + j*(-92)
+-64 + j*(-13)
+-118 + j*(-20)
+-76 + j*(-79)
+153 + j*(52)
+-29 + j*(216)
+-237 + j*(305)
+-57 + j*(43)
+251 + j*(-64)
+65 + j*(-22)
+-66 + j*(-105)
+-46 + j*(30)
+-124 + j*(-200)
+186 + j*(108)
+-303 + j*(98)
+127 + j*(-165)
+35 + j*(-56)
+-58 + j*(30)
+150 + j*(155)
+-151 + j*(-247)
+-194 + j*(-41)
+-150 + j*(6)
+-230 + j*(92)
+-91 + j*(37)
+219 + j*(-158)
+-185 + j*(44)
+97 + j*(-40)
+-209 + j*(43)
+-160 + j*(44)
+111 + j*(-115)
+-206 + j*(2)
+-380 + j*(-145)
+-291 + j*(185)
+-16 + j*(211)
+65 + j*(73)
+-13 + j*(137)
+14 + j*(68)
+19 + j*(24)
+-10 + j*(235)
+21 + j*(-56)
+36 + j*(-182)
+-54 + j*(25)
+209 + j*(-83)
+-146 + j*(305)
+138 + j*(-47)
+-152 + j*(-73)
+218 + j*(23)
+56 + j*(-35)
+267 + j*(17)
+214 + j*(-84)
+-240 + j*(309)
+98 + j*(45)
+211 + j*(-54)
+133 + j*(-213)
+1 + j*(87)
+-165 + j*(78)
+-58 + j*(-218)
+10 + j*(-103)
+-237 + j*(82)
+-180 + j*(17)
+-169 + j*(-69)
+-100 + j*(-223)
+339 + j*(34)
+288 + j*(-133)
+-148 + j*(-80)
+124 + j*(-6)
+278 + j*(115)
+88 + j*(39)
+-99 + j*(-206)
+54 + j*(198)
+-30 + j*(92)
+-75 + j*(-107)
+237 + j*(185)
+-15 + j*(-160)
+141 + j*(182)
+129 + j*(169)
+72 + j*(9)
+-214 + j*(236)
+133 + j*(21)
+-25 + j*(74)
+-122 + j*(-70)
+-260 + j*(163)
+-24 + j*(-200)
+-235 + j*(45)
+185 + j*(207)
+-279 + j*(54)
+-241 + j*(-18)
+-153 + j*(-87)
+-255 + j*(40)
+-113 + j*(-238)
+369 + j*(24)
+218 + j*(57)
+205 + j*(637)
+19 + j*(61)
+66 + j*(25)
+-217 + j*(-431)
+62 + j*(208)
+269 + j*(-142)
+16 + j*(122)
+56 + j*(-24)
+-279 + j*(-170)
+-141 + j*(233)
+339 + j*(-234)
+-99 + j*(-257)
+-145 + j*(263)
+57 + j*(-175)
+36 + j*(250)
+-94 + j*(-114)
+-196 + j*(13)
+57 + j*(242)
+18 + j*(216)
+-37 + j*(291)
+264 + j*(-162)
+-219 + j*(178)
+349 + j*(211)
+204 + j*(-43)
+21 + j*(93)
+21 + j*(-221)
+41 + j*(-16)
+-98 + j*(-230)
+-264 + j*(-47)
+126 + j*(-108)
+268 + j*(-69)
+41 + j*(65)
+76 + j*(301)
+-84 + j*(-194)
+-156 + j*(-68)
+-6 + j*(-103)
+-9 + j*(-292)
+-274 + j*(-38)
+-128 + j*(-166)
+57 + j*(127)
+-155 + j*(-173)
+-35 + j*(-301)
+-120 + j*(390)
+-71 + j*(-32)
+-16 + j*(-83)
+-28 + j*(-132)
+146 + j*(-89)
+-233 + j*(134)
+-136 + j*(-153)
+-62 + j*(-111)
+0 + j*(-173)
+240 + j*(314)
+-331 + j*(-113)
+215 + j*(99)
+-129 + j*(92)
+81 + j*(183)
+103 + j*(-28)
+-305 + j*(25)
+64 + j*(165)
+31 + j*(-141)
+503 + j*(144)
+-18 + j*(-52)
+-139 + j*(9)
+-247 + j*(102)
+-14 + j*(-35)
+139 + j*(-177)
+-218 + j*(1)
+-123 + j*(-48)
+-13 + j*(152)
+164 + j*(342)
+-188 + j*(-28)
+102 + j*(-18)
+-275 + j*(-183)
+-140 + j*(105)
+-89 + j*(-166)
+150 + j*(-127)
+153 + j*(202)
+-160 + j*(98)
+-30 + j*(-16)
+136 + j*(36)
+164 + j*(165)
+-61 + j*(-130)
+232 + j*(-411)
+-65 + j*(129)
+184 + j*(-213)
+-237 + j*(134)
+-322 + j*(240)
+-18 + j*(45)
+52 + j*(-71)
+202 + j*(-8)
+-103 + j*(-185)
+-91 + j*(56)
+-245 + j*(-260)
+-168 + j*(260)
+-35 + j*(30)
+57 + j*(-226)
+57 + j*(49)
+199 + j*(-151)
+43 + j*(28)
+-358 + j*(64)
+-94 + j*(-109)
+270 + j*(-82)
+132 + j*(7)
+206 + j*(10)
+506 + j*(-12)
+-49 + j*(-83)
+-315 + j*(-318)
+-15 + j*(277)
+-157 + j*(-344)
+379 + j*(221)
+377 + j*(59)
+308 + j*(-408)
+-211 + j*(228)
+16 + j*(-142)
+-260 + j*(-234)
+-285 + j*(-187)
+272 + j*(170)
+-99 + j*(209)
+-125 + j*(86)
+-326 + j*(-369)
+-164 + j*(-24)
+-109 + j*(388)
+-103 + j*(-238)
+-169 + j*(-40)
+10 + j*(-123)
+190 + j*(-354)
+-339 + j*(141)
+176 + j*(-11)
+-105 + j*(4)
+-83 + j*(-327)
+-14 + j*(-84)
+86 + j*(65)
+206 + j*(100)
+279 + j*(-349)
+-328 + j*(191)
+21 + j*(-1)
+77 + j*(174)
+49 + j*(-45)
+32 + j*(-206)
+-141 + j*(75)
+-64 + j*(33)
+174 + j*(88)
+328 + j*(-105)
+222 + j*(400)
+-209 + j*(493)
+-165 + j*(-93)
+-6 + j*(126)
+30 + j*(-97)
+-117 + j*(-136)
+-81 + j*(-33)
+12 + j*(2)
+261 + j*(93)
+11 + j*(-62)
+10 + j*(98)
+-125 + j*(-16)
+141 + j*(226)
+182 + j*(-117)
+94 + j*(283)
+-136 + j*(-20)
+455 + j*(-54)
+-87 + j*(75)
+-151 + j*(226)
+-253 + j*(54)
+-8 + j*(-204)
+-62 + j*(-136)
+-182 + j*(148)
+-16 + j*(74)
+-17 + j*(-224)
+-67 + j*(-27)
+138 + j*(30)
+81 + j*(71)
+-7 + j*(-83)
+127 + j*(98)
+22 + j*(-260)
+312 + j*(-258)
+-189 + j*(31)
+159 + j*(158)
+240 + j*(-91)
+-32 + j*(-305)
+78 + j*(26)
+48 + j*(242)
+-66 + j*(117)
+176 + j*(-287)
+-78 + j*(0)
+300 + j*(119)
+128 + j*(-288)
+22 + j*(161)
+373 + j*(192)
+272 + j*(70)
+-50 + j*(84)
+3 + j*(54)
+26 + j*(86)
+49 + j*(182)
+46 + j*(-55)
+-124 + j*(188)
+-196 + j*(277)
+37 + j*(26)
+-77 + j*(-10)
+130 + j*(-244)
+-35 + j*(421)
+9 + j*(219)
+177 + j*(49)
+48 + j*(-383)
+-43 + j*(141)
+-102 + j*(76)
+132 + j*(47)
+-154 + j*(56)
+-26 + j*(-116)
+-93 + j*(30)
+-99 + j*(-182)
+-301 + j*(-375)
+47 + j*(-53)
+196 + j*(-124)
+-271 + j*(-64)
+-61 + j*(-177)
+-325 + j*(-323)
+8 + j*(147)
+32 + j*(67)
+-158 + j*(-103)
+97 + j*(-142)
+193 + j*(-113)
+168 + j*(-134)
+12 + j*(122)
+-45 + j*(172)
+153 + j*(59)
+271 + j*(-115)
+296 + j*(-90)
+-117 + j*(-60)
+-380 + j*(-109)
+-173 + j*(-264)
+25 + j*(-51)
+484 + j*(32)
+-175 + j*(52)
+-358 + j*(212)
+81 + j*(-68)
+10 + j*(128)
+-103 + j*(-35)
+44 + j*(351)
+202 + j*(36)
+-97 + j*(279)
+87 + j*(103)
+-70 + j*(27)
+133 + j*(235)
+109 + j*(199)
+146 + j*(88)
+-90 + j*(-188)
+-433 + j*(-84)
+-101 + j*(-179)
+202 + j*(-115)
+209 + j*(-90)
+28 + j*(103)
+-146 + j*(168)
+128 + j*(134)
+273 + j*(158)
+-272 + j*(169)
+-179 + j*(-197)
+-387 + j*(-228)
+-86 + j*(-306)
+161 + j*(-260)
+-61 + j*(-40)
+-128 + j*(-26)
+-1 + j*(188)
+133 + j*(-36)
+-50 + j*(41)
+-20 + j*(-163)
+163 + j*(68)
+134 + j*(183)
+-278 + j*(-277)
+168 + j*(294)
+-473 + j*(-18)
+25 + j*(364)
+61 + j*(-151)
+83 + j*(59)
+45 + j*(-225)
+76 + j*(105)
+162 + j*(-346)
+101 + j*(94)
+-37 + j*(-292)
+-23 + j*(-143)
+170 + j*(49)
+-14 + j*(-16)
+22 + j*(71)
+-111 + j*(-79)
+188 + j*(-58)
+-122 + j*(-239)
+252 + j*(161)
+-45 + j*(-11)
+25 + j*(-204)
+279 + j*(-64)
+-137 + j*(-185)
+-114 + j*(23)
+133 + j*(185)
+188 + j*(212)
+-41 + j*(51)
+141 + j*(-110)
+-96 + j*(-378)
+58 + j*(-146)
+152 + j*(-47)
+35 + j*(30)
+144 + j*(-59)
+-202 + j*(64)
+-265 + j*(-29)
+69 + j*(-327)
+-15 + j*(54)
+13 + j*(-119)
+-33 + j*(273)
+-203 + j*(81)
+-108 + j*(275)
+-109 + j*(119)
+-165 + j*(-93)
+-108 + j*(309)
+-100 + j*(-303)
+269 + j*(-175)
+-293 + j*(95)
+-129 + j*(183)
+187 + j*(-76)
+317 + j*(-244)
+131 + j*(30)
+-293 + j*(-280)
+-96 + j*(170)
+11 + j*(219)
+-88 + j*(-159)
+-386 + j*(-183)
+-385 + j*(141)
+13 + j*(252)
+-184 + j*(-351)
+473 + j*(213)
+6 + j*(-129)
+13 + j*(216)
+66 + j*(1)
+257 + j*(-221)
+332 + j*(164)
+-60 + j*(74)
+-113 + j*(-6)
+-59 + j*(264)
+-11 + j*(37)
+-74 + j*(263)
+80 + j*(-193)
+-12 + j*(-102)
+74 + j*(-3)
+-25 + j*(-152)
+358 + j*(121)
+134 + j*(69)
+-374 + j*(77)
+323 + j*(-186)
+47 + j*(72)
+-14 + j*(-469)
+-23 + j*(-97)
+-92 + j*(264)
+100 + j*(-27)
+158 + j*(-268)
+32 + j*(55)
+291 + j*(-216)
+-260 + j*(194)
+97 + j*(159)
+-21 + j*(-142)
+-152 + j*(-19)
+-64 + j*(358)
+162 + j*(18)
+-225 + j*(90)
+-127 + j*(234)
+64 + j*(43)
+141 + j*(45)
+-250 + j*(9)
+52 + j*(-197)
+202 + j*(114)
+-103 + j*(90)
+306 + j*(-103)
+385 + j*(21)
+-66 + j*(-288)
+-187 + j*(-74)
+-9 + j*(-46)
+420 + j*(146)
+-13 + j*(166)
+-168 + j*(81)
+-267 + j*(-56)
+98 + j*(-157)
+-362 + j*(155)
+339 + j*(76)
+190 + j*(25)
+-40 + j*(324)
+-40 + j*(135)
+-176 + j*(-10)
+-62 + j*(-112)
+42 + j*(201)
+-52 + j*(-45)
+290 + j*(-97)
+190 + j*(98)
+134 + j*(-165)
+-162 + j*(-31)
+-290 + j*(92)
+-80 + j*(-121)
+-72 + j*(217)
+-151 + j*(-44)
+42 + j*(140)
+185 + j*(-230)
+144 + j*(9)
+188 + j*(107)
+-9 + j*(174)
+32 + j*(-89)
+387 + j*(107)
+185 + j*(232)
+-91 + j*(40)
+-83 + j*(137)
+114 + j*(14)
+180 + j*(12)
+-35 + j*(318)
+-139 + j*(-17)
+-3 + j*(-109)
+163 + j*(-286)
+-211 + j*(-83)
+29 + j*(21)
+401 + j*(-445)
+-81 + j*(-83)
+-98 + j*(-218)
+-121 + j*(-2)
+115 + j*(17)
+78 + j*(-435)
+98 + j*(40)
+304 + j*(139)
+53 + j*(166)
+185 + j*(130)
+-115 + j*(-383)
+-170 + j*(-74)
+-49 + j*(-89)
+7 + j*(77)
+229 + j*(-230)
+91 + j*(-82)
+19 + j*(60)
+-278 + j*(-250)
+-127 + j*(25)
+229 + j*(-180)
+-57 + j*(36)
+-25 + j*(163)
+84 + j*(-128)
+59 + j*(88)
+-171 + j*(-7)
+114 + j*(255)
+35 + j*(109)
+-44 + j*(409)
+-210 + j*(-250)
+-69 + j*(66)
+-121 + j*(48)
+125 + j*(-195)
+107 + j*(55)
+-1 + j*(-103)
+264 + j*(24)
+35 + j*(-345)
+-250 + j*(-409)
+195 + j*(6)
+-60 + j*(-27)
+-64 + j*(147)
+-33 + j*(92)
+-25 + j*(-93)
+-228 + j*(-18)
+-37 + j*(-191)
+78 + j*(-4)
+-69 + j*(-494)
+-152 + j*(261)
+-6 + j*(146)
+-361 + j*(-142)
+-65 + j*(176)
+244 + j*(78)
+-58 + j*(-261)
+-58 + j*(-259)
+-66 + j*(-286)
+-186 + j*(181)
+-257 + j*(-41)
+194 + j*(354)
+47 + j*(93)
+-121 + j*(31)
+136 + j*(-87)
+10 + j*(190)
+-272 + j*(-148)
+-107 + j*(-56)
+115 + j*(-47)
+-53 + j*(-172)
+45 + j*(-48)
+347 + j*(-141)
+66 + j*(-78)
+-156 + j*(122)
+50 + j*(-180)
+217 + j*(-42)
+-210 + j*(-83)
+228 + j*(189)
+583 + j*(-493)
+196 + j*(153)
+40 + j*(-85)
+105 + j*(8)
+-49 + j*(-282)
+164 + j*(-246)
+-35 + j*(-301)
+129 + j*(252)
+-268 + j*(125)
+-144 + j*(116)
+-309 + j*(112)
+40 + j*(-140)
+42 + j*(-145)
+39 + j*(161)
+-340 + j*(243)
+-55 + j*(-122)
+167 + j*(135)
+-185 + j*(122)
+66 + j*(-51)
+200 + j*(46)
+67 + j*(-173)
+-50 + j*(126)
+536 + j*(-277)
+66 + j*(-58)
+-182 + j*(208)
+-59 + j*(-201)
+253 + j*(46)
+-20 + j*(-202)
+66 + j*(269)
+395 + j*(128)
+-171 + j*(263)
+-45 + j*(-102)
+-135 + j*(13)
+-194 + j*(109)
+-115 + j*(313)
+21 + j*(310)
+-22 + j*(-176)
+-59 + j*(-142)
+274 + j*(33)
+50 + j*(-194)
+-39 + j*(210)
+-163 + j*(-13)
+-247 + j*(316)
+163 + j*(-173)
+54 + j*(-386)
+49 + j*(293)
+-6 + j*(286)
+-254 + j*(-59)
+-308 + j*(-129)
+141 + j*(-104)
+-262 + j*(-76)
+-92 + j*(346)
+318 + j*(-88)
+134 + j*(248)
+-27 + j*(-118)
+119 + j*(145)
+-185 + j*(-234)
+-141 + j*(-91)
+-95 + j*(-129)
+151 + j*(-233)
+-91 + j*(-215)
+-105 + j*(-1)
+-32 + j*(-80)
+133 + j*(-57)
+-52 + j*(-29)
+-103 + j*(-84)
+-65 + j*(-89)
+-83 + j*(38)
+-42 + j*(-209)
+-243 + j*(-137)
+-74 + j*(-73)
+-167 + j*(33)
+-197 + j*(-66)
+12 + j*(-21)
+88 + j*(-200)
+129 + j*(108)
+335 + j*(71)
+54 + j*(-274)
+-129 + j*(-361)
+338 + j*(-28)
+35 + j*(-118)
+-44 + j*(-242)
+-66 + j*(-45)
+-290 + j*(-136)
+-23 + j*(180)
+176 + j*(86)
+63 + j*(-119)
+68 + j*(-148)
+-366 + j*(-110)
+138 + j*(86)
+-22 + j*(80)
+72 + j*(28)
+-49 + j*(-218)
+64 + j*(14)
+364 + j*(-48)
+221 + j*(-61)
+212 + j*(175)
+-34 + j*(199)
+-25 + j*(135)
+239 + j*(-129)
+-253 + j*(-223)
+103 + j*(148)
+100 + j*(199)
+331 + j*(103)
+256 + j*(-104)
+194 + j*(78)
+170 + j*(-54)
+-51 + j*(83)
+-112 + j*(288)
+298 + j*(88)
+-196 + j*(-251)
+-5 + j*(33)
+104 + j*(-231)
+-233 + j*(-22)
+115 + j*(-112)
+15 + j*(7)
+147 + j*(-501)
+223 + j*(60)
+-243 + j*(-366)
+-35 + j*(100)
+-64 + j*(-82)
+-236 + j*(-47)
+137 + j*(-5)
+31 + j*(-117)
+401 + j*(436)
+-192 + j*(-45)
+78 + j*(-392)
+-258 + j*(263)
+-303 + j*(-162)
+119 + j*(169)
+211 + j*(58)
+-53 + j*(117)
+-28 + j*(-269)
+107 + j*(-180)
+107 + j*(-92)
+-80 + j*(22)
+356 + j*(127)
+-168 + j*(91)
+-199 + j*(-310)
+-117 + j*(-108)
+-193 + j*(-369)
+60 + j*(156)
+62 + j*(77)
+-21 + j*(-73)
+-219 + j*(-141)
+-418 + j*(11)
+-44 + j*(-158)
+297 + j*(-14)
+183 + j*(285)
+-77 + j*(-115)
+-92 + j*(-203)
+302 + j*(-100)
+234 + j*(-197)
+275 + j*(88)
+57 + j*(-214)
+52 + j*(-255)
+164 + j*(214)
+119 + j*(-187)
+117 + j*(86)
+-3 + j*(340)
+95 + j*(-66)
+32 + j*(-25)
+-200 + j*(105)
+-76 + j*(126)
+91 + j*(37)
+-245 + j*(-36)
+-120 + j*(77)
+120 + j*(-119)
+-99 + j*(-166)
+-4 + j*(137)
+41 + j*(151)
+-182 + j*(35)
+-151 + j*(-89)
+-63 + j*(-212)
+269 + j*(164)
+284 + j*(163)
+123 + j*(87)
+-55 + j*(-116)
+68 + j*(-134)
+-62 + j*(-74)
+57 + j*(100)
+204 + j*(159)
+255 + j*(182)
+40 + j*(-157)
+-81 + j*(118)
+-11 + j*(-113)
+168 + j*(-326)
+158 + j*(8)
+-139 + j*(-2)
+103 + j*(-64)
+54 + j*(606)
+202 + j*(32)
+-240 + j*(-212)
+-236 + j*(-55)
+25 + j*(-208)
+124 + j*(-163)
+127 + j*(-118)
+-194 + j*(50)
+23 + j*(106)
+178 + j*(-280)
+92 + j*(-33)
+-42 + j*(126)
+208 + j*(159)
+-103 + j*(-33)
+247 + j*(70)
+-337 + j*(253)
+-83 + j*(-166)
+-199 + j*(12)
+-92 + j*(542)
+178 + j*(-195)
+-115 + j*(-338)
+146 + j*(82)
+-163 + j*(-86)
+-88 + j*(-90)
+19 + j*(-390)
+-59 + j*(-48)
+81 + j*(165)
+103 + j*(-173)
+47 + j*(-240)
+-453 + j*(-52)
+-102 + j*(234)
+-272 + j*(161)
+81 + j*(-75)
+-143 + j*(-223)
+-126 + j*(-250)
+134 + j*(-209)
+45 + j*(-143)
+-290 + j*(-23)
+-88 + j*(14)
+382 + j*(-177)
+-407 + j*(-16)
+-9 + j*(-69)
+401 + j*(-166)
+127 + j*(-6)
+149 + j*(-99)
+-124 + j*(-21)
+17 + j*(-229)
+-5 + j*(23)
+-173 + j*(34)
+34 + j*(59)
+204 + j*(-1)
+48 + j*(253)
+247 + j*(154)
+-158 + j*(172)
+-81 + j*(340)
+-23 + j*(-86)
+-18 + j*(26)
+6 + j*(-112)
+-252 + j*(-152)
+186 + j*(148)
+-199 + j*(76)
+330 + j*(6)
+13 + j*(-215)
+-279 + j*(-163)
+52 + j*(-40)
+-167 + j*(-231)
+-236 + j*(129)
+78 + j*(-25)
+147 + j*(-44)
+119 + j*(125)
+-149 + j*(-324)
+1 + j*(-77)
+-201 + j*(-49)
+250 + j*(-146)
+15 + j*(-36)
+56 + j*(-78)
+-35 + j*(-8)
+-110 + j*(14)
+170 + j*(-251)
+-460 + j*(-7)
+-32 + j*(-224)
+-18 + j*(86)
+-17 + j*(-165)
+417 + j*(-276)
+-87 + j*(72)
+-205 + j*(-112)
+0 + j*(-154)
+-8 + j*(-245)
+147 + j*(27)
+89 + j*(-115)
+-16 + j*(-88)
+-187 + j*(-146)
+-93 + j*(8)
+-11 + j*(181)
+-159 + j*(4)
+-132 + j*(92)
+-23 + j*(-123)
+223 + j*(69)
+-5 + j*(249)
+-127 + j*(291)
+95 + j*(4)
+59 + j*(228)
+75 + j*(-275)
+-171 + j*(11)
+-136 + j*(-105)
+-198 + j*(204)
+-57 + j*(5)
+3 + j*(-324)
+-538 + j*(-66)
+74 + j*(-358)
+467 + j*(20)
+-421 + j*(-13)
+46 + j*(-384)
+-553 + j*(-285)
+178 + j*(18)
+-197 + j*(97)
+333 + j*(-331)
+-301 + j*(-172)
+50 + j*(-204)
+291 + j*(331)
+-132 + j*(-193)
+-199 + j*(382)
+-44 + j*(-281)
+33 + j*(177)
+18 + j*(624)
+291 + j*(-469)
+-192 + j*(71)
+-414 + j*(254)
+-331 + j*(-499)
+281 + j*(-560)
+-112 + j*(-367)
+-390 + j*(-414)
+274 + j*(-482)
+373 + j*(-433)
+320 + j*(128)
+250 + j*(-570)
+-4 + j*(364)
+345 + j*(329)
+-415 + j*(450)
+384 + j*(-269)
+-269 + j*(337)
+-714 + j*(-90)
+-144 + j*(-327)
+92 + j*(-220)
+-202 + j*(-617)
+368 + j*(187)
+-391 + j*(445)
+-446 + j*(485)
+606 + j*(-561)
+-156 + j*(266)
+346 + j*(262)
+44 + j*(288)
+6 + j*(132)
+199 + j*(107)
+517 + j*(165)
+59 + j*(218)
+371 + j*(-624)
+278 + j*(0)
+-479 + j*(-395)
+390 + j*(-21)
+233 + j*(52)
+-342 + j*(371)
+-434 + j*(473)
+-187 + j*(-260)
+-327 + j*(412)
+-393 + j*(179)
+-523 + j*(-187)
+-343 + j*(-66)
+295 + j*(193)
+132 + j*(-379)
+298 + j*(-465)
+-434 + j*(26)
+-532 + j*(284)
+-207 + j*(-152)
+-286 + j*(412)
+-233 + j*(-143)
+49 + j*(185)
+11 + j*(10)
+-176 + j*(527)
+395 + j*(203)
+-45 + j*(356)
+264 + j*(-517)
+189 + j*(-214)
+325 + j*(-169)
+-23 + j*(114)
+-362 + j*(190)
+-424 + j*(-215)
+442 + j*(496)
+-311 + j*(-489)
+347 + j*(19)
+-66 + j*(-206)
+-299 + j*(-675)
+-133 + j*(-135)
+369 + j*(312)
+-94 + j*(467)
+222 + j*(-23)
+177 + j*(240)
+-163 + j*(-114)
+278 + j*(-13)
+168 + j*(523)
+-314 + j*(127)
+-484 + j*(119)
+298 + j*(522)
+-288 + j*(-101)
+-369 + j*(448)
+62 + j*(138)
+74 + j*(176)
+-442 + j*(-165)
+25 + j*(-23)
+540 + j*(622)
+92 + j*(82)
+-477 + j*(187)
+134 + j*(-74)
+308 + j*(176)
+213 + j*(-274)
+-223 + j*(-270)
+-400 + j*(393)
+544 + j*(-454)
+337 + j*(-287)
+-313 + j*(466)
+304 + j*(397)
+118 + j*(-298)
+-496 + j*(358)
+58 + j*(-314)
+-18 + j*(56)
+-37 + j*(-183)
+85 + j*(-219)
+470 + j*(-586)
+-557 + j*(-581)
+425 + j*(194)
+-148 + j*(-387)
+111 + j*(66)
+433 + j*(412)
+330 + j*(-301)
+284 + j*(-236)
+-71 + j*(156)
+243 + j*(-194)
+323 + j*(692)
+49 + j*(547)
+-98 + j*(232)
+-141 + j*(-212)
+57 + j*(250)
+313 + j*(-370)
+-641 + j*(-368)
+-259 + j*(-291)
+-16 + j*(-18)
+-689 + j*(241)
+-308 + j*(-279)
+392 + j*(-391)
+271 + j*(-156)
+40 + j*(334)
+84 + j*(-208)
+-247 + j*(123)
+122 + j*(-320)
+293 + j*(-576)
+-299 + j*(446)
+-459 + j*(-285)
+-474 + j*(-351)
+119 + j*(129)
+-264 + j*(110)
+-203 + j*(411)
+245 + j*(52)
+215 + j*(-194)
+-147 + j*(333)
+-242 + j*(-580)
+255 + j*(140)
+107 + j*(-214)
+223 + j*(139)
+-246 + j*(-601)
+219 + j*(-79)
+232 + j*(-344)
+250 + j*(-248)
+76 + j*(64)
+380 + j*(-157)
+125 + j*(325)
+-306 + j*(257)
+317 + j*(199)
+-364 + j*(435)
+-135 + j*(-126)
+47 + j*(-95)
+-303 + j*(-332)
+-411 + j*(416)
+-205 + j*(-384)
+341 + j*(-59)
+-47 + j*(-214)
+-64 + j*(-122)
+284 + j*(352)
+-300 + j*(270)
+419 + j*(175)
+201 + j*(-445)
+269 + j*(409)
+381 + j*(225)
+262 + j*(487)
+-52 + j*(-374)
+33 + j*(-332)
+-221 + j*(-178)
+57 + j*(-252)
+-325 + j*(325)
+218 + j*(546)
+-151 + j*(0)
+262 + j*(-284)
+240 + j*(428)
+144 + j*(123)
+254 + j*(-41)
+-361 + j*(365)
+-5 + j*(288)
+392 + j*(-202)
+316 + j*(238)
+296 + j*(165)
+16 + j*(468)
+36 + j*(290)
+-267 + j*(-337)
+119 + j*(396)
+-428 + j*(401)
+-301 + j*(-145)
+288 + j*(-189)
+506 + j*(-230)
+-116 + j*(-116)
+-217 + j*(-225)
+171 + j*(-210)
+444 + j*(-202)
+223 + j*(124)
+-432 + j*(522)
+133 + j*(235)
+-234 + j*(-372)
+-84 + j*(-268)
+-142 + j*(-271)
+189 + j*(148)
+67 + j*(16)
+342 + j*(278)
+355 + j*(319)
+115 + j*(-101)
+631 + j*(-556)
+267 + j*(344)
+-472 + j*(-622)
+-483 + j*(433)
+327 + j*(373)
+-462 + j*(457)
+-331 + j*(139)
+-59 + j*(-136)
+276 + j*(-262)
+-57 + j*(182)
+-319 + j*(168)
+-277 + j*(132)
+351 + j*(-30)
+-111 + j*(260)
+-291 + j*(560)
+425 + j*(622)
+221 + j*(-26)
+121 + j*(54)
+-103 + j*(271)
+-273 + j*(-501)
+608 + j*(-200)
+-373 + j*(-40)
+103 + j*(-91)
+33 + j*(107)
+-253 + j*(302)
+208 + j*(-200)
+-401 + j*(78)
+-143 + j*(-327)
+354 + j*(-397)
+-85 + j*(-421)
+280 + j*(-222)
+320 + j*(-242)
+283 + j*(-122)
+-399 + j*(407)
+-46 + j*(9)
+244 + j*(171)
+462 + j*(-53)
+-617 + j*(-304)
+-309 + j*(115)
+493 + j*(-261)
+-403 + j*(140)
+-300 + j*(86)
+643 + j*(4)
+339 + j*(-296)
+-363 + j*(-57)
+-72 + j*(472)
+199 + j*(-41)
+-198 + j*(212)
+369 + j*(185)
+228 + j*(-564)
+-215 + j*(-262)
+-423 + j*(-37)
+-159 + j*(371)
+-373 + j*(-308)
+-371 + j*(241)
+-204 + j*(-335)
+68 + j*(182)
+-284 + j*(-345)
+-332 + j*(-184)
+418 + j*(255)
+3 + j*(-298)
+437 + j*(219)
+66 + j*(-67)
+98 + j*(-235)
+-384 + j*(288)
+-322 + j*(271)
+-377 + j*(-383)
+517 + j*(-313)
+53 + j*(211)
+356 + j*(158)
+131 + j*(23)
+-161 + j*(-13)
+284 + j*(-383)
+414 + j*(50)
+295 + j*(-61)
+239 + j*(-342)
+289 + j*(-161)
+458 + j*(-262)
+-348 + j*(-588)
+-573 + j*(215)
+266 + j*(463)
+344 + j*(-51)
+4 + j*(383)
+226 + j*(-94)
+306 + j*(-347)
+206 + j*(11)
+347 + j*(151)
+-305 + j*(337)
+433 + j*(302)
+-28 + j*(527)
+-534 + j*(-516)
+248 + j*(206)
+33 + j*(70)
+-18 + j*(-231)
+231 + j*(-226)
+-456 + j*(-378)
+112 + j*(-158)
+-90 + j*(-523)
+52 + j*(-177)
+-156 + j*(-113)
+46 + j*(268)
+22 + j*(422)
+-191 + j*(-325)
+-315 + j*(-511)
+-562 + j*(-180)
+-69 + j*(-325)
+591 + j*(288)
+-554 + j*(337)
+-305 + j*(358)
+-340 + j*(-383)
+-443 + j*(412)
+98 + j*(-349)
+-403 + j*(219)
+401 + j*(-107)
+209 + j*(-242)
+-416 + j*(307)
+470 + j*(-292)
+249 + j*(344)
+84 + j*(520)
+-99 + j*(-9)
+-381 + j*(240)
+52 + j*(-255)
+-315 + j*(228)
+165 + j*(-340)
+-385 + j*(-367)
+378 + j*(11)
+486 + j*(-447)
+574 + j*(-212)
+-550 + j*(-66)
+296 + j*(443)
+-421 + j*(-38)
+-15 + j*(334)
+156 + j*(-60)
+291 + j*(184)
+-148 + j*(-100)
+-99 + j*(294)
+214 + j*(76)
+349 + j*(-234)
+291 + j*(263)
+-121 + j*(-279)
+-119 + j*(-69)
+187 + j*(204)
+340 + j*(-244)
+-297 + j*(244)
+-8 + j*(-47)
+-105 + j*(-7)
+-196 + j*(-63)
+-105 + j*(35)
+405 + j*(69)
+423 + j*(219)
+-462 + j*(-112)
+-197 + j*(-422)
+224 + j*(81)
+-612 + j*(71)
+363 + j*(209)
+133 + j*(-302)
+235 + j*(418)
+-315 + j*(479)
+-166 + j*(-6)
+-97 + j*(140)
+278 + j*(451)
+-301 + j*(212)
+-412 + j*(-291)
+446 + j*(224)
+108 + j*(-417)
+487 + j*(269)
+-527 + j*(156)
+-550 + j*(-249)
+543 + j*(424)
+-126 + j*(57)
+-230 + j*(-80)
+-40 + j*(-153)
+-22 + j*(-342)
+-75 + j*(-334)
+339 + j*(-45)
+-105 + j*(36)
+151 + j*(81)
+-457 + j*(499)
+207 + j*(-512)
+-276 + j*(462)
+-246 + j*(-299)
+-155 + j*(-314)
+-18 + j*(-281)
+233 + j*(-358)
+564 + j*(-344)
+-448 + j*(-518)
+477 + j*(84)
+-371 + j*(-276)
+453 + j*(187)
+-252 + j*(-148)
+459 + j*(370)
+-31 + j*(-509)
+-215 + j*(-175)
+-177 + j*(-291)
+-182 + j*(-204)
+298 + j*(47)
+200 + j*(-255)
+-353 + j*(-530)
+182 + j*(-202)
+-296 + j*(-480)
+370 + j*(-175)
+-250 + j*(-131)
+-74 + j*(-313)
+-115 + j*(-626)
+326 + j*(274)
+-16 + j*(-218)
+-151 + j*(-180)
+-474 + j*(374)
+378 + j*(-107)
+141 + j*(245)
+113 + j*(-241)
+-526 + j*(1)
+-300 + j*(-199)
+550 + j*(-174)
+392 + j*(166)
+110 + j*(-38)
+301 + j*(-351)
+284 + j*(-59)
+223 + j*(-526)
+-282 + j*(608)
+317 + j*(332)
+-503 + j*(-453)
+-366 + j*(518)
+349 + j*(1)
+310 + j*(279)
+-163 + j*(-223)
+-21 + j*(-283)
+443 + j*(-171)
+262 + j*(-201)
+317 + j*(441)
+75 + j*(-129)
+-223 + j*(223)
+296 + j*(91)
+-455 + j*(-91)
+-651 + j*(175)
+359 + j*(-354)
+-51 + j*(512)
+540 + j*(-234)
+-161 + j*(-114)
+349 + j*(-91)
+-20 + j*(290)
+-208 + j*(-203)
+-25 + j*(161)
+-315 + j*(373)
+286 + j*(-8)
+125 + j*(395)
+-95 + j*(53)
+332 + j*(-238)
+-211 + j*(-252)
+-69 + j*(-207)
+-617 + j*(268)
+-103 + j*(356)
+-131 + j*(393)
+-310 + j*(-280)
+-245 + j*(-274)
+-2 + j*(-759)
+-375 + j*(-166)
+-215 + j*(182)
+315 + j*(230)
+-190 + j*(158)
+-446 + j*(333)
+226 + j*(355)
+344 + j*(-258)
+16 + j*(-428)
+-372 + j*(301)
+393 + j*(189)
+293 + j*(-177)
+455 + j*(-136)
+-35 + j*(-170)
+16 + j*(-351)
+-16 + j*(-304)
+-127 + j*(205)
+-550 + j*(-288)
+-10 + j*(-56)
+-173 + j*(-178)
+-307 + j*(164)
+-329 + j*(175)
+-215 + j*(-426)
+397 + j*(211)
+289 + j*(-257)
+-272 + j*(23)
+-107 + j*(-281)
+179 + j*(168)
+26 + j*(-535)
+23 + j*(234)
+302 + j*(392)
+-164 + j*(-396)
+52 + j*(231)
+194 + j*(-21)
+-352 + j*(-203)
+-338 + j*(146)
+-677 + j*(-162)
+-191 + j*(-365)
+-387 + j*(493)
+-414 + j*(242)
+-103 + j*(243)
+-315 + j*(-6)
+-612 + j*(210)
+41 + j*(-360)
+-133 + j*(-148)
+-368 + j*(241)
+54 + j*(-62)
+398 + j*(-445)
+-71 + j*(-591)
+98 + j*(273)
+-729 + j*(338)
+-323 + j*(-267)
+355 + j*(-348)
+163 + j*(510)
+508 + j*(-466)
+-651 + j*(-209)
+189 + j*(168)
+487 + j*(150)
+364 + j*(111)
+267 + j*(-54)
+427 + j*(211)
+-412 + j*(594)
+-238 + j*(-31)
+-233 + j*(328)
+192 + j*(115)
+305 + j*(297)
+484 + j*(436)
+-35 + j*(180)
+-129 + j*(-513)
+-51 + j*(-513)
+-398 + j*(-67)
+162 + j*(373)
+638 + j*(376)
+641 + j*(-561)
+-204 + j*(-426)
+551 + j*(-218)
+-161 + j*(556)
+474 + j*(226)
+-243 + j*(-293)
+16 + j*(-136)
+-474 + j*(-295)
+-490 + j*(-260)
+252 + j*(-169)
+-363 + j*(209)
+-151 + j*(457)
+-361 + j*(-232)
+-168 + j*(460)
+32 + j*(-496)
+-92 + j*(-243)
+-503 + j*(-238)
+367 + j*(148)
+-56 + j*(258)
+-156 + j*(98)
+-250 + j*(-78)
+-107 + j*(-18)
+298 + j*(257)
+-404 + j*(-225)
+-339 + j*(-220)
+-61 + j*(-391)
+-600 + j*(-141)
+304 + j*(-457)
+-280 + j*(146)
+206 + j*(421)
+355 + j*(709)
+153 + j*(225)
+124 + j*(-206)
+373 + j*(-447)
+-442 + j*(88)
+269 + j*(-115)
+-335 + j*(-300)
+-158 + j*(-78)
+-320 + j*(-414)
+491 + j*(-345)
+559 + j*(252)
+-67 + j*(-332)
+-394 + j*(-370)
+242 + j*(-639)
+-349 + j*(286)
+98 + j*(57)
+506 + j*(286)
+117 + j*(-76)
+-506 + j*(47)
+-100 + j*(156)
+-59 + j*(-168)
+162 + j*(363)
+-142 + j*(298)
+110 + j*(139)
+163 + j*(184)
+-107 + j*(-296)
+40 + j*(231)
+-26 + j*(-117)
+-184 + j*(8)
+156 + j*(-24)
+-98 + j*(-288)
+192 + j*(-55)
+-138 + j*(-66)
+161 + j*(276)
+337 + j*(-55)
+122 + j*(-122)
+233 + j*(-233)
+-29 + j*(-118)
+-36 + j*(0)
+-259 + j*(5)
+63 + j*(18)
+-158 + j*(-301)
+-95 + j*(-240)
+549 + j*(309)
+184 + j*(53)
+-141 + j*(328)
+-11 + j*(258)
+-41 + j*(237)
+-107 + j*(35)
+-265 + j*(-267)
+205 + j*(-198)
+-274 + j*(284)
+-211 + j*(-33)
+-326 + j*(-124)
+-64 + j*(-79)
+-161 + j*(-294)
+122 + j*(32)
+-248 + j*(-27)
+-3 + j*(-115)
+-145 + j*(-153)
+-308 + j*(35)
+138 + j*(-127)
+-254 + j*(-220)
+-139 + j*(49)
+-33 + j*(-45)
+41 + j*(23)
+4 + j*(-356)
+-192 + j*(50)
+-81 + j*(200)
+157 + j*(266)
+110 + j*(252)
+51 + j*(-231)
+-297 + j*(-110)
+-142 + j*(-7)
+-208 + j*(13)
+-236 + j*(-299)
+-43 + j*(190)
+312 + j*(-10)
+157 + j*(-322)
+171 + j*(-177)
+-15 + j*(-80)
+-320 + j*(103)
+-58 + j*(208)
+192 + j*(-77)
+424 + j*(-43)
+83 + j*(56)
+218 + j*(83)
+46 + j*(-98)
+-73 + j*(74)
+-149 + j*(35)
+-199 + j*(47)
+-54 + j*(-18)
+-68 + j*(136)
+327 + j*(240)
+-45 + j*(337)
+-107 + j*(-88)
+-52 + j*(224)
+238 + j*(58)
+-213 + j*(-77)
+105 + j*(56)
+163 + j*(-331)
+119 + j*(-413)
+-66 + j*(-121)
+-112 + j*(176)
+93 + j*(35)
+199 + j*(98)
+177 + j*(-56)
+-216 + j*(-6)
+-44 + j*(-34)
+-244 + j*(-201)
+53 + j*(-68)
+133 + j*(149)
+85 + j*(179)
+-88 + j*(-4)
+-91 + j*(28)
+-173 + j*(16)
+-13 + j*(135)
+-147 + j*(120)
+-85 + j*(-152)
+24 + j*(-194)
+-226 + j*(-117)
+-8 + j*(120)
+301 + j*(350)
+110 + j*(-192)
+-210 + j*(-33)
+-57 + j*(-59)
+-57 + j*(-199)
+71 + j*(-110)
+6 + j*(-235)
+-84 + j*(100)
+38 + j*(-43)
+-40 + j*(151)
+-187 + j*(224)
+-156 + j*(138)
+148 + j*(-41)
+204 + j*(-564)
+144 + j*(-85)
+16 + j*(-325)
+-55 + j*(78)
+-21 + j*(-2)
+77 + j*(152)
+-99 + j*(-4)
+-256 + j*(228)
+221 + j*(0)
+-71 + j*(226)
+-83 + j*(-78)
+-5 + j*(173)
+-42 + j*(-68)
+116 + j*(-40)
+44 + j*(-258)
+-39 + j*(-39)
+-7 + j*(-173)
+-223 + j*(-71)
+40 + j*(89)
+-86 + j*(-344)
+-243 + j*(190)
+286 + j*(48)
+-284 + j*(227)
+156 + j*(98)
+180 + j*(-112)
+-327 + j*(-141)
+180 + j*(11)
+-76 + j*(-96)
+-55 + j*(-71)
+-104 + j*(-48)
+276 + j*(-40)
+-4 + j*(-30)
+281 + j*(-175)
+425 + j*(192)
+33 + j*(-87)
+279 + j*(42)
+-97 + j*(-129)
+76 + j*(-5)
+26 + j*(69)
+48 + j*(-472)
+-218 + j*(-209)
+-143 + j*(-159)
+-59 + j*(1)
+221 + j*(25)
+-95 + j*(32)
+-69 + j*(79)
+95 + j*(-206)
+159 + j*(-54)
+-121 + j*(107)
+-23 + j*(33)
+-68 + j*(-163)
+40 + j*(-171)
+190 + j*(-384)
+-162 + j*(-95)
+23 + j*(-211)
+-136 + j*(0)
+-46 + j*(-2)
+381 + j*(-231)
+128 + j*(-233)
+-30 + j*(-272)
+-98 + j*(86)
+-109 + j*(-287)
+-30 + j*(-47)
+-94 + j*(235)
+-144 + j*(0)
+257 + j*(210)
+-68 + j*(-23)
+195 + j*(123)
+-221 + j*(122)
+244 + j*(110)
+-126 + j*(-84)
+59 + j*(-195)
+-64 + j*(305)
+186 + j*(74)
+85 + j*(-304)
+-126 + j*(96)
+245 + j*(165)
+23 + j*(-156)
+267 + j*(-207)
+-306 + j*(-105)
+-195 + j*(131)
+-52 + j*(-120)
+13 + j*(-123)
+-27 + j*(-401)
+51 + j*(-105)
+-214 + j*(121)
+-68 + j*(-316)
+64 + j*(83)
+-260 + j*(-67)
+-200 + j*(66)
+-270 + j*(108)
+-496 + j*(-64)
+-40 + j*(-259)
+-36 + j*(365)
+29 + j*(61)
+271 + j*(139)
+-46 + j*(-204)
+112 + j*(301)
+73 + j*(-66)
+211 + j*(-33)
+24 + j*(161)
+-153 + j*(-43)
+4 + j*(-89)
+107 + j*(202)
+-52 + j*(-315)
+23 + j*(59)
+-80 + j*(-99)
+115 + j*(-133)
+127 + j*(-4)
+56 + j*(278)
+-90 + j*(17)
+-215 + j*(176)
+39 + j*(-146)
+-180 + j*(21)
+-135 + j*(146)
+297 + j*(-195)
+-173 + j*(13)
+227 + j*(153)
+107 + j*(-227)
+-42 + j*(94)
+-177 + j*(176)
+157 + j*(40)
+-243 + j*(30)
+-65 + j*(-271)
+-162 + j*(218)
+574 + j*(-124)
+64 + j*(-87)
+-106 + j*(21)
+-64 + j*(-85)
+105 + j*(78)
+170 + j*(252)
+171 + j*(-236)
+301 + j*(157)
+257 + j*(-142)
+-198 + j*(127)
+8 + j*(402)
+-31 + j*(137)
+-168 + j*(-62)
+331 + j*(-171)
+95 + j*(-11)
+260 + j*(-33)
+358 + j*(-293)
+-36 + j*(63)
+-6 + j*(151)
+177 + j*(-247)
+60 + j*(-130)
+199 + j*(49)
+-54 + j*(83)
+0 + j*(27)
+-158 + j*(-120)
+190 + j*(-147)
+-168 + j*(138)
+161 + j*(-16)
+-5 + j*(14)
+-260 + j*(-122)
+-65 + j*(118)
+-136 + j*(-20)
+97 + j*(0)
+-78 + j*(0)
+89 + j*(-169)
+141 + j*(-215)
+-119 + j*(191)
+114 + j*(-15)
+-366 + j*(300)
+-267 + j*(373)
+-71 + j*(211)
+220 + j*(136)
+3 + j*(91)
+170 + j*(275)
+159 + j*(-59)
+-163 + j*(-139)
+-148 + j*(-9)
+161 + j*(321)
+167 + j*(26)
+-87 + j*(-114)
+-143 + j*(33)
+47 + j*(145)
+30 + j*(-80)
+64 + j*(-204)
+70 + j*(-93)
+-183 + j*(37)
+-71 + j*(-274)
+-81 + j*(-93)
+243 + j*(197)
+-277 + j*(-307)
+-103 + j*(-231)
+32 + j*(168)
+18 + j*(-4)
+320 + j*(267)
+-28 + j*(-4)
+64 + j*(195)
+-165 + j*(-17)
+-72 + j*(-80)
+-83 + j*(236)
+-95 + j*(-298)
+-310 + j*(4)
+43 + j*(-100)
+219 + j*(-225)
+99 + j*(184)
+-158 + j*(-57)
+-32 + j*(-35)
+-405 + j*(-144)
+329 + j*(9)
+191 + j*(47)
+-65 + j*(98)
+-28 + j*(-207)
+-56 + j*(103)
+-9 + j*(30)
+-59 + j*(249)
+-161 + j*(-89)
+105 + j*(-37)
+-136 + j*(-25)
+-461 + j*(-19)
+238 + j*(-184)
+-49 + j*(-118)
+-171 + j*(-199)
+208 + j*(-146)
+-117 + j*(-15)
+-72 + j*(192)
+351 + j*(-381)
+-117 + j*(-57)
+-37 + j*(-335)
+-4 + j*(-30)
+-269 + j*(-141)
+351 + j*(107)
+-214 + j*(-186)
+154 + j*(-385)
+-10 + j*(-100)
+-200 + j*(-194)
+120 + j*(-171)
+16 + j*(-36)
+-6 + j*(64)
+53 + j*(-182)
+-21 + j*(66)
+-244 + j*(-162)
+-187 + j*(107)
+257 + j*(6)
+254 + j*(183)
+21 + j*(-123)
+-260 + j*(-235)
+-198 + j*(208)
+67 + j*(-178)
+-156 + j*(171)
+23 + j*(-328)
+50 + j*(-82)
+273 + j*(91)
+-465 + j*(11)
+-252 + j*(-271)
+66 + j*(159)
+-349 + j*(-22)
+-38 + j*(-395)
+63 + j*(-30)
+-83 + j*(-186)
+-167 + j*(-312)
+231 + j*(17)
+168 + j*(-475)
+216 + j*(-16)
+-141 + j*(-285)
+-185 + j*(72)
+88 + j*(-3)
+-132 + j*(-122)
+63 + j*(245)
+158 + j*(-104)
+-301 + j*(-276)
+-28 + j*(226)
+129 + j*(40)
+-146 + j*(-64)
+-306 + j*(-209)
+35 + j*(50)
+390 + j*(30)
+-264 + j*(-94)
+-201 + j*(30)
+4 + j*(21)
+-325 + j*(-134)
+-270 + j*(-317)
+402 + j*(4)
+-135 + j*(181)
+221 + j*(69)
+-272 + j*(-63)
+-79 + j*(169)
+-31 + j*(249)
+25 + j*(238)
+69 + j*(39)
+38 + j*(119)
+-13 + j*(54)
+218 + j*(-204)
+-118 + j*(-271)
+-123 + j*(-87)
+-215 + j*(-211)
+8 + j*(-20)
+-113 + j*(-134)
+118 + j*(330)
+184 + j*(52)
+-52 + j*(8)
+170 + j*(-322)
+59 + j*(-35)
+-247 + j*(372)
+-42 + j*(-73)
+119 + j*(111)
+-25 + j*(-49)
+-2 + j*(-87)
+-310 + j*(-179)
+250 + j*(70)
+-49 + j*(18)
+100 + j*(-186)
+-135 + j*(28)
+-71 + j*(153)
+45 + j*(428)
+3 + j*(-249)
+-119 + j*(111)
+321 + j*(223)
+25 + j*(-214)
+199 + j*(-301)
+36 + j*(-147)
+182 + j*(-100)
+138 + j*(-7)
+-115 + j*(-452)
+147 + j*(52)
+31 + j*(-32)
+-359 + j*(243)
+-57 + j*(-26)
+288 + j*(-342)
+-114 + j*(362)
+-314 + j*(-102)
+-130 + j*(-46)
+90 + j*(184)
+46 + j*(-83)
+-231 + j*(151)
+-25 + j*(-37)
+-51 + j*(-51)
+-491 + j*(88)
+-45 + j*(141)
+62 + j*(-93)
+-115 + j*(189)
+-167 + j*(556)
+-111 + j*(-173)
+-148 + j*(-122)
+-70 + j*(-202)
+226 + j*(315)
+47 + j*(82)
+107 + j*(92)
+-71 + j*(159)
+-201 + j*(96)
+-279 + j*(312)
+178 + j*(-182)
+21 + j*(30)
+93 + j*(-142)
+330 + j*(-162)
+88 + j*(49)
+91 + j*(118)
+-88 + j*(186)
+157 + j*(76)
+-174 + j*(79)
+172 + j*(-34)
+175 + j*(-133)
+-195 + j*(-25)
+100 + j*(-73)
+237 + j*(213)
+-206 + j*(-190)
+209 + j*(-362)
+-407 + j*(407)
+-188 + j*(88)
+-54 + j*(264)
+-172 + j*(-100)
+127 + j*(-121)
+-132 + j*(-37)
+-45 + j*(96)
+221 + j*(111)
+167 + j*(-11)
+57 + j*(19)
+119 + j*(-85)
+-74 + j*(69)
+12 + j*(-302)
+-69 + j*(-177)
+-21 + j*(181)
+-117 + j*(157)
+82 + j*(328)
+393 + j*(29)
+186 + j*(77)
+371 + j*(-147)
+93 + j*(-47)
+-169 + j*(-63)
+-48 + j*(215)
+9 + j*(-59)
+73 + j*(-226)
+-295 + j*(-11)
+-247 + j*(158)
+-114 + j*(-120)
+-83 + j*(-57)
+53 + j*(-2)
+-151 + j*(-27)
+-251 + j*(-245)
+-193 + j*(-12)
+31 + j*(-63)
+235 + j*(208)
+53 + j*(-342)
+138 + j*(-112)
+93 + j*(-262)
+5 + j*(65)
+-266 + j*(-119)
+-149 + j*(-166)
+-25 + j*(38)
+184 + j*(7)
+-290 + j*(-71)
+157 + j*(293)
+-90 + j*(-56)
+458 + j*(-84)
+-99 + j*(-19)
+164 + j*(153)
+224 + j*(174)
+-101 + j*(-18)
+-81 + j*(154)
+158 + j*(154)
+-127 + j*(-254)
+175 + j*(-91)
+292 + j*(21)
+-170 + j*(0)
+148 + j*(-99)
+-146 + j*(133)
+136 + j*(121)
+114 + j*(-186)
+-29 + j*(60)
+39 + j*(108)
+-83 + j*(-29)
+25 + j*(254)
+-4 + j*(-291)
+28 + j*(199)
+-47 + j*(-40)
+-95 + j*(203)
+-223 + j*(18)
+109 + j*(-144)
+-82 + j*(-18)
+148 + j*(302)
+42 + j*(58)
+291 + j*(205)
+69 + j*(25)
+-135 + j*(-63)
+73 + j*(-18)
+-325 + j*(-216)
+-100 + j*(62)
+-17 + j*(-175)
+-198 + j*(93)
+-25 + j*(216)
+92 + j*(-165)
+122 + j*(-248)
+165 + j*(166)
+121 + j*(85)
+81 + j*(-57)
+105 + j*(167)
+211 + j*(-134)
+18 + j*(-106)
+-33 + j*(-170)
+73 + j*(-61)
+286 + j*(-19)
+2 + j*(286)
+-436 + j*(426)
+-118 + j*(-88)
+-47 + j*(-100)
+-127 + j*(266)
+58 + j*(-47)
+-15 + j*(210)
+117 + j*(130)
+-325 + j*(146)
+91 + j*(108)
+127 + j*(-89)
+41 + j*(-191)
+-69 + j*(283)
+-24 + j*(-206)
+-237 + j*(-129)
+24 + j*(1)
+-15 + j*(188)
+159 + j*(-438)
+-153 + j*(177)
+91 + j*(84)
+196 + j*(99)
+-199 + j*(-139)
+-26 + j*(161)
+-98 + j*(-145)
+139 + j*(208)
+8 + j*(-177)
+106 + j*(83)
+107 + j*(-57)
+-309 + j*(-213)
+-96 + j*(16)
+88 + j*(-123)
+-114 + j*(145)
+238 + j*(-22)
+46 + j*(-329)
+156 + j*(-65)
+-183 + j*(112)
+61 + j*(-93)
+11 + j*(154)
+47 + j*(8)
+-110 + j*(-246)
+-185 + j*(-25)
+383 + j*(-152)
+6 + j*(-38)
+162 + j*(-64)
+-345 + j*(178)
+-4 + j*(-176)
+-76 + j*(49)
+50 + j*(-157)
+-230 + j*(-141)
+-103 + j*(-71)
+286 + j*(134)
+-431 + j*(-79)
+153 + j*(34)
+-320 + j*(-55)
+178 + j*(292)
+-25 + j*(-117)
+189 + j*(57)
+158 + j*(105)
+-108 + j*(-551)
+170 + j*(-34)
+-298 + j*(-87)
+187 + j*(-165)
+69 + j*(59)
+-166 + j*(453)
+111 + j*(-119)
+172 + j*(-110)
+-185 + j*(158)
+-131 + j*(-267)
+-54 + j*(-285)
+-57 + j*(65)
+94 + j*(-38)
+382 + j*(-139)
+-119 + j*(-199)
+-252 + j*(48)
+-190 + j*(421)
+-119 + j*(30)
+165 + j*(236)
+77 + j*(42)
+14 + j*(210)
+-52 + j*(-196)
+144 + j*(-216)
+28 + j*(99)
+-242 + j*(151)
+-19 + j*(-17)
+62 + j*(-230)
+146 + j*(130)
+-67 + j*(-202)
+158 + j*(-134)
+-318 + j*(192)
+48 + j*(-28)
+-322 + j*(180)
+-263 + j*(187)
+58 + j*(226)
+-1 + j*(96)
+8 + j*(304)
+-31 + j*(-8)
+214 + j*(-35)
+-35 + j*(-71)
+-22 + j*(-124)
+-321 + j*(-234)
+305 + j*(-367)
+-170 + j*(-57)
+-206 + j*(124)
+-64 + j*(-117)
+35 + j*(-8)
+-74 + j*(-139)
+-81 + j*(200)
+355 + j*(189)
+115 + j*(158)
+-22 + j*(1)
+-117 + j*(319)
+48 + j*(193)
+-66 + j*(-28)
+-78 + j*(-221)
+77 + j*(204)
+-308 + j*(187)
+-373 + j*(223)
+-246 + j*(224)
+277 + j*(147)
+64 + j*(-37)
+-13 + j*(-129)
+6 + j*(-28)
+80 + j*(15)
+173 + j*(60)
+-112 + j*(98)
+-279 + j*(-98)
+103 + j*(29)
+115 + j*(13)
+49 + j*(-102)
+233 + j*(81)
+189 + j*(-76)
+192 + j*(52)
+-54 + j*(-86)
+-33 + j*(-18)
+-248 + j*(105)
+76 + j*(177)
+433 + j*(-158)
+-190 + j*(-6)
+-139 + j*(93)
+-57 + j*(-262)
+165 + j*(-156)
+305 + j*(-173)
+-5 + j*(323)
+33 + j*(335)
+-156 + j*(-53)
+-235 + j*(111)
+-19 + j*(78)
+-34 + j*(-106)
+254 + j*(62)
+-130 + j*(185)
+5 + j*(-9)
+53 + j*(-91)
+-107 + j*(357)
+-16 + j*(-24)
+41 + j*(-177)
+-18 + j*(135)
+102 + j*(223)
+-88 + j*(87)
+173 + j*(251)
+-35 + j*(-85)
+-260 + j*(-141)
+13 + j*(35)
+235 + j*(136)
+45 + j*(109)
+57 + j*(-5)
+59 + j*(-38)
+148 + j*(78)
+134 + j*(-247)
+-215 + j*(40)
+243 + j*(-28)
+42 + j*(-71)
+-59 + j*(-18)
+63 + j*(-50)
+-286 + j*(-103)
+-140 + j*(-54)
+43 + j*(-92)
+117 + j*(-78)
+58 + j*(-70)
+-2 + j*(-187)
+33 + j*(1)
+-328 + j*(189)
+-151 + j*(-17)
+70 + j*(56)
+-33 + j*(110)
+-56 + j*(-232)
+139 + j*(211)
+68 + j*(-8)
+-23 + j*(-332)
+-84 + j*(-69)
+-124 + j*(-66)
+238 + j*(-9)
+165 + j*(-138)
+117 + j*(153)
+-3 + j*(-95)
+252 + j*(-83)
+-146 + j*(81)
+-163 + j*(-2)
+231 + j*(206)
+103 + j*(-237)
+14 + j*(-40)
+187 + j*(175)
+-88 + j*(171)
+66 + j*(202)
+71 + j*(-172)
+-182 + j*(-47)
+-193 + j*(96)
+158 + j*(197)
+-11 + j*(-202)
+-110 + j*(86)
+-76 + j*(-20)
+23 + j*(-204)
+-110 + j*(228)
+30 + j*(-39)
+182 + j*(-27)
+104 + j*(30)
+-421 + j*(55)
+-124 + j*(-89)
+275 + j*(140)
+-114 + j*(65)
+188 + j*(221)
+-515 + j*(152)
+-315 + j*(-170)
+1 + j*(-225)
+294 + j*(14)
+202 + j*(6)
+255 + j*(-163)
+-30 + j*(-192)
+-179 + j*(141)
+148 + j*(-154)
+-74 + j*(-300)
+-235 + j*(18)
+247 + j*(-79)
+177 + j*(-129)
+-186 + j*(182)
+-50 + j*(-11)
+356 + j*(-52)
+148 + j*(-117)
+136 + j*(99)
+93 + j*(-328)
+-4 + j*(26)
+7 + j*(-222)
+-58 + j*(-41)
+236 + j*(106)
+-535 + j*(89)
+356 + j*(320)
+-111 + j*(38)
+58 + j*(-325)
+-165 + j*(103)
+-176 + j*(-89)
+-93 + j*(-48)
+-6 + j*(69)
+110 + j*(-194)
+-19 + j*(1)
+18 + j*(-311)
+407 + j*(-1)
+64 + j*(161)
+142 + j*(-227)
+-356 + j*(-335)
+195 + j*(366)
+-200 + j*(-170)
+160 + j*(194)
+-43 + j*(-305)
+168 + j*(-30)
+221 + j*(146)
+-13 + j*(194)
+366 + j*(-336)
+-265 + j*(107)
+-216 + j*(133)
+-73 + j*(124)
+-288 + j*(-79)
+-6 + j*(78)
+359 + j*(126)
+-62 + j*(180)
+205 + j*(-325)
+-21 + j*(-49)
+54 + j*(-180)
+77 + j*(-340)
+-77 + j*(-49)
+-87 + j*(166)
+129 + j*(115)
+-167 + j*(25)
+192 + j*(-13)
+395 + j*(-304)
+358 + j*(-41)
+8 + j*(135)
+-91 + j*(-146)
+-103 + j*(-84)
+136 + j*(98)
+-123 + j*(-60)
+298 + j*(-141)
+-117 + j*(-283)
+335 + j*(-21)
+143 + j*(-44)
+-249 + j*(-75)
+11 + j*(47)
+-146 + j*(-163)
+185 + j*(232)
+313 + j*(59)
+-227 + j*(-141)
+-214 + j*(-50)
+-64 + j*(143)
+73 + j*(-165)
+185 + j*(-30)
+55 + j*(48)
+-152 + j*(-82)
+-35 + j*(-16)
+49 + j*(-21)
+4 + j*(313)
+279 + j*(42)
+48 + j*(-219)
+40 + j*(37)
+-71 + j*(99)
+-75 + j*(-37)
+11 + j*(-197)
+118 + j*(40)
+-59 + j*(45)
+-106 + j*(79)
+84 + j*(-100)
+-6 + j*(-39)
+-144 + j*(418)
+52 + j*(351)
+187 + j*(264)
+-26 + j*(25)
+-1 + j*(-44)
+-93 + j*(515)
+63 + j*(-93)
+296 + j*(78)
+-311 + j*(363)
+4 + j*(-178)
+63 + j*(265)
+-204 + j*(-132)
+59 + j*(-104)
+-294 + j*(8)
+-167 + j*(76)
+-74 + j*(288)
+105 + j*(-91)
+105 + j*(21)
+19 + j*(-169)
+132 + j*(-124)
+83 + j*(43)
+-302 + j*(-35)
+155 + j*(206)
+151 + j*(100)
+-242 + j*(188)
+1 + j*(269)
+-30 + j*(-129)
+387 + j*(-134)
+135 + j*(89)
+15 + j*(-282)
+130 + j*(-124)
+387 + j*(10)
+136 + j*(74)
+-83 + j*(-74)
+-450 + j*(-119)
+-84 + j*(-28)
+-62 + j*(161)
+-76 + j*(-78)
+75 + j*(-597)
+273 + j*(80)
+-9 + j*(109)
+4 + j*(62)
+106 + j*(62)
+105 + j*(199)
+-132 + j*(158)
+-21 + j*(5)
+-142 + j*(98)
+-282 + j*(170)
+180 + j*(131)
+211 + j*(-172)
+-155 + j*(192)
+-393 + j*(-5)
+-84 + j*(-328)
+-30 + j*(-112)
+-71 + j*(-198)
+120 + j*(-38)
+-223 + j*(-73)
+-11 + j*(196)
+170 + j*(76)
+-129 + j*(67)
+-121 + j*(-35)
+-66 + j*(103)
+-183 + j*(148)
+-215 + j*(-71)
+-158 + j*(-179)
+-211 + j*(13)
+-78 + j*(201)
+245 + j*(132)
+-139 + j*(-11)
+-58 + j*(204)
+-103 + j*(-175)
+-12 + j*(73)
+-52 + j*(-126)
+29 + j*(40)
+67 + j*(-36)
+18 + j*(-4)
+15 + j*(-45)
+268 + j*(-138)
+62 + j*(25)
+-344 + j*(-20)
+16 + j*(93)
+-122 + j*(119)
+-44 + j*(-205)
+137 + j*(-150)
+197 + j*(-11)
+56 + j*(-64)
+25 + j*(-168)
+112 + j*(141)
+-144 + j*(29)
+-170 + j*(-252)
+-190 + j*(-37)
+-8 + j*(-127)
+-10 + j*(247)
+193 + j*(-303)
+-122 + j*(-218)
+165 + j*(-90)
+28 + j*(-100)
+31 + j*(19)
+-96 + j*(-121)
+-98 + j*(30)
+-281 + j*(-203)
+250 + j*(-42)
+-244 + j*(109)
+-47 + j*(-231)
+16 + j*(-291)
+40 + j*(-218)
+-300 + j*(34)
+-152 + j*(173)
+-74 + j*(73)
+-23 + j*(-93)
+-45 + j*(-342)
+24 + j*(-52)
+-193 + j*(183)
+-151 + j*(-307)
+-26 + j*(24)
+207 + j*(-115)
+-58 + j*(139)
+-33 + j*(-112)
+-409 + j*(149)
+-1 + j*(-136)
+-288 + j*(-105)
+-30 + j*(-198)
+187 + j*(39)
+71 + j*(33)
+-371 + j*(64)
+-27 + j*(-169)
+40 + j*(4)
+-234 + j*(72)
+-243 + j*(-18)
+29 + j*(71)
+189 + j*(-243)
+-201 + j*(-335)
+-214 + j*(-97)
+-161 + j*(185)
+-247 + j*(45)
+-260 + j*(-303)
+-206 + j*(245)
+-127 + j*(12)
+49 + j*(156)
+-52 + j*(-3)
+193 + j*(69)
+203 + j*(62)
+111 + j*(-100)
+-105 + j*(-18)
+25 + j*(-121)
+-134 + j*(104)
+-275 + j*(233)
+100 + j*(-326)
+-230 + j*(-73)
+139 + j*(-256)
+300 + j*(23)
+-189 + j*(-491)
+137 + j*(-88)
+133 + j*(-263)
+-106 + j*(-373)
+-18 + j*(-103)
+-98 + j*(223)
+-4 + j*(-18)
+6 + j*(266)
+60 + j*(-30)
+-188 + j*(-150)
+-118 + j*(40)
+-140 + j*(-16)
+88 + j*(59)
+-22 + j*(-28)
+110 + j*(-66)
+160 + j*(-157)
+139 + j*(31)
+19 + j*(-97)
+69 + j*(101)
+-49 + j*(172)
+245 + j*(-80)
+14 + j*(274)
+-71 + j*(1)
+-33 + j*(29)
+-208 + j*(66)
+184 + j*(227)
+-239 + j*(-216)
+127 + j*(-18)
+469 + j*(177)
+-91 + j*(263)
+4 + j*(46)
+-212 + j*(102)
+25 + j*(-23)
+153 + j*(10)
+-97 + j*(-8)
+-236 + j*(-30)
+-46 + j*(-418)
+-104 + j*(288)
+78 + j*(-39)
+136 + j*(1)
+43 + j*(-76)
+34 + j*(-223)
+110 + j*(-4)
+146 + j*(-64)
+-5 + j*(45)
+89 + j*(44)
+-12 + j*(-76)
+-5 + j*(-25)
+20 + j*(243)
+47 + j*(-218)
+-81 + j*(71)
+-73 + j*(187)
+314 + j*(94)
+-119 + j*(-69)
+136 + j*(88)
+158 + j*(75)
+-196 + j*(-190)
+-5 + j*(-135)
+134 + j*(228)
+-108 + j*(-257)
+-16 + j*(414)
+-16 + j*(96)
+151 + j*(163)
+93 + j*(4)
+-204 + j*(-71)
+-107 + j*(213)
+187 + j*(26)
+-30 + j*(242)
+89 + j*(-8)
+4 + j*(-206)
+-54 + j*(-242)
+110 + j*(-37)
+-175 + j*(-238)
+-148 + j*(15)
+208 + j*(-152)
+-28 + j*(-235)
+-183 + j*(-280)
+189 + j*(-124)
+-19 + j*(8)
+-250 + j*(-168)
+-24 + j*(-89)
+-247 + j*(140)
+216 + j*(385)
+88 + j*(-119)
+356 + j*(-173)
+4 + j*(145)
+-193 + j*(-115)
+109 + j*(-45)
+203 + j*(172)
+-103 + j*(337)
+-80 + j*(187)
+-129 + j*(179)
+158 + j*(-235)
+-52 + j*(-272)
+-91 + j*(327)
+-25 + j*(117)
+-143 + j*(-141)
+92 + j*(310)
+129 + j*(33)
+-202 + j*(159)
+86 + j*(43)
+-43 + j*(69)
+-130 + j*(-140)
+-139 + j*(371)
+-1 + j*(92)
+-301 + j*(-141)
+170 + j*(83)
+6 + j*(-224)
+-183 + j*(132)
+-187 + j*(74)
+141 + j*(-238)
+-102 + j*(346)
+-230 + j*(298)
+71 + j*(280)
+-360 + j*(311)
+-85 + j*(173)
+117 + j*(-69)
+23 + j*(314)
+-179 + j*(234)
+95 + j*(8)
+18 + j*(-133)
+-137 + j*(-108)
+115 + j*(122)
+-23 + j*(-101)
+18 + j*(2)
+96 + j*(-134)
+21 + j*(3)
+373 + j*(-148)
+162 + j*(41)
+240 + j*(244)
+-114 + j*(192)
+86 + j*(-23)
+-55 + j*(67)
+-188 + j*(163)
+-23 + j*(10)
+18 + j*(-76)
+-27 + j*(21)
+163 + j*(198)
+-44 + j*(33)
+70 + j*(66)
+-132 + j*(356)
+-43 + j*(-99)
+-134 + j*(165)
+225 + j*(-81)
+-55 + j*(-30)
+143 + j*(88)
+64 + j*(-105)
+-44 + j*(-93)
+-69 + j*(-28)
+-184 + j*(-154)
+-315 + j*(184)
+49 + j*(-148)
+-220 + j*(91)
+-91 + j*(-29)
+-177 + j*(-166)
+35 + j*(86)
+-190 + j*(-197)
+-281 + j*(-106)
+-211 + j*(-90)
+-185 + j*(27)
+50 + j*(298)
+71 + j*(-78)
+268 + j*(-33)
+79 + j*(-139)
+218 + j*(125)
+400 + j*(190)
+-83 + j*(17)
+-129 + j*(385)
+-5 + j*(-299)
+-202 + j*(-363)
+233 + j*(24)
+13 + j*(-80)
+-256 + j*(-156)
+194 + j*(-125)
+233 + j*(104)
+-206 + j*(145)
+-181 + j*(137)
+-342 + j*(253)
+91 + j*(13)
+-117 + j*(164)
+-138 + j*(58)
+227 + j*(-179)
+-38 + j*(42)
+-46 + j*(-65)
+98 + j*(302)
+-18 + j*(167)
+135 + j*(136)
+111 + j*(16)
+-107 + j*(-140)
+69 + j*(-180)
+69 + j*(-49)
+-100 + j*(190)
+-161 + j*(302)
+-57 + j*(261)
+78 + j*(-50)
+62 + j*(45)
+298 + j*(24)
+65 + j*(288)
+-132 + j*(4)
+186 + j*(4)
+53 + j*(84)
+-94 + j*(177)
+258 + j*(-5)
+82 + j*(-281)
+282 + j*(295)
+119 + j*(-278)
+-65 + j*(-95)
+-216 + j*(-46)
+116 + j*(105)
+13 + j*(287)
+105 + j*(165)
+221 + j*(-129)
+27 + j*(115)
+-284 + j*(5)
+-20 + j*(190)
+39 + j*(128)
+-301 + j*(-53)
+-198 + j*(-95)
+-39 + j*(129)
+-34 + j*(-30)
+-25 + j*(280)
+134 + j*(176)
+-54 + j*(-99)
+64 + j*(-139)
+-147 + j*(191)
+77 + j*(-8)
+-140 + j*(1)
+29 + j*(6)
+-252 + j*(-90)
+66 + j*(-373)
+-273 + j*(177)
+-53 + j*(-73)
+426 + j*(209)
+303 + j*(-223)
+230 + j*(78)
+-146 + j*(-151)
+32 + j*(169)
+408 + j*(48)
+149 + j*(54)
+-18 + j*(-1)
+320 + j*(122)
+-23 + j*(28)
+89 + j*(-202)
+33 + j*(-117)
+274 + j*(-25)
+23 + j*(-18)
+-88 + j*(-291)
+-51 + j*(407)
+-50 + j*(18)
+-4 + j*(-36)
+115 + j*(124)
+-13 + j*(150)
+223 + j*(-66)
+-48 + j*(108)
+-82 + j*(-92)
+40 + j*(219)
+-216 + j*(148)
+-187 + j*(-291)
+-45 + j*(56)
+185 + j*(47)
+94 + j*(-248)
+-107 + j*(-1)
+-199 + j*(-47)
+20 + j*(60)
+117 + j*(141)
+-151 + j*(-326)
+51 + j*(-210)
+121 + j*(-66)
+-40 + j*(-173)
+-83 + j*(-199)
+-54 + j*(-74)
+83 + j*(-98)
+243 + j*(170)
+217 + j*(-255)
+242 + j*(-443)
+-148 + j*(-34)
+42 + j*(201)
+29 + j*(-47)
+-98 + j*(-1)
+45 + j*(141)
+-148 + j*(-74)
+161 + j*(-137)
+116 + j*(169)
+49 + j*(-519)
+9 + j*(-118)
+144 + j*(169)
+-106 + j*(77)
+-124 + j*(-10)
+-298 + j*(303)
+268 + j*(-8)
+44 + j*(-12)
+165 + j*(-390)
+-98 + j*(-107)
+199 + j*(197)
+194 + j*(49)
+-206 + j*(412)
+68 + j*(-216)
+274 + j*(139)
+-237 + j*(60)
+85 + j*(285)
+4 + j*(-130)
+168 + j*(-20)
+284 + j*(175)
+316 + j*(-301)
+62 + j*(148)
+54 + j*(-270)
+95 + j*(266)
+-95 + j*(-28)
+-46 + j*(29)
+-254 + j*(-30)
+-159 + j*(117)
+-9 + j*(-117)
+-64 + j*(-76)
+59 + j*(19)
+-45 + j*(-144)
+-358 + j*(-110)
+-302 + j*(218)
+140 + j*(335)
+233 + j*(12)
+386 + j*(96)
+-37 + j*(-218)
+-187 + j*(-46)
+16 + j*(290)
+59 + j*(18)
+158 + j*(-102)
+104 + j*(-3)
+-23 + j*(204)
+131 + j*(161)
+105 + j*(339)
+-226 + j*(-220)
+-144 + j*(202)
+-95 + j*(-191)
+-44 + j*(49)
+69 + j*(-114)
+-105 + j*(221)
+12 + j*(58)
+264 + j*(-68)
+-21 + j*(88)
+-357 + j*(15)
+-122 + j*(-136)
+-35 + j*(129)
+139 + j*(-16)
+-175 + j*(-110)
+24 + j*(67)
+17 + j*(56)
+-100 + j*(-48)
+-75 + j*(-260)
+-28 + j*(-51)
+52 + j*(-117)
+445 + j*(41)
+35 + j*(159)
+-68 + j*(112)
+-208 + j*(158)
+-182 + j*(-253)
+-3 + j*(-115)
+-30 + j*(371)
+8 + j*(30)
+-223 + j*(-93)
+274 + j*(57)
+-313 + j*(-148)
+244 + j*(195)
+10 + j*(-305)
+296 + j*(88)
+7 + j*(87)
+-40 + j*(91)
+-315 + j*(-76)
+-16 + j*(88)
+-83 + j*(-124)
+-98 + j*(-20)
+-94 + j*(-92)
+-143 + j*(-262)
+-87 + j*(49)
+252 + j*(-49)
+-119 + j*(354)
+134 + j*(46)
+-167 + j*(-270)
+-130 + j*(-144)
+103 + j*(151)
+-87 + j*(243)
+70 + j*(132)
+-128 + j*(2)
+58 + j*(114)
+215 + j*(14)
+-81 + j*(183)
+37 + j*(65)
+-151 + j*(38)
+-92 + j*(75)
+-240 + j*(-64)
+-23 + j*(-105)
+-359 + j*(-221)
+-107 + j*(18)
+88 + j*(-301)
+-308 + j*(542)
+-77 + j*(-313)
+221 + j*(-117)
+-18 + j*(-79)
+118 + j*(-240)
+-389 + j*(-11)
+57 + j*(0)
+-142 + j*(-67)
+-115 + j*(-76)
+39 + j*(-61)
+182 + j*(0)
+-65 + j*(46)
+57 + j*(-47)
+-304 + j*(33)
+-430 + j*(489)
+-425 + j*(47)
+261 + j*(597)
+-67 + j*(314)
+-337 + j*(167)
+-143 + j*(-90)
+-353 + j*(-21)
+-335 + j*(162)
+605 + j*(390)
+-31 + j*(-196)
+-340 + j*(-206)
+-275 + j*(-161)
+-332 + j*(120)
+422 + j*(202)
+316 + j*(192)
+-141 + j*(535)
+-296 + j*(-251)
+209 + j*(-497)
+-286 + j*(-75)
+165 + j*(470)
+-82 + j*(273)
+99 + j*(267)
+-262 + j*(188)
+-15 + j*(172)
+-30 + j*(403)
+212 + j*(272)
+-204 + j*(-431)
+-351 + j*(-269)
+589 + j*(204)
+311 + j*(-122)
+391 + j*(-222)
+-371 + j*(286)
+-566 + j*(-589)
+202 + j*(-261)
+-151 + j*(-124)
+474 + j*(-434)
+272 + j*(-49)
+359 + j*(75)
+129 + j*(-83)
+-320 + j*(-96)
+140 + j*(-76)
+-211 + j*(-550)
+305 + j*(417)
+-412 + j*(64)
+226 + j*(-547)
+407 + j*(-380)
+-83 + j*(-97)
+396 + j*(-173)
+255 + j*(-368)
+213 + j*(-57)
+313 + j*(110)
+42 + j*(158)
+-93 + j*(-151)
+-267 + j*(12)
+-50 + j*(119)
+-161 + j*(-238)
+-6 + j*(-322)
+-392 + j*(-337)
+472 + j*(-371)
+142 + j*(421)
+-317 + j*(400)
+447 + j*(-417)
+487 + j*(-246)
+-265 + j*(420)
+-237 + j*(279)
+-163 + j*(188)
+-423 + j*(341)
+-38 + j*(-321)
+492 + j*(101)
+-297 + j*(-282)
+-43 + j*(210)
+247 + j*(262)
+219 + j*(253)
+446 + j*(250)
+-492 + j*(-336)
+272 + j*(-373)
+289 + j*(241)
+-71 + j*(-12)
+-334 + j*(684)
+-156 + j*(294)
+219 + j*(168)
+222 + j*(391)
+-127 + j*(585)
+458 + j*(-467)
+400 + j*(-296)
+-229 + j*(1)
+-195 + j*(130)
+-42 + j*(-72)
+-548 + j*(46)
+168 + j*(17)
+-109 + j*(307)
+274 + j*(-205)
+181 + j*(-606)
+23 + j*(216)
+-359 + j*(13)
+91 + j*(288)
+-216 + j*(141)
+-315 + j*(-303)
+165 + j*(450)
+-474 + j*(64)
+450 + j*(-318)
+-443 + j*(348)
+131 + j*(450)
+259 + j*(401)
+-464 + j*(-486)
+74 + j*(-565)
+-122 + j*(-119)
+512 + j*(-184)
+-305 + j*(201)
+199 + j*(-392)
+158 + j*(-424)
+156 + j*(43)
+-610 + j*(289)
+172 + j*(-296)
+47 + j*(297)
+-458 + j*(-441)
+222 + j*(-376)
+-399 + j*(8)
+-208 + j*(371)
+-65 + j*(-204)
+-322 + j*(663)
+-438 + j*(-144)
+144 + j*(123)
+97 + j*(363)
+164 + j*(-170)
+-237 + j*(167)
+117 + j*(55)
+342 + j*(-199)
+-254 + j*(226)
+-356 + j*(474)
+-164 + j*(171)
+393 + j*(-431)
+-197 + j*(-47)
+192 + j*(179)
+183 + j*(-356)
+377 + j*(-268)
+465 + j*(407)
+-193 + j*(-66)
+-267 + j*(-235)
+607 + j*(416)
+-198 + j*(310)
+403 + j*(542)
+182 + j*(-26)
+-594 + j*(-251)
+-167 + j*(-284)
+-265 + j*(667)
+171 + j*(-404)
+122 + j*(-467)
+-266 + j*(57)
+-361 + j*(-285)
+348 + j*(23)
+-206 + j*(-553)
+-160 + j*(309)
+491 + j*(283)
+-422 + j*(-171)
+-202 + j*(-250)
+-229 + j*(99)
+183 + j*(95)
+134 + j*(-175)
+172 + j*(-517)
+147 + j*(385)
+-446 + j*(392)
+228 + j*(106)
+90 + j*(-122)
+-284 + j*(-69)
+-255 + j*(-495)
+99 + j*(-112)
+-347 + j*(-191)
+355 + j*(173)
+-342 + j*(175)
+407 + j*(-28)
+223 + j*(-71)
+-313 + j*(26)
+156 + j*(-120)
+392 + j*(-379)
+-321 + j*(-26)
+-399 + j*(160)
+187 + j*(228)
+-249 + j*(-415)
+404 + j*(399)
+198 + j*(253)
+438 + j*(82)
+479 + j*(237)
+363 + j*(318)
+576 + j*(-229)
+-667 + j*(-161)
+300 + j*(-527)
+92 + j*(596)
+-7 + j*(-363)
+-397 + j*(414)
+142 + j*(220)
+535 + j*(395)
+306 + j*(418)
+-162 + j*(-406)
+354 + j*(-330)
+-219 + j*(162)
+-331 + j*(-506)
+496 + j*(225)
+133 + j*(115)
+214 + j*(218)
+197 + j*(-316)
+587 + j*(9)
+-30 + j*(397)
+-547 + j*(-593)
+352 + j*(-108)
+-219 + j*(142)
+-383 + j*(286)
+-216 + j*(-329)
+390 + j*(276)
+-157 + j*(-122)
+236 + j*(122)
+31 + j*(-37)
+174 + j*(-285)
+253 + j*(-253)
+427 + j*(-403)
+-315 + j*(345)
+-428 + j*(-682)
+15 + j*(-400)
+-339 + j*(496)
+-588 + j*(91)
+229 + j*(-165)
+529 + j*(296)
+553 + j*(346)
+-144 + j*(66)
+-397 + j*(452)
+445 + j*(406)
+-112 + j*(-163)
+301 + j*(253)
+296 + j*(274)
+354 + j*(-94)
+-457 + j*(-530)
+-373 + j*(-168)
+-270 + j*(-178)
+-407 + j*(-224)
+3 + j*(-22)
+177 + j*(288)
+-476 + j*(31)
+-296 + j*(232)
+-331 + j*(-110)
+429 + j*(-240)
+385 + j*(-395)
+-89 + j*(326)
+369 + j*(243)
+-419 + j*(30)
+117 + j*(-298)
+-83 + j*(388)
+427 + j*(119)
+-233 + j*(-222)
+-437 + j*(509)
+-329 + j*(-51)
+184 + j*(238)
+383 + j*(-150)
+398 + j*(204)
+-277 + j*(-255)
+-166 + j*(105)
+409 + j*(-567)
+-312 + j*(-180)
+85 + j*(-119)
+-353 + j*(52)
+-416 + j*(-530)
+-59 + j*(-94)
+-454 + j*(-723)
+321 + j*(148)
+-545 + j*(-355)
+-286 + j*(-40)
+398 + j*(-600)
+144 + j*(-344)
+199 + j*(-606)
+-42 + j*(290)
+-328 + j*(-112)
+-199 + j*(-245)
+303 + j*(-335)
+-484 + j*(-413)
+-314 + j*(98)
+-100 + j*(-88)
+-328 + j*(383)
+-117 + j*(33)
+491 + j*(-299)
+320 + j*(426)
+124 + j*(320)
+-184 + j*(223)
+-165 + j*(-230)
+280 + j*(-183)
+67 + j*(-808)
+104 + j*(177)
+260 + j*(-230)
+454 + j*(-49)
+145 + j*(-433)
+-284 + j*(-306)
+336 + j*(-199)
+-338 + j*(-395)
+168 + j*(-86)
+-537 + j*(-232)
+-396 + j*(-558)
+587 + j*(-207)
+155 + j*(-412)
+-122 + j*(185)
+-648 + j*(-65)
+-167 + j*(-233)
+-371 + j*(308)
+-449 + j*(-25)
+156 + j*(233)
+-207 + j*(243)
+-474 + j*(313)
+325 + j*(6)
+-183 + j*(269)
+-344 + j*(-54)
+-98 + j*(325)
+382 + j*(197)
+-304 + j*(-89)
+100 + j*(-390)
+-471 + j*(-12)
+237 + j*(255)
+247 + j*(-138)
+-98 + j*(-78)
+63 + j*(199)
+-258 + j*(-231)
+-470 + j*(-422)
+-224 + j*(378)
+629 + j*(1)
+-255 + j*(-604)
+-100 + j*(478)
+-19 + j*(430)
+663 + j*(213)
+222 + j*(181)
+-127 + j*(270)
+351 + j*(-373)
+308 + j*(192)
+-149 + j*(240)
+80 + j*(-377)
+120 + j*(-112)
+-96 + j*(-182)
+-8 + j*(-73)
+477 + j*(-154)
+-419 + j*(274)
+-496 + j*(256)
+-240 + j*(410)
+150 + j*(-351)
+-243 + j*(-137)
+-11 + j*(-345)
+100 + j*(197)
+67 + j*(52)
+247 + j*(276)
+106 + j*(404)
+-426 + j*(-358)
+161 + j*(-528)
+211 + j*(233)
+-408 + j*(180)
+334 + j*(464)
+469 + j*(-114)
+278 + j*(178)
+86 + j*(-257)
+78 + j*(-322)
+457 + j*(-159)
+-275 + j*(328)
+-508 + j*(-10)
+209 + j*(89)
+-301 + j*(291)
+-247 + j*(-146)
+259 + j*(177)
+83 + j*(-61)
+-369 + j*(-315)
+-206 + j*(-272)
+-194 + j*(53)
+344 + j*(291)
+242 + j*(-343)
+433 + j*(-74)
+424 + j*(423)
+-332 + j*(160)
+-345 + j*(675)
+209 + j*(-36)
+-152 + j*(-247)
+-177 + j*(434)
+312 + j*(317)
+197 + j*(-103)
+-355 + j*(112)
+-69 + j*(-194)
+400 + j*(118)
+151 + j*(506)
+386 + j*(-337)
+451 + j*(228)
+40 + j*(-25)
+48 + j*(-194)
+-218 + j*(-320)
+207 + j*(-124)
+-117 + j*(-141)
+343 + j*(-224)
+308 + j*(291)
+-247 + j*(-361)
+511 + j*(32)
+228 + j*(91)
+380 + j*(302)
+324 + j*(-119)
+-413 + j*(463)
+292 + j*(281)
+-201 + j*(-165)
+-303 + j*(-211)
+-471 + j*(418)
+-69 + j*(-121)
+-607 + j*(274)
+141 + j*(342)
+-339 + j*(-220)
+-51 + j*(-165)
+229 + j*(-407)
+-151 + j*(263)
+-238 + j*(-291)
+316 + j*(-284)
+279 + j*(-5)
+530 + j*(231)
+362 + j*(-301)
+-351 + j*(88)
+-110 + j*(-561)
+112 + j*(460)
+-511 + j*(-83)
+465 + j*(-271)
+302 + j*(-204)
+164 + j*(355)
+-293 + j*(-134)
+190 + j*(-144)
+306 + j*(343)
+368 + j*(298)
+53 + j*(-6)
+-45 + j*(180)
+-273 + j*(359)
+-361 + j*(58)
+-361 + j*(-168)
+-212 + j*(-321)
+-178 + j*(13)
+186 + j*(-363)
+-138 + j*(276)
+149 + j*(-330)
+-303 + j*(291)
+427 + j*(-233)
+410 + j*(147)
+-484 + j*(243)
+57 + j*(-330)
+357 + j*(-601)
+107 + j*(86)
+402 + j*(-378)
+-295 + j*(-273)
+-211 + j*(-189)
+264 + j*(360)
+525 + j*(78)
+414 + j*(161)
+-354 + j*(-292)
+457 + j*(262)
+-247 + j*(284)
+316 + j*(-690)
+285 + j*(-289)
+109 + j*(-199)
+-414 + j*(-325)
+-316 + j*(151)
+-11 + j*(278)
+296 + j*(57)
+403 + j*(187)
+196 + j*(129)
+-380 + j*(-382)
+-358 + j*(432)
+311 + j*(-158)
+-141 + j*(-752)
+-210 + j*(223)
+181 + j*(-170)
+-144 + j*(479)
+42 + j*(337)
+-118 + j*(-448)
+222 + j*(-74)
+631 + j*(-293)
+339 + j*(-683)
+-165 + j*(141)
+388 + j*(-554)
+-211 + j*(358)
+-309 + j*(110)
+-313 + j*(130)
+223 + j*(560)
+415 + j*(496)
+11 + j*(344)
+634 + j*(-202)
+226 + j*(-28)
+-185 + j*(363)
+-289 + j*(107)
+43 + j*(301)
+91 + j*(-283)
+76 + j*(-579)
+-298 + j*(95)
+31 + j*(84)
+-288 + j*(252)
+194 + j*(413)
+264 + j*(-355)
+165 + j*(-302)
+-120 + j*(101)
+344 + j*(-684)
+-288 + j*(52)
+-290 + j*(-463)
+-135 + j*(286)
+-445 + j*(-125)
+-263 + j*(97)
+-277 + j*(-421)
+302 + j*(-375)
+455 + j*(412)
+-128 + j*(63)
+118 + j*(107)
+-360 + j*(407)
+54 + j*(366)
+-74 + j*(-502)
+234 + j*(242)
+572 + j*(-114)
+197 + j*(-351)
+518 + j*(128)
+477 + j*(462)
+-64 + j*(393)
+-113 + j*(-435)
+303 + j*(-301)
+-221 + j*(146)
+-116 + j*(-151)
+-352 + j*(-286)
+-298 + j*(-105)
+153 + j*(-247)
+539 + j*(7)
+360 + j*(144)
+110 + j*(74)
+328 + j*(28)
+-337 + j*(424)
+129 + j*(-260)
+549 + j*(41)
+-368 + j*(378)
+-253 + j*(-668)
+263 + j*(180)
+253 + j*(-273)
+-412 + j*(212)
+-180 + j*(207)
+-329 + j*(-180)
+154 + j*(-82)
+-102 + j*(197)
+-356 + j*(107)
+-89 + j*(-513)
+-393 + j*(41)
+344 + j*(403)
+245 + j*(286)
+-390 + j*(146)
+184 + j*(-487)
+132 + j*(-408)
+-330 + j*(441)
+-28 + j*(579)
+197 + j*(-210)
+-52 + j*(-171)
+317 + j*(201)
+-162 + j*(-148)
+111 + j*(-285)
+-148 + j*(177)
+-291 + j*(210)
+-358 + j*(-169)
+421 + j*(-378)
+-173 + j*(52)
+19 + j*(-194)
+211 + j*(62)
+-416 + j*(202)
+-296 + j*(194)
+-357 + j*(72)
+-214 + j*(49)
+289 + j*(400)
+-182 + j*(349)
+-583 + j*(-578)
+-322 + j*(232)
+-136 + j*(179)
+276 + j*(397)
+-436 + j*(24)
+-224 + j*(-35)
+74 + j*(110)
+-414 + j*(-103)
+-369 + j*(513)
+-141 + j*(-160)
+309 + j*(346)
+276 + j*(763)
+-186 + j*(401)
+137 + j*(202)
+179 + j*(272)
+-358 + j*(217)
+109 + j*(330)
+-497 + j*(70)
+-352 + j*(288)
+957 + j*(428)
+136 + j*(149)
+-426 + j*(-522)
+91 + j*(52)
+-378 + j*(150)
+-367 + j*(416)
+130 + j*(123)
+-260 + j*(361)
+-31 + j*(-247)
+346 + j*(-375)
+166 + j*(-52)
+158 + j*(-178)
+-497 + j*(201)
+376 + j*(-266)
+-416 + j*(258)
+-198 + j*(175)
+-107 + j*(-139)
+-255 + j*(77)
+-380 + j*(267)
+-342 + j*(277)
+-279 + j*(-194)
+217 + j*(9)
+65 + j*(-134)
+-23 + j*(-395)
+195 + j*(262)
+86 + j*(-10)
+-37 + j*(278)
+-40 + j*(-135)
+6 + j*(-1)
+144 + j*(163)
+-16 + j*(-21)
+-5 + j*(147)
+-47 + j*(-260)
+-321 + j*(172)
+238 + j*(-30)
+216 + j*(81)
+11 + j*(-53)
+-47 + j*(-23)
+93 + j*(-51)
+-1 + j*(-8)
+-76 + j*(-121)
+-240 + j*(0)
+-38 + j*(-183)
+0 + j*(163)
+234 + j*(-31)
+-15 + j*(244)
+76 + j*(-4)
+-153 + j*(257)
+173 + j*(26)
+-37 + j*(-276)
+-131 + j*(206)
+65 + j*(192)
+278 + j*(-243)
+-161 + j*(-1)
+44 + j*(-173)
+167 + j*(245)
+-102 + j*(122)
+-47 + j*(-253)
+-21 + j*(-165)
+-1 + j*(57)
+10 + j*(-13)
+48 + j*(188)
+-45 + j*(-52)
+-17 + j*(-233)
+32 + j*(-101)
+-295 + j*(-116)
+388 + j*(128)
+-134 + j*(-117)
+-81 + j*(-160)
+-45 + j*(-393)
+72 + j*(-60)
+-24 + j*(-247)
+208 + j*(-424)
+280 + j*(-19)
+-87 + j*(276)
+23 + j*(70)
+88 + j*(-285)
+1 + j*(-189)
+121 + j*(-41)
+-55 + j*(-153)
+-192 + j*(147)
+98 + j*(-22)
+0 + j*(218)
+-347 + j*(138)
+-95 + j*(-165)
+214 + j*(-88)
+-113 + j*(-315)
+-131 + j*(390)
+-264 + j*(144)
+114 + j*(-233)
+-54 + j*(-50)
+-342 + j*(124)
+-173 + j*(-27)
+140 + j*(-115)
+48 + j*(361)
+-327 + j*(187)
+-40 + j*(-163)
+-104 + j*(229)
+144 + j*(-105)
+-83 + j*(-214)
+183 + j*(117)
+-150 + j*(75)
+160 + j*(-52)
+-6 + j*(-65)
+209 + j*(132)
+-195 + j*(275)
+75 + j*(-323)
+-33 + j*(-221)
+92 + j*(-206)
+8 + j*(-38)
+-83 + j*(-167)
+68 + j*(198)
+31 + j*(13)
+-310 + j*(318)
+105 + j*(175)
+5 + j*(-67)
+42 + j*(-11)
+107 + j*(29)
+79 + j*(-83)
+-68 + j*(-226)
+366 + j*(92)
+-146 + j*(172)
+74 + j*(386)
+160 + j*(-37)
+327 + j*(-145)
+-189 + j*(208)
+-25 + j*(-168)
+93 + j*(-51)
+15 + j*(202)
+4 + j*(2)
+37 + j*(152)
+-97 + j*(-64)
+276 + j*(257)
+-67 + j*(-88)
+-58 + j*(-4)
+-297 + j*(242)
+-194 + j*(-285)
+-26 + j*(139)
+-220 + j*(271)
+27 + j*(-36)
+-277 + j*(98)
+182 + j*(-327)
+314 + j*(211)
+-52 + j*(-117)
+-92 + j*(64)
+-197 + j*(-198)
+-291 + j*(16)
+45 + j*(100)
+7 + j*(-226)
+-6 + j*(-90)
+-440 + j*(110)
+-20 + j*(144)
+296 + j*(-84)
+-49 + j*(29)
+-97 + j*(416)
+-202 + j*(-2)
+31 + j*(-51)
+-156 + j*(-209)
+-198 + j*(-40)
+66 + j*(82)
+-215 + j*(378)
+414 + j*(23)
+-291 + j*(122)
+221 + j*(-47)
+-374 + j*(33)
+348 + j*(-216)
+187 + j*(70)
+129 + j*(-145)
+-108 + j*(-35)
+-100 + j*(-327)
+228 + j*(-83)
+334 + j*(107)
+-380 + j*(-332)
+-64 + j*(93)
+177 + j*(-193)
+-50 + j*(-9)
+-325 + j*(152)
+-71 + j*(111)
+291 + j*(-116)
+-158 + j*(229)
+-150 + j*(-164)
+36 + j*(126)
+8 + j*(-73)
+190 + j*(-161)
+-25 + j*(-20)
+130 + j*(99)
+35 + j*(276)
+242 + j*(171)
+-145 + j*(-106)
+103 + j*(-179)
+127 + j*(-1)
+-112 + j*(-151)
+-141 + j*(308)
+199 + j*(-22)
+23 + j*(156)
+-23 + j*(-225)
+-168 + j*(37)
+-245 + j*(83)
+145 + j*(40)
+-308 + j*(-13)
+39 + j*(7)
+16 + j*(-214)
+87 + j*(-40)
+-126 + j*(-33)
+371 + j*(313)
+80 + j*(-34)
+8 + j*(175)
+-110 + j*(368)
+-66 + j*(130)
+124 + j*(-55)
+-166 + j*(-139)
+119 + j*(126)
+-124 + j*(245)
+-150 + j*(110)
+161 + j*(-21)
+52 + j*(-105)
+-98 + j*(27)
+-139 + j*(125)
+38 + j*(76)
+-90 + j*(259)
+-3 + j*(23)
+31 + j*(84)
+292 + j*(-22)
+-146 + j*(505)
+293 + j*(71)
+-9 + j*(198)
+9 + j*(15)
+-60 + j*(-96)
+-231 + j*(241)
+-232 + j*(-240)
+211 + j*(-120)
+-145 + j*(54)
+3 + j*(16)
+-204 + j*(-413)
+-373 + j*(-87)
+-5 + j*(128)
+-222 + j*(-5)
+-42 + j*(-223)
+-224 + j*(33)
+-10 + j*(-8)
+-134 + j*(25)
+-187 + j*(351)
+109 + j*(-105)
+114 + j*(-36)
+-226 + j*(84)
+-168 + j*(-105)
+-91 + j*(-60)
+55 + j*(-227)
+-25 + j*(-95)
+-35 + j*(325)
+59 + j*(-122)
+81 + j*(-134)
+-172 + j*(117)
+-4 + j*(141)
+30 + j*(-124)
+-381 + j*(-111)
+-119 + j*(-175)
+103 + j*(-36)
+-96 + j*(-64)
+197 + j*(-59)
+52 + j*(-100)
+-151 + j*(125)
+-132 + j*(-57)
+-35 + j*(-74)
+52 + j*(-267)
+139 + j*(4)
+-177 + j*(177)
+-141 + j*(-110)
+-64 + j*(372)
+-204 + j*(-33)
+113 + j*(187)
+-123 + j*(91)
+177 + j*(-75)
+56 + j*(-164)
+-342 + j*(178)
+-83 + j*(124)
+71 + j*(-26)
+-179 + j*(76)
+-7 + j*(-199)
+-92 + j*(94)
+67 + j*(-88)
+62 + j*(197)
+144 + j*(223)
+-164 + j*(25)
+148 + j*(-99)
+176 + j*(-33)
+96 + j*(-22)
+4 + j*(-28)
+8 + j*(-88)
+-38 + j*(69)
+20 + j*(27)
+-151 + j*(-105)
+46 + j*(279)
+-182 + j*(-129)
+187 + j*(-45)
+125 + j*(41)
+-105 + j*(260)
+139 + j*(-175)
+197 + j*(62)
+-47 + j*(-6)
+8 + j*(-264)
+145 + j*(-122)
+-71 + j*(-253)
+-63 + j*(233)
+121 + j*(-4)
+-58 + j*(111)
+358 + j*(151)
+-23 + j*(-28)
+11 + j*(-8)
+11 + j*(26)
+-92 + j*(-46)
+-100 + j*(336)
+-50 + j*(31)
+-165 + j*(-91)
+116 + j*(-206)
+65 + j*(272)
+-177 + j*(163)
+-134 + j*(44)
+194 + j*(84)
+214 + j*(-51)
+-225 + j*(210)
+88 + j*(158)
+120 + j*(-69)
+111 + j*(115)
+139 + j*(205)
+329 + j*(-174)
+47 + j*(82)
+-327 + j*(-317)
+37 + j*(154)
+84 + j*(14)
+84 + j*(-11)
+221 + j*(155)
+-364 + j*(194)
+113 + j*(43)
+4 + j*(21)
+-107 + j*(-91)
+-89 + j*(26)
+-249 + j*(-27)
+23 + j*(132)
+127 + j*(-84)
+-12 + j*(-115)
+-71 + j*(-11)
+-30 + j*(-1)
+-172 + j*(138)
+335 + j*(131)
+-389 + j*(-301)
+-227 + j*(-21)
+31 + j*(-216)
+-5 + j*(-132)
+-144 + j*(-299)
+-165 + j*(228)
+3 + j*(-140)
+-32 + j*(64)
+-133 + j*(62)
+-59 + j*(-167)
+-209 + j*(-176)
+313 + j*(-33)
+-28 + j*(137)
+184 + j*(219)
+-16 + j*(294)
+-196 + j*(-70)
+-86 + j*(38)
+-75 + j*(-91)
+356 + j*(226)
+-60 + j*(390)
+22 + j*(-121)
+90 + j*(76)
+-141 + j*(-10)
+87 + j*(57)
+-245 + j*(-4)
+88 + j*(-81)
+-40 + j*(148)
+-1 + j*(209)
+216 + j*(24)
+26 + j*(13)
+-249 + j*(45)
+251 + j*(-110)
+-366 + j*(-232)
+13 + j*(130)
+17 + j*(271)
+-126 + j*(-201)
+-52 + j*(-122)
+102 + j*(-264)
+74 + j*(206)
+317 + j*(-79)
+122 + j*(13)
+186 + j*(132)
+-86 + j*(-180)
+-253 + j*(-194)
+86 + j*(-68)
+-88 + j*(-161)
+159 + j*(-275)
+146 + j*(-74)
+-85 + j*(-33)
+-16 + j*(-133)
+-136 + j*(-61)
+-112 + j*(-103)
+-156 + j*(57)
+43 + j*(-80)
+58 + j*(193)
+-187 + j*(-203)
+197 + j*(191)
+277 + j*(26)
+4 + j*(-117)
+-81 + j*(182)
+-8 + j*(-11)
+54 + j*(-61)
+-351 + j*(64)
+-178 + j*(-216)
+-4 + j*(-388)
+-141 + j*(91)
+-140 + j*(-93)
+33 + j*(197)
+63 + j*(-147)
+17 + j*(132)
+10 + j*(127)
+-253 + j*(192)
+-36 + j*(107)
+125 + j*(-66)
+-131 + j*(-82)
+-250 + j*(-14)
+-285 + j*(5)
+119 + j*(-23)
+28 + j*(253)
+-49 + j*(330)
+73 + j*(24)
+82 + j*(40)
+4 + j*(179)
+44 + j*(-324)
+-77 + j*(64)
+-16 + j*(-161)
+181 + j*(-55)
+-248 + j*(-226)
+-185 + j*(130)
+108 + j*(110)
+-337 + j*(-95)
+117 + j*(-192)
+-18 + j*(104)
+185 + j*(204)
+-106 + j*(28)
+-400 + j*(57)
+-91 + j*(47)
+-243 + j*(-143)
+-141 + j*(37)
+216 + j*(79)
+-63 + j*(23)
+1 + j*(-54)
+-258 + j*(254)
+-26 + j*(-60)
+203 + j*(132)
+260 + j*(57)
+-13 + j*(209)
+46 + j*(-156)
+55 + j*(294)
+-322 + j*(-226)
+101 + j*(118)
+163 + j*(-56)
+189 + j*(-47)
+209 + j*(-12)
+140 + j*(146)
+-81 + j*(282)
+-238 + j*(20)
+-152 + j*(180)
+-140 + j*(-190)
+146 + j*(-109)
+-63 + j*(-105)
+49 + j*(6)
+-37 + j*(-4)
+25 + j*(-124)
+21 + j*(-45)
+214 + j*(209)
+6 + j*(-68)
+-174 + j*(189)
+79 + j*(-70)
+103 + j*(167)
+-227 + j*(171)
+-139 + j*(-351)
+245 + j*(-18)
+-17 + j*(325)
+-490 + j*(-99)
+301 + j*(81)
+218 + j*(-4)
+32 + j*(-16)
+274 + j*(-51)
+-122 + j*(21)
+95 + j*(7)
+295 + j*(-64)
+-18 + j*(245)
+-122 + j*(47)
+86 + j*(7)
+122 + j*(-269)
+35 + j*(-125)
+29 + j*(34)
+187 + j*(53)
+-205 + j*(-129)
+-29 + j*(264)
+93 + j*(-149)
+-36 + j*(-107)
+-225 + j*(255)
+371 + j*(-177)
+-142 + j*(11)
+-230 + j*(217)
+-100 + j*(-18)
+40 + j*(163)
+-57 + j*(-83)
+-293 + j*(316)
+-86 + j*(-52)
+111 + j*(21)
+-91 + j*(-33)
+-121 + j*(-47)
+-133 + j*(-12)
+-7 + j*(124)
+-154 + j*(-30)
+-74 + j*(-225)
+14 + j*(-54)
+-176 + j*(252)
+-217 + j*(-202)
+65 + j*(-130)
+144 + j*(192)
+209 + j*(-108)
+11 + j*(264)
+-10 + j*(-170)
+-9 + j*(-129)
+-90 + j*(-147)
+108 + j*(44)
+-19 + j*(99)
+-256 + j*(53)
+301 + j*(-249)
+-164 + j*(124)
+-231 + j*(-234)
+-64 + j*(-274)
+-40 + j*(28)
+54 + j*(-162)
+99 + j*(72)
+78 + j*(135)
+-120 + j*(165)
+123 + j*(-209)
+-23 + j*(306)
+-133 + j*(-216)
+-35 + j*(121)
+260 + j*(264)
+134 + j*(25)
+-32 + j*(255)
+-245 + j*(-106)
+-35 + j*(-74)
+192 + j*(-317)
+-175 + j*(286)
+-25 + j*(-154)
+-146 + j*(29)
+40 + j*(181)
+-10 + j*(119)
+-47 + j*(-151)
+161 + j*(105)
+205 + j*(-194)
+-270 + j*(28)
+-18 + j*(1)
+-131 + j*(125)
+176 + j*(-149)
+21 + j*(80)
+13 + j*(-211)
+-273 + j*(123)
+-182 + j*(176)
+-247 + j*(87)
+72 + j*(141)
+-78 + j*(-149)
+-96 + j*(158)
+-235 + j*(-231)
+-2 + j*(194)
+44 + j*(192)
+-6 + j*(-80)
+37 + j*(-110)
+-148 + j*(-328)
+-267 + j*(251)
+168 + j*(175)
+97 + j*(30)
+-54 + j*(-40)
+-168 + j*(89)
+-72 + j*(-33)
+-68 + j*(-249)
+-100 + j*(48)
+64 + j*(-49)
+-161 + j*(150)
+31 + j*(137)
+27 + j*(-29)
+243 + j*(28)
+-22 + j*(-22)
+94 + j*(22)
+-238 + j*(-66)
+-6 + j*(-87)
+-109 + j*(99)
+184 + j*(204)
+-250 + j*(-3)
+263 + j*(-223)
+-428 + j*(-54)
+155 + j*(-169)
+43 + j*(-285)
+-182 + j*(-257)
+71 + j*(-199)
+37 + j*(-130)
+51 + j*(41)
+-75 + j*(-66)
+-95 + j*(105)
+33 + j*(-125)
+-195 + j*(-38)
+281 + j*(-226)
+-16 + j*(-185)
+85 + j*(64)
+-13 + j*(-259)
+25 + j*(-330)
+342 + j*(218)
+91 + j*(331)
+-245 + j*(-42)
+-240 + j*(224)
+-66 + j*(-228)
+-37 + j*(182)
+128 + j*(214)
+109 + j*(129)
+-244 + j*(135)
+237 + j*(178)
+-14 + j*(-62)
+-26 + j*(11)
+-275 + j*(-257)
+99 + j*(-284)
+97 + j*(501)
+-361 + j*(-166)
+-69 + j*(96)
+-25 + j*(-182)
+227 + j*(94)
+157 + j*(445)
+-29 + j*(-144)
+368 + j*(-150)
+40 + j*(-45)
+-46 + j*(143)
+56 + j*(-343)
+-4 + j*(62)
+272 + j*(-117)
+-291 + j*(83)
+-387 + j*(111)
+-93 + j*(-18)
+250 + j*(-13)
+-193 + j*(48)
+59 + j*(706)
+264 + j*(228)
+33 + j*(-315)
+404 + j*(-147)
+-79 + j*(1)
+-296 + j*(-135)
+-250 + j*(-423)
+36 + j*(27)
+64 + j*(-75)
+-195 + j*(-198)
+-51 + j*(-132)
+-103 + j*(204)
+261 + j*(-173)
+44 + j*(-41)
+-77 + j*(55)
+-18 + j*(-163)
+-241 + j*(106)
+76 + j*(-120)
+346 + j*(323)
+-168 + j*(-142)
+83 + j*(-60)
+30 + j*(262)
+250 + j*(-2)
+-146 + j*(-236)
+-66 + j*(-267)
+-28 + j*(-10)
+-58 + j*(-90)
+139 + j*(-92)
+143 + j*(105)
+-192 + j*(525)
+119 + j*(158)
+15 + j*(-111)
+25 + j*(-11)
+-103 + j*(144)
+-283 + j*(-173)
+356 + j*(-98)
+-53 + j*(274)
+-1 + j*(94)
+204 + j*(91)
+127 + j*(-239)
+-121 + j*(62)
+-2 + j*(145)
+134 + j*(-30)
+-77 + j*(320)
+148 + j*(27)
+-372 + j*(-130)
+274 + j*(8)
+71 + j*(-80)
+333 + j*(-121)
+-292 + j*(-135)
+205 + j*(479)
+-37 + j*(-227)
+62 + j*(61)
+83 + j*(-158)
+279 + j*(-41)
+31 + j*(132)
+-54 + j*(472)
+-214 + j*(261)
+148 + j*(-199)
+73 + j*(499)
+78 + j*(-23)
+108 + j*(-213)
+25 + j*(-210)
+12 + j*(315)
+-42 + j*(63)
+-86 + j*(119)
+76 + j*(246)
+211 + j*(-351)
+-42 + j*(-95)
+-47 + j*(156)
+37 + j*(144)
+-249 + j*(-69)
+-274 + j*(-139)
+110 + j*(-13)
+-269 + j*(21)
+173 + j*(-42)
+55 + j*(110)
+-130 + j*(-165)
+-187 + j*(-255)
+-53 + j*(-127)
+262 + j*(-6)
+16 + j*(28)
+-292 + j*(-63)
+-219 + j*(-310)
+-93 + j*(404)
+-34 + j*(60)
+78 + j*(-91)
+-74 + j*(146)
+-162 + j*(-143)
+-127 + j*(64)
+400 + j*(-46)
+-81 + j*(373)
+408 + j*(-136)
+-45 + j*(13)
+-161 + j*(-119)
+39 + j*(310)
+50 + j*(-281)
+-64 + j*(4)
+305 + j*(69)
+-59 + j*(45)
+-137 + j*(416)
+56 + j*(-198)
+273 + j*(-237)
+141 + j*(173)
+18 + j*(-60)
+-41 + j*(225)
+236 + j*(297)
+80 + j*(18)
+-388 + j*(277)
+180 + j*(-110)
+-67 + j*(-74)
+-215 + j*(-148)
+8 + j*(242)
+-293 + j*(-219)
+-88 + j*(81)
+117 + j*(-18)
+78 + j*(-66)
+-80 + j*(-532)
+141 + j*(21)
+-211 + j*(-342)
+-204 + j*(-96)
+-131 + j*(-108)
+124 + j*(-298)
+43 + j*(-57)
+13 + j*(220)
+206 + j*(33)
+43 + j*(-93)
+-8 + j*(-59)
+300 + j*(-127)
+-181 + j*(218)
+110 + j*(-66)
+148 + j*(372)
+-188 + j*(66)
+28 + j*(-363)
+-211 + j*(37)
+110 + j*(22)
+-132 + j*(110)
+-122 + j*(-109)
+-124 + j*(241)
+-132 + j*(8)
+-109 + j*(-1)
+-186 + j*(-119)
+-202 + j*(-288)
+-29 + j*(143)
+115 + j*(-307)
+-51 + j*(-297)
+-89 + j*(-169)
+26 + j*(299)
+66 + j*(76)
+-62 + j*(133)
+-110 + j*(-276)
+410 + j*(-174)
+-315 + j*(-66)
+-5 + j*(165)
+175 + j*(-115)
+-167 + j*(-226)
+-148 + j*(273)
+197 + j*(-184)
+-124 + j*(159)
+285 + j*(-25)
+221 + j*(13)
+102 + j*(-86)
+56 + j*(183)
+-1 + j*(-25)
+71 + j*(-21)
+-281 + j*(156)
+-62 + j*(40)
+-3 + j*(153)
+159 + j*(323)
+-15 + j*(173)
+-105 + j*(-136)
+1 + j*(25)
+7 + j*(154)
+-380 + j*(-333)
+-211 + j*(293)
+11 + j*(-76)
+-137 + j*(-161)
+44 + j*(-180)
+378 + j*(-2)
+322 + j*(-284)
+217 + j*(34)
+107 + j*(161)
+-20 + j*(156)
+36 + j*(-98)
+-142 + j*(11)
+117 + j*(105)
+51 + j*(-16)
+253 + j*(-144)
+-33 + j*(-183)
+-190 + j*(-316)
+-55 + j*(207)
+-121 + j*(440)
+-301 + j*(-78)
+-73 + j*(-63)
+95 + j*(-9)
+-110 + j*(196)
+329 + j*(-70)
+-90 + j*(34)
+-246 + j*(177)
+-52 + j*(-62)
+40 + j*(-156)
+13 + j*(67)
+-311 + j*(129)
+101 + j*(88)
+-107 + j*(107)
+-245 + j*(-196)
+-18 + j*(216)
+126 + j*(161)
+-21 + j*(194)
+-64 + j*(-221)
+40 + j*(-85)
+107 + j*(168)
+24 + j*(84)
+-122 + j*(15)
+-183 + j*(-73)
+133 + j*(-38)
+-105 + j*(37)
+-154 + j*(35)
+100 + j*(150)
+500 + j*(-12)
+115 + j*(4)
+290 + j*(41)
+243 + j*(-122)
+-17 + j*(-80)
+49 + j*(-163)
+-144 + j*(-378)
+-375 + j*(-136)
+35 + j*(-108)
+-19 + j*(-320)
+-138 + j*(-10)
+169 + j*(-57)
+-212 + j*(114)
+375 + j*(-63)
+-171 + j*(117)
+205 + j*(-184)
+-233 + j*(77)
+74 + j*(-168)
+-19 + j*(142)
+-77 + j*(124)
+-53 + j*(-18)
+51 + j*(-360)
+-148 + j*(-2)
+226 + j*(-23)
+61 + j*(-165)
+-67 + j*(-58)
+278 + j*(-44)
+412 + j*(-89)
+-74 + j*(-80)
+-32 + j*(151)
+-106 + j*(226)
+190 + j*(-121)
+-247 + j*(-198)
+36 + j*(-45)
+-82 + j*(311)
+115 + j*(1)
+-379 + j*(4)
+172 + j*(38)
+-187 + j*(134)
+-156 + j*(-50)
+-126 + j*(-186)
+-20 + j*(-57)
+312 + j*(-151)
+-218 + j*(180)
+-42 + j*(-283)
+-98 + j*(112)
+145 + j*(57)
+21 + j*(-140)
+223 + j*(119)
+71 + j*(-245)
+134 + j*(243)
+-80 + j*(252)
+-33 + j*(-303)
+-5 + j*(84)
+-161 + j*(-120)
+-268 + j*(-303)
+-62 + j*(-187)
+-151 + j*(-25)
+164 + j*(-359)
+-130 + j*(293)
+-35 + j*(-424)
+-359 + j*(368)
+79 + j*(235)
+344 + j*(-23)
+-98 + j*(-108)
+157 + j*(221)
+-342 + j*(-91)
+35 + j*(-46)
+-111 + j*(-6)
+119 + j*(-21)
+-146 + j*(144)
+167 + j*(36)
+-347 + j*(-155)
+238 + j*(4)
+37 + j*(249)
+-159 + j*(-104)
+-79 + j*(348)
+58 + j*(199)
+-2 + j*(-211)
+347 + j*(73)
+28 + j*(-163)
+-150 + j*(143)
+-34 + j*(-91)
+-53 + j*(390)
+-163 + j*(135)
+-274 + j*(-153)
+69 + j*(194)
+131 + j*(-263)
+-412 + j*(177)
+-86 + j*(-347)
+52 + j*(-134)
+264 + j*(84)
+91 + j*(161)
+-64 + j*(-158)
+-34 + j*(-561)
+-90 + j*(-67)
+-67 + j*(-100)
+117 + j*(-13)
+16 + j*(-20)
+144 + j*(128)
+378 + j*(86)
+96 + j*(-165)
+-218 + j*(-17)
+78 + j*(281)
+221 + j*(-293)
+161 + j*(257)
+170 + j*(98)
+-197 + j*(82)
+-374 + j*(211)
+331 + j*(-194)
+166 + j*(-191)
+233 + j*(-141)
+21 + j*(-85)
+-260 + j*(20)
+-378 + j*(212)
+54 + j*(337)
+217 + j*(342)
+85 + j*(87)
+-145 + j*(105)
+310 + j*(152)
+-69 + j*(137)
+138 + j*(-73)
+-54 + j*(-25)
+-87 + j*(-16)
+133 + j*(-134)
+137 + j*(-126)
+133 + j*(34)
+-137 + j*(7)
+325 + j*(0)
+-141 + j*(185)
+89 + j*(-3)
+-195 + j*(-91)
+137 + j*(121)
+-211 + j*(-122)
+-57 + j*(88)
+-246 + j*(-217)
+130 + j*(-260)
+-226 + j*(-54)
+-120 + j*(-135)
+332 + j*(-94)
+-28 + j*(-57)
+274 + j*(91)
+49 + j*(-37)
+173 + j*(119)
+141 + j*(46)
+-79 + j*(-44)
+95 + j*(-190)
+-48 + j*(-25)
+-94 + j*(-227)
+-261 + j*(-165)
+-60 + j*(87)
+-52 + j*(93)
+-146 + j*(-202)
+24 + j*(-27)
+110 + j*(-47)
+-88 + j*(-157)
+-37 + j*(305)
+-108 + j*(11)
+-304 + j*(-94)
+0 + j*(86)
+308 + j*(91)
+-243 + j*(121)
+156 + j*(-95)
+59 + j*(-81)
+-126 + j*(138)
+177 + j*(32)
+-28 + j*(-145)
+140 + j*(306)
+44 + j*(-207)
+4 + j*(-25)
+69 + j*(91)
+-279 + j*(-240)
+-209 + j*(-70)
+-236 + j*(-49)
+-266 + j*(119)
+-29 + j*(40)
+246 + j*(-281)
+-91 + j*(170)
+-66 + j*(-84)
+257 + j*(-77)
+169 + j*(205)
+-49 + j*(-64)
+129 + j*(235)
+153 + j*(-272)
+25 + j*(167)
+45 + j*(-199)
+160 + j*(-20)
+-114 + j*(139)
+-255 + j*(-46)
+276 + j*(-267)
+145 + j*(72)
+52 + j*(-160)
+-346 + j*(13)
+-107 + j*(203)
+-278 + j*(286)
+-279 + j*(300)
+-83 + j*(-110)
+40 + j*(69)
+77 + j*(-233)
+177 + j*(55)
+135 + j*(-241)
+25 + j*(30)
+100 + j*(81)
+293 + j*(-232)
+-99 + j*(206)
+-428 + j*(232)
+135 + j*(-12)
+227 + j*(-14)
+64 + j*(-328)
+45 + j*(-37)
+-197 + j*(-253)
+126 + j*(103)
+113 + j*(4)
+-6 + j*(-86)
+11 + j*(130)
+45 + j*(-115)
+3 + j*(141)
+-295 + j*(228)
+-132 + j*(-34)
+328 + j*(7)
+-10 + j*(-414)
+174 + j*(145)
+108 + j*(-86)
+-244 + j*(10)
+-16 + j*(-123)
+-77 + j*(-84)
+98 + j*(-405)
+131 + j*(-130)
+-358 + j*(276)
+-59 + j*(-46)
+-523 + j*(75)
+-109 + j*(-81)
+-3 + j*(47)
+197 + j*(207)
+180 + j*(-38)
+286 + j*(20)
+-299 + j*(-468)
+107 + j*(-59)
+-273 + j*(-121)
+-14 + j*(-8)
+-58 + j*(-18)
+123 + j*(266)
+82 + j*(91)
+-117 + j*(70)
+328 + j*(213)
+165 + j*(-51)
+234 + j*(-64)
+192 + j*(-102)
+25 + j*(81)
+-20 + j*(30)
+54 + j*(-132)
+-57 + j*(91)
+6 + j*(101)
+-6 + j*(66)
+101 + j*(-100)
+95 + j*(49)
+160 + j*(272)
+173 + j*(-262)
+134 + j*(106)
+-59 + j*(9)
+287 + j*(259)
+-105 + j*(-248)
+-156 + j*(-380)
+-287 + j*(141)
+-98 + j*(-66)
+16 + j*(52)
+63 + j*(103)
+35 + j*(128)
+-104 + j*(-173)
+86 + j*(226)
+33 + j*(92)
+149 + j*(49)
+77 + j*(-76)
+-126 + j*(23)
+-417 + j*(13)
+-241 + j*(152)
+-30 + j*(-218)
+-176 + j*(-159)
+93 + j*(105)
+150 + j*(79)
+163 + j*(66)
+209 + j*(27)
+21 + j*(-233)
+-144 + j*(16)
+130 + j*(16)
+322 + j*(192)
+-192 + j*(50)
+230 + j*(-177)
+98 + j*(-100)
+-127 + j*(-187)
+-153 + j*(33)
+246 + j*(-37)
+147 + j*(-141)
+-211 + j*(202)
+265 + j*(177)
+137 + j*(43)
+538 + j*(218)
+-583 + j*(125)
+52 + j*(42)
+165 + j*(-288)
+-336 + j*(368)
+175 + j*(-170)
+-441 + j*(240)
+149 + j*(129)
+-235 + j*(148)
+-38 + j*(-30)
+-76 + j*(-467)
+213 + j*(-158)
+16 + j*(-30)
+-51 + j*(-43)
+-37 + j*(202)
+16 + j*(-47)
+199 + j*(-107)
+-161 + j*(105)
+-114 + j*(175)
+-57 + j*(-124)
+13 + j*(-55)
+148 + j*(-185)
+-76 + j*(-110)
+-127 + j*(95)
+629 + j*(323)
+75 + j*(-234)
+-103 + j*(-122)
+88 + j*(-91)
+-88 + j*(-165)
+-19 + j*(47)
+-55 + j*(197)
+-31 + j*(-1)
+-206 + j*(52)
+-128 + j*(108)
+218 + j*(58)
+-254 + j*(-185)
+-171 + j*(-105)
+54 + j*(161)
+31 + j*(41)
+-173 + j*(210)
+-4 + j*(45)
+-276 + j*(33)
+-270 + j*(92)
+136 + j*(-105)
+71 + j*(-156)
+21 + j*(298)
+-134 + j*(284)
+138 + j*(8)
+-62 + j*(483)
+-495 + j*(62)
+-231 + j*(-243)
+-231 + j*(139)
+117 + j*(56)
+-121 + j*(-21)
+-205 + j*(-68)
+46 + j*(-148)
+272 + j*(-71)
+22 + j*(-134)
+-88 + j*(170)
+227 + j*(-7)
+194 + j*(-216)
+-105 + j*(-83)
+35 + j*(-38)
+-62 + j*(-11)
+-25 + j*(-57)
+-165 + j*(334)
+59 + j*(-33)
+-66 + j*(54)
+40 + j*(-2)
+-113 + j*(87)
+61 + j*(-245)
+47 + j*(-117)
+71 + j*(-265)
+177 + j*(298)
+28 + j*(-226)
+255 + j*(-117)
+91 + j*(-88)
+-136 + j*(-4)
+122 + j*(162)
+-66 + j*(156)
+-35 + j*(190)
+112 + j*(233)
+37 + j*(-218)
+-210 + j*(136)
+-117 + j*(199)
+-121 + j*(21)
+21 + j*(42)
+-133 + j*(-1)
+261 + j*(67)
+274 + j*(-211)
+117 + j*(109)
+-59 + j*(-67)
+-262 + j*(-350)
+49 + j*(29)
+-164 + j*(-71)
+-7 + j*(148)
+-145 + j*(-25)
+110 + j*(66)
+-63 + j*(-243)
+45 + j*(371)
+70 + j*(111)
+-69 + j*(-186)
+170 + j*(-42)
+7 + j*(18)
+-207 + j*(-57)
+52 + j*(-413)
+198 + j*(303)
+42 + j*(-6)
+162 + j*(131)
+-103 + j*(-41)
+-161 + j*(75)
+-18 + j*(137)
+63 + j*(192)
+317 + j*(201)
+-246 + j*(-300)
+81 + j*(194)
+410 + j*(-223)
+168 + j*(109)
+-35 + j*(-319)
+-192 + j*(-197)
+-59 + j*(293)
+-138 + j*(-165)
+-124 + j*(-127)
+161 + j*(-1)
+-225 + j*(252)
+1 + j*(6)
+66 + j*(-69)
+-95 + j*(33)
+33 + j*(-151)
+-37 + j*(332)
+38 + j*(-76)
+113 + j*(-186)
+-132 + j*(-240)
+-67 + j*(125)
+-87 + j*(-121)
+-51 + j*(11)
+436 + j*(-5)
+5 + j*(4)
+319 + j*(-137)
+26 + j*(-105)
+-58 + j*(251)
+49 + j*(-78)
+-159 + j*(-67)
+82 + j*(177)
+-57 + j*(-229)
+150 + j*(54)
+39 + j*(-21)
+23 + j*(-116)
+83 + j*(154)
+-116 + j*(-146)
+35 + j*(35)
+129 + j*(66)
+-139 + j*(-21)
+-247 + j*(-43)
+66 + j*(201)
+-48 + j*(-122)
+115 + j*(-10)
+59 + j*(-78)
+-135 + j*(325)
+186 + j*(94)
+321 + j*(64)
+-243 + j*(-163)
+-21 + j*(219)
+92 + j*(18)
+-138 + j*(-308)
+116 + j*(-98)
+-293 + j*(-9)
+-483 + j*(-84)
+-51 + j*(99)
+-34 + j*(-354)
+44 + j*(124)
+-294 + j*(-137)
+-216 + j*(-135)
+122 + j*(-151)
+-213 + j*(-472)
+-165 + j*(134)
+184 + j*(-23)
+-178 + j*(-216)
+71 + j*(-120)
+35 + j*(107)
+-88 + j*(115)
+394 + j*(-350)
+261 + j*(-11)
+18 + j*(69)
+94 + j*(-419)
+57 + j*(-196)
+-62 + j*(-337)
+-86 + j*(-111)
+-284 + j*(-116)
+-260 + j*(-87)
+-50 + j*(-44)
+266 + j*(117)
+37 + j*(-122)
+-249 + j*(80)
+59 + j*(108)
+151 + j*(-60)
+-13 + j*(60)
+44 + j*(18)
+233 + j*(108)
+305 + j*(-136)
+-246 + j*(-6)
+-122 + j*(-25)
+-132 + j*(-170)
+-2 + j*(34)
+93 + j*(-3)
+-87 + j*(93)
+190 + j*(16)
+192 + j*(314)
+122 + j*(184)
+185 + j*(272)
+-151 + j*(-226)
+58 + j*(181)
+-39 + j*(-141)
+-36 + j*(-188)
+-96 + j*(158)
+-15 + j*(-67)
+-89 + j*(-180)
+225 + j*(-103)
+233 + j*(-173)
+169 + j*(-23)
+-7 + j*(-106)
+165 + j*(-170)
+-112 + j*(-73)
+-428 + j*(-307)
+-46 + j*(458)
+235 + j*(-32)
+255 + j*(268)
+117 + j*(-291)
+45 + j*(99)
+-194 + j*(-226)
+103 + j*(-133)
+107 + j*(-172)
+-18 + j*(-30)
+-3 + j*(-140)
+-146 + j*(-248)
+127 + j*(12)
+-25 + j*(158)
+199 + j*(170)
+334 + j*(103)
+38 + j*(218)
+-57 + j*(270)
+-229 + j*(6)
+-359 + j*(288)
+100 + j*(107)
+168 + j*(-62)
+127 + j*(-205)
+-25 + j*(-194)
+60 + j*(-344)
+-257 + j*(-204)
+205 + j*(47)
+63 + j*(6)
+286 + j*(-307)
+190 + j*(46)
+-404 + j*(24)
+117 + j*(74)
+17 + j*(-186)
+-358 + j*(70)
+-447 + j*(50)
+317 + j*(-105)
+-300 + j*(-24)
+-170 + j*(-203)
+-18 + j*(-217)
+401 + j*(59)
+-368 + j*(74)
+227 + j*(-190)
+150 + j*(6)
+431 + j*(-158)
+251 + j*(-187)
+-59 + j*(-158)
+-281 + j*(-172)
+-202 + j*(-277)
+226 + j*(-39)
+-74 + j*(-202)
+32 + j*(257)
+-249 + j*(-104)
+-342 + j*(18)
+-42 + j*(276)
+20 + j*(-174)
+-58 + j*(55)
+107 + j*(13)
+62 + j*(110)
+-88 + j*(-8)
+-53 + j*(105)
+-98 + j*(-82)
+40 + j*(-269)
+-168 + j*(146)
+-91 + j*(-114)
+-34 + j*(-367)
+-131 + j*(29)
+-137 + j*(58)
+-79 + j*(-44)
+-255 + j*(-166)
+-56 + j*(-137)
+-202 + j*(-279)
+63 + j*(21)
+383 + j*(-27)
+19 + j*(252)
+28 + j*(-19)
+-69 + j*(16)
+-136 + j*(275)
+395 + j*(-137)
+107 + j*(351)
+-59 + j*(279)
+-196 + j*(-284)
+165 + j*(45)
+68 + j*(-99)
+404 + j*(303)
+-238 + j*(-18)
+245 + j*(-265)
+59 + j*(303)
+-35 + j*(-162)
+-453 + j*(-248)
+-334 + j*(163)
+-344 + j*(474)
+6 + j*(-3)
+-201 + j*(269)
+134 + j*(-625)
+441 + j*(165)
+89 + j*(-500)
+170 + j*(475)
+499 + j*(38)
+-637 + j*(-19)
+-191 + j*(444)
+-91 + j*(369)
+129 + j*(270)
+103 + j*(112)
+-11 + j*(255)
+452 + j*(323)
+-325 + j*(-290)
+485 + j*(-310)
+238 + j*(-470)
+-148 + j*(-462)
+-323 + j*(-13)
+175 + j*(-445)
+381 + j*(-290)
+-479 + j*(-116)
+-348 + j*(245)
+274 + j*(356)
+54 + j*(233)
+29 + j*(-153)
+556 + j*(420)
+88 + j*(27)
+-383 + j*(83)
+-45 + j*(606)
+44 + j*(245)
+-272 + j*(-347)
+-452 + j*(-182)
+35 + j*(165)
+179 + j*(-366)
+-275 + j*(280)
+294 + j*(-340)
+-371 + j*(200)
+-260 + j*(410)
+210 + j*(-378)
+-54 + j*(371)
+276 + j*(352)
+524 + j*(361)
+228 + j*(-63)
+-296 + j*(-247)
+590 + j*(-115)
+-23 + j*(234)
+71 + j*(255)
+-517 + j*(-235)
+75 + j*(450)
+89 + j*(-307)
+180 + j*(313)
+247 + j*(448)
+197 + j*(98)
+163 + j*(160)
+-272 + j*(182)
+177 + j*(35)
+-397 + j*(201)
+-122 + j*(-438)
+-453 + j*(-634)
+-269 + j*(-228)
+-167 + j*(-662)
+262 + j*(-260)
+95 + j*(225)
+477 + j*(356)
+-121 + j*(216)
+77 + j*(161)
+-372 + j*(-286)
+-375 + j*(-124)
+-553 + j*(269)
+-320 + j*(-297)
+158 + j*(-262)
+456 + j*(-231)
+-440 + j*(-190)
+-234 + j*(182)
+47 + j*(269)
+122 + j*(54)
+-106 + j*(409)
+-245 + j*(228)
+-1 + j*(196)
+-120 + j*(-257)
+-173 + j*(80)
+-477 + j*(-206)
+83 + j*(472)
+-611 + j*(176)
+47 + j*(239)
+-474 + j*(89)
+606 + j*(251)
+-338 + j*(451)
+176 + j*(-199)
+-354 + j*(-397)
+-89 + j*(-178)
+124 + j*(-152)
+172 + j*(199)
+-367 + j*(-373)
+461 + j*(-211)
+341 + j*(63)
+8 + j*(172)
+-398 + j*(109)
+6 + j*(132)
+422 + j*(139)
+-229 + j*(-193)
+-118 + j*(163)
+-74 + j*(105)
+-80 + j*(199)
+622 + j*(-87)
+206 + j*(-106)
+62 + j*(117)
+-354 + j*(235)
+-129 + j*(-91)
+413 + j*(430)
+-419 + j*(107)
+236 + j*(187)
+-494 + j*(-507)
+-118 + j*(340)
+-25 + j*(335)
+528 + j*(-308)
+-499 + j*(-47)
+-11 + j*(95)
+-275 + j*(259)
+-395 + j*(128)
+35 + j*(264)
+-16 + j*(-187)
+127 + j*(-355)
+358 + j*(323)
+517 + j*(13)
+-177 + j*(7)
+-335 + j*(-337)
+-570 + j*(210)
+290 + j*(183)
+-529 + j*(-514)
+-87 + j*(272)
+-121 + j*(298)
+-682 + j*(-194)
+-99 + j*(228)
+-216 + j*(-336)
+433 + j*(-46)
+-585 + j*(-307)
+-225 + j*(136)
+-92 + j*(-79)
+-38 + j*(413)
+-22 + j*(201)
+272 + j*(311)
+258 + j*(67)
+19 + j*(-434)
+417 + j*(343)
+-291 + j*(145)
+-197 + j*(173)
+539 + j*(430)
+-530 + j*(-280)
+-69 + j*(276)
+-442 + j*(71)
+-363 + j*(-136)
+-390 + j*(245)
+-186 + j*(326)
+426 + j*(217)
+83 + j*(467)
+-613 + j*(281)
+146 + j*(-255)
+37 + j*(-203)
+-504 + j*(49)
+-48 + j*(-541)
+165 + j*(33)
+-302 + j*(296)
+-528 + j*(73)
+-281 + j*(-112)
+455 + j*(547)
+245 + j*(-219)
+-552 + j*(-479)
+-163 + j*(-419)
+235 + j*(424)
+-527 + j*(240)
+25 + j*(-750)
+-203 + j*(-203)
+-205 + j*(-281)
+-88 + j*(88)
+353 + j*(597)
+362 + j*(287)
+-308 + j*(175)
+569 + j*(180)
+421 + j*(-441)
+-382 + j*(76)
+-40 + j*(180)
+-81 + j*(235)
+-308 + j*(169)
+364 + j*(-674)
+-218 + j*(49)
+437 + j*(369)
+251 + j*(-216)
+395 + j*(-381)
+-255 + j*(113)
+-411 + j*(300)
+-109 + j*(83)
+-132 + j*(512)
+194 + j*(336)
+-83 + j*(283)
+340 + j*(-88)
+47 + j*(156)
+-71 + j*(293)
+467 + j*(389)
+269 + j*(-11)
+-188 + j*(-217)
+-266 + j*(220)
+-368 + j*(402)
+-394 + j*(153)
+-148 + j*(-221)
+132 + j*(-19)
+284 + j*(-238)
+-255 + j*(-104)
+-399 + j*(-474)
+-693 + j*(211)
+-318 + j*(97)
+-568 + j*(-313)
+206 + j*(10)
+339 + j*(-526)
+-535 + j*(-288)
+-4 + j*(-254)
+537 + j*(140)
+-313 + j*(377)
+59 + j*(164)
+257 + j*(258)
+387 + j*(-396)
+252 + j*(650)
+144 + j*(-562)
+-56 + j*(-597)
+-163 + j*(377)
+-89 + j*(488)
+-245 + j*(-170)
+-94 + j*(-573)
+-248 + j*(374)
+327 + j*(-499)
+-438 + j*(89)
+228 + j*(-331)
+40 + j*(-243)
+205 + j*(320)
+-280 + j*(-1)
+380 + j*(-342)
+-539 + j*(176)
+37 + j*(-398)
+-567 + j*(474)
+-322 + j*(319)
+118 + j*(222)
+-317 + j*(-47)
+304 + j*(-267)
+355 + j*(-300)
+146 + j*(256)
+-330 + j*(-215)
+23 + j*(435)
+354 + j*(83)
+231 + j*(90)
+152 + j*(-227)
+-246 + j*(262)
+-451 + j*(341)
+-208 + j*(-239)
+256 + j*(-187)
+-474 + j*(-392)
+293 + j*(-143)
+397 + j*(273)
+349 + j*(150)
+211 + j*(62)
+-249 + j*(-354)
+76 + j*(213)
+-129 + j*(-209)
+-555 + j*(-134)
+264 + j*(-363)
+457 + j*(-358)
+-165 + j*(-33)
+149 + j*(-256)
+190 + j*(136)
+182 + j*(190)
+371 + j*(287)
+252 + j*(56)
+395 + j*(391)
+308 + j*(-521)
+45 + j*(-256)
+-9 + j*(-543)
+323 + j*(407)
+486 + j*(-177)
+-363 + j*(29)
+206 + j*(-639)
+-333 + j*(-112)
+71 + j*(-152)
+21 + j*(-375)
+154 + j*(39)
+-103 + j*(-450)
+-281 + j*(-57)
+-215 + j*(428)
+-332 + j*(-16)
+349 + j*(-7)
+-145 + j*(-528)
+226 + j*(295)
+472 + j*(-151)
+56 + j*(241)
+144 + j*(75)
+-641 + j*(-214)
+316 + j*(303)
+-523 + j*(-491)
+504 + j*(373)
+170 + j*(419)
+-469 + j*(-817)
+76 + j*(163)
+204 + j*(-40)
+-467 + j*(-346)
+-181 + j*(93)
+-25 + j*(-513)
+204 + j*(446)
+525 + j*(229)
+-499 + j*(383)
+-91 + j*(288)
+33 + j*(-115)
+8 + j*(-433)
+-238 + j*(-446)
+156 + j*(496)
+207 + j*(17)
+-271 + j*(-318)
+287 + j*(-330)
+-212 + j*(-262)
+-62 + j*(-20)
+617 + j*(157)
+-40 + j*(-72)
+-256 + j*(-126)
+313 + j*(-422)
+-209 + j*(23)
+433 + j*(-441)
+175 + j*(-378)
+-223 + j*(16)
+-1 + j*(-623)
+441 + j*(-211)
+-243 + j*(-511)
+-370 + j*(-292)
+-114 + j*(-321)
+-347 + j*(-197)
+-501 + j*(-327)
+57 + j*(-296)
+-231 + j*(241)
+148 + j*(68)
+-516 + j*(391)
+250 + j*(-153)
+-300 + j*(-183)
+-9 + j*(-402)
+332 + j*(197)
+209 + j*(280)
+115 + j*(-447)
+-167 + j*(66)
+455 + j*(105)
+307 + j*(98)
+409 + j*(-368)
+37 + j*(-124)
+137 + j*(238)
+-402 + j*(-307)
+-319 + j*(-198)
+37 + j*(-339)
+223 + j*(199)
+-354 + j*(-160)
+-3 + j*(401)
+-11 + j*(30)
+377 + j*(-197)
+-639 + j*(-83)
+-15 + j*(296)
+79 + j*(-421)
+-197 + j*(-234)
+-47 + j*(-387)
+629 + j*(30)
+293 + j*(170)
+595 + j*(486)
+-391 + j*(256)
+-44 + j*(25)
+-497 + j*(364)
+-74 + j*(198)
+127 + j*(322)
+-373 + j*(161)
+-200 + j*(67)
+503 + j*(301)
+319 + j*(209)
+276 + j*(-260)
+-539 + j*(-240)
+-53 + j*(356)
+340 + j*(-97)
+28 + j*(321)
+45 + j*(-135)
+1 + j*(-404)
+319 + j*(-499)
+457 + j*(-78)
+178 + j*(-281)
+-399 + j*(-112)
+124 + j*(-13)
+-195 + j*(-286)
+132 + j*(354)
+677 + j*(-21)
+-69 + j*(-286)
+571 + j*(197)
+141 + j*(17)
+126 + j*(282)
+176 + j*(611)
+419 + j*(-260)
+202 + j*(-305)
+196 + j*(-390)
+-696 + j*(547)
+226 + j*(-73)
+187 + j*(537)
+-245 + j*(276)
+-508 + j*(139)
+364 + j*(235)
+438 + j*(-310)
+284 + j*(-198)
+-246 + j*(616)
+346 + j*(-528)
+190 + j*(365)
+279 + j*(310)
+-286 + j*(287)
+-128 + j*(-385)
+-150 + j*(461)
+305 + j*(81)
+-167 + j*(305)
+177 + j*(310)
+-1 + j*(-93)
+-322 + j*(450)
+-278 + j*(-342)
+549 + j*(328)
+-168 + j*(540)
+351 + j*(-178)
+217 + j*(314)
+-275 + j*(300)
+163 + j*(-137)
+-153 + j*(-810)
+-314 + j*(457)
+279 + j*(-263)
+157 + j*(-163)
+622 + j*(-212)
+70 + j*(-303)
+275 + j*(-532)
+321 + j*(409)
+134 + j*(293)
+-91 + j*(-387)
+272 + j*(127)
+-312 + j*(-547)
+-226 + j*(-198)
+-518 + j*(583)
+117 + j*(218)
+658 + j*(19)
+317 + j*(691)
+-420 + j*(193)
+62 + j*(-383)
+-79 + j*(-174)
+74 + j*(348)
+354 + j*(-148)
+-478 + j*(-88)
+393 + j*(-581)
+282 + j*(16)
+214 + j*(416)
+-163 + j*(-387)
+226 + j*(-209)
+44 + j*(-400)
+345 + j*(-215)
+-203 + j*(-110)
+269 + j*(301)
+-269 + j*(75)
+199 + j*(471)
+-320 + j*(1)
+-648 + j*(-421)
+245 + j*(-436)
+-57 + j*(183)
+-571 + j*(21)
+-403 + j*(158)
+427 + j*(218)
+-327 + j*(-246)
+529 + j*(459)
+150 + j*(127)
+-418 + j*(-54)
+412 + j*(369)
+116 + j*(-91)
+395 + j*(296)
+301 + j*(276)
+566 + j*(285)
+15 + j*(-486)
+267 + j*(511)
+-98 + j*(-312)
+-190 + j*(-24)
+-30 + j*(-380)
+-484 + j*(-349)
+-109 + j*(85)
+-43 + j*(-262)
+320 + j*(355)
+-552 + j*(-317)
+-95 + j*(250)
+358 + j*(277)
+-62 + j*(-587)
+128 + j*(-55)
+-302 + j*(127)
+-338 + j*(-502)
+-90 + j*(-230)
+-271 + j*(-47)
+638 + j*(-255)
+330 + j*(-83)
+-233 + j*(421)
+-182 + j*(-139)
+-32 + j*(405)
+296 + j*(157)
+28 + j*(216)
+129 + j*(1)
+-267 + j*(-117)
+-310 + j*(-152)
+-390 + j*(-285)
+389 + j*(371)
+199 + j*(165)
+120 + j*(45)
+530 + j*(354)
+-42 + j*(-301)
+368 + j*(-213)
+-28 + j*(-317)
+-89 + j*(-516)
+-32 + j*(213)
+218 + j*(105)
+-168 + j*(293)
+-261 + j*(225)
+158 + j*(221)
+-180 + j*(-234)
+236 + j*(383)
+-63 + j*(-86)
+319 + j*(-243)
+265 + j*(60)
+-63 + j*(149)
+191 + j*(-45)
+-172 + j*(202)
+-212 + j*(616)
+-405 + j*(387)
+-325 + j*(19)
+-18 + j*(149)
+-594 + j*(-148)
+-387 + j*(460)
+-368 + j*(469)
+407 + j*(310)
+-475 + j*(6)
+-474 + j*(30)
+-553 + j*(331)
+-99 + j*(-116)
+265 + j*(-308)
+188 + j*(-201)
+64 + j*(-253)
+-30 + j*(-274)
+-364 + j*(322)
+309 + j*(-317)
+-293 + j*(223)
+197 + j*(-407)
+433 + j*(-237)
+-73 + j*(37)
+392 + j*(373)
+-235 + j*(-14)
+425 + j*(-168)
+-192 + j*(49)
+15 + j*(-447)
+61 + j*(202)
+374 + j*(-368)
+393 + j*(-243)
+383 + j*(-417)
+214 + j*(-48)
+-228 + j*(148)
+-298 + j*(-249)
+55 + j*(-243)
+269 + j*(-70)
+230 + j*(85)
+402 + j*(-211)
+-491 + j*(-202)
+-465 + j*(-66)
+556 + j*(352)
+105 + j*(473)
+358 + j*(-113)
+-377 + j*(244)
+-344 + j*(-247)
+-160 + j*(233)
+437 + j*(-361)
+288 + j*(184)
+94 + j*(-404)
+-11 + j*(205)
+-216 + j*(-250)
+-11 + j*(-221)
+-1 + j*(-287)
+269 + j*(-443)
+244 + j*(-533)
+-298 + j*(-8)
+-180 + j*(109)
+248 + j*(479)
+213 + j*(124)
+358 + j*(541)
+-181 + j*(-170)
+-250 + j*(187)
+117 + j*(-116)
+-319 + j*(226)
+206 + j*(124)
+-320 + j*(-134)
+241 + j*(518)
+-218 + j*(6)
+-407 + j*(-465)
+93 + j*(479)
+-550 + j*(275)
+112 + j*(623)
+-153 + j*(102)
+-38 + j*(-216)
+125 + j*(-53)
+243 + j*(-223)
+-298 + j*(-80)
+358 + j*(153)
+-172 + j*(99)
+-166 + j*(-334)
+-24 + j*(136)
+-269 + j*(83)
+-16 + j*(141)
+-81 + j*(-37)
+288 + j*(-160)
+76 + j*(-252)
+15 + j*(-38)
+52 + j*(-147)
+-139 + j*(-18)
+-134 + j*(163)
+-214 + j*(-61)
+-187 + j*(259)
+317 + j*(-68)
+-102 + j*(-43)
+-310 + j*(-237)
+28 + j*(-4)
+-106 + j*(21)
+106 + j*(-231)
+-339 + j*(50)
+30 + j*(-218)
+-42 + j*(-162)
+-235 + j*(-288)
+-110 + j*(-78)
+95 + j*(413)
+-305 + j*(67)
+238 + j*(279)
+124 + j*(196)
+-105 + j*(-66)
+-495 + j*(-67)
+190 + j*(62)
+-241 + j*(-206)
+99 + j*(3)
+-175 + j*(-147)
+78 + j*(-20)
+-103 + j*(-211)
+-167 + j*(-285)
+54 + j*(-207)
+88 + j*(11)
+21 + j*(35)
+-62 + j*(13)
+317 + j*(199)
+113 + j*(122)
+-373 + j*(252)
+94 + j*(-60)
+35 + j*(117)
+-180 + j*(194)
+-21 + j*(81)
+21 + j*(87)
+-96 + j*(-382)
+-185 + j*(100)
+-463 + j*(392)
+-78 + j*(-193)
+312 + j*(-53)
+-126 + j*(-49)
+217 + j*(52)
+-62 + j*(187)
+-66 + j*(76)
+-37 + j*(-108)
+82 + j*(-197)
+37 + j*(-62)
+45 + j*(-120)
+83 + j*(-103)
+-91 + j*(165)
+-77 + j*(90)
+-224 + j*(160)
+-145 + j*(67)
+230 + j*(-203)
+143 + j*(54)
+223 + j*(163)
+42 + j*(-2)
+39 + j*(-60)
+2 + j*(235)
+216 + j*(274)
+34 + j*(-177)
+138 + j*(-175)
+-220 + j*(-211)
+-15 + j*(36)
+-23 + j*(300)
+91 + j*(282)
+-3 + j*(166)
+-193 + j*(-123)
+-103 + j*(27)
+-5 + j*(28)
+-121 + j*(60)
+243 + j*(-2)
+145 + j*(-293)
+-127 + j*(415)
+-83 + j*(267)
+-95 + j*(47)
+35 + j*(96)
+-53 + j*(-190)
+18 + j*(-146)
+-76 + j*(165)
+131 + j*(-103)
+5 + j*(-44)
+57 + j*(-155)
+-339 + j*(-77)
+8 + j*(-175)
+157 + j*(16)
+119 + j*(149)
+-276 + j*(-163)
+23 + j*(107)
+69 + j*(-146)
+135 + j*(-267)
+94 + j*(103)
+27 + j*(57)
+29 + j*(164)
+24 + j*(-66)
+-98 + j*(-193)
+-9 + j*(51)
+-144 + j*(-103)
+346 + j*(59)
+377 + j*(262)
+82 + j*(-277)
+60 + j*(143)
+88 + j*(107)
+192 + j*(-120)
+-146 + j*(-35)
+-455 + j*(107)
+91 + j*(236)
+181 + j*(45)
+90 + j*(64)
+-56 + j*(-392)
+-73 + j*(-43)
+99 + j*(9)
+-270 + j*(-105)
+-62 + j*(-435)
+-349 + j*(-218)
+-298 + j*(-86)
+-137 + j*(-90)
+76 + j*(28)
+235 + j*(-12)
+-63 + j*(-119)
+-180 + j*(71)
+-165 + j*(218)
+-96 + j*(-2)
+1 + j*(-390)
+-1 + j*(5)
+59 + j*(-162)
+33 + j*(171)
+9 + j*(-5)
+387 + j*(-101)
+-89 + j*(94)
+-168 + j*(-165)
+-230 + j*(-2)
+446 + j*(198)
+209 + j*(161)
+172 + j*(153)
+34 + j*(153)
+80 + j*(3)
+-238 + j*(245)
+-28 + j*(-286)
+261 + j*(202)
+-277 + j*(139)
+76 + j*(148)
+321 + j*(-148)
+5 + j*(-124)
+175 + j*(286)
+-22 + j*(95)
+14 + j*(-212)
+-30 + j*(-224)
+-52 + j*(-112)
+240 + j*(-124)
+-21 + j*(292)
+-39 + j*(-235)
+81 + j*(262)
+3 + j*(-186)
+74 + j*(-12)
+178 + j*(84)
+86 + j*(-62)
+238 + j*(-4)
+4 + j*(13)
+265 + j*(-82)
+37 + j*(218)
+-187 + j*(71)
+-288 + j*(330)
+-112 + j*(340)
+71 + j*(-57)
+-62 + j*(81)
+18 + j*(96)
+-84 + j*(132)
+10 + j*(162)
+97 + j*(4)
+50 + j*(308)
+-25 + j*(442)
+-136 + j*(187)
+-161 + j*(109)
+-50 + j*(54)
+210 + j*(-192)
+59 + j*(174)
+-51 + j*(-252)
+139 + j*(-155)
+280 + j*(156)
+32 + j*(-54)
+211 + j*(24)
+-198 + j*(-298)
+165 + j*(206)
+122 + j*(-144)
+30 + j*(119)
+-21 + j*(281)
+74 + j*(-119)
+-54 + j*(-23)
+-25 + j*(332)
+78 + j*(-199)
+-125 + j*(-74)
+232 + j*(11)
+-199 + j*(154)
+311 + j*(31)
+76 + j*(307)
+39 + j*(-23)
+-165 + j*(397)
+310 + j*(42)
+255 + j*(-36)
+276 + j*(-68)
+-192 + j*(20)
+-98 + j*(166)
+3 + j*(-489)
+41 + j*(177)
+-72 + j*(305)
+-52 + j*(-67)
+66 + j*(-297)
+20 + j*(-185)
+-270 + j*(-66)
+15 + j*(-18)
+-71 + j*(-7)
+40 + j*(-203)
+199 + j*(-431)
+316 + j*(-88)
+46 + j*(90)
+-196 + j*(38)
+91 + j*(-21)
+-1 + j*(169)
+96 + j*(36)
+-76 + j*(-205)
+289 + j*(76)
+-132 + j*(-141)
+-145 + j*(-97)
+-1 + j*(171)
+-51 + j*(182)
+19 + j*(-129)
+40 + j*(50)
+-175 + j*(-300)
+21 + j*(74)
+51 + j*(142)
+-128 + j*(-64)
+-43 + j*(-92)
+247 + j*(109)
+-53 + j*(-28)
+-20 + j*(-168)
+47 + j*(331)
+8 + j*(-158)
+-7 + j*(-202)
+-51 + j*(-9)
+49 + j*(66)
+26 + j*(67)
+-157 + j*(-441)
+82 + j*(-47)
+-124 + j*(165)
+-134 + j*(201)
+-74 + j*(184)
+201 + j*(-29)
+85 + j*(-272)
+68 + j*(-132)
+138 + j*(-243)
+-44 + j*(170)
+-154 + j*(-1)
+-93 + j*(79)
+132 + j*(-134)
+-168 + j*(132)
+147 + j*(144)
+-113 + j*(-10)
+88 + j*(124)
+-267 + j*(25)
+63 + j*(-53)
+156 + j*(-330)
+75 + j*(167)
+238 + j*(0)
+189 + j*(29)
+-175 + j*(-159)
+110 + j*(-90)
+-68 + j*(-70)
+36 + j*(-15)
+6 + j*(-356)
+138 + j*(315)
+17 + j*(-114)
+-239 + j*(129)
+279 + j*(21)
+-151 + j*(-25)
+103 + j*(-17)
+213 + j*(8)
+-81 + j*(148)
+-171 + j*(24)
+-63 + j*(6)
+178 + j*(-13)
+115 + j*(115)
+187 + j*(148)
+-191 + j*(-442)
+-9 + j*(218)
+-60 + j*(101)
+-64 + j*(191)
+-21 + j*(-170)
+78 + j*(110)
+-395 + j*(216)
+122 + j*(186)
+-81 + j*(2)
+-324 + j*(237)
+26 + j*(-274)
+60 + j*(-154)
+-54 + j*(-83)
+9 + j*(240)
+-117 + j*(63)
+-10 + j*(3)
+109 + j*(124)
+55 + j*(-28)
+51 + j*(-1)
+293 + j*(-194)
+-88 + j*(-208)
+-58 + j*(-27)
+48 + j*(117)
+-287 + j*(97)
+-105 + j*(-250)
+-2 + j*(-269)
+-204 + j*(-248)
+-189 + j*(-123)
+-134 + j*(206)
+-114 + j*(-123)
+-180 + j*(-58)
+-320 + j*(-144)
+-265 + j*(-50)
+243 + j*(-311)
+48 + j*(25)
+-69 + j*(-78)
+-98 + j*(25)
+-3 + j*(-18)
+63 + j*(-254)
+-182 + j*(-132)
+122 + j*(-55)
+-43 + j*(161)
+-257 + j*(219)
+1 + j*(-32)
+417 + j*(64)
+-131 + j*(199)
+-215 + j*(-242)
+308 + j*(153)
+157 + j*(-10)
+-199 + j*(164)
+-77 + j*(-54)
+-68 + j*(76)
+-22 + j*(-71)
+101 + j*(95)
+-223 + j*(-192)
+-94 + j*(113)
+-256 + j*(-165)
+420 + j*(131)
+62 + j*(0)
+-168 + j*(95)
+-69 + j*(-202)
+137 + j*(1)
+226 + j*(439)
+153 + j*(-33)
+-76 + j*(81)
+-264 + j*(30)
+400 + j*(62)
+175 + j*(-37)
+343 + j*(-157)
+-302 + j*(59)
+246 + j*(114)
+148 + j*(-61)
+112 + j*(74)
+-134 + j*(-46)
+-243 + j*(41)
+255 + j*(-355)
+-85 + j*(-38)
+-110 + j*(183)
+132 + j*(95)
+-566 + j*(169)
+313 + j*(162)
+-31 + j*(-28)
+-245 + j*(442)
+-64 + j*(-252)
+334 + j*(-138)
+105 + j*(-85)
+-135 + j*(16)
+123 + j*(-224)
+62 + j*(-48)
+-78 + j*(-16)
+-272 + j*(74)
+66 + j*(222)
+49 + j*(269)
+-255 + j*(-76)
+-192 + j*(-3)
+11 + j*(-50)
+168 + j*(293)
+76 + j*(110)
+-43 + j*(99)
+187 + j*(61)
+-340 + j*(-91)
+-110 + j*(-132)
+-156 + j*(-99)
+149 + j*(103)
+203 + j*(-56)
+37 + j*(261)
+-232 + j*(78)
+44 + j*(13)
+139 + j*(-14)
+-58 + j*(-137)
+-52 + j*(-281)
+-231 + j*(35)
+211 + j*(-35)
+42 + j*(65)
+-177 + j*(223)
+127 + j*(61)
+148 + j*(-34)
+101 + j*(224)
+-8 + j*(91)
+-49 + j*(157)
+-174 + j*(-173)
+-47 + j*(-56)
+-55 + j*(115)
+-108 + j*(-19)
+-147 + j*(-96)
+-132 + j*(-86)
+-23 + j*(23)
+183 + j*(-191)
+265 + j*(107)
+-83 + j*(306)
+50 + j*(239)
+137 + j*(-273)
+330 + j*(52)
+-153 + j*(45)
+-191 + j*(306)
+171 + j*(-64)
+-16 + j*(78)
+-298 + j*(-16)
+94 + j*(410)
+-125 + j*(65)
+-154 + j*(112)
+81 + j*(69)
+-151 + j*(-175)
+294 + j*(-264)
+-119 + j*(286)
+-35 + j*(-293)
+49 + j*(221)
+-77 + j*(-30)
+-170 + j*(407)
+-198 + j*(14)
+-5 + j*(6)
+315 + j*(-35)
+41 + j*(282)
+241 + j*(25)
+148 + j*(168)
+34 + j*(196)
+-248 + j*(161)
+129 + j*(-66)
+296 + j*(-42)
+-45 + j*(119)
+-87 + j*(141)
+86 + j*(90)
+66 + j*(-45)
+-13 + j*(-129)
+273 + j*(-148)
+-6 + j*(-82)
+227 + j*(-168)
+32 + j*(-130)
+59 + j*(-64)
+11 + j*(99)
+-91 + j*(-40)
+208 + j*(-91)
+218 + j*(69)
+48 + j*(-325)
+6 + j*(47)
+6 + j*(-215)
+-250 + j*(-271)
+-98 + j*(36)
+-180 + j*(-23)
+-371 + j*(-30)
+-242 + j*(-11)
+191 + j*(6)
+70 + j*(-28)
+-90 + j*(171)
+208 + j*(-58)
+3 + j*(101)
+122 + j*(-214)
+13 + j*(99)
+-80 + j*(217)
+-315 + j*(182)
+124 + j*(-228)
+192 + j*(177)
+330 + j*(61)
+-270 + j*(-122)
+-5 + j*(-162)
+182 + j*(31)
+-197 + j*(-168)
+11 + j*(123)
+86 + j*(277)
+-37 + j*(-84)
+164 + j*(-81)
+148 + j*(24)
+355 + j*(-25)
+149 + j*(54)
+-36 + j*(158)
+189 + j*(-11)
+127 + j*(141)
+76 + j*(130)
+-32 + j*(33)
+-189 + j*(-19)
+-35 + j*(-350)
+-133 + j*(252)
+-139 + j*(-38)
+71 + j*(-33)
+-42 + j*(-138)
+-252 + j*(121)
+283 + j*(140)
+-50 + j*(135)
+-124 + j*(-32)
+124 + j*(289)
+-84 + j*(153)
+197 + j*(134)
+-80 + j*(434)
+-41 + j*(71)
+159 + j*(-46)
+30 + j*(321)
+165 + j*(-438)
+-47 + j*(98)
+180 + j*(125)
+-144 + j*(-28)
+292 + j*(-85)
+-129 + j*(168)
+-117 + j*(54)
+100 + j*(-224)
+25 + j*(-146)
+397 + j*(-4)
+81 + j*(37)
+-47 + j*(8)
+20 + j*(-333)
+110 + j*(-108)
+-198 + j*(236)
+-209 + j*(-77)
+35 + j*(-111)
+-82 + j*(78)
+-46 + j*(-170)
+150 + j*(153)
+210 + j*(37)
+-378 + j*(-346)
+122 + j*(105)
+-48 + j*(128)
+4 + j*(250)
+-42 + j*(233)
+-59 + j*(46)
+132 + j*(-116)
+-69 + j*(51)
+-296 + j*(228)
+-81 + j*(40)
+121 + j*(-190)
+111 + j*(60)
+-33 + j*(-152)
+-71 + j*(145)
+-310 + j*(-11)
+-144 + j*(-107)
+91 + j*(134)
+-54 + j*(134)
+15 + j*(154)
+110 + j*(191)
+-214 + j*(-2)
+504 + j*(-209)
+-42 + j*(-76)
+284 + j*(75)
+-138 + j*(-303)
+-53 + j*(110)
+120 + j*(74)
+240 + j*(131)
+272 + j*(-115)
+3 + j*(69)
+-32 + j*(18)
+259 + j*(-187)
+127 + j*(179)
+-197 + j*(187)
+337 + j*(-229)
+-2 + j*(-35)
+188 + j*(25)
+-348 + j*(177)
+138 + j*(-299)
+-150 + j*(169)
+140 + j*(231)
+-232 + j*(92)
+-8 + j*(131)
+-88 + j*(144)
+54 + j*(-169)
+-54 + j*(95)
+46 + j*(-153)
+74 + j*(112)
+-187 + j*(-75)
+-163 + j*(-105)
+-109 + j*(95)
+-149 + j*(-81)
+-320 + j*(128)
+245 + j*(117)
+-284 + j*(93)
+-26 + j*(-222)
+-240 + j*(144)
+30 + j*(-30)
+-11 + j*(327)
+148 + j*(68)
+149 + j*(37)
+-110 + j*(-209)
+348 + j*(7)
+-69 + j*(-78)
+207 + j*(13)
+-160 + j*(-16)
+-59 + j*(-75)
+70 + j*(7)
+203 + j*(220)
+301 + j*(210)
+-206 + j*(-198)
+24 + j*(115)
+-163 + j*(-298)
+115 + j*(104)
+222 + j*(290)
+-147 + j*(-90)
+-254 + j*(-416)
+123 + j*(-111)
+11 + j*(-310)
+-179 + j*(-358)
+334 + j*(-325)
+-4 + j*(-132)
+35 + j*(134)
+5 + j*(-226)
+243 + j*(-151)
+28 + j*(15)
+-40 + j*(62)
+37 + j*(179)
+308 + j*(-266)
+-185 + j*(-283)
+116 + j*(107)
+374 + j*(-155)
+270 + j*(137)
+-241 + j*(292)
+170 + j*(-226)
+55 + j*(-2)
+40 + j*(-28)
+-175 + j*(8)
+-221 + j*(-73)
+-51 + j*(-106)
+-148 + j*(-103)
+109 + j*(143)
+6 + j*(203)
+149 + j*(239)
+-368 + j*(-54)
+95 + j*(249)
+210 + j*(64)
+13 + j*(-30)
+302 + j*(80)
+409 + j*(-78)
+76 + j*(-308)
+-71 + j*(-169)
+-23 + j*(-222)
+33 + j*(80)
+-338 + j*(-320)
+45 + j*(-105)
+-66 + j*(-274)
+70 + j*(-21)
+48 + j*(27)
+189 + j*(257)
+-64 + j*(7)
+-117 + j*(-42)
+-28 + j*(-128)
+-148 + j*(-406)
+-174 + j*(-208)
+198 + j*(-69)
+147 + j*(-133)
+257 + j*(-138)
+-231 + j*(17)
+127 + j*(-88)
+88 + j*(42)
+-126 + j*(36)
+-63 + j*(-175)
+123 + j*(-173)
+-252 + j*(-136)
+-198 + j*(122)
+-290 + j*(237)
+22 + j*(-23)
+171 + j*(89)
+239 + j*(-141)
+11 + j*(-109)
+301 + j*(-88)
+-216 + j*(1)
+14 + j*(-177)
+47 + j*(6)
+-161 + j*(20)
+-186 + j*(-78)
+173 + j*(-47)
+-289 + j*(-68)
+-81 + j*(83)
+-77 + j*(164)
+220 + j*(-20)
+-106 + j*(177)
+-292 + j*(-216)
+74 + j*(-34)
+245 + j*(1)
+4 + j*(383)
+-30 + j*(-119)
+221 + j*(180)
+139 + j*(-260)
+-160 + j*(95)
+58 + j*(361)
+-223 + j*(57)
+-59 + j*(-59)
+-82 + j*(-51)
+105 + j*(35)
+59 + j*(146)
+-158 + j*(-41)
+-64 + j*(197)
+-202 + j*(-83)
+191 + j*(-335)
+129 + j*(-421)
+-30 + j*(-118)
+69 + j*(129)
+-116 + j*(-67)
+-366 + j*(-18)
+279 + j*(235)
+-279 + j*(1)
+45 + j*(-96)
+-13 + j*(-238)
+382 + j*(-21)
+207 + j*(351)
+192 + j*(-107)
+-103 + j*(-137)
+-90 + j*(110)
+-262 + j*(-211)
+-127 + j*(162)
+109 + j*(40)
+-238 + j*(127)
+81 + j*(5)
+-30 + j*(109)
+118 + j*(71)
+-12 + j*(26)
+40 + j*(-161)
+23 + j*(124)
+-23 + j*(25)
+-374 + j*(-62)
+154 + j*(448)
+-66 + j*(-63)
+152 + j*(-354)
+409 + j*(-129)
+-469 + j*(96)
+-4 + j*(-141)
+-13 + j*(142)
+276 + j*(12)
+-135 + j*(-289)
+-50 + j*(181)
+-205 + j*(-146)
+196 + j*(255)
+-200 + j*(23)
+279 + j*(52)
+-76 + j*(196)
+40 + j*(98)
+-62 + j*(211)
+74 + j*(73)
+-161 + j*(-179)
+-134 + j*(-2)
+-18 + j*(-132)
+444 + j*(21)
+-194 + j*(69)
+-92 + j*(25)
+-119 + j*(-431)
+121 + j*(136)
+-100 + j*(63)
+14 + j*(-67)
+66 + j*(234)
+-35 + j*(288)
+356 + j*(-111)
+-74 + j*(-60)
+215 + j*(206)
+-46 + j*(8)
+-4 + j*(-153)
+-135 + j*(-165)
+274 + j*(-99)
+-218 + j*(-60)
+-7 + j*(145)
+-282 + j*(-132)
+-21 + j*(-270)
+35 + j*(-186)
+59 + j*(161)
+-148 + j*(-212)
+-452 + j*(-222)
+203 + j*(-168)
+16 + j*(142)
+177 + j*(448)
+56 + j*(-74)
+-37 + j*(119)
+-47 + j*(48)
+192 + j*(30)
+-243 + j*(67)
+-199 + j*(78)
+197 + j*(103)
+164 + j*(-210)
+-33 + j*(185)
+-55 + j*(35)
+-388 + j*(21)
+-49 + j*(-101)
+-27 + j*(-276)
+-197 + j*(-151)
+-236 + j*(-178)
+-32 + j*(-162)
+-78 + j*(257)
+-75 + j*(85)
+157 + j*(-10)
+-147 + j*(-3)
+21 + j*(-8)
+120 + j*(120)
+132 + j*(98)
+-140 + j*(-98)
+194 + j*(-322)
+113 + j*(-51)
+177 + j*(-63)
+41 + j*(204)
+146 + j*(45)
+-145 + j*(62)
+17 + j*(74)
+257 + j*(-247)
+-16 + j*(-193)
+-33 + j*(-364)
+-297 + j*(100)
+18 + j*(-268)
+-79 + j*(-70)
+49 + j*(17)
+-61 + j*(-52)
+296 + j*(-32)
+37 + j*(168)
+-117 + j*(-164)
+-74 + j*(-211)
+-87 + j*(66)
+-165 + j*(-38)
+18 + j*(136)
+14 + j*(74)
+187 + j*(172)
+99 + j*(22)
+95 + j*(-151)
+88 + j*(-236)
+-201 + j*(92)
+91 + j*(214)
+280 + j*(200)
+254 + j*(-28)
+82 + j*(199)
+-333 + j*(294)
+-64 + j*(-255)
+228 + j*(375)
+-1 + j*(94)
+211 + j*(-207)
+299 + j*(-447)
+-104 + j*(-17)
+-30 + j*(-28)
+-164 + j*(-211)
+-87 + j*(-76)
+-124 + j*(264)
+176 + j*(-222)
+221 + j*(-322)
+158 + j*(148)
+-307 + j*(-128)
+86 + j*(9)
+-10 + j*(-23)
+131 + j*(25)
+-108 + j*(186)
+-144 + j*(132)
+67 + j*(121)
+11 + j*(-222)
+1 + j*(93)
+182 + j*(93)
+-114 + j*(200)
+87 + j*(163)
+88 + j*(86)
+-73 + j*(-90)
+123 + j*(-30)
+-16 + j*(-27)
+214 + j*(-188)
+-36 + j*(25)
+-286 + j*(310)
+-202 + j*(-54)
+-223 + j*(238)
+-161 + j*(54)
+-62 + j*(170)
+-214 + j*(-35)
+110 + j*(264)
+262 + j*(265)
+100 + j*(37)
+-488 + j*(305)
+-148 + j*(254)
+-253 + j*(123)
+146 + j*(182)
+-332 + j*(-199)
+55 + j*(-65)
+204 + j*(83)
+-1 + j*(-51)
+32 + j*(-314)
+43 + j*(23)
+68 + j*(-412)
+78 + j*(-180)
+-197 + j*(146)
+-76 + j*(-66)
+136 + j*(-226)
+40 + j*(241)
+27 + j*(-177)
+-144 + j*(66)
+112 + j*(-258)
+163 + j*(-74)
+-1 + j*(-81)
+52 + j*(469)
+3 + j*(-276)
+148 + j*(107)
+-93 + j*(-173)
+64 + j*(37)
+-231 + j*(124)
+61 + j*(-131)
+-88 + j*(114)
+107 + j*(-32)
+-170 + j*(240)
+226 + j*(-173)
+58 + j*(-247)
+22 + j*(47)
+168 + j*(181)
+16 + j*(158)
+-120 + j*(-66)
+-81 + j*(296)
+-209 + j*(-192)
+-75 + j*(-115)
+95 + j*(86)
+32 + j*(125)
+57 + j*(64)
+6 + j*(-11)
+-367 + j*(-47)
+180 + j*(-28)
+-443 + j*(-35)
+-174 + j*(67)
+-83 + j*(-21)
+64 + j*(-84)
+206 + j*(-67)
+25 + j*(-205)
+-205 + j*(139)
+16 + j*(-135)
+-233 + j*(-43)
+158 + j*(-4)
+-18 + j*(-106)
+-87 + j*(129)
+-112 + j*(-28)
+159 + j*(144)
+98 + j*(-110)
+-11 + j*(28)
+-41 + j*(192)
+21 + j*(-199)
+-26 + j*(233)
+6 + j*(-337)
+412 + j*(7)
+-136 + j*(-25)
+83 + j*(103)
+-45 + j*(62)
+79 + j*(20)
+86 + j*(20)
+142 + j*(284)
+-45 + j*(-91)
+100 + j*(67)
+-142 + j*(100)
+-223 + j*(248)
+-3 + j*(120)
+311 + j*(-245)
+62 + j*(-47)
+91 + j*(-78)
+-141 + j*(-132)
+4 + j*(-133)
+81 + j*(-179)
+-13 + j*(166)
+20 + j*(180)
+182 + j*(-139)
+230 + j*(83)
+387 + j*(67)
+-6 + j*(-113)
+63 + j*(161)
+-198 + j*(104)
+-36 + j*(-129)
+-30 + j*(-63)
+112 + j*(-41)
+127 + j*(189)
+156 + j*(62)
+-110 + j*(-12)
+52 + j*(-182)
+-110 + j*(-298)
+-151 + j*(180)
+234 + j*(-178)
+14 + j*(69)
+75 + j*(-57)
+236 + j*(-168)
+-54 + j*(-212)
+-194 + j*(15)
+80 + j*(347)
+190 + j*(412)
+11 + j*(-153)
+59 + j*(28)
+-182 + j*(-11)
+54 + j*(145)
+69 + j*(78)
+166 + j*(-189)
+204 + j*(-157)
+83 + j*(-216)
+87 + j*(-35)
+-200 + j*(-156)
+455 + j*(141)
+7 + j*(-114)
+91 + j*(305)
+-95 + j*(62)
+-254 + j*(-61)
+-80 + j*(117)
+-30 + j*(-195)
+-146 + j*(105)
+21 + j*(-25)
+305 + j*(23)
+-81 + j*(-15)
+192 + j*(395)
+141 + j*(303)
+-52 + j*(-129)
+54 + j*(-149)
+63 + j*(64)
+98 + j*(-260)
+132 + j*(19)
+-59 + j*(-57)
+116 + j*(170)
+251 + j*(-284)
+42 + j*(208)
+51 + j*(-195)
+-98 + j*(-44)
+-57 + j*(55)
+106 + j*(-38)
+-243 + j*(16)
+153 + j*(-65)
+7 + j*(-110)
+88 + j*(-73)
+-279 + j*(77)
+-173 + j*(40)
+-112 + j*(0)
+-154 + j*(-228)
+2 + j*(-147)
+-166 + j*(126)
+119 + j*(148)
+-215 + j*(114)
+-155 + j*(23)
+-41 + j*(-34)
+40 + j*(-300)
+-328 + j*(202)
+-206 + j*(-212)
+59 + j*(-325)
+25 + j*(-100)
+-208 + j*(-235)
+-233 + j*(167)
+-243 + j*(20)
+-203 + j*(0)
+-168 + j*(-173)
+-310 + j*(-146)
+-148 + j*(398)
+-72 + j*(-93)
+62 + j*(-152)
+28 + j*(128)
+-217 + j*(-27)
+-222 + j*(-188)
+168 + j*(16)
+-100 + j*(140)
+99 + j*(8)
+76 + j*(-57)
+139 + j*(-150)
+-192 + j*(-49)
+-18 + j*(-206)
+-16 + j*(-327)
+78 + j*(35)
+11 + j*(42)
+-107 + j*(-82)
+-274 + j*(235)
+81 + j*(-11)
+281 + j*(-61)
+-148 + j*(78)
+-279 + j*(-51)
+-252 + j*(186)
+31 + j*(-99)
+292 + j*(-155)
+-188 + j*(192)
+258 + j*(-96)
+21 + j*(-92)
+-28 + j*(165)
+146 + j*(59)
+0 + j*(-21)
+30 + j*(-192)
+82 + j*(14)
+-294 + j*(-13)
+-150 + j*(137)
+-71 + j*(68)
+-233 + j*(45)
+12 + j*(-62)
+-177 + j*(44)
+-175 + j*(337)
+-41 + j*(1)
+363 + j*(-244)
+231 + j*(181)
+191 + j*(-130)
+287 + j*(115)
+-69 + j*(221)
+-236 + j*(-50)
+-393 + j*(-47)
+71 + j*(13)
+447 + j*(-110)
+-76 + j*(316)
+42 + j*(71)
+-20 + j*(-75)
+-17 + j*(82)
+-231 + j*(-258)
+156 + j*(-174)
+-85 + j*(-142)
+-165 + j*(-173)
+-185 + j*(-25)
+173 + j*(137)
+303 + j*(-119)
+-86 + j*(-105)
+-253 + j*(-318)
+-68 + j*(142)
+-213 + j*(259)
+179 + j*(-58)
+-93 + j*(122)
+135 + j*(-185)
+-1 + j*(-180)
+261 + j*(-385)
+-207 + j*(-315)
+6 + j*(-70)
+216 + j*(339)
+-137 + j*(-129)
+35 + j*(15)
+16 + j*(127)
+71 + j*(-29)
+-254 + j*(-211)
+-325 + j*(103)
+-222 + j*(6)
+159 + j*(91)
+25 + j*(106)
+-139 + j*(101)
+-133 + j*(-289)
+-124 + j*(-40)
+-238 + j*(-183)
+-144 + j*(-1)
+111 + j*(-64)
+63 + j*(-308)
+-78 + j*(-153)
+324 + j*(-243)
+209 + j*(11)
+64 + j*(232)
+71 + j*(62)
+203 + j*(-52)
+-161 + j*(129)
+-339 + j*(144)
+78 + j*(86)
+66 + j*(-263)
+-78 + j*(-190)
+247 + j*(293)
+-25 + j*(19)
+-267 + j*(-15)
+89 + j*(-206)
+-64 + j*(120)
+83 + j*(165)
+-195 + j*(249)
+-55 + j*(-379)
+-194 + j*(19)
+-139 + j*(49)
+316 + j*(-139)
+-190 + j*(170)
+-33 + j*(34)
+14 + j*(-44)
+-363 + j*(50)
+39 + j*(77)
+296 + j*(-133)
+-183 + j*(289)
+-96 + j*(-81)
+-74 + j*(-333)
+92 + j*(-183)
+-99 + j*(167)
+-63 + j*(21)
+339 + j*(-39)
+-175 + j*(-257)
+72 + j*(117)
+-192 + j*(105)
+17 + j*(-17)
+-84 + j*(166)
+49 + j*(188)
+-156 + j*(153)
+74 + j*(-169)
+-35 + j*(280)
+-81 + j*(101)
+9 + j*(112)
+214 + j*(-38)
+254 + j*(-35)
+78 + j*(263)
+125 + j*(-71)
+100 + j*(68)
+339 + j*(111)
+-10 + j*(134)
+-4 + j*(-69)
+-98 + j*(74)
+-41 + j*(106)
+-28 + j*(330)
+325 + j*(88)
+-59 + j*(41)
+-110 + j*(-247)
+154 + j*(16)
+463 + j*(363)
+-112 + j*(-29)
+133 + j*(-1)
+315 + j*(208)
+-102 + j*(-248)
+135 + j*(23)
+328 + j*(11)
+201 + j*(46)
+163 + j*(134)
+224 + j*(-62)
+178 + j*(-89)
+136 + j*(107)
+69 + j*(-224)
+140 + j*(-87)
+-112 + j*(254)
+-65 + j*(120)
+-239 + j*(-35)
+80 + j*(30)
+-331 + j*(-125)
+-71 + j*(45)
+31 + j*(417)
+-17 + j*(-139)
+-54 + j*(49)
+246 + j*(-253)
+-6 + j*(101)
+110 + j*(-138)
+-88 + j*(56)
+66 + j*(264)
+-255 + j*(-18)
+-155 + j*(95)
+-332 + j*(88)
+-103 + j*(25)
+-618 + j*(214)
+213 + j*(-211)
+260 + j*(-49)
+-94 + j*(-75)
+-9 + j*(12)
+97 + j*(171)
+74 + j*(219)
+-18 + j*(-54)
+101 + j*(-135)
+-159 + j*(82)
+-48 + j*(-196)
+408 + j*(275)
+-194 + j*(-74)
+111 + j*(337)
+-13 + j*(409)
+-106 + j*(-51)
+-178 + j*(-203)
+-228 + j*(-69)
+-243 + j*(-10)
+1 + j*(-8)
+177 + j*(-189)
+85 + j*(16)
+131 + j*(270)
+-96 + j*(226)
+-4 + j*(336)
+-217 + j*(42)
+-99 + j*(-82)
+-206 + j*(-93)
+18 + j*(295)
+99 + j*(-189)
+-350 + j*(129)
+-8 + j*(91)
+59 + j*(-274)
+-83 + j*(173)
+48 + j*(29)
+207 + j*(-75)
+49 + j*(78)
+-65 + j*(-382)
+193 + j*(100)
+-70 + j*(42)
+33 + j*(-206)
+228 + j*(49)
+53 + j*(208)
+-76 + j*(-93)
+102 + j*(-103)
+-256 + j*(-43)
+86 + j*(-13)
+-111 + j*(40)
+186 + j*(-48)
+-2 + j*(498)
+-182 + j*(52)
+-127 + j*(81)
+74 + j*(-54)
+38 + j*(-88)
+35 + j*(-194)
+-173 + j*(112)
+-129 + j*(224)
+-54 + j*(-2)
+191 + j*(113)
+-88 + j*(72)
+-69 + j*(-259)
+84 + j*(240)
+-187 + j*(70)
+-79 + j*(-11)
+259 + j*(206)
+123 + j*(365)
+92 + j*(103)
+-187 + j*(76)
+54 + j*(232)
+40 + j*(-158)
+-212 + j*(-424)
+-91 + j*(215)
+-112 + j*(138)
+-110 + j*(243)
+-110 + j*(145)
+72 + j*(80)
+30 + j*(-110)
+180 + j*(26)
+63 + j*(5)
+232 + j*(238)
+199 + j*(-119)
+438 + j*(64)
+-40 + j*(-139)
+-146 + j*(-31)
+85 + j*(167)
+139 + j*(-206)
+45 + j*(66)
+98 + j*(-75)
+23 + j*(131)
+131 + j*(15)
+-84 + j*(126)
+-64 + j*(-182)
+28 + j*(141)
+17 + j*(37)
+194 + j*(6)
+-4 + j*(336)
+160 + j*(205)
+-259 + j*(113)
+-52 + j*(4)
+-104 + j*(-249)
+-11 + j*(-245)
+-66 + j*(86)
+30 + j*(-138)
+90 + j*(-182)
+47 + j*(122)
+281 + j*(166)
+-230 + j*(13)
+-165 + j*(380)
+222 + j*(-15)
+-247 + j*(113)
+-91 + j*(-12)
+-88 + j*(200)
+-69 + j*(240)
+-165 + j*(-6)
+-124 + j*(-184)
+-327 + j*(296)
+-209 + j*(37)
+-114 + j*(-329)
+238 + j*(-267)
+-122 + j*(-149)
+-104 + j*(-238)
+339 + j*(264)
+347 + j*(76)
+184 + j*(-87)
+272 + j*(-118)
+10 + j*(169)
+23 + j*(74)
+-53 + j*(377)
+-180 + j*(-162)
+-35 + j*(-269)
+73 + j*(280)
+-176 + j*(-9)
+69 + j*(172)
+-14 + j*(101)
+-124 + j*(-119)
+-54 + j*(-187)
+-47 + j*(158)
+352 + j*(147)
+167 + j*(312)
+-187 + j*(-197)
+101 + j*(202)
+-170 + j*(-168)
+140 + j*(39)
+132 + j*(40)
+29 + j*(-33)
+-226 + j*(204)
+-341 + j*(-25)
+-21 + j*(235)
+110 + j*(25)
+-176 + j*(40)
+-35 + j*(105)
+-175 + j*(13)
+-85 + j*(-78)
+-216 + j*(-102)
+147 + j*(43)
+370 + j*(-45)
+-330 + j*(-246)
+-337 + j*(179)
+-133 + j*(67)
+110 + j*(-80)
+92 + j*(-27)
+199 + j*(-197)
+150 + j*(98)
+-129 + j*(79)
+-209 + j*(-61)
+-128 + j*(406)
+472 + j*(301)
+-19 + j*(146)
+-18 + j*(-83)
+-54 + j*(-16)
+121 + j*(76)
+-417 + j*(77)
+-192 + j*(-91)
+35 + j*(232)
+240 + j*(161)
+-132 + j*(-16)
+-149 + j*(72)
+-26 + j*(-36)
+-112 + j*(-83)
+-86 + j*(-100)
+83 + j*(-132)
+-123 + j*(53)
+-269 + j*(-47)
+-93 + j*(180)
+129 + j*(200)
+-218 + j*(105)
+116 + j*(98)
+-157 + j*(-165)
+-252 + j*(-54)
+87 + j*(91)
+309 + j*(-156)
+72 + j*(-159)
+-16 + j*(-136)
+-54 + j*(16)
+-103 + j*(170)
+76 + j*(182)
+-231 + j*(-148)
+47 + j*(169)
+21 + j*(163)
+84 + j*(261)
+198 + j*(223)
+-277 + j*(100)
+-166 + j*(-125)
+125 + j*(-30)
+-276 + j*(266)
+159 + j*(26)
+311 + j*(171)
+-404 + j*(289)
+-104 + j*(-370)
+172 + j*(-347)
+59 + j*(-465)
+-428 + j*(43)
+26 + j*(-619)
+-139 + j*(192)
+213 + j*(469)
+395 + j*(104)
+146 + j*(-270)
+77 + j*(257)
+-204 + j*(245)
+61 + j*(264)
+317 + j*(351)
+395 + j*(379)
+-250 + j*(-278)
+547 + j*(-360)
+-296 + j*(-69)
+71 + j*(260)
+456 + j*(-113)
+316 + j*(214)
+107 + j*(-390)
+313 + j*(228)
+-105 + j*(486)
+120 + j*(275)
+541 + j*(-306)
+-351 + j*(-19)
+-144 + j*(-456)
+103 + j*(-197)
+-262 + j*(-299)
+305 + j*(62)
+-245 + j*(-17)
+-219 + j*(472)
+200 + j*(-195)
+-155 + j*(-257)
+-211 + j*(341)
+146 + j*(262)
+-86 + j*(229)
+-245 + j*(-318)
+368 + j*(-296)
+-375 + j*(305)
+-582 + j*(149)
+412 + j*(-397)
+421 + j*(-441)
+434 + j*(-191)
+141 + j*(325)
+-331 + j*(88)
+610 + j*(43)
+-328 + j*(305)
+351 + j*(-415)
+161 + j*(428)
+530 + j*(142)
+-705 + j*(-324)
+-76 + j*(132)
+-316 + j*(-183)
+-307 + j*(187)
+148 + j*(361)
+183 + j*(94)
+-168 + j*(360)
+-266 + j*(129)
+-301 + j*(-244)
+-252 + j*(232)
+-546 + j*(216)
+-227 + j*(121)
+-35 + j*(-342)
+-190 + j*(-325)
+-59 + j*(523)
+-171 + j*(-315)
+297 + j*(183)
+194 + j*(148)
+-443 + j*(281)
+-512 + j*(-66)
+532 + j*(250)
+-276 + j*(306)
+-358 + j*(187)
+-477 + j*(518)
+-310 + j*(-158)
+167 + j*(-405)
+66 + j*(-134)
+96 + j*(379)
+-23 + j*(-460)
+-404 + j*(-227)
+-14 + j*(-501)
+-691 + j*(-200)
+-339 + j*(30)
+648 + j*(317)
+347 + j*(-322)
+-260 + j*(597)
+-610 + j*(216)
+443 + j*(205)
+249 + j*(-314)
+486 + j*(-170)
+-298 + j*(87)
+141 + j*(238)
+-60 + j*(-71)
+67 + j*(-124)
+-291 + j*(-540)
+174 + j*(-324)
+-161 + j*(-228)
+193 + j*(-37)
+-153 + j*(-331)
+235 + j*(293)
+-141 + j*(-504)
+339 + j*(49)
+373 + j*(21)
+473 + j*(355)
+-270 + j*(268)
+-26 + j*(-260)
+379 + j*(-419)
+178 + j*(-35)
+307 + j*(680)
+564 + j*(-397)
+-474 + j*(-527)
+482 + j*(207)
+374 + j*(51)
+3 + j*(123)
+5 + j*(586)
+267 + j*(491)
+185 + j*(225)
+312 + j*(556)
+4 + j*(-366)
+166 + j*(405)
+-346 + j*(422)
+-438 + j*(-416)
+390 + j*(-59)
+30 + j*(-288)
+274 + j*(-242)
+-114 + j*(-100)
+-177 + j*(-375)
+-455 + j*(-292)
+-272 + j*(301)
+-218 + j*(-479)
+447 + j*(-296)
+-335 + j*(-378)
+-427 + j*(-16)
+308 + j*(-300)
+479 + j*(322)
+-170 + j*(82)
+-366 + j*(-153)
+-701 + j*(-477)
+-350 + j*(282)
+-327 + j*(344)
+-389 + j*(-333)
+-450 + j*(-218)
+-3 + j*(682)
+260 + j*(-402)
+70 + j*(305)
+588 + j*(520)
+-1 + j*(-161)
+-292 + j*(-104)
+-267 + j*(434)
+-195 + j*(404)
+-435 + j*(542)
+-376 + j*(-235)
+-187 + j*(42)
+61 + j*(550)
+-125 + j*(93)
+-262 + j*(217)
+512 + j*(234)
+405 + j*(358)
+52 + j*(-291)
+1 + j*(395)
+450 + j*(-216)
+-172 + j*(432)
+-180 + j*(-247)
+15 + j*(-400)
+-78 + j*(363)
+227 + j*(123)
+403 + j*(-133)
+-124 + j*(258)
+-400 + j*(-366)
+72 + j*(-175)
+-140 + j*(-51)
+90 + j*(-166)
+-484 + j*(148)
+-404 + j*(-392)
+-197 + j*(133)
+241 + j*(-45)
+122 + j*(-306)
+-136 + j*(296)
+-194 + j*(264)
+516 + j*(-226)
+-168 + j*(-320)
+-14 + j*(-386)
+231 + j*(440)
+146 + j*(346)
+268 + j*(451)
+184 + j*(-27)
+310 + j*(214)
+409 + j*(-258)
+-361 + j*(-303)
+153 + j*(-127)
+-217 + j*(-438)
+107 + j*(476)
+-204 + j*(403)
+-313 + j*(315)
+-328 + j*(-307)
+-351 + j*(97)
+185 + j*(-211)
+122 + j*(233)
+-445 + j*(-503)
+-212 + j*(-397)
+-420 + j*(196)
+64 + j*(-252)
+407 + j*(-336)
+-265 + j*(280)
+281 + j*(-268)
+218 + j*(-292)
+-138 + j*(484)
+-16 + j*(192)
+474 + j*(362)
+-399 + j*(-2)
+73 + j*(-350)
+264 + j*(158)
+365 + j*(-137)
+71 + j*(-62)
+-389 + j*(-485)
+-74 + j*(-57)
+-281 + j*(252)
+299 + j*(258)
+1 + j*(200)
+252 + j*(44)
+95 + j*(-210)
+180 + j*(-445)
+-356 + j*(228)
+90 + j*(-321)
+-198 + j*(-281)
+441 + j*(-279)
+-417 + j*(428)
+-317 + j*(-210)
+156 + j*(-520)
+-59 + j*(-228)
+238 + j*(-274)
+-299 + j*(-308)
+-270 + j*(-294)
+-181 + j*(-165)
+180 + j*(-48)
+-172 + j*(-289)
+395 + j*(77)
+212 + j*(-88)
+361 + j*(378)
+-260 + j*(-753)
+205 + j*(-86)
+-151 + j*(127)
+416 + j*(-146)
+121 + j*(-566)
+65 + j*(-477)
+119 + j*(281)
+43 + j*(-42)
+-172 + j*(182)
+-340 + j*(396)
+51 + j*(286)
+235 + j*(-410)
+296 + j*(-146)
+-86 + j*(-184)
+-59 + j*(-322)
+-381 + j*(236)
+98 + j*(-173)
+-176 + j*(218)
+-682 + j*(-62)
+-41 + j*(-211)
+-525 + j*(-330)
+36 + j*(-36)
+-578 + j*(-367)
+-245 + j*(380)
+-305 + j*(301)
+333 + j*(-141)
+-127 + j*(-254)
+308 + j*(-378)
+-358 + j*(177)
+231 + j*(216)
+-112 + j*(459)
+-436 + j*(-497)
+296 + j*(231)
+-276 + j*(-409)
+299 + j*(144)
+310 + j*(-267)
+-309 + j*(-237)
+-204 + j*(104)
+158 + j*(194)
+325 + j*(-127)
+140 + j*(260)
+52 + j*(131)
+29 + j*(-135)
+-162 + j*(345)
+-5 + j*(132)
+69 + j*(-456)
+302 + j*(149)
+211 + j*(-262)
+-506 + j*(-175)
+292 + j*(182)
+52 + j*(-322)
+365 + j*(-232)
+312 + j*(-269)
+-319 + j*(21)
+-315 + j*(-581)
+-138 + j*(167)
+-43 + j*(197)
+-42 + j*(450)
+-296 + j*(155)
+-540 + j*(358)
+-307 + j*(87)
+-446 + j*(-250)
+97 + j*(116)
+140 + j*(-486)
+300 + j*(-278)
+-419 + j*(163)
+-211 + j*(-185)
+-194 + j*(367)
+291 + j*(250)
+312 + j*(-236)
+195 + j*(81)
+-465 + j*(-375)
+482 + j*(115)
+116 + j*(120)
+122 + j*(320)
+-55 + j*(-224)
+-280 + j*(177)
+542 + j*(-264)
+416 + j*(103)
+-152 + j*(-113)
+-116 + j*(-58)
+-139 + j*(-262)
+-165 + j*(-510)
+-57 + j*(-504)
+168 + j*(-228)
+474 + j*(-120)
+-119 + j*(10)
+313 + j*(-328)
+-291 + j*(209)
+271 + j*(-57)
+358 + j*(-245)
+419 + j*(-226)
+-45 + j*(-529)
+344 + j*(-443)
+147 + j*(-416)
+-105 + j*(-279)
+40 + j*(4)
+-409 + j*(212)
+-322 + j*(-257)
+-169 + j*(-639)
+-194 + j*(-323)
+311 + j*(-214)
+-356 + j*(559)
+318 + j*(-374)
+157 + j*(112)
+-339 + j*(76)
+-456 + j*(153)
+-328 + j*(-325)
+504 + j*(113)
+-447 + j*(219)
+173 + j*(284)
+194 + j*(-21)
+-136 + j*(-310)
+-91 + j*(351)
+-112 + j*(-317)
+474 + j*(227)
+-348 + j*(124)
+368 + j*(-102)
+395 + j*(-190)
+-172 + j*(202)
+-148 + j*(-287)
+393 + j*(-330)
+144 + j*(411)
+-259 + j*(238)
+371 + j*(-130)
+40 + j*(-457)
+129 + j*(-453)
+-451 + j*(-215)
+-333 + j*(242)
+353 + j*(334)
+-604 + j*(356)
+209 + j*(-318)
+-358 + j*(-76)
+-118 + j*(-313)
+439 + j*(-315)
+60 + j*(-572)
+-457 + j*(282)
+-834 + j*(-7)
+428 + j*(-140)
+325 + j*(215)
+42 + j*(263)
+301 + j*(151)
+140 + j*(-72)
+489 + j*(-438)
+323 + j*(-402)
+194 + j*(-13)
+257 + j*(-322)
+-334 + j*(267)
+231 + j*(409)
+-231 + j*(-271)
+-265 + j*(394)
+-324 + j*(-305)
+-588 + j*(-325)
+84 + j*(-489)
+366 + j*(43)
+-291 + j*(108)
+533 + j*(-455)
+-100 + j*(352)
+181 + j*(-187)
+287 + j*(-428)
+-322 + j*(17)
+90 + j*(-332)
+413 + j*(-171)
+-474 + j*(-153)
+-167 + j*(-209)
+76 + j*(-141)
+395 + j*(201)
+-330 + j*(212)
+127 + j*(-255)
+120 + j*(-15)
+-132 + j*(190)
+-436 + j*(-209)
+-281 + j*(425)
+300 + j*(-408)
+-162 + j*(-301)
+-316 + j*(-458)
+166 + j*(-491)
+-384 + j*(-423)
+568 + j*(-527)
+-212 + j*(296)
+-204 + j*(-298)
+-229 + j*(117)
+-159 + j*(-412)
+365 + j*(358)
+260 + j*(-245)
+247 + j*(33)
+162 + j*(139)
+-332 + j*(284)
+-489 + j*(-540)
+-221 + j*(-39)
+-55 + j*(-142)
+-129 + j*(360)
+235 + j*(-252)
+513 + j*(104)
+-58 + j*(-313)
+419 + j*(284)
+-267 + j*(316)
+588 + j*(-197)
+-193 + j*(-361)
+370 + j*(556)
+-269 + j*(106)
+153 + j*(-44)
+-167 + j*(-265)
+-21 + j*(240)
+324 + j*(-368)
+-233 + j*(-361)
+-260 + j*(-260)
+-504 + j*(245)
+-684 + j*(316)
+-13 + j*(-153)
+89 + j*(-546)
+268 + j*(-261)
+392 + j*(448)
+359 + j*(397)
+448 + j*(-398)
+-400 + j*(-225)
+-547 + j*(-383)
+399 + j*(429)
+-360 + j*(-187)
+36 + j*(-126)
+-384 + j*(291)
+158 + j*(-358)
+337 + j*(569)
+431 + j*(-49)
+581 + j*(30)
+158 + j*(-206)
+361 + j*(-217)
+-216 + j*(-233)
+309 + j*(-486)
+258 + j*(-265)
+363 + j*(199)
+-440 + j*(309)
+-134 + j*(-397)
+441 + j*(298)
+356 + j*(285)
+148 + j*(-550)
+207 + j*(86)
+537 + j*(395)
+-137 + j*(297)
+-80 + j*(409)
+696 + j*(23)
+25 + j*(-275)
+402 + j*(129)
+334 + j*(219)
+79 + j*(271)
+-461 + j*(-98)
+21 + j*(-23)
+-138 + j*(354)
+487 + j*(-36)
+373 + j*(-1)
+-540 + j*(-255)
+108 + j*(-153)
+232 + j*(249)
+262 + j*(136)
+-284 + j*(-388)
+254 + j*(-303)
+4 + j*(-573)
+-71 + j*(327)
+-25 + j*(-76)
+-33 + j*(-450)
+248 + j*(362)
+61 + j*(-260)
+288 + j*(272)
+245 + j*(-42)
+-204 + j*(277)
+-479 + j*(-407)
+-165 + j*(451)
+409 + j*(445)
+-143 + j*(566)
+-254 + j*(-428)
+-61 + j*(408)
+-203 + j*(-141)
+-38 + j*(893)
+-53 + j*(235)
+170 + j*(-614)
+217 + j*(180)
+499 + j*(-375)
+-339 + j*(232)
+-112 + j*(-235)
+290 + j*(233)
+-400 + j*(214)
+470 + j*(363)
+-634 + j*(-109)
+-344 + j*(45)
+308 + j*(-479)
+-330 + j*(-6)
+-141 + j*(-100)
+-275 + j*(195)
+474 + j*(139)
+23 + j*(482)
+-501 + j*(-599)
+-23 + j*(105)
+204 + j*(-323)
+220 + j*(119)
+471 + j*(-33)
+-176 + j*(-472)
+-64 + j*(-11)
+-98 + j*(158)
+94 + j*(-177)
+-395 + j*(-368)
+106 + j*(106)
+-556 + j*(-269)
+404 + j*(389)
+-13 + j*(-54)
+-25 + j*(455)
+2 + j*(366)
+418 + j*(-81)
+390 + j*(-341)
+-173 + j*(-397)
+364 + j*(-233)
+17 + j*(-495)
+-489 + j*(86)
+-287 + j*(419)
+93 + j*(431)
+-31 + j*(212)
+-218 + j*(-117)
+-233 + j*(244)
+1 + j*(130)
+-180 + j*(-312)
+-434 + j*(57)
+501 + j*(22)
+324 + j*(-359)
+-497 + j*(-63)
+453 + j*(-11)
+225 + j*(-460)
+-413 + j*(-100)
+-16 + j*(440)
+500 + j*(130)
+-414 + j*(161)
+469 + j*(326)
+211 + j*(175)
+332 + j*(-65)
+407 + j*(13)
+207 + j*(467)
+-366 + j*(372)
+200 + j*(-223)
+-301 + j*(-318)
+-198 + j*(-273)
+-209 + j*(221)
+-148 + j*(5)
+102 + j*(433)
+-107 + j*(-116)
+303 + j*(337)
+356 + j*(98)
+-203 + j*(369)
+452 + j*(281)
+-542 + j*(421)
+54 + j*(371)
+222 + j*(-46)
+559 + j*(544)
+100 + j*(-298)
+68 + j*(204)
+-264 + j*(-267)
+-97 + j*(-311)
+-738 + j*(203)
+282 + j*(342)
+-310 + j*(778)
+-209 + j*(102)
+154 + j*(-2)
+11 + j*(-8)
+153 + j*(222)
+4 + j*(-33)
+309 + j*(283)
+-8 + j*(117)
+-136 + j*(-322)
+35 + j*(33)
+-11 + j*(176)
+119 + j*(237)
+186 + j*(45)
+77 + j*(124)
+288 + j*(35)
+-57 + j*(216)
+101 + j*(-8)
+119 + j*(-40)
+102 + j*(-182)
+15 + j*(83)
+-88 + j*(74)
+187 + j*(388)
+-7 + j*(-26)
+284 + j*(-194)
+235 + j*(-341)
+-86 + j*(-122)
+-98 + j*(-227)
+-177 + j*(-59)
+-202 + j*(-35)
+-58 + j*(-23)
+-12 + j*(-45)
+83 + j*(33)
+-135 + j*(-110)
+-112 + j*(-204)
+-404 + j*(-49)
+-187 + j*(-67)
+-158 + j*(168)
+-105 + j*(-175)
+13 + j*(-358)
+4 + j*(-224)
+35 + j*(-62)
+120 + j*(-361)
+-274 + j*(-179)
+-63 + j*(23)
+-110 + j*(-18)
+-194 + j*(-4)
+-61 + j*(-28)
+138 + j*(-290)
+100 + j*(-38)
+-128 + j*(-204)
+-246 + j*(-176)
+397 + j*(33)
+180 + j*(80)
+-214 + j*(-113)
+-52 + j*(244)
+-95 + j*(-3)
+-87 + j*(-13)
+15 + j*(73)
+71 + j*(-78)
+110 + j*(-1)
+4 + j*(-154)
+65 + j*(-86)
+-14 + j*(100)
+-88 + j*(21)
+-117 + j*(120)
+-478 + j*(-64)
+-50 + j*(-23)
+217 + j*(10)
+-46 + j*(-238)
+60 + j*(-23)
+235 + j*(-35)
+-79 + j*(339)
+-192 + j*(-21)
+-89 + j*(135)
+-107 + j*(126)
+-221 + j*(42)
+211 + j*(184)
+66 + j*(-160)
+-168 + j*(-4)
+-105 + j*(85)
+132 + j*(-27)
+124 + j*(-130)
+174 + j*(-112)
+151 + j*(76)
+249 + j*(-163)
+72 + j*(233)
+-243 + j*(-77)
+-294 + j*(-25)
+-281 + j*(61)
+112 + j*(67)
+-37 + j*(13)
+74 + j*(-144)
+-168 + j*(-35)
+-13 + j*(-313)
+-386 + j*(10)
+-311 + j*(-79)
+-11 + j*(90)
+185 + j*(405)
+186 + j*(-17)
+-127 + j*(-137)
+10 + j*(136)
+-59 + j*(110)
+1 + j*(-83)
+-20 + j*(-180)
+214 + j*(361)
+231 + j*(62)
+-104 + j*(-86)
+-192 + j*(185)
+-108 + j*(170)
+-169 + j*(-192)
+-104 + j*(-171)
+-28 + j*(-57)
+-208 + j*(126)
+185 + j*(-78)
+105 + j*(159)
+-228 + j*(-110)
+340 + j*(82)
+235 + j*(214)
+-80 + j*(-14)
+234 + j*(-162)
+-131 + j*(63)
+-43 + j*(60)
+-157 + j*(68)
+-207 + j*(144)
+-77 + j*(53)
+214 + j*(147)
+-150 + j*(-83)
+-100 + j*(90)
+-43 + j*(90)
+97 + j*(129)
+-34 + j*(-44)
+14 + j*(86)
+-258 + j*(47)
+161 + j*(38)
+286 + j*(-1)
+113 + j*(178)
+-124 + j*(-255)
+-3 + j*(347)
+136 + j*(-137)
+62 + j*(-89)
+36 + j*(267)
+-74 + j*(-311)
+-1 + j*(109)
+96 + j*(-269)
+223 + j*(-111)
+298 + j*(-105)
+-149 + j*(9)
+-303 + j*(36)
+-265 + j*(276)
+-324 + j*(-81)
+-176 + j*(-8)
+243 + j*(311)
+-18 + j*(-35)
+-212 + j*(177)
+-35 + j*(158)
+20 + j*(121)
+70 + j*(64)
+-201 + j*(-1)
+-76 + j*(258)
+-252 + j*(101)
+2 + j*(225)
+92 + j*(-81)
+123 + j*(-123)
+-125 + j*(78)
+146 + j*(-37)
+184 + j*(375)
+62 + j*(102)
+-294 + j*(196)
+-3 + j*(217)
+-214 + j*(322)
+559 + j*(98)
+-136 + j*(173)
+47 + j*(-37)
+98 + j*(-22)
+234 + j*(-21)
+36 + j*(-142)
+239 + j*(-272)
+-58 + j*(198)
+390 + j*(37)
+-132 + j*(-216)
+-95 + j*(-52)
+27 + j*(-119)
+-8 + j*(143)
+122 + j*(110)
+145 + j*(-146)
+210 + j*(-166)
+-73 + j*(-25)
+136 + j*(45)
+150 + j*(-169)
+45 + j*(-17)
+122 + j*(-30)
+110 + j*(-110)
+63 + j*(-232)
+330 + j*(312)
+-204 + j*(-26)
+204 + j*(129)
+-87 + j*(88)
+240 + j*(73)
+129 + j*(-101)
+-68 + j*(92)
+115 + j*(122)
+273 + j*(103)
+-320 + j*(-144)
+79 + j*(93)
+-335 + j*(242)
+308 + j*(1)
+52 + j*(119)
+206 + j*(-37)
+106 + j*(-74)
+-288 + j*(-274)
+-131 + j*(194)
+-107 + j*(-123)
+-418 + j*(120)
+165 + j*(74)
+209 + j*(27)
+143 + j*(-276)
+12 + j*(-70)
+33 + j*(-74)
+-44 + j*(-145)
+1 + j*(-385)
+7 + j*(45)
+460 + j*(-204)
+53 + j*(266)
+-216 + j*(-86)
+28 + j*(92)
+118 + j*(61)
+168 + j*(-52)
+110 + j*(198)
+121 + j*(-107)
+98 + j*(75)
+-211 + j*(338)
+16 + j*(-6)
+-261 + j*(346)
+101 + j*(-113)
+-151 + j*(104)
+-111 + j*(-175)
+38 + j*(172)
+83 + j*(-206)
+173 + j*(199)
+-34 + j*(66)
+-12 + j*(-31)
+40 + j*(47)
+30 + j*(336)
+276 + j*(16)
+238 + j*(76)
+439 + j*(259)
+120 + j*(-16)
+125 + j*(37)
+139 + j*(104)
+-79 + j*(-187)
+-431 + j*(219)
+-304 + j*(-148)
+-4 + j*(-105)
+-141 + j*(-92)
+194 + j*(-172)
+-30 + j*(-248)
+-45 + j*(157)
+-4 + j*(109)
+170 + j*(193)
+153 + j*(-243)
+-304 + j*(-82)
+92 + j*(64)
+76 + j*(16)
+68 + j*(46)
+-146 + j*(144)
+219 + j*(222)
+-216 + j*(68)
+-88 + j*(-248)
+-170 + j*(42)
+79 + j*(-355)
+43 + j*(67)
+69 + j*(33)
+-137 + j*(-228)
+72 + j*(132)
+-40 + j*(-29)
+-1 + j*(107)
+-73 + j*(333)
+285 + j*(-302)
+252 + j*(-49)
+74 + j*(-91)
+-83 + j*(156)
+-304 + j*(321)
+100 + j*(-276)
+-182 + j*(-174)
+-49 + j*(-325)
+78 + j*(-262)
+-262 + j*(-26)
+134 + j*(83)
+-112 + j*(83)
+7 + j*(65)
+-11 + j*(110)
+115 + j*(47)
+-45 + j*(-115)
+1 + j*(-168)
+-112 + j*(-49)
+-293 + j*(28)
+-351 + j*(-62)
+-10 + j*(27)
+226 + j*(-30)
+-57 + j*(176)
+37 + j*(-181)
+172 + j*(143)
+187 + j*(248)
+-205 + j*(1)
+187 + j*(-23)
+-280 + j*(-25)
+200 + j*(-519)
+-30 + j*(218)
+-90 + j*(220)
+-58 + j*(22)
+110 + j*(-327)
+-165 + j*(30)
+-2 + j*(-261)
+222 + j*(-47)
+-115 + j*(-274)
+284 + j*(65)
+166 + j*(339)
+-2 + j*(192)
+-54 + j*(-168)
+139 + j*(-147)
+202 + j*(-148)
+-88 + j*(-42)
+-88 + j*(87)
+-16 + j*(-157)
+-116 + j*(-215)
+254 + j*(57)
+-135 + j*(-27)
+82 + j*(223)
+-165 + j*(206)
+29 + j*(-119)
+-112 + j*(-28)
+241 + j*(330)
+-164 + j*(-91)
+-162 + j*(-92)
+39 + j*(57)
+-105 + j*(240)
+-96 + j*(-112)
+266 + j*(274)
+272 + j*(-71)
+-81 + j*(79)
+100 + j*(-11)
+-52 + j*(-24)
+325 + j*(-252)
+-24 + j*(363)
+170 + j*(-103)
+-224 + j*(263)
+229 + j*(123)
+62 + j*(-281)
+-139 + j*(-92)
+-103 + j*(124)
+387 + j*(-151)
+103 + j*(252)
+-52 + j*(-88)
+150 + j*(-183)
+-508 + j*(47)
+16 + j*(-13)
+40 + j*(104)
+-18 + j*(-61)
+436 + j*(25)
+-60 + j*(-131)
+165 + j*(101)
+220 + j*(191)
+-254 + j*(-140)
+21 + j*(-212)
+-81 + j*(-122)
+-252 + j*(-175)
+11 + j*(124)
+-47 + j*(38)
+163 + j*(227)
+-525 + j*(30)
+117 + j*(453)
+-137 + j*(-71)
+136 + j*(34)
+127 + j*(26)
+-360 + j*(-185)
+247 + j*(-28)
+-350 + j*(317)
+-262 + j*(151)
+58 + j*(-221)
+-10 + j*(156)
+-387 + j*(64)
+-25 + j*(223)
+-42 + j*(110)
+33 + j*(378)
+35 + j*(90)
+-264 + j*(78)
+-112 + j*(109)
+123 + j*(68)
+276 + j*(-239)
+-11 + j*(-231)
+416 + j*(23)
+276 + j*(196)
+-52 + j*(-30)
+-125 + j*(6)
+297 + j*(47)
+186 + j*(-114)
+75 + j*(-99)
+379 + j*(1)
+-25 + j*(330)
+-81 + j*(-228)
+-118 + j*(-213)
+-45 + j*(-100)
+-372 + j*(84)
+-93 + j*(-155)
+-169 + j*(-9)
+245 + j*(-222)
+-134 + j*(-5)
+-188 + j*(303)
+-162 + j*(-185)
+132 + j*(-141)
+-325 + j*(301)
+-42 + j*(-164)
+256 + j*(151)
+52 + j*(69)
+-128 + j*(325)
+-165 + j*(134)
+-162 + j*(-32)
+-117 + j*(-190)
+17 + j*(-82)
+173 + j*(-173)
+298 + j*(-11)
+-151 + j*(141)
+-327 + j*(147)
+-62 + j*(72)
+-21 + j*(-19)
+-10 + j*(-189)
+-36 + j*(50)
+95 + j*(-60)
+122 + j*(141)
+125 + j*(23)
+18 + j*(218)
+-36 + j*(288)
+-127 + j*(81)
+21 + j*(-100)
+-216 + j*(-237)
+85 + j*(-117)
+4 + j*(-219)
+260 + j*(-119)
+154 + j*(132)
+-110 + j*(312)
+-231 + j*(91)
+269 + j*(65)
+-62 + j*(-256)
+-133 + j*(-183)
+84 + j*(-89)
+143 + j*(-9)
+-245 + j*(11)
+-196 + j*(-218)
+85 + j*(-211)
+-146 + j*(91)
+-179 + j*(-57)
+-122 + j*(-66)
+-112 + j*(45)
+-354 + j*(-65)
+101 + j*(-99)
+362 + j*(243)
+-141 + j*(-321)
+210 + j*(114)
+127 + j*(223)
+257 + j*(-35)
+-298 + j*(63)
+-88 + j*(397)
+-272 + j*(72)
+44 + j*(387)
+-170 + j*(-21)
+60 + j*(104)
+-310 + j*(-85)
+-327 + j*(213)
+326 + j*(-179)
+-96 + j*(-5)
+15 + j*(-286)
+-76 + j*(27)
+103 + j*(124)
+5 + j*(-456)
+-133 + j*(-173)
+-7 + j*(-293)
+-62 + j*(-57)
+93 + j*(-42)
+282 + j*(-146)
+133 + j*(252)
+-98 + j*(63)
+14 + j*(138)
+-192 + j*(108)
+100 + j*(216)
+-214 + j*(-267)
+287 + j*(-177)
+138 + j*(-223)
+-74 + j*(92)
+210 + j*(134)
+-143 + j*(40)
+119 + j*(-45)
+115 + j*(30)
+344 + j*(-255)
+175 + j*(116)
+-238 + j*(98)
+-122 + j*(-103)
+-223 + j*(378)
+213 + j*(103)
+23 + j*(163)
+-150 + j*(130)
+116 + j*(257)
+-257 + j*(-51)
+-151 + j*(-144)
+98 + j*(-243)
+-285 + j*(-140)
+171 + j*(347)
+66 + j*(-49)
+294 + j*(-273)
+-100 + j*(-174)
+-237 + j*(-134)
+-459 + j*(320)
+-73 + j*(2)
+162 + j*(180)
+64 + j*(-307)
+263 + j*(-46)
+-95 + j*(-274)
+-50 + j*(103)
+191 + j*(170)
+-107 + j*(60)
+42 + j*(-159)
+-35 + j*(-46)
+-72 + j*(91)
+341 + j*(-216)
+112 + j*(249)
+-114 + j*(-213)
+11 + j*(71)
+-42 + j*(-106)
+-70 + j*(-117)
+-204 + j*(-8)
+-30 + j*(59)
+-257 + j*(263)
+190 + j*(-417)
+-6 + j*(152)
+-127 + j*(97)
+-64 + j*(99)
+-428 + j*(144)
+-178 + j*(-112)
+539 + j*(-2)
+338 + j*(-120)
+108 + j*(-235)
+-324 + j*(-28)
+16 + j*(160)
+70 + j*(188)
+11 + j*(73)
+-49 + j*(-291)
+206 + j*(197)
+237 + j*(136)
+83 + j*(216)
+54 + j*(-149)
+-28 + j*(-105)
+-37 + j*(-55)
+132 + j*(-138)
+138 + j*(-161)
+55 + j*(-45)
+-99 + j*(168)
+173 + j*(175)
+7 + j*(49)
+-8 + j*(55)
+93 + j*(248)
+16 + j*(-199)
+-104 + j*(324)
+-163 + j*(122)
+66 + j*(112)
+134 + j*(-49)
+25 + j*(-253)
+-76 + j*(-95)
+42 + j*(245)
+151 + j*(-187)
+-153 + j*(-282)
+39 + j*(-135)
+4 + j*(-163)
+75 + j*(190)
+-126 + j*(-10)
+171 + j*(55)
+-3 + j*(-19)
+-59 + j*(76)
+-189 + j*(-52)
+125 + j*(-81)
+254 + j*(-258)
+25 + j*(-116)
+-359 + j*(333)
+-127 + j*(110)
+-243 + j*(156)
+184 + j*(33)
+-265 + j*(5)
+-120 + j*(4)
+-265 + j*(-8)
+168 + j*(-161)
+65 + j*(125)
+-62 + j*(-164)
+-208 + j*(-21)
+-142 + j*(-322)
+-378 + j*(19)
+-73 + j*(76)
+-61 + j*(151)
+-141 + j*(-202)
+132 + j*(133)
+228 + j*(-25)
+458 + j*(-65)
+-133 + j*(-45)
+-233 + j*(85)
+126 + j*(-35)
+81 + j*(-158)
+239 + j*(64)
+169 + j*(179)
+23 + j*(318)
+-153 + j*(-144)
+92 + j*(-21)
+3 + j*(197)
+31 + j*(52)
+74 + j*(-50)
+117 + j*(-38)
+-108 + j*(-49)
+129 + j*(-19)
+-218 + j*(-81)
+123 + j*(-25)
+326 + j*(-124)
+-146 + j*(-104)
+-19 + j*(-156)
+-30 + j*(-185)
+52 + j*(86)
+-529 + j*(6)
+194 + j*(-97)
+109 + j*(278)
+-315 + j*(-296)
+241 + j*(168)
+107 + j*(228)
+-103 + j*(219)
+79 + j*(238)
+91 + j*(-158)
+343 + j*(-144)
+-165 + j*(-165)
+-375 + j*(49)
+257 + j*(-81)
+223 + j*(160)
+-144 + j*(-144)
+-11 + j*(252)
+70 + j*(-40)
+40 + j*(79)
+400 + j*(191)
+8 + j*(-76)
+-98 + j*(-105)
+8 + j*(33)
+-69 + j*(-42)
+270 + j*(-35)
+23 + j*(22)
+-418 + j*(-221)
+-38 + j*(-53)
+28 + j*(64)
+114 + j*(291)
+421 + j*(272)
+-222 + j*(250)
+-34 + j*(83)
+119 + j*(-148)
+-141 + j*(136)
+-165 + j*(40)
+110 + j*(-94)
+-341 + j*(105)
+-62 + j*(25)
+-187 + j*(107)
+-132 + j*(221)
+-17 + j*(1)
+279 + j*(-247)
+81 + j*(148)
+46 + j*(116)
+-448 + j*(-277)
+-310 + j*(431)
+30 + j*(28)
+136 + j*(-87)
+8 + j*(24)
+257 + j*(-246)
+-8 + j*(165)
+-49 + j*(-32)
+-11 + j*(-11)
+34 + j*(-10)
+-53 + j*(21)
+361 + j*(103)
+-284 + j*(-36)
+-202 + j*(-190)
+62 + j*(88)
+-69 + j*(190)
+-66 + j*(-338)
+54 + j*(31)
+-71 + j*(105)
+-177 + j*(-55)
+235 + j*(-53)
+28 + j*(104)
+-363 + j*(80)
+144 + j*(2)
+250 + j*(192)
+-60 + j*(1)
+-206 + j*(-163)
+54 + j*(-66)
+-91 + j*(-169)
+-78 + j*(-36)
+91 + j*(-15)
+-30 + j*(107)
+85 + j*(14)
+-285 + j*(21)
+179 + j*(152)
+-197 + j*(-69)
+86 + j*(-214)
+200 + j*(158)
+29 + j*(153)
+-181 + j*(-278)
+-89 + j*(-222)
+-172 + j*(-129)
+-30 + j*(272)
+365 + j*(-10)
+-40 + j*(-85)
+-8 + j*(-57)
+-241 + j*(-301)
+-267 + j*(-530)
+38 + j*(-85)
+-91 + j*(478)
+-18 + j*(-260)
+-261 + j*(-103)
+41 + j*(69)
+376 + j*(74)
+59 + j*(342)
+-450 + j*(-386)
+-185 + j*(-6)
+399 + j*(284)
+69 + j*(128)
+-247 + j*(-365)
+88 + j*(-74)
+182 + j*(16)
+-257 + j*(209)
+-336 + j*(26)
+-260 + j*(-74)
+80 + j*(66)
+-257 + j*(-243)
+139 + j*(-35)
+-354 + j*(33)
+21 + j*(-107)
+-279 + j*(46)
+-124 + j*(192)
+-474 + j*(-165)
+61 + j*(-238)
+-114 + j*(182)
+-122 + j*(-105)
+-265 + j*(192)
+209 + j*(-58)
+134 + j*(-87)
+-124 + j*(-299)
+-112 + j*(196)
+132 + j*(38)
+-180 + j*(303)
+-203 + j*(82)
+-62 + j*(-222)
+37 + j*(371)
+128 + j*(148)
+194 + j*(198)
+11 + j*(-93)
+23 + j*(-392)
+-9 + j*(213)
+284 + j*(-231)
+108 + j*(-115)
+-86 + j*(-54)
+-78 + j*(25)
+-66 + j*(-118)
+139 + j*(-135)
+95 + j*(-66)
+-155 + j*(-134)
+-136 + j*(13)
+37 + j*(147)
+105 + j*(-52)
+124 + j*(180)
+93 + j*(129)
+85 + j*(233)
+139 + j*(-129)
+363 + j*(93)
+110 + j*(181)
+321 + j*(-131)
+-116 + j*(-50)
+292 + j*(52)
+130 + j*(-219)
+-76 + j*(155)
+170 + j*(8)
+-60 + j*(36)
+105 + j*(58)
+368 + j*(125)
+-136 + j*(-108)
+-142 + j*(69)
+21 + j*(-49)
+10 + j*(-94)
+-196 + j*(-4)
+488 + j*(313)
+86 + j*(-116)
+167 + j*(34)
+-52 + j*(267)
+-132 + j*(273)
+-107 + j*(-311)
+12 + j*(-185)
+148 + j*(-227)
+-175 + j*(-88)
+68 + j*(40)
+44 + j*(-27)
+158 + j*(-191)
+-6 + j*(122)
+315 + j*(-21)
+-213 + j*(59)
+421 + j*(-175)
+-81 + j*(275)
+-93 + j*(80)
+-29 + j*(-130)
+-58 + j*(153)
+-246 + j*(-158)
+71 + j*(-250)
+-354 + j*(120)
+37 + j*(195)
+460 + j*(-35)
+-176 + j*(-60)
+109 + j*(30)
+-274 + j*(46)
+163 + j*(-293)
+339 + j*(124)
+-288 + j*(103)
+256 + j*(-101)
+-62 + j*(173)
+-130 + j*(288)
+137 + j*(-49)
+169 + j*(-1)
+-69 + j*(-170)
+-231 + j*(207)
+165 + j*(62)
+-147 + j*(102)
+-28 + j*(158)
+-18 + j*(-250)
+58 + j*(-124)
+-211 + j*(-76)
+-277 + j*(-126)
+-288 + j*(281)
+-47 + j*(91)
+57 + j*(-258)
+158 + j*(31)
+173 + j*(-93)
+64 + j*(-301)
+-178 + j*(88)
+-129 + j*(518)
+144 + j*(-270)
+146 + j*(-278)
+239 + j*(122)
+274 + j*(8)
+77 + j*(-119)
+-47 + j*(-154)
+-2 + j*(219)
+-204 + j*(267)
+118 + j*(166)
+42 + j*(-456)
+-47 + j*(29)
+-187 + j*(180)
+-112 + j*(230)
+95 + j*(-22)
+120 + j*(381)
+244 + j*(-168)
+-9 + j*(103)
+143 + j*(97)
+-337 + j*(1)
+228 + j*(18)
+-43 + j*(92)
+-42 + j*(6)
+-16 + j*(483)
+35 + j*(257)
+100 + j*(-82)
+245 + j*(144)
+136 + j*(-35)
+167 + j*(31)
+-45 + j*(129)
+-165 + j*(130)
+431 + j*(227)
+-163 + j*(-289)
+157 + j*(-82)
+371 + j*(-184)
+8 + j*(117)
+-247 + j*(-31)
+57 + j*(120)
+-107 + j*(-310)
+-71 + j*(-28)
+-234 + j*(-110)
+-88 + j*(80)
+-275 + j*(75)
+-202 + j*(311)
+-124 + j*(-170)
+1 + j*(-284)
+-44 + j*(-331)
+-148 + j*(-53)
+-11 + j*(8)
+156 + j*(255)
+302 + j*(170)
+-139 + j*(47)
+50 + j*(146)
+-132 + j*(234)
+-40 + j*(0)
+31 + j*(-148)
+-151 + j*(64)
+202 + j*(-64)
+207 + j*(42)
+-194 + j*(48)
+100 + j*(-102)
+97 + j*(123)
+262 + j*(82)
+-321 + j*(-168)
+-282 + j*(19)
+-35 + j*(201)
+257 + j*(114)
+-47 + j*(-174)
+-59 + j*(-81)
+1 + j*(-50)
+-180 + j*(-216)
+-141 + j*(-33)
+-106 + j*(167)
+14 + j*(62)
+151 + j*(104)
+-206 + j*(-145)
+132 + j*(-35)
+-2 + j*(94)
+107 + j*(101)
+65 + j*(93)
+30 + j*(-250)
+175 + j*(159)
+16 + j*(202)
+-87 + j*(-223)
+7 + j*(-244)
+58 + j*(-51)
+103 + j*(-135)
+-168 + j*(-313)
+-325 + j*(132)
+-136 + j*(-111)
+-211 + j*(-162)
+35 + j*(-76)
+354 + j*(196)
+132 + j*(-28)
+-12 + j*(-352)
+140 + j*(-337)
+-144 + j*(-102)
+-115 + j*(-63)
+-36 + j*(65)
+-98 + j*(-89)
+-119 + j*(53)
+91 + j*(-206)
+51 + j*(-476)
+160 + j*(-76)
+-222 + j*(-345)
+-265 + j*(202)
+86 + j*(-40)
+142 + j*(170)
+115 + j*(237)
+187 + j*(-6)
+-32 + j*(-87)
+-379 + j*(175)
+-46 + j*(-578)
+-116 + j*(-57)
+30 + j*(19)
+-80 + j*(115)
+13 + j*(100)
+-116 + j*(121)
+30 + j*(237)
+-226 + j*(165)
+-220 + j*(-202)
+70 + j*(-153)
+-282 + j*(-106)
+-322 + j*(-4)
+-46 + j*(7)
+176 + j*(41)
+195 + j*(132)
+-103 + j*(23)
+-114 + j*(-115)
+153 + j*(317)
+-57 + j*(60)
+-160 + j*(-151)
+-236 + j*(167)
+203 + j*(-55)
+-18 + j*(7)
+-244 + j*(-16)
+250 + j*(159)
+3 + j*(-170)
+-54 + j*(33)
+-42 + j*(-67)
+334 + j*(149)
+-354 + j*(85)
+-4 + j*(-64)
+-63 + j*(92)
+223 + j*(-244)
+4 + j*(-47)
+125 + j*(-204)
+107 + j*(70)
+191 + j*(-337)
+-331 + j*(185)
+-441 + j*(74)
+-96 + j*(178)
+-70 + j*(83)
+152 + j*(100)
+-117 + j*(371)
+184 + j*(-202)
+-223 + j*(200)
+-42 + j*(-50)
+18 + j*(126)
+20 + j*(-46)
+-298 + j*(203)
+46 + j*(146)
+-153 + j*(-19)
+268 + j*(-62)
+103 + j*(-322)
+157 + j*(694)
+-23 + j*(105)
+-129 + j*(183)
+-28 + j*(132)
+21 + j*(37)
+30 + j*(173)
+-101 + j*(121)
+-100 + j*(189)
+-272 + j*(-186)
+211 + j*(-85)
+-222 + j*(-71)
+-218 + j*(-44)
+-98 + j*(38)
+88 + j*(113)
+249 + j*(-197)
+86 + j*(346)
+-49 + j*(-60)
+235 + j*(230)
+62 + j*(-8)
+-169 + j*(-186)
+304 + j*(-342)
+119 + j*(65)
+34 + j*(-357)
+125 + j*(-96)
+-258 + j*(103)
+71 + j*(-79)
+-179 + j*(193)
+-139 + j*(-187)
+-236 + j*(-131)
+408 + j*(340)
+139 + j*(-67)
+-29 + j*(21)
+-59 + j*(99)
+-19 + j*(-37)
+377 + j*(107)
+-272 + j*(164)
+81 + j*(-98)
+-44 + j*(-69)
+-203 + j*(-243)
+-63 + j*(116)
+-82 + j*(13)
+-4 + j*(-42)
+83 + j*(-158)
+-216 + j*(-180)
+-112 + j*(112)
+-232 + j*(-168)
+146 + j*(169)
+-199 + j*(55)
+74 + j*(-52)
+-69 + j*(-372)
+-64 + j*(-177)
+-92 + j*(-14)
+1 + j*(-285)
+-81 + j*(-277)
+57 + j*(-180)
+-185 + j*(-419)
+-235 + j*(-25)
+-298 + j*(117)
+-20 + j*(82)
+110 + j*(231)
+20 + j*(-115)
+223 + j*(71)
+-54 + j*(18)
+-82 + j*(-61)
+-54 + j*(88)
+112 + j*(-132)
+-216 + j*(-183)
+144 + j*(135)
+-95 + j*(361)
+126 + j*(194)
+4 + j*(-424)
+185 + j*(91)
+-4 + j*(-30)
+-112 + j*(-177)
+-479 + j*(195)
+-301 + j*(-36)
+-324 + j*(74)
+66 + j*(20)
+-174 + j*(-128)
+57 + j*(-160)
+1 + j*(-95)
+121 + j*(-1)
+78 + j*(-13)
+8 + j*(-64)
+-83 + j*(46)
+-59 + j*(-35)
+7 + j*(23)
+-100 + j*(168)
+-151 + j*(-72)
+-171 + j*(-166)
+124 + j*(396)
+-94 + j*(-126)
+136 + j*(-111)
+-80 + j*(-441)
+136 + j*(268)
+358 + j*(69)
+11 + j*(-5)
+-298 + j*(-37)
+-37 + j*(144)
+-185 + j*(4)
+-16 + j*(282)
+-12 + j*(-115)
+-4 + j*(-86)
+29 + j*(-469)
+-443 + j*(-96)
+-258 + j*(7)
+115 + j*(-133)
+-213 + j*(-262)
+279 + j*(-81)
+129 + j*(-107)
+-167 + j*(38)
+-91 + j*(-312)
+-202 + j*(335)
+262 + j*(37)
+1 + j*(-13)
+135 + j*(319)
+127 + j*(297)
+130 + j*(115)
+-280 + j*(151)
+-213 + j*(-125)
+-90 + j*(23)
+110 + j*(192)
+-148 + j*(-175)
+-91 + j*(-89)
+428 + j*(-33)
+122 + j*(-108)
+206 + j*(-93)
+-56 + j*(-170)
+330 + j*(-283)
+243 + j*(18)
+257 + j*(-235)
+95 + j*(-140)
+-50 + j*(-323)
+-146 + j*(214)
+167 + j*(229)
+-22 + j*(23)
+72 + j*(-136)
+265 + j*(-286)
+-305 + j*(-121)
+6 + j*(165)
+124 + j*(-304)
+184 + j*(78)
+360 + j*(8)
+-103 + j*(-96)
+99 + j*(-48)
+-266 + j*(145)
+206 + j*(-59)
+313 + j*(58)
+-79 + j*(-182)
+109 + j*(91)
+-360 + j*(-320)
+153 + j*(227)
+-165 + j*(87)
+34 + j*(-18)
+3 + j*(229)
+1 + j*(49)
+245 + j*(140)
+-162 + j*(89)
+-110 + j*(-125)
+-93 + j*(202)
+109 + j*(-93)
+90 + j*(-56)
+358 + j*(151)
+286 + j*(-158)
+182 + j*(-62)
+-204 + j*(49)
+20 + j*(279)
+-105 + j*(-283)
+-83 + j*(43)
+-13 + j*(-51)
+-68 + j*(176)
+-152 + j*(-12)
+-129 + j*(231)
+9 + j*(143)
+102 + j*(-153)
+-134 + j*(-113)
+34 + j*(174)
+-151 + j*(180)
+-45 + j*(-171)
+206 + j*(-89)
+154 + j*(144)
+-146 + j*(-276)
+216 + j*(57)
+495 + j*(30)
+-177 + j*(25)
+97 + j*(240)
+-84 + j*(-176)
+-194 + j*(-102)
+33 + j*(-204)
+181 + j*(-70)
+-52 + j*(280)
+47 + j*(64)
+-77 + j*(67)
+408 + j*(27)
+171 + j*(74)
+-318 + j*(177)
+98 + j*(136)
+-166 + j*(124)
+21 + j*(223)
+-105 + j*(143)
+-185 + j*(162)
+11 + j*(6)
+218 + j*(118)
+-149 + j*(190)
+42 + j*(121)
+-117 + j*(100)
+-86 + j*(32)
+13 + j*(-127)
+13 + j*(-260)
+102 + j*(49)
+173 + j*(210)
+110 + j*(-64)
+-13 + j*(329)
+145 + j*(-61)
+44 + j*(-65)
+-110 + j*(-280)
+226 + j*(-64)
+207 + j*(205)
+-9 + j*(-98)
+-291 + j*(-194)
+59 + j*(129)
+-104 + j*(-78)
+13 + j*(-115)
+2 + j*(-84)
+47 + j*(-117)
+-182 + j*(-156)
+371 + j*(66)
+-185 + j*(249)
+-360 + j*(-141)
+74 + j*(-243)
+150 + j*(412)
+293 + j*(13)
+161 + j*(-319)
+-52 + j*(250)
+-81 + j*(-110)
+35 + j*(25)
+62 + j*(146)
+-134 + j*(-8)
+-101 + j*(64)
+-213 + j*(206)
+49 + j*(27)
+-9 + j*(44)
+-30 + j*(57)
+-185 + j*(-103)
+-175 + j*(-29)
+-315 + j*(127)
+294 + j*(-68)
+-98 + j*(390)
+76 + j*(-11)
+216 + j*(272)
+-136 + j*(5)
+44 + j*(210)
+-3 + j*(-24)
+182 + j*(-110)
+-61 + j*(40)
+-28 + j*(52)
+-95 + j*(-206)
+-57 + j*(230)
+182 + j*(-40)
+128 + j*(-143)
+102 + j*(-54)
+-83 + j*(28)
+-37 + j*(-208)
+-220 + j*(183)
+158 + j*(-382)
+88 + j*(-19)
+-25 + j*(-37)
+75 + j*(60)
+-63 + j*(-173)
+-230 + j*(-128)
+112 + j*(-43)
+-158 + j*(-47)
+20 + j*(49)
+-145 + j*(71)
+-297 + j*(68)
+-329 + j*(-21)
+245 + j*(-95)
+-303 + j*(88)
+-72 + j*(151)
+-126 + j*(-173)
+11 + j*(199)
+127 + j*(423)
+213 + j*(-18)
+230 + j*(17)
+-110 + j*(-47)
+347 + j*(166)
+165 + j*(46)
+-402 + j*(100)
+-34 + j*(-164)
+18 + j*(187)
+-27 + j*(102)
+100 + j*(324)
+-43 + j*(-269)
+118 + j*(-268)
+-69 + j*(187)
+192 + j*(-211)
+99 + j*(-127)
+262 + j*(42)
+-93 + j*(-35)
+-245 + j*(-249)
+-39 + j*(-274)
+115 + j*(-197)
+179 + j*(8)
+395 + j*(33)
+324 + j*(-6)
+-129 + j*(105)
+72 + j*(-66)
+-239 + j*(-16)
+-112 + j*(189)
+-334 + j*(-83)
+91 + j*(235)
+-139 + j*(91)
+-136 + j*(122)
+47 + j*(-132)
+453 + j*(-16)
+-150 + j*(-126)
+-255 + j*(86)
+146 + j*(-169)
+-31 + j*(158)
+98 + j*(132)
+-260 + j*(86)
+-20 + j*(145)
+77 + j*(-175)
+-227 + j*(271)
+-25 + j*(115)
+76 + j*(267)
+-192 + j*(66)
+-274 + j*(-34)
+-163 + j*(-132)
+-155 + j*(-195)
+91 + j*(46)
+-137 + j*(-191)
+-151 + j*(260)
+-8 + j*(29)
+-83 + j*(25)
+17 + j*(-16)
+-430 + j*(494)
+212 + j*(55)
+134 + j*(86)
+188 + j*(-2)
+-11 + j*(151)
+209 + j*(27)
+-37 + j*(40)
+-202 + j*(90)
+-25 + j*(327)
+81 + j*(-401)
+-180 + j*(194)
+-146 + j*(262)
+221 + j*(87)
+280 + j*(-118)
+-30 + j*(15)
+164 + j*(91)
+45 + j*(-315)
+-325 + j*(43)
+-283 + j*(-286)
+-63 + j*(-174)
+-220 + j*(-100)
+190 + j*(-108)
+37 + j*(-11)
+148 + j*(-88)
+-103 + j*(-93)
+122 + j*(94)
+-124 + j*(-273)
+-59 + j*(-193)
+13 + j*(77)
+3 + j*(-186)
+36 + j*(-62)
+-219 + j*(232)
+103 + j*(71)
+54 + j*(47)
+13 + j*(52)
+-356 + j*(119)
+-124 + j*(152)
+77 + j*(33)
+-83 + j*(148)
+-40 + j*(-25)
+35 + j*(-64)
+-170 + j*(-244)
+-301 + j*(-208)
+-61 + j*(140)
+-197 + j*(-47)
+-134 + j*(-243)
+34 + j*(269)
+-169 + j*(-330)
+65 + j*(46)
+167 + j*(47)
+-118 + j*(-40)
+65 + j*(-15)
+-16 + j*(211)
+-63 + j*(107)
+50 + j*(120)
+-194 + j*(9)
+-97 + j*(90)
+-226 + j*(-82)
+59 + j*(-375)
+123 + j*(-107)
+112 + j*(63)
+-95 + j*(146)
+-209 + j*(91)
+278 + j*(-85)
+190 + j*(134)
+296 + j*(-10)
+-175 + j*(-175)
+136 + j*(-52)
+166 + j*(-25)
+129 + j*(107)
+-254 + j*(-54)
+132 + j*(6)
+137 + j*(95)
+-457 + j*(-166)
+-146 + j*(34)
+-46 + j*(-144)
+32 + j*(291)
+143 + j*(168)
+108 + j*(14)
+25 + j*(-109)
+-262 + j*(148)
+-111 + j*(-62)
+170 + j*(-84)
+-148 + j*(217)
+-279 + j*(-161)
+-50 + j*(-172)
+261 + j*(-89)
+-186 + j*(31)
+-35 + j*(201)
+-392 + j*(-57)
+-43 + j*(291)
+-125 + j*(65)
+157 + j*(-12)
+-43 + j*(40)
+173 + j*(-97)
+231 + j*(-39)
+40 + j*(-25)
+-184 + j*(-57)
+31 + j*(-173)
+-262 + j*(74)
+6 + j*(214)
+37 + j*(-114)
+-296 + j*(-238)
+115 + j*(-8)
+17 + j*(-50)
+-165 + j*(134)
+-115 + j*(127)
+-419 + j*(-182)
+-29 + j*(-102)
+49 + j*(348)
+-173 + j*(-4)
+-431 + j*(31)
+-60 + j*(21)
+-130 + j*(-76)
+-278 + j*(-74)
+-156 + j*(-45)
+383 + j*(187)
+241 + j*(-255)
+105 + j*(-116)
+-6 + j*(-184)
+327 + j*(-173)
+-32 + j*(39)
+23 + j*(78)
+35 + j*(0)
+116 + j*(-264)
+-10 + j*(-5)
+-44 + j*(110)
+-103 + j*(-112)
+-506 + j*(227)
+144 + j*(-71)
+150 + j*(43)
+45 + j*(344)
+-286 + j*(-126)
+24 + j*(-301)
+-136 + j*(-288)
+23 + j*(-66)
+-247 + j*(-122)
+2 + j*(-254)
+-434 + j*(-101)
+-262 + j*(86)
+-265 + j*(-110)
+-293 + j*(115)
+-11 + j*(361)
+249 + j*(-121)
+-88 + j*(35)
+-232 + j*(-86)
+296 + j*(8)
+-125 + j*(4)
+-14 + j*(-228)
+-212 + j*(259)
+30 + j*(207)
+165 + j*(-69)
+454 + j*(0)
+-282 + j*(71)
+41 + j*(-194)
+264 + j*(-13)
+-313 + j*(129)
+82 + j*(106)
+76 + j*(-2)
+245 + j*(-102)
+-92 + j*(245)
+242 + j*(-47)
+-132 + j*(-83)
+231 + j*(-56)
+-64 + j*(-59)
+-94 + j*(-115)
+241 + j*(154)
+-261 + j*(-173)
+-56 + j*(157)
+-54 + j*(-21)
+-180 + j*(28)
+144 + j*(104)
+64 + j*(23)
+-93 + j*(-354)
+189 + j*(185)
+-110 + j*(-22)
+209 + j*(-222)
+79 + j*(-39)
+217 + j*(-105)
+-21 + j*(-139)
+91 + j*(205)
+195 + j*(-93)
+-6 + j*(-144)
+-231 + j*(117)
+-18 + j*(-35)
+87 + j*(190)
+152 + j*(56)
+248 + j*(66)
+-3 + j*(-235)
+-81 + j*(132)
+-59 + j*(315)
+-289 + j*(142)
+100 + j*(-118)
+-191 + j*(355)
+52 + j*(-271)
+1 + j*(-161)
+-151 + j*(-81)
+198 + j*(357)
+-202 + j*(-13)
+19 + j*(-220)
+188 + j*(-258)
+90 + j*(105)
+-168 + j*(25)
+37 + j*(-505)
+281 + j*(-93)
+-241 + j*(-156)
+49 + j*(-28)
+16 + j*(-299)
+151 + j*(-229)
+-42 + j*(136)
+-228 + j*(43)
+-124 + j*(148)
+-7 + j*(19)
+250 + j*(-66)
+207 + j*(118)
+80 + j*(28)
+-22 + j*(61)
+190 + j*(-61)
+206 + j*(-161)
+27 + j*(-344)
+-176 + j*(-18)
+233 + j*(-76)
+64 + j*(-87)
+334 + j*(-81)
+216 + j*(-3)
+1 + j*(499)
+57 + j*(-66)
+-123 + j*(-246)
+-329 + j*(-81)
+-113 + j*(-94)
+41 + j*(204)
+-194 + j*(-10)
+-52 + j*(116)
+-80 + j*(33)
+-271 + j*(-388)
+-288 + j*(-45)
+-65 + j*(-40)
+118 + j*(-59)
+296 + j*(-220)
+-175 + j*(57)
+4 + j*(71)
+-124 + j*(62)
+153 + j*(95)
+209 + j*(209)
+132 + j*(293)
+-72 + j*(-90)
+378 + j*(3)
+57 + j*(266)
+-354 + j*(42)
+84 + j*(-270)
+-52 + j*(303)
+211 + j*(-53)
+132 + j*(-156)
+375 + j*(37)
+-21 + j*(87)
+381 + j*(-107)
+86 + j*(-33)
+98 + j*(21)
+-189 + j*(-212)
+-138 + j*(-247)
+330 + j*(-127)
+34 + j*(-63)
+181 + j*(139)
+-86 + j*(144)
+206 + j*(-378)
+165 + j*(29)
+-133 + j*(183)
+52 + j*(-56)
+-140 + j*(123)
+-123 + j*(68)
+-13 + j*(243)
+-144 + j*(-129)
+-265 + j*(-195)
+148 + j*(139)
+117 + j*(-42)
+-105 + j*(-67)
+-64 + j*(-123)
+20 + j*(-232)
+-250 + j*(85)
+-117 + j*(-41)
+-474 + j*(269)
+76 + j*(-93)
+23 + j*(-175)
+-138 + j*(191)
+13 + j*(-97)
+15 + j*(395)
+71 + j*(56)
+-91 + j*(74)
+-180 + j*(134)
+-23 + j*(90)
+110 + j*(313)
+-309 + j*(-167)
+13 + j*(44)
+146 + j*(276)
+105 + j*(-266)
+-9 + j*(-158)
+69 + j*(-4)
+-45 + j*(-214)
+148 + j*(69)
+95 + j*(98)
+322 + j*(-187)
+-102 + j*(-109)
+-287 + j*(66)
+-108 + j*(-247)
+62 + j*(112)
+86 + j*(-119)
+75 + j*(65)
+-5 + j*(192)
+-112 + j*(0)
+301 + j*(-56)
+-206 + j*(83)
+-30 + j*(192)
+-293 + j*(-1)
+167 + j*(98)
+144 + j*(-275)
+76 + j*(80)
+-81 + j*(314)
+-132 + j*(-187)
+-124 + j*(-295)
+-412 + j*(339)
+49 + j*(-5)
+-10 + j*(-172)
+-36 + j*(-47)
+-112 + j*(-105)
+171 + j*(441)
+-104 + j*(-93)
+128 + j*(211)
+-76 + j*(-84)
+84 + j*(350)
+47 + j*(-100)
+-137 + j*(-182)
+-22 + j*(-212)
+8 + j*(100)
+-58 + j*(252)
+55 + j*(40)
+-95 + j*(127)
+252 + j*(-148)
+-147 + j*(-35)
+202 + j*(-465)
+127 + j*(-109)
+-136 + j*(-75)
+122 + j*(67)
+34 + j*(-97)
+-622 + j*(-2)
+240 + j*(49)
+230 + j*(95)
+-16 + j*(33)
+129 + j*(178)
+-92 + j*(131)
+-146 + j*(-288)
+-11 + j*(-154)
+243 + j*(-119)
+-293 + j*(-419)
+12 + j*(146)
+11 + j*(258)
+-267 + j*(-30)
+378 + j*(180)
+-145 + j*(-53)
+-152 + j*(-247)
+-127 + j*(-30)
+244 + j*(-144)
+-57 + j*(107)
+324 + j*(203)
+158 + j*(-66)
+308 + j*(-268)
+119 + j*(-105)
+-98 + j*(127)
+-189 + j*(-178)
+-35 + j*(-40)
+142 + j*(378)
+-226 + j*(-28)
+273 + j*(-14)
+65 + j*(-8)
+-95 + j*(-134)
+-35 + j*(83)
+49 + j*(157)
+-52 + j*(-219)
+14 + j*(280)
+-33 + j*(-86)
+86 + j*(-61)
+-508 + j*(-100)
+161 + j*(-415)
+-86 + j*(-105)
+65 + j*(-98)
+233 + j*(69)
+-90 + j*(115)
+47 + j*(171)
+-141 + j*(-136)
+70 + j*(-102)
+-40 + j*(-204)
+-239 + j*(-93)
+192 + j*(155)
+-231 + j*(32)
+-45 + j*(-419)
+20 + j*(-41)
+7 + j*(42)
+258 + j*(-222)
+98 + j*(-2)
+-13 + j*(62)
+-309 + j*(-131)
+158 + j*(96)
+-309 + j*(-138)
+-322 + j*(-272)
+168 + j*(-258)
+-395 + j*(131)
+187 + j*(-576)
+-81 + j*(-438)
+-147 + j*(-62)
+-220 + j*(-71)
+-203 + j*(-38)
+184 + j*(113)
+0 + j*(-317)
+167 + j*(-6)
+-226 + j*(78)
+-146 + j*(-158)
+-223 + j*(21)
+-170 + j*(70)
+21 + j*(-109)
+-54 + j*(103)
+407 + j*(-218)
+-4 + j*(-20)
+207 + j*(-315)
+-80 + j*(-86)
+180 + j*(-165)
+-144 + j*(289)
+146 + j*(262)
+38 + j*(-47)
+352 + j*(281)
+290 + j*(-41)
+-28 + j*(-112)
+38 + j*(323)
+-56 + j*(-105)
+-68 + j*(74)
+249 + j*(117)
+13 + j*(223)
+-66 + j*(356)
+-146 + j*(-142)
+-55 + j*(216)
+181 + j*(215)
+252 + j*(74)
+143 + j*(-118)
+93 + j*(125)
+29 + j*(22)
+-83 + j*(-94)
+66 + j*(21)
+-62 + j*(146)
+264 + j*(-65)
+-211 + j*(389)
+-119 + j*(245)
+24 + j*(-66)
+71 + j*(22)
+-1 + j*(-225)
+80 + j*(-397)
+-206 + j*(-12)
+-6 + j*(158)
+87 + j*(251)
+-8 + j*(139)
+-56 + j*(126)
+-327 + j*(45)
+37 + j*(-74)
+-45 + j*(381)
+94 + j*(-11)
+-6 + j*(46)
+-115 + j*(-161)
+171 + j*(-400)
+-3 + j*(44)
+-228 + j*(208)
+-20 + j*(-47)
+-117 + j*(-197)
+-104 + j*(89)
+102 + j*(-254)
+76 + j*(-246)
+-368 + j*(-77)
+49 + j*(107)
+47 + j*(53)
+87 + j*(-298)
+199 + j*(-163)
+116 + j*(-85)
+25 + j*(-167)
+-1 + j*(74)
+-2 + j*(-13)
+54 + j*(-91)
+76 + j*(-262)
+72 + j*(-146)
+-135 + j*(-182)
+6 + j*(-18)
+-217 + j*(178)
+-46 + j*(69)
+-9 + j*(-42)
+-65 + j*(-80)
+-28 + j*(-10)
+-97 + j*(-62)
+158 + j*(-168)
+106 + j*(2)
+-184 + j*(-18)
+-233 + j*(16)
+158 + j*(294)
+-172 + j*(-383)
+-199 + j*(-178)
+125 + j*(-46)
+-41 + j*(17)
+-365 + j*(247)
+262 + j*(-253)
+-105 + j*(72)
+-32 + j*(141)
+-2 + j*(-19)
+143 + j*(-65)
+42 + j*(125)
+37 + j*(-173)
+123 + j*(47)
+45 + j*(-98)
+-40 + j*(143)
+28 + j*(-257)
+97 + j*(-254)
+170 + j*(-148)
+-200 + j*(-47)
+-126 + j*(158)
+-278 + j*(21)
+124 + j*(130)
+-147 + j*(-42)
+8 + j*(200)
+-85 + j*(-76)
+237 + j*(37)
+-167 + j*(184)
+175 + j*(235)
+-180 + j*(380)
+-506 + j*(-137)
+-172 + j*(148)
+-28 + j*(23)
+18 + j*(-223)
+-82 + j*(166)
+11 + j*(121)
+83 + j*(216)
+-210 + j*(-182)
+-269 + j*(99)
+333 + j*(-19)
+-129 + j*(-68)
+281 + j*(-123)
+-8 + j*(-74)
+-146 + j*(36)
+91 + j*(-126)
+-94 + j*(45)
+-42 + j*(-46)
+62 + j*(464)
+89 + j*(-21)
+-281 + j*(67)
+101 + j*(-325)
+40 + j*(270)
+-163 + j*(107)
+-337 + j*(-230)
+-49 + j*(-117)
+94 + j*(200)
+-100 + j*(119)
+-252 + j*(49)
+164 + j*(40)
+337 + j*(72)
+-47 + j*(-204)
+-224 + j*(-218)
+-180 + j*(218)
+1 + j*(221)
+221 + j*(-285)
+259 + j*(-113)
+-71 + j*(366)
+-113 + j*(-133)
+59 + j*(-132)
+82 + j*(-6)
+-69 + j*(21)
+-182 + j*(-43)
+-27 + j*(-281)
+80 + j*(-69)
+-54 + j*(-49)
+91 + j*(-78)
+214 + j*(-64)
+-216 + j*(246)
+-180 + j*(11)
+81 + j*(-48)
+-34 + j*(-7)
+-8 + j*(57)
+-26 + j*(45)
+-324 + j*(264)
+185 + j*(-170)
+-119 + j*(-197)
+28 + j*(132)
+16 + j*(67)
+403 + j*(142)
+152 + j*(152)
+-22 + j*(388)
+44 + j*(0)
+42 + j*(11)
+35 + j*(-54)
+182 + j*(-73)
+153 + j*(-13)
+159 + j*(-34)
+316 + j*(83)
+289 + j*(194)
+-134 + j*(-163)
+87 + j*(117)
+95 + j*(-318)
+108 + j*(-79)
+-322 + j*(431)
+-1 + j*(314)
+69 + j*(-359)
+117 + j*(-21)
+-343 + j*(198)
+-25 + j*(-99)
+-10 + j*(-103)
+-76 + j*(182)
+-164 + j*(-390)
+-95 + j*(40)
+-181 + j*(182)
+-129 + j*(-161)
+-130 + j*(111)
+-20 + j*(1)
+-223 + j*(49)
+-129 + j*(119)
+-90 + j*(-31)
+163 + j*(-215)
+-130 + j*(-217)
+111 + j*(30)
+40 + j*(63)
+-132 + j*(1)
+-240 + j*(-94)
+301 + j*(-80)
+-62 + j*(-7)
+85 + j*(-55)
+144 + j*(4)
+-60 + j*(11)
+-43 + j*(-144)
+-178 + j*(136)
+125 + j*(133)
+-44 + j*(124)
+41 + j*(190)
+75 + j*(223)
+-161 + j*(-218)
+131 + j*(7)
+21 + j*(102)
+-467 + j*(-260)
+250 + j*(-82)
+99 + j*(83)
+-223 + j*(349)
+-216 + j*(-151)
+129 + j*(-349)
+243 + j*(-324)
+178 + j*(52)
+194 + j*(-74)
+146 + j*(200)
+136 + j*(43)
+-378 + j*(-235)
+-290 + j*(151)
+407 + j*(159)
+-139 + j*(-40)
+130 + j*(-59)
+135 + j*(353)
+89 + j*(100)
+-30 + j*(-180)
+-50 + j*(-217)
+76 + j*(-12)
+-197 + j*(-5)
+-296 + j*(0)
+-256 + j*(119)
+233 + j*(-107)
+16 + j*(-327)
+-274 + j*(325)
+91 + j*(24)
+47 + j*(-30)
+211 + j*(-159)
+277 + j*(18)
+138 + j*(3)
+-142 + j*(-59)
+212 + j*(-37)
+97 + j*(382)
+381 + j*(126)
+221 + j*(-418)
+328 + j*(-99)
+-93 + j*(-224)
+-30 + j*(-151)
+-246 + j*(-29)
+230 + j*(13)
+97 + j*(242)
+8 + j*(-52)
+-58 + j*(141)
+33 + j*(-67)
+-415 + j*(-201)
+-23 + j*(-113)
+-18 + j*(-187)
+245 + j*(-151)
+69 + j*(-96)
+-143 + j*(117)
+179 + j*(47)
+87 + j*(-223)
+-263 + j*(-198)
+-29 + j*(-86)
+287 + j*(158)
+-59 + j*(113)
+184 + j*(95)
+264 + j*(42)
+-146 + j*(232)
+-67 + j*(-57)
+19 + j*(-152)
+187 + j*(182)
+-253 + j*(-218)
+134 + j*(207)
+91 + j*(-161)
+131 + j*(-104)
+132 + j*(-75)
+95 + j*(427)
+-11 + j*(-45)
+-13 + j*(-20)
+-47 + j*(227)
+86 + j*(66)
+94 + j*(-35)
+-11 + j*(-71)
+-160 + j*(56)
+36 + j*(255)
+276 + j*(-119)
+49 + j*(108)
+-98 + j*(-81)
+-76 + j*(-313)
+240 + j*(4)
+-160 + j*(21)
+8 + j*(-165)
+-163 + j*(261)
+-270 + j*(-73)
+187 + j*(110)
+-86 + j*(-165)
+214 + j*(134)
+-33 + j*(-112)
+-421 + j*(278)
+19 + j*(46)
+53 + j*(228)
+-442 + j*(-151)
+69 + j*(59)
+-86 + j*(55)
+50 + j*(-371)
+-199 + j*(113)
+-13 + j*(172)
+168 + j*(52)
+384 + j*(291)
+-89 + j*(-129)
+-343 + j*(-387)
+-37 + j*(300)
+-37 + j*(-66)
+-209 + j*(-116)
+112 + j*(2)
+87 + j*(-80)
+-272 + j*(-38)
+-51 + j*(40)
+-221 + j*(-138)
+-182 + j*(-378)
+-461 + j*(-30)
+-141 + j*(-149)
+269 + j*(-55)
+122 + j*(68)
+122 + j*(33)
+-153 + j*(-116)
+-47 + j*(-1)
+285 + j*(30)
+102 + j*(-137)
+50 + j*(-193)
+-409 + j*(-35)
+-162 + j*(171)
+354 + j*(41)
+-216 + j*(101)
+33 + j*(256)
+-114 + j*(203)
+-353 + j*(-30)
+42 + j*(-177)
+-2 + j*(95)
+-100 + j*(-156)
+-117 + j*(-155)
+-144 + j*(-4)
+-138 + j*(-194)
+33 + j*(-209)
+-113 + j*(6)
+-361 + j*(190)
+153 + j*(-317)
+-49 + j*(81)
+-70 + j*(-52)
+104 + j*(-284)
+131 + j*(113)
+28 + j*(6)
+18 + j*(71)
+47 + j*(100)
+126 + j*(-6)
+-138 + j*(199)
+18 + j*(-209)
+158 + j*(-37)
+237 + j*(-211)
+277 + j*(-17)
+87 + j*(151)
+-173 + j*(-153)
+147 + j*(-314)
+-79 + j*(247)
+128 + j*(-87)
+26 + j*(-173)
+236 + j*(-258)
+-177 + j*(25)
+-112 + j*(-148)
+-136 + j*(-163)
+-16 + j*(-223)
+-124 + j*(218)
+-49 + j*(-257)
+-156 + j*(-51)
+-25 + j*(-276)
+88 + j*(1)
+-191 + j*(-42)
+-81 + j*(-92)
+138 + j*(419)
+2 + j*(88)
+-1 + j*(84)
+119 + j*(194)
+-129 + j*(-187)
+-151 + j*(-66)
+-141 + j*(11)
+107 + j*(-457)
+256 + j*(140)
+1 + j*(218)
+130 + j*(134)
+122 + j*(62)
+96 + j*(-102)
+72 + j*(-88)
+59 + j*(-168)
+-111 + j*(-354)
+189 + j*(-89)
+224 + j*(-129)
+-127 + j*(88)
+1 + j*(357)
+139 + j*(163)
+147 + j*(244)
+100 + j*(94)
+269 + j*(6)
+13 + j*(-315)
+71 + j*(-104)
+-110 + j*(30)
+18 + j*(-172)
+-40 + j*(-19)
+-182 + j*(307)
+129 + j*(344)
+-29 + j*(-144)
+-138 + j*(-13)
+361 + j*(-96)
+-143 + j*(105)
+-92 + j*(-118)
+16 + j*(52)
+-119 + j*(187)
+296 + j*(-150)
+-188 + j*(-91)
+-7 + j*(-250)
+83 + j*(-74)
+-110 + j*(113)
+-170 + j*(331)
+-52 + j*(-16)
+97 + j*(-301)
+-269 + j*(-31)
+-89 + j*(69)
+84 + j*(-25)
+161 + j*(-239)
+-80 + j*(156)
+148 + j*(-129)
+191 + j*(196)
+-153 + j*(43)
+-117 + j*(-74)
+-46 + j*(-340)
+-41 + j*(-180)
+53 + j*(-113)
+182 + j*(195)
+208 + j*(221)
+6 + j*(14)
+144 + j*(73)
+-83 + j*(-97)
+30 + j*(223)
+-98 + j*(-148)
+-493 + j*(-247)
+-386 + j*(32)
+-112 + j*(326)
+41 + j*(-60)
+155 + j*(-324)
+42 + j*(-76)
+-39 + j*(-154)
+123 + j*(409)
+-132 + j*(-122)
+209 + j*(-33)
+-313 + j*(55)
+235 + j*(189)
+-382 + j*(339)
+87 + j*(-11)
+101 + j*(1)
+186 + j*(-173)
+23 + j*(-135)
+427 + j*(74)
+280 + j*(-122)
+-69 + j*(-35)
+247 + j*(-23)
+112 + j*(-204)
+110 + j*(-6)
+-303 + j*(14)
+245 + j*(250)
+-73 + j*(-16)
+35 + j*(123)
+49 + j*(49)
+-154 + j*(-42)
+-281 + j*(-35)
+-308 + j*(151)
+151 + j*(22)
+45 + j*(-136)
+-244 + j*(-184)
+-175 + j*(-62)
+38 + j*(231)
+6 + j*(98)
+-51 + j*(-29)
+-168 + j*(-286)
+60 + j*(-317)
+53 + j*(221)
+-120 + j*(98)
+-54 + j*(-115)
+93 + j*(-67)
+139 + j*(57)
+-66 + j*(108)
+-183 + j*(54)
+-59 + j*(-28)
+-165 + j*(35)
+-184 + j*(29)
+-275 + j*(165)
+377 + j*(17)
+-283 + j*(-351)
+42 + j*(141)
+90 + j*(-40)
+-74 + j*(-148)
+53 + j*(353)
+4 + j*(-133)
+440 + j*(-84)
+-33 + j*(113)
+83 + j*(76)
+-175 + j*(-44)
+69 + j*(-90)
+103 + j*(135)
+156 + j*(92)
+-122 + j*(-37)
+48 + j*(-104)
+250 + j*(-129)
+88 + j*(190)
+-170 + j*(335)
+-293 + j*(20)
+40 + j*(-365)
+140 + j*(-265)
+340 + j*(49)
+-47 + j*(135)
+330 + j*(-47)
+-25 + j*(-161)
+-59 + j*(112)
+185 + j*(186)
+125 + j*(-295)
+-45 + j*(554)
+100 + j*(13)
+52 + j*(40)
+-13 + j*(-54)
+-218 + j*(-153)
+11 + j*(-43)
+-39 + j*(3)
+10 + j*(-15)
+-298 + j*(9)
+123 + j*(-210)
+179 + j*(-168)
+211 + j*(-169)
+250 + j*(216)
+74 + j*(-95)
+-288 + j*(59)
+-35 + j*(135)
+23 + j*(127)
+-22 + j*(190)
+-76 + j*(-112)
+180 + j*(-251)
+226 + j*(-145)
+30 + j*(37)
+79 + j*(137)
+83 + j*(-292)
+209 + j*(-6)
+-307 + j*(-122)
+119 + j*(-90)
+26 + j*(-105)
+-28 + j*(-279)
+-95 + j*(-34)
+-57 + j*(-282)
+-361 + j*(-175)
+-83 + j*(-77)
+-74 + j*(16)
+370 + j*(52)
+-276 + j*(-269)
+285 + j*(-62)
+-129 + j*(-197)
+-21 + j*(-14)
+-3 + j*(45)
+371 + j*(43)
+-213 + j*(-98)
+196 + j*(23)
+187 + j*(62)
+-165 + j*(173)
+61 + j*(-60)
+194 + j*(-329)
+-269 + j*(-18)
+160 + j*(-72)
+62 + j*(284)
+47 + j*(-228)
+-74 + j*(294)
+64 + j*(78)
+37 + j*(-100)
+-81 + j*(50)
+18 + j*(-113)
+157 + j*(217)
+188 + j*(355)
+37 + j*(-31)
+176 + j*(-282)
+190 + j*(28)
+81 + j*(-1)
+-202 + j*(311)
+-52 + j*(120)
+-18 + j*(17)
+-330 + j*(-110)
+-84 + j*(472)
+51 + j*(234)
+-144 + j*(366)
+-25 + j*(12)
+-69 + j*(-14)
+540 + j*(-155)
+52 + j*(81)
+174 + j*(-171)
+117 + j*(-86)
+-15 + j*(-315)
+154 + j*(135)
+107 + j*(97)
+-119 + j*(-209)
+67 + j*(-233)
+14 + j*(58)
+-94 + j*(159)
+-81 + j*(1)
+107 + j*(-90)
+-29 + j*(38)
+-565 + j*(-190)
+-35 + j*(36)
+255 + j*(220)
+-25 + j*(18)
+-337 + j*(-27)
+89 + j*(-148)
+-89 + j*(-141)
+-12 + j*(20)
+69 + j*(-27)
+228 + j*(-64)
+112 + j*(-27)
+-181 + j*(81)
+-102 + j*(-2)
+61 + j*(257)
+-170 + j*(8)
+-4 + j*(-171)
+-119 + j*(-27)
+-156 + j*(10)
+315 + j*(-231)
+264 + j*(260)
+-37 + j*(129)
+69 + j*(-72)
+121 + j*(146)
+-37 + j*(221)
+-195 + j*(1)
+301 + j*(107)
+221 + j*(16)
+-313 + j*(-181)
+-51 + j*(-94)
+140 + j*(-295)
+6 + j*(-176)
+-135 + j*(4)
+-49 + j*(355)
+87 + j*(69)
+-40 + j*(-108)
+81 + j*(187)
+51 + j*(-194)
+-98 + j*(175)
+-280 + j*(127)
+194 + j*(-100)
+-287 + j*(185)
+-28 + j*(14)
+57 + j*(55)
+-313 + j*(-42)
+175 + j*(-13)
+-138 + j*(136)
+-7 + j*(27)
+16 + j*(214)
+-4 + j*(70)
+-28 + j*(-166)
+-91 + j*(214)
+-64 + j*(-305)
+293 + j*(-61)
+268 + j*(182)
+153 + j*(23)
+-50 + j*(-63)
+57 + j*(-17)
+-127 + j*(47)
+-107 + j*(-67)
+68 + j*(83)
+38 + j*(-78)
+-169 + j*(-76)
+132 + j*(134)
+202 + j*(197)
+-224 + j*(140)
+-37 + j*(643)
+-233 + j*(16)
+-227 + j*(-88)
+-168 + j*(-213)
+63 + j*(-224)
+88 + j*(28)
+8 + j*(165)
+-273 + j*(-146)
+-140 + j*(-8)
+-100 + j*(13)
+-232 + j*(1)
+-223 + j*(93)
+-132 + j*(-45)
+-20 + j*(248)
+156 + j*(-44)
+74 + j*(-89)
+88 + j*(26)
+161 + j*(-94)
+-11 + j*(-143)
+-145 + j*(124)
+-33 + j*(30)
+485 + j*(173)
+249 + j*(-310)
+-246 + j*(164)
+-104 + j*(134)
+-126 + j*(184)
+-135 + j*(259)
+18 + j*(79)
+-115 + j*(67)
+-190 + j*(-126)
+-159 + j*(183)
+184 + j*(-190)
+390 + j*(-129)
+-35 + j*(-129)
+342 + j*(363)
+110 + j*(-233)
+158 + j*(-269)
+15 + j*(-55)
+-204 + j*(-508)
+11 + j*(165)
+-346 + j*(-145)
+-168 + j*(75)
+-175 + j*(-120)
+-25 + j*(294)
+-119 + j*(337)
+-119 + j*(111)
+11 + j*(-257)
+-141 + j*(-127)
+116 + j*(57)
+-173 + j*(30)
+-138 + j*(68)
+-71 + j*(-35)
+14 + j*(250)
+-11 + j*(-57)
+57 + j*(-279)
+74 + j*(274)
+-81 + j*(64)
+-378 + j*(-80)
+-279 + j*(211)
+-79 + j*(194)
+-6 + j*(261)
+156 + j*(-58)
+-8 + j*(-139)
+239 + j*(-23)
+-117 + j*(-64)
+-107 + j*(41)
+-198 + j*(-283)
+-91 + j*(-135)
+-43 + j*(-13)
+99 + j*(30)
+4 + j*(105)
+-276 + j*(319)
+-298 + j*(-84)
+-7 + j*(-237)
+-286 + j*(9)
+74 + j*(122)
+10 + j*(344)
+-185 + j*(161)
+139 + j*(187)
+-332 + j*(-48)
+-35 + j*(-204)
+-7 + j*(-144)
+-6 + j*(266)
+78 + j*(25)
+37 + j*(78)
+96 + j*(183)
+-107 + j*(-141)
+66 + j*(-433)
+-127 + j*(-27)
+-96 + j*(138)
+-1 + j*(-129)
+-351 + j*(71)
+-324 + j*(202)
+-93 + j*(-97)
+73 + j*(153)
+115 + j*(-252)
+156 + j*(172)
+-312 + j*(-143)
+-336 + j*(-115)
+-119 + j*(-85)
+47 + j*(-141)
+300 + j*(174)
+-219 + j*(57)
+102 + j*(-172)
+45 + j*(390)
+17 + j*(-127)
+31 + j*(135)
+344 + j*(83)
+-76 + j*(140)
+53 + j*(57)
+199 + j*(192)
+-69 + j*(165)
+5 + j*(216)
+525 + j*(152)
+-233 + j*(-83)
+-221 + j*(283)
+50 + j*(12)
+214 + j*(-559)
+-118 + j*(-131)
+-77 + j*(-31)
+-30 + j*(-192)
+130 + j*(-141)
+215 + j*(296)
+-64 + j*(65)
+209 + j*(-41)
+81 + j*(219)
+-110 + j*(-412)
+119 + j*(130)
+199 + j*(-42)
+72 + j*(-13)
+-223 + j*(53)
+45 + j*(28)
+262 + j*(-16)
+11 + j*(78)
+182 + j*(-139)
+73 + j*(211)
+183 + j*(11)
+-7 + j*(171)
+65 + j*(-11)
+-12 + j*(-45)
+10 + j*(251)
+110 + j*(-240)
+187 + j*(-95)
+-42 + j*(-128)
+26 + j*(117)
+-77 + j*(128)
+-45 + j*(70)
+74 + j*(-117)
+-28 + j*(109)
+-175 + j*(-98)
+119 + j*(204)
+8 + j*(298)
+-43 + j*(-71)
+105 + j*(107)
+-46 + j*(31)
+-23 + j*(-230)
+-141 + j*(-225)
+-245 + j*(-98)
+-115 + j*(-24)
+52 + j*(330)
+-5 + j*(218)
+-179 + j*(37)
+50 + j*(52)
+40 + j*(127)
+-165 + j*(-45)
+199 + j*(-132)
+242 + j*(-7)
+-489 + j*(-55)
+-220 + j*(-413)
+80 + j*(-27)
+-104 + j*(103)
+-245 + j*(383)
+-40 + j*(-466)
+197 + j*(144)
+-98 + j*(13)
+-8 + j*(345)
+335 + j*(190)
+42 + j*(35)
+157 + j*(58)
+175 + j*(-229)
+284 + j*(-218)
+421 + j*(283)
+272 + j*(-241)
+-252 + j*(157)
+-209 + j*(22)
+-40 + j*(-61)
+-30 + j*(84)
+293 + j*(-244)
+-286 + j*(241)
+-197 + j*(-78)
+-107 + j*(-2)
+-329 + j*(-105)
+93 + j*(-472)
+187 + j*(-107)
+-279 + j*(150)
+-337 + j*(211)
+117 + j*(-244)
+-221 + j*(267)
+224 + j*(70)
+174 + j*(168)
+-124 + j*(-14)
+16 + j*(-190)
+-207 + j*(305)
+143 + j*(54)
+-124 + j*(30)
+43 + j*(-15)
+-67 + j*(-205)
+21 + j*(-163)
+157 + j*(-183)
+-59 + j*(-42)
+-53 + j*(-147)
+231 + j*(30)
+-61 + j*(-77)
+4 + j*(-422)
+-378 + j*(259)
+74 + j*(-154)
+36 + j*(153)
+-182 + j*(-66)
+189 + j*(-37)
+-129 + j*(-29)
+46 + j*(-117)
+-88 + j*(-76)
+-23 + j*(164)
+-111 + j*(-12)
+-228 + j*(-86)
+134 + j*(-25)
+-142 + j*(93)
+-182 + j*(25)
+215 + j*(-70)
+181 + j*(-52)
+212 + j*(156)
+421 + j*(-248)
+52 + j*(-489)
+36 + j*(86)
+105 + j*(-277)
+283 + j*(-57)
+250 + j*(73)
+86 + j*(-120)
+-230 + j*(-105)
+-86 + j*(-75)
+-118 + j*(88)
+59 + j*(-71)
+-106 + j*(-66)
+-314 + j*(-8)
+-16 + j*(270)
+-138 + j*(189)
+-151 + j*(-110)
+365 + j*(-158)
+-216 + j*(-23)
+4 + j*(181)
+-245 + j*(88)
+-132 + j*(202)
+-115 + j*(-160)
+69 + j*(310)
+47 + j*(45)
+104 + j*(72)
+260 + j*(204)
+-190 + j*(46)
+-192 + j*(312)
+8 + j*(-155)
+-162 + j*(90)
+-115 + j*(44)
+-37 + j*(-298)
+-72 + j*(238)
+170 + j*(310)
+72 + j*(248)
+-28 + j*(151)
+103 + j*(-130)
+78 + j*(-173)
+120 + j*(-121)
+435 + j*(-305)
+-20 + j*(45)
+-93 + j*(235)
+66 + j*(-35)
+204 + j*(4)
+-134 + j*(50)
+-397 + j*(-16)
+91 + j*(166)
+112 + j*(-139)
+-42 + j*(-366)
+25 + j*(223)
+79 + j*(-212)
+-67 + j*(-242)
+-235 + j*(-83)
+-160 + j*(62)
+124 + j*(347)
+110 + j*(-49)
+127 + j*(49)
+167 + j*(-341)
+-427 + j*(-66)
+-172 + j*(82)
+-130 + j*(-25)
+-9 + j*(-11)
+99 + j*(252)
+-225 + j*(-153)
+-220 + j*(175)
+141 + j*(122)
+110 + j*(288)
+-286 + j*(149)
+-47 + j*(218)
+322 + j*(127)
+159 + j*(101)
+-252 + j*(185)
+-443 + j*(-124)
+10 + j*(165)
+182 + j*(169)
+-32 + j*(-81)
+-44 + j*(-41)
+-229 + j*(50)
+157 + j*(421)
+-155 + j*(-18)
+-85 + j*(-13)
+148 + j*(-432)
+-298 + j*(-108)
+-260 + j*(219)
+272 + j*(-179)
+35 + j*(-123)
+137 + j*(8)
+29 + j*(-116)
+84 + j*(167)
+308 + j*(-47)
+204 + j*(64)
+339 + j*(-60)
+-224 + j*(-70)
+186 + j*(730)
+-59 + j*(86)
+66 + j*(-30)
+-16 + j*(-260)
+-309 + j*(200)
+-143 + j*(-127)
+33 + j*(-50)
+12 + j*(-74)
+-113 + j*(-52)
+-31 + j*(197)
+330 + j*(197)
+264 + j*(-106)
+214 + j*(-164)
+-8 + j*(431)
+-143 + j*(66)
+98 + j*(66)
+-65 + j*(92)
+233 + j*(145)
+-93 + j*(133)
+28 + j*(-104)
+-283 + j*(89)
+91 + j*(-319)
+53 + j*(111)
+57 + j*(139)
+90 + j*(88)
+45 + j*(66)
+-43 + j*(140)
+307 + j*(127)
+173 + j*(-86)
+115 + j*(-327)
+255 + j*(-238)
+212 + j*(-170)
+173 + j*(279)
+49 + j*(142)
+6 + j*(3)
+218 + j*(184)
+-39 + j*(-110)
+-10 + j*(-238)
+30 + j*(303)
+35 + j*(-55)
+6 + j*(-54)
+140 + j*(-167)
+62 + j*(52)
+204 + j*(-169)
+-64 + j*(163)
+-135 + j*(70)
+82 + j*(63)
+21 + j*(80)
+-81 + j*(-139)
+-84 + j*(76)
+-129 + j*(-13)
+-10 + j*(-159)
+27 + j*(192)
+-158 + j*(118)
+81 + j*(-167)
+64 + j*(-67)
+-82 + j*(48)
+-18 + j*(102)
+-343 + j*(83)
+161 + j*(-159)
+-10 + j*(460)
+-13 + j*(-252)
+148 + j*(-252)
+-69 + j*(61)
+-152 + j*(48)
+38 + j*(137)
+90 + j*(40)
+39 + j*(-65)
+85 + j*(244)
+-76 + j*(-138)
+-209 + j*(59)
+-16 + j*(-194)
+424 + j*(175)
+-57 + j*(-143)
+21 + j*(239)
+93 + j*(93)
+75 + j*(151)
+-66 + j*(-127)
+124 + j*(57)
+78 + j*(142)
+-124 + j*(107)
+-184 + j*(-105)
+-43 + j*(83)
+86 + j*(50)
+-46 + j*(1)
+108 + j*(-211)
+47 + j*(-100)
+-136 + j*(-327)
+45 + j*(124)
+471 + j*(-310)
+-72 + j*(52)
+-329 + j*(-104)
+34 + j*(260)
+433 + j*(-45)
+-202 + j*(-414)
+-115 + j*(-4)
+-67 + j*(143)
+-21 + j*(462)
+74 + j*(-28)
+-301 + j*(-155)
+107 + j*(-202)
+-85 + j*(26)
+-31 + j*(322)
+416 + j*(352)
+-236 + j*(-16)
+15 + j*(235)
+-250 + j*(120)
+-171 + j*(-234)
+380 + j*(-51)
+301 + j*(91)
+118 + j*(79)
+20 + j*(-35)
+106 + j*(175)
+-217 + j*(-156)
+146 + j*(156)
+-88 + j*(237)
+573 + j*(-96)
+68 + j*(90)
+31 + j*(-156)
+-256 + j*(41)
+119 + j*(249)
+40 + j*(115)
+82 + j*(131)
+71 + j*(67)
+-373 + j*(37)
+78 + j*(-76)
+-20 + j*(71)
+-38 + j*(-23)
+117 + j*(-29)
+-78 + j*(-358)
+-199 + j*(-98)
+228 + j*(165)
+51 + j*(-88)
+-136 + j*(300)
+76 + j*(46)
+-58 + j*(-200)
+82 + j*(-96)
+-204 + j*(-250)
+209 + j*(462)
+-178 + j*(20)
+-187 + j*(236)
+296 + j*(-223)
+-211 + j*(-119)
+-232 + j*(199)
+-223 + j*(-18)
+101 + j*(165)
+-349 + j*(-64)
+-121 + j*(-27)
+-192 + j*(513)
+35 + j*(-97)
+139 + j*(103)
+209 + j*(-49)
+97 + j*(73)
+105 + j*(3)
+54 + j*(-61)
+-60 + j*(257)
+112 + j*(57)
+193 + j*(-144)
+88 + j*(24)
+150 + j*(-133)
+42 + j*(90)
+409 + j*(-157)
+-37 + j*(-123)
+156 + j*(136)
+-146 + j*(61)
+153 + j*(-356)
+-45 + j*(-37)
+-69 + j*(198)
+-408 + j*(202)
+-18 + j*(102)
+259 + j*(-2)
+220 + j*(-238)
+-82 + j*(-42)
+68 + j*(65)
+-25 + j*(144)
+303 + j*(-100)
+6 + j*(81)
+-25 + j*(47)
+106 + j*(245)
+-204 + j*(-276)
+59 + j*(23)
+-472 + j*(161)
+-196 + j*(-26)
+266 + j*(-304)
+132 + j*(-221)
+-108 + j*(28)
+-82 + j*(-34)
+-107 + j*(-3)
+-110 + j*(91)
+-11 + j*(-317)
+106 + j*(76)
+28 + j*(-119)
+32 + j*(-52)
+-256 + j*(33)
+-46 + j*(-450)
+-10 + j*(-294)
+454 + j*(-266)
+89 + j*(-168)
+100 + j*(-173)
+240 + j*(71)
+69 + j*(-199)
+-110 + j*(71)
+-36 + j*(18)
+-145 + j*(103)
+-317 + j*(-51)
+11 + j*(62)
+184 + j*(78)
+182 + j*(-217)
+-168 + j*(-93)
+-58 + j*(75)
+-173 + j*(-167)
+-139 + j*(153)
+47 + j*(-235)
+128 + j*(-67)
+-226 + j*(143)
+-220 + j*(-101)
+240 + j*(-123)
+-86 + j*(-377)
+52 + j*(30)
+-39 + j*(-147)
+236 + j*(-35)
+150 + j*(-226)
+-52 + j*(-192)
+-37 + j*(187)
+-201 + j*(52)
+-146 + j*(116)
+-168 + j*(123)
+54 + j*(-331)
+-33 + j*(-58)
+-139 + j*(-2)
+23 + j*(-123)
+94 + j*(-83)
+127 + j*(158)
+-29 + j*(-93)
+148 + j*(269)
+-21 + j*(227)
+-178 + j*(-3)
+-72 + j*(-140)
+35 + j*(13)
+-14 + j*(122)
+-113 + j*(63)
+-177 + j*(6)
+-291 + j*(250)
+-184 + j*(260)
+-119 + j*(-229)
+-255 + j*(-19)
+-83 + j*(-202)
+14 + j*(-102)
+-83 + j*(91)
+100 + j*(-115)
+-289 + j*(83)
+-209 + j*(-58)
+-3 + j*(-247)
+164 + j*(-134)
+380 + j*(18)
+40 + j*(-62)
+-132 + j*(-80)
+-1 + j*(-203)
+-175 + j*(-139)
+50 + j*(92)
+-28 + j*(-29)
+181 + j*(40)
+-241 + j*(40)
+221 + j*(166)
+81 + j*(-112)
+4 + j*(-86)
+-7 + j*(-132)
+-78 + j*(-117)
+-152 + j*(92)
+-62 + j*(-200)
+-28 + j*(72)
+186 + j*(-240)
+-9 + j*(148)
+81 + j*(-139)
+-62 + j*(-86)
+-14 + j*(-98)
+125 + j*(-161)
+-198 + j*(306)
+-57 + j*(33)
+122 + j*(-140)
+-69 + j*(-103)
+-66 + j*(308)
+-9 + j*(206)
+-63 + j*(33)
+175 + j*(15)
+-42 + j*(-182)
+6 + j*(45)
+-218 + j*(15)
+-93 + j*(-39)
+30 + j*(81)
+66 + j*(405)
+-52 + j*(373)
+467 + j*(55)
+17 + j*(81)
+145 + j*(226)
+-86 + j*(-193)
+-112 + j*(-109)
+203 + j*(-74)
+-12 + j*(-225)
+52 + j*(-145)
+-61 + j*(330)
+98 + j*(-218)
+114 + j*(-56)
+31 + j*(-127)
+-337 + j*(-109)
+212 + j*(-71)
+-111 + j*(-33)
+113 + j*(250)
+195 + j*(-205)
+-23 + j*(88)
+151 + j*(-217)
+105 + j*(-339)
+139 + j*(275)
+-42 + j*(407)
+215 + j*(-210)
+-390 + j*(-214)
+-330 + j*(-141)
+-125 + j*(-173)
+164 + j*(-199)
+262 + j*(43)
+172 + j*(355)
+69 + j*(151)
+-35 + j*(-54)
+-218 + j*(-117)
+13 + j*(276)
+-42 + j*(-181)
+176 + j*(-191)
+-174 + j*(-44)
+-300 + j*(-130)
+29 + j*(-37)
+-274 + j*(-3)
+-23 + j*(57)
+122 + j*(-143)
+215 + j*(17)
+78 + j*(110)
+-305 + j*(83)
+-4 + j*(43)
+92 + j*(-425)
+-323 + j*(-36)
+-18 + j*(-63)
+63 + j*(8)
+50 + j*(170)
+105 + j*(79)
+-18 + j*(-273)
+-66 + j*(-273)
+86 + j*(-55)
+173 + j*(-37)
+-87 + j*(30)
+107 + j*(-247)
+57 + j*(134)
+-118 + j*(518)
+164 + j*(-260)
+155 + j*(-93)
+95 + j*(42)
+293 + j*(-62)
+-26 + j*(250)
+129 + j*(216)
+86 + j*(69)
+191 + j*(1)
+214 + j*(-134)
+-308 + j*(-433)
+-33 + j*(-70)
+-98 + j*(57)
+116 + j*(19)
+-248 + j*(185)
+74 + j*(-148)
+-2 + j*(-165)
+32 + j*(238)
+-4 + j*(170)
+-112 + j*(-122)
+343 + j*(62)
+145 + j*(72)
+-62 + j*(383)
+-105 + j*(-106)
+-480 + j*(200)
+184 + j*(346)
+83 + j*(-158)
+187 + j*(170)
+-105 + j*(-212)
+-326 + j*(140)
+240 + j*(-288)
+107 + j*(-84)
+-231 + j*(-215)
+-162 + j*(99)
+-205 + j*(202)
+-89 + j*(170)
+128 + j*(-134)
+31 + j*(-245)
+-21 + j*(45)
+-5 + j*(32)
+-71 + j*(138)
+-300 + j*(55)
+31 + j*(-25)
+-2 + j*(153)
+163 + j*(-122)
+-132 + j*(-221)
+192 + j*(62)
+-168 + j*(4)
+-10 + j*(-241)
+193 + j*(-8)
+31 + j*(-57)
+-58 + j*(-64)
+-134 + j*(-218)
+78 + j*(-81)
+-13 + j*(107)
+-163 + j*(-23)
+-287 + j*(189)
+-226 + j*(-65)
+54 + j*(-36)
+25 + j*(260)
+177 + j*(167)
+-83 + j*(245)
+-95 + j*(-302)
+97 + j*(-70)
+135 + j*(-128)
+15 + j*(-54)
+57 + j*(-5)
+33 + j*(9)
+196 + j*(297)
+-26 + j*(-111)
+-112 + j*(211)
+-215 + j*(54)
+-286 + j*(-7)
+157 + j*(81)
+626 + j*(96)
+157 + j*(170)
+-2 + j*(116)
+-131 + j*(10)
+443 + j*(48)
+-343 + j*(-14)
+-46 + j*(136)
+235 + j*(98)
+298 + j*(-99)
+27 + j*(-122)
+-303 + j*(269)
+-65 + j*(-224)
+86 + j*(119)
+363 + j*(-146)
+289 + j*(112)
+416 + j*(-343)
+23 + j*(62)
+359 + j*(-118)
+43 + j*(-156)
+3 + j*(-25)
+-28 + j*(112)
+100 + j*(211)
+-28 + j*(47)
+-169 + j*(18)
+107 + j*(-104)
+-50 + j*(-117)
+269 + j*(-52)
+13 + j*(-81)
+-108 + j*(12)
+-103 + j*(-257)
+-258 + j*(93)
+-202 + j*(211)
+-117 + j*(-83)
+5 + j*(-173)
+-289 + j*(281)
+-30 + j*(175)
+-20 + j*(-96)
+177 + j*(40)
+-42 + j*(-80)
+-156 + j*(-88)
+-87 + j*(56)
+112 + j*(42)
+-115 + j*(-334)
+121 + j*(123)
+-197 + j*(308)
+43 + j*(-219)
+-191 + j*(-131)
+19 + j*(-239)
+-103 + j*(-7)
+-67 + j*(-83)
+-372 + j*(-101)
+211 + j*(-40)
+-242 + j*(-88)
+-66 + j*(-199)
+-8 + j*(30)
+183 + j*(-58)
+59 + j*(220)
+288 + j*(62)
+233 + j*(109)
+23 + j*(127)
+-99 + j*(-173)
+-48 + j*(-95)
+182 + j*(167)
+146 + j*(-223)
+209 + j*(-64)
+23 + j*(243)
+65 + j*(78)
+-36 + j*(30)
+-384 + j*(-61)
+187 + j*(9)
+-46 + j*(-52)
+187 + j*(-119)
+26 + j*(199)
+-296 + j*(-226)
+224 + j*(-408)
+-184 + j*(221)
+-184 + j*(174)
+83 + j*(107)
+-125 + j*(-95)
+417 + j*(197)
+10 + j*(-238)
+32 + j*(-39)
+-59 + j*(161)
+74 + j*(272)
+291 + j*(139)
+-144 + j*(81)
+-321 + j*(0)
+125 + j*(-56)
+-44 + j*(32)
+57 + j*(-141)
+-115 + j*(32)
+91 + j*(103)
+-204 + j*(-151)
+-112 + j*(-84)
+-49 + j*(42)
+67 + j*(-351)
+-51 + j*(61)
+-269 + j*(54)
+-247 + j*(-315)
+38 + j*(-28)
+17 + j*(-354)
+157 + j*(-127)
+267 + j*(85)
+137 + j*(-86)
+-77 + j*(-158)
+344 + j*(-275)
+-101 + j*(136)
+-156 + j*(-459)
+-9 + j*(-119)
+344 + j*(33)
+16 + j*(-237)
+74 + j*(-71)
+-19 + j*(321)
+228 + j*(-115)
+-228 + j*(82)
+-291 + j*(49)
+-216 + j*(-457)
+-161 + j*(-90)
+-145 + j*(85)
+-417 + j*(130)
+-32 + j*(51)
+-341 + j*(-24)
+60 + j*(174)
+-70 + j*(220)
+-177 + j*(-25)
+-42 + j*(-177)
+141 + j*(-44)
+126 + j*(-156)
+180 + j*(-93)
+239 + j*(-163)
+-242 + j*(-108)
+74 + j*(133)
+24 + j*(-28)
+-310 + j*(242)
+134 + j*(201)
+-296 + j*(119)
+-98 + j*(-12)
+69 + j*(71)
+-313 + j*(-73)
+28 + j*(-25)
+62 + j*(-102)
+-325 + j*(136)
+322 + j*(-87)
+64 + j*(247)
+-152 + j*(86)
+95 + j*(-110)
+145 + j*(344)
+95 + j*(-163)
+-30 + j*(-364)
+276 + j*(-101)
+104 + j*(-206)
+119 + j*(-93)
+-153 + j*(324)
+-3 + j*(-38)
+70 + j*(83)
+-1 + j*(-329)
+-12 + j*(122)
+41 + j*(104)
+-51 + j*(-198)
+129 + j*(61)
+4 + j*(23)
+214 + j*(-16)
+-95 + j*(90)
+-84 + j*(-9)
+-159 + j*(78)
+-108 + j*(278)
+156 + j*(-250)
+106 + j*(172)
+184 + j*(155)
+159 + j*(47)
+-63 + j*(87)
+-8 + j*(115)
+-214 + j*(-180)
+-78 + j*(-164)
+63 + j*(-165)
+-56 + j*(290)
+-69 + j*(-195)
+-155 + j*(53)
+139 + j*(180)
+205 + j*(-108)
+30 + j*(342)
+-103 + j*(37)
+-204 + j*(-105)
+-125 + j*(-243)
+211 + j*(306)
+-264 + j*(-107)
+-119 + j*(-308)
+34 + j*(163)
+5 + j*(112)
+279 + j*(43)
+209 + j*(-43)
+15 + j*(157)
+262 + j*(-8)
+26 + j*(194)
+170 + j*(-77)
+-65 + j*(-503)
+18 + j*(-21)
+228 + j*(-116)
+-71 + j*(54)
+98 + j*(-200)
+273 + j*(0)
+-126 + j*(-49)
+118 + j*(-24)
+-1 + j*(21)
+-122 + j*(74)
+247 + j*(-27)
+-94 + j*(252)
+31 + j*(-20)
+153 + j*(44)
+38 + j*(-140)
+62 + j*(200)
+-21 + j*(-37)
+126 + j*(191)
+-3 + j*(-28)
+261 + j*(284)
+-329 + j*(-189)
+23 + j*(-105)
+200 + j*(-269)
+113 + j*(36)
+61 + j*(151)
+-50 + j*(49)
+-150 + j*(-70)
+-115 + j*(-88)
+-46 + j*(-153)
+100 + j*(92)
+-61 + j*(138)
+-35 + j*(-166)
+-185 + j*(189)
+254 + j*(-180)
+47 + j*(464)
+24 + j*(273)
+-240 + j*(-223)
+-3 + j*(-196)
+-204 + j*(189)
+-33 + j*(-244)
+-112 + j*(-252)
+-103 + j*(-173)
+-12 + j*(-321)
+-150 + j*(-90)
+-26 + j*(238)
+209 + j*(-52)
+217 + j*(262)
+-211 + j*(69)
+165 + j*(177)
+13 + j*(-94)
+-110 + j*(-168)
+167 + j*(-127)
+-100 + j*(64)
+98 + j*(164)
+138 + j*(-101)
+97 + j*(-344)
+-255 + j*(33)
+-40 + j*(-127)
+99 + j*(-166)
+-106 + j*(-271)
+240 + j*(18)
+-58 + j*(-147)
+-145 + j*(50)
+-203 + j*(-132)
+12 + j*(-170)
+-270 + j*(175)
+-47 + j*(-71)
+279 + j*(-226)
+181 + j*(202)
+24 + j*(13)
+65 + j*(148)
+-98 + j*(240)
+36 + j*(206)
+134 + j*(12)
+-144 + j*(-184)
+-402 + j*(83)
+-103 + j*(119)
+-62 + j*(-148)
+-113 + j*(202)
+-266 + j*(41)
+185 + j*(-2)
+-196 + j*(-76)
+-123 + j*(-203)
+-195 + j*(-21)
+-23 + j*(232)
+-156 + j*(225)
+219 + j*(152)
+155 + j*(-184)
+-100 + j*(-13)
+-29 + j*(-129)
+357 + j*(-53)
+192 + j*(-126)
+-6 + j*(-172)
+57 + j*(114)
+183 + j*(-358)
+47 + j*(-211)
+-42 + j*(131)
+-194 + j*(-122)
+-171 + j*(304)
+31 + j*(95)
+-160 + j*(281)
+37 + j*(-166)
+-142 + j*(37)
+6 + j*(342)
+-55 + j*(-177)
+-20 + j*(-42)
+-351 + j*(87)
+225 + j*(-8)
+92 + j*(258)
+71 + j*(83)
+103 + j*(-59)
+182 + j*(42)
+78 + j*(-264)
+-153 + j*(-325)
+-160 + j*(25)
+21 + j*(91)
+-123 + j*(-245)
+81 + j*(-151)
+277 + j*(63)
+-86 + j*(-250)
+-173 + j*(30)
+86 + j*(-86)
+11 + j*(95)
+61 + j*(-32)
+-122 + j*(25)
+-52 + j*(-103)
+-93 + j*(445)
+105 + j*(16)
+-68 + j*(-42)
+129 + j*(-107)
+-199 + j*(-258)
+-273 + j*(108)
+93 + j*(4)
+176 + j*(-44)
+98 + j*(-21)
+-145 + j*(-4)
+-192 + j*(22)
+-33 + j*(96)
+-176 + j*(-115)
+-29 + j*(47)
+-221 + j*(98)
+139 + j*(249)
+260 + j*(-54)
+-64 + j*(-2)
+252 + j*(-52)
+150 + j*(-151)
+6 + j*(145)
+-78 + j*(136)
+315 + j*(91)
+30 + j*(91)
+-70 + j*(2)
+105 + j*(-147)
+-159 + j*(380)
+475 + j*(-3)
+221 + j*(130)
+224 + j*(-352)
+23 + j*(180)
+57 + j*(19)
+-322 + j*(94)
+-28 + j*(-117)
+156 + j*(-285)
+68 + j*(109)
+-77 + j*(-47)
+87 + j*(-23)
+392 + j*(44)
+-187 + j*(-203)
+-108 + j*(-540)
+-227 + j*(45)
+2 + j*(-269)
+-64 + j*(204)
+-185 + j*(-205)
+-119 + j*(2)
+404 + j*(-132)
+-144 + j*(20)
+160 + j*(181)
+-283 + j*(86)
+33 + j*(-139)
+-195 + j*(69)
+117 + j*(-152)
+-308 + j*(-221)
+337 + j*(127)
+-18 + j*(-202)
+118 + j*(-132)
+13 + j*(-235)
+-29 + j*(-47)
+206 + j*(41)
+-243 + j*(306)
+5 + j*(137)
+-48 + j*(42)
+-547 + j*(-230)
+-20 + j*(53)
+-49 + j*(0)
+20 + j*(211)
+-115 + j*(359)
+22 + j*(158)
+-108 + j*(-13)
+169 + j*(-289)
+92 + j*(69)
+-124 + j*(95)
+113 + j*(-54)
+-382 + j*(-159)
+274 + j*(214)
+-21 + j*(224)
+29 + j*(59)
+496 + j*(233)
+-115 + j*(-141)
+246 + j*(-170)
+-75 + j*(-33)
+251 + j*(-71)
+7 + j*(144)
+119 + j*(-99)
+197 + j*(16)
+52 + j*(-139)
+17 + j*(-294)
+-66 + j*(177)
+-299 + j*(-142)
+139 + j*(142)
+34 + j*(126)
+16 + j*(260)
+90 + j*(44)
+-303 + j*(196)
+67 + j*(-71)
+74 + j*(179)
+211 + j*(-202)
+349 + j*(378)
+444 + j*(3)
+31 + j*(98)
+-217 + j*(-99)
+35 + j*(98)
+-111 + j*(211)
+253 + j*(69)
+312 + j*(-1)
+139 + j*(163)
+-30 + j*(5)
+-177 + j*(112)
+-195 + j*(211)
+-254 + j*(-32)
+-90 + j*(8)
+170 + j*(-214)
+254 + j*(257)
+-179 + j*(6)
+-69 + j*(202)
+98 + j*(128)
+-197 + j*(-299)
+-250 + j*(-177)
+156 + j*(-23)
+-64 + j*(-156)
+-35 + j*(-64)
+32 + j*(101)
+-92 + j*(-60)
+180 + j*(22)
+21 + j*(134)
+166 + j*(-83)
+423 + j*(7)
+12 + j*(219)
+37 + j*(168)
+1 + j*(118)
+42 + j*(-40)
+-148 + j*(-71)
+-93 + j*(-12)
+-103 + j*(-221)
+298 + j*(49)
+56 + j*(91)
+340 + j*(52)
+-117 + j*(132)
+10 + j*(24)
+-24 + j*(151)
+-82 + j*(-61)
+126 + j*(-199)
+-42 + j*(249)
+102 + j*(74)
+53 + j*(126)
+245 + j*(161)
+-50 + j*(285)
+106 + j*(136)
+235 + j*(-6)
+120 + j*(-202)
+165 + j*(-13)
+-181 + j*(81)
+318 + j*(-256)
+-25 + j*(137)
+153 + j*(128)
+123 + j*(-73)
+61 + j*(51)
+-190 + j*(268)
+-363 + j*(214)
+11 + j*(42)
+75 + j*(-95)
+-62 + j*(-16)
+-15 + j*(-403)
+-33 + j*(-66)
+95 + j*(64)
+-129 + j*(-220)
+-33 + j*(33)
+-38 + j*(-90)
+103 + j*(-49)
+252 + j*(227)
+25 + j*(-282)
+98 + j*(64)
+151 + j*(-88)
+-182 + j*(117)
+-89 + j*(-91)
+-313 + j*(-100)
+-117 + j*(-107)
+8 + j*(-174)
+-83 + j*(-45)
+-324 + j*(83)
+47 + j*(70)
+97 + j*(81)
+223 + j*(375)
+43 + j*(13)
+-156 + j*(103)
+-112 + j*(117)
+-36 + j*(65)
+-18 + j*(174)
+-209 + j*(-86)
+173 + j*(-186)
+130 + j*(-262)
+1 + j*(74)
+-180 + j*(31)
+-285 + j*(295)
+-158 + j*(-69)
+-165 + j*(86)
+-221 + j*(-175)
+-166 + j*(47)
+-202 + j*(162)
+263 + j*(47)
+187 + j*(-681)
+63 + j*(-173)
+74 + j*(119)
+23 + j*(-364)
+-226 + j*(-106)
+-11 + j*(293)
+32 + j*(243)
+63 + j*(-235)
+-28 + j*(42)
+-165 + j*(228)
+375 + j*(98)
+-142 + j*(115)
+131 + j*(85)
+41 + j*(-390)
+202 + j*(339)
+-311 + j*(91)
+194 + j*(-33)
+49 + j*(479)
+59 + j*(-524)
+310 + j*(266)
+131 + j*(-93)
+77 + j*(6)
+-170 + j*(180)
+45 + j*(165)
+-6 + j*(151)
+291 + j*(-45)
+-74 + j*(163)
+70 + j*(148)
+209 + j*(-54)
+-52 + j*(296)
+426 + j*(-81)
+6 + j*(100)
+305 + j*(14)
+37 + j*(95)
+11 + j*(294)
+-152 + j*(-21)
+-30 + j*(-151)
+47 + j*(-141)
+391 + j*(12)
+-60 + j*(-167)
+16 + j*(110)
+161 + j*(6)
+213 + j*(158)
+35 + j*(-8)
+231 + j*(-83)
+119 + j*(190)
+-35 + j*(191)
+35 + j*(339)
+-9 + j*(35)
+249 + j*(-193)
+-153 + j*(162)
+175 + j*(-298)
+-35 + j*(150)
+-11 + j*(-353)
+231 + j*(-64)
+-139 + j*(-264)
+-25 + j*(203)
+105 + j*(-223)
+94 + j*(125)
+150 + j*(-11)
+170 + j*(71)
+69 + j*(13)
+128 + j*(126)
+-145 + j*(44)
+-33 + j*(166)
+-4 + j*(153)
+-42 + j*(0)
+-281 + j*(40)
+-43 + j*(230)
+-202 + j*(-315)
+210 + j*(-83)
+193 + j*(-252)
+221 + j*(-6)
+-262 + j*(81)
+-247 + j*(58)
+66 + j*(122)
+73 + j*(-110)
+-47 + j*(-16)
+-62 + j*(54)
+153 + j*(-28)
+-28 + j*(-310)
+55 + j*(-151)
+92 + j*(27)
+-258 + j*(-75)
+206 + j*(-6)
+66 + j*(60)
+-139 + j*(-156)
+50 + j*(134)
+-24 + j*(103)
+165 + j*(155)
+30 + j*(206)
+67 + j*(74)
+5 + j*(-52)
+-168 + j*(-119)
+69 + j*(59)
+54 + j*(-223)
+-196 + j*(1)
+217 + j*(-269)
+88 + j*(282)
+-47 + j*(33)
+-124 + j*(-10)
+-184 + j*(-282)
+-325 + j*(94)
+40 + j*(331)
+-44 + j*(-128)
+56 + j*(163)
+-107 + j*(-361)
+278 + j*(120)
+62 + j*(84)
+206 + j*(219)
+-192 + j*(-233)
+170 + j*(-263)
+71 + j*(-114)
+260 + j*(293)
+-4 + j*(91)
+-110 + j*(-105)
+-269 + j*(-175)
+-282 + j*(210)
+213 + j*(-96)
+312 + j*(33)
+-138 + j*(-117)
+18 + j*(-124)
+75 + j*(-114)
+-409 + j*(21)
+-54 + j*(98)
+78 + j*(-160)
+42 + j*(-13)
+-27 + j*(-368)
+-54 + j*(191)
+87 + j*(95)
+-26 + j*(110)
+15 + j*(-362)
+325 + j*(-46)
+-42 + j*(-44)
+108 + j*(-125)
+-49 + j*(117)
+-66 + j*(71)
+-21 + j*(-75)
+-243 + j*(-115)
+-77 + j*(46)
+162 + j*(222)
+165 + j*(131)
+72 + j*(-66)
+-47 + j*(21)
+112 + j*(-103)
+130 + j*(-159)
+64 + j*(-24)
+124 + j*(-74)
+-255 + j*(204)
+144 + j*(221)
+28 + j*(-227)
+-13 + j*(278)
+328 + j*(190)
+253 + j*(482)
+187 + j*(-18)
+-191 + j*(-597)
+204 + j*(-31)
+-57 + j*(144)
+-252 + j*(-190)
+221 + j*(-197)
+35 + j*(139)
+43 + j*(-66)
+-35 + j*(-119)
+288 + j*(-279)
+195 + j*(100)
+215 + j*(312)
+-47 + j*(-114)
+-228 + j*(-92)
+49 + j*(216)
+-376 + j*(82)
+-26 + j*(-35)
+280 + j*(58)
+-412 + j*(-246)
+-158 + j*(-41)
+-95 + j*(316)
+124 + j*(-209)
+-127 + j*(105)
+69 + j*(89)
+-215 + j*(272)
+88 + j*(-143)
+112 + j*(-29)
+69 + j*(40)
+-50 + j*(-23)
+163 + j*(7)
+69 + j*(-132)
+60 + j*(115)
+25 + j*(-206)
+-172 + j*(176)
+-535 + j*(-53)
+141 + j*(52)
+179 + j*(69)
+65 + j*(29)
+12 + j*(-180)
+-205 + j*(64)
+82 + j*(136)
+62 + j*(-64)
+194 + j*(264)
+-332 + j*(177)
+-65 + j*(373)
+34 + j*(107)
+-112 + j*(208)
+140 + j*(-209)
+269 + j*(4)
+-247 + j*(-40)
+-70 + j*(68)
+-179 + j*(-117)
+102 + j*(-54)
+148 + j*(-216)
+446 + j*(35)
+281 + j*(-202)
+-71 + j*(-89)
+180 + j*(161)
+-77 + j*(-236)
+-33 + j*(-301)
+-11 + j*(-132)
+71 + j*(-301)
+-94 + j*(43)
+-209 + j*(-148)
+204 + j*(-35)
+137 + j*(-66)
+8 + j*(54)
+-186 + j*(-173)
+-82 + j*(-146)
+-218 + j*(-95)
+202 + j*(-250)
+212 + j*(-194)
+-2 + j*(-124)
+-425 + j*(190)
+-10 + j*(-141)
+-445 + j*(27)
+-66 + j*(-164)
+13 + j*(-260)
+-109 + j*(132)
+79 + j*(165)
+39 + j*(259)
+173 + j*(110)
+35 + j*(264)
+-13 + j*(197)
+-47 + j*(-209)
+-219 + j*(-66)
+93 + j*(142)
+-129 + j*(-158)
+49 + j*(213)
+270 + j*(57)
+-144 + j*(-371)
+-7 + j*(40)
+276 + j*(-67)
+-144 + j*(94)
+-177 + j*(-30)
+-61 + j*(-129)
+-596 + j*(331)
+-67 + j*(214)
+-144 + j*(59)
+-301 + j*(-268)
+-146 + j*(-204)
+-117 + j*(-105)
+90 + j*(24)
+-30 + j*(35)
+-166 + j*(-23)
+92 + j*(-79)
+106 + j*(-62)
+127 + j*(400)
+-154 + j*(68)
+31 + j*(354)
+144 + j*(-104)
+56 + j*(170)
+-74 + j*(25)
+-240 + j*(204)
+-111 + j*(-112)
+-57 + j*(69)
+17 + j*(-59)
+-76 + j*(86)
+-168 + j*(262)
+-66 + j*(97)
+-360 + j*(224)
+-159 + j*(42)
+-131 + j*(-4)
+-68 + j*(-267)
+110 + j*(151)
+-110 + j*(-136)
+-171 + j*(-18)
+-81 + j*(-235)
+-236 + j*(173)
+378 + j*(-101)
+-203 + j*(47)
+61 + j*(47)
+12 + j*(349)
+291 + j*(73)
+-470 + j*(73)
+339 + j*(48)
+-1 + j*(-18)
+-132 + j*(-96)
+86 + j*(63)
+-191 + j*(-190)
+-142 + j*(-22)
+-134 + j*(-180)
+-326 + j*(52)
+-198 + j*(-278)
+-88 + j*(146)
+-207 + j*(33)
+-192 + j*(-90)
+-55 + j*(-57)
+-156 + j*(64)
+-332 + j*(327)
+235 + j*(-50)
+65 + j*(373)
+107 + j*(-127)
+122 + j*(98)
+123 + j*(-29)
+-61 + j*(-6)
+-35 + j*(58)
+96 + j*(-22)
+35 + j*(63)
+123 + j*(-92)
+172 + j*(-159)
+240 + j*(57)
+-175 + j*(92)
+-87 + j*(-8)
+122 + j*(-253)
+-236 + j*(-38)
+-163 + j*(300)
+-310 + j*(40)
+87 + j*(-207)
+454 + j*(68)
+-103 + j*(-186)
+250 + j*(115)
+474 + j*(156)
+51 + j*(22)
+31 + j*(2)
+75 + j*(-193)
+-36 + j*(168)
+162 + j*(-11)
+86 + j*(187)
+-86 + j*(-121)
+77 + j*(-82)
+222 + j*(-158)
+-19 + j*(-135)
+188 + j*(279)
+-4 + j*(198)
+54 + j*(30)
+-199 + j*(173)
+37 + j*(206)
+-16 + j*(359)
+24 + j*(-164)
+211 + j*(-117)
+56 + j*(99)
+-17 + j*(32)
+100 + j*(-287)
+-289 + j*(9)
+122 + j*(158)
+318 + j*(13)
+59 + j*(-168)
+78 + j*(218)
+-42 + j*(191)
+-202 + j*(-32)
+74 + j*(99)
+-167 + j*(98)
+64 + j*(343)
+119 + j*(-105)
+-218 + j*(131)
+-116 + j*(-496)
+44 + j*(267)
+-109 + j*(222)
+42 + j*(40)
+-15 + j*(164)
+-74 + j*(308)
+-1 + j*(-144)
+-284 + j*(186)
+146 + j*(-49)
+-244 + j*(240)
+-19 + j*(-161)
+43 + j*(320)
+-136 + j*(20)
+247 + j*(0)
+69 + j*(-146)
+-141 + j*(400)
+-21 + j*(-227)
+139 + j*(-40)
+275 + j*(-26)
+-157 + j*(34)
+28 + j*(83)
+-578 + j*(-7)
+-135 + j*(73)
+76 + j*(148)
+-310 + j*(-154)
+210 + j*(123)
+52 + j*(-453)
+-257 + j*(14)
+23 + j*(20)
+130 + j*(202)
+45 + j*(223)
+299 + j*(-381)
+-103 + j*(-58)
+39 + j*(40)
+-42 + j*(86)
+161 + j*(-38)
+129 + j*(-187)
+-84 + j*(-164)
+8 + j*(-97)
+110 + j*(172)
+247 + j*(356)
+-310 + j*(-209)
+46 + j*(13)
+291 + j*(-132)
+44 + j*(228)
+-43 + j*(166)
+-258 + j*(121)
+-17 + j*(-28)
+327 + j*(-172)
+336 + j*(153)
+321 + j*(-74)
+83 + j*(-168)
+3 + j*(-115)
+28 + j*(276)
+124 + j*(-30)
+88 + j*(-173)
+341 + j*(-122)
+-32 + j*(288)
+143 + j*(150)
+-389 + j*(-63)
+-136 + j*(4)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+];
diff --git a/targets/ARCH/COMMON/common_lib.h b/targets/ARCH/COMMON/common_lib.h
index fecc4abb63f..e094c9eb007 100644
--- a/targets/ARCH/COMMON/common_lib.h
+++ b/targets/ARCH/COMMON/common_lib.h
@@ -192,6 +192,7 @@ typedef struct {
   //! \brief Center frequency in Hz for TX.
   //! index: [0..rx_num_channels[ !!! see lte-ue.c:427 FIXME iterates over rx_num_channels
   double tx_freq[4];
+  double tune_offset;
   //! \brief memory
   //! \brief Pointer to Calibration table for RX gains
   rx_gain_calib_table_t *rx_gain_calib_table;
@@ -383,7 +384,7 @@ struct openair0_device_t {
       @param buff Buffer which holds the samples (2 dimensional)
       @param nsamps number of samples to be sent
       @param number of antennas 
-      @param flags flags must be set to TRUE if timestamp parameter needs to be applied
+      @param flags flags must be set to true if timestamp parameter needs to be applied
   */
   int (*trx_write_func)(openair0_device *device, openair0_timestamp timestamp, void **buff, int nsamps,int antenna_id, int flags);
 
@@ -393,7 +394,7 @@ struct openair0_device_t {
       @param buff Buffer which holds the samples (1 dimensional)
       @param nsamps number of samples to be sent
       @param antenna_id index of the antenna if the device has multiple anteannas
-      @param flags flags must be set to TRUE if timestamp parameter needs to be applied
+      @param flags flags must be set to true if timestamp parameter needs to be applied
   */
   int (*trx_write_func2)(openair0_device *device, openair0_timestamp timestamp, void *buff, int nsamps,int antenna_id, int flags);
 
diff --git a/targets/ARCH/IRIS/USERSPACE/LIB/iris_lib.cpp b/targets/ARCH/IRIS/USERSPACE/LIB/iris_lib.cpp
index 1273097f3b9..47bbadfe282 100644
--- a/targets/ARCH/IRIS/USERSPACE/LIB/iris_lib.cpp
+++ b/targets/ARCH/IRIS/USERSPACE/LIB/iris_lib.cpp
@@ -134,7 +134,7 @@ static void trx_iris_end(openair0_device *device) {
       @param buff Buffer which holds the samples
       @param nsamps number of samples to be sent
       @param antenna_id index of the antenna if the device has multiple anteannas
-      @param flags flags must be set to TRUE if timestamp parameter needs to be applied
+      @param flags flags must be set to true if timestamp parameter needs to be applied
 */
 
 
diff --git a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
index ed17d7eefd3..cc1062c6f2f 100644
--- a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
+++ b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
@@ -335,7 +335,7 @@ static void trx_usrp_end(openair0_device *device) {
       @param buff Buffer which holds the samples
       @param nsamps number of samples to be sent
       @param antenna_id index of the antenna if the device has multiple antennas
-      @param flags flags must be set to TRUE if timestamp parameter needs to be applied
+      @param flags flags must be set to true if timestamp parameter needs to be applied
 */
 static int trx_usrp_write(openair0_device *device,
 			  openair0_timestamp timestamp,
@@ -356,7 +356,7 @@ static int trx_usrp_write(openair0_device *device,
 
   AssertFatal( MAX_WRITE_THREAD_BUFFER_SIZE >= cc,"Do not support more than %d cc number\n", MAX_WRITE_THREAD_BUFFER_SIZE);
 
-    boolean_t first_packet_state=false,last_packet_state=false;
+  bool first_packet_state=false,last_packet_state=false;
 
     if (flags_lsb == 2) { // start of burst
       //      s->tx_md.start_of_burst = true;
@@ -492,7 +492,7 @@ VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_BEAM_SWITCHI
       @param buff Buffer which holds the samples
       @param nsamps number of samples to be sent
       @param antenna_id index of the antenna if the device has multiple antennas
-      @param flags flags must be set to TRUE if timestamp parameter needs to be applied
+      @param flags flags must be set to true if timestamp parameter needs to be applied
 */
 void *trx_usrp_write_thread(void * arg){
   int ret=0;
@@ -662,6 +662,7 @@ static int trx_usrp_read(openair0_device *device, openair0_timestamp *ptimestamp
         break;
      case USRP_X300_DEV:
      case USRP_N300_DEV:
+     case USRP_X400_DEV:
         rxshift=2;
         break;
      default:
@@ -692,7 +693,7 @@ static int trx_usrp_read(openair0_device *device, openair0_timestamp *ptimestamp
   }
   if (samples_received == nsamps) s->wait_for_first_pps=0;
 
-    // bring RX data into 12 LSBs for softmodem RX
+  // bring RX data into 12 LSBs for softmodem RX
   for (int i=0; i<cc; i++) {
     for (int j=0; j<nsamps2; j++) {
 #if defined(__x86_64__) || defined(__i386__)
@@ -770,8 +771,12 @@ static bool is_equal(double a, double b) {
 void *freq_thread(void *arg) {
   openair0_device *device=(openair0_device *)arg;
   usrp_state_t *s = (usrp_state_t *)device->priv;
-  s->usrp->set_tx_freq(device->openair0_cfg[0].tx_freq[0]);
-  s->usrp->set_rx_freq(device->openair0_cfg[0].rx_freq[0]);
+  uhd::tune_request_t tx_tune_req(device->openair0_cfg[0].tx_freq[0],
+                                  device->openair0_cfg[0].tune_offset);
+  uhd::tune_request_t rx_tune_req(device->openair0_cfg[0].rx_freq[0],
+                                  device->openair0_cfg[0].tune_offset);
+  s->usrp->set_tx_freq(tx_tune_req);
+  s->usrp->set_rx_freq(rx_tune_req);
   return NULL;
 }
 /*! \brief Set frequencies (TX/RX). Spawns a thread to handle the frequency change to not block the calling thread
@@ -783,14 +788,18 @@ void *freq_thread(void *arg) {
 int trx_usrp_set_freq(openair0_device *device, openair0_config_t *openair0_cfg, int dont_block) {
   usrp_state_t *s = (usrp_state_t *)device->priv;
   pthread_t f_thread;
-  printf("Setting USRP TX Freq %f, RX Freq %f\n",openair0_cfg[0].tx_freq[0],openair0_cfg[0].rx_freq[0]);
+  printf("Setting USRP TX Freq %f, RX Freq %f, tune_offset: %f, dont_block: %d\n",
+         openair0_cfg[0].tx_freq[0],openair0_cfg[0].rx_freq[0],
+         openair0_cfg[0].tune_offset, dont_block);
 
   // spawn a thread to handle the frequency change to not block the calling thread
   if (dont_block == 1)
     pthread_create(&f_thread,NULL,freq_thread,(void *)device);
   else {
-    s->usrp->set_tx_freq(device->openair0_cfg[0].tx_freq[0]);
-    s->usrp->set_rx_freq(device->openair0_cfg[0].rx_freq[0]);
+    uhd::tune_request_t tx_tune_req(openair0_cfg[0].tx_freq[0], openair0_cfg[0].tune_offset);
+    uhd::tune_request_t rx_tune_req(openair0_cfg[0].rx_freq[0], openair0_cfg[0].tune_offset);
+    s->usrp->set_tx_freq(tx_tune_req);
+    s->usrp->set_rx_freq(rx_tune_req);
   }
 
   return(0);
@@ -803,9 +812,11 @@ int trx_usrp_set_freq(openair0_device *device, openair0_config_t *openair0_cfg,
  */
 int openair0_set_rx_frequencies(openair0_device *device, openair0_config_t *openair0_cfg) {
   usrp_state_t *s = (usrp_state_t *)device->priv;
-  uhd::tune_request_t rx_tune_req(openair0_cfg[0].rx_freq[0]);
-  rx_tune_req.rf_freq_policy = uhd::tune_request_t::POLICY_MANUAL;
-  rx_tune_req.rf_freq = openair0_cfg[0].rx_freq[0];
+  uhd::tune_request_t rx_tune_req(openair0_cfg[0].rx_freq[0], openair0_cfg[0].tune_offset);
+  printf("In openair0_set_rx_frequencies, freq: %f, tune offset: %f\n",
+         openair0_cfg[0].rx_freq[0],  openair0_cfg[0].tune_offset);
+  //rx_tune_req.rf_freq_policy = uhd::tune_request_t::POLICY_MANUAL;
+  //rx_tune_req.rf_freq = openair0_cfg[0].rx_freq[0];
   s->usrp->set_rx_freq(rx_tune_req);
   return(0);
 }
@@ -1043,9 +1054,13 @@ extern "C" {
     }
 
     if (device_adds[0].get("type") == "n3xx") {
-      printf("Found USRP n300\n");
+      const std::string product = device_adds[0].get("product");
+      printf("Found USRP %s\n", product.c_str());
       device->type=USRP_N300_DEV;
-      usrp_master_clock = 122.88e6;
+      if (product == "n320")
+        usrp_master_clock = 245.76e6; // N320 does not support 122.88e6 master clock rate
+      else
+        usrp_master_clock = 122.88e6;
       args += boost::str(boost::format(",master_clock_rate=%f") % usrp_master_clock);
 
       if ( 0 != system("sysctl -w net.core.rmem_max=62500000 net.core.wmem_max=62500000") )
@@ -1329,7 +1344,9 @@ extern "C" {
   for(int i=0; i<((int) s->usrp->get_rx_num_channels()); i++) {
     if (i<openair0_cfg[0].rx_num_channels) {
       s->usrp->set_rx_rate(openair0_cfg[0].sample_rate,i+choffset);
-      s->usrp->set_rx_freq(openair0_cfg[0].rx_freq[i],i+choffset);
+      uhd::tune_request_t rx_tune_req(openair0_cfg[0].rx_freq[i],
+                                      openair0_cfg[0].tune_offset);
+      s->usrp->set_rx_freq(rx_tune_req, i+choffset);
       set_rx_gain_offset(&openair0_cfg[0],i,bw_gain_adjust);
       ::uhd::gain_range_t gain_range = s->usrp->get_rx_gain_range(i+choffset);
       // limit to maximum gain
@@ -1355,7 +1372,9 @@ extern "C" {
 
     if (i<openair0_cfg[0].tx_num_channels) {
       s->usrp->set_tx_rate(openair0_cfg[0].sample_rate,i+choffset);
-      s->usrp->set_tx_freq(openair0_cfg[0].tx_freq[i],i+choffset);
+      uhd::tune_request_t tx_tune_req(openair0_cfg[0].tx_freq[i],
+                                      openair0_cfg[0].tune_offset);
+      s->usrp->set_tx_freq(tx_tune_req, i+choffset);
       s->usrp->set_tx_gain(gain_range_tx.stop()-openair0_cfg[0].tx_gain[i],i+choffset);
       LOG_I(HW,"USRP TX_GAIN:%3.2lf gain_range:%3.2lf tx_gain:%3.2lf\n", gain_range_tx.stop()-openair0_cfg[0].tx_gain[i], gain_range_tx.stop(), openair0_cfg[0].tx_gain[i]);
     }
diff --git a/targets/ARCH/iqplayer/iqplayer_lib.c b/targets/ARCH/iqplayer/iqplayer_lib.c
index b62c1935d36..f6578d6e9a3 100644
--- a/targets/ARCH/iqplayer/iqplayer_lib.c
+++ b/targets/ARCH/iqplayer/iqplayer_lib.c
@@ -158,7 +158,7 @@ static void trx_iqplayer_end(openair0_device *device) {
       @param buff Buffer which holds the samples
       @param nsamps number of samples to be sent
       @param antenna_id index of the antenna if the device has multiple antennas
-      @param flags flags must be set to TRUE if timestamp parameter needs to be applied
+      @param flags flags must be set to true if timestamp parameter needs to be applied
 */
 static int trx_iqplayer_write(openair0_device *device, openair0_timestamp timestamp, void **buff, int nsamps, int cc, int flags) {
   struct timespec req;
diff --git a/targets/ARCH/rfsimulator/README.md b/targets/ARCH/rfsimulator/README.md
index 4a8d5ff79ac..feb7f015b96 100644
--- a/targets/ARCH/rfsimulator/README.md
+++ b/targets/ARCH/rfsimulator/README.md
@@ -61,6 +61,8 @@ Setting the env variable RFSIMULATOR can be used instead of using the serveraddr
 
 ## How to use the RF simulator options
 
+To define and use a channel model, the configuration file needs to include a channel configuration file. To do this, add `@include "channelmod_rfsimu.conf"` to the end of the configuration file, and place the channel configuration file in the same directory. An example channel configuration file `channelmod_rfsimu.conf` is in `ci-scripts/conf_files`.
+
 Add the following options to the command line to enable the channel model and the IQ samples saving for future replay:
 ```bash
 --rfsimulator.options chanmod,saviq
@@ -82,6 +84,8 @@ Example run:
 sudo RFSIMULATOR=server ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf --parallel-config PARALLEL_SINGLE_THREAD --rfsim --phy-test --rfsimulator.options chanmod --rfsimulator.modelname AWGN 
 ```
 
+where `@include "channelmod_rfsimu.conf"` has been added at the end of the file, and `ci-scripts/conf_files/channelmod_rfsimu.conf` copied to `targets/PROJECTS/GENERIC-LTE-EPC/CONF/`.
+
 ## 4G case
 
 For the UE, it should be set to the IP address of the eNB. For example:
@@ -102,9 +106,7 @@ $OPENAIR_DIR/targets/bin/conf2uedata -c $OPENAIR_DIR/openair3/NAS/TOOLS/ue_eurec
 
 ## 5G case
 
-The 5G RF simulator will be aligned with the 4G as the efforts for merging the 5G specific branches into the develop make progresses.
-
-After regular build, add the simulation driver (do not use ./build_oai -w SIMU until 4G and 5G branches are merged).
+If `build_oai` has not been run with `-w SIMU`, you need to build the `rfsimulator` manually. To do so:
 ```bash
 cd ran_build/build
 make rfsimulator
@@ -113,7 +115,7 @@ make rfsimulator
 ### Launch gNB in one window
 
 ```bash
-sudo RFSIMULATOR=server ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf --parallel-config PARALLEL_SINGLE_THREAD --rfsim --phy-test
+sudo RFSIMULATOR=server ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf --parallel-config PARALLEL_SINGLE_THREAD --rfsim --phy-test --nokrnmod 1
 ```
 
 ### Launch UE in another window
@@ -124,15 +126,17 @@ sudo RFSIMULATOR=<TARGET_GNB_INTERFACE_ADDRESS> ./nr-uesoftmodem --rfsim --phy-t
 
 Notes:
 
-1. <TARGET_GNB_INTERFACE_ADDRESS> can be 127.0.0.1 if both gNB and nrUE executables run on the same host, OR the IP interface address of the remote host running the gNB executable, if the gNB and nrUE run on separate hosts
-2. the --rrc_config_path parameter SHALL specify where the 2 RAW files are located (`rbconfig.raw` and `reconfig.raw`).
+1. This starts the gNB and UE in the `phy-test` UP-only mode where the gNB is started as if a UE had already connected, and a configurable scheduler is used instead of the default one. The options `-m`, `-l`, `-t`, `-M`, `-T`, `-D`, and `-U` can be used to configure this scheduler.
+2. <TARGET_GNB_INTERFACE_ADDRESS> can be 127.0.0.1 if both gNB and nrUE executables run on the same host, OR the IP interface address of the remote host running the gNB executable, if the gNB and nrUE run on separate hosts.
+3. The --rrc_config_path parameter SHALL specify where the 2 RAW files are located (`rbconfig.raw` and `reconfig.raw`).
    - If you are running on the same machine and launched the 2 executables (`nr-softmodem` and `nr-uesoftmodem`) from the same directory, nothing has to be done.
    - If you launched the 2 executables from 2 different folders, just point to the location where you launched the `nr-softmodem`:
      * `sudo RFSIMULATOR=<TARGET_GNB_INTERFACE_ADDRESS> ./nr-uesoftmodem --rfsim --phy-test --rrc_config_path /the/path/where/you/launched/nr-softmodem`
    - If you are not running on the same machine or launched the 2 executables from 2 different folders, you need to **COPY** the 2 raw files
      * `scp usera@machineA:/the/path/where/you/launched/nr-softmodem/r*config.raw userb@machineB:/the/path/where/you/will/launch/nr-uesoftmodem/`
      * Obviously this operation SHALL be done before launching the `nr-uesoftmodem` executable.
-3. to enable the noS1 mode --noS1 and --nokrnmod 1 options should be added to the command line
+4. To enable the noS1 mode, `--noS1` option should be added to the command line.
+5. To operate the gNB/UE with a 5GC, start them using the `--sa` option. More information can be found [here](../../../doc/TESTING_5GSA_setup.md#2-sa-setup-with-oai-nr-ue-softmodem).
 
 
 In the UE, you can add `-d` option to get the softscope.
diff --git a/targets/ARCH/rfsimulator/simulator.c b/targets/ARCH/rfsimulator/simulator.c
index bc9882b4bd2..127b2975d58 100644
--- a/targets/ARCH/rfsimulator/simulator.c
+++ b/targets/ARCH/rfsimulator/simulator.c
@@ -429,6 +429,8 @@ static int rfsimulator_write_internal(rfsimulator_state_t *t, openair0_timestamp
   if (!alreadyLocked)
     pthread_mutex_lock(&Sockmutex);
 
+  LOG_D(HW,"sending %d samples at time: %ld, nbAnt %d\n", nsamps, timestamp, nbAnt);
+
   for (int i=0; i<FD_SETSIZE; i++) {
     buffer_t *b=&t->buf[i];
 
@@ -621,7 +623,7 @@ static int rfsimulator_read(openair0_device *device, openair0_timestamp *ptimest
   }
 
   rfsimulator_state_t *t = device->priv;
-  LOG_D(HW, "Enter rfsimulator_read, expect %d samples, will release at TS: %ld\n", nsamps, t->nextRxTstamp+nsamps);
+  LOG_D(HW, "Enter rfsimulator_read, expect %d samples, will release at TS: %ld, nbAnt %d\n", nsamps, t->nextRxTstamp+nsamps, nbAnt);
   // deliver data from received data
   // check if a UE is connected
   int first_sock;
@@ -693,15 +695,16 @@ static int rfsimulator_read(openair0_device *device, openair0_timestamp *ptimest
         t->poll_telnetcmdq(t->telnetcmd_qid,t);
 
       for (int a=0; a<nbAnt; a++) {//loop over number of Rx antennas
-        if ( ptr->channel_model != NULL ) // apply a channel model
-          rxAddInput( ptr->circularBuf, (c16_t *) samplesVoid[a],
-                      a,
-                      ptr->channel_model,
-                      nsamps,
-                      t->nextRxTstamp,
-                      CirSize
-                    );
+        if ( ptr->channel_model != NULL ) { // apply a channel model
+          rxAddInput(ptr->circularBuf, (c16_t *) samplesVoid[a],
+                     a,
+                     ptr->channel_model,
+                     nsamps,
+                     t->nextRxTstamp,
+                     CirSize);
+        }
         else { // no channel modeling
+          
           double H_awgn_mimo[4][4] ={{1.0, 0.2, 0.1, 0.05}, //rx 0
                                       {0.2, 1.0, 0.2, 0.1}, //rx 1
                                      {0.1, 0.2, 1.0, 0.2}, //rx 2
diff --git a/targets/ARCH/rfsimulator/stored_node.c b/targets/ARCH/rfsimulator/stored_node.c
index cf025680cd7..17ab3cb7343 100644
--- a/targets/ARCH/rfsimulator/stored_node.c
+++ b/targets/ARCH/rfsimulator/stored_node.c
@@ -187,7 +187,7 @@ int main(int argc, char *argv[]) {
   }
 
   uint64_t typeStamp=ENB_MAGICDL;
-  boolean_t raw=false;
+  bool raw = false;
 
   if ( argc == 5 ) {
     raw=true;
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/benetel-5g.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/benetel-5g.conf
index d14267dcd84..c8e109d3023 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/benetel-5g.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/benetel-5g.conf
@@ -22,7 +22,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 31; //0;
 	
     servingCellConfigCommon = (
     {
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band257.tm1.32PRB.usrpn300.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band257.tm1.32PRB.usrpn300.conf
index 4682dd39344..358c2fc2eed 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band257.tm1.32PRB.usrpn300.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band257.tm1.32PRB.usrpn300.conf
@@ -21,7 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
 	
     servingCellConfigCommon = (
     {
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band257.tm1.32PRB.usrpx300.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band257.tm1.32PRB.usrpx300.conf
index ab435c96866..e5478983cff 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band257.tm1.32PRB.usrpx300.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band257.tm1.32PRB.usrpx300.conf
@@ -21,7 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
 	
     servingCellConfigCommon = (
     {
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band257.tm1.66PRB.usrpn300.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band257.tm1.66PRB.usrpn300.conf
index 912a9f328b3..14040dfe4fb 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band257.tm1.66PRB.usrpn300.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band257.tm1.66PRB.usrpn300.conf
@@ -21,8 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
-
     servingCellConfigCommon = (
     {
  #spCellConfigCommon
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band261.tm1.32PRB.usrpn300.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band261.tm1.32PRB.usrpn300.conf
index 426f9e782b1..8a2ce9f63ec 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band261.tm1.32PRB.usrpn300.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band261.tm1.32PRB.usrpn300.conf
@@ -21,7 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
 	
     servingCellConfigCommon = (
     {
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band66.tm1.106PRB.usrpn300.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band66.tm1.106PRB.usrpn300.conf
index 216728577a7..616f86a1cd6 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band66.tm1.106PRB.usrpn300.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band66.tm1.106PRB.usrpn300.conf
@@ -21,7 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
 
     servingCellConfigCommon = (
     {
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band66.tm1.106PRB.usrpx300.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band66.tm1.106PRB.usrpx300.conf
index 59d466656c6..0818fe11d7c 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band66.tm1.106PRB.usrpx300.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band66.tm1.106PRB.usrpx300.conf
@@ -21,8 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
-
     servingCellConfigCommon = (
     {
  #spCellConfigCommon
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band66.tm1.25PRB.usrpn300.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band66.tm1.25PRB.usrpn300.conf
new file mode 100644
index 00000000000..022f17e490e
--- /dev/null
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band66.tm1.25PRB.usrpn300.conf
@@ -0,0 +1,263 @@
+Active_gNBs = ( "gNB-Eurecom-5GNRBox");
+# Asn1_verbosity, choice in: none, info, annoying
+Asn1_verbosity = "none";
+
+gNBs =
+(
+ {
+    ////////// Identification parameters:
+    gNB_ID    =  0xe00;
+
+    cell_type =  "CELL_MACRO_GNB";
+
+    gNB_name  =  "gNB-Eurecom-5GNRBox";
+
+    // Tracking area code, 0x0000 and 0xfffe are reserved values
+    tracking_area_code  =  1;
+
+    plmn_list = ({mcc = 208; mnc = 93; mnc_length = 2;});
+
+    tr_s_preference     = "local_mac";
+
+    ////////// Physical parameters:
+
+    min_rxtxtime                                              = 6;
+
+    servingCellConfigCommon = (
+    {
+ #spCellConfigCommon
+
+      physCellId                                                    = 0;
+
+#  downlinkConfigCommon
+    #frequencyInfoDL
+      # this is 2150 MHz + 12 PRBs@15kHz SCS (same as initial BWP), points to Subcarrier 0 of RB#10 of SSB block
+      absoluteFrequencySSB                                          = 430432;
+      dl_frequencyBand                                              = 66;
+      # this is 2150 MHz
+      dl_absoluteFrequencyPointA                                    = 430000;
+      #scs-SpecificCarrierList
+        dl_offstToCarrier                                           = 0;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120  
+        dl_subcarrierSpacing                                        = 0;
+        dl_carrierBandwidth                                         = 25;
+     #initialDownlinkBWP
+      #genericParameters
+        # this is RBstart=0,L=25 (275*(L-1))+RBstart
+        initialDLBWPlocationAndBandwidth                            = 6600;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        initialDLBWPsubcarrierSpacing                               = 0;
+      #pdcch-ConfigCommon
+        initialDLBWPcontrolResourceSetZero                          = 0;
+        initialDLBWPsearchSpaceZero                                 = 0;
+
+  #uplinkConfigCommon
+     #frequencyInfoUL
+      ul_frequencyBand                                              = 66;
+      ul_absoluteFrequencyPointA                                    = 350000;
+      #scs-SpecificCarrierList
+      ul_offstToCarrier                                             = 0;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      ul_subcarrierSpacing                                          = 0;
+      ul_carrierBandwidth                                           = 25;
+      pMax                                                          = 20;
+     #initialUplinkBWP
+      #genericParameters
+        initialULBWPlocationAndBandwidth                            = 6600;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        initialULBWPsubcarrierSpacing                               = 0;
+      #rach-ConfigCommon
+        #rach-ConfigGeneric
+          prach_ConfigurationIndex                                  = 98;
+#prach_msg1_FDM
+#0 = one, 1=two, 2=four, 3=eight
+          prach_msg1_FDM                                            = 0;
+          prach_msg1_FrequencyStart                                 = 0;
+          zeroCorrelationZoneConfig                                 = 13;
+          preambleReceivedTargetPower                               = -118;
+#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
+          preambleTransMax                                          = 6;
+#powerRampingStep
+# 0=dB0,1=dB2,2=dB4,3=dB6
+        powerRampingStep                                            = 1;
+#ra_ReponseWindow
+#1,2,4,8,10,20,40,80
+        ra_ResponseWindow                                           = 4;
+#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
+#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
+        ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR                = 4;
+#oneHalf (0..15) 4,8,12,16,...60,64
+        ssb_perRACH_OccasionAndCB_PreamblesPerSSB                   = 15;
+#ra_ContentionResolutionTimer
+#(0..7) 8,16,24,32,40,48,56,64
+        ra_ContentionResolutionTimer                                = 7;
+        rsrp_ThresholdSSB                                           = 19;
+#prach-RootSequenceIndex_PR
+#1 = 839, 2 = 139
+        prach_RootSequenceIndex_PR                                  = 2;
+        prach_RootSequenceIndex                                     = 1;
+        # SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
+        msg1_SubcarrierSpacing                                      = 0;
+# restrictedSetConfig
+# 0=unrestricted, 1=restricted type A, 2=restricted type B
+        restrictedSetConfig                                         = 0;
+
+        msg3_DeltaPreamble                                          = 1;
+        p0_NominalWithGrant                                         =-90;
+
+# pucch-ConfigCommon setup :
+# pucchGroupHopping
+# 0 = neither, 1= group hopping, 2=sequence hopping
+        pucchGroupHopping                                           = 0;
+        hoppingId                                                   = 40;
+        p0_nominal                                                  = -90;
+# ssb_PositionsInBurs_BitmapPR
+# 1=short, 2=medium, 3=long
+      ssb_PositionsInBurst_PR                                       = 2;
+      ssb_PositionsInBurst_Bitmap                                   = 0x1;
+
+# ssb_periodicityServingCell
+# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
+      ssb_periodicityServingCell                                    = 2;
+
+# dmrs_TypeA_position
+# 0 = pos2, 1 = pos3
+      dmrs_TypeA_Position                                           = 0;
+
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      subcarrierSpacing                                             = 0;
+
+
+  #tdd-UL-DL-ConfigurationCommon
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      referenceSubcarrierSpacing                                    = 0;
+      # pattern1
+      # dl_UL_TransmissionPeriodicity
+      # 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
+      dl_UL_TransmissionPeriodicity                                 = 6;
+      nrofDownlinkSlots                                             = 7;
+      nrofDownlinkSymbols                                           = 6;
+      nrofUplinkSlots                                               = 2;
+      nrofUplinkSymbols                                             = 4;
+
+      ssPBCH_BlockPower                                             = -25;
+  }
+
+  );
+
+
+    # ------- SCTP definitions
+    SCTP :
+    {
+        # Number of streams to use in input/output
+        SCTP_INSTREAMS  = 2;
+        SCTP_OUTSTREAMS = 2;
+    };
+
+
+    ////////// MME parameters:
+    mme_ip_address      = ( { ipv4       = "192.168.12.26";
+                              ipv6       = "192:168:30::17";
+                              active     = "yes";
+                              preference = "ipv4";
+                            }
+                          );
+
+    NETWORK_INTERFACES :
+    {
+
+        GNB_INTERFACE_NAME_FOR_S1_MME            = "eth0";
+        GNB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.111/24";
+        GNB_INTERFACE_NAME_FOR_S1U               = "eth0";
+        GNB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.111/24";
+        GNB_PORT_FOR_S1U                         = 2152; # Spec 2152
+    };
+  }
+);
+
+MACRLCs = (
+	{
+	num_cc = 1;
+	tr_s_preference = "local_L1";
+	tr_n_preference = "local_RRC";
+	}
+);
+
+L1s = (
+	{
+	num_cc = 1;
+	tr_n_preference = "local_mac";
+	thread_pool_size = 8;
+	ofdm_offset_divisor = 8; #set this to UINT_MAX for offset 0
+	}
+);
+
+RUs = (
+    {
+         local_rf       = "yes";
+         nb_tx          = 1;
+         nb_rx          = 1;
+         att_tx         = 0;
+         att_rx         = 0;
+         bands          = [7];
+         max_pdschReferenceSignalPower = -27;
+         max_rxgain                    = 50;
+         eNB_instances  = [0];
+         ## beamforming 1x2 matrix: 1 layer x 2 antennas
+         bf_weights = [0x00007fff, 0x0000];
+         ## beamforming 1x4 matrix: 1 layer x 4 antennas
+         #bf_weights = [0x00007fff, 0x0000,0x0000, 0x0000];
+         ## beamforming 2x2 matrix:
+         #bf_weights = [0x00007fff, 0x00000000, 0x00000000, 0x00007fff];
+         ## beamforming 4x4 matrix:
+         #bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000, 0x00000000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff];
+         sdr_addrs = "addr=192.168.10.2,mgmt_addr=192.168.10.2,second_addr=192.168.20.2";
+         clock_src = "external";
+         # if_freq = 3700000000L;
+         # if_offset = 1000000;
+    }
+);
+
+THREAD_STRUCT = (
+  {
+    #three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
+    parallel_config    = "PARALLEL_RU_L1_TRX_SPLIT";
+    #two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
+    worker_config      = "WORKER_DISABLE";
+  }
+);
+
+security = {
+  # preferred ciphering algorithms
+  # the first one of the list that an UE supports in chosen
+  # valid values: nea0, nea1, nea2, nea3
+  ciphering_algorithms = ( "nea0" );
+
+  # preferred integrity algorithms
+  # the first one of the list that an UE supports in chosen
+  # valid values: nia0, nia1, nia2, nia3
+  integrity_algorithms = ( "nia2", "nia0" );
+
+  # setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
+  # what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
+  drb_ciphering = "yes";
+  drb_integrity = "no";
+};
+
+     log_config :
+     {
+       global_log_level                      ="info";
+       hw_log_level                          ="info";
+       phy_log_level                         ="info";
+       mac_log_level                         ="info";
+       rlc_log_level                         ="info";
+       pdcp_log_level                        ="info";
+       rrc_log_level                         ="info";
+    };
+
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.106PRB.30kHz,usrpb2x0.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.106PRB.30kHz,usrpb2x0.conf
index 2ae4df07d9c..5c636af06c0 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.106PRB.30kHz,usrpb2x0.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.106PRB.30kHz,usrpb2x0.conf
@@ -21,7 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 31;
 	
     servingCellConfigCommon = (
     {
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.106PRB.slave.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.106PRB.slave.conf
index 21267870bd5..812ac8dafbc 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.106PRB.slave.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.106PRB.slave.conf
@@ -21,7 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
 
     servingCellConfigCommon = (
     {
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.slave.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.slave.conf
index a0fd0bda9f0..781384a7891 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.slave.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.slave.conf
@@ -20,8 +20,6 @@ gNBs =
     tr_s_preference     = "local_mac"
 
     ////////// Physical parameters:
-
-    ssb_SubcarrierOffset                                      = 0;
 	
     servingCellConfigCommon = (
     {
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.PTRS.usrpx300.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.PTRS.usrpx300.conf
index 5c8f90d9b55..1450c45eee0 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.PTRS.usrpx300.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.PTRS.usrpx300.conf
@@ -21,8 +21,6 @@ gNBs =
 
    ////////// Physical parameters:
 
-   ssb_SubcarrierOffset                                           = 0;
-
    servingCellConfigCommon = (
    {
      #spCellConfigCommon
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpb210.conf
index 7bf3626870a..562e2b16ab0 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpb210.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpb210.conf
@@ -21,8 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
-
     servingCellConfigCommon = (
     {
  #spCellConfigCommon
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf
index 1773e1fb792..a8ecb8c4b67 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf
@@ -21,8 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
-
     servingCellConfigCommon = (
     {
  #spCellConfigCommon
@@ -182,11 +180,11 @@ gNBs =
 );
 
 MACRLCs = (
-	{
-	num_cc = 1;
-	tr_s_preference = "local_L1";
-	tr_n_preference = "local_RRC";
-	}
+  {
+  num_cc = 1;
+  tr_s_preference = "local_L1";
+  tr_n_preference = "local_RRC";
+  }
 );
 
 L1s = (
@@ -194,6 +192,7 @@ L1s = (
   num_cc = 1;
   tr_n_preference = "local_mac";
   thread_pool_size = 8;
+  max_ldpc_iterations = 5;
   ofdm_offset_divisor = 8; #set this to UINT_MAX for offset 0
 }
 );
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf
index d0f394be16a..10122b9eb2c 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf
@@ -21,8 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
-
     servingCellConfigCommon = (
     {
  #spCellConfigCommon
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.217PRB.usrpn300.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.217PRB.usrpn300.conf
index 0438e613372..20d01c2a00d 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.217PRB.usrpn300.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.217PRB.usrpn300.conf
@@ -20,8 +20,6 @@ gNBs =
     tr_s_preference     = "local_mac"
 
     ////////// Physical parameters:
-
-    ssb_SubcarrierOffset                                      = 0;
 	
     servingCellConfigCommon = (
     {
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.217PRB.usrpx300.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.217PRB.usrpx300.conf
index 66c2151eb83..44f3889eece 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.217PRB.usrpx300.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.217PRB.usrpx300.conf
@@ -21,7 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
 
     servingCellConfigCommon = (
     {
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.24PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.24PRB.usrpb210.conf
index c6ea066fc48..fbafef81b41 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.24PRB.usrpb210.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.24PRB.usrpb210.conf
@@ -21,7 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
 
     servingCellConfigCommon = (
     {
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.24PRB.usrpn300.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.24PRB.usrpn300.conf
index fcfe58a3c02..38d6ed3c610 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.24PRB.usrpn300.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.24PRB.usrpn300.conf
@@ -21,7 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
 
     servingCellConfigCommon = (
     {
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.24PRB.usrpx300.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.24PRB.usrpx300.conf
index 2ad9757cb13..b7da7b17f4b 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.24PRB.usrpx300.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.24PRB.usrpx300.conf
@@ -21,7 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
 
     servingCellConfigCommon = (
     {
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.273PRB.usrpn300.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.273PRB.usrpn300.conf
index 44074f3fd91..9f78716bcc2 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.273PRB.usrpn300.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.273PRB.usrpn300.conf
@@ -21,7 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
 	
     servingCellConfigCommon = (
     {
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band78.tm1.106PRB.nfapi.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band78.tm1.106PRB.nfapi.conf
index 7ce150506f0..1dcef897368 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band78.tm1.106PRB.nfapi.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band78.tm1.106PRB.nfapi.conf
@@ -21,7 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
 	
     servingCellConfigCommon = (
     {
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_gnb.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_gnb.conf
index 306e652eaa9..9a3fe358a54 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_gnb.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_gnb.conf
@@ -21,8 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 31; //0;
-
     servingCellConfigCommon = (
     {
  #spCellConfigCommon
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_gnb_24PRB.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_gnb_24PRB.conf
index d08c0f14a08..9e1ae24d673 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_gnb_24PRB.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_gnb_24PRB.conf
@@ -21,8 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 31; //0;
-
     servingCellConfigCommon = (
     {
  #spCellConfigCommon
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_gnb_n310.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_gnb_n310.conf
index e3204db8fae..9ec28b93e70 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_gnb_n310.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_gnb_n310.conf
@@ -20,8 +20,6 @@ gNBs =
     tr_s_preference     = "local_mac"
 
     ////////// Physical parameters:
-
-    ssb_SubcarrierOffset                                      = 31; //0;
 	
     servingCellConfigCommon = (
     {
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_gnb_nsa_n310.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_gnb_nsa_n310.conf
index 030dc102267..35778ef7059 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_gnb_nsa_n310.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_gnb_nsa_n310.conf
@@ -21,7 +21,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 31; //0;
     pusch_TargetSNRx10                                        = 200;
     pucch_TargetSNRx10                                        = 200;
 
diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/cu_gnb.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/cu_gnb.conf
index 6aacd98c7f0..a64a4c6022e 100644
--- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/cu_gnb.conf
+++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/cu_gnb.conf
@@ -44,7 +44,6 @@ gNBs =
     local_s_portd   = 2152;
     remote_s_portc  = 500;
     remote_s_portd  = 2152;
-    ssb_SubcarrierOffset                                      = 0;
     min_rxtxtime                                              = 6;
 
      pdcch_ConfigSIB1 = (
diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/du_gnb.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/du_gnb.conf
index f95bdf91aee..4309c13dd39 100644
--- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/du_gnb.conf
+++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/du_gnb.conf
@@ -36,7 +36,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
     min_rxtxtime                                              = 6;
 
     pdcch_ConfigSIB1 = (
diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.band78.tm1.106PRB.usrpn300.gtp-itti.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.band78.tm1.106PRB.usrpn300.gtp-itti.conf
index f91683897f7..cb90889b52f 100644
--- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.band78.tm1.106PRB.usrpn300.gtp-itti.conf
+++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.band78.tm1.106PRB.usrpn300.gtp-itti.conf
@@ -36,7 +36,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
 
     servingCellConfigCommon = (
     {
diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band41.fr1.106PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band41.fr1.106PRB.usrpb210.conf
index e645094e8be..42aa5557712 100644
--- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band41.fr1.106PRB.usrpb210.conf
+++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band41.fr1.106PRB.usrpb210.conf
@@ -28,8 +28,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
-    min_rxtxtime                                              = 2;
     do_SRS                                                    = 1;
 
      pdcch_ConfigSIB1 = (
@@ -167,6 +165,64 @@ gNBs =
 
   );
 
+# Dedicated Serving Cell Configuration
+servingCellConfigDedicated = ({
+  # BWP-Downlink
+    # BWP 1 Configuration
+      dl_bwp-Id_1 = 1;
+      dl_bwp1_locationAndBandwidth = 28875; // RBstart=0, L=106 (40 MHz BW)
+      # subcarrierSpacing
+      # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      dl_bwp1_subcarrierSpacing = 1;
+
+    # BWP 2 Configuration
+      dl_bwp-Id_2 = 2;
+      dl_bwp2_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW)
+      # subcarrierSpacing
+      # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      dl_bwp2_subcarrierSpacing = 1;
+
+    # BWP 3 Configuration
+      dl_bwp-Id_3 = 3;
+      dl_bwp3_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW)
+      # subcarrierSpacing
+      # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      dl_bwp3_subcarrierSpacing = 1;
+
+    firstActiveDownlinkBWP-Id = 1;  #BWP-Id
+    defaultDownlinkBWP-Id     = 1;  #BWP-Id
+
+    # bwp-InactivityTimer                 ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30,
+    #                                                ms40,ms50, ms60, ms80,ms100, ms200,ms300, ms500,
+    #                                                ms750, ms1280, ms1920, ms2560, spare10, spare9, spare8,
+    #                                                spare7, spare6, spare5, spare4, spare3, spare2, spare1 }
+
+  # UplinkConfig
+    # BWP-Uplink
+      # BWP 1 Configuration
+        ul_bwp-Id_1 = 1;
+        ul_bwp1_locationAndBandwidth = 28875; // RBstart=0, L=106 (40 MHz BW)
+        # subcarrierSpacing
+        # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        ul_bwp1_subcarrierSpacing = 1;
+
+      # BWP 2 Configuration
+        ul_bwp-Id_2 = 2;
+        ul_bwp2_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW)
+        # subcarrierSpacing
+        # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        ul_bwp2_subcarrierSpacing = 1;
+
+      # BWP 3 Configuration
+        ul_bwp-Id_3 = 3;
+        ul_bwp3_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW)
+        # subcarrierSpacing
+        # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        ul_bwp3_subcarrierSpacing = 1;
+
+      firstActiveUplinkBWP-Id = 1;  #BWP-Id
+  }
+);
 
     # ------- SCTP definitions
     SCTP :
@@ -283,4 +339,7 @@ log_config :
   ngap_log_level                        ="debug";
   f1ap_log_level                        ="debug";
 };
+<<<<<<< HEAD
+=======
 
+>>>>>>> origin/develop
diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band66.fr1.106PRB.usrpn300.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band66.fr1.106PRB.usrpn300.conf
index ff64fe718af..6abf2c19cc6 100644
--- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band66.fr1.106PRB.usrpn300.conf
+++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band66.fr1.106PRB.usrpn300.conf
@@ -32,9 +32,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
-    pdsch_AntennaPorts                                        = 1;
-    pusch_AntennaPorts                                        = 1;
     min_rxtxtime                                              = 6;
 
      pdcch_ConfigSIB1 = (
diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.2x2.usrpn300.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.2x2.usrpn300.conf
index 2881a77d48f..30be5972558 100644
--- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.2x2.usrpn300.conf
+++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.2x2.usrpn300.conf
@@ -28,9 +28,9 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
     pdsch_AntennaPorts_N1                                     = 2;
     pusch_AntennaPorts                                        = 2;
+    do_CSIRS                                                  = 1;
     do_SRS                                                    = 1;
     ul_prbblacklist                                           = "51,52,53,54"
 
@@ -68,7 +68,7 @@ gNBs =
 # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
         initialDLBWPsubcarrierSpacing                                  = 1;
       #pdcch-ConfigCommon
-        initialDLBWPcontrolResourceSetZero                             = 11;
+        initialDLBWPcontrolResourceSetZero                             = 12;
         initialDLBWPsearchSpaceZero                                    = 0;
 
   #uplinkConfigCommon
@@ -169,6 +169,64 @@ gNBs =
 
   );
 
+# Dedicated Serving Cell Configuration
+servingCellConfigDedicated = ({
+  # BWP-Downlink
+    # BWP 1 Configuration
+      dl_bwp-Id_1 = 1;
+      dl_bwp1_locationAndBandwidth = 28875; // RBstart=0, L=106 (40 MHz BW)
+      # subcarrierSpacing
+      # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      dl_bwp1_subcarrierSpacing = 1;
+
+    # BWP 2 Configuration
+      dl_bwp-Id_2 = 2;
+      dl_bwp2_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW)
+      # subcarrierSpacing
+      # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      dl_bwp2_subcarrierSpacing = 1;
+
+    # BWP 3 Configuration
+      dl_bwp-Id_3 = 3;
+      dl_bwp3_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW)
+      # subcarrierSpacing
+      # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      dl_bwp3_subcarrierSpacing = 1;
+
+    firstActiveDownlinkBWP-Id = 1;  #BWP-Id
+    defaultDownlinkBWP-Id     = 1;  #BWP-Id
+
+    # bwp-InactivityTimer                 ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30,
+    #                                                ms40,ms50, ms60, ms80,ms100, ms200,ms300, ms500,
+    #                                                ms750, ms1280, ms1920, ms2560, spare10, spare9, spare8,
+    #                                                spare7, spare6, spare5, spare4, spare3, spare2, spare1 }
+
+  # UplinkConfig
+    # BWP-Uplink
+      # BWP 1 Configuration
+        ul_bwp-Id_1 = 1;
+        ul_bwp1_locationAndBandwidth = 28875; // RBstart=0, L=106 (40 MHz BW)
+        # subcarrierSpacing
+        # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        ul_bwp1_subcarrierSpacing = 1;
+
+      # BWP 2 Configuration
+        ul_bwp-Id_2 = 2;
+        ul_bwp2_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW)
+        # subcarrierSpacing
+        # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        ul_bwp2_subcarrierSpacing = 1;
+
+      # BWP 3 Configuration
+        ul_bwp-Id_3 = 3;
+        ul_bwp3_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW)
+        # subcarrierSpacing
+        # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        ul_bwp3_subcarrierSpacing = 1;
+
+      firstActiveUplinkBWP-Id = 1;  #BWP-Id
+  }
+);
 
     # ------- SCTP definitions
     SCTP :
@@ -207,6 +265,7 @@ MACRLCs = (
   tr_n_preference             = "local_RRC";
   #pusch_TargetSNRx10         = 150;
   #pucch_TargetSNRx10         = 200;
+  ul_prbblack_SNR_threshold   = 10;
   ulsch_max_frame_inactivity  = 0;
 }
 );
diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.4layer.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.4layer.conf
new file mode 100644
index 00000000000..8ff83b5d023
--- /dev/null
+++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.4layer.conf
@@ -0,0 +1,297 @@
+Active_gNBs = ( "gNB-Eurecom-5GNRBox");
+# Asn1_verbosity, choice in: none, info, annoying
+Asn1_verbosity = "none";
+
+gNBs =
+(
+ {
+    ////////// Identification parameters:
+    gNB_ID    =  0xe00;
+    gNB_name  =  "gNB-Eurecom-5GNRBox";
+
+    // Tracking area code, 0x0000 and 0xfffe are reserved values
+    tracking_area_code  =  1;
+    plmn_list = ({
+                  mcc = 208;
+                  mnc = 99;
+                  mnc_length = 2;
+                  snssaiList = (
+                    {
+                      sst = 1;
+                      sd  = 0x1; // 0 false, else true
+                    },
+                    {
+                      sst = 1;
+                      sd  = 0x112233; // 0 false, else true
+                    }
+                  );
+
+                  });
+
+    nr_cellid = 12345678L;
+
+    ////////// Physical parameters:
+
+    pdsch_AntennaPorts_XP = 2;
+    pdsch_AntennaPorts_N1 = 2;
+    pusch_AntennaPorts                                        = 4;
+
+     pdcch_ConfigSIB1 = (
+      {
+        controlResourceSetZero = 12;
+        searchSpaceZero = 0;
+      }
+      );
+
+    servingCellConfigCommon = (
+    {
+ #spCellConfigCommon
+
+      physCellId                                                    = 0;
+
+#  downlinkConfigCommon
+    #frequencyInfoDL
+      # this is 3600 MHz + 43 PRBs@30kHz SCS (same as initial BWP)
+      absoluteFrequencySSB                                             = 641280;
+      dl_frequencyBand                                                 = 78;
+      # this is 3600 MHz
+      dl_absoluteFrequencyPointA                                       = 640008;
+      #scs-SpecificCarrierList
+        dl_offstToCarrier                                              = 0;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        dl_subcarrierSpacing                                           = 1;
+        dl_carrierBandwidth                                            = 106;
+     #initialDownlinkBWP
+      #genericParameters
+        # this is RBstart=27,L=48 (275*(L-1))+RBstart
+        initialDLBWPlocationAndBandwidth                               = 28875; # 6366 12925 12956 28875 12952
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        initialDLBWPsubcarrierSpacing                                   = 1;
+      #pdcch-ConfigCommon
+        initialDLBWPcontrolResourceSetZero                              = 12;
+        initialDLBWPsearchSpaceZero                                     = 0;
+
+  #uplinkConfigCommon
+     #frequencyInfoUL
+      ul_frequencyBand                                              = 78;
+      #scs-SpecificCarrierList
+      ul_offstToCarrier                                             = 0;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      ul_subcarrierSpacing                                          = 1;
+      ul_carrierBandwidth                                           = 106;
+      pMax                                                          = 20;
+     #initialUplinkBWP
+      #genericParameters
+        initialULBWPlocationAndBandwidth                            = 28875;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        initialULBWPsubcarrierSpacing                               = 1;
+      #rach-ConfigCommon
+        #rach-ConfigGeneric
+          prach_ConfigurationIndex                                  = 98;
+#prach_msg1_FDM
+#0 = one, 1=two, 2=four, 3=eight
+          prach_msg1_FDM                                            = 0;
+          prach_msg1_FrequencyStart                                 = 0;
+          zeroCorrelationZoneConfig                                 = 13;
+          preambleReceivedTargetPower                               = -96;
+#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
+          preambleTransMax                                          = 6;
+#powerRampingStep
+# 0=dB0,1=dB2,2=dB4,3=dB6
+        powerRampingStep                                            = 1;
+#ra_ReponseWindow
+#1,2,4,8,10,20,40,80
+        ra_ResponseWindow                                           = 4;
+#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
+#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
+        ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR                = 4;
+#oneHalf (0..15) 4,8,12,16,...60,64
+        ssb_perRACH_OccasionAndCB_PreamblesPerSSB                   = 14;
+#ra_ContentionResolutionTimer
+#(0..7) 8,16,24,32,40,48,56,64
+        ra_ContentionResolutionTimer                                = 7;
+        rsrp_ThresholdSSB                                           = 19;
+#prach-RootSequenceIndex_PR
+#1 = 839, 2 = 139
+        prach_RootSequenceIndex_PR                                  = 2;
+        prach_RootSequenceIndex                                     = 1;
+        # SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
+        #
+        msg1_SubcarrierSpacing                                      = 1,
+# restrictedSetConfig
+# 0=unrestricted, 1=restricted type A, 2=restricted type B
+        restrictedSetConfig                                         = 0,
+
+        msg3_DeltaPreamble                                          = 1;
+        p0_NominalWithGrant                                         =-90;
+
+# pucch-ConfigCommon setup :
+# pucchGroupHopping
+# 0 = neither, 1= group hopping, 2=sequence hopping
+        pucchGroupHopping                                           = 0;
+        hoppingId                                                   = 40;
+        p0_nominal                                                  = -90;
+# ssb_PositionsInBurs_BitmapPR
+# 1=short, 2=medium, 3=long
+      ssb_PositionsInBurst_PR                                       = 2;
+      ssb_PositionsInBurst_Bitmap                                   = 1;
+
+# ssb_periodicityServingCell
+# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
+      ssb_periodicityServingCell                                    = 2;
+
+# dmrs_TypeA_position
+# 0 = pos2, 1 = pos3
+      dmrs_TypeA_Position                                           = 0;
+
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      subcarrierSpacing                                             = 1;
+
+
+  #tdd-UL-DL-ConfigurationCommon
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      referenceSubcarrierSpacing                                    = 1;
+      # pattern1
+      # dl_UL_TransmissionPeriodicity
+      # 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
+      dl_UL_TransmissionPeriodicity                                 = 6;
+      nrofDownlinkSlots                                             = 7;
+      nrofDownlinkSymbols                                           = 6;
+      nrofUplinkSlots                                               = 2;
+      nrofUplinkSymbols                                             = 4;
+
+      ssPBCH_BlockPower                                             = -25;
+  }
+
+  );
+
+
+    # ------- SCTP definitions
+    SCTP :
+    {
+        # Number of streams to use in input/output
+        SCTP_INSTREAMS  = 2;
+        SCTP_OUTSTREAMS = 2;
+    };
+
+
+    ////////// MME parameters:
+    amf_ip_address      = ( { ipv4       = "192.168.70.132";
+                              ipv6       = "192:168:30::17";
+                              active     = "yes";
+                              preference = "ipv4";
+                            }
+                          );
+
+
+    NETWORK_INTERFACES :
+    {
+        GNB_INTERFACE_NAME_FOR_NG_AMF            = "demo-oai";
+        GNB_IPV4_ADDRESS_FOR_NG_AMF              = "192.168.70.129/24";
+        GNB_INTERFACE_NAME_FOR_NGU               = "demo-oai";
+        GNB_IPV4_ADDRESS_FOR_NGU                 = "192.168.70.129/24";
+        GNB_PORT_FOR_S1U                         = 2152; # Spec 2152
+    };
+
+  }
+);
+
+MACRLCs = (
+    {
+        num_cc                      = 1;
+        tr_s_preference             = "local_L1";
+        tr_n_preference             = "local_RRC";
+        pusch_TargetSNRx10          = 150;
+        pucch_TargetSNRx10          = 200;
+    }
+);
+
+L1s = (
+    {
+	num_cc = 1;
+	tr_n_preference = "local_mac";
+	pusch_proc_threads = 8;
+	prach_dtx_threshold = 120;
+    pucch0_dtx_threshold = 150;
+    ofdm_offset_divisor = 8; #set this to UINT_MAX for offset 0
+    }
+);
+
+RUs = (
+    {
+       local_rf       = "yes"
+         nb_tx          = 4
+         nb_rx          = 4
+         att_tx         = 0
+         att_rx         = 0;
+         bands          = [78];
+         max_pdschReferenceSignalPower = -27;
+         max_rxgain                    = 114;
+         eNB_instances  = [0];
+         #beamforming 1x4 matrix:
+         bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000, 0x00000000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff];
+         clock_src = "internal";
+    }
+);
+
+THREAD_STRUCT = (
+  {
+    #three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
+    parallel_config    = "PARALLEL_SINGLE_THREAD";
+    #two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
+    worker_config      = "WORKER_ENABLE";
+  }
+);
+
+rfsimulator :
+{
+    serveraddr = "server";
+    serverport = "4043";
+    options = (); #("saviq"); or/and "chanmod"
+    modelname = "AWGN";
+    IQfile = "/tmp/rfsimulator.iqs";
+};
+
+security = {
+  # preferred ciphering algorithms
+  # the first one of the list that an UE supports in chosen
+  # valid values: nea0, nea1, nea2, nea3
+  ciphering_algorithms = ( "nea0" );
+
+  # preferred integrity algorithms
+  # the first one of the list that an UE supports in chosen
+  # valid values: nia0, nia1, nia2, nia3
+  integrity_algorithms = ( "nia2", "nia0" );
+
+  # setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
+  # what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
+  drb_ciphering = "yes";
+  drb_integrity = "no";
+};
+
+     log_config :
+     {
+       global_log_level                      ="info";
+       global_log_verbosity                  ="medium";
+       hw_log_level                          ="info";
+       hw_log_verbosity                      ="medium";
+       phy_log_level                         ="info";
+       phy_log_verbosity                     ="medium";
+       mac_log_level                         ="info";
+       mac_log_verbosity                     ="high";
+       rlc_log_level                         ="info";
+       rlc_log_verbosity                     ="medium";
+       pdcp_log_level                        ="info";
+       pdcp_log_verbosity                    ="medium";
+       rrc_log_level                         ="info";
+       rrc_log_verbosity                     ="medium";
+       ngap_log_level                         ="info";
+       ngap_log_verbosity                     ="medium";
+    };
+
diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf
index 451079edf18..c11c6952fa2 100644
--- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf
+++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf
@@ -28,8 +28,9 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
     min_rxtxtime                                              = 2;
+    do_CSIRS                                                  = 1;
+    do_SRS                                                    = 1;
 
      pdcch_ConfigSIB1 = (
       {
@@ -167,6 +168,64 @@ gNBs =
 
   );
 
+# Dedicated Serving Cell Configuration
+servingCellConfigDedicated = ({
+  # BWP-Downlink
+    # BWP 1 Configuration
+      dl_bwp-Id_1 = 1;
+      dl_bwp1_locationAndBandwidth = 28875; // RBstart=0, L=106 (40 MHz BW)
+      # subcarrierSpacing
+      # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      dl_bwp1_subcarrierSpacing = 1;
+
+    # BWP 2 Configuration
+      dl_bwp-Id_2 = 2;
+      dl_bwp2_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW)
+      # subcarrierSpacing
+      # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      dl_bwp2_subcarrierSpacing = 1;
+
+    # BWP 3 Configuration
+      dl_bwp-Id_3 = 3;
+      dl_bwp3_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW)
+      # subcarrierSpacing
+      # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      dl_bwp3_subcarrierSpacing = 1;
+
+    firstActiveDownlinkBWP-Id = 1;  #BWP-Id
+    defaultDownlinkBWP-Id     = 1;  #BWP-Id
+
+    # bwp-InactivityTimer                 ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30,
+    #                                                ms40,ms50, ms60, ms80,ms100, ms200,ms300, ms500,
+    #                                                ms750, ms1280, ms1920, ms2560, spare10, spare9, spare8,
+    #                                                spare7, spare6, spare5, spare4, spare3, spare2, spare1 }
+
+  # UplinkConfig
+    # BWP-Uplink
+      # BWP 1 Configuration
+        ul_bwp-Id_1 = 1;
+        ul_bwp1_locationAndBandwidth = 28875; // RBstart=0, L=106 (40 MHz BW)
+        # subcarrierSpacing
+        # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        ul_bwp1_subcarrierSpacing = 1;
+
+      # BWP 2 Configuration
+        ul_bwp-Id_2 = 2;
+        ul_bwp2_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW)
+        # subcarrierSpacing
+        # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        ul_bwp2_subcarrierSpacing = 1;
+
+      # BWP 3 Configuration
+        ul_bwp-Id_3 = 3;
+        ul_bwp3_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW)
+        # subcarrierSpacing
+        # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        ul_bwp3_subcarrierSpacing = 1;
+
+      firstActiveUplinkBWP-Id = 1;  #BWP-Id
+  }
+);
 
     # ------- SCTP definitions
     SCTP :
@@ -205,13 +264,14 @@ MACRLCs = (
   tr_n_preference             = "local_RRC";
   pusch_TargetSNRx10          = 150;
   pucch_TargetSNRx10          = 200;
+  ul_prbblack_SNR_threshold   = 10;
   ulsch_max_frame_inactivity  = 0;
 }
 );
 
 prs_config = (
 {
-   NumPRSResources = 2;
+   NumPRSResources = 1;
    PRSResourceSetPeriod = [20, 2];
    SymbolStart = [7, 7];
    NumPRSSymbols = [6, 6];
diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.sabox.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.sabox.conf
index 8ca0c088769..6719a5534d4 100644
--- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.sabox.conf
+++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.sabox.conf
@@ -30,7 +30,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
 
      pdcch_ConfigSIB1 = (
       {
diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.162PRB.2x2.usrpn300.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.162PRB.2x2.usrpn300.conf
index b8d71015c17..5f8bf452321 100644
--- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.162PRB.2x2.usrpn300.conf
+++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.162PRB.2x2.usrpn300.conf
@@ -21,17 +21,17 @@ gNBs =
                       sd  = 0x1; // 0 false, else true
                     }
                   );
-
                   });
 
     nr_cellid = 12345678L;
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
-    pdsch_AntennaPorts_N1                                     = 1;
-    pusch_AntennaPorts                                        = 2;
-    ul_prbblacklist                                           = "79,80,81,82"
+    pdsch_AntennaPorts_XP = 1;
+    pusch_AntennaPorts    = 2;
+    do_CSIRS              = 0;
+    ul_prbblacklist       = "79,80,81,82"
+
     pdcch_ConfigSIB1 = (
       {
         controlResourceSetZero = 12;
@@ -66,21 +66,8 @@ gNBs =
 # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
         initialDLBWPsubcarrierSpacing                                           = 1;
       #pdcch-ConfigCommon
-        initialDLBWPcontrolResourceSetZero                                      = 11;
+        initialDLBWPcontrolResourceSetZero                                      = 12;
         initialDLBWPsearchSpaceZero                                             = 10;
-      #pdsch-ConfigCommon
-        #pdschTimeDomainAllocationList (up to 16 entries)
-             initialDLBWPk0_0                    = 0;
-             #initialULBWPmappingType
-	          #0=typeA,1=typeB
-             initialDLBWPmappingType_0           = 0;
-             #this is SS=1,L=13
-             initialDLBWPstartSymbolAndLength_0  = 40;
-
-             initialDLBWPk0_1                    = 0;
-             initialDLBWPmappingType_1           = 0;
-             #this is SS=1,L=5
-             initialDLBWPstartSymbolAndLength_1  = 57;
 
   #uplinkConfigCommon
      #frequencyInfoUL
@@ -135,22 +122,6 @@ gNBs =
 # 0=unrestricted, 1=restricted type A, 2=restricted type B
         restrictedSetConfig                                         = 0,
 
-      # pusch-ConfigCommon (up to 16 elements)
-        initialULBWPk2_0                      = 2;
-        initialULBWPmappingType_0             = 1
-        # this is SS=2 L=13
-        initialULBWPstartSymbolAndLength_0    = 41;
-
-        initialULBWPk2_1                      = 2;
-        initialULBWPmappingType_1             = 1;
-        # this is SS=0 L=4
-        initialULBWPstartSymbolAndLength_1    = 52;
-
-        initialULBWPk2_2                      = 7;
-        initialULBWPmappingType_2             = 1;
-        # this is SS=10 L=4
-        initialULBWPstartSymbolAndLength_2    = 52;
-
         msg3_DeltaPreamble                                          = 1;
         p0_NominalWithGrant                                         =-90;
 
@@ -243,16 +214,16 @@ L1s = (
   num_cc = 1;
   tr_n_preference = "local_mac";
   prach_dtx_threshold = 120;
-  pucch0_dtx_threshold = 100;
+  pucch0_dtx_threshold = 80;
 }
 );
 
 RUs = (
 {
   local_rf       = "yes"
-  nb_tx          = 2
-  nb_rx          = 2
-  att_tx         = 0
+  nb_tx          = 2;
+  nb_rx          = 2;
+  att_tx         = 0;
   att_rx         = 0;
   bands          = [78];
   max_pdschReferenceSignalPower = -27;
diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.217PRB.2x2.usrpn300.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.217PRB.2x2.usrpn300.conf
new file mode 100644
index 00000000000..1f1f64ce3ff
--- /dev/null
+++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.217PRB.2x2.usrpn300.conf
@@ -0,0 +1,320 @@
+Active_gNBs = ( "gNB-OAI");
+# Asn1_verbosity, choice in: none, info, annoying
+Asn1_verbosity = "none";
+
+gNBs =
+(
+ {
+    ////////// Identification parameters:
+    gNB_ID    =  0xe00;
+    gNB_name  =  "gNB-OAI";
+
+    // Tracking area code, 0x0000 and 0xfffe are reserved values
+    tracking_area_code  =  1;
+    plmn_list = ({
+                  mcc = 208;
+                  mnc = 99;
+                  mnc_length = 2;
+                  snssaiList = (
+                    {
+                      sst = 1;
+                      sd  = 0x1; // 0 false, else true
+                    }
+                  );
+                  });
+
+    nr_cellid = 12345678L;
+
+    ////////// Physical parameters:
+
+    pdsch_AntennaPorts_XP = 1;
+    pusch_AntennaPorts    = 2;
+    do_CSIRS              = 0;
+    ul_prbblacklist       = "107,108,109,110"
+
+    pdcch_ConfigSIB1 = (
+      {
+        controlResourceSetZero = 12;
+        searchSpaceZero = 10;
+      }
+    );
+
+    servingCellConfigCommon = (
+    {
+ #spCellConfigCommon
+
+      physCellId                                                    = 0;
+
+#  downlinkConfigCommon
+    #frequencyInfoDL
+      # this is 3300.24 + 106*12*30e3 = 3338.40 MHz (5G NR GSCN: 7734)
+      absoluteFrequencySSB                                          = 622560;
+      dl_frequencyBand                                              = 78;
+      # this is 3300.24 MHz
+      dl_absoluteFrequencyPointA                                    = 620016;
+      #scs-SpecificCarrierList
+        dl_offstToCarrier                                           = 0;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        dl_subcarrierSpacing                                        = 1;
+        dl_carrierBandwidth                                         = 217;
+     #initialDownlinkBWP
+      #genericParameters
+       # this is RBstart=0,L=162 (275*(275-L+1))+(274-RBstart))
+       initialDLBWPlocationAndBandwidth                             = 31624;
+       #
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        initialDLBWPsubcarrierSpacing                               = 1;
+      #pdcch-ConfigCommon
+        initialDLBWPcontrolResourceSetZero                          = 12;
+        initialDLBWPsearchSpaceZero                                 = 10;
+
+  #uplinkConfigCommon
+     #frequencyInfoUL
+      ul_frequencyBand                                              = 78;
+      #scs-SpecificCarrierList
+      ul_offstToCarrier                                             = 0;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      ul_subcarrierSpacing                                          = 1;
+      ul_carrierBandwidth                                           = 217;
+      pMax                                                          = 20;
+     #initialUplinkBWP
+      #genericParameters
+        initialULBWPlocationAndBandwidth                            = 31624;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        initialULBWPsubcarrierSpacing                               = 1;
+      #rach-ConfigCommon
+        #rach-ConfigGeneric
+          prach_ConfigurationIndex                                  = 98;
+#prach_msg1_FDM
+#0 = one, 1=two, 2=four, 3=eight
+          prach_msg1_FDM                                            = 0;
+          prach_msg1_FrequencyStart                                 = 0;
+          zeroCorrelationZoneConfig                                 = 12;
+          preambleReceivedTargetPower                               = -96;
+#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
+          preambleTransMax                                          = 6;
+#powerRampingStep
+# 0=dB0,1=dB2,2=dB4,3=dB6
+        powerRampingStep                                            = 1;
+#ra_ReponseWindow
+#1,2,4,8,10,20,40,80
+        ra_ResponseWindow                                           = 4;
+#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
+#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
+        ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR                = 3;
+#oneHalf (0..15) 4,8,12,16,...60,64
+        ssb_perRACH_OccasionAndCB_PreamblesPerSSB                   = 15;
+#ra_ContentionResolutionTimer
+#(0..7) 8,16,24,32,40,48,56,64
+        ra_ContentionResolutionTimer                                = 7;
+        rsrp_ThresholdSSB                                           = 19;
+#prach-RootSequenceIndex_PR
+#1 = 839, 2 = 139
+        prach_RootSequenceIndex_PR                                  = 2;
+        prach_RootSequenceIndex                                     = 1;
+        # SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
+        #
+        msg1_SubcarrierSpacing                                      = 1,
+# restrictedSetConfig
+# 0=unrestricted, 1=restricted type A, 2=restricted type B
+        restrictedSetConfig                                         = 0,
+
+        msg3_DeltaPreamble                                          = 1;
+        p0_NominalWithGrant                                         =-90;
+
+# pucch-ConfigCommon setup :
+# pucchGroupHopping
+# 0 = neither, 1= group hopping, 2=sequence hopping
+        pucchGroupHopping                                           = 0;
+        hoppingId                                                   = 40;
+        p0_nominal                                                  = -70;
+# ssb_PositionsInBurs_BitmapPR
+# 1=short, 2=medium, 3=long
+      ssb_PositionsInBurst_PR                                       = 2;
+      ssb_PositionsInBurst_Bitmap                                   = 1;
+
+# ssb_periodicityServingCell
+# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
+      ssb_periodicityServingCell                                    = 2;
+
+# dmrs_TypeA_position
+# 0 = pos2, 1 = pos3
+      dmrs_TypeA_Position                                           = 0;
+
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      subcarrierSpacing                                             = 1;
+
+
+  #tdd-UL-DL-ConfigurationCommon
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      referenceSubcarrierSpacing                                    = 1;
+      # pattern1
+      # dl_UL_TransmissionPeriodicity
+      # 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
+      dl_UL_TransmissionPeriodicity                                 = 6;
+      nrofDownlinkSlots                                             = 7;
+      nrofDownlinkSymbols                                           = 6;
+      nrofUplinkSlots                                               = 2;
+      nrofUplinkSymbols                                             = 4;
+
+  ssPBCH_BlockPower                                                 = -25;
+  }
+
+  );
+
+
+# Dedicated Serving Cell Configuration
+servingCellConfigDedicated = ({
+  # BWP-Downlink
+    # BWP 1 Configuration
+      dl_bwp-Id_1 = 1;
+      dl_bwp1_locationAndBandwidth = 16499; // RBstart=0, L=217 (80 MHz BW)
+      # subcarrierSpacing
+      # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      dl_bwp1_subcarrierSpacing = 1;
+
+    firstActiveDownlinkBWP-Id = 1;  #BWP-Id
+    defaultDownlinkBWP-Id     = 1;  #BWP-Id
+
+    # bwp-InactivityTimer                 ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30,
+    #                                                ms40,ms50, ms60, ms80,ms100, ms200,ms300, ms500,
+    #                                                ms750, ms1280, ms1920, ms2560, spare10, spare9, spare8,
+    #                                                spare7, spare6, spare5, spare4, spare3, spare2, spare1 }
+
+  # UplinkConfig
+    # BWP-Uplink
+      # BWP 1 Configuration
+        ul_bwp-Id_1 = 1;
+        ul_bwp1_locationAndBandwidth = 16499; // RBstart=0, L=217 (80 MHz BW)
+        # subcarrierSpacing
+        # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        ul_bwp1_subcarrierSpacing = 1;
+
+      firstActiveUplinkBWP-Id = 1;  #BWP-Id
+  }
+);
+
+
+
+    # ------- SCTP definitions
+    SCTP :
+    {
+        # Number of streams to use in input/output
+        SCTP_INSTREAMS  = 2;
+        SCTP_OUTSTREAMS = 2;
+    };
+
+
+    ////////// AMF parameters:
+    amf_ip_address      = ( { ipv4       = "192.168.70.132";
+                              ipv6       = "192:168:30::17";
+                              active     = "yes";
+                              preference = "ipv4";
+                            }
+                          );
+
+
+    NETWORK_INTERFACES :
+    {
+        GNB_INTERFACE_NAME_FOR_NG_AMF            = "demo-oai";
+        GNB_IPV4_ADDRESS_FOR_NG_AMF              = "192.168.70.129/24";
+        GNB_INTERFACE_NAME_FOR_NGU               = "demo-oai";
+        GNB_IPV4_ADDRESS_FOR_NGU                 = "192.168.70.129/24";
+        GNB_PORT_FOR_S1U                         = 2152; # Spec 2152
+    };
+
+  }
+);
+
+MACRLCs = (
+{
+  num_cc                      = 1;
+  tr_s_preference             = "local_L1";
+  tr_n_preference             = "local_RRC";
+  pusch_TargetSNRx10          = 150;
+  pucch_TargetSNRx10          = 200;
+  pusch_FailureThres          = 1000;
+  ulsch_max_frame_inactivity  = 0;
+}
+);
+
+L1s = (
+{
+  num_cc = 1;
+  tr_n_preference = "local_mac";
+  prach_dtx_threshold = 120;
+  pucch0_dtx_threshold = 80;
+}
+);
+
+RUs = (
+{
+  local_rf       = "yes"
+  nb_tx          = 2;
+  nb_rx          = 2;
+  att_tx         = 0;
+  att_rx         = 0;
+  bands          = [78];
+  max_pdschReferenceSignalPower = -27;
+  max_rxgain                    = 75;
+  eNB_instances  = [0];
+  ##beamforming 1x2 matrix: 1 layer x 2 antennas
+  bf_weights = [0x00007fff, 0x0000];
+  #clock_src = "internal";
+  sdr_addrs = "mgmt_addr=192.168.10.2,addr=192.168.10.2,clock_source=internal,time_source=internal"
+}
+);
+
+THREAD_STRUCT = (
+{
+  #three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
+  parallel_config    = "PARALLEL_SINGLE_THREAD";
+  #two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
+  worker_config      = "WORKER_ENABLE";
+}
+);
+
+rfsimulator :
+{
+  serveraddr = "server";
+  serverport = "4043";
+  options = (); #("saviq"); or/and "chanmod"
+  modelname = "AWGN";
+  IQfile = "/tmp/rfsimulator.iqs";
+};
+
+security = {
+  # preferred ciphering algorithms
+  # the first one of the list that an UE supports in chosen
+  # valid values: nea0, nea1, nea2, nea3
+  ciphering_algorithms = ( "nea0" );
+
+  # preferred integrity algorithms
+  # the first one of the list that an UE supports in chosen
+  # valid values: nia0, nia1, nia2, nia3
+  integrity_algorithms = ( "nia2", "nia0" );
+
+  # setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
+  # what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
+  drb_ciphering = "yes";
+  drb_integrity = "no";
+};
+
+log_config :
+{
+  global_log_level                      ="info";
+  hw_log_level                          ="info";
+  phy_log_level                         ="info";
+  mac_log_level                         ="info";
+  rlc_log_level                         ="info";
+  pdcp_log_level                        ="info";
+  rrc_log_level                         ="info";
+  ngap_log_level                        ="debug";
+  f1ap_log_level                        ="debug";
+};
diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.24PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.24PRB.usrpb210.conf
index bd3076a014c..ad1471339a2 100644
--- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.24PRB.usrpb210.conf
+++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.24PRB.usrpb210.conf
@@ -32,9 +32,6 @@ gNBs =
 
     ////////// Physical parameters:
 
-    ssb_SubcarrierOffset                                      = 0;
-    pdsch_AntennaPorts                                        = 1;
-    pusch_AntennaPorts                                        = 1;
     sib1_tda                                                  = 15;
     min_rxtxtime = 6;
 
diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.273PRB.2x2.usrpn300.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.273PRB.2x2.usrpn300.conf
new file mode 100644
index 00000000000..24090bef85b
--- /dev/null
+++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.273PRB.2x2.usrpn300.conf
@@ -0,0 +1,320 @@
+Active_gNBs = ( "gNB-OAI");
+# Asn1_verbosity, choice in: none, info, annoying
+Asn1_verbosity = "none";
+
+gNBs =
+(
+ {
+    ////////// Identification parameters:
+    gNB_ID    =  0xe00;
+    gNB_name  =  "gNB-OAI";
+
+    // Tracking area code, 0x0000 and 0xfffe are reserved values
+    tracking_area_code  =  1;
+    plmn_list = ({
+                  mcc = 208;
+                  mnc = 99;
+                  mnc_length = 2;
+                  snssaiList = (
+                    {
+                      sst = 1;
+                      sd  = 0x1; // 0 false, else true
+                    }
+                  );
+                  });
+
+    nr_cellid = 12345678L;
+
+    ////////// Physical parameters:
+
+    pdsch_AntennaPorts_XP = 1;
+    pusch_AntennaPorts    = 2;
+    do_CSIRS              = 0;
+    ul_prbblacklist       = "135,136,137,138"
+
+    pdcch_ConfigSIB1 = (
+      {
+        controlResourceSetZero = 12;
+        searchSpaceZero = 10;
+      }
+    );
+
+    servingCellConfigCommon = (
+    {
+ #spCellConfigCommon
+
+      physCellId                                                    = 0;
+
+#  downlinkConfigCommon
+    #frequencyInfoDL
+      # this is 3300.24 + 134*12*30e3 = 3348.48 MHz (5G NR GSCN: 7741)
+      absoluteFrequencySSB                                          = 623232;
+      dl_frequencyBand                                              = 78;
+      # this is 3300.24 MHz
+      dl_absoluteFrequencyPointA                                    = 620016;
+      #scs-SpecificCarrierList
+        dl_offstToCarrier                                           = 0;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        dl_subcarrierSpacing                                        = 1;
+        dl_carrierBandwidth                                         = 273;
+     #initialDownlinkBWP
+      #genericParameters
+       # this is RBstart=0,L=162 (275*(275-L+1))+(274-RBstart))
+       initialDLBWPlocationAndBandwidth                             = 31624;
+       #
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        initialDLBWPsubcarrierSpacing                               = 1;
+      #pdcch-ConfigCommon
+        initialDLBWPcontrolResourceSetZero                          = 12;
+        initialDLBWPsearchSpaceZero                                 = 10;
+
+  #uplinkConfigCommon
+     #frequencyInfoUL
+      ul_frequencyBand                                              = 78;
+      #scs-SpecificCarrierList
+      ul_offstToCarrier                                             = 0;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      ul_subcarrierSpacing                                          = 1;
+      ul_carrierBandwidth                                           = 273;
+      pMax                                                          = 20;
+     #initialUplinkBWP
+      #genericParameters
+        initialULBWPlocationAndBandwidth                            = 31624;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        initialULBWPsubcarrierSpacing                               = 1;
+      #rach-ConfigCommon
+        #rach-ConfigGeneric
+          prach_ConfigurationIndex                                  = 98;
+#prach_msg1_FDM
+#0 = one, 1=two, 2=four, 3=eight
+          prach_msg1_FDM                                            = 0;
+          prach_msg1_FrequencyStart                                 = 0;
+          zeroCorrelationZoneConfig                                 = 12;
+          preambleReceivedTargetPower                               = -90;
+#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
+          preambleTransMax                                          = 6;
+#powerRampingStep
+# 0=dB0,1=dB2,2=dB4,3=dB6
+        powerRampingStep                                            = 1;
+#ra_ReponseWindow
+#1,2,4,8,10,20,40,80
+        ra_ResponseWindow                                           = 4;
+#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
+#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
+        ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR                = 3;
+#oneHalf (0..15) 4,8,12,16,...60,64
+        ssb_perRACH_OccasionAndCB_PreamblesPerSSB                   = 15;
+#ra_ContentionResolutionTimer
+#(0..7) 8,16,24,32,40,48,56,64
+        ra_ContentionResolutionTimer                                = 7;
+        rsrp_ThresholdSSB                                           = 19;
+#prach-RootSequenceIndex_PR
+#1 = 839, 2 = 139
+        prach_RootSequenceIndex_PR                                  = 2;
+        prach_RootSequenceIndex                                     = 1;
+        # SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
+        #
+        msg1_SubcarrierSpacing                                      = 1,
+# restrictedSetConfig
+# 0=unrestricted, 1=restricted type A, 2=restricted type B
+        restrictedSetConfig                                         = 0,
+
+        msg3_DeltaPreamble                                          = 1;
+        p0_NominalWithGrant                                         =-90;
+
+# pucch-ConfigCommon setup :
+# pucchGroupHopping
+# 0 = neither, 1= group hopping, 2=sequence hopping
+        pucchGroupHopping                                           = 0;
+        hoppingId                                                   = 40;
+        p0_nominal                                                  = -70;
+# ssb_PositionsInBurs_BitmapPR
+# 1=short, 2=medium, 3=long
+      ssb_PositionsInBurst_PR                                       = 2;
+      ssb_PositionsInBurst_Bitmap                                   = 1;
+
+# ssb_periodicityServingCell
+# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
+      ssb_periodicityServingCell                                    = 2;
+
+# dmrs_TypeA_position
+# 0 = pos2, 1 = pos3
+      dmrs_TypeA_Position                                           = 0;
+
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      subcarrierSpacing                                             = 1;
+
+
+  #tdd-UL-DL-ConfigurationCommon
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      referenceSubcarrierSpacing                                    = 1;
+      # pattern1
+      # dl_UL_TransmissionPeriodicity
+      # 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
+      dl_UL_TransmissionPeriodicity                                 = 6;
+      nrofDownlinkSlots                                             = 7;
+      nrofDownlinkSymbols                                           = 6;
+      nrofUplinkSlots                                               = 2;
+      nrofUplinkSymbols                                             = 4;
+
+  ssPBCH_BlockPower                                                 = -25;
+  }
+
+  );
+
+
+# Dedicated Serving Cell Configuration
+servingCellConfigDedicated = ({
+  # BWP-Downlink
+    # BWP 1 Configuration
+      dl_bwp-Id_1 = 1;
+      dl_bwp1_locationAndBandwidth = 1099; // RBstart=0, L=273 (100 MHz BW)
+      # subcarrierSpacing
+      # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+      dl_bwp1_subcarrierSpacing = 1;
+
+    firstActiveDownlinkBWP-Id = 1;  #BWP-Id
+    defaultDownlinkBWP-Id     = 1;  #BWP-Id
+
+    # bwp-InactivityTimer                 ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30,
+    #                                                ms40,ms50, ms60, ms80,ms100, ms200,ms300, ms500,
+    #                                                ms750, ms1280, ms1920, ms2560, spare10, spare9, spare8,
+    #                                                spare7, spare6, spare5, spare4, spare3, spare2, spare1 }
+
+  # UplinkConfig
+    # BWP-Uplink
+      # BWP 1 Configuration
+        ul_bwp-Id_1 = 1;
+        ul_bwp1_locationAndBandwidth = 1099; // RBstart=0, L=273 (100 MHz BW)
+        # subcarrierSpacing
+        # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        ul_bwp1_subcarrierSpacing = 1;
+
+      firstActiveUplinkBWP-Id = 1;  #BWP-Id
+  }
+);
+
+
+
+    # ------- SCTP definitions
+    SCTP :
+    {
+        # Number of streams to use in input/output
+        SCTP_INSTREAMS  = 2;
+        SCTP_OUTSTREAMS = 2;
+    };
+
+
+    ////////// AMF parameters:
+    amf_ip_address      = ( { ipv4       = "192.168.70.132";
+                              ipv6       = "192:168:30::17";
+                              active     = "yes";
+                              preference = "ipv4";
+                            }
+                          );
+
+
+    NETWORK_INTERFACES :
+    {
+        GNB_INTERFACE_NAME_FOR_NG_AMF            = "demo-oai";
+        GNB_IPV4_ADDRESS_FOR_NG_AMF              = "192.168.70.129/24";
+        GNB_INTERFACE_NAME_FOR_NGU               = "demo-oai";
+        GNB_IPV4_ADDRESS_FOR_NGU                 = "192.168.70.129/24";
+        GNB_PORT_FOR_S1U                         = 2152; # Spec 2152
+    };
+
+  }
+);
+
+MACRLCs = (
+{
+  num_cc                      = 1;
+  tr_s_preference             = "local_L1";
+  tr_n_preference             = "local_RRC";
+  pusch_TargetSNRx10          = 150;
+  pucch_TargetSNRx10          = 200;
+  pusch_FailureThres          = 1000;
+  ulsch_max_frame_inactivity  = 0;
+}
+);
+
+L1s = (
+{
+  num_cc = 1;
+  tr_n_preference = "local_mac";
+  prach_dtx_threshold = 120;
+  pucch0_dtx_threshold = 80;
+}
+);
+
+RUs = (
+{
+  local_rf       = "yes"
+  nb_tx          = 2;
+  nb_rx          = 2;
+  att_tx         = 0;
+  att_rx         = 0;
+  bands          = [78];
+  max_pdschReferenceSignalPower = -27;
+  max_rxgain                    = 75;
+  eNB_instances  = [0];
+  ##beamforming 1x2 matrix: 1 layer x 2 antennas
+  bf_weights = [0x00007fff, 0x0000];
+  #clock_src = "internal";
+  sdr_addrs = "mgmt_addr=192.168.10.2,addr=192.168.10.2,clock_source=internal,time_source=internal"
+}
+);
+
+THREAD_STRUCT = (
+{
+  #three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
+  parallel_config    = "PARALLEL_SINGLE_THREAD";
+  #two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
+  worker_config      = "WORKER_ENABLE";
+}
+);
+
+rfsimulator :
+{
+  serveraddr = "server";
+  serverport = "4043";
+  options = (); #("saviq"); or/and "chanmod"
+  modelname = "AWGN";
+  IQfile = "/tmp/rfsimulator.iqs";
+};
+
+security = {
+  # preferred ciphering algorithms
+  # the first one of the list that an UE supports in chosen
+  # valid values: nea0, nea1, nea2, nea3
+  ciphering_algorithms = ( "nea0" );
+
+  # preferred integrity algorithms
+  # the first one of the list that an UE supports in chosen
+  # valid values: nia0, nia1, nia2, nia3
+  integrity_algorithms = ( "nia2", "nia0" );
+
+  # setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
+  # what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
+  drb_ciphering = "yes";
+  drb_integrity = "no";
+};
+
+log_config :
+{
+  global_log_level                      ="info";
+  hw_log_level                          ="info";
+  phy_log_level                         ="info";
+  mac_log_level                         ="info";
+  rlc_log_level                         ="info";
+  pdcp_log_level                        ="info";
+  rrc_log_level                         ="info";
+  ngap_log_level                        ="debug";
+  f1ap_log_level                        ="debug";
+};
diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/ue_nr_prs.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/ue_nr_prs.conf
index 044f5c6feb3..c94bb292a2d 100644
--- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/ue_nr_prs.conf
+++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/ue_nr_prs.conf
@@ -5,18 +5,18 @@ PRSs =
     prs_config0 = (
     {
       gNB_id = 0;
-      NumPRSResources = 2;
-      PRSResourceSetPeriod = [20, 5];
-      SymbolStart = [7, 8];
-      NumPRSSymbols = [5, 5];
+      NumPRSResources = 1;
+      PRSResourceSetPeriod = [20, 2];
+      SymbolStart = [7, 7];
+      NumPRSSymbols = [6, 6];
       NumRB = 106;
       RBOffset = 0;
       CombSize = 4;
       REOffset = [0, 1];
-      PRSResourceOffset = [0, 1];
-      PRSResourceRepetition = 1;
+      PRSResourceOffset = [0, 0];
+      PRSResourceRepetition = 2;
       PRSResourceTimeGap = 1;
-      NPRS_ID = [0, 5];
+      NPRS_ID = [10, 5];
       MutingPattern1 = [];
       MutingPattern2 = [];
       MutingBitRepetition = 1;
diff --git a/targets/RT/USER/lte-enb.c b/targets/RT/USER/lte-enb.c
index 49f7db28673..3d62d5c19ad 100644
--- a/targets/RT/USER/lte-enb.c
+++ b/targets/RT/USER/lte-enb.c
@@ -231,9 +231,9 @@ static inline int rxtx(PHY_VARS_eNB *eNB,
     dlsch_ue_select_tbl_in_use = !dlsch_ue_select_tbl_in_use;
     // L2-emulator can work only one eNB.
     //      memcpy(&pre_scd_eNB_UE_stats,&RC.mac[ru->eNB_list[0]->Mod_id]->UE_info.eNB_UE_stats, sizeof(eNB_UE_STATS)*MAX_NUM_CCs*NUMBER_OF_UE_MAX);
-    //      memcpy(&pre_scd_activeUE, &RC.mac[ru->eNB_list[0]->Mod_id]->UE_info.active, sizeof(boolean_t)*NUMBER_OF_UE_MAX);
+    //      memcpy(&pre_scd_activeUE, &RC.mac[ru->eNB_list[0]->Mod_id]->UE_info.active, sizeof(bool)*NUMBER_OF_UE_MAX);
     memcpy(&pre_scd_eNB_UE_stats,&RC.mac[0]->UE_info.eNB_UE_stats, sizeof(eNB_UE_STATS)*MAX_NUM_CCs*NUMBER_OF_UE_MAX);
-    memcpy(&pre_scd_activeUE, &RC.mac[0]->UE_info.active, sizeof(boolean_t)*NUMBER_OF_UE_MAX);
+    memcpy(&pre_scd_activeUE, &RC.mac[0]->UE_info.active, sizeof(bool)*NUMBER_OF_UE_MAX);
     AssertFatal((ret= pthread_mutex_lock(&ru->proc.mutex_pre_scd))==0,"[eNB] error locking proc mutex for eNB pre scd, return %d\n",ret);
     ru->proc.instance_pre_scd++;
 
@@ -1135,7 +1135,7 @@ void init_transport(PHY_VARS_eNB *eNB) {
     }
     for (int i=0;i<NUMBER_OF_ULSCH_MAX; i++) {
 
-      LOG_I(PHY,"Allocating Transport Channel Buffer for ULSCH %d/%d\n",i,NUMBER_OF_ULSCH_MAX);
+      LOG_I(PHY,"Allocating Transport Channel Buffers for ULSCH %d/%d\n",i,NUMBER_OF_ULSCH_MAX);
       eNB->ulsch[i] = new_eNB_ulsch(MAX_TURBO_ITERATIONS,fp->N_RB_UL, 0);
 
       if (!eNB->ulsch[i]) {
diff --git a/targets/RT/USER/lte-ru.c b/targets/RT/USER/lte-ru.c
index 571551cee9a..1d464cb90c4 100644
--- a/targets/RT/USER/lte-ru.c
+++ b/targets/RT/USER/lte-ru.c
@@ -89,7 +89,7 @@ void prach_procedures(PHY_VARS_eNB *eNB,int br_flag);
 
 void stop_RU(RU_t **rup,int nb_ru);
 
-void do_ru_synch(RU_t *ru);
+static void do_ru_synch(RU_t *ru);
 
 void configure_ru(int idx,
                   void *arg);
@@ -1059,7 +1059,7 @@ int wakeup_synch(RU_t *ru) {
 }
 
 
-void do_ru_synch(RU_t *ru) {
+static void do_ru_synch(RU_t *ru) {
   LTE_DL_FRAME_PARMS *fp  = ru->frame_parms;
   RU_proc_t *proc         = &ru->proc;
   int rxs, ic, ret, i;
@@ -1371,11 +1371,12 @@ void fill_rf_config(RU_t *ru,
     cfg->tx_gain[i] = (double)ru->att_tx;
     cfg->rx_gain[i] = ru->max_rxgain-(double)ru->att_rx;
     cfg->configFilename = rf_config_file;
-    LOG_I(PHY,"channel %d, Setting tx_gain offset %f, rx_gain offset %f, tx_freq %f, rx_freq %f\n",
+    LOG_I(PHY,"channel %d, Setting tx_gain offset %.0f, rx_gain offset %.0f, tx_freq %.0f, rx_freq %.0f, tune_offset %.0f Hz\n",
            i, cfg->tx_gain[i],
            cfg->rx_gain[i],
            cfg->tx_freq[i],
-           cfg->rx_freq[i]);
+           cfg->rx_freq[i],
+           cfg->tune_offset);
   }
 }
 
@@ -1833,7 +1834,7 @@ static void *ru_thread( void *param ) {
         new_dlsch_ue_select_tbl_in_use = dlsch_ue_select_tbl_in_use;
         dlsch_ue_select_tbl_in_use = !dlsch_ue_select_tbl_in_use;
         memcpy(&pre_scd_eNB_UE_stats,&RC.mac[ru->eNB_list[0]->Mod_id]->UE_info.eNB_UE_stats, sizeof(eNB_UE_STATS)*MAX_NUM_CCs*NUMBER_OF_UE_MAX);
-        memcpy(&pre_scd_activeUE, &RC.mac[ru->eNB_list[0]->Mod_id]->UE_info.active, sizeof(boolean_t)*NUMBER_OF_UE_MAX);
+        memcpy(&pre_scd_activeUE, &RC.mac[ru->eNB_list[0]->Mod_id]->UE_info.active, sizeof(bool)*NUMBER_OF_UE_MAX);
         AssertFatal((ret=pthread_mutex_lock(&ru->proc.mutex_pre_scd))==0,"[eNB] error locking proc mutex for eNB pre scd\n");
         ru->proc.instance_pre_scd++;
 
@@ -1923,7 +1924,7 @@ static void *ru_thread( void *param ) {
 
 
 // This thread run the initial synchronization like a UE
-void *ru_thread_synch(void *arg) {
+static void *ru_thread_synch(void *arg) {
   RU_t *ru = (RU_t *)arg;
   __attribute__((unused))
   LTE_DL_FRAME_PARMS *fp = ru->frame_parms;
@@ -2972,6 +2973,8 @@ RU_t **RCconfig_RU(int nb_RU,int nb_L1_inst,PHY_VARS_eNB ***eNB,uint64_t *ru_mas
 	ru[j]->openair0_cfg.time_source = unset;
       }      
 
+      ru[j]->openair0_cfg.tune_offset = get_softmodem_params()->tune_offset;
+
       LOG_I(PHY,"RU %d is_slave=%s\n",j,*(RUParamList.paramarray[j][RU_IS_SLAVE_IDX].strptr));
 
       if (strcmp(*(RUParamList.paramarray[j][RU_IS_SLAVE_IDX].strptr), "yes") == 0) ru[j]->is_slave=1;
diff --git a/targets/RT/USER/lte-softmodem.h b/targets/RT/USER/lte-softmodem.h
index 1c887dd3c8e..38b71238b82 100644
--- a/targets/RT/USER/lte-softmodem.h
+++ b/targets/RT/USER/lte-softmodem.h
@@ -29,6 +29,7 @@
 #include "flexran_agent.h"
 #include "s1ap_eNB.h"
 #include "SIMULATION/ETH_TRANSPORT/proto.h"
+#include "targets/ARCH/COMMON/common_lib.h"
 #include "executables/softmodem-common.h"
 
 
@@ -213,5 +214,19 @@ extern void init_UE_standalone_thread(int ue_idx);
 extern PHY_VARS_UE *init_ue_vars(LTE_DL_FRAME_PARMS *frame_parms, uint8_t UE_id, uint8_t abstraction_flag);
 
 extern void init_bler_table(void);
-
+void feptx_ofdm_2thread(RU_t *ru,
+                        int frame,
+                        int subframe);
+void* ru_thread_control( void* param );
+void wait_eNBs(void);
+void kill_feptx_thread(RU_t *ru);
+void init_fep_thread(RU_t *ru, pthread_attr_t *attr_fep);
+void init_feptx_thread(RU_t *ru, pthread_attr_t *attr_feptx);
+void fep_full(RU_t *ru, int subframe);
+void configure_ru(int, void *arg);
+void configure_rru(int, void *arg);
+void ru_fep_full_2thread(RU_t *ru,int subframe);
+void feptx_ofdm(RU_t*ru, int frame_tx, int tti_tx);
+void feptx_prec(struct RU_t_s *ru, int frame_tx, int tti_tx);
+void fill_rf_config(RU_t *ru, char *rf_config_file);
 #endif
diff --git a/targets/RT/USER/lte-uesoftmodem.c b/targets/RT/USER/lte-uesoftmodem.c
index 089941c7dfc..05602b63da6 100644
--- a/targets/RT/USER/lte-uesoftmodem.c
+++ b/targets/RT/USER/lte-uesoftmodem.c
@@ -176,7 +176,6 @@ extern char uecap_xer[1024];
 char uecap_xer_in=0;
 
 int oaisim_flag=0;
-//threads_t threads= {-1,-1,-1,-1,-1,-1,-1,-1};
 
 /* see file openair2/LAYER2/MAC/main.c for why abstraction_flag is needed
  * this is very hackish - find a proper solution
@@ -446,6 +445,7 @@ void init_openair0(LTE_DL_FRAME_PARMS *frame_parms,int rxgain) {
     openair0_cfg[card].num_rb_dl=frame_parms->N_RB_DL;
     openair0_cfg[card].clock_source = get_softmodem_params()->clock_source;
     openair0_cfg[card].time_source = get_softmodem_params()->timing_source;
+    openair0_cfg[card].tune_offset = get_softmodem_params()->tune_offset;
     openair0_cfg[card].tx_num_channels=min(2,frame_parms->nb_antennas_tx);
     openair0_cfg[card].rx_num_channels=min(2,frame_parms->nb_antennas_rx);
 
@@ -464,11 +464,12 @@ void init_openair0(LTE_DL_FRAME_PARMS *frame_parms,int rxgain) {
       openair0_cfg[card].tx_gain[i] = tx_gain[0][i];
       openair0_cfg[card].rx_gain[i] = rxgain - rx_gain_off;
       openair0_cfg[card].configFilename = get_softmodem_params()->rf_config_file;
-      printf("Card %d, channel %d, Setting tx_gain %f, rx_gain %f, tx_freq %f, rx_freq %f\n",
+      printf("Card %d, channel %d, Setting tx_gain %.0f, rx_gain %.0f, tx_freq %.0f, rx_freq %.0f, tune_offset %.0f\n",
              card,i, openair0_cfg[card].tx_gain[i],
              openair0_cfg[card].rx_gain[i],
              openair0_cfg[card].tx_freq[i],
-             openair0_cfg[card].rx_freq[i]);
+             openair0_cfg[card].rx_freq[i],
+             openair0_cfg[card].tune_offset);
     }
 
     if (usrp_args) openair0_cfg[card].sdr_addrs = usrp_args;
diff --git a/targets/TEST/PDCP/test_pdcp.c b/targets/TEST/PDCP/test_pdcp.c
index b62edf12154..d6becf87c14 100644
--- a/targets/TEST/PDCP/test_pdcp.c
+++ b/targets/TEST/PDCP/test_pdcp.c
@@ -100,7 +100,7 @@ int main(int argc, char **argv)
   list_init(&test_pdu_rx_list, NULL);
   logInit();
 
-  if (init_pdcp_entity(&pdcp_array[0]) == TRUE && init_pdcp_entity(&pdcp_array[1]) == TRUE)
+  if (init_pdcp_entity(&pdcp_array[0]) == true && init_pdcp_entity(&pdcp_array[1]) == true)
     msg("[TEST] PDCP entity initialization OK\n");
   else {
     msg("[TEST] Cannot initialize PDCP entities!\n");
@@ -109,7 +109,7 @@ int main(int argc, char **argv)
 
   /* Initialize PDCP state variables */
   for (index = 0; index < 2; ++index) {
-    if (pdcp_init_seq_numbers(&pdcp_array[index]) == FALSE) {
+    if (pdcp_init_seq_numbers(&pdcp_array[index]) == false) {
       msg("[TEST] Cannot initialize sequence numbers of PDCP entity %d!\n", index);
       exit(1);
     } else {
@@ -120,11 +120,11 @@ int main(int argc, char **argv)
 #if TEST_RX_AND_TX_WINDOW
 
   /* Test TX window */
-  if (test_tx_window() == FALSE)
+  if (test_tx_window() == false)
     test_result = 1;
 
   /* Test RX window */
-  if (test_rx_window() == FALSE)
+  if (test_rx_window() == false)
     test_result = 1;
 
 #endif
@@ -132,11 +132,11 @@ int main(int argc, char **argv)
 #if TEST_PDCP_DATA_REQUEST_AND_INDICATION
 
   /* Test pdcp_data_req() method in pdcp.c */
-  if (test_pdcp_data_req() == FALSE)
+  if (test_pdcp_data_req() == false)
     test_result = 1;
 
   /* Test pdcp_data_ind() method in pdcp.c */
-  if (test_pdcp_data_ind() == FALSE)
+  if (test_pdcp_data_ind() == false)
     test_result = 1;
 
 #endif
@@ -150,10 +150,10 @@ int main(int argc, char **argv)
   return test_result;
 }
 
-BOOL init_pdcp_entity(pdcp_t *pdcp_entity)
+bool init_pdcp_entity(pdcp_t *pdcp_entity)
 {
   if (pdcp_entity == NULL)
-    return FALSE;
+    return false;
 
   /*
    * Initialize sequence number state variables of relevant PDCP entity
@@ -171,10 +171,10 @@ BOOL init_pdcp_entity(pdcp_t *pdcp_entity)
       pdcp_entity->next_pdcp_rx_sn, pdcp_entity->tx_hfn, pdcp_entity->rx_hfn, \
       pdcp_entity->last_submitted_pdcp_rx_sn, pdcp_entity->seq_num_size);
 
-  return TRUE;
+  return true;
 }
 
-BOOL test_tx_window(void)
+bool test_tx_window(void)
 {
   unsigned long index = 0;
 
@@ -185,33 +185,33 @@ BOOL test_tx_window(void)
       msg("TX packet # %07lu seq # %04d hfn # %04d\n", index, pseudo_tx_sn, pdcp_array[0].tx_hfn);
     else {
       msg("TX packet is out-of-window!\n");
-      return FALSE;
+      return false;
     }
   }
 
-  return TRUE;
+  return true;
 }
 
-BOOL test_rx_window(void)
+bool test_rx_window(void)
 {
   unsigned long index = 0;
 
   for (index = 0; index < NUMBER_OF_TEST_PACKETS; ++index) {
     u16 pseudo_rx_sn = (index == 0) ? 0 : index % WINDOW_SIZE;
 
-    if (pdcp_is_rx_seq_number_valid(pseudo_rx_sn, &pdcp_array[1]) == TRUE) {
+    if (pdcp_is_rx_seq_number_valid(pseudo_rx_sn, &pdcp_array[1]) == true) {
       msg("RX packet # %07lu seq # %04d last-submitted # %04d hfn # %04d\n", \
           index, pdcp_array[1].next_pdcp_rx_sn, pdcp_array[1].last_submitted_pdcp_rx_sn, pdcp_array[1].rx_hfn);
     } else {
       msg("RX packet seq # %04lu is not valid!\n", index);
-      return FALSE;
+      return false;
     }
   }
 
-  return TRUE;
+  return true;
 }
 
-BOOL test_pdcp_data_req(void)
+bool test_pdcp_data_req(void)
 {
   unsigned char* pdcp_test_pdu_buffer = NULL;
   unsigned char pdcp_test_pdu_buffer_size = DUMMY_BUFFER_SIZE + PDCP_USER_PLANE_DATA_PDU_LONG_SN_HEADER_SIZE;
@@ -224,7 +224,7 @@ BOOL test_pdcp_data_req(void)
 
   if (pdcp_test_pdu_buffer == NULL) {
     msg("Cannot allocate a buffer for test!\n");
-    return FALSE;
+    return false;
   }
 
   /*
@@ -241,7 +241,7 @@ BOOL test_pdcp_data_req(void)
     /*
      * Ask PDCP to create a PDU with given buffer and enqueue it to `test_pdu_tx_list`
      */
-    if (pdcp_data_req(0, 0, 10, DUMMY_BUFFER, &pdcp_array[0], &test_pdu_tx_list) == TRUE) {
+    if (pdcp_data_req(0, 0, 10, DUMMY_BUFFER, &pdcp_array[0], &test_pdu_tx_list) == true) {
       msg("[TEST] Starting to dissect PDU created by PDCP...\n");
 
       /*
@@ -251,7 +251,7 @@ BOOL test_pdcp_data_req(void)
 
       if (pdcp_test_pdu_buffer_size == 0 ) {
         msg("[TEST] PDU created by pdcp_data_req() is invalid!\n");
-        return FALSE;
+        return false;
       }
 
       /*
@@ -269,7 +269,7 @@ BOOL test_pdcp_data_req(void)
        */
       if (pdcp_test_pdu_buffer[0] & 0x80) {
         msg("[TEST] First bit is not 0, which means this is not a Data PDU!\n");
-        return FALSE;
+        return false;
       } else {
         msg("[TEST] First bit is 0 so this is a Data PDU, OK\n");
       }
@@ -279,7 +279,7 @@ BOOL test_pdcp_data_req(void)
        */
       if ((pdcp_test_pdu_buffer[0] & 0x70) != 0) {
         msg("[TEST] Reserved bits are not 0!\n");
-        return FALSE;
+        return false;
       } else {
         msg("[TEST] Reserved bits are all 0, OK\n");
       }
@@ -292,21 +292,21 @@ BOOL test_pdcp_data_req(void)
 
       if (sequence_number != index % WINDOW_SIZE) {
         msg("[TEST] Sequence numbers are out-of-order!\n");
-        return FALSE;
+        return false;
       } else {
         msg("[TEST] Sequence number is correct\n");
       }
 
     } else {
       msg("[TEST] pdcp_data_req() returned FALSE!\n");
-      return FALSE;
+      return false;
     }
   }
 
-  return TRUE;
+  return true;
 }
 
-BOOL test_pdcp_data_ind(void)
+bool test_pdcp_data_ind(void)
 {
   /*
    * This is the list that pdcp_data_ind() takes to put pdcp_data_ind_header_t
@@ -341,9 +341,9 @@ BOOL test_pdcp_data_ind(void)
 
     test_sdu = list_remove_head(&test_pdu_rx_list);
 
-    if (pdcp_data_ind(0, 0, test_sdu_size, test_sdu, &pdcp_array[0], &test_pdu_indication_list) == FALSE) {
+    if (pdcp_data_ind(0, 0, test_sdu_size, test_sdu, &pdcp_array[0], &test_pdu_indication_list) == false) {
       msg("[TEST] pdcp_data_ind() failed to handle data indication!\n");
-      return FALSE;
+      return false;
     } else {
       msg("[TEST] pdcp_data_ind() succcessfuly handled data indication\n");
     }
@@ -359,7 +359,7 @@ BOOL test_pdcp_data_ind(void)
 
     if (test_data_ind_header == NULL) {
       msg("[TEST] Data indication header is not valid!\n");
-      return FALSE;
+      return false;
     } else {
       pdcp_data_ind_header_t* indication_header = (pdcp_data_ind_header_t*)test_data_ind_header->data;
 
@@ -370,7 +370,7 @@ BOOL test_pdcp_data_ind(void)
         msg("[TEST] Radio bearer ID is correct\n");
       } else {
         msg("[TEST] Radio bearer ID is not correct! (expected: 0, parsed: %d)\n", indication_header->rb_id);
-        return FALSE;
+        return false;
       }
 
       /*
@@ -380,7 +380,7 @@ BOOL test_pdcp_data_ind(void)
         msg("[TEST] SDU size is correct\n");
       } else {
         msg("[TEST] SDU size is not correct! (expected: %d, parsed: %d)\n", DUMMY_BUFFER_SIZE, indication_header->data_size);
-        return FALSE;
+        return false;
       }
 
       /*
@@ -412,11 +412,11 @@ BOOL test_pdcp_data_ind(void)
       print_byte_stream("[TEST] TXed data: ", DUMMY_BUFFER, DUMMY_BUFFER_SIZE);
       print_byte_stream("[TEST] RXed data: ", (unsigned char*)&(test_data_ind_header->data[data_index]), DUMMY_BUFFER_SIZE);
 
-      return FALSE;
+      return false;
     }
   }
 
-  return TRUE;
+  return true;
 }
 
 
diff --git a/targets/TEST/PDCP/test_pdcp.h b/targets/TEST/PDCP/test_pdcp.h
index 0da174cc8ca..629f6f25391 100644
--- a/targets/TEST/PDCP/test_pdcp.h
+++ b/targets/TEST/PDCP/test_pdcp.h
@@ -42,17 +42,17 @@ int pdcp_fifo_flush_sdus (void) { return 0; }
 int pdcp_fifo_read_input_sdus_remaining_bytes (void) { return 0; }
 int pdcp_fifo_read_input_sdus (void) { return 0; }
 
-BOOL init_pdcp_entity(pdcp_t *pdcp_entity);
-BOOL test_tx_window(void);
-BOOL test_rx_window(void);
-BOOL test_pdcp_data_req(void);
-BOOL test_pdcp_data_ind(void);
+bool init_pdcp_entity(pdcp_t *pdcp_entity);
+bool test_tx_window(void);
+bool test_rx_window(void);
+bool test_pdcp_data_req(void);
+bool test_pdcp_data_ind(void);
 
 /*
  * PDCP methods that are going to be utilised throughout the test
  */
-extern BOOL pdcp_init_seq_numbers(pdcp_t* pdcp_entity);
+extern bool pdcp_init_seq_numbers(pdcp_t* pdcp_entity);
 extern u16 pdcp_get_next_tx_seq_number(pdcp_t* pdcp_entity);
-extern BOOL pdcp_is_rx_seq_number_valid(u16 seq_num, pdcp_t* pdcp_entity);
+extern bool pdcp_is_rx_seq_number_valid(u16 seq_num, pdcp_t* pdcp_entity);
 
 #endif
diff --git a/targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c b/targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c
index 378ee95c3be..7b801717243 100644
--- a/targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c
+++ b/targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c
@@ -109,7 +109,7 @@ int pdcp_fifo_flush_sdus () {}
 int pdcp_fifo_read_input_sdus_remaining_bytes () {}
 int pdcp_fifo_read_input_sdus () {}
 
-BOOL init_pdcp_entity(pdcp_t *pdcp_entity);
+bool init_pdcp_entity(pdcp_t *pdcp_entity);
 
 //-----------------------------------------------------------------------------
 void pdcp_rlc_test_mac_rlc_loop (struct mac_data_ind *data_indP,  struct mac_data_req *data_requestP, int* drop_countP, int *tx_packetsP, int* dropped_tx_packetsP) //-----------------------------------------------------------------------------
@@ -230,7 +230,7 @@ int main(int argc, char **argv)
   pdcp_module_init();
   logInit();
 
-  if (init_pdcp_entity(&pdcp_array[0][1]) == TRUE && init_pdcp_entity(&pdcp_array[1][1]) == TRUE)
+  if (init_pdcp_entity(&pdcp_array[0][1]) == true && init_pdcp_entity(&pdcp_array[1][1]) == true)
     msg("PDCP entity initialization OK\n");
   else {
     msg("Cannot initialize PDCP entities!\n");
@@ -239,7 +239,7 @@ int main(int argc, char **argv)
 
   /* Initialize PDCP state variables */
   for (index = 0; index < 2; ++index) {
-    if (pdcp_init_seq_numbers(&pdcp_array[index][1]) == FALSE) {
+    if (pdcp_init_seq_numbers(&pdcp_array[index][1]) == false) {
       msg("Cannot initialize %s PDCP entity!\n", ((index == 0) ? "first" : "second"));
       exit(1);
     }
@@ -275,11 +275,11 @@ int main(int argc, char **argv)
 }
 
 //-----------------------------------------------------------------------------
-BOOL init_pdcp_entity(pdcp_t *pdcp_entity)
+bool init_pdcp_entity(pdcp_t *pdcp_entity)
 //-----------------------------------------------------------------------------
 {
   if (pdcp_entity == NULL)
-    return FALSE;
+    return false;
 
   /*
    * Initialize sequence number state variables of relevant PDCP entity
@@ -292,6 +292,6 @@ BOOL init_pdcp_entity(pdcp_t *pdcp_entity)
   pdcp_entity->last_submitted_pdcp_rx_sn = 4095;
   pdcp_entity->seq_num_size = 12;
 
-  return TRUE;
+  return true;
 }
 
diff --git a/txsig0.m b/txsig0.m
new file mode 100644
index 00000000000..e795208a15a
--- /dev/null
+++ b/txsig0.m
@@ -0,0 +1,61441 @@
+txs0 = [-194 + j*(-202)
+-136 + j*(186)
+248 + j*(59)
+61 + j*(-331)
+-327 + j*(-134)
+-161 + j*(205)
+70 + j*(64)
+-84 + j*(-35)
+-82 + j*(168)
+170 + j*(116)
+105 + j*(-159)
+-163 + j*(-94)
+-102 + j*(147)
+100 + j*(89)
+31 + j*(-79)
+-114 + j*(4)
+-25 + j*(144)
+112 + j*(64)
+41 + j*(-65)
+-84 + j*(9)
+-18 + j*(151)
+137 + j*(129)
+190 + j*(9)
+163 + j*(-89)
+85 + j*(-173)
+-68 + j*(-154)
+-93 + j*(26)
+119 + j*(64)
+183 + j*(-209)
+-139 + j*(-343)
+-365 + j*(-29)
+-107 + j*(252)
+180 + j*(51)
+11 + j*(-232)
+-279 + j*(-96)
+-200 + j*(193)
+42 + j*(170)
+37 + j*(-5)
+-93 + j*(13)
+-81 + j*(137)
+21 + j*(187)
+158 + j*(174)
+303 + j*(-10)
+155 + j*(-324)
+-275 + j*(-277)
+-348 + j*(180)
+57 + j*(327)
+197 + j*(1)
+-89 + j*(-71)
+-107 + j*(244)
+254 + j*(283)
+382 + j*(-61)
+137 + j*(-263)
+-69 + j*(-141)
+-19 + j*(32)
+138 + j*(8)
+135 + j*(-159)
+-20 + j*(-175)
+-9 + j*(-51)
+126 + j*(-153)
+-52 + j*(-384)
+-409 + j*(-234)
+-389 + j*(165)
+-78 + j*(276)
+81 + j*(133)
+94 + j*(11)
+42 + j*(-99)
+-103 + j*(-112)
+-155 + j*(25)
+-57 + j*(74)
+-47 + j*(23)
+-64 + j*(69)
+36 + j*(51)
+-16 + j*(-105)
+-230 + j*(-46)
+-211 + j*(189)
+-51 + j*(221)
+-39 + j*(208)
+67 + j*(312)
+308 + j*(188)
+240 + j*(-112)
+-30 + j*(-91)
+-16 + j*(126)
+153 + j*(117)
+170 + j*(12)
+156 + j*(-11)
+173 + j*(-64)
+130 + j*(-112)
+123 + j*(-123)
+100 + j*(-220)
+-86 + j*(-247)
+-170 + j*(-43)
+21 + j*(40)
+64 + j*(-161)
+-175 + j*(-176)
+-196 + j*(100)
+91 + j*(138)
+151 + j*(-144)
+-111 + j*(-234)
+-230 + j*(-19)
+-85 + j*(96)
+-11 + j*(9)
+-78 + j*(-10)
+-66 + j*(57)
+-17 + j*(30)
+-70 + j*(21)
+-45 + j*(133)
+139 + j*(109)
+154 + j*(-121)
+-70 + j*(-189)
+-165 + j*(-28)
+-98 + j*(46)
+-93 + j*(60)
+-33 + j*(136)
+93 + j*(59)
+-5 + j*(-81)
+-144 + j*(55)
+36 + j*(194)
+176 + j*(-16)
+-49 + j*(-146)
+-166 + j*(75)
+32 + j*(179)
+109 + j*(33)
+25 + j*(9)
+74 + j*(42)
+80 + j*(-77)
+-93 + j*(-79)
+-105 + j*(128)
+111 + j*(162)
+170 + j*(-36)
+-4 + j*(-98)
+-60 + j*(74)
+142 + j*(148)
+281 + j*(-80)
+70 + j*(-296)
+-184 + j*(-135)
+-49 + j*(103)
+166 + j*(-62)
+-46 + j*(-301)
+-354 + j*(-80)
+-202 + j*(281)
+147 + j*(244)
+206 + j*(-15)
+78 + j*(-109)
+20 + j*(-95)
+-17 + j*(-116)
+-112 + j*(-98)
+-159 + j*(30)
+-44 + j*(146)
+110 + j*(66)
+59 + j*(-88)
+-69 + j*(-35)
+13 + j*(67)
+104 + j*(-51)
+-37 + j*(-129)
+-83 + j*(6)
+40 + j*(-13)
+-67 + j*(-129)
+-181 + j*(74)
+120 + j*(185)
+238 + j*(-213)
+-223 + j*(-363)
+-411 + j*(107)
+-2 + j*(288)
+109 + j*(-43)
+-169 + j*(-46)
+-73 + j*(214)
+182 + j*(56)
+-7 + j*(-186)
+-223 + j*(5)
+-57 + j*(177)
+38 + j*(27)
+-137 + j*(19)
+-122 + j*(259)
+152 + j*(303)
+272 + j*(86)
+172 + j*(-42)
+145 + j*(-28)
+195 + j*(-117)
+64 + j*(-272)
+-177 + j*(-182)
+-171 + j*(71)
+32 + j*(98)
+31 + j*(-51)
+-99 + j*(11)
+8 + j*(153)
+159 + j*(35)
+35 + j*(-93)
+-64 + j*(65)
+149 + j*(186)
+355 + j*(-29)
+238 + j*(-317)
+-43 + j*(-356)
+-204 + j*(-183)
+-149 + j*(-11)
+-34 + j*(-13)
+-62 + j*(-84)
+-139 + j*(-6)
+-34 + j*(103)
+103 + j*(-2)
+18 + j*(-142)
+-96 + j*(-79)
+-27 + j*(-25)
+-26 + j*(-159)
+-263 + j*(-175)
+-385 + j*(125)
+-127 + j*(377)
+177 + j*(252)
+168 + j*(13)
+60 + j*(5)
+144 + j*(21)
+160 + j*(-194)
+-136 + j*(-288)
+-318 + j*(5)
+-82 + j*(217)
+93 + j*(27)
+-91 + j*(-98)
+-199 + j*(90)
+-41 + j*(188)
+8 + j*(95)
+-67 + j*(132)
+27 + j*(257)
+204 + j*(201)
+247 + j*(55)
+214 + j*(-49)
+131 + j*(-134)
+-10 + j*(-97)
+16 + j*(65)
+221 + j*(31)
+221 + j*(-237)
+-64 + j*(-323)
+-230 + j*(-107)
+-126 + j*(61)
+-33 + j*(42)
+-40 + j*(42)
+20 + j*(91)
+120 + j*(29)
+89 + j*(-100)
+-38 + j*(-103)
+-58 + j*(13)
+58 + j*(46)
+122 + j*(-83)
+0 + j*(-199)
+-163 + j*(-120)
+-140 + j*(45)
+-11 + j*(53)
+-18 + j*(-31)
+-82 + j*(17)
+11 + j*(74)
+59 + j*(-59)
+-120 + j*(-101)
+-171 + j*(128)
+76 + j*(203)
+172 + j*(-20)
+10 + j*(-92)
+9 + j*(9)
+75 + j*(-86)
+-111 + j*(-147)
+-175 + j*(105)
+122 + j*(173)
+203 + j*(-151)
+-111 + j*(-262)
+-245 + j*(-17)
+-110 + j*(93)
+-74 + j*(53)
+-79 + j*(90)
+-29 + j*(81)
+-96 + j*(72)
+-87 + j*(255)
+197 + j*(303)
+325 + j*(8)
+103 + j*(-132)
+39 + j*(30)
+215 + j*(1)
+166 + j*(-223)
+-55 + j*(-224)
+-98 + j*(-93)
+-86 + j*(-68)
+-130 + j*(-1)
+-34 + j*(97)
+81 + j*(-18)
+-69 + j*(-147)
+-237 + j*(30)
+-83 + j*(245)
+132 + j*(166)
+120 + j*(25)
+91 + j*(37)
+170 + j*(-23)
+83 + j*(-180)
+-124 + j*(-100)
+-45 + j*(129)
+206 + j*(34)
+113 + j*(-245)
+-176 + j*(-175)
+-128 + j*(87)
+92 + j*(37)
+29 + j*(-153)
+-144 + j*(-103)
+-128 + j*(23)
+-92 + j*(30)
+-112 + j*(88)
+-8 + j*(170)
+122 + j*(83)
+81 + j*(-45)
+-4 + j*(-42)
+-18 + j*(-16)
+-43 + j*(-1)
+-42 + j*(64)
+40 + j*(78)
+47 + j*(6)
+-19 + j*(44)
+76 + j*(154)
+281 + j*(49)
+264 + j*(-238)
+-18 + j*(-369)
+-266 + j*(-198)
+-245 + j*(78)
+-7 + j*(177)
+168 + j*(-5)
+40 + j*(-248)
+-272 + j*(-207)
+-366 + j*(132)
+-85 + j*(356)
+208 + j*(202)
+177 + j*(-63)
+3 + j*(-96)
+-23 + j*(-18)
+-3 + j*(-49)
+-109 + j*(-69)
+-184 + j*(77)
+-69 + j*(223)
+105 + j*(208)
+198 + j*(93)
+202 + j*(-50)
+97 + j*(-165)
+-67 + j*(-153)
+-146 + j*(-14)
+-83 + j*(126)
+72 + j*(153)
+183 + j*(23)
+98 + j*(-141)
+-86 + j*(-95)
+-59 + j*(91)
+134 + j*(71)
+122 + j*(-134)
+-97 + j*(-146)
+-147 + j*(77)
+66 + j*(191)
+257 + j*(23)
+194 + j*(-226)
+-39 + j*(-298)
+-208 + j*(-178)
+-243 + j*(-25)
+-216 + j*(119)
+-76 + j*(247)
+144 + j*(186)
+151 + j*(-23)
+4 + j*(-19)
+91 + j*(98)
+249 + j*(-80)
+41 + j*(-301)
+-199 + j*(-124)
+-54 + j*(63)
+53 + j*(-95)
+-144 + j*(-161)
+-214 + j*(38)
+-77 + j*(104)
+-69 + j*(55)
+-69 + j*(140)
+83 + j*(153)
+127 + j*(-1)
+25 + j*(-45)
+27 + j*(0)
+44 + j*(-57)
+-45 + j*(-78)
+-70 + j*(5)
+-9 + j*(15)
+-13 + j*(-43)
+-80 + j*(-61)
+-170 + j*(-14)
+-212 + j*(145)
+-59 + j*(313)
+175 + j*(250)
+221 + j*(59)
+145 + j*(-12)
+130 + j*(-25)
+116 + j*(-76)
+69 + j*(-121)
+-23 + j*(-160)
+-188 + j*(-76)
+-166 + j*(193)
+141 + j*(249)
+243 + j*(-24)
+41 + j*(-97)
+64 + j*(44)
+183 + j*(-84)
+-27 + j*(-175)
+-50 + j*(114)
+363 + j*(58)
+303 + j*(-504)
+-333 + j*(-527)
+-450 + j*(41)
+-40 + j*(153)
+-25 + j*(-122)
+-240 + j*(-37)
+-124 + j*(148)
+-1 + j*(45)
+-100 + j*(14)
+-57 + j*(126)
+62 + j*(41)
+-56 + j*(-71)
+-175 + j*(71)
+-45 + j*(213)
+107 + j*(142)
+114 + j*(21)
+66 + j*(-37)
+-12 + j*(-71)
+-130 + j*(-15)
+-141 + j*(177)
+85 + j*(297)
+323 + j*(107)
+219 + j*(-204)
+-95 + j*(-180)
+-118 + j*(100)
+119 + j*(148)
+185 + j*(-22)
+117 + j*(-76)
+129 + j*(-119)
+34 + j*(-238)
+-174 + j*(-164)
+-153 + j*(57)
+23 + j*(79)
+60 + j*(-21)
+45 + j*(-59)
+23 + j*(-130)
+-110 + j*(-151)
+-168 + j*(-12)
+-75 + j*(34)
+-113 + j*(-22)
+-182 + j*(123)
+25 + j*(248)
+192 + j*(50)
+38 + j*(-102)
+-52 + j*(12)
+51 + j*(23)
+1 + j*(-83)
+-116 + j*(-6)
+-47 + j*(104)
+17 + j*(71)
+16 + j*(99)
+153 + j*(109)
+215 + j*(-111)
+-33 + j*(-237)
+-202 + j*(0)
+14 + j*(183)
+216 + j*(-10)
+61 + j*(-235)
+-169 + j*(-145)
+-139 + j*(46)
+-11 + j*(21)
+-91 + j*(-76)
+-228 + j*(60)
+-99 + j*(269)
+136 + j*(210)
+139 + j*(28)
+42 + j*(33)
+100 + j*(93)
+185 + j*(6)
+139 + j*(-114)
+26 + j*(-142)
+-59 + j*(-71)
+-20 + j*(39)
+111 + j*(11)
+86 + j*(-144)
+-77 + j*(-129)
+-51 + j*(8)
+54 + j*(-62)
+-78 + j*(-164)
+-202 + j*(-3)
+-66 + j*(136)
+41 + j*(61)
+23 + j*(25)
+78 + j*(16)
+68 + j*(-111)
+-93 + j*(-116)
+-100 + j*(38)
+25 + j*(27)
+-13 + j*(-73)
+-98 + j*(-31)
+-88 + j*(21)
+-105 + j*(69)
+-13 + j*(190)
+216 + j*(78)
+108 + j*(-244)
+-277 + j*(-153)
+-214 + j*(264)
+196 + j*(235)
+199 + j*(-131)
+-99 + j*(-150)
+-117 + j*(66)
+24 + j*(66)
+-5 + j*(-31)
+-98 + j*(15)
+-83 + j*(126)
+14 + j*(186)
+138 + j*(156)
+200 + j*(43)
+163 + j*(-57)
+107 + j*(-97)
+49 + j*(-122)
+-23 + j*(-93)
+-13 + j*(-21)
+56 + j*(-54)
+-11 + j*(-151)
+-169 + j*(-84)
+-148 + j*(123)
+69 + j*(170)
+175 + j*(-24)
+16 + j*(-158)
+-123 + j*(-22)
+7 + j*(114)
+156 + j*(-19)
+43 + j*(-183)
+-119 + j*(-129)
+-136 + j*(-23)
+-138 + j*(41)
+-78 + j*(157)
+117 + j*(136)
+134 + j*(-84)
+-78 + j*(-120)
+-107 + j*(64)
+33 + j*(69)
+-13 + j*(-21)
+-76 + j*(95)
+91 + j*(178)
+231 + j*(29)
+181 + j*(-138)
+58 + j*(-223)
+-117 + j*(-201)
+-183 + j*(-8)
+-10 + j*(71)
+25 + j*(-103)
+-186 + j*(-88)
+-157 + j*(153)
+59 + j*(127)
+13 + j*(-8)
+-35 + j*(103)
+158 + j*(102)
+157 + j*(-132)
+-30 + j*(-143)
+-12 + j*(-71)
+-68 + j*(-188)
+-312 + j*(-68)
+-202 + j*(255)
+106 + j*(181)
+32 + j*(-31)
+-72 + j*(78)
+74 + j*(97)
+14 + j*(-49)
+-103 + j*(99)
+141 + j*(182)
+200 + j*(-136)
+-147 + j*(-175)
+-165 + j*(148)
+81 + j*(121)
+-36 + j*(-28)
+-121 + j*(200)
+169 + j*(290)
+270 + j*(55)
+179 + j*(21)
+314 + j*(-1)
+285 + j*(-309)
+-81 + j*(-343)
+-148 + j*(-45)
+36 + j*(-34)
+-51 + j*(-122)
+-74 + j*(53)
+172 + j*(23)
+110 + j*(-277)
+-204 + j*(-220)
+-161 + j*(42)
+7 + j*(-23)
+-116 + j*(-115)
+-186 + j*(62)
+4 + j*(139)
+91 + j*(-23)
+-27 + j*(-114)
+-117 + j*(-51)
+-107 + j*(23)
+-71 + j*(40)
+-76 + j*(35)
+-93 + j*(89)
+-12 + j*(156)
+100 + j*(99)
+95 + j*(0)
+68 + j*(-22)
+71 + j*(-80)
+-33 + j*(-146)
+-141 + j*(-59)
+-110 + j*(25)
+-114 + j*(23)
+-142 + j*(128)
+8 + j*(211)
+113 + j*(82)
+28 + j*(33)
+90 + j*(103)
+182 + j*(-69)
+-69 + j*(-202)
+-224 + j*(82)
+57 + j*(229)
+154 + j*(-28)
+-82 + j*(-46)
+-26 + j*(180)
+177 + j*(80)
+50 + j*(-60)
+-1 + j*(112)
+234 + j*(100)
+214 + j*(-171)
+-30 + j*(-161)
+-8 + j*(3)
+81 + j*(-49)
+11 + j*(-83)
+39 + j*(-25)
+76 + j*(-131)
+-100 + j*(-167)
+-144 + j*(49)
+84 + j*(95)
+136 + j*(-136)
+-80 + j*(-215)
+-209 + j*(-57)
+-156 + j*(109)
+3 + j*(178)
+167 + j*(73)
+132 + j*(-123)
+-33 + j*(-134)
+-35 + j*(-33)
+21 + j*(-82)
+-76 + j*(-132)
+-132 + j*(-34)
+-72 + j*(-1)
+-93 + j*(-41)
+-139 + j*(23)
+-83 + j*(71)
+-75 + j*(44)
+-97 + j*(95)
+-10 + j*(140)
+38 + j*(66)
+-10 + j*(60)
+47 + j*(98)
+87 + j*(-15)
+-70 + j*(-41)
+-76 + j*(173)
+202 + j*(187)
+267 + j*(-129)
+-20 + j*(-264)
+-206 + j*(-71)
+-133 + j*(107)
+-13 + j*(140)
+75 + j*(89)
+69 + j*(-3)
+-16 + j*(7)
+30 + j*(97)
+139 + j*(17)
+36 + j*(-110)
+-91 + j*(18)
+63 + j*(139)
+184 + j*(-37)
+4 + j*(-156)
+-102 + j*(13)
+51 + j*(100)
+123 + j*(-25)
+40 + j*(-88)
+-7 + j*(-67)
+-64 + j*(-44)
+-83 + j*(100)
+135 + j*(192)
+322 + j*(-47)
+141 + j*(-305)
+-98 + j*(-221)
+-71 + j*(-95)
+-74 + j*(-156)
+-224 + j*(-89)
+-173 + j*(126)
+46 + j*(119)
+59 + j*(-66)
+-92 + j*(-74)
+-102 + j*(55)
+17 + j*(83)
+78 + j*(-22)
+-5 + j*(-134)
+-163 + j*(-98)
+-198 + j*(73)
+-69 + j*(168)
+25 + j*(117)
+40 + j*(82)
+81 + j*(57)
+89 + j*(-18)
+42 + j*(-52)
+33 + j*(-74)
+-54 + j*(-149)
+-226 + j*(-48)
+-151 + j*(182)
+61 + j*(127)
+-40 + j*(-22)
+-134 + j*(177)
+169 + j*(257)
+239 + j*(-114)
+-183 + j*(-148)
+-180 + j*(333)
+346 + j*(337)
+386 + j*(-156)
+13 + j*(-190)
+69 + j*(57)
+272 + j*(-112)
+67 + j*(-338)
+-147 + j*(-214)
+-138 + j*(-105)
+-197 + j*(-58)
+-168 + j*(129)
+66 + j*(134)
+58 + j*(-88)
+-147 + j*(-33)
+-42 + j*(170)
+154 + j*(37)
+13 + j*(-136)
+-124 + j*(11)
+17 + j*(112)
+87 + j*(-14)
+-11 + j*(-47)
+-3 + j*(23)
+49 + j*(-22)
+-16 + j*(-62)
+-42 + j*(8)
+30 + j*(13)
+21 + j*(-71)
+-76 + j*(-71)
+-110 + j*(18)
+-71 + j*(82)
+-9 + j*(115)
+81 + j*(99)
+123 + j*(-4)
+43 + j*(-77)
+-13 + j*(-18)
+59 + j*(-4)
+41 + j*(-132)
+-149 + j*(-117)
+-168 + j*(110)
+54 + j*(157)
+94 + j*(-24)
+-43 + j*(-18)
+30 + j*(95)
+135 + j*(-37)
+-33 + j*(-132)
+-107 + j*(57)
+92 + j*(104)
+111 + j*(-83)
+-29 + j*(-65)
+56 + j*(11)
+83 + j*(-171)
+-190 + j*(-189)
+-227 + j*(131)
+93 + j*(187)
+159 + j*(-101)
+-77 + j*(-175)
+-156 + j*(-15)
+-83 + j*(51)
+-49 + j*(43)
+-36 + j*(27)
+-81 + j*(19)
+-98 + j*(130)
+69 + j*(174)
+136 + j*(-19)
+-67 + j*(-74)
+-95 + j*(139)
+124 + j*(143)
+112 + j*(-52)
+-35 + j*(-11)
+42 + j*(84)
+90 + j*(-14)
+-3 + j*(-4)
+95 + j*(69)
+164 + j*(-132)
+-128 + j*(-231)
+-281 + j*(105)
+27 + j*(307)
+236 + j*(92)
+127 + j*(-53)
+91 + j*(-12)
+117 + j*(-66)
+21 + j*(-92)
+17 + j*(26)
+163 + j*(13)
+181 + j*(-146)
+79 + j*(-215)
+19 + j*(-230)
+-83 + j*(-263)
+-221 + j*(-168)
+-188 + j*(5)
+-35 + j*(-1)
+-52 + j*(-155)
+-252 + j*(-163)
+-347 + j*(56)
+-194 + j*(232)
+-23 + j*(169)
+-54 + j*(60)
+-143 + j*(129)
+-72 + j*(266)
+100 + j*(289)
+249 + j*(188)
+310 + j*(-8)
+184 + j*(-207)
+-50 + j*(-197)
+-107 + j*(-20)
+9 + j*(33)
+37 + j*(-66)
+-71 + j*(-104)
+-163 + j*(-24)
+-169 + j*(118)
+-42 + j*(227)
+118 + j*(168)
+116 + j*(40)
+59 + j*(55)
+148 + j*(66)
+160 + j*(-96)
+-42 + j*(-122)
+-75 + j*(100)
+170 + j*(142)
+241 + j*(-99)
+49 + j*(-201)
+-41 + j*(-86)
+25 + j*(-41)
+37 + j*(-102)
+-24 + j*(-126)
+-75 + j*(-99)
+-100 + j*(-59)
+-117 + j*(-15)
+-122 + j*(64)
+-17 + j*(167)
+188 + j*(89)
+176 + j*(-187)
+-116 + j*(-242)
+-204 + j*(13)
+1 + j*(68)
+-25 + j*(-117)
+-233 + j*(-18)
+-103 + j*(222)
+136 + j*(86)
+-18 + j*(-122)
+-207 + j*(60)
+-23 + j*(254)
+156 + j*(115)
+74 + j*(1)
+53 + j*(74)
+169 + j*(38)
+151 + j*(-116)
+9 + j*(-153)
+-66 + j*(-77)
+-56 + j*(-2)
+1 + j*(18)
+27 + j*(-35)
+-42 + j*(-64)
+-83 + j*(21)
+1 + j*(78)
+62 + j*(10)
+25 + j*(-33)
+25 + j*(-25)
+24 + j*(-86)
+-94 + j*(-115)
+-179 + j*(21)
+-87 + j*(153)
+40 + j*(136)
+84 + j*(81)
+120 + j*(39)
+149 + j*(-49)
+94 + j*(-165)
+-58 + j*(-222)
+-250 + j*(-126)
+-292 + j*(157)
+-4 + j*(361)
+327 + j*(146)
+220 + j*(-244)
+-158 + j*(-236)
+-211 + j*(86)
+41 + j*(154)
+88 + j*(-45)
+-88 + j*(-61)
+-89 + j*(115)
+85 + j*(123)
+98 + j*(-33)
+-39 + j*(-42)
+-38 + j*(100)
+124 + j*(104)
+147 + j*(-66)
+-16 + j*(-96)
+-28 + j*(74)
+194 + j*(75)
+242 + j*(-210)
+-58 + j*(-366)
+-318 + j*(-151)
+-255 + j*(142)
+-24 + j*(223)
+139 + j*(105)
+119 + j*(-82)
+-71 + j*(-118)
+-136 + j*(92)
+116 + j*(196)
+286 + j*(-92)
+3 + j*(-344)
+-312 + j*(-116)
+-159 + j*(211)
+137 + j*(116)
+62 + j*(-134)
+-164 + j*(-58)
+-81 + j*(167)
+156 + j*(90)
+97 + j*(-168)
+-182 + j*(-148)
+-221 + j*(134)
+23 + j*(240)
+168 + j*(72)
+91 + j*(-66)
+-8 + j*(-58)
+-41 + j*(-9)
+-33 + j*(50)
+40 + j*(79)
+105 + j*(7)
+54 + j*(-72)
+-13 + j*(-45)
+8 + j*(-11)
+19 + j*(-43)
+-23 + j*(-54)
+-45 + j*(-25)
+-45 + j*(-5)
+-40 + j*(20)
+-13 + j*(32)
+-4 + j*(18)
+0 + j*(25)
+30 + j*(4)
+-22 + j*(-54)
+-124 + j*(45)
+15 + j*(223)
+294 + j*(79)
+206 + j*(-286)
+-193 + j*(-308)
+-334 + j*(42)
+-115 + j*(271)
+130 + j*(213)
+218 + j*(28)
+136 + j*(-144)
+-40 + j*(-163)
+-117 + j*(-43)
+-76 + j*(32)
+-50 + j*(56)
+8 + j*(89)
+77 + j*(14)
+-23 + j*(-69)
+-119 + j*(71)
+39 + j*(196)
+177 + j*(67)
+111 + j*(-15)
+162 + j*(22)
+255 + j*(-180)
+-35 + j*(-395)
+-370 + j*(-116)
+-168 + j*(276)
+217 + j*(171)
+198 + j*(-155)
+-37 + j*(-199)
+-114 + j*(-66)
+-65 + j*(12)
+12 + j*(21)
+74 + j*(-71)
+-16 + j*(-208)
+-224 + j*(-183)
+-316 + j*(28)
+-198 + j*(214)
+-19 + j*(222)
+58 + j*(128)
+44 + j*(74)
+54 + j*(69)
+66 + j*(15)
+-12 + j*(-14)
+-53 + j*(98)
+100 + j*(182)
+267 + j*(35)
+209 + j*(-199)
+-7 + j*(-283)
+-209 + j*(-177)
+-248 + j*(46)
+-88 + j*(182)
+49 + j*(96)
+-12 + j*(27)
+-16 + j*(144)
+192 + j*(141)
+260 + j*(-132)
+6 + j*(-308)
+-255 + j*(-176)
+-310 + j*(85)
+-154 + j*(310)
+153 + j*(320)
+295 + j*(34)
+78 + j*(-156)
+-93 + j*(13)
+53 + j*(149)
+153 + j*(42)
+105 + j*(16)
+206 + j*(45)
+294 + j*(-177)
+48 + j*(-372)
+-206 + j*(-206)
+-146 + j*(11)
+-28 + j*(11)
+-23 + j*(-14)
+11 + j*(-11)
+11 + j*(-80)
+-82 + j*(-71)
+-68 + j*(40)
+57 + j*(23)
+50 + j*(-105)
+-58 + j*(-122)
+-83 + j*(-64)
+-75 + j*(-74)
+-138 + j*(-86)
+-218 + j*(-9)
+-206 + j*(144)
+-28 + j*(240)
+173 + j*(89)
+70 + j*(-199)
+-288 + j*(-182)
+-414 + j*(196)
+-140 + j*(471)
+180 + j*(421)
+344 + j*(233)
+393 + j*(-2)
+255 + j*(-228)
+6 + j*(-238)
+-80 + j*(-84)
+-32 + j*(-26)
+-45 + j*(-15)
+-14 + j*(54)
+83 + j*(-1)
+-13 + j*(-116)
+-156 + j*(29)
+28 + j*(211)
+238 + j*(10)
+42 + j*(-211)
+-158 + j*(-20)
+36 + j*(136)
+151 + j*(-74)
+-80 + j*(-159)
+-156 + j*(83)
+73 + j*(162)
+150 + j*(-23)
+24 + j*(-78)
+12 + j*(1)
+81 + j*(-30)
+38 + j*(-105)
+-42 + j*(-90)
+-61 + j*(-25)
+-17 + j*(21)
+47 + j*(-12)
+19 + j*(-93)
+-73 + j*(-64)
+-35 + j*(26)
+56 + j*(-37)
+-26 + j*(-142)
+-135 + j*(-66)
+-85 + j*(6)
+-86 + j*(-47)
+-186 + j*(16)
+-110 + j*(165)
+38 + j*(110)
+-9 + j*(1)
+-79 + j*(61)
+-27 + j*(107)
+-32 + j*(104)
+21 + j*(213)
+260 + j*(155)
+242 + j*(-181)
+-134 + j*(-202)
+-160 + j*(181)
+224 + j*(190)
+216 + j*(-189)
+-139 + j*(-156)
+-69 + j*(175)
+260 + j*(72)
+172 + j*(-259)
+-123 + j*(-233)
+-154 + j*(-45)
+-105 + j*(-16)
+-145 + j*(29)
+-96 + j*(141)
+24 + j*(151)
+79 + j*(110)
+144 + j*(78)
+197 + j*(-41)
+103 + j*(-162)
+-15 + j*(-137)
+-24 + j*(-78)
+-23 + j*(-83)
+-43 + j*(-78)
+-48 + j*(-87)
+-113 + j*(-107)
+-196 + j*(-16)
+-129 + j*(103)
+-30 + j*(62)
+-91 + j*(1)
+-163 + j*(100)
+-78 + j*(225)
+67 + j*(235)
+181 + j*(153)
+216 + j*(4)
+111 + j*(-110)
+-6 + j*(-66)
+16 + j*(-4)
+25 + j*(-49)
+-65 + j*(-36)
+-69 + j*(85)
+42 + j*(132)
+122 + j*(88)
+175 + j*(18)
+159 + j*(-100)
+31 + j*(-126)
+30 + j*(-3)
+199 + j*(-62)
+119 + j*(-332)
+-223 + j*(-313)
+-296 + j*(4)
+-91 + j*(117)
+-18 + j*(42)
+1 + j*(54)
+105 + j*(-19)
+12 + j*(-202)
+-216 + j*(-123)
+-162 + j*(92)
+-13 + j*(24)
+-153 + j*(-72)
+-262 + j*(153)
+-11 + j*(321)
+198 + j*(113)
+51 + j*(-77)
+-103 + j*(44)
+4 + j*(185)
+151 + j*(115)
+144 + j*(-12)
+74 + j*(-54)
+22 + j*(-39)
+2 + j*(20)
+88 + j*(78)
+228 + j*(-34)
+148 + j*(-286)
+-177 + j*(-305)
+-310 + j*(6)
+-71 + j*(195)
+112 + j*(17)
+-47 + j*(-148)
+-235 + j*(1)
+-142 + j*(242)
+117 + j*(265)
+272 + j*(52)
+167 + j*(-184)
+-72 + j*(-199)
+-171 + j*(-28)
+-112 + j*(79)
+-78 + j*(122)
+5 + j*(219)
+218 + j*(185)
+282 + j*(-69)
+71 + j*(-206)
+-76 + j*(-67)
+15 + j*(54)
+127 + j*(-10)
+110 + j*(-136)
+-12 + j*(-192)
+-136 + j*(-111)
+-108 + j*(28)
+11 + j*(23)
+-10 + j*(-81)
+-129 + j*(-52)
+-131 + j*(86)
+-10 + j*(163)
+151 + j*(122)
+234 + j*(-81)
+56 + j*(-294)
+-225 + j*(-198)
+-224 + j*(59)
+-66 + j*(95)
+-71 + j*(54)
+-40 + j*(144)
+126 + j*(98)
+96 + j*(-96)
+-75 + j*(-85)
+-69 + j*(23)
+-50 + j*(-3)
+-115 + j*(64)
+8 + j*(177)
+144 + j*(28)
+-23 + j*(-90)
+-106 + j*(107)
+122 + j*(170)
+179 + j*(-56)
+0 + j*(-101)
+4 + j*(23)
+95 + j*(-48)
+-16 + j*(-141)
+-111 + j*(-45)
+-58 + j*(23)
+-47 + j*(-2)
+-88 + j*(36)
+-48 + j*(116)
+69 + j*(120)
+136 + j*(-18)
+-23 + j*(-159)
+-256 + j*(24)
+-80 + j*(365)
+330 + j*(245)
+287 + j*(-135)
+37 + j*(-103)
+168 + j*(-3)
+186 + j*(-301)
+-249 + j*(-327)
+-316 + j*(146)
+108 + j*(220)
+131 + j*(-115)
+-116 + j*(-52)
+32 + j*(124)
+145 + j*(-91)
+-105 + j*(-140)
+-87 + j*(123)
+180 + j*(47)
+63 + j*(-209)
+-160 + j*(-81)
+-38 + j*(88)
+64 + j*(-7)
+20 + j*(-28)
+115 + j*(-38)
+99 + j*(-277)
+-234 + j*(-341)
+-409 + j*(-42)
+-264 + j*(163)
+-161 + j*(181)
+-78 + j*(243)
+97 + j*(187)
+78 + j*(-12)
+-109 + j*(10)
+-78 + j*(188)
+74 + j*(170)
+57 + j*(90)
+52 + j*(166)
+225 + j*(163)
+296 + j*(-59)
+115 + j*(-217)
+-72 + j*(-135)
+-82 + j*(17)
+-6 + j*(81)
+66 + j*(100)
+185 + j*(84)
+301 + j*(-90)
+166 + j*(-356)
+-186 + j*(-339)
+-274 + j*(-1)
+9 + j*(103)
+66 + j*(-180)
+-290 + j*(-209)
+-366 + j*(228)
+91 + j*(401)
+346 + j*(-5)
+26 + j*(-292)
+-251 + j*(-59)
+-98 + j*(175)
+66 + j*(78)
+-12 + j*(8)
+-7 + j*(115)
+160 + j*(83)
+155 + j*(-130)
+-54 + j*(-180)
+-153 + j*(-28)
+-89 + j*(84)
+-6 + j*(110)
+89 + j*(86)
+142 + j*(-53)
+-13 + j*(-197)
+-251 + j*(-72)
+-217 + j*(242)
+96 + j*(346)
+317 + j*(132)
+251 + j*(-104)
+109 + j*(-132)
+105 + j*(-97)
+118 + j*(-192)
+-37 + j*(-279)
+-204 + j*(-156)
+-153 + j*(13)
+-40 + j*(-14)
+-92 + j*(-90)
+-186 + j*(-26)
+-175 + j*(81)
+-127 + j*(153)
+-21 + j*(222)
+151 + j*(170)
+187 + j*(-21)
+50 + j*(-118)
+-42 + j*(-59)
+-39 + j*(-8)
+-21 + j*(18)
+40 + j*(1)
+13 + j*(-132)
+-224 + j*(-133)
+-315 + j*(181)
+-11 + j*(388)
+260 + j*(185)
+177 + j*(-47)
+52 + j*(-30)
+74 + j*(-1)
+69 + j*(-54)
+11 + j*(-70)
+-47 + j*(-48)
+-98 + j*(51)
+21 + j*(202)
+278 + j*(107)
+259 + j*(-214)
+-47 + j*(-292)
+-184 + j*(-76)
+-87 + j*(51)
+-16 + j*(53)
+48 + j*(52)
+106 + j*(-47)
+0 + j*(-146)
+-110 + j*(-61)
+-61 + j*(11)
+-78 + j*(-21)
+-138 + j*(102)
+61 + j*(233)
+269 + j*(23)
+98 + j*(-221)
+-117 + j*(-100)
+-11 + j*(49)
+83 + j*(-84)
+-86 + j*(-168)
+-194 + j*(12)
+-35 + j*(151)
+134 + j*(22)
+34 + j*(-185)
+-217 + j*(-127)
+-222 + j*(148)
+38 + j*(204)
+94 + j*(-13)
+-94 + j*(-19)
+-34 + j*(184)
+206 + j*(78)
+87 + j*(-186)
+-176 + j*(-74)
+-70 + j*(165)
+139 + j*(65)
+45 + j*(-117)
+-125 + j*(-42)
+-93 + j*(124)
+66 + j*(168)
+198 + j*(37)
+115 + j*(-163)
+-119 + j*(-122)
+-93 + j*(118)
+155 + j*(82)
+110 + j*(-169)
+-119 + j*(-132)
+-86 + j*(26)
+-31 + j*(-42)
+-178 + j*(-10)
+-111 + j*(211)
+130 + j*(144)
+46 + j*(-66)
+-131 + j*(70)
+38 + j*(249)
+221 + j*(107)
+157 + j*(-16)
+155 + j*(-5)
+179 + j*(-116)
+18 + j*(-182)
+-58 + j*(-21)
+92 + j*(47)
+168 + j*(-78)
+130 + j*(-164)
+100 + j*(-258)
+-71 + j*(-373)
+-326 + j*(-263)
+-372 + j*(6)
+-234 + j*(173)
+-55 + j*(218)
+138 + j*(98)
+81 + j*(-190)
+-284 + j*(-191)
+-366 + j*(220)
+19 + j*(387)
+223 + j*(95)
+37 + j*(-59)
+-33 + j*(66)
+74 + j*(77)
+67 + j*(-16)
+18 + j*(-8)
+35 + j*(-17)
+-20 + j*(-47)
+-59 + j*(38)
+51 + j*(74)
+84 + j*(-63)
+-71 + j*(-116)
+-163 + j*(29)
+-78 + j*(157)
+45 + j*(167)
+136 + j*(98)
+145 + j*(-29)
+32 + j*(-86)
+-31 + j*(0)
+45 + j*(35)
+37 + j*(-54)
+-79 + j*(-17)
+-37 + j*(136)
+124 + j*(117)
+135 + j*(4)
+116 + j*(9)
+202 + j*(-54)
+114 + j*(-238)
+-129 + j*(-163)
+-43 + j*(97)
+244 + j*(-28)
+110 + j*(-376)
+-279 + j*(-310)
+-317 + j*(26)
+-120 + j*(119)
+-50 + j*(67)
+-16 + j*(54)
+-6 + j*(-23)
+-122 + j*(-19)
+-99 + j*(146)
+88 + j*(121)
+55 + j*(-42)
+-49 + j*(33)
+95 + j*(83)
+111 + j*(-130)
+-130 + j*(-122)
+-85 + j*(98)
+86 + j*(-28)
+-152 + j*(-158)
+-274 + j*(185)
+112 + j*(320)
+233 + j*(-37)
+-53 + j*(-80)
+35 + j*(146)
+236 + j*(-71)
+-59 + j*(-267)
+-232 + j*(49)
+74 + j*(153)
+74 + j*(-140)
+-220 + j*(-44)
+-60 + j*(252)
+216 + j*(71)
+47 + j*(-149)
+-83 + j*(-3)
+47 + j*(13)
+-41 + j*(-135)
+-235 + j*(13)
+-110 + j*(233)
+67 + j*(183)
+64 + j*(119)
+117 + j*(146)
+194 + j*(61)
+143 + j*(-20)
+128 + j*(15)
+204 + j*(-31)
+170 + j*(-153)
+68 + j*(-177)
+22 + j*(-149)
+-2 + j*(-132)
+5 + j*(-116)
+-2 + j*(-176)
+-142 + j*(-200)
+-238 + j*(-6)
+-39 + j*(161)
+194 + j*(-13)
+81 + j*(-310)
+-246 + j*(-333)
+-436 + j*(-70)
+-335 + j*(222)
+-67 + j*(279)
+45 + j*(95)
+-96 + j*(21)
+-137 + j*(187)
+50 + j*(249)
+135 + j*(106)
+70 + j*(63)
+136 + j*(97)
+212 + j*(-73)
+5 + j*(-238)
+-239 + j*(-66)
+-150 + j*(211)
+103 + j*(215)
+163 + j*(35)
+57 + j*(-25)
+30 + j*(62)
+146 + j*(84)
+233 + j*(-52)
+152 + j*(-210)
+-9 + j*(-251)
+-136 + j*(-193)
+-221 + j*(-83)
+-220 + j*(81)
+-87 + j*(194)
+66 + j*(155)
+107 + j*(48)
+74 + j*(-18)
+21 + j*(-40)
+-28 + j*(-1)
+13 + j*(69)
+110 + j*(30)
+85 + j*(-83)
+-18 + j*(-68)
+13 + j*(9)
+90 + j*(-57)
+10 + j*(-161)
+-117 + j*(-118)
+-137 + j*(-20)
+-113 + j*(33)
+-80 + j*(78)
+-25 + j*(77)
+-42 + j*(56)
+-46 + j*(147)
+124 + j*(187)
+217 + j*(-13)
+31 + j*(-104)
+2 + j*(95)
+279 + j*(64)
+256 + j*(-303)
+-119 + j*(-344)
+-187 + j*(-61)
+-23 + j*(-69)
+-168 + j*(-178)
+-296 + j*(68)
+-33 + j*(220)
+90 + j*(-9)
+-116 + j*(-49)
+-62 + j*(161)
+171 + j*(33)
+8 + j*(-227)
+-273 + j*(-74)
+-165 + j*(191)
+39 + j*(132)
+1 + j*(-1)
+-91 + j*(30)
+-94 + j*(113)
+-35 + j*(174)
+59 + j*(161)
+62 + j*(87)
+10 + j*(141)
+151 + j*(231)
+321 + j*(64)
+194 + j*(-141)
+42 + j*(-47)
+175 + j*(44)
+270 + j*(-148)
+98 + j*(-295)
+-53 + j*(-226)
+-73 + j*(-174)
+-142 + j*(-168)
+-224 + j*(-60)
+-188 + j*(91)
+-53 + j*(160)
+82 + j*(100)
+92 + j*(-41)
+-30 + j*(-74)
+-54 + j*(42)
+82 + j*(57)
+119 + j*(-100)
+-28 + j*(-187)
+-156 + j*(-103)
+-156 + j*(23)
+-69 + j*(81)
+-1 + j*(32)
+-45 + j*(-26)
+-103 + j*(35)
+-39 + j*(94)
+-1 + j*(37)
+-69 + j*(52)
+-14 + j*(148)
+107 + j*(83)
+38 + j*(-28)
+-47 + j*(65)
+69 + j*(149)
+162 + j*(56)
+148 + j*(-6)
+187 + j*(-57)
+151 + j*(-212)
+-47 + j*(-245)
+-120 + j*(-114)
+-88 + j*(-104)
+-215 + j*(-94)
+-254 + j*(150)
+25 + j*(280)
+215 + j*(49)
+75 + j*(-141)
+-57 + j*(-86)
+-49 + j*(-52)
+-116 + j*(-78)
+-218 + j*(32)
+-154 + j*(216)
+44 + j*(256)
+159 + j*(120)
+93 + j*(11)
+29 + j*(79)
+168 + j*(136)
+289 + j*(-55)
+121 + j*(-248)
+-80 + j*(-144)
+-9 + j*(2)
+95 + j*(-88)
+-16 + j*(-204)
+-158 + j*(-133)
+-169 + j*(-13)
+-126 + j*(45)
+-87 + j*(78)
+-39 + j*(97)
+15 + j*(76)
+16 + j*(18)
+-62 + j*(27)
+-51 + j*(170)
+177 + j*(209)
+314 + j*(-57)
+86 + j*(-280)
+-158 + j*(-137)
+-91 + j*(60)
+25 + j*(33)
+6 + j*(-6)
+29 + j*(25)
+83 + j*(-34)
+33 + j*(-112)
+-38 + j*(-119)
+-115 + j*(-112)
+-223 + j*(7)
+-120 + j*(232)
+189 + j*(190)
+219 + j*(-157)
+-121 + j*(-256)
+-274 + j*(45)
+-37 + j*(234)
+153 + j*(59)
+25 + j*(-115)
+-133 + j*(-16)
+-61 + j*(133)
+59 + j*(97)
+47 + j*(34)
+62 + j*(63)
+148 + j*(-17)
+33 + j*(-173)
+-186 + j*(-53)
+-88 + j*(214)
+206 + j*(169)
+242 + j*(-101)
+56 + j*(-220)
+-110 + j*(-164)
+-190 + j*(8)
+-42 + j*(207)
+250 + j*(103)
+214 + j*(-243)
+-114 + j*(-279)
+-187 + j*(-39)
+-49 + j*(-1)
+-78 + j*(-83)
+-148 + j*(-26)
+-132 + j*(13)
+-185 + j*(52)
+-146 + j*(223)
+103 + j*(230)
+155 + j*(-30)
+-83 + j*(-110)
+-197 + j*(76)
+-116 + j*(229)
+21 + j*(315)
+247 + j*(280)
+337 + j*(28)
+148 + j*(-100)
+95 + j*(46)
+279 + j*(8)
+224 + j*(-229)
+4 + j*(-213)
+19 + j*(-83)
+58 + j*(-142)
+-37 + j*(-124)
+52 + j*(-28)
+164 + j*(-220)
+-91 + j*(-414)
+-366 + j*(-209)
+-298 + j*(42)
+-187 + j*(81)
+-144 + j*(138)
+12 + j*(137)
+37 + j*(-57)
+-192 + j*(-78)
+-225 + j*(185)
+33 + j*(250)
+116 + j*(46)
+-38 + j*(-6)
+-51 + j*(135)
+100 + j*(148)
+154 + j*(6)
+57 + j*(-79)
+-26 + j*(-34)
+-6 + j*(18)
+17 + j*(-15)
+-52 + j*(-29)
+-91 + j*(77)
+27 + j*(167)
+163 + j*(81)
+145 + j*(-67)
+37 + j*(-111)
+-34 + j*(-67)
+-49 + j*(-6)
+-13 + j*(38)
+33 + j*(25)
+28 + j*(-11)
+10 + j*(5)
+55 + j*(19)
+85 + j*(-62)
+-13 + j*(-122)
+-99 + j*(-35)
+-28 + j*(44)
+11 + j*(-31)
+-107 + j*(-26)
+-80 + j*(164)
+177 + j*(151)
+196 + j*(-140)
+-95 + j*(-177)
+-123 + j*(104)
+161 + j*(116)
+181 + j*(-173)
+-81 + j*(-233)
+-182 + j*(-49)
+-103 + j*(49)
+-45 + j*(55)
+-7 + j*(40)
+-18 + j*(9)
+-38 + j*(62)
+76 + j*(97)
+147 + j*(-59)
+1 + j*(-163)
+-95 + j*(-69)
+-64 + j*(-48)
+-163 + j*(-59)
+-209 + j*(148)
+40 + j*(250)
+170 + j*(28)
+2 + j*(-81)
+-56 + j*(37)
+15 + j*(49)
+-16 + j*(30)
+20 + j*(98)
+111 + j*(29)
+21 + j*(-49)
+-20 + j*(66)
+112 + j*(75)
+100 + j*(-32)
+85 + j*(42)
+291 + j*(-49)
+173 + j*(-420)
+-298 + j*(-370)
+-324 + j*(59)
+-48 + j*(74)
+-159 + j*(-41)
+-181 + j*(245)
+249 + j*(251)
+287 + j*(-256)
+-209 + j*(-344)
+-335 + j*(52)
+-99 + j*(153)
+-103 + j*(59)
+-148 + j*(183)
+20 + j*(267)
+143 + j*(168)
+164 + j*(77)
+154 + j*(-22)
+39 + j*(-74)
+-16 + j*(31)
+81 + j*(57)
+69 + j*(-30)
+8 + j*(27)
+122 + j*(63)
+148 + j*(-88)
+8 + j*(-102)
+31 + j*(-4)
+88 + j*(-91)
+-49 + j*(-115)
+-43 + j*(47)
+124 + j*(12)
+73 + j*(-129)
+17 + j*(-69)
+127 + j*(-136)
+-30 + j*(-349)
+-322 + j*(-190)
+-207 + j*(65)
+-92 + j*(-72)
+-361 + j*(-65)
+-357 + j*(356)
+94 + j*(453)
+255 + j*(125)
+100 + j*(25)
+146 + j*(93)
+240 + j*(-49)
+127 + j*(-201)
+-4 + j*(-204)
+-99 + j*(-184)
+-204 + j*(-93)
+-183 + j*(53)
+-101 + j*(95)
+-60 + j*(116)
+37 + j*(127)
+93 + j*(2)
+-21 + j*(-56)
+-40 + j*(37)
+48 + j*(-22)
+-98 + j*(-139)
+-279 + j*(56)
+-123 + j*(288)
+81 + j*(230)
+97 + j*(149)
+161 + j*(140)
+210 + j*(7)
+93 + j*(-68)
+64 + j*(6)
+116 + j*(-44)
+-8 + j*(-90)
+-49 + j*(92)
+177 + j*(143)
+261 + j*(-70)
+144 + j*(-159)
+139 + j*(-167)
+78 + j*(-310)
+-162 + j*(-307)
+-234 + j*(-112)
+-184 + j*(-62)
+-274 + j*(4)
+-209 + j*(250)
+97 + j*(261)
+163 + j*(23)
+49 + j*(-13)
+113 + j*(1)
+88 + j*(-163)
+-120 + j*(-135)
+-76 + j*(54)
+69 + j*(-40)
+-93 + j*(-144)
+-165 + j*(64)
+66 + j*(83)
+15 + j*(-163)
+-262 + j*(-41)
+-98 + j*(272)
+240 + j*(97)
+84 + j*(-248)
+-245 + j*(-141)
+-202 + j*(138)
+-9 + j*(141)
+-1 + j*(28)
+-83 + j*(39)
+-77 + j*(132)
+23 + j*(163)
+81 + j*(83)
+12 + j*(46)
+16 + j*(149)
+179 + j*(144)
+218 + j*(-46)
+69 + j*(-117)
+20 + j*(-46)
+28 + j*(-66)
+-68 + j*(-49)
+-46 + j*(98)
+112 + j*(77)
+72 + j*(-54)
+-12 + j*(48)
+187 + j*(113)
+289 + j*(-169)
+-6 + j*(-335)
+-197 + j*(-103)
+-42 + j*(43)
+20 + j*(-68)
+-81 + j*(-54)
+-11 + j*(52)
+110 + j*(-62)
+-29 + j*(-222)
+-240 + j*(-105)
+-187 + j*(134)
+35 + j*(152)
+90 + j*(-28)
+-54 + j*(-78)
+-71 + j*(60)
+93 + j*(36)
+40 + j*(-177)
+-226 + j*(-124)
+-188 + j*(163)
+86 + j*(129)
+23 + j*(-124)
+-231 + j*(-31)
+-148 + j*(234)
+86 + j*(197)
+88 + j*(45)
+25 + j*(46)
+52 + j*(56)
+45 + j*(24)
+30 + j*(45)
+59 + j*(49)
+66 + j*(45)
+127 + j*(57)
+200 + j*(-73)
+43 + j*(-219)
+-136 + j*(-70)
+16 + j*(93)
+148 + j*(-98)
+-89 + j*(-221)
+-221 + j*(32)
+6 + j*(159)
+101 + j*(-30)
+-57 + j*(-80)
+-86 + j*(57)
+13 + j*(91)
+62 + j*(70)
+149 + j*(31)
+168 + j*(-148)
+-50 + j*(-239)
+-175 + j*(-48)
+-16 + j*(45)
+9 + j*(-124)
+-214 + j*(-118)
+-241 + j*(146)
+-8 + j*(228)
+90 + j*(82)
+18 + j*(32)
+32 + j*(85)
+107 + j*(50)
+110 + j*(-39)
+56 + j*(-98)
+-40 + j*(-115)
+-132 + j*(-23)
+-74 + j*(122)
+91 + j*(100)
+89 + j*(-47)
+-24 + j*(-38)
+23 + j*(49)
+101 + j*(-47)
+-33 + j*(-129)
+-115 + j*(35)
+75 + j*(115)
+168 + j*(-95)
+-33 + j*(-216)
+-160 + j*(-74)
+-98 + j*(11)
+-95 + j*(-8)
+-118 + j*(54)
+-52 + j*(83)
+-64 + j*(42)
+-121 + j*(134)
+11 + j*(265)
+197 + j*(185)
+222 + j*(35)
+206 + j*(-37)
+188 + j*(-154)
+32 + j*(-243)
+-110 + j*(-148)
+-96 + j*(-51)
+-106 + j*(-40)
+-139 + j*(66)
+8 + j*(163)
+144 + j*(21)
+14 + j*(-112)
+-97 + j*(24)
+70 + j*(129)
+204 + j*(-57)
+37 + j*(-243)
+-178 + j*(-142)
+-157 + j*(46)
+-51 + j*(66)
+-57 + j*(59)
+1 + j*(157)
+222 + j*(100)
+239 + j*(-216)
+-88 + j*(-344)
+-288 + j*(-112)
+-199 + j*(47)
+-189 + j*(48)
+-208 + j*(198)
+13 + j*(298)
+150 + j*(100)
+-20 + j*(11)
+-41 + j*(216)
+219 + j*(242)
+327 + j*(5)
+231 + j*(-164)
+106 + j*(-264)
+-136 + j*(-272)
+-288 + j*(7)
+-48 + j*(240)
+183 + j*(67)
+69 + j*(-98)
+8 + j*(-6)
+122 + j*(-62)
+-15 + j*(-235)
+-255 + j*(-78)
+-135 + j*(192)
+119 + j*(133)
+104 + j*(-75)
+-58 + j*(-89)
+-105 + j*(45)
+6 + j*(143)
+162 + j*(75)
+156 + j*(-111)
+-13 + j*(-154)
+-62 + j*(-30)
+33 + j*(-12)
+28 + j*(-91)
+-11 + j*(-88)
+13 + j*(-136)
+-122 + j*(-258)
+-389 + j*(-124)
+-364 + j*(233)
+-42 + j*(342)
+110 + j*(139)
+2 + j*(38)
+-25 + j*(129)
+90 + j*(124)
+81 + j*(5)
+-28 + j*(35)
+36 + j*(149)
+177 + j*(70)
+100 + j*(-72)
+-10 + j*(13)
+117 + j*(105)
+227 + j*(-49)
+110 + j*(-186)
+2 + j*(-158)
+-42 + j*(-147)
+-136 + j*(-84)
+-80 + j*(61)
+59 + j*(-19)
+-93 + j*(-139)
+-214 + j*(105)
+108 + j*(238)
+248 + j*(-132)
+-146 + j*(-269)
+-270 + j*(115)
+57 + j*(209)
+85 + j*(-21)
+-40 + j*(62)
+174 + j*(110)
+185 + j*(-214)
+-194 + j*(-202)
+-136 + j*(186)
+248 + j*(59)
+61 + j*(-331)
+-327 + j*(-134)
+-161 + j*(205)
+70 + j*(64)
+-84 + j*(-35)
+-82 + j*(168)
+170 + j*(116)
+105 + j*(-159)
+-163 + j*(-94)
+-102 + j*(147)
+100 + j*(89)
+31 + j*(-79)
+-114 + j*(4)
+-25 + j*(144)
+112 + j*(64)
+41 + j*(-65)
+-84 + j*(9)
+-18 + j*(151)
+137 + j*(129)
+190 + j*(9)
+163 + j*(-89)
+85 + j*(-173)
+-68 + j*(-154)
+-93 + j*(26)
+119 + j*(64)
+183 + j*(-209)
+-139 + j*(-343)
+-365 + j*(-29)
+-107 + j*(252)
+180 + j*(51)
+11 + j*(-232)
+-279 + j*(-96)
+-200 + j*(193)
+42 + j*(170)
+37 + j*(-5)
+-93 + j*(13)
+-81 + j*(137)
+21 + j*(187)
+158 + j*(174)
+303 + j*(-10)
+155 + j*(-324)
+-275 + j*(-277)
+-348 + j*(180)
+57 + j*(327)
+197 + j*(1)
+-89 + j*(-71)
+-107 + j*(244)
+254 + j*(283)
+382 + j*(-61)
+137 + j*(-263)
+-69 + j*(-141)
+-19 + j*(32)
+138 + j*(8)
+135 + j*(-159)
+-20 + j*(-175)
+-9 + j*(-51)
+126 + j*(-153)
+-52 + j*(-384)
+-409 + j*(-234)
+-389 + j*(165)
+-78 + j*(276)
+81 + j*(133)
+94 + j*(11)
+42 + j*(-99)
+-103 + j*(-112)
+-155 + j*(25)
+-57 + j*(74)
+-47 + j*(23)
+-64 + j*(69)
+36 + j*(51)
+-16 + j*(-105)
+-230 + j*(-46)
+-211 + j*(189)
+-51 + j*(221)
+-39 + j*(208)
+67 + j*(312)
+308 + j*(188)
+240 + j*(-112)
+-30 + j*(-91)
+-16 + j*(126)
+153 + j*(117)
+170 + j*(12)
+156 + j*(-11)
+173 + j*(-64)
+130 + j*(-112)
+123 + j*(-123)
+100 + j*(-220)
+-86 + j*(-247)
+-170 + j*(-43)
+21 + j*(40)
+64 + j*(-161)
+-175 + j*(-176)
+-196 + j*(100)
+91 + j*(138)
+151 + j*(-144)
+-111 + j*(-234)
+-230 + j*(-19)
+-85 + j*(96)
+-11 + j*(9)
+-78 + j*(-10)
+-66 + j*(57)
+-17 + j*(30)
+-70 + j*(21)
+-45 + j*(133)
+139 + j*(109)
+154 + j*(-121)
+-70 + j*(-189)
+-165 + j*(-28)
+-98 + j*(46)
+-93 + j*(60)
+-33 + j*(136)
+93 + j*(59)
+-5 + j*(-81)
+-144 + j*(55)
+36 + j*(194)
+176 + j*(-16)
+-49 + j*(-146)
+-166 + j*(75)
+32 + j*(179)
+109 + j*(33)
+25 + j*(9)
+74 + j*(42)
+80 + j*(-77)
+-93 + j*(-79)
+-105 + j*(128)
+111 + j*(162)
+170 + j*(-36)
+-4 + j*(-98)
+-60 + j*(74)
+142 + j*(148)
+281 + j*(-80)
+70 + j*(-296)
+-184 + j*(-135)
+-49 + j*(103)
+166 + j*(-62)
+-46 + j*(-301)
+-354 + j*(-80)
+-202 + j*(281)
+147 + j*(244)
+206 + j*(-15)
+78 + j*(-109)
+20 + j*(-95)
+-17 + j*(-116)
+-112 + j*(-98)
+-159 + j*(30)
+-44 + j*(146)
+110 + j*(66)
+59 + j*(-88)
+-69 + j*(-35)
+13 + j*(67)
+104 + j*(-51)
+-37 + j*(-129)
+-83 + j*(6)
+40 + j*(-13)
+-67 + j*(-129)
+-181 + j*(74)
+120 + j*(185)
+238 + j*(-213)
+-223 + j*(-363)
+-411 + j*(107)
+-2 + j*(288)
+109 + j*(-43)
+-169 + j*(-46)
+-73 + j*(214)
+182 + j*(56)
+-7 + j*(-186)
+-223 + j*(5)
+-57 + j*(177)
+38 + j*(27)
+-137 + j*(19)
+-122 + j*(259)
+152 + j*(303)
+272 + j*(86)
+-58 + j*(-93)
+-100 + j*(0)
+-47 + j*(62)
+-12 + j*(48)
+-19 + j*(68)
+38 + j*(112)
+134 + j*(77)
+177 + j*(-38)
+98 + j*(-164)
+-70 + j*(-146)
+-91 + j*(26)
+86 + j*(44)
+100 + j*(-155)
+-105 + j*(-187)
+-153 + j*(-31)
+-88 + j*(-11)
+-148 + j*(4)
+-104 + j*(144)
+77 + j*(93)
+1 + j*(-83)
+-163 + j*(29)
+-42 + j*(179)
+59 + j*(88)
+6 + j*(103)
+173 + j*(161)
+295 + j*(-125)
+-27 + j*(-320)
+-240 + j*(-48)
+-51 + j*(89)
+-64 + j*(-56)
+-240 + j*(108)
+-5 + j*(366)
+302 + j*(178)
+229 + j*(-81)
+117 + j*(-100)
+71 + j*(-159)
+-107 + j*(-115)
+-44 + j*(127)
+263 + j*(4)
+87 + j*(-390)
+-380 + j*(-223)
+-282 + j*(247)
+94 + j*(209)
+51 + j*(-11)
+-28 + j*(110)
+204 + j*(122)
+228 + j*(-181)
+-72 + j*(-256)
+-180 + j*(-27)
+-45 + j*(78)
+35 + j*(24)
+47 + j*(-24)
+25 + j*(-95)
+-91 + j*(-107)
+-139 + j*(34)
+9 + j*(113)
+112 + j*(-32)
+-18 + j*(-163)
+-177 + j*(-57)
+-107 + j*(117)
+78 + j*(79)
+77 + j*(-130)
+-155 + j*(-194)
+-317 + j*(21)
+-192 + j*(254)
+25 + j*(245)
+75 + j*(124)
+42 + j*(116)
+113 + j*(134)
+172 + j*(31)
+92 + j*(-42)
+69 + j*(21)
+177 + j*(-21)
+120 + j*(-209)
+-117 + j*(-191)
+-136 + j*(36)
+48 + j*(42)
+5 + j*(-117)
+-158 + j*(-22)
+-24 + j*(159)
+185 + j*(-5)
+11 + j*(-269)
+-325 + j*(-140)
+-317 + j*(235)
+-3 + j*(373)
+219 + j*(210)
+212 + j*(26)
+151 + j*(-43)
+105 + j*(-101)
+-23 + j*(-127)
+-122 + j*(30)
+38 + j*(196)
+255 + j*(71)
+202 + j*(-150)
+57 + j*(-155)
+62 + j*(-115)
+39 + j*(-182)
+-60 + j*(-165)
+-47 + j*(-109)
+-64 + j*(-175)
+-222 + j*(-132)
+-204 + j*(82)
+8 + j*(83)
+1 + j*(-105)
+-180 + j*(-86)
+-175 + j*(76)
+-64 + j*(91)
+-54 + j*(36)
+-90 + j*(42)
+-106 + j*(91)
+-60 + j*(166)
+63 + j*(159)
+100 + j*(40)
+21 + j*(1)
+16 + j*(33)
+9 + j*(-4)
+-69 + j*(47)
+34 + j*(168)
+188 + j*(21)
+13 + j*(-138)
+-121 + j*(76)
+148 + j*(175)
+223 + j*(-135)
+-93 + j*(-193)
+-115 + j*(88)
+107 + j*(58)
+14 + j*(-93)
+-54 + j*(69)
+182 + j*(64)
+148 + j*(-245)
+-184 + j*(-229)
+-210 + j*(34)
+-93 + j*(59)
+-148 + j*(106)
+-1 + j*(295)
+303 + j*(149)
+215 + j*(-178)
+-49 + j*(-133)
+8 + j*(54)
+163 + j*(-39)
+81 + j*(-192)
+-59 + j*(-179)
+-118 + j*(-100)
+-118 + j*(-17)
+-53 + j*(13)
+-23 + j*(-49)
+-103 + j*(-74)
+-150 + j*(24)
+-73 + j*(118)
+40 + j*(91)
+52 + j*(-34)
+-111 + j*(-65)
+-180 + j*(177)
+151 + j*(338)
+451 + j*(-25)
+139 + j*(-444)
+-315 + j*(-242)
+-226 + j*(152)
+42 + j*(132)
+35 + j*(14)
+57 + j*(62)
+177 + j*(-66)
+-3 + j*(-282)
+-297 + j*(-113)
+-188 + j*(219)
+132 + j*(180)
+148 + j*(-101)
+-95 + j*(-163)
+-209 + j*(33)
+-90 + j*(197)
+86 + j*(182)
+173 + j*(62)
+156 + j*(-76)
+34 + j*(-168)
+-134 + j*(-119)
+-182 + j*(73)
+-31 + j*(220)
+190 + j*(178)
+297 + j*(-51)
+141 + j*(-304)
+-197 + j*(-269)
+-278 + j*(76)
+25 + j*(207)
+144 + j*(-59)
+-113 + j*(-132)
+-148 + j*(136)
+122 + j*(145)
+107 + j*(-110)
+-127 + j*(-78)
+-93 + j*(135)
+77 + j*(127)
+96 + j*(30)
+80 + j*(14)
+95 + j*(-9)
+99 + j*(-38)
+117 + j*(-107)
+3 + j*(-215)
+-190 + j*(-97)
+-77 + j*(134)
+146 + j*(0)
+-30 + j*(-206)
+-221 + j*(6)
+1 + j*(166)
+99 + j*(-44)
+-90 + j*(-54)
+-4 + j*(112)
+129 + j*(-68)
+-141 + j*(-153)
+-177 + j*(202)
+255 + j*(204)
+247 + j*(-276)
+-231 + j*(-282)
+-257 + j*(129)
+39 + j*(151)
+18 + j*(-12)
+-31 + j*(76)
+124 + j*(52)
+65 + j*(-145)
+-137 + j*(-75)
+-69 + j*(94)
+24 + j*(14)
+-105 + j*(13)
+-45 + j*(247)
+314 + j*(206)
+386 + j*(-235)
+-34 + j*(-457)
+-368 + j*(-156)
+-218 + j*(197)
+83 + j*(174)
+133 + j*(-45)
+3 + j*(-134)
+-103 + j*(-102)
+-164 + j*(-21)
+-149 + j*(93)
+-49 + j*(140)
+1 + j*(98)
+-2 + j*(107)
+66 + j*(122)
+112 + j*(45)
+75 + j*(13)
+108 + j*(7)
+89 + j*(-122)
+-135 + j*(-112)
+-146 + j*(194)
+220 + j*(252)
+347 + j*(-121)
+47 + j*(-301)
+-122 + j*(-133)
+-78 + j*(-59)
+-132 + j*(-39)
+-121 + j*(107)
+43 + j*(123)
+65 + j*(3)
+0 + j*(6)
+28 + j*(19)
+-25 + j*(-3)
+-30 + j*(155)
+253 + j*(176)
+336 + j*(-194)
+-51 + j*(-327)
+-173 + j*(32)
+180 + j*(102)
+216 + j*(-272)
+-151 + j*(-323)
+-221 + j*(-20)
+2 + j*(30)
+21 + j*(-152)
+-139 + j*(-194)
+-252 + j*(-92)
+-257 + j*(56)
+-141 + j*(144)
+-59 + j*(66)
+-171 + j*(40)
+-189 + j*(245)
+78 + j*(329)
+228 + j*(83)
+52 + j*(-64)
+-35 + j*(65)
+88 + j*(93)
+81 + j*(-29)
+-19 + j*(4)
+51 + j*(73)
+91 + j*(-49)
+-89 + j*(-61)
+-86 + j*(194)
+256 + j*(208)
+338 + j*(-194)
+-61 + j*(-372)
+-310 + j*(-57)
+-134 + j*(196)
+39 + j*(155)
+78 + j*(124)
+184 + j*(71)
+158 + j*(-110)
+-35 + j*(-86)
+41 + j*(105)
+264 + j*(-45)
+71 + j*(-322)
+-231 + j*(-133)
+-52 + j*(143)
+177 + j*(-59)
+-62 + j*(-261)
+-265 + j*(-12)
+-57 + j*(189)
+100 + j*(47)
+11 + j*(-28)
+30 + j*(59)
+171 + j*(-17)
+115 + j*(-232)
+-136 + j*(-275)
+-298 + j*(-68)
+-198 + j*(163)
+26 + j*(162)
+63 + j*(-18)
+-88 + j*(-41)
+-87 + j*(114)
+82 + j*(100)
+62 + j*(-83)
+-148 + j*(-65)
+-165 + j*(178)
+78 + j*(281)
+283 + j*(105)
+230 + j*(-146)
+14 + j*(-204)
+-83 + j*(-59)
+19 + j*(8)
+47 + j*(-107)
+-103 + j*(-122)
+-119 + j*(39)
+34 + j*(43)
+8 + j*(-108)
+-144 + j*(-64)
+-92 + j*(64)
+-23 + j*(-25)
+-202 + j*(-58)
+-268 + j*(207)
+-1 + j*(356)
+174 + j*(184)
+100 + j*(89)
+133 + j*(158)
+271 + j*(72)
+241 + j*(-103)
+148 + j*(-155)
+100 + j*(-218)
+-76 + j*(-274)
+-255 + j*(-100)
+-162 + j*(118)
+-14 + j*(100)
+-36 + j*(74)
+29 + j*(173)
+219 + j*(96)
+190 + j*(-135)
+-16 + j*(-155)
+-52 + j*(0)
+69 + j*(35)
+124 + j*(-68)
+57 + j*(-160)
+-52 + j*(-144)
+-59 + j*(-53)
+17 + j*(-84)
+-78 + j*(-204)
+-276 + j*(-84)
+-190 + j*(167)
+47 + j*(124)
+13 + j*(-64)
+-138 + j*(-23)
+-124 + j*(95)
+-76 + j*(151)
+35 + j*(229)
+257 + j*(121)
+202 + j*(-192)
+-126 + j*(-186)
+-129 + j*(104)
+112 + j*(78)
+50 + j*(-122)
+-115 + j*(-42)
+-47 + j*(78)
+13 + j*(50)
+39 + j*(70)
+154 + j*(0)
+69 + j*(-195)
+-146 + j*(-127)
+-76 + j*(21)
+-59 + j*(-121)
+-358 + j*(-37)
+-269 + j*(436)
+284 + j*(436)
+382 + j*(-49)
+68 + j*(-164)
+28 + j*(-40)
+11 + j*(-114)
+-161 + j*(-1)
+25 + j*(226)
+277 + j*(-13)
+2 + j*(-267)
+-229 + j*(18)
+38 + j*(206)
+164 + j*(-23)
+-12 + j*(-69)
+23 + j*(59)
+113 + j*(-27)
+19 + j*(-70)
+52 + j*(20)
+153 + j*(-98)
+1 + j*(-229)
+-131 + j*(-111)
+-78 + j*(-48)
+-129 + j*(-68)
+-166 + j*(77)
+5 + j*(139)
+53 + j*(0)
+-34 + j*(21)
+91 + j*(74)
+140 + j*(-159)
+-173 + j*(-236)
+-292 + j*(107)
+22 + j*(258)
+171 + j*(2)
+-24 + j*(-113)
+-100 + j*(34)
+14 + j*(82)
+34 + j*(-3)
+-37 + j*(-2)
+-23 + j*(80)
+86 + j*(86)
+136 + j*(-40)
+23 + j*(-136)
+-95 + j*(-59)
+-56 + j*(43)
+0 + j*(30)
+-11 + j*(40)
+77 + j*(76)
+170 + j*(-75)
+3 + j*(-244)
+-219 + j*(-118)
+-163 + j*(91)
+-27 + j*(72)
+-74 + j*(15)
+-110 + j*(128)
+45 + j*(200)
+165 + j*(61)
+72 + j*(-80)
+-64 + j*(-24)
+-37 + j*(105)
+81 + j*(119)
+138 + j*(49)
+156 + j*(-16)
+142 + j*(-117)
+9 + j*(-184)
+-108 + j*(-65)
+-1 + j*(55)
+105 + j*(-69)
+-52 + j*(-182)
+-187 + j*(-1)
+-2 + j*(153)
+178 + j*(-25)
+27 + j*(-255)
+-250 + j*(-187)
+-313 + j*(76)
+-156 + j*(240)
+-13 + j*(222)
+21 + j*(215)
+143 + j*(276)
+366 + j*(147)
+343 + j*(-151)
+117 + j*(-214)
+105 + j*(-119)
+141 + j*(-264)
+-132 + j*(-344)
+-269 + j*(-49)
+-8 + j*(69)
+23 + j*(-182)
+-247 + j*(-142)
+-164 + j*(129)
+55 + j*(-15)
+-192 + j*(-189)
+-375 + j*(148)
+-27 + j*(369)
+183 + j*(85)
+-32 + j*(-37)
+-41 + j*(161)
+185 + j*(100)
+115 + j*(-148)
+-120 + j*(-119)
+-140 + j*(70)
+-25 + j*(124)
+41 + j*(73)
+18 + j*(6)
+-73 + j*(35)
+-45 + j*(182)
+153 + j*(185)
+195 + j*(-16)
+21 + j*(-59)
+9 + j*(117)
+218 + j*(127)
+294 + j*(-98)
+137 + j*(-260)
+-60 + j*(-227)
+-136 + j*(-63)
+-22 + j*(70)
+148 + j*(-11)
+111 + j*(-217)
+-107 + j*(-260)
+-231 + j*(-105)
+-192 + j*(38)
+-115 + j*(89)
+-54 + j*(93)
+-22 + j*(81)
+1 + j*(84)
+52 + j*(76)
+77 + j*(13)
+37 + j*(-25)
+25 + j*(8)
+88 + j*(-7)
+87 + j*(-119)
+-45 + j*(-185)
+-189 + j*(-96)
+-198 + j*(83)
+-51 + j*(183)
+87 + j*(113)
+77 + j*(4)
+25 + j*(16)
+90 + j*(40)
+155 + j*(-81)
+42 + j*(-221)
+-137 + j*(-199)
+-225 + j*(-76)
+-243 + j*(45)
+-204 + j*(182)
+-61 + j*(288)
+133 + j*(248)
+224 + j*(81)
+153 + j*(-76)
+4 + j*(-97)
+-74 + j*(21)
+14 + j*(138)
+168 + j*(95)
+193 + j*(-69)
+64 + j*(-153)
+-27 + j*(-81)
+20 + j*(-16)
+66 + j*(-81)
+-18 + j*(-142)
+-101 + j*(-75)
+-67 + j*(-4)
+-41 + j*(-32)
+-103 + j*(-24)
+-98 + j*(81)
+29 + j*(103)
+74 + j*(-22)
+-47 + j*(-78)
+-127 + j*(41)
+-26 + j*(160)
+125 + j*(113)
+160 + j*(-31)
+75 + j*(-139)
+-60 + j*(-154)
+-174 + j*(-51)
+-153 + j*(119)
+6 + j*(189)
+113 + j*(96)
+94 + j*(30)
+121 + j*(30)
+172 + j*(-88)
+10 + j*(-219)
+-187 + j*(-54)
+-39 + j*(184)
+237 + j*(52)
+151 + j*(-251)
+-156 + j*(-244)
+-231 + j*(13)
+-58 + j*(145)
+87 + j*(50)
+42 + j*(-88)
+-91 + j*(-62)
+-61 + j*(79)
+98 + j*(30)
+33 + j*(-157)
+-182 + j*(-86)
+-115 + j*(130)
+73 + j*(50)
+-46 + j*(-101)
+-185 + j*(64)
+5 + j*(214)
+159 + j*(35)
+18 + j*(-108)
+-103 + j*(-11)
+-60 + j*(83)
+-4 + j*(95)
+47 + j*(91)
+85 + j*(33)
+40 + j*(-16)
+4 + j*(17)
+15 + j*(41)
+26 + j*(81)
+150 + j*(123)
+303 + j*(-62)
+138 + j*(-344)
+-212 + j*(-277)
+-256 + j*(30)
+-73 + j*(128)
+-6 + j*(70)
+5 + j*(75)
+61 + j*(65)
+85 + j*(18)
+101 + j*(-24)
+77 + j*(-115)
+-62 + j*(-132)
+-110 + j*(13)
+10 + j*(68)
+47 + j*(-10)
+30 + j*(-11)
+99 + j*(-71)
+-31 + j*(-247)
+-332 + j*(-99)
+-231 + j*(294)
+177 + j*(280)
+240 + j*(-62)
+8 + j*(-164)
+-102 + j*(-46)
+-88 + j*(66)
+23 + j*(156)
+206 + j*(66)
+171 + j*(-167)
+-32 + j*(-187)
+-60 + j*(-83)
+-61 + j*(-118)
+-185 + j*(-63)
+-129 + j*(107)
+15 + j*(49)
+-84 + j*(-28)
+-100 + j*(136)
+112 + j*(112)
+54 + j*(-110)
+-141 + j*(-11)
+1 + j*(137)
+76 + j*(-54)
+-173 + j*(-47)
+-104 + j*(264)
+245 + j*(156)
+110 + j*(-190)
+-223 + j*(-24)
+-37 + j*(310)
+304 + j*(158)
+242 + j*(-159)
+-3 + j*(-188)
+-87 + j*(-29)
+23 + j*(78)
+160 + j*(-24)
+63 + j*(-215)
+-173 + j*(-147)
+-156 + j*(84)
+15 + j*(103)
+30 + j*(21)
+25 + j*(35)
+62 + j*(-1)
+10 + j*(-11)
+81 + j*(68)
+237 + j*(-103)
+16 + j*(-366)
+-320 + j*(-170)
+-194 + j*(140)
+1 + j*(51)
+-114 + j*(-6)
+-73 + j*(151)
+81 + j*(52)
+-91 + j*(-49)
+-141 + j*(226)
+212 + j*(274)
+280 + j*(-65)
+42 + j*(-98)
+131 + j*(21)
+194 + j*(-222)
+-152 + j*(-291)
+-223 + j*(76)
+125 + j*(115)
+122 + j*(-217)
+-176 + j*(-213)
+-190 + j*(-3)
+-119 + j*(-14)
+-219 + j*(14)
+-203 + j*(210)
+-6 + j*(287)
+149 + j*(202)
+209 + j*(55)
+133 + j*(-83)
+2 + j*(-46)
+74 + j*(49)
+179 + j*(-95)
+3 + j*(-258)
+-199 + j*(-132)
+-170 + j*(35)
+-119 + j*(71)
+-83 + j*(136)
+38 + j*(141)
+54 + j*(34)
+-25 + j*(61)
+61 + j*(153)
+182 + j*(53)
+131 + j*(-63)
+85 + j*(-67)
+73 + j*(-127)
+-61 + j*(-151)
+-122 + j*(-9)
+-18 + j*(52)
+4 + j*(-5)
+-14 + j*(23)
+58 + j*(1)
+-18 + j*(-116)
+-194 + j*(16)
+-37 + j*(268)
+283 + j*(143)
+243 + j*(-203)
+-57 + j*(-267)
+-205 + j*(-64)
+-112 + j*(121)
+74 + j*(116)
+119 + j*(-62)
+-58 + j*(-122)
+-123 + j*(66)
+80 + j*(141)
+176 + j*(-57)
+19 + j*(-171)
+-87 + j*(-83)
+-71 + j*(-20)
+-68 + j*(3)
+-41 + j*(40)
+-4 + j*(32)
+-2 + j*(34)
+58 + j*(47)
+114 + j*(-51)
+21 + j*(-151)
+-78 + j*(-112)
+-97 + j*(-73)
+-161 + j*(-37)
+-148 + j*(109)
+38 + j*(129)
+73 + j*(-78)
+-150 + j*(-136)
+-269 + j*(67)
+-170 + j*(247)
+-1 + j*(320)
+208 + j*(259)
+281 + j*(28)
+121 + j*(-89)
+81 + j*(-4)
+174 + j*(-98)
+-25 + j*(-274)
+-297 + j*(-57)
+-144 + j*(271)
+159 + j*(225)
+216 + j*(40)
+196 + j*(-65)
+116 + j*(-190)
+-76 + j*(-161)
+-54 + j*(21)
+95 + j*(-53)
+-59 + j*(-198)
+-228 + j*(7)
+-27 + j*(187)
+124 + j*(35)
+44 + j*(-49)
+60 + j*(-37)
+15 + j*(-174)
+-230 + j*(-104)
+-174 + j*(205)
+130 + j*(169)
+79 + j*(-66)
+-72 + j*(47)
+117 + j*(155)
+221 + j*(-62)
+61 + j*(-147)
+62 + j*(-91)
+47 + j*(-239)
+-243 + j*(-231)
+-281 + j*(124)
+54 + j*(195)
+121 + j*(-86)
+-101 + j*(-129)
+-133 + j*(22)
+-74 + j*(42)
+-87 + j*(78)
+10 + j*(142)
+106 + j*(36)
+32 + j*(-50)
+4 + j*(-21)
+-4 + j*(-89)
+-188 + j*(-73)
+-204 + j*(218)
+144 + j*(295)
+277 + j*(-48)
+-11 + j*(-194)
+-123 + j*(30)
+61 + j*(74)
+34 + j*(-107)
+-177 + j*(-31)
+-98 + j*(231)
+204 + j*(197)
+244 + j*(-111)
+-33 + j*(-225)
+-197 + j*(-1)
+-30 + j*(187)
+153 + j*(67)
+63 + j*(-95)
+-81 + j*(-9)
+12 + j*(141)
+190 + j*(67)
+177 + j*(-129)
+13 + j*(-197)
+-107 + j*(-113)
+-117 + j*(-1)
+-60 + j*(71)
+23 + j*(88)
+100 + j*(35)
+88 + j*(-69)
+-11 + j*(-82)
+-11 + j*(6)
+96 + j*(-40)
+5 + j*(-206)
+-248 + j*(-99)
+-163 + j*(227)
+199 + j*(185)
+191 + j*(-167)
+-119 + j*(-162)
+-76 + j*(105)
+180 + j*(8)
+55 + j*(-266)
+-228 + j*(-161)
+-160 + j*(80)
+11 + j*(8)
+-114 + j*(-124)
+-274 + j*(42)
+-139 + j*(257)
+96 + j*(208)
+119 + j*(18)
+-11 + j*(-27)
+-40 + j*(74)
+57 + j*(83)
+52 + j*(-25)
+-79 + j*(-2)
+-48 + j*(165)
+156 + j*(155)
+175 + j*(-50)
+-1 + j*(-70)
+21 + j*(83)
+192 + j*(18)
+117 + j*(-190)
+-97 + j*(-135)
+-58 + j*(47)
+81 + j*(-12)
+-18 + j*(-130)
+-134 + j*(4)
+12 + j*(124)
+128 + j*(-17)
+5 + j*(-112)
+-49 + j*(-5)
+57 + j*(1)
+31 + j*(-127)
+-113 + j*(-108)
+-129 + j*(9)
+-81 + j*(48)
+-56 + j*(81)
+28 + j*(83)
+38 + j*(-24)
+-100 + j*(-11)
+-66 + j*(181)
+176 + j*(162)
+204 + j*(-91)
+9 + j*(-158)
+-65 + j*(-59)
+-69 + j*(-22)
+-90 + j*(67)
+57 + j*(156)
+198 + j*(-14)
+37 + j*(-180)
+-115 + j*(-44)
+4 + j*(60)
+52 + j*(-54)
+-56 + j*(-61)
+-39 + j*(26)
+-1 + j*(-2)
+-39 + j*(29)
+76 + j*(92)
+187 + j*(-96)
+-28 + j*(-264)
+-224 + j*(-92)
+-122 + j*(61)
+-80 + j*(-1)
+-158 + j*(60)
+-59 + j*(183)
+66 + j*(103)
+13 + j*(32)
+11 + j*(85)
+72 + j*(45)
+11 + j*(-5)
+-17 + j*(65)
+42 + j*(86)
+44 + j*(95)
+161 + j*(163)
+363 + j*(-30)
+178 + j*(-357)
+-187 + j*(-235)
+-96 + j*(74)
+130 + j*(-52)
+-52 + j*(-229)
+-209 + j*(-28)
+-30 + j*(89)
+23 + j*(-59)
+-107 + j*(-59)
+-92 + j*(40)
+-68 + j*(20)
+-115 + j*(91)
+22 + j*(194)
+168 + j*(57)
+70 + j*(-71)
+26 + j*(-2)
+120 + j*(-66)
+-8 + j*(-235)
+-249 + j*(-124)
+-223 + j*(129)
+-40 + j*(185)
+47 + j*(116)
+68 + j*(49)
+35 + j*(-7)
+-30 + j*(8)
+-28 + j*(79)
+33 + j*(113)
+123 + j*(102)
+204 + j*(-24)
+76 + j*(-203)
+-170 + j*(-90)
+-69 + j*(195)
+245 + j*(95)
+158 + j*(-240)
+-174 + j*(-190)
+-177 + j*(107)
+42 + j*(163)
+142 + j*(49)
+151 + j*(-68)
+50 + j*(-195)
+-172 + j*(-136)
+-173 + j*(142)
+119 + j*(221)
+278 + j*(-36)
+114 + j*(-250)
+-102 + j*(-200)
+-130 + j*(-32)
+-1 + j*(11)
+24 + j*(-122)
+-148 + j*(-151)
+-196 + j*(33)
+-47 + j*(76)
+-72 + j*(-30)
+-170 + j*(101)
+50 + j*(231)
+221 + j*(-35)
+-45 + j*(-224)
+-215 + j*(4)
+-42 + j*(105)
+-57 + j*(-28)
+-194 + j*(96)
+-16 + j*(271)
+156 + j*(112)
+44 + j*(19)
+76 + j*(128)
+238 + j*(-6)
+78 + j*(-228)
+-148 + j*(-119)
+-98 + j*(23)
+-104 + j*(-27)
+-246 + j*(102)
+-106 + j*(381)
+239 + j*(347)
+337 + j*(71)
+212 + j*(-62)
+150 + j*(-42)
+183 + j*(-61)
+163 + j*(-170)
+12 + j*(-219)
+-98 + j*(-71)
+46 + j*(55)
+183 + j*(-117)
+-18 + j*(-289)
+-238 + j*(-91)
+-73 + j*(152)
+176 + j*(39)
+127 + j*(-198)
+-57 + j*(-233)
+-146 + j*(-152)
+-180 + j*(-85)
+-200 + j*(1)
+-144 + j*(107)
+1 + j*(119)
+73 + j*(-41)
+-114 + j*(-161)
+-310 + j*(48)
+-119 + j*(334)
+217 + j*(216)
+178 + j*(-86)
+-22 + j*(-79)
+32 + j*(16)
+74 + j*(-133)
+-153 + j*(-197)
+-279 + j*(30)
+-129 + j*(180)
+-37 + j*(119)
+-78 + j*(130)
+-8 + j*(230)
+156 + j*(186)
+185 + j*(20)
+64 + j*(-52)
+2 + j*(38)
+104 + j*(86)
+163 + j*(-53)
+3 + j*(-146)
+-120 + j*(19)
+37 + j*(163)
+194 + j*(24)
+87 + j*(-128)
+-36 + j*(-46)
+44 + j*(45)
+132 + j*(-40)
+68 + j*(-155)
+-65 + j*(-154)
+-138 + j*(-47)
+-95 + j*(70)
+10 + j*(97)
+74 + j*(43)
+95 + j*(-16)
+81 + j*(-103)
+-44 + j*(-167)
+-199 + j*(-45)
+-132 + j*(197)
+158 + j*(233)
+322 + j*(-40)
+137 + j*(-305)
+-164 + j*(-239)
+-192 + j*(28)
+18 + j*(87)
+59 + j*(-82)
+-100 + j*(-79)
+-55 + j*(91)
+147 + j*(14)
+74 + j*(-220)
+-156 + j*(-181)
+-140 + j*(-11)
+-47 + j*(-61)
+-153 + j*(-135)
+-257 + j*(-30)
+-238 + j*(66)
+-244 + j*(126)
+-209 + j*(260)
+-46 + j*(312)
+22 + j*(236)
+9 + j*(281)
+201 + j*(363)
+430 + j*(145)
+317 + j*(-176)
+32 + j*(-187)
+-30 + j*(-4)
+60 + j*(49)
+90 + j*(29)
+136 + j*(47)
+245 + j*(-40)
+196 + j*(-244)
+-38 + j*(-298)
+-174 + j*(-123)
+-88 + j*(11)
+-17 + j*(-28)
+-68 + j*(-49)
+-83 + j*(29)
+-5 + j*(65)
+43 + j*(22)
+53 + j*(-15)
+59 + j*(-69)
+-15 + j*(-142)
+-151 + j*(-98)
+-187 + j*(67)
+-66 + j*(193)
+110 + j*(187)
+238 + j*(45)
+207 + j*(-169)
+2 + j*(-263)
+-160 + j*(-136)
+-109 + j*(12)
+-6 + j*(-22)
+-65 + j*(-117)
+-212 + j*(-54)
+-209 + j*(144)
+-12 + j*(242)
+166 + j*(105)
+113 + j*(-104)
+-93 + j*(-127)
+-184 + j*(53)
+-57 + j*(207)
+129 + j*(167)
+175 + j*(4)
+84 + j*(-77)
+45 + j*(-45)
+97 + j*(-89)
+6 + j*(-246)
+-279 + j*(-209)
+-381 + j*(130)
+-100 + j*(376)
+206 + j*(229)
+187 + j*(-40)
+-4 + j*(-87)
+-64 + j*(35)
+8 + j*(90)
+42 + j*(54)
+29 + j*(59)
+69 + j*(88)
+132 + j*(49)
+135 + j*(-20)
+111 + j*(-54)
+91 + j*(-91)
+34 + j*(-111)
+-1 + j*(-77)
+13 + j*(-76)
+-38 + j*(-104)
+-95 + j*(-18)
+4 + j*(59)
+75 + j*(-46)
+-35 + j*(-94)
+-40 + j*(23)
+91 + j*(-29)
+-1 + j*(-185)
+-167 + j*(-86)
+-81 + j*(33)
+-61 + j*(-68)
+-223 + j*(7)
+-105 + j*(243)
+148 + j*(127)
+32 + j*(-69)
+-72 + j*(95)
+171 + j*(127)
+173 + j*(-175)
+-131 + j*(-167)
+-89 + j*(83)
+95 + j*(-29)
+-90 + j*(-171)
+-210 + j*(43)
+-22 + j*(119)
+-40 + j*(-27)
+-184 + j*(100)
+2 + j*(282)
+200 + j*(127)
+130 + j*(-17)
+111 + j*(-9)
+117 + j*(-129)
+-94 + j*(-177)
+-190 + j*(54)
+12 + j*(165)
+109 + j*(14)
+8 + j*(-57)
+-64 + j*(-12)
+-117 + j*(70)
+-55 + j*(274)
+291 + j*(320)
+506 + j*(-68)
+216 + j*(-407)
+-111 + j*(-269)
+-52 + j*(-72)
+22 + j*(-175)
+-177 + j*(-229)
+-292 + j*(14)
+-74 + j*(188)
+116 + j*(2)
+-67 + j*(-202)
+-332 + j*(-25)
+-221 + j*(295)
+78 + j*(299)
+143 + j*(116)
+87 + j*(101)
+180 + j*(128)
+279 + j*(-5)
+235 + j*(-170)
+111 + j*(-284)
+-101 + j*(-310)
+-286 + j*(-110)
+-165 + j*(149)
+86 + j*(95)
+54 + j*(-112)
+-113 + j*(-77)
+-71 + j*(54)
+33 + j*(-2)
+-43 + j*(-102)
+-169 + j*(-28)
+-141 + j*(131)
+21 + j*(176)
+119 + j*(57)
+62 + j*(-42)
+23 + j*(-21)
+62 + j*(-74)
+-66 + j*(-185)
+-256 + j*(-33)
+-129 + j*(194)
+70 + j*(87)
+-54 + j*(-48)
+-144 + j*(112)
+21 + j*(165)
+12 + j*(29)
+-115 + j*(135)
+61 + j*(291)
+226 + j*(127)
+120 + j*(44)
+197 + j*(144)
+371 + j*(-76)
+93 + j*(-339)
+-199 + j*(-67)
+62 + j*(204)
+298 + j*(-40)
+105 + j*(-233)
+-4 + j*(-117)
+64 + j*(-120)
+-18 + j*(-175)
+-41 + j*(-80)
+53 + j*(-147)
+-121 + j*(-286)
+-337 + j*(-67)
+-146 + j*(177)
+47 + j*(35)
+-89 + j*(-62)
+-99 + j*(100)
+95 + j*(51)
+17 + j*(-166)
+-212 + j*(-88)
+-161 + j*(119)
+-18 + j*(93)
+-62 + j*(25)
+-94 + j*(119)
+40 + j*(178)
+163 + j*(55)
+100 + j*(-137)
+-139 + j*(-170)
+-284 + j*(79)
+-76 + j*(322)
+199 + j*(191)
+124 + j*(-40)
+-28 + j*(47)
+128 + j*(159)
+260 + j*(-51)
+57 + j*(-220)
+-107 + j*(-76)
+-18 + j*(35)
+21 + j*(-42)
+-72 + j*(-40)
+-78 + j*(76)
+26 + j*(135)
+158 + j*(83)
+202 + j*(-102)
+0 + j*(-253)
+-227 + j*(-74)
+-90 + j*(181)
+142 + j*(74)
+46 + j*(-95)
+-36 + j*(17)
+120 + j*(2)
+25 + j*(-218)
+-256 + j*(-74)
+-93 + j*(234)
+197 + j*(65)
+5 + j*(-176)
+-179 + j*(49)
+68 + j*(189)
+176 + j*(-54)
+-35 + j*(-127)
+-68 + j*(35)
+38 + j*(34)
+17 + j*(-4)
+62 + j*(30)
+120 + j*(-97)
+-59 + j*(-191)
+-181 + j*(-20)
+-69 + j*(86)
+-48 + j*(62)
+-11 + j*(187)
+285 + j*(157)
+341 + j*(-256)
+-76 + j*(-428)
+-305 + j*(-126)
+-152 + j*(51)
+-106 + j*(-14)
+-175 + j*(42)
+-112 + j*(139)
+-47 + j*(139)
+-3 + j*(173)
+124 + j*(151)
+150 + j*(21)
+98 + j*(-5)
+159 + j*(-37)
+103 + j*(-225)
+-169 + j*(-203)
+-190 + j*(72)
+42 + j*(92)
+26 + j*(-97)
+-136 + j*(-57)
+-112 + j*(64)
+-71 + j*(72)
+-46 + j*(134)
+115 + j*(112)
+98 + j*(-119)
+-182 + j*(-112)
+-197 + j*(175)
+30 + j*(197)
+-2 + j*(75)
+-61 + j*(226)
+189 + j*(305)
+315 + j*(74)
+192 + j*(-13)
+255 + j*(34)
+334 + j*(-185)
+63 + j*(-341)
+-110 + j*(-105)
+100 + j*(14)
+175 + j*(-221)
+-57 + j*(-315)
+-185 + j*(-172)
+-187 + j*(-81)
+-210 + j*(38)
+-52 + j*(190)
+195 + j*(50)
+103 + j*(-244)
+-187 + j*(-214)
+-216 + j*(17)
+-74 + j*(57)
+-68 + j*(-6)
+-95 + j*(25)
+-50 + j*(40)
+-60 + j*(-6)
+-115 + j*(25)
+-94 + j*(90)
+-54 + j*(87)
+-71 + j*(102)
+-31 + j*(175)
+88 + j*(174)
+153 + j*(68)
+116 + j*(-25)
+47 + j*(-53)
+-10 + j*(-28)
+-8 + j*(33)
+66 + j*(31)
+66 + j*(-81)
+-95 + j*(-101)
+-158 + j*(102)
+57 + j*(216)
+211 + j*(13)
+25 + j*(-153)
+-134 + j*(28)
+48 + j*(187)
+210 + j*(25)
+92 + j*(-111)
+34 + j*(-24)
+149 + j*(-68)
+56 + j*(-260)
+-198 + j*(-196)
+-202 + j*(29)
+-91 + j*(60)
+-122 + j*(81)
+-25 + j*(231)
+221 + j*(131)
+146 + j*(-146)
+-112 + j*(-62)
+26 + j*(181)
+291 + j*(2)
+134 + j*(-296)
+-140 + j*(-214)
+-124 + j*(-47)
+-105 + j*(-64)
+-187 + j*(31)
+-49 + j*(195)
+172 + j*(66)
+89 + j*(-181)
+-160 + j*(-173)
+-251 + j*(30)
+-158 + j*(216)
+66 + j*(269)
+252 + j*(84)
+152 + j*(-173)
+-115 + j*(-153)
+-155 + j*(78)
+22 + j*(159)
+121 + j*(59)
+110 + j*(-18)
+107 + j*(-64)
+78 + j*(-160)
+-71 + j*(-231)
+-272 + j*(-127)
+-298 + j*(153)
+-40 + j*(322)
+209 + j*(154)
+129 + j*(-89)
+-78 + j*(-45)
+-30 + j*(139)
+154 + j*(100)
+146 + j*(-78)
+5 + j*(-105)
+-30 + j*(-6)
+42 + j*(25)
+78 + j*(-33)
+49 + j*(-81)
+10 + j*(-93)
+-25 + j*(-88)
+-45 + j*(-66)
+-37 + j*(-63)
+-71 + j*(-98)
+-168 + j*(-62)
+-174 + j*(75)
+-57 + j*(114)
+-51 + j*(44)
+-114 + j*(128)
+53 + j*(245)
+244 + j*(46)
+56 + j*(-189)
+-183 + j*(-27)
+-54 + j*(180)
+86 + j*(95)
+33 + j*(69)
+147 + j*(130)
+258 + j*(-103)
+-43 + j*(-267)
+-233 + j*(59)
+105 + j*(238)
+250 + j*(-105)
+-94 + j*(-200)
+-133 + j*(144)
+221 + j*(134)
+185 + j*(-224)
+-156 + j*(-179)
+-106 + j*(123)
+157 + j*(67)
+100 + j*(-156)
+-79 + j*(-107)
+-30 + j*(28)
+83 + j*(-28)
+36 + j*(-136)
+-61 + j*(-124)
+-77 + j*(-66)
+-62 + j*(-59)
+-79 + j*(-62)
+-92 + j*(-49)
+-110 + j*(-57)
+-182 + j*(-35)
+-214 + j*(95)
+-91 + j*(204)
+60 + j*(141)
+56 + j*(3)
+-45 + j*(-40)
+-129 + j*(17)
+-141 + j*(137)
+-25 + j*(233)
+122 + j*(161)
+86 + j*(21)
+-23 + j*(67)
+54 + j*(190)
+211 + j*(124)
+212 + j*(-29)
+135 + j*(-88)
+77 + j*(-112)
+-6 + j*(-95)
+-18 + j*(2)
+88 + j*(3)
+71 + j*(-130)
+-93 + j*(-113)
+-89 + j*(60)
+63 + j*(59)
+40 + j*(-63)
+-64 + j*(4)
+46 + j*(124)
+199 + j*(3)
+110 + j*(-165)
+-14 + j*(-121)
+27 + j*(-78)
+-1 + j*(-172)
+-158 + j*(-121)
+-114 + j*(62)
+56 + j*(11)
+-25 + j*(-129)
+-136 + j*(-5)
+47 + j*(67)
+91 + j*(-194)
+-243 + j*(-243)
+-317 + j*(116)
+11 + j*(177)
+3 + j*(-127)
+-325 + j*(-47)
+-234 + j*(315)
+100 + j*(265)
+64 + j*(33)
+-65 + j*(122)
+97 + j*(205)
+181 + j*(7)
+-6 + j*(-79)
+-92 + j*(75)
+12 + j*(163)
+88 + j*(139)
+138 + j*(116)
+185 + j*(54)
+168 + j*(-6)
+181 + j*(-8)
+240 + j*(-107)
+139 + j*(-284)
+-102 + j*(-268)
+-188 + j*(-57)
+-70 + j*(79)
+58 + j*(59)
+124 + j*(-29)
+103 + j*(-166)
+-71 + j*(-239)
+-239 + j*(-76)
+-129 + j*(154)
+112 + j*(103)
+102 + j*(-105)
+-44 + j*(-100)
+5 + j*(-24)
+39 + j*(-165)
+-192 + j*(-214)
+-280 + j*(54)
+-28 + j*(146)
+11 + j*(-100)
+-272 + j*(-77)
+-240 + j*(257)
+103 + j*(257)
+129 + j*(-45)
+-126 + j*(-84)
+-192 + j*(124)
+-57 + j*(243)
+98 + j*(217)
+176 + j*(70)
+47 + j*(-66)
+-117 + j*(63)
+3 + j*(264)
+213 + j*(202)
+236 + j*(78)
+286 + j*(42)
+349 + j*(-157)
+115 + j*(-352)
+-127 + j*(-173)
+20 + j*(19)
+157 + j*(-155)
+-40 + j*(-293)
+-196 + j*(-150)
+-152 + j*(-35)
+-146 + j*(-13)
+-134 + j*(73)
+-30 + j*(105)
+13 + j*(47)
+10 + j*(41)
+62 + j*(22)
+60 + j*(-71)
+-35 + j*(-108)
+-110 + j*(-59)
+-139 + j*(27)
+-74 + j*(130)
+66 + j*(100)
+47 + j*(-45)
+-98 + j*(-1)
+-24 + j*(165)
+166 + j*(89)
+119 + j*(-95)
+-11 + j*(-73)
+14 + j*(-10)
+33 + j*(-52)
+-2 + j*(-54)
+25 + j*(-62)
+-21 + j*(-153)
+-182 + j*(-127)
+-233 + j*(45)
+-139 + j*(170)
+1 + j*(206)
+148 + j*(111)
+108 + j*(-99)
+-129 + j*(-91)
+-134 + j*(153)
+90 + j*(165)
+76 + j*(2)
+-10 + j*(93)
+205 + j*(142)
+282 + j*(-177)
+-66 + j*(-310)
+-218 + j*(-15)
+1 + j*(78)
+-14 + j*(-107)
+-235 + j*(-4)
+-125 + j*(271)
+153 + j*(228)
+177 + j*(35)
+113 + j*(18)
+173 + j*(6)
+194 + j*(-136)
+57 + j*(-248)
+-127 + j*(-214)
+-227 + j*(-45)
+-142 + j*(150)
+74 + j*(161)
+149 + j*(-24)
+10 + j*(-123)
+-74 + j*(-17)
+27 + j*(42)
+69 + j*(-86)
+-99 + j*(-143)
+-210 + j*(53)
+-30 + j*(233)
+194 + j*(115)
+153 + j*(-89)
+27 + j*(-88)
+62 + j*(-47)
+72 + j*(-163)
+-100 + j*(-204)
+-189 + j*(-44)
+-81 + j*(39)
+-68 + j*(-37)
+-172 + j*(21)
+-89 + j*(191)
+129 + j*(135)
+123 + j*(-83)
+-49 + j*(-111)
+-71 + j*(-8)
+-25 + j*(-44)
+-149 + j*(-86)
+-254 + j*(98)
+-92 + j*(288)
+134 + j*(214)
+148 + j*(37)
+54 + j*(-8)
+28 + j*(28)
+52 + j*(37)
+73 + j*(12)
+54 + j*(-32)
+0 + j*(-33)
+-11 + j*(12)
+13 + j*(13)
+-25 + j*(10)
+-30 + j*(112)
+132 + j*(161)
+252 + j*(-8)
+144 + j*(-168)
+29 + j*(-141)
+30 + j*(-132)
+-53 + j*(-196)
+-215 + j*(-105)
+-197 + j*(113)
+-7 + j*(194)
+131 + j*(92)
+123 + j*(-40)
+34 + j*(-86)
+-18 + j*(-30)
+45 + j*(15)
+116 + j*(-76)
+27 + j*(-212)
+-169 + j*(-191)
+-255 + j*(8)
+-118 + j*(182)
+92 + j*(132)
+102 + j*(-62)
+-54 + j*(-100)
+-85 + j*(8)
+-28 + j*(4)
+-95 + j*(-16)
+-102 + j*(118)
+75 + j*(128)
+71 + j*(-64)
+-132 + j*(-17)
+-40 + j*(214)
+228 + j*(106)
+140 + j*(-165)
+-86 + j*(-104)
+-25 + j*(43)
+59 + j*(-49)
+-69 + j*(-115)
+-153 + j*(-3)
+-126 + j*(90)
+-95 + j*(182)
+64 + j*(298)
+332 + j*(189)
+383 + j*(-132)
+158 + j*(-334)
+-75 + j*(-292)
+-163 + j*(-157)
+-159 + j*(-76)
+-169 + j*(-34)
+-181 + j*(57)
+-85 + j*(127)
+-28 + j*(52)
+-142 + j*(67)
+-79 + j*(303)
+290 + j*(274)
+351 + j*(-153)
+-33 + j*(-279)
+-140 + j*(3)
+62 + j*(5)
+-73 + j*(-185)
+-316 + j*(36)
+-100 + j*(343)
+207 + j*(205)
+150 + j*(-18)
+44 + j*(9)
+76 + j*(36)
+62 + j*(19)
+93 + j*(89)
+264 + j*(37)
+279 + j*(-225)
+16 + j*(-364)
+-221 + j*(-199)
+-173 + j*(59)
+66 + j*(86)
+129 + j*(-153)
+-130 + j*(-253)
+-272 + j*(4)
+-43 + j*(154)
+59 + j*(-58)
+-181 + j*(-96)
+-188 + j*(203)
+158 + j*(231)
+231 + j*(-121)
+-78 + j*(-242)
+-231 + j*(-1)
+-73 + j*(164)
+84 + j*(79)
+61 + j*(-66)
+-76 + j*(-97)
+-165 + j*(21)
+-100 + j*(154)
+40 + j*(170)
+131 + j*(82)
+130 + j*(-43)
+13 + j*(-129)
+-132 + j*(-51)
+-111 + j*(118)
+43 + j*(163)
+134 + j*(69)
+128 + j*(-24)
+84 + j*(-93)
+-4 + j*(-115)
+-61 + j*(-58)
+-43 + j*(-29)
+-78 + j*(-49)
+-159 + j*(25)
+-115 + j*(165)
+18 + j*(211)
+129 + j*(172)
+212 + j*(86)
+221 + j*(-52)
+125 + j*(-137)
+45 + j*(-125)
+16 + j*(-107)
+-10 + j*(-80)
+27 + j*(-62)
+37 + j*(-163)
+-149 + j*(-210)
+-275 + j*(22)
+-55 + j*(215)
+170 + j*(40)
+67 + j*(-195)
+-156 + j*(-200)
+-302 + j*(-58)
+-322 + j*(194)
+-71 + j*(402)
+238 + j*(243)
+168 + j*(-30)
+2 + j*(40)
+160 + j*(127)
+233 + j*(-122)
+-49 + j*(-212)
+-134 + j*(47)
+83 + j*(91)
+67 + j*(-90)
+-89 + j*(-14)
+31 + j*(129)
+164 + j*(5)
+69 + j*(-88)
+65 + j*(-21)
+152 + j*(-116)
+13 + j*(-266)
+-174 + j*(-155)
+-125 + j*(-5)
+-59 + j*(-30)
+-108 + j*(-16)
+-58 + j*(72)
+64 + j*(13)
+32 + j*(-130)
+-104 + j*(-166)
+-220 + j*(-107)
+-293 + j*(26)
+-243 + j*(204)
+-74 + j*(280)
+58 + j*(226)
+134 + j*(148)
+170 + j*(0)
+11 + j*(-155)
+-245 + j*(-18)
+-176 + j*(311)
+156 + j*(342)
+262 + j*(116)
+193 + j*(44)
+262 + j*(13)
+243 + j*(-202)
+-38 + j*(-252)
+-123 + j*(7)
+99 + j*(65)
+106 + j*(-138)
+-89 + j*(-102)
+-18 + j*(80)
+149 + j*(-20)
+48 + j*(-172)
+-64 + j*(-101)
+-25 + j*(-78)
+-115 + j*(-115)
+-180 + j*(65)
+54 + j*(159)
+156 + j*(-105)
+-135 + j*(-199)
+-218 + j*(101)
+74 + j*(163)
+98 + j*(-118)
+-190 + j*(-112)
+-197 + j*(192)
+77 + j*(262)
+214 + j*(89)
+193 + j*(-59)
+103 + j*(-161)
+-49 + j*(-148)
+-66 + j*(-4)
+71 + j*(-13)
+25 + j*(-175)
+-161 + j*(-125)
+-121 + j*(42)
+-14 + j*(-19)
+-148 + j*(-78)
+-216 + j*(136)
+24 + j*(252)
+177 + j*(52)
+52 + j*(-83)
+-16 + j*(-22)
+18 + j*(-40)
+-71 + j*(-76)
+-123 + j*(59)
+44 + j*(127)
+129 + j*(-62)
+-69 + j*(-186)
+-238 + j*(-18)
+-142 + j*(175)
+23 + j*(151)
+30 + j*(36)
+-66 + j*(38)
+-69 + j*(160)
+87 + j*(211)
+202 + j*(57)
+70 + j*(-105)
+-125 + j*(11)
+-36 + j*(258)
+256 + j*(247)
+360 + j*(-23)
+197 + j*(-205)
+21 + j*(-161)
+-1 + j*(-37)
+98 + j*(21)
+211 + j*(-69)
+178 + j*(-262)
+-44 + j*(-342)
+-214 + j*(-179)
+-140 + j*(-1)
+-15 + j*(-43)
+-81 + j*(-137)
+-187 + j*(-45)
+-99 + j*(74)
+3 + j*(-13)
+-115 + j*(-96)
+-217 + j*(71)
+-26 + j*(221)
+170 + j*(42)
+25 + j*(-180)
+-197 + j*(-85)
+-160 + j*(109)
+-40 + j*(117)
+-26 + j*(94)
+37 + j*(112)
+98 + j*(-15)
+-82 + j*(-117)
+-240 + j*(110)
+-1 + j*(338)
+275 + j*(139)
+134 + j*(-122)
+-68 + j*(-4)
+70 + j*(153)
+226 + j*(2)
+109 + j*(-165)
+-36 + j*(-118)
+-52 + j*(-29)
+-26 + j*(29)
+66 + j*(57)
+154 + j*(-70)
+16 + j*(-228)
+-197 + j*(-118)
+-143 + j*(106)
+51 + j*(93)
+57 + j*(-57)
+-50 + j*(-73)
+-76 + j*(-7)
+-59 + j*(15)
+-70 + j*(35)
+-49 + j*(91)
+35 + j*(104)
+85 + j*(16)
+-7 + j*(-52)
+-91 + j*(71)
+88 + j*(199)
+296 + j*(-21)
+82 + j*(-317)
+-267 + j*(-149)
+-164 + j*(194)
+119 + j*(135)
+63 + j*(-51)
+-30 + j*(45)
+124 + j*(87)
+167 + j*(-99)
+21 + j*(-161)
+-25 + j*(-115)
+-90 + j*(-147)
+-234 + j*(-19)
+-102 + j*(209)
+148 + j*(103)
+43 + j*(-117)
+-130 + j*(21)
+50 + j*(173)
+204 + j*(-17)
+57 + j*(-162)
+-29 + j*(-80)
+25 + j*(-93)
+-62 + j*(-186)
+-221 + j*(-114)
+-245 + j*(52)
+-156 + j*(170)
+-15 + j*(185)
+43 + j*(71)
+-71 + j*(38)
+-92 + j*(211)
+127 + j*(278)
+246 + j*(107)
+192 + j*(24)
+250 + j*(10)
+283 + j*(-182)
+70 + j*(-308)
+-66 + j*(-182)
+-13 + j*(-148)
+-116 + j*(-216)
+-252 + j*(-37)
+-62 + j*(138)
+112 + j*(-57)
+-100 + j*(-228)
+-281 + j*(-28)
+-136 + j*(136)
+-43 + j*(33)
+-157 + j*(18)
+-152 + j*(171)
+-5 + j*(194)
+13 + j*(103)
+-39 + j*(147)
+66 + j*(231)
+209 + j*(132)
+166 + j*(-13)
+83 + j*(9)
+156 + j*(37)
+194 + j*(-104)
+38 + j*(-194)
+-76 + j*(-85)
+-24 + j*(-7)
+-20 + j*(-30)
+-55 + j*(39)
+60 + j*(112)
+179 + j*(-3)
+111 + j*(-139)
+19 + j*(-146)
+-33 + j*(-150)
+-140 + j*(-105)
+-130 + j*(66)
+59 + j*(73)
+48 + j*(-127)
+-174 + j*(-85)
+-111 + j*(163)
+148 + j*(89)
+57 + j*(-166)
+-199 + j*(-43)
+-42 + j*(231)
+268 + j*(74)
+163 + j*(-266)
+-154 + j*(-243)
+-196 + j*(-18)
+-93 + j*(25)
+-111 + j*(3)
+-117 + j*(85)
+-22 + j*(112)
+-1 + j*(53)
+-16 + j*(87)
+100 + j*(93)
+138 + j*(-99)
+-95 + j*(-192)
+-242 + j*(38)
+-50 + j*(209)
+101 + j*(59)
+-30 + j*(-54)
+-123 + j*(69)
+-38 + j*(158)
+14 + j*(148)
+58 + j*(201)
+231 + j*(191)
+325 + j*(-23)
+185 + j*(-195)
+45 + j*(-173)
+7 + j*(-163)
+-122 + j*(-169)
+-247 + j*(42)
+-34 + j*(297)
+319 + j*(155)
+280 + j*(-231)
+-61 + j*(-281)
+-139 + j*(-29)
+41 + j*(18)
+45 + j*(-135)
+-93 + j*(-124)
+-81 + j*(-28)
+-38 + j*(-63)
+-110 + j*(-82)
+-141 + j*(-9)
+-116 + j*(16)
+-156 + j*(40)
+-140 + j*(154)
+-14 + j*(196)
+58 + j*(135)
+78 + j*(104)
+120 + j*(43)
+58 + j*(-41)
+-25 + j*(34)
+86 + j*(121)
+199 + j*(-7)
+112 + j*(-131)
+44 + j*(-110)
+33 + j*(-158)
+-121 + j*(-179)
+-187 + j*(18)
+6 + j*(85)
+30 + j*(-119)
+-228 + j*(-107)
+-243 + j*(201)
+52 + j*(291)
+208 + j*(91)
+141 + j*(-68)
+42 + j*(-112)
+-58 + j*(-93)
+-100 + j*(0)
+-47 + j*(62)
+-12 + j*(48)
+-19 + j*(68)
+38 + j*(112)
+134 + j*(77)
+177 + j*(-38)
+98 + j*(-164)
+-70 + j*(-146)
+-91 + j*(26)
+86 + j*(44)
+100 + j*(-155)
+-105 + j*(-187)
+-153 + j*(-31)
+-88 + j*(-11)
+-148 + j*(4)
+-104 + j*(144)
+77 + j*(93)
+1 + j*(-83)
+-163 + j*(29)
+-42 + j*(179)
+59 + j*(88)
+6 + j*(103)
+173 + j*(161)
+295 + j*(-125)
+-27 + j*(-320)
+-240 + j*(-48)
+-51 + j*(89)
+-64 + j*(-56)
+-240 + j*(108)
+-5 + j*(366)
+302 + j*(178)
+229 + j*(-81)
+117 + j*(-100)
+71 + j*(-159)
+-107 + j*(-115)
+-44 + j*(127)
+263 + j*(4)
+87 + j*(-390)
+-380 + j*(-223)
+-282 + j*(247)
+94 + j*(209)
+51 + j*(-11)
+-28 + j*(110)
+204 + j*(122)
+228 + j*(-181)
+-72 + j*(-256)
+-180 + j*(-27)
+-45 + j*(78)
+35 + j*(24)
+47 + j*(-24)
+25 + j*(-95)
+-91 + j*(-107)
+-139 + j*(34)
+9 + j*(113)
+112 + j*(-32)
+-18 + j*(-163)
+-177 + j*(-57)
+-107 + j*(117)
+78 + j*(79)
+77 + j*(-130)
+-155 + j*(-194)
+-317 + j*(21)
+-192 + j*(254)
+25 + j*(245)
+75 + j*(124)
+42 + j*(116)
+113 + j*(134)
+172 + j*(31)
+92 + j*(-42)
+69 + j*(21)
+177 + j*(-21)
+120 + j*(-209)
+-117 + j*(-191)
+-136 + j*(36)
+48 + j*(42)
+5 + j*(-117)
+-158 + j*(-22)
+-24 + j*(159)
+185 + j*(-5)
+11 + j*(-269)
+-325 + j*(-140)
+-317 + j*(235)
+-3 + j*(373)
+219 + j*(210)
+212 + j*(26)
+151 + j*(-43)
+105 + j*(-101)
+-23 + j*(-127)
+-122 + j*(30)
+38 + j*(196)
+255 + j*(71)
+202 + j*(-150)
+57 + j*(-155)
+62 + j*(-115)
+39 + j*(-182)
+-60 + j*(-165)
+-47 + j*(-109)
+-64 + j*(-175)
+-222 + j*(-132)
+-204 + j*(82)
+8 + j*(83)
+1 + j*(-105)
+-180 + j*(-86)
+-175 + j*(76)
+-64 + j*(91)
+-54 + j*(36)
+-90 + j*(42)
+-106 + j*(91)
+-60 + j*(166)
+63 + j*(159)
+100 + j*(40)
+21 + j*(1)
+16 + j*(33)
+9 + j*(-4)
+-69 + j*(47)
+34 + j*(168)
+188 + j*(21)
+13 + j*(-138)
+-121 + j*(76)
+148 + j*(175)
+223 + j*(-135)
+-93 + j*(-193)
+-115 + j*(88)
+107 + j*(58)
+14 + j*(-93)
+-54 + j*(69)
+182 + j*(64)
+148 + j*(-245)
+-184 + j*(-229)
+-210 + j*(34)
+-93 + j*(59)
+-148 + j*(106)
+-1 + j*(295)
+303 + j*(149)
+215 + j*(-178)
+-49 + j*(-133)
+8 + j*(54)
+163 + j*(-39)
+81 + j*(-192)
+-59 + j*(-179)
+-118 + j*(-100)
+-118 + j*(-17)
+254 + j*(-10)
+76 + j*(-153)
+-18 + j*(-66)
+47 + j*(-84)
+-64 + j*(-223)
+-321 + j*(-112)
+-313 + j*(218)
+-22 + j*(334)
+153 + j*(167)
+99 + j*(27)
+22 + j*(46)
+63 + j*(111)
+179 + j*(66)
+187 + j*(-107)
+5 + j*(-195)
+-132 + j*(-49)
+-30 + j*(89)
+84 + j*(16)
+40 + j*(-76)
+-21 + j*(-76)
+-74 + j*(-69)
+-136 + j*(7)
+-70 + j*(119)
+35 + j*(62)
+-59 + j*(2)
+-95 + j*(186)
+182 + j*(254)
+316 + j*(-60)
+25 + j*(-243)
+-161 + j*(4)
+49 + j*(172)
+197 + j*(2)
+77 + j*(-119)
+9 + j*(-37)
+89 + j*(-21)
+93 + j*(-126)
+-8 + j*(-157)
+-58 + j*(-104)
+-63 + j*(-88)
+-116 + j*(-65)
+-126 + j*(49)
+14 + j*(114)
+130 + j*(-16)
+37 + j*(-168)
+-119 + j*(-136)
+-157 + j*(-20)
+-112 + j*(59)
+-28 + j*(83)
+31 + j*(3)
+-67 + j*(-66)
+-148 + j*(71)
+28 + j*(179)
+158 + j*(-12)
+-24 + j*(-141)
+-117 + j*(20)
+31 + j*(50)
+-12 + j*(-100)
+-171 + j*(-1)
+-35 + j*(156)
+93 + j*(-4)
+-98 + j*(-98)
+-174 + j*(116)
+35 + j*(187)
+96 + j*(18)
+-18 + j*(-19)
+-39 + j*(40)
+-48 + j*(51)
+-66 + j*(136)
+66 + j*(216)
+198 + j*(115)
+176 + j*(-5)
+137 + j*(-35)
+116 + j*(-69)
+88 + j*(-67)
+142 + j*(-100)
+82 + j*(-290)
+-246 + j*(-293)
+-373 + j*(76)
+-87 + j*(290)
+103 + j*(158)
+93 + j*(109)
+226 + j*(86)
+247 + j*(-175)
+-47 + j*(-240)
+-90 + j*(38)
+199 + j*(8)
+119 + j*(-333)
+-255 + j*(-281)
+-264 + j*(42)
+-71 + j*(64)
+-111 + j*(-4)
+-120 + j*(132)
+69 + j*(139)
+86 + j*(-52)
+-85 + j*(-52)
+-62 + j*(112)
+108 + j*(74)
+86 + j*(-99)
+-75 + j*(-96)
+-78 + j*(42)
+48 + j*(34)
+23 + j*(-105)
+-137 + j*(-85)
+-141 + j*(82)
+-5 + j*(100)
+-5 + j*(16)
+-49 + j*(69)
+77 + j*(88)
+92 + j*(-113)
+-182 + j*(-150)
+-276 + j*(168)
+23 + j*(330)
+208 + j*(107)
+64 + j*(-23)
+19 + j*(103)
+180 + j*(107)
+218 + j*(-68)
+98 + j*(-160)
+4 + j*(-145)
+-81 + j*(-99)
+-108 + j*(50)
+88 + j*(154)
+288 + j*(-64)
+101 + j*(-367)
+-256 + j*(-279)
+-276 + j*(37)
+-73 + j*(96)
+-68 + j*(-6)
+-135 + j*(78)
+10 + j*(161)
+100 + j*(9)
+-40 + j*(-54)
+-47 + j*(86)
+120 + j*(31)
+17 + j*(-182)
+-261 + j*(-69)
+-202 + j*(252)
+85 + j*(308)
+233 + j*(171)
+313 + j*(39)
+313 + j*(-197)
+59 + j*(-351)
+-148 + j*(-180)
+-38 + j*(-49)
+-19 + j*(-190)
+-227 + j*(-170)
+-216 + j*(52)
+-65 + j*(30)
+-182 + j*(-33)
+-238 + j*(215)
+83 + j*(325)
+241 + j*(23)
+12 + j*(-115)
+-50 + j*(55)
+91 + j*(32)
+-6 + j*(-98)
+-127 + j*(57)
+63 + j*(179)
+190 + j*(-16)
+9 + j*(-130)
+-76 + j*(42)
+98 + j*(110)
+183 + j*(-63)
+37 + j*(-179)
+-99 + j*(-83)
+-46 + j*(57)
+93 + j*(35)
+106 + j*(-106)
+-13 + j*(-163)
+-94 + j*(-113)
+-136 + j*(-58)
+-165 + j*(54)
+-32 + j*(177)
+162 + j*(64)
+71 + j*(-158)
+-149 + j*(-78)
+-66 + j*(133)
+136 + j*(49)
+71 + j*(-140)
+-71 + j*(-119)
+-86 + j*(-66)
+-157 + j*(-65)
+-223 + j*(89)
+-69 + j*(231)
+83 + j*(136)
+29 + j*(52)
+28 + j*(136)
+187 + j*(112)
+212 + j*(-88)
+43 + j*(-182)
+-72 + j*(-89)
+-44 + j*(-6)
+-4 + j*(-25)
+-49 + j*(-52)
+-112 + j*(14)
+-66 + j*(126)
+68 + j*(138)
+146 + j*(37)
+121 + j*(-84)
+-1 + j*(-151)
+-154 + j*(-57)
+-107 + j*(158)
+141 + j*(159)
+177 + j*(-77)
+-22 + j*(-104)
+13 + j*(62)
+192 + j*(-56)
+21 + j*(-290)
+-262 + j*(-132)
+-165 + j*(151)
+51 + j*(113)
+37 + j*(-5)
+8 + j*(18)
+48 + j*(-3)
+5 + j*(-36)
+13 + j*(17)
+94 + j*(-44)
+-9 + j*(-171)
+-174 + j*(-58)
+-77 + j*(116)
+74 + j*(33)
+-8 + j*(-82)
+-98 + j*(-1)
+-31 + j*(72)
+20 + j*(40)
+21 + j*(30)
+64 + j*(12)
+51 + j*(-73)
+-57 + j*(-83)
+-91 + j*(29)
+23 + j*(86)
+109 + j*(-33)
+-9 + j*(-166)
+-200 + j*(-70)
+-149 + j*(159)
+74 + j*(156)
+83 + j*(-26)
+-53 + j*(5)
+53 + j*(127)
+204 + j*(-57)
+-27 + j*(-267)
+-308 + j*(-41)
+-140 + j*(284)
+176 + j*(204)
+175 + j*(-47)
+9 + j*(-84)
+-35 + j*(17)
+29 + j*(69)
+103 + j*(41)
+121 + j*(-43)
+66 + j*(-91)
+41 + j*(-82)
+42 + j*(-129)
+-63 + j*(-180)
+-174 + j*(-76)
+-117 + j*(28)
+-91 + j*(-16)
+-206 + j*(47)
+-128 + j*(283)
+193 + j*(266)
+258 + j*(-54)
+-4 + j*(-167)
+-118 + j*(26)
+6 + j*(127)
+75 + j*(84)
+110 + j*(81)
+209 + j*(21)
+190 + j*(-151)
+24 + j*(-204)
+-61 + j*(-107)
+-36 + j*(-48)
+-18 + j*(-37)
+16 + j*(-31)
+38 + j*(-91)
+-39 + j*(-144)
+-117 + j*(-92)
+-119 + j*(-35)
+-132 + j*(4)
+-97 + j*(93)
+38 + j*(78)
+30 + j*(-82)
+-153 + j*(-69)
+-146 + j*(127)
+32 + j*(129)
+7 + j*(-2)
+-95 + j*(94)
+70 + j*(228)
+284 + j*(57)
+206 + j*(-215)
+-42 + j*(-288)
+-244 + j*(-165)
+-298 + j*(76)
+-113 + j*(277)
+151 + j*(194)
+148 + j*(-52)
+-52 + j*(-83)
+-88 + j*(83)
+62 + j*(131)
+139 + j*(-5)
+27 + j*(-122)
+-129 + j*(-40)
+-79 + j*(156)
+146 + j*(141)
+173 + j*(-105)
+-63 + j*(-176)
+-173 + j*(10)
+-83 + j*(117)
+-54 + j*(129)
+-1 + j*(231)
+201 + j*(235)
+281 + j*(44)
+183 + j*(-27)
+228 + j*(15)
+324 + j*(-140)
+168 + j*(-317)
+9 + j*(-233)
+95 + j*(-191)
+66 + j*(-401)
+-260 + j*(-458)
+-479 + j*(-179)
+-404 + j*(89)
+-280 + j*(207)
+-132 + j*(310)
+119 + j*(280)
+226 + j*(27)
+56 + j*(-135)
+-73 + j*(-43)
+-4 + j*(4)
+-29 + j*(-98)
+-199 + j*(-45)
+-175 + j*(177)
+49 + j*(215)
+124 + j*(40)
+13 + j*(-30)
+-31 + j*(44)
+29 + j*(79)
+76 + j*(40)
+74 + j*(-19)
+21 + j*(-52)
+-27 + j*(-10)
+15 + j*(32)
+49 + j*(-23)
+-18 + j*(-55)
+-40 + j*(7)
+6 + j*(-1)
+-54 + j*(-41)
+-117 + j*(76)
+35 + j*(183)
+183 + j*(40)
+79 + j*(-119)
+-56 + j*(-58)
+-21 + j*(38)
+50 + j*(14)
+41 + j*(-52)
+-28 + j*(-80)
+-106 + j*(-21)
+-86 + j*(90)
+12 + j*(117)
+50 + j*(80)
+88 + j*(90)
+192 + j*(17)
+143 + j*(-177)
+-98 + j*(-196)
+-193 + j*(33)
+-33 + j*(197)
+168 + j*(150)
+250 + j*(-32)
+138 + j*(-204)
+-47 + j*(-156)
+9 + j*(-8)
+151 + j*(-147)
+-70 + j*(-351)
+-349 + j*(-124)
+-182 + j*(161)
+18 + j*(32)
+-139 + j*(-53)
+-158 + j*(165)
+86 + j*(170)
+72 + j*(-34)
+-64 + j*(42)
+110 + j*(148)
+255 + j*(-100)
+24 + j*(-322)
+-247 + j*(-218)
+-320 + j*(-6)
+-276 + j*(197)
+-72 + j*(337)
+158 + j*(236)
+158 + j*(52)
+81 + j*(40)
+131 + j*(45)
+138 + j*(-57)
+52 + j*(-81)
+54 + j*(-54)
+50 + j*(-128)
+-89 + j*(-151)
+-167 + j*(-4)
+-62 + j*(112)
+55 + j*(58)
+35 + j*(-46)
+-64 + j*(-44)
+-78 + j*(58)
+19 + j*(84)
+42 + j*(1)
+-32 + j*(1)
+-6 + j*(69)
+49 + j*(25)
+-19 + j*(8)
+16 + j*(121)
+192 + j*(54)
+127 + j*(-167)
+-102 + j*(-120)
+-66 + j*(75)
+74 + j*(30)
+8 + j*(-43)
+1 + j*(54)
+139 + j*(17)
+100 + j*(-153)
+-66 + j*(-147)
+-98 + j*(-37)
+-68 + j*(16)
+-15 + j*(61)
+84 + j*(8)
+28 + j*(-129)
+-129 + j*(-59)
+-46 + j*(98)
+94 + j*(-8)
+-35 + j*(-121)
+-118 + j*(24)
+33 + j*(71)
+48 + j*(-83)
+-100 + j*(-80)
+-98 + j*(34)
+-57 + j*(25)
+-103 + j*(65)
+-9 + j*(173)
+144 + j*(78)
+78 + j*(-78)
+-37 + j*(-34)
+0 + j*(20)
+-2 + j*(-29)
+-74 + j*(18)
+-7 + j*(117)
+107 + j*(59)
+73 + j*(-45)
+1 + j*(-21)
+39 + j*(28)
+100 + j*(-18)
+72 + j*(-114)
+-42 + j*(-136)
+-112 + j*(-36)
+-37 + j*(57)
+66 + j*(1)
+25 + j*(-115)
+-92 + j*(-118)
+-153 + j*(-37)
+-148 + j*(53)
+-81 + j*(117)
+6 + j*(95)
+-6 + j*(8)
+-119 + j*(34)
+-115 + j*(215)
+116 + j*(305)
+327 + j*(112)
+244 + j*(-161)
+6 + j*(-180)
+-41 + j*(-23)
+54 + j*(-16)
+8 + j*(-91)
+-58 + j*(-13)
+45 + j*(30)
+57 + j*(-109)
+-122 + j*(-103)
+-122 + j*(91)
+43 + j*(95)
+12 + j*(-2)
+-17 + j*(115)
+218 + j*(117)
+244 + j*(-215)
+-125 + j*(-296)
+-244 + j*(61)
+66 + j*(191)
+192 + j*(-68)
+-1 + j*(-185)
+-94 + j*(-71)
+-57 + j*(-23)
+-71 + j*(-9)
+-31 + j*(62)
+89 + j*(21)
+81 + j*(-135)
+-74 + j*(-192)
+-194 + j*(-103)
+-212 + j*(11)
+-192 + j*(98)
+-140 + j*(192)
+-10 + j*(256)
+150 + j*(190)
+185 + j*(32)
+104 + j*(-49)
+66 + j*(-52)
+30 + j*(-100)
+-106 + j*(-81)
+-137 + j*(122)
+101 + j*(227)
+299 + j*(7)
+167 + j*(-274)
+-129 + j*(-287)
+-291 + j*(-65)
+-211 + j*(175)
+12 + j*(243)
+161 + j*(110)
+141 + j*(-30)
+76 + j*(-87)
+0 + j*(-122)
+-113 + j*(-66)
+-84 + j*(83)
+66 + j*(64)
+27 + j*(-73)
+-97 + j*(8)
+37 + j*(119)
+139 + j*(-71)
+-106 + j*(-170)
+-213 + j*(111)
+76 + j*(228)
+186 + j*(-36)
+-42 + j*(-121)
+-96 + j*(71)
+56 + j*(107)
+79 + j*(19)
+66 + j*(16)
+92 + j*(-28)
+16 + j*(-65)
+13 + j*(39)
+163 + j*(-16)
+59 + j*(-238)
+-233 + j*(-105)
+-89 + j*(243)
+305 + j*(105)
+205 + j*(-313)
+-194 + j*(-281)
+-226 + j*(44)
+-6 + j*(103)
+47 + j*(-24)
+-11 + j*(-57)
+-18 + j*(-42)
+-17 + j*(-63)
+-56 + j*(-95)
+-145 + j*(-77)
+-183 + j*(60)
+-34 + j*(148)
+72 + j*(-6)
+-105 + j*(-104)
+-199 + j*(105)
+18 + j*(197)
+80 + j*(-12)
+-137 + j*(-14)
+-93 + j*(242)
+199 + j*(199)
+197 + j*(-86)
+-37 + j*(-129)
+-113 + j*(28)
+-45 + j*(131)
+69 + j*(158)
+174 + j*(63)
+106 + j*(-69)
+-1 + j*(5)
+128 + j*(93)
+242 + j*(-97)
+55 + j*(-266)
+-127 + j*(-158)
+-124 + j*(-42)
+-134 + j*(18)
+-73 + j*(149)
+127 + j*(127)
+139 + j*(-74)
+-11 + j*(-93)
+-3 + j*(-16)
+10 + j*(-75)
+-98 + j*(-40)
+-27 + j*(89)
+96 + j*(-18)
+-55 + j*(-123)
+-149 + j*(67)
+45 + j*(164)
+137 + j*(19)
+86 + j*(-37)
+105 + j*(-89)
+-21 + j*(-194)
+-181 + j*(-13)
+57 + j*(156)
+234 + j*(-164)
+-155 + j*(-371)
+-403 + j*(13)
+-110 + j*(256)
+44 + j*(81)
+-47 + j*(73)
+78 + j*(133)
+125 + j*(-73)
+-116 + j*(-96)
+-110 + j*(153)
+117 + j*(132)
+90 + j*(-28)
+31 + j*(24)
+131 + j*(-12)
+42 + j*(-148)
+-80 + j*(-46)
+35 + j*(4)
+-16 + j*(-148)
+-221 + j*(-10)
+-23 + j*(239)
+247 + j*(18)
+35 + j*(-240)
+-163 + j*(-67)
+-24 + j*(13)
+-80 + j*(-137)
+-294 + j*(2)
+-169 + j*(264)
+54 + j*(219)
+59 + j*(127)
+112 + j*(136)
+174 + j*(1)
+14 + j*(-87)
+-62 + j*(85)
+124 + j*(143)
+178 + j*(-30)
+48 + j*(-71)
+57 + j*(12)
+126 + j*(-59)
+17 + j*(-147)
+-106 + j*(-33)
+-15 + j*(132)
+194 + j*(95)
+240 + j*(-132)
+50 + j*(-254)
+-88 + j*(-122)
+29 + j*(-28)
+99 + j*(-187)
+-95 + j*(-300)
+-267 + j*(-153)
+-228 + j*(6)
+-156 + j*(41)
+-122 + j*(45)
+-116 + j*(18)
+-200 + j*(42)
+-203 + j*(222)
+21 + j*(305)
+157 + j*(124)
+35 + j*(19)
+1 + j*(133)
+151 + j*(129)
+161 + j*(-35)
+23 + j*(-59)
+8 + j*(44)
+104 + j*(49)
+136 + j*(-48)
+61 + j*(-132)
+-68 + j*(-103)
+-92 + j*(47)
+61 + j*(115)
+170 + j*(-22)
+78 + j*(-151)
+-27 + j*(-126)
+-45 + j*(-93)
+-95 + j*(-88)
+-137 + j*(16)
+-23 + j*(93)
+66 + j*(-27)
+-81 + j*(-129)
+-231 + j*(39)
+-94 + j*(255)
+139 + j*(207)
+181 + j*(49)
+168 + j*(5)
+231 + j*(-105)
+105 + j*(-317)
+-192 + j*(-274)
+-228 + j*(-6)
+-57 + j*(23)
+-119 + j*(-89)
+-247 + j*(63)
+-71 + j*(233)
+102 + j*(82)
+-31 + j*(-52)
+-136 + j*(80)
+-28 + j*(187)
+78 + j*(155)
+148 + j*(89)
+148 + j*(-62)
+-52 + j*(-130)
+-185 + j*(100)
+29 + j*(301)
+266 + j*(177)
+280 + j*(9)
+292 + j*(-85)
+248 + j*(-291)
+-40 + j*(-396)
+-267 + j*(-170)
+-177 + j*(76)
+-1 + j*(95)
+80 + j*(14)
+73 + j*(-90)
+-40 + j*(-127)
+-90 + j*(-12)
+42 + j*(26)
+76 + j*(-139)
+-103 + j*(-202)
+-210 + j*(-71)
+-193 + j*(36)
+-164 + j*(129)
+-33 + j*(216)
+126 + j*(130)
+117 + j*(-5)
+87 + j*(-40)
+73 + j*(-141)
+-123 + j*(-200)
+-259 + j*(21)
+-77 + j*(185)
+45 + j*(64)
+-32 + j*(29)
+25 + j*(78)
+39 + j*(-61)
+-186 + j*(-27)
+-119 + j*(289)
+267 + j*(222)
+222 + j*(-170)
+-119 + j*(-139)
+-74 + j*(124)
+100 + j*(53)
+10 + j*(-36)
+6 + j*(71)
+132 + j*(1)
+15 + j*(-147)
+-148 + j*(-28)
+-78 + j*(127)
+16 + j*(134)
+77 + j*(156)
+214 + j*(111)
+246 + j*(-65)
+144 + j*(-152)
+95 + j*(-178)
+-23 + j*(-248)
+-216 + j*(-129)
+-152 + j*(127)
+95 + j*(122)
+135 + j*(-69)
+17 + j*(-143)
+-75 + j*(-119)
+-157 + j*(-23)
+-88 + j*(161)
+169 + j*(155)
+256 + j*(-113)
+64 + j*(-281)
+-111 + j*(-223)
+-162 + j*(-124)
+-154 + j*(-61)
+-140 + j*(-59)
+-221 + j*(-59)
+-289 + j*(105)
+-129 + j*(254)
+20 + j*(151)
+-62 + j*(88)
+-39 + j*(217)
+130 + j*(165)
+64 + j*(25)
+-11 + j*(163)
+244 + j*(229)
+377 + j*(-88)
+127 + j*(-293)
+-59 + j*(-196)
+-95 + j*(-131)
+-170 + j*(-47)
+-93 + j*(93)
+25 + j*(1)
+-151 + j*(-75)
+-233 + j*(204)
+87 + j*(337)
+245 + j*(80)
+103 + j*(-13)
+141 + j*(52)
+190 + j*(-105)
+-16 + j*(-148)
+-7 + j*(62)
+220 + j*(-32)
+76 + j*(-298)
+-201 + j*(-168)
+-111 + j*(37)
+-32 + j*(-49)
+-175 + j*(-12)
+-93 + j*(198)
+136 + j*(139)
+124 + j*(-34)
+64 + j*(-37)
+95 + j*(-90)
+-20 + j*(-189)
+-171 + j*(-74)
+-114 + j*(78)
+-15 + j*(88)
+44 + j*(83)
+137 + j*(1)
+63 + j*(-166)
+-142 + j*(-103)
+-74 + j*(103)
+123 + j*(6)
+-6 + j*(-195)
+-221 + j*(-57)
+-105 + j*(156)
+79 + j*(72)
+19 + j*(-69)
+-80 + j*(-19)
+-35 + j*(44)
+6 + j*(-13)
+-87 + j*(-61)
+-192 + j*(52)
+-112 + j*(243)
+129 + j*(253)
+236 + j*(35)
+91 + j*(-115)
+-44 + j*(-27)
+28 + j*(87)
+164 + j*(11)
+116 + j*(-182)
+-134 + j*(-210)
+-259 + j*(60)
+-3 + j*(262)
+236 + j*(19)
+-20 + j*(-234)
+-297 + j*(56)
+16 + j*(375)
+365 + j*(76)
+103 + j*(-260)
+-189 + j*(-14)
+66 + j*(234)
+293 + j*(-16)
+82 + j*(-218)
+-50 + j*(-61)
+93 + j*(-19)
+71 + j*(-188)
+-122 + j*(-160)
+-113 + j*(14)
+15 + j*(16)
+16 + j*(-71)
+-30 + j*(-85)
+-64 + j*(-98)
+-147 + j*(-69)
+-159 + j*(56)
+-42 + j*(100)
+-10 + j*(16)
+-82 + j*(27)
+-41 + j*(112)
+51 + j*(78)
+37 + j*(17)
+42 + j*(22)
+63 + j*(-54)
+-76 + j*(-110)
+-168 + j*(71)
+37 + j*(191)
+164 + j*(-25)
+-70 + j*(-147)
+-192 + j*(117)
+93 + j*(267)
+295 + j*(3)
+106 + j*(-244)
+-141 + j*(-170)
+-177 + j*(23)
+-72 + j*(125)
+36 + j*(92)
+20 + j*(3)
+-78 + j*(56)
+6 + j*(214)
+238 + j*(158)
+263 + j*(-87)
+98 + j*(-170)
+50 + j*(-124)
+33 + j*(-194)
+-156 + j*(-219)
+-292 + j*(2)
+-151 + j*(224)
+63 + j*(221)
+158 + j*(116)
+206 + j*(26)
+218 + j*(-108)
+115 + j*(-239)
+-49 + j*(-247)
+-142 + j*(-158)
+-155 + j*(-78)
+-161 + j*(-39)
+-186 + j*(23)
+-165 + j*(136)
+-27 + j*(216)
+141 + j*(137)
+158 + j*(-59)
+-6 + j*(-153)
+-134 + j*(-54)
+-101 + j*(64)
+-33 + j*(65)
+-40 + j*(52)
+-20 + j*(94)
+48 + j*(69)
+9 + j*(-5)
+-81 + j*(67)
+15 + j*(206)
+206 + j*(132)
+190 + j*(-62)
+49 + j*(-74)
+56 + j*(9)
+117 + j*(-29)
+82 + j*(-70)
+109 + j*(-51)
+172 + j*(-185)
+-23 + j*(-366)
+-314 + j*(-216)
+-270 + j*(88)
+-56 + j*(100)
+-87 + j*(-6)
+-153 + j*(111)
+8 + j*(194)
+96 + j*(55)
+1 + j*(24)
+62 + j*(109)
+177 + j*(-33)
+-5 + j*(-171)
+-139 + j*(36)
+106 + j*(148)
+213 + j*(-146)
+-103 + j*(-272)
+-249 + j*(13)
+-27 + j*(144)
+54 + j*(-21)
+-76 + j*(-47)
+-66 + j*(56)
+-2 + j*(21)
+-71 + j*(-16)
+-115 + j*(82)
+-36 + j*(163)
+71 + j*(156)
+151 + j*(59)
+82 + j*(-78)
+-102 + j*(-16)
+-26 + j*(233)
+302 + j*(174)
+305 + j*(-202)
+-49 + j*(-272)
+-136 + j*(16)
+96 + j*(71)
+115 + j*(-139)
+-86 + j*(-150)
+-104 + j*(27)
+35 + j*(42)
+37 + j*(-70)
+-75 + j*(-55)
+-54 + j*(78)
+115 + j*(75)
+156 + j*(-124)
+-50 + j*(-234)
+-222 + j*(-63)
+-117 + j*(148)
+104 + j*(119)
+156 + j*(-89)
+-21 + j*(-228)
+-242 + j*(-114)
+-213 + j*(168)
+88 + j*(238)
+245 + j*(-41)
+39 + j*(-260)
+-187 + j*(-162)
+-201 + j*(-8)
+-169 + j*(58)
+-125 + j*(132)
+-17 + j*(139)
+13 + j*(47)
+-62 + j*(23)
+-98 + j*(83)
+-105 + j*(158)
+-29 + j*(301)
+257 + j*(325)
+447 + j*(-21)
+163 + j*(-355)
+-231 + j*(-200)
+-208 + j*(164)
+71 + j*(241)
+204 + j*(75)
+139 + j*(-61)
+31 + j*(-52)
+40 + j*(45)
+155 + j*(26)
+152 + j*(-117)
+21 + j*(-144)
+-9 + j*(-71)
+-6 + j*(-77)
+-78 + j*(-23)
+15 + j*(126)
+240 + j*(30)
+194 + j*(-238)
+-36 + j*(-265)
+-91 + j*(-148)
+-93 + j*(-141)
+-160 + j*(-93)
+-126 + j*(-5)
+-101 + j*(-31)
+-165 + j*(47)
+11 + j*(185)
+234 + j*(-70)
+-75 + j*(-383)
+-466 + j*(-63)
+-175 + j*(363)
+235 + j*(107)
+8 + j*(-264)
+-322 + j*(-86)
+-228 + j*(157)
+-153 + j*(132)
+-203 + j*(249)
+27 + j*(402)
+252 + j*(170)
+44 + j*(-29)
+-88 + j*(217)
+237 + j*(332)
+385 + j*(-18)
+80 + j*(-173)
+-9 + j*(91)
+257 + j*(102)
+236 + j*(-187)
+-31 + j*(-152)
+47 + j*(62)
+228 + j*(-81)
+47 + j*(-245)
+-74 + j*(-57)
+150 + j*(-21)
+128 + j*(-331)
+-258 + j*(-325)
+-310 + j*(66)
+21 + j*(145)
+88 + j*(-127)
+-151 + j*(-194)
+-251 + j*(-11)
+-170 + j*(112)
+-82 + j*(139)
+-10 + j*(121)
+11 + j*(64)
+-31 + j*(62)
+-7 + j*(124)
+93 + j*(112)
+126 + j*(6)
+42 + j*(-59)
+-32 + j*(-1)
+19 + j*(89)
+142 + j*(49)
+147 + j*(-100)
+18 + j*(-167)
+-82 + j*(-115)
+-127 + j*(-44)
+-140 + j*(68)
+-24 + j*(180)
+145 + j*(122)
+173 + j*(-27)
+119 + j*(-105)
+63 + j*(-177)
+-92 + j*(-196)
+-182 + j*(-29)
+-30 + j*(71)
+28 + j*(-77)
+-143 + j*(-95)
+-134 + j*(83)
+23 + j*(35)
+-97 + j*(-97)
+-238 + j*(85)
+-45 + j*(245)
+86 + j*(83)
+-67 + j*(37)
+-52 + j*(232)
+197 + j*(238)
+286 + j*(17)
+182 + j*(-133)
+50 + j*(-175)
+-86 + j*(-118)
+-106 + j*(40)
+28 + j*(112)
+120 + j*(37)
+129 + j*(-43)
+112 + j*(-134)
+-9 + j*(-215)
+-161 + j*(-141)
+-180 + j*(-4)
+-148 + j*(71)
+-98 + j*(168)
+72 + j*(206)
+185 + j*(52)
+101 + j*(-66)
+54 + j*(-49)
+39 + j*(-105)
+-122 + j*(-78)
+-98 + j*(180)
+253 + j*(181)
+315 + j*(-221)
+-54 + j*(-357)
+-211 + j*(-95)
+-59 + j*(-6)
+-71 + j*(-112)
+-192 + j*(-51)
+-170 + j*(62)
+-144 + j*(98)
+-115 + j*(206)
+75 + j*(272)
+245 + j*(103)
+181 + j*(-96)
+48 + j*(-134)
+-18 + j*(-117)
+-96 + j*(-97)
+-159 + j*(6)
+-98 + j*(127)
+32 + j*(123)
+52 + j*(21)
+-45 + j*(25)
+-13 + j*(169)
+207 + j*(154)
+260 + j*(-107)
+22 + j*(-226)
+-115 + j*(-51)
+6 + j*(68)
+105 + j*(-15)
+75 + j*(-115)
+-16 + j*(-165)
+-156 + j*(-121)
+-179 + j*(66)
+6 + j*(146)
+101 + j*(-12)
+-24 + j*(-93)
+-80 + j*(9)
+5 + j*(45)
+41 + j*(-20)
+14 + j*(-86)
+-86 + j*(-133)
+-232 + j*(-35)
+-189 + j*(170)
+-17 + j*(186)
+-16 + j*(129)
+40 + j*(239)
+302 + j*(142)
+232 + j*(-231)
+-175 + j*(-193)
+-135 + j*(192)
+209 + j*(107)
+62 + j*(-202)
+-229 + j*(6)
+7 + j*(298)
+291 + j*(92)
+164 + j*(-139)
+38 + j*(-79)
+85 + j*(-69)
+36 + j*(-137)
+-35 + j*(-97)
+-25 + j*(-71)
+-74 + j*(-62)
+-58 + j*(52)
+118 + j*(33)
+110 + j*(-211)
+-180 + j*(-263)
+-324 + j*(4)
+-163 + j*(216)
+29 + j*(197)
+110 + j*(105)
+139 + j*(16)
+114 + j*(-91)
+-4 + j*(-152)
+-122 + j*(-69)
+-78 + j*(74)
+77 + j*(49)
+64 + j*(-122)
+-115 + j*(-130)
+-146 + j*(22)
+-57 + j*(50)
+-74 + j*(18)
+-73 + j*(103)
+56 + j*(91)
+34 + j*(-60)
+-123 + j*(-23)
+-85 + j*(131)
+33 + j*(101)
+-1 + j*(56)
+42 + j*(124)
+165 + j*(4)
+-16 + j*(-183)
+-284 + j*(33)
+-88 + j*(383)
+301 + j*(281)
+313 + j*(-45)
+132 + j*(-107)
+120 + j*(-59)
+117 + j*(-146)
+-25 + j*(-164)
+-78 + j*(-21)
+50 + j*(42)
+121 + j*(-77)
+15 + j*(-170)
+-95 + j*(-87)
+-25 + j*(22)
+95 + j*(-66)
+-10 + j*(-231)
+-231 + j*(-156)
+-216 + j*(67)
+-58 + j*(75)
+-108 + j*(-13)
+-192 + j*(141)
+27 + j*(284)
+223 + j*(67)
+39 + j*(-119)
+-94 + j*(57)
+118 + j*(142)
+185 + j*(-107)
+-74 + j*(-174)
+-129 + j*(74)
+108 + j*(103)
+122 + j*(-139)
+-121 + j*(-174)
+-208 + j*(45)
+-54 + j*(185)
+111 + j*(119)
+115 + j*(-40)
+-29 + j*(-81)
+-82 + j*(69)
+83 + j*(148)
+202 + j*(0)
+124 + j*(-132)
+52 + j*(-143)
+6 + j*(-183)
+-119 + j*(-177)
+-158 + j*(-59)
+-113 + j*(-46)
+-206 + j*(-45)
+-221 + j*(156)
+25 + j*(206)
+66 + j*(-45)
+-206 + j*(-42)
+-188 + j*(257)
+80 + j*(268)
+86 + j*(122)
+84 + j*(221)
+343 + j*(170)
+361 + j*(-197)
+23 + j*(-321)
+-142 + j*(-121)
+-106 + j*(-8)
+-95 + j*(71)
+39 + j*(152)
+164 + j*(8)
+15 + j*(-106)
+-46 + j*(63)
+163 + j*(71)
+142 + j*(-177)
+-112 + j*(-150)
+-83 + j*(72)
+87 + j*(40)
+53 + j*(-65)
+25 + j*(-30)
+74 + j*(-76)
+-7 + j*(-144)
+-54 + j*(-71)
+3 + j*(-107)
+-147 + j*(-208)
+-345 + j*(4)
+-169 + j*(287)
+110 + j*(211)
+119 + j*(41)
+110 + j*(19)
+148 + j*(-118)
+-73 + j*(-258)
+-314 + j*(-25)
+-127 + j*(276)
+167 + j*(165)
+117 + j*(-55)
+-4 + j*(-7)
+100 + j*(40)
+143 + j*(-129)
+-39 + j*(-216)
+-150 + j*(-91)
+-101 + j*(-23)
+-125 + j*(-52)
+-200 + j*(29)
+-144 + j*(153)
+-40 + j*(166)
+11 + j*(151)
+85 + j*(118)
+91 + j*(-7)
+-61 + j*(-33)
+-100 + j*(148)
+93 + j*(218)
+199 + j*(59)
+112 + j*(-40)
+63 + j*(-27)
+28 + j*(-44)
+-54 + j*(28)
+35 + j*(182)
+256 + j*(131)
+306 + j*(-94)
+187 + j*(-243)
+21 + j*(-292)
+-157 + j*(-193)
+-129 + j*(25)
+83 + j*(13)
+42 + j*(-211)
+-204 + j*(-165)
+-187 + j*(63)
+-46 + j*(74)
+-51 + j*(54)
+43 + j*(98)
+112 + j*(-78)
+-137 + j*(-135)
+-150 + j*(200)
+284 + j*(163)
+214 + j*(-362)
+-363 + j*(-276)
+-255 + j*(302)
+293 + j*(146)
+83 + j*(-375)
+-423 + j*(-147)
+-228 + j*(315)
+134 + j*(178)
+39 + j*(-47)
+-64 + j*(32)
+-3 + j*(41)
+-75 + j*(15)
+-71 + j*(171)
+154 + j*(167)
+175 + j*(-86)
+-69 + j*(-142)
+-149 + j*(66)
+4 + j*(169)
+115 + j*(78)
+75 + j*(-21)
+-17 + j*(6)
+23 + j*(125)
+205 + j*(89)
+219 + j*(-150)
+-26 + j*(-232)
+-145 + j*(-30)
+8 + j*(84)
+98 + j*(-42)
+-12 + j*(-126)
+-103 + j*(-57)
+-100 + j*(23)
+-71 + j*(86)
+13 + j*(136)
+128 + j*(88)
+135 + j*(-43)
+35 + j*(-82)
+3 + j*(-13)
+74 + j*(-7)
+74 + j*(-98)
+-23 + j*(-114)
+-48 + j*(-29)
+23 + j*(-13)
+37 + j*(-82)
+-19 + j*(-112)
+-54 + j*(-98)
+-83 + j*(-95)
+-122 + j*(-71)
+-146 + j*(-47)
+-209 + j*(-8)
+-245 + j*(141)
+-91 + j*(293)
+115 + j*(228)
+140 + j*(78)
+114 + j*(45)
+153 + j*(-23)
+64 + j*(-152)
+-105 + j*(-92)
+-72 + j*(58)
+28 + j*(18)
+-56 + j*(-42)
+-107 + j*(85)
+36 + j*(156)
+123 + j*(37)
+47 + j*(-40)
+1 + j*(1)
+21 + j*(21)
+24 + j*(16)
+45 + j*(29)
+75 + j*(-9)
+35 + j*(-57)
+-26 + j*(-11)
+36 + j*(71)
+168 + j*(4)
+137 + j*(-182)
+-62 + j*(-215)
+-121 + j*(-64)
+-18 + j*(-70)
+-149 + j*(-198)
+-399 + j*(23)
+-184 + j*(413)
+272 + j*(271)
+185 + j*(-159)
+-191 + j*(-66)
+-62 + j*(284)
+279 + j*(151)
+170 + j*(-151)
+-56 + j*(-49)
+82 + j*(110)
+231 + j*(-54)
+95 + j*(-223)
+-56 + j*(-167)
+-69 + j*(-92)
+-76 + j*(-71)
+-86 + j*(-23)
+-50 + j*(15)
+-8 + j*(13)
+24 + j*(-11)
+33 + j*(-72)
+-23 + j*(-122)
+-91 + j*(-112)
+-129 + j*(-92)
+-197 + j*(-66)
+-251 + j*(42)
+-188 + j*(165)
+-86 + j*(171)
+-81 + j*(136)
+-107 + j*(202)
+-6 + j*(310)
+184 + j*(270)
+243 + j*(90)
+127 + j*(6)
+94 + j*(98)
+244 + j*(95)
+273 + j*(-111)
+74 + j*(-185)
+13 + j*(-28)
+173 + j*(-26)
+148 + j*(-244)
+-113 + j*(-246)
+-159 + j*(-1)
+40 + j*(54)
+84 + j*(-108)
+-50 + j*(-150)
+-100 + j*(-60)
+-72 + j*(-21)
+-64 + j*(3)
+-14 + j*(33)
+53 + j*(-29)
+1 + j*(-134)
+-134 + j*(-132)
+-203 + j*(-6)
+-136 + j*(125)
+16 + j*(111)
+16 + j*(-48)
+-190 + j*(-33)
+-182 + j*(265)
+206 + j*(314)
+344 + j*(-115)
+-71 + j*(-330)
+-330 + j*(21)
+-79 + j*(273)
+98 + j*(139)
+45 + j*(103)
+168 + j*(148)
+262 + j*(-77)
+10 + j*(-212)
+-114 + j*(34)
+141 + j*(115)
+204 + j*(-159)
+-43 + j*(-242)
+-132 + j*(-90)
+-115 + j*(-62)
+-211 + j*(23)
+-103 + j*(257)
+225 + j*(193)
+228 + j*(-151)
+-64 + j*(-209)
+-135 + j*(-3)
+-9 + j*(37)
+-16 + j*(-38)
+-65 + j*(2)
+-9 + j*(28)
+-17 + j*(-59)
+-173 + j*(-44)
+-218 + j*(197)
+60 + j*(376)
+379 + j*(150)
+269 + j*(-243)
+-109 + j*(-243)
+-162 + j*(63)
+66 + j*(113)
+81 + j*(-51)
+-37 + j*(-18)
+35 + j*(69)
+100 + j*(-15)
+40 + j*(-34)
+110 + j*(-2)
+157 + j*(-185)
+-97 + j*(-291)
+-256 + j*(-37)
+-44 + j*(111)
+45 + j*(-82)
+-172 + j*(-120)
+-209 + j*(113)
+-8 + j*(174)
+56 + j*(55)
+19 + j*(27)
+41 + j*(8)
+-13 + j*(-49)
+-89 + j*(33)
+17 + j*(125)
+119 + j*(4)
+6 + j*(-98)
+-88 + j*(-2)
+-11 + j*(70)
+25 + j*(18)
+-7 + j*(28)
+58 + j*(59)
+112 + j*(-53)
+-15 + j*(-151)
+-150 + j*(-53)
+-114 + j*(76)
+-48 + j*(92)
+-37 + j*(117)
+45 + j*(177)
+184 + j*(117)
+210 + j*(-41)
+116 + j*(-142)
+1 + j*(-157)
+-101 + j*(-91)
+-107 + j*(54)
+39 + j*(117)
+136 + j*(-5)
+49 + j*(-109)
+-28 + j*(-47)
+35 + j*(-3)
+76 + j*(-88)
+-8 + j*(-164)
+-124 + j*(-138)
+-185 + j*(-31)
+-127 + j*(90)
+-1 + j*(72)
+-35 + j*(-47)
+-191 + j*(39)
+-83 + j*(275)
+226 + j*(209)
+233 + j*(-107)
+-24 + j*(-156)
+-54 + j*(23)
+73 + j*(-1)
+4 + j*(-107)
+-91 + j*(-16)
+14 + j*(49)
+49 + j*(-82)
+-109 + j*(-105)
+-136 + j*(57)
+6 + j*(71)
+-23 + j*(-66)
+-205 + j*(0)
+-170 + j*(249)
+99 + j*(314)
+259 + j*(119)
+187 + j*(-54)
+83 + j*(-64)
+80 + j*(-42)
+74 + j*(-91)
+-12 + j*(-110)
+-60 + j*(-23)
+15 + j*(33)
+69 + j*(-41)
+-9 + j*(-100)
+-71 + j*(-27)
+-15 + j*(25)
+7 + j*(-19)
+-36 + j*(-1)
+28 + j*(59)
+127 + j*(-49)
+-5 + j*(-206)
+-233 + j*(-87)
+-170 + j*(190)
+111 + j*(216)
+231 + j*(-8)
+119 + j*(-180)
+-25 + j*(-201)
+-130 + j*(-160)
+-214 + j*(-70)
+-226 + j*(76)
+-125 + j*(190)
+18 + j*(189)
+89 + j*(100)
+66 + j*(33)
+50 + j*(39)
+93 + j*(19)
+85 + j*(-71)
+-31 + j*(-95)
+-86 + j*(21)
+30 + j*(101)
+147 + j*(-8)
+78 + j*(-171)
+-108 + j*(-180)
+-200 + j*(-35)
+-151 + j*(91)
+-68 + j*(125)
+-8 + j*(127)
+56 + j*(101)
+77 + j*(23)
+11 + j*(-21)
+-42 + j*(26)
+-31 + j*(79)
+-11 + j*(127)
+71 + j*(201)
+253 + j*(163)
+330 + j*(-45)
+214 + j*(-199)
+112 + j*(-206)
+83 + j*(-250)
+-57 + j*(-326)
+-268 + j*(-235)
+-325 + j*(4)
+-178 + j*(190)
+42 + j*(175)
+108 + j*(-13)
+-57 + j*(-97)
+-132 + j*(84)
+90 + j*(159)
+181 + j*(-96)
+-88 + j*(-200)
+-194 + j*(58)
+47 + j*(148)
+115 + j*(-77)
+-90 + j*(-131)
+-146 + j*(30)
+-64 + j*(77)
+-58 + j*(88)
+11 + j*(163)
+161 + j*(100)
+155 + j*(-69)
+41 + j*(-119)
+-9 + j*(-103)
+-74 + j*(-113)
+-176 + j*(-38)
+-165 + j*(134)
+11 + j*(231)
+211 + j*(119)
+199 + j*(-142)
+-76 + j*(-228)
+-226 + j*(30)
+9 + j*(209)
+200 + j*(-6)
+21 + j*(-205)
+-164 + j*(-93)
+-141 + j*(21)
+-167 + j*(45)
+-193 + j*(214)
+25 + j*(373)
+298 + j*(247)
+339 + j*(-19)
+193 + j*(-187)
+6 + j*(-186)
+-74 + j*(-49)
+9 + j*(35)
+66 + j*(-16)
+44 + j*(-30)
+100 + j*(-42)
+60 + j*(-196)
+-193 + j*(-154)
+-158 + j*(175)
+229 + j*(144)
+200 + j*(-293)
+-264 + j*(-284)
+-288 + j*(158)
+83 + j*(194)
+88 + j*(-88)
+-126 + j*(-33)
+-25 + j*(153)
+156 + j*(48)
+86 + j*(-111)
+-18 + j*(-86)
+-4 + j*(-40)
+15 + j*(-69)
+-14 + j*(-108)
+-82 + j*(-122)
+-151 + j*(-66)
+-136 + j*(14)
+-91 + j*(25)
+-88 + j*(16)
+-79 + j*(6)
+-142 + j*(-51)
+-326 + j*(49)
+-298 + j*(388)
+96 + j*(531)
+383 + j*(238)
+268 + j*(-56)
+84 + j*(-71)
+29 + j*(-13)
+1 + j*(42)
+54 + j*(143)
+218 + j*(122)
+266 + j*(-61)
+140 + j*(-158)
+66 + j*(-114)
+79 + j*(-106)
+57 + j*(-148)
+2 + j*(-156)
+-47 + j*(-148)
+-113 + j*(-105)
+-115 + j*(8)
+15 + j*(54)
+98 + j*(-83)
+-35 + j*(-215)
+-214 + j*(-125)
+-200 + j*(57)
+-76 + j*(100)
+-28 + j*(53)
+-25 + j*(40)
+-6 + j*(14)
+-44 + j*(-23)
+-100 + j*(23)
+-60 + j*(91)
+-9 + j*(66)
+-38 + j*(46)
+-46 + j*(100)
+6 + j*(135)
+68 + j*(144)
+162 + j*(107)
+194 + j*(-35)
+66 + j*(-109)
+26 + j*(-7)
+151 + j*(-57)
+23 + j*(-262)
+-274 + j*(-100)
+-108 + j*(252)
+257 + j*(83)
+76 + j*(-270)
+-252 + j*(-71)
+-45 + j*(216)
+184 + j*(10)
+-11 + j*(-144)
+-75 + j*(35)
+95 + j*(13)
+1 + j*(-161)
+-164 + j*(-30)
+-23 + j*(100)
+51 + j*(-47)
+-111 + j*(-62)
+-88 + j*(113)
+86 + j*(73)
+46 + j*(-92)
+-112 + j*(-87)
+-181 + j*(48)
+-118 + j*(214)
+111 + j*(260)
+245 + j*(37)
+64 + j*(-98)
+10 + j*(86)
+279 + j*(38)
+194 + j*(-350)
+-269 + j*(-301)
+-269 + j*(151)
+103 + j*(166)
+97 + j*(-110)
+-85 + j*(-75)
+-29 + j*(7)
+-47 + j*(-75)
+-155 + j*(13)
+-47 + j*(115)
+-23 + j*(8)
+-161 + j*(115)
+73 + j*(341)
+402 + j*(43)
+104 + j*(-348)
+-291 + j*(-73)
+-41 + j*(291)
+286 + j*(80)
+141 + j*(-188)
+-30 + j*(-125)
+-25 + j*(-79)
+-93 + j*(-71)
+-95 + j*(68)
+67 + j*(79)
+82 + j*(-76)
+-42 + j*(-91)
+-57 + j*(-19)
+-46 + j*(-17)
+-73 + j*(24)
+-16 + j*(76)
+40 + j*(37)
+27 + j*(22)
+93 + j*(28)
+146 + j*(-124)
+-43 + j*(-261)
+-264 + j*(-112)
+-212 + j*(122)
+-37 + j*(161)
+26 + j*(78)
+6 + j*(52)
+33 + j*(64)
+81 + j*(0)
+-1 + j*(-100)
+-160 + j*(-18)
+-111 + j*(191)
+105 + j*(204)
+164 + j*(69)
+171 + j*(43)
+288 + j*(-88)
+132 + j*(-406)
+-337 + j*(-333)
+-398 + j*(167)
+19 + j*(324)
+200 + j*(46)
+62 + j*(-95)
+-21 + j*(-85)
+-133 + j*(-71)
+-204 + j*(156)
+99 + j*(325)
+346 + j*(9)
+52 + j*(-248)
+-148 + j*(45)
+208 + j*(187)
+358 + j*(-264)
+-139 + j*(-507)
+-506 + j*(-58)
+-180 + j*(391)
+290 + j*(215)
+249 + j*(-226)
+-124 + j*(-294)
+-255 + j*(-22)
+-95 + j*(107)
+-29 + j*(27)
+-74 + j*(37)
+-13 + j*(66)
+-13 + j*(-32)
+-161 + j*(-1)
+-132 + j*(199)
+66 + j*(206)
+91 + j*(81)
+59 + j*(102)
+163 + j*(83)
+148 + j*(-71)
+2 + j*(-67)
+16 + j*(41)
+86 + j*(13)
+69 + j*(-12)
+115 + j*(-17)
+103 + j*(-153)
+-99 + j*(-158)
+-127 + j*(71)
+85 + j*(114)
+129 + j*(-27)
+112 + j*(-34)
+218 + j*(-152)
+32 + j*(-427)
+-383 + j*(-278)
+-339 + j*(162)
+15 + j*(195)
+56 + j*(-23)
+-36 + j*(-38)
+-22 + j*(-61)
+-161 + j*(-107)
+-261 + j*(129)
+12 + j*(298)
+224 + j*(59)
+70 + j*(-136)
+-52 + j*(-70)
+-47 + j*(-59)
+-140 + j*(-52)
+-154 + j*(98)
+-23 + j*(129)
+-24 + j*(57)
+-47 + j*(139)
+116 + j*(153)
+151 + j*(-49)
+-37 + j*(-100)
+-79 + j*(33)
+-25 + j*(25)
+-133 + j*(35)
+-129 + j*(269)
+173 + j*(357)
+363 + j*(115)
+275 + j*(-83)
+205 + j*(-116)
+185 + j*(-214)
+9 + j*(-309)
+-196 + j*(-190)
+-194 + j*(33)
+-32 + j*(125)
+95 + j*(32)
+40 + j*(-100)
+-120 + j*(-52)
+-76 + j*(165)
+205 + j*(163)
+271 + j*(-156)
+-33 + j*(-278)
+-160 + j*(-15)
+83 + j*(70)
+123 + j*(-186)
+-147 + j*(-210)
+-156 + j*(40)
+52 + j*(11)
+-41 + j*(-169)
+-214 + j*(-28)
+-52 + j*(142)
+107 + j*(-16)
+-21 + j*(-165)
+-147 + j*(-124)
+-230 + j*(-78)
+-342 + j*(105)
+-146 + j*(390)
+249 + j*(259)
+194 + j*(-158)
+-195 + j*(-152)
+-223 + j*(187)
+37 + j*(253)
+122 + j*(97)
+56 + j*(23)
+-13 + j*(51)
+5 + j*(165)
+209 + j*(189)
+316 + j*(-83)
+35 + j*(-265)
+-167 + j*(-19)
+47 + j*(158)
+181 + j*(-25)
+46 + j*(-106)
+53 + j*(-27)
+105 + j*(-142)
+-91 + j*(-211)
+-183 + j*(-4)
+-4 + j*(66)
+-1 + j*(-104)
+-207 + j*(-59)
+-187 + j*(189)
+39 + j*(249)
+162 + j*(117)
+140 + j*(-4)
+64 + j*(-35)
+35 + j*(21)
+118 + j*(47)
+178 + j*(-62)
+99 + j*(-157)
+27 + j*(-137)
+33 + j*(-146)
+-40 + j*(-216)
+-193 + j*(-161)
+-205 + j*(27)
+-36 + j*(80)
+11 + j*(-88)
+-214 + j*(-137)
+-328 + j*(147)
+-54 + j*(356)
+190 + j*(168)
+86 + j*(-4)
+30 + j*(81)
+143 + j*(59)
+93 + j*(-39)
+91 + j*(59)
+321 + j*(-57)
+171 + j*(-471)
+-364 + j*(-392)
+-382 + j*(114)
+-21 + j*(144)
+-91 + j*(-66)
+-223 + j*(142)
+67 + j*(259)
+170 + j*(-28)
+-49 + j*(-78)
+-8 + j*(59)
+57 + j*(-97)
+-209 + j*(-124)
+-242 + j*(199)
+52 + j*(252)
+82 + j*(60)
+1 + j*(119)
+163 + j*(142)
+177 + j*(-79)
+-37 + j*(-81)
+-11 + j*(94)
+128 + j*(43)
+76 + j*(-49)
+56 + j*(-5)
+112 + j*(-57)
+29 + j*(-132)
+-37 + j*(-64)
+15 + j*(-53)
+-33 + j*(-123)
+-136 + j*(-69)
+-132 + j*(37)
+-85 + j*(86)
+-25 + j*(117)
+38 + j*(82)
+11 + j*(58)
+51 + j*(136)
+216 + j*(64)
+161 + j*(-162)
+-64 + j*(-133)
+-36 + j*(40)
+72 + j*(-15)
+-13 + j*(-60)
+1 + j*(43)
+103 + j*(-13)
+25 + j*(-83)
+36 + j*(16)
+181 + j*(-104)
+-18 + j*(-312)
+-258 + j*(-88)
+-38 + j*(113)
+69 + j*(-120)
+-192 + j*(-119)
+-91 + j*(164)
+205 + j*(-31)
+-57 + j*(-346)
+-381 + j*(-87)
+-197 + j*(186)
+-54 + j*(93)
+-95 + j*(115)
+54 + j*(133)
+33 + j*(-93)
+-244 + j*(-11)
+-107 + j*(305)
+207 + j*(138)
+18 + j*(-119)
+-147 + j*(105)
+119 + j*(175)
+96 + j*(-133)
+-253 + j*(-41)
+-149 + j*(344)
+222 + j*(285)
+220 + j*(11)
+82 + j*(6)
+124 + j*(48)
+144 + j*(-33)
+71 + j*(-71)
+6 + j*(-41)
+-13 + j*(59)
+137 + j*(151)
+328 + j*(-30)
+182 + j*(-309)
+-106 + j*(-240)
+-87 + j*(-27)
+31 + j*(-71)
+-78 + j*(-133)
+-141 + j*(31)
+40 + j*(122)
+172 + j*(-39)
+65 + j*(-214)
+-133 + j*(-192)
+-195 + j*(-4)
+-39 + j*(106)
+78 + j*(-33)
+-74 + j*(-144)
+-187 + j*(40)
+24 + j*(165)
+167 + j*(-59)
+-47 + j*(-227)
+-223 + j*(-54)
+-111 + j*(86)
+-56 + j*(2)
+-182 + j*(34)
+-129 + j*(248)
+155 + j*(257)
+254 + j*(-10)
+76 + j*(-153)
+-18 + j*(-66)
+47 + j*(-84)
+-64 + j*(-223)
+-321 + j*(-112)
+-313 + j*(218)
+-22 + j*(334)
+153 + j*(167)
+99 + j*(27)
+22 + j*(46)
+63 + j*(111)
+179 + j*(66)
+187 + j*(-107)
+5 + j*(-195)
+-132 + j*(-49)
+-30 + j*(89)
+84 + j*(16)
+40 + j*(-76)
+-21 + j*(-76)
+-74 + j*(-69)
+-136 + j*(7)
+-70 + j*(119)
+35 + j*(62)
+-59 + j*(2)
+-95 + j*(186)
+182 + j*(254)
+316 + j*(-60)
+25 + j*(-243)
+-161 + j*(4)
+49 + j*(172)
+197 + j*(2)
+77 + j*(-119)
+9 + j*(-37)
+89 + j*(-21)
+93 + j*(-126)
+-8 + j*(-157)
+-58 + j*(-104)
+-63 + j*(-88)
+-116 + j*(-65)
+-126 + j*(49)
+14 + j*(114)
+130 + j*(-16)
+37 + j*(-168)
+-119 + j*(-136)
+-157 + j*(-20)
+-112 + j*(59)
+-28 + j*(83)
+31 + j*(3)
+-67 + j*(-66)
+-148 + j*(71)
+28 + j*(179)
+158 + j*(-12)
+-24 + j*(-141)
+-117 + j*(20)
+31 + j*(50)
+-12 + j*(-100)
+-171 + j*(-1)
+-35 + j*(156)
+93 + j*(-4)
+-98 + j*(-98)
+-174 + j*(116)
+35 + j*(187)
+96 + j*(18)
+-18 + j*(-19)
+-39 + j*(40)
+-48 + j*(51)
+-66 + j*(136)
+66 + j*(216)
+198 + j*(115)
+176 + j*(-5)
+137 + j*(-35)
+116 + j*(-69)
+88 + j*(-67)
+142 + j*(-100)
+82 + j*(-290)
+-246 + j*(-293)
+-373 + j*(76)
+-87 + j*(290)
+103 + j*(158)
+93 + j*(109)
+226 + j*(86)
+247 + j*(-175)
+-47 + j*(-240)
+-90 + j*(38)
+199 + j*(8)
+119 + j*(-333)
+-255 + j*(-281)
+-264 + j*(42)
+-71 + j*(64)
+-111 + j*(-4)
+-120 + j*(132)
+69 + j*(139)
+86 + j*(-52)
+-85 + j*(-52)
+-62 + j*(112)
+108 + j*(74)
+86 + j*(-99)
+-75 + j*(-96)
+-78 + j*(42)
+48 + j*(34)
+23 + j*(-105)
+-137 + j*(-85)
+-141 + j*(82)
+-5 + j*(100)
+-5 + j*(16)
+-49 + j*(69)
+77 + j*(88)
+92 + j*(-113)
+-182 + j*(-150)
+-276 + j*(168)
+23 + j*(330)
+208 + j*(107)
+64 + j*(-23)
+19 + j*(103)
+180 + j*(107)
+218 + j*(-68)
+98 + j*(-160)
+4 + j*(-145)
+-81 + j*(-99)
+-108 + j*(50)
+88 + j*(154)
+288 + j*(-64)
+101 + j*(-367)
+-256 + j*(-279)
+-276 + j*(37)
+-73 + j*(96)
+-68 + j*(-6)
+-135 + j*(78)
+10 + j*(161)
+100 + j*(9)
+-40 + j*(-54)
+-47 + j*(86)
+120 + j*(31)
+17 + j*(-182)
+-261 + j*(-69)
+-202 + j*(252)
+85 + j*(308)
+233 + j*(171)
+313 + j*(39)
+313 + j*(-197)
+59 + j*(-351)
+-148 + j*(-180)
+-38 + j*(-49)
+-81 + j*(-46)
+-16 + j*(85)
+103 + j*(-8)
+-16 + j*(-98)
+-54 + j*(54)
+149 + j*(39)
+102 + j*(-221)
+-192 + j*(-181)
+-167 + j*(105)
+78 + j*(81)
+42 + j*(-127)
+-145 + j*(-88)
+-132 + j*(79)
+8 + j*(108)
+81 + j*(4)
+7 + j*(-110)
+-141 + j*(-67)
+-123 + j*(97)
+32 + j*(84)
+-13 + j*(-54)
+-156 + j*(39)
+-35 + j*(213)
+158 + j*(103)
+86 + j*(-72)
+-36 + j*(-31)
+-8 + j*(33)
+12 + j*(3)
+-18 + j*(3)
+-26 + j*(21)
+-40 + j*(49)
+-1 + j*(110)
+91 + j*(77)
+57 + j*(-6)
+1 + j*(72)
+150 + j*(144)
+295 + j*(-41)
+176 + j*(-265)
+-59 + j*(-291)
+-229 + j*(-135)
+-201 + j*(130)
+114 + j*(213)
+281 + j*(-125)
+-55 + j*(-348)
+-282 + j*(-45)
+-9 + j*(112)
+31 + j*(-186)
+-354 + j*(-137)
+-294 + j*(325)
+173 + j*(303)
+168 + j*(-91)
+-138 + j*(-62)
+-81 + j*(177)
+95 + j*(133)
+79 + j*(59)
+144 + j*(83)
+242 + j*(-95)
+37 + j*(-299)
+-247 + j*(-161)
+-223 + j*(132)
+5 + j*(216)
+146 + j*(88)
+110 + j*(-48)
+15 + j*(-57)
+13 + j*(1)
+62 + j*(-21)
+42 + j*(-80)
+-10 + j*(-93)
+-57 + j*(-95)
+-132 + j*(-48)
+-117 + j*(71)
+-4 + j*(81)
+-21 + j*(-1)
+-98 + j*(76)
+10 + j*(199)
+175 + j*(142)
+238 + j*(12)
+245 + j*(-152)
+62 + j*(-344)
+-260 + j*(-221)
+-199 + j*(131)
+117 + j*(80)
+23 + j*(-192)
+-208 + j*(-39)
+-1 + j*(132)
+88 + j*(-134)
+-250 + j*(-153)
+-228 + j*(236)
+160 + j*(183)
+52 + j*(-163)
+-254 + j*(30)
+9 + j*(329)
+326 + j*(51)
+100 + j*(-272)
+-187 + j*(-156)
+-197 + j*(35)
+-144 + j*(139)
+-6 + j*(221)
+158 + j*(98)
+41 + j*(-88)
+-153 + j*(50)
+-9 + j*(281)
+256 + j*(204)
+310 + j*(-22)
+224 + j*(-184)
+53 + j*(-279)
+-167 + j*(-194)
+-196 + j*(51)
+-12 + j*(165)
+132 + j*(88)
+176 + j*(-17)
+170 + j*(-149)
+28 + j*(-263)
+-156 + j*(-184)
+-144 + j*(-11)
+-22 + j*(-8)
+-47 + j*(-112)
+-171 + j*(-77)
+-164 + j*(60)
+-51 + j*(81)
+-47 + j*(-8)
+-152 + j*(21)
+-140 + j*(176)
+28 + j*(229)
+139 + j*(130)
+151 + j*(42)
+165 + j*(-37)
+103 + j*(-161)
+-70 + j*(-179)
+-158 + j*(-38)
+-97 + j*(66)
+-30 + j*(76)
+13 + j*(75)
+59 + j*(37)
+47 + j*(-21)
+20 + j*(-23)
+34 + j*(-53)
+-50 + j*(-124)
+-206 + j*(-18)
+-139 + j*(218)
+118 + j*(235)
+202 + j*(41)
+112 + j*(-37)
+115 + j*(-7)
+166 + j*(-97)
+58 + j*(-223)
+-95 + j*(-175)
+-90 + j*(-58)
+-28 + j*(-78)
+-98 + j*(-123)
+-185 + j*(-47)
+-167 + j*(49)
+-157 + j*(98)
+-117 + j*(235)
+140 + j*(299)
+325 + j*(19)
+93 + j*(-212)
+-86 + j*(-13)
+160 + j*(75)
+199 + j*(-272)
+-233 + j*(-331)
+-342 + j*(107)
+18 + j*(229)
+87 + j*(-29)
+-98 + j*(6)
+40 + j*(168)
+213 + j*(-25)
+25 + j*(-207)
+-131 + j*(-75)
+-62 + j*(12)
+-69 + j*(-28)
+-123 + j*(47)
+-41 + j*(129)
+35 + j*(94)
+56 + j*(64)
+83 + j*(13)
+10 + j*(-50)
+-74 + j*(51)
+56 + j*(165)
+204 + j*(49)
+142 + j*(-91)
+78 + j*(-69)
+125 + j*(-101)
+64 + j*(-228)
+-124 + j*(-233)
+-235 + j*(-74)
+-181 + j*(107)
+-5 + j*(154)
+80 + j*(28)
+-16 + j*(-20)
+17 + j*(107)
+236 + j*(8)
+134 + j*(-330)
+-291 + j*(-291)
+-337 + j*(137)
+24 + j*(231)
+107 + j*(-56)
+-137 + j*(-117)
+-220 + j*(99)
+-74 + j*(236)
+87 + j*(215)
+190 + j*(102)
+170 + j*(-55)
+44 + j*(-113)
+-37 + j*(-57)
+-55 + j*(-3)
+-64 + j*(71)
+32 + j*(159)
+192 + j*(98)
+202 + j*(-74)
+95 + j*(-137)
+58 + j*(-116)
+57 + j*(-165)
+-45 + j*(-228)
+-190 + j*(-177)
+-257 + j*(-37)
+-233 + j*(117)
+-110 + j*(246)
+111 + j*(260)
+280 + j*(59)
+185 + j*(-203)
+-71 + j*(-223)
+-153 + j*(-43)
+-52 + j*(22)
+-49 + j*(-45)
+-122 + j*(-13)
+-112 + j*(59)
+-109 + j*(77)
+-118 + j*(186)
+57 + j*(296)
+267 + j*(158)
+236 + j*(-60)
+112 + j*(-116)
+49 + j*(-120)
+-46 + j*(-100)
+-64 + j*(30)
+73 + j*(61)
+98 + j*(-70)
+-2 + j*(-81)
+14 + j*(-40)
+-16 + j*(-98)
+-130 + j*(4)
+43 + j*(180)
+282 + j*(-47)
+43 + j*(-334)
+-238 + j*(-124)
+-54 + j*(81)
+45 + j*(-129)
+-231 + j*(-156)
+-253 + j*(165)
+40 + j*(216)
+103 + j*(1)
+-19 + j*(-45)
+-43 + j*(-1)
+-65 + j*(13)
+-57 + j*(88)
+45 + j*(73)
+1 + j*(-36)
+-126 + j*(59)
+-6 + j*(226)
+196 + j*(142)
+196 + j*(-37)
+100 + j*(-117)
+-24 + j*(-124)
+-115 + j*(30)
+78 + j*(194)
+328 + j*(-31)
+119 + j*(-364)
+-248 + j*(-228)
+-198 + j*(104)
+54 + j*(115)
+112 + j*(-59)
+21 + j*(-175)
+-156 + j*(-185)
+-276 + j*(3)
+-127 + j*(174)
+-3 + j*(57)
+-167 + j*(33)
+-131 + j*(307)
+233 + j*(283)
+233 + j*(-86)
+-93 + j*(-55)
+10 + j*(262)
+358 + j*(125)
+259 + j*(-226)
+-8 + j*(-181)
+48 + j*(-40)
+110 + j*(-176)
+-99 + j*(-247)
+-218 + j*(-33)
+-54 + j*(109)
+65 + j*(-14)
+-57 + j*(-100)
+-139 + j*(45)
+28 + j*(158)
+182 + j*(0)
+69 + j*(-180)
+-88 + j*(-124)
+-69 + j*(-43)
+-74 + j*(-78)
+-165 + j*(-21)
+-103 + j*(114)
+45 + j*(63)
+-7 + j*(-81)
+-170 + j*(-40)
+-177 + j*(142)
+-13 + j*(234)
+148 + j*(132)
+103 + j*(-50)
+-79 + j*(-21)
+-26 + j*(179)
+214 + j*(95)
+111 + j*(-183)
+-202 + j*(-62)
+-65 + j*(286)
+315 + j*(166)
+247 + j*(-214)
+-81 + j*(-214)
+-130 + j*(21)
+3 + j*(99)
+97 + j*(65)
+159 + j*(-36)
+64 + j*(-176)
+-128 + j*(-100)
+-64 + j*(124)
+179 + j*(76)
+174 + j*(-169)
+-23 + j*(-226)
+-122 + j*(-134)
+-151 + j*(-48)
+-122 + j*(69)
+34 + j*(99)
+103 + j*(-63)
+-43 + j*(-161)
+-153 + j*(-62)
+-126 + j*(22)
+-119 + j*(59)
+-62 + j*(153)
+116 + j*(122)
+127 + j*(-105)
+-116 + j*(-155)
+-199 + j*(83)
+21 + j*(189)
+140 + j*(-9)
+-33 + j*(-146)
+-199 + j*(-18)
+-157 + j*(160)
+-21 + j*(222)
+100 + j*(185)
+158 + j*(81)
+110 + j*(-5)
+48 + j*(25)
+108 + j*(71)
+187 + j*(-6)
+154 + j*(-117)
+86 + j*(-159)
+15 + j*(-206)
+-144 + j*(-207)
+-269 + j*(-13)
+-130 + j*(208)
+117 + j*(156)
+132 + j*(-68)
+-62 + j*(-125)
+-164 + j*(41)
+-47 + j*(194)
+119 + j*(163)
+163 + j*(57)
+165 + j*(20)
+226 + j*(-57)
+159 + j*(-233)
+-67 + j*(-223)
+-69 + j*(-4)
+162 + j*(-57)
+66 + j*(-364)
+-327 + j*(-300)
+-351 + j*(98)
+-35 + j*(180)
+35 + j*(-36)
+-113 + j*(-70)
+-138 + j*(25)
+-122 + j*(54)
+-122 + j*(134)
+18 + j*(202)
+151 + j*(71)
+77 + j*(-88)
+-50 + j*(-88)
+-115 + j*(-35)
+-170 + j*(60)
+-103 + j*(218)
+100 + j*(221)
+163 + j*(52)
+70 + j*(0)
+94 + j*(52)
+177 + j*(-44)
+76 + j*(-206)
+-129 + j*(-180)
+-207 + j*(-13)
+-145 + j*(124)
+-36 + j*(175)
+72 + j*(143)
+110 + j*(42)
+35 + j*(-27)
+-54 + j*(42)
+8 + j*(174)
+184 + j*(151)
+238 + j*(-20)
+127 + j*(-120)
+41 + j*(-89)
+18 + j*(-49)
+14 + j*(13)
+120 + j*(69)
+255 + j*(-63)
+156 + j*(-270)
+-48 + j*(-243)
+-50 + j*(-122)
+-13 + j*(-175)
+-153 + j*(-200)
+-223 + j*(-23)
+-74 + j*(87)
+52 + j*(-10)
+15 + j*(-144)
+-121 + j*(-197)
+-276 + j*(-108)
+-284 + j*(95)
+-121 + j*(185)
+-32 + j*(103)
+-72 + j*(75)
+-62 + j*(121)
+-23 + j*(132)
+16 + j*(161)
+151 + j*(142)
+204 + j*(-68)
+-15 + j*(-202)
+-190 + j*(-33)
+-98 + j*(127)
+-8 + j*(94)
+-21 + j*(100)
+47 + j*(135)
+111 + j*(59)
+66 + j*(-3)
+42 + j*(13)
+32 + j*(-7)
+-28 + j*(33)
+42 + j*(144)
+214 + j*(71)
+183 + j*(-139)
+-11 + j*(-169)
+-77 + j*(-37)
+-13 + j*(28)
+28 + j*(4)
+6 + j*(-13)
+-9 + j*(39)
+87 + j*(86)
+190 + j*(-39)
+71 + j*(-185)
+-72 + j*(-78)
+59 + j*(27)
+148 + j*(-169)
+-95 + j*(-299)
+-284 + j*(-90)
+-183 + j*(114)
+-41 + j*(128)
+42 + j*(76)
+41 + j*(-37)
+-104 + j*(-27)
+-61 + j*(190)
+254 + j*(127)
+204 + j*(-261)
+-199 + j*(-235)
+-174 + j*(119)
+93 + j*(52)
+-48 + j*(-120)
+-139 + j*(107)
+165 + j*(136)
+159 + j*(-217)
+-197 + j*(-197)
+-162 + j*(107)
+62 + j*(37)
+-49 + j*(-124)
+-175 + j*(-10)
+-124 + j*(65)
+-156 + j*(110)
+-60 + j*(294)
+245 + j*(221)
+237 + j*(-116)
+-35 + j*(-135)
+-19 + j*(35)
+81 + j*(-70)
+-105 + j*(-158)
+-230 + j*(45)
+-98 + j*(192)
+4 + j*(180)
+74 + j*(200)
+221 + j*(139)
+243 + j*(-57)
+95 + j*(-151)
+-8 + j*(-93)
+-18 + j*(-30)
+0 + j*(6)
+32 + j*(16)
+68 + j*(11)
+120 + j*(-41)
+82 + j*(-187)
+-162 + j*(-208)
+-276 + j*(105)
+57 + j*(322)
+353 + j*(23)
+128 + j*(-309)
+-186 + j*(-168)
+-115 + j*(102)
+116 + j*(84)
+170 + j*(-120)
+5 + j*(-276)
+-236 + j*(-190)
+-244 + j*(74)
+-15 + j*(129)
+18 + j*(-59)
+-169 + j*(-57)
+-166 + j*(146)
+8 + j*(187)
+89 + j*(97)
+104 + j*(8)
+26 + j*(-96)
+-151 + j*(-27)
+-93 + j*(222)
+204 + j*(211)
+271 + j*(-60)
+118 + j*(-177)
+35 + j*(-197)
+-118 + j*(-234)
+-296 + j*(-45)
+-152 + j*(199)
+51 + j*(112)
+-34 + j*(23)
+-15 + j*(175)
+233 + j*(110)
+190 + j*(-203)
+-110 + j*(-227)
+-203 + j*(-18)
+-148 + j*(100)
+-77 + j*(214)
+154 + j*(251)
+313 + j*(-6)
+112 + j*(-228)
+-91 + j*(-103)
+2 + j*(36)
+103 + j*(-71)
+-13 + j*(-194)
+-187 + j*(-126)
+-211 + j*(74)
+-35 + j*(177)
+103 + j*(34)
+-38 + j*(-107)
+-194 + j*(48)
+-54 + j*(236)
+139 + j*(153)
+111 + j*(17)
+49 + j*(28)
+78 + j*(55)
+118 + j*(41)
+170 + j*(-4)
+170 + j*(-122)
+45 + j*(-183)
+-30 + j*(-103)
+19 + j*(-76)
+-4 + j*(-136)
+-82 + j*(-109)
+-69 + j*(-55)
+-71 + j*(-72)
+-119 + j*(-47)
+-114 + j*(8)
+-107 + j*(29)
+-91 + j*(101)
+47 + j*(107)
+65 + j*(-80)
+-173 + j*(-102)
+-209 + j*(184)
+93 + j*(252)
+185 + j*(-21)
+-38 + j*(-115)
+-121 + j*(50)
+-29 + j*(117)
+-6 + j*(107)
+30 + j*(156)
+132 + j*(152)
+189 + j*(82)
+221 + j*(23)
+244 + j*(-66)
+218 + j*(-163)
+179 + j*(-264)
+26 + j*(-409)
+-295 + j*(-341)
+-363 + j*(37)
+-18 + j*(168)
+91 + j*(-151)
+-255 + j*(-233)
+-349 + j*(125)
+-42 + j*(233)
+11 + j*(0)
+-204 + j*(31)
+-136 + j*(288)
+141 + j*(272)
+200 + j*(45)
+67 + j*(-45)
+-9 + j*(32)
+59 + j*(119)
+215 + j*(54)
+209 + j*(-194)
+-94 + j*(-302)
+-320 + j*(-16)
+-112 + j*(284)
+194 + j*(171)
+148 + j*(-88)
+-57 + j*(-61)
+-19 + j*(124)
+183 + j*(101)
+230 + j*(-124)
+29 + j*(-272)
+-207 + j*(-153)
+-192 + j*(122)
+68 + j*(192)
+184 + j*(-30)
+1 + j*(-141)
+-74 + j*(33)
+127 + j*(67)
+157 + j*(-180)
+-114 + j*(-251)
+-228 + j*(-17)
+-82 + j*(104)
+-14 + j*(49)
+-8 + j*(66)
+86 + j*(42)
+71 + j*(-99)
+-79 + j*(-98)
+-80 + j*(25)
+-6 + j*(4)
+-71 + j*(-25)
+-71 + j*(88)
+77 + j*(71)
+49 + j*(-103)
+-151 + j*(-70)
+-147 + j*(149)
+59 + j*(213)
+199 + j*(84)
+207 + j*(-97)
+67 + j*(-251)
+-182 + j*(-228)
+-293 + j*(14)
+-147 + j*(204)
+23 + j*(180)
+74 + j*(98)
+80 + j*(47)
+62 + j*(-4)
+2 + j*(-7)
+-12 + j*(57)
+57 + j*(87)
+107 + j*(38)
+102 + j*(0)
+119 + j*(-10)
+156 + j*(-88)
+71 + j*(-206)
+-96 + j*(-164)
+-83 + j*(-8)
+54 + j*(-48)
+-49 + j*(-215)
+-287 + j*(-91)
+-204 + j*(205)
+94 + j*(183)
+115 + j*(-76)
+-100 + j*(-132)
+-210 + j*(28)
+-159 + j*(198)
+22 + j*(296)
+242 + j*(185)
+238 + j*(-55)
+69 + j*(-94)
+85 + j*(-11)
+148 + j*(-138)
+-55 + j*(-249)
+-222 + j*(-41)
+-63 + j*(134)
+74 + j*(28)
+4 + j*(-62)
+-53 + j*(-33)
+-95 + j*(4)
+-113 + j*(147)
+127 + j*(271)
+388 + j*(-3)
+170 + j*(-368)
+-207 + j*(-255)
+-165 + j*(28)
+-20 + j*(-34)
+-176 + j*(-87)
+-212 + j*(161)
+56 + j*(214)
+88 + j*(-25)
+-130 + j*(20)
+-13 + j*(269)
+270 + j*(145)
+179 + j*(-109)
+32 + j*(-13)
+214 + j*(32)
+240 + j*(-249)
+-54 + j*(-318)
+-115 + j*(-124)
+-49 + j*(-179)
+-281 + j*(-192)
+-308 + j*(177)
+122 + j*(210)
+110 + j*(-257)
+-413 + j*(-193)
+-341 + j*(371)
+194 + j*(319)
+129 + j*(-114)
+-196 + j*(16)
+9 + j*(273)
+226 + j*(30)
+-14 + j*(-144)
+-143 + j*(71)
+37 + j*(160)
+98 + j*(29)
+11 + j*(-23)
+-62 + j*(30)
+-59 + j*(172)
+170 + j*(260)
+374 + j*(-22)
+91 + j*(-315)
+-235 + j*(-52)
+17 + j*(264)
+308 + j*(32)
+112 + j*(-209)
+-40 + j*(-46)
+129 + j*(11)
+146 + j*(-182)
+-29 + j*(-237)
+-134 + j*(-165)
+-228 + j*(-64)
+-201 + j*(183)
+124 + j*(269)
+307 + j*(-57)
+36 + j*(-274)
+-158 + j*(-65)
+25 + j*(76)
+141 + j*(-103)
+-4 + j*(-233)
+-125 + j*(-177)
+-166 + j*(-139)
+-263 + j*(-87)
+-305 + j*(98)
+-144 + j*(253)
+52 + j*(184)
+46 + j*(33)
+-37 + j*(44)
+24 + j*(87)
+57 + j*(-37)
+-132 + j*(-75)
+-199 + j*(168)
+64 + j*(276)
+189 + j*(35)
+-25 + j*(-61)
+-81 + j*(156)
+144 + j*(209)
+223 + j*(22)
+127 + j*(-48)
+130 + j*(-33)
+136 + j*(-127)
+8 + j*(-185)
+-102 + j*(-104)
+-106 + j*(10)
+-30 + j*(91)
+103 + j*(66)
+124 + j*(-93)
+-32 + j*(-141)
+-78 + j*(-13)
+25 + j*(-13)
+-52 + j*(-115)
+-190 + j*(29)
+-10 + j*(219)
+214 + j*(38)
+43 + j*(-186)
+-152 + j*(-14)
+47 + j*(155)
+214 + j*(-83)
+-40 + j*(-281)
+-275 + j*(-59)
+-132 + j*(180)
+62 + j*(122)
+66 + j*(18)
+66 + j*(-15)
+33 + j*(-124)
+-178 + j*(-131)
+-274 + j*(151)
+3 + j*(363)
+296 + j*(180)
+255 + j*(-107)
+62 + j*(-172)
+-33 + j*(-97)
+-42 + j*(-28)
+-8 + j*(23)
+67 + j*(13)
+92 + j*(-84)
+-1 + j*(-163)
+-136 + j*(-114)
+-154 + j*(33)
+-37 + j*(105)
+46 + j*(37)
+23 + j*(-28)
+-10 + j*(-42)
+-65 + j*(-58)
+-161 + j*(40)
+-48 + j*(238)
+242 + j*(153)
+208 + j*(-176)
+-96 + j*(-171)
+-71 + j*(79)
+141 + j*(0)
+22 + j*(-195)
+-145 + j*(-69)
+-23 + j*(32)
+1 + j*(-106)
+-158 + j*(-91)
+-144 + j*(37)
+-114 + j*(6)
+-225 + j*(88)
+-99 + j*(313)
+187 + j*(224)
+156 + j*(-27)
+6 + j*(-21)
+26 + j*(18)
+-44 + j*(-21)
+-110 + j*(156)
+166 + j*(279)
+373 + j*(-39)
+102 + j*(-322)
+-210 + j*(-171)
+-206 + j*(98)
+-38 + j*(230)
+175 + j*(190)
+238 + j*(-39)
+24 + j*(-137)
+-42 + j*(72)
+193 + j*(92)
+178 + j*(-170)
+-78 + j*(-119)
+30 + j*(127)
+289 + j*(-23)
+171 + j*(-293)
+-29 + j*(-264)
+-54 + j*(-238)
+-212 + j*(-272)
+-380 + j*(-33)
+-190 + j*(227)
+57 + j*(135)
+23 + j*(-16)
+-23 + j*(14)
+38 + j*(-11)
+-19 + j*(-117)
+-170 + j*(-73)
+-187 + j*(109)
+-20 + j*(211)
+161 + j*(103)
+127 + j*(-109)
+-69 + j*(-141)
+-123 + j*(8)
+-30 + j*(41)
+-50 + j*(-23)
+-117 + j*(51)
+-20 + j*(134)
+69 + j*(46)
+-4 + j*(-28)
+-60 + j*(30)
+-26 + j*(81)
+18 + j*(88)
+84 + j*(67)
+106 + j*(-46)
+-32 + j*(-121)
+-155 + j*(11)
+-52 + j*(162)
+104 + j*(91)
+49 + j*(-57)
+-107 + j*(-10)
+-84 + j*(162)
+78 + j*(184)
+108 + j*(79)
+66 + j*(119)
+233 + j*(180)
+402 + j*(-80)
+151 + j*(-373)
+-197 + j*(-202)
+-103 + j*(110)
+122 + j*(50)
+57 + j*(-78)
+13 + j*(30)
+183 + j*(25)
+190 + j*(-180)
+16 + j*(-221)
+-12 + j*(-131)
+28 + j*(-171)
+-58 + j*(-234)
+-159 + j*(-191)
+-208 + j*(-126)
+-233 + j*(-35)
+-175 + j*(46)
+-124 + j*(7)
+-218 + j*(2)
+-249 + j*(175)
+-74 + j*(280)
+54 + j*(189)
+38 + j*(134)
+87 + j*(160)
+177 + j*(76)
+134 + j*(-44)
+55 + j*(-45)
+66 + j*(-36)
+42 + j*(-107)
+-86 + j*(-110)
+-147 + j*(40)
+-18 + j*(158)
+138 + j*(78)
+116 + j*(-87)
+-26 + j*(-118)
+-91 + j*(-23)
+-45 + j*(52)
+23 + j*(49)
+59 + j*(-13)
+6 + j*(-88)
+-102 + j*(-58)
+-103 + j*(64)
+0 + j*(80)
+0 + j*(1)
+-79 + j*(38)
+-22 + j*(141)
+101 + j*(96)
+76 + j*(-18)
+-18 + j*(6)
+22 + j*(97)
+136 + j*(53)
+112 + j*(-92)
+-50 + j*(-98)
+-86 + j*(70)
+83 + j*(131)
+158 + j*(-28)
+12 + j*(-99)
+-45 + j*(52)
+128 + j*(119)
+250 + j*(-48)
+161 + j*(-238)
+-41 + j*(-281)
+-210 + j*(-143)
+-170 + j*(83)
+44 + j*(117)
+103 + j*(-55)
+-17 + j*(-90)
+6 + j*(-11)
+67 + j*(-115)
+-100 + j*(-185)
+-186 + j*(7)
+6 + j*(85)
+59 + j*(-106)
+-128 + j*(-150)
+-174 + j*(-2)
+-106 + j*(23)
+-146 + j*(30)
+-115 + j*(137)
+16 + j*(115)
+-12 + j*(10)
+-88 + j*(73)
+11 + j*(140)
+76 + j*(25)
+-41 + j*(-23)
+-69 + j*(100)
+61 + j*(120)
+73 + j*(-14)
+-76 + j*(-17)
+-76 + j*(166)
+146 + j*(190)
+203 + j*(-59)
+-65 + j*(-141)
+-179 + j*(158)
+127 + j*(331)
+366 + j*(92)
+271 + j*(-130)
+192 + j*(-168)
+129 + j*(-303)
+-170 + j*(-330)
+-313 + j*(18)
+4 + j*(231)
+230 + j*(-30)
+35 + j*(-240)
+-133 + j*(-135)
+-115 + j*(-52)
+-153 + j*(-35)
+-172 + j*(101)
+-16 + j*(192)
+129 + j*(86)
+98 + j*(-69)
+-40 + j*(-105)
+-125 + j*(18)
+-9 + j*(138)
+136 + j*(25)
+25 + j*(-136)
+-140 + j*(-26)
+-40 + j*(128)
+86 + j*(42)
+8 + j*(-37)
+-24 + j*(43)
+59 + j*(53)
+67 + j*(-8)
+61 + j*(-6)
+91 + j*(-59)
+16 + j*(-127)
+-57 + j*(-59)
+2 + j*(-24)
+-6 + j*(-105)
+-116 + j*(-82)
+-112 + j*(23)
+-62 + j*(28)
+-76 + j*(44)
+-19 + j*(91)
+38 + j*(19)
+-56 + j*(-11)
+-56 + j*(129)
+135 + j*(124)
+157 + j*(-80)
+3 + j*(-127)
+-21 + j*(-65)
+-49 + j*(-135)
+-255 + j*(-85)
+-267 + j*(240)
+88 + j*(366)
+314 + j*(74)
+134 + j*(-172)
+-48 + j*(-84)
+16 + j*(-5)
+13 + j*(-124)
+-199 + j*(-104)
+-243 + j*(177)
+21 + j*(323)
+231 + j*(174)
+241 + j*(6)
+211 + j*(-120)
+67 + j*(-256)
+-177 + j*(-171)
+-163 + j*(88)
+32 + j*(101)
+6 + j*(3)
+-6 + j*(133)
+254 + j*(110)
+267 + j*(-250)
+-100 + j*(-334)
+-221 + j*(-70)
+-113 + j*(-4)
+-188 + j*(12)
+-129 + j*(237)
+175 + j*(192)
+129 + j*(-105)
+-121 + j*(4)
+83 + j*(243)
+358 + j*(-13)
+136 + j*(-320)
+-134 + j*(-193)
+-85 + j*(-28)
+-25 + j*(-49)
+-39 + j*(-59)
+-42 + j*(-81)
+-126 + j*(-83)
+-144 + j*(44)
+-16 + j*(53)
+-59 + j*(-66)
+-182 + j*(48)
+-15 + j*(173)
+83 + j*(-40)
+-190 + j*(-96)
+-234 + j*(235)
+103 + j*(293)
+141 + j*(22)
+-61 + j*(75)
+105 + j*(276)
+367 + j*(68)
+211 + j*(-231)
+-35 + j*(-161)
+0 + j*(-14)
+74 + j*(-76)
+-12 + j*(-136)
+-82 + j*(-64)
+-36 + j*(-12)
+-21 + j*(-69)
+-129 + j*(-76)
+-170 + j*(76)
+-22 + j*(163)
+64 + j*(42)
+-47 + j*(8)
+-32 + j*(148)
+131 + j*(115)
+85 + j*(-23)
+4 + j*(89)
+236 + j*(157)
+371 + j*(-161)
+77 + j*(-395)
+-167 + j*(-233)
+-142 + j*(-103)
+-190 + j*(-85)
+-221 + j*(99)
+-4 + j*(197)
+113 + j*(18)
+-13 + j*(-54)
+-8 + j*(36)
+69 + j*(-48)
+-64 + j*(-131)
+-150 + j*(8)
+-42 + j*(59)
+-83 + j*(-22)
+-187 + j*(132)
+33 + j*(313)
+291 + j*(114)
+173 + j*(-157)
+-25 + j*(-118)
+-11 + j*(-26)
+-4 + j*(-68)
+-82 + j*(-47)
+-72 + j*(32)
+-42 + j*(31)
+-70 + j*(67)
+2 + j*(145)
+115 + j*(83)
+69 + j*(-19)
+2 + j*(51)
+117 + j*(122)
+245 + j*(2)
+214 + j*(-159)
+125 + j*(-253)
+-7 + j*(-340)
+-247 + j*(-320)
+-415 + j*(-74)
+-314 + j*(210)
+-62 + j*(283)
+95 + j*(155)
+68 + j*(13)
+-33 + j*(16)
+-16 + j*(117)
+112 + j*(99)
+112 + j*(-35)
+4 + j*(-37)
+42 + j*(50)
+138 + j*(-35)
+48 + j*(-168)
+-95 + j*(-132)
+-135 + j*(-46)
+-175 + j*(45)
+-99 + j*(234)
+212 + j*(230)
+308 + j*(-136)
+-42 + j*(-317)
+-255 + j*(-39)
+-71 + j*(141)
+24 + j*(26)
+-61 + j*(32)
+14 + j*(115)
+88 + j*(12)
+-23 + j*(-21)
+12 + j*(112)
+178 + j*(14)
+47 + j*(-193)
+-189 + j*(-53)
+-62 + j*(185)
+148 + j*(84)
+74 + j*(-69)
+-12 + j*(-4)
+55 + j*(35)
+66 + j*(-12)
+81 + j*(13)
+192 + j*(-59)
+122 + j*(-283)
+-159 + j*(-285)
+-238 + j*(-45)
+-95 + j*(30)
+-93 + j*(-46)
+-166 + j*(18)
+-97 + j*(98)
+-63 + j*(34)
+-175 + j*(78)
+-115 + j*(289)
+161 + j*(317)
+301 + j*(96)
+231 + j*(-69)
+163 + j*(-127)
+91 + j*(-209)
+-72 + j*(-214)
+-153 + j*(-78)
+-91 + j*(0)
+-83 + j*(-28)
+-144 + j*(37)
+-59 + j*(159)
+102 + j*(96)
+62 + j*(-69)
+-101 + j*(-29)
+-47 + j*(142)
+145 + j*(75)
+66 + j*(-145)
+-194 + j*(-59)
+-121 + j*(255)
+226 + j*(237)
+284 + j*(-82)
+60 + j*(-177)
+6 + j*(-68)
+46 + j*(-112)
+-89 + j*(-147)
+-141 + j*(33)
+42 + j*(86)
+74 + j*(-95)
+-98 + j*(-101)
+-79 + j*(47)
+28 + j*(-16)
+-104 + j*(-104)
+-210 + j*(83)
+-21 + j*(232)
+139 + j*(103)
+92 + j*(-8)
+67 + j*(-16)
+40 + j*(-74)
+-71 + j*(-34)
+2 + j*(122)
+231 + j*(6)
+110 + j*(-317)
+-290 + j*(-269)
+-358 + j*(111)
+-109 + j*(267)
+21 + j*(192)
+65 + j*(185)
+185 + j*(136)
+192 + j*(-16)
+103 + j*(-41)
+150 + j*(-35)
+134 + j*(-185)
+-76 + j*(-198)
+-94 + j*(1)
+70 + j*(-44)
+-75 + j*(-212)
+-285 + j*(13)
+-35 + j*(257)
+196 + j*(19)
+-34 + j*(-148)
+-113 + j*(96)
+163 + j*(103)
+129 + j*(-198)
+-148 + j*(-154)
+-99 + j*(44)
+-8 + j*(-47)
+-171 + j*(-51)
+-137 + j*(169)
+82 + j*(134)
+39 + j*(-27)
+-40 + j*(47)
+66 + j*(49)
+6 + j*(-69)
+-103 + j*(54)
+69 + j*(132)
+98 + j*(-70)
+-124 + j*(-29)
+-10 + j*(222)
+260 + j*(67)
+114 + j*(-181)
+-49 + j*(-58)
+71 + j*(-25)
+-18 + j*(-165)
+-169 + j*(13)
+81 + j*(142)
+180 + j*(-171)
+-167 + j*(-261)
+-250 + j*(37)
+-76 + j*(62)
+-204 + j*(18)
+-202 + j*(334)
+235 + j*(380)
+347 + j*(-47)
+23 + j*(-152)
+3 + j*(66)
+168 + j*(-11)
+37 + j*(-153)
+-72 + j*(-21)
+45 + j*(47)
+83 + j*(-41)
+49 + j*(-69)
+35 + j*(-114)
+-78 + j*(-126)
+-99 + j*(24)
+77 + j*(13)
+19 + j*(-216)
+-276 + j*(-156)
+-284 + j*(150)
+-77 + j*(244)
+25 + j*(216)
+167 + j*(210)
+296 + j*(-6)
+105 + j*(-216)
+-93 + j*(-66)
+57 + j*(64)
+146 + j*(-127)
+-79 + j*(-224)
+-211 + j*(-19)
+-73 + j*(138)
+80 + j*(81)
+96 + j*(-46)
+1 + j*(-110)
+-70 + j*(-42)
+5 + j*(-4)
+1 + j*(-139)
+-228 + j*(-139)
+-295 + j*(160)
+-11 + j*(317)
+194 + j*(139)
+155 + j*(-28)
+108 + j*(-105)
+-11 + j*(-213)
+-255 + j*(-135)
+-271 + j*(165)
+-18 + j*(264)
+84 + j*(119)
+25 + j*(99)
+105 + j*(161)
+235 + j*(39)
+151 + j*(-148)
+-40 + j*(-140)
+-90 + j*(16)
+25 + j*(94)
+120 + j*(14)
+75 + j*(-83)
+5 + j*(-74)
+2 + j*(-60)
+-56 + j*(-86)
+-141 + j*(25)
+-11 + j*(178)
+184 + j*(57)
+73 + j*(-150)
+-120 + j*(-24)
+37 + j*(170)
+266 + j*(-8)
+126 + j*(-279)
+-144 + j*(-231)
+-191 + j*(-41)
+-134 + j*(50)
+-66 + j*(119)
+76 + j*(112)
+122 + j*(-46)
+-18 + j*(-110)
+-66 + j*(10)
+49 + j*(23)
+34 + j*(-105)
+-104 + j*(-74)
+-68 + j*(72)
+86 + j*(34)
+71 + j*(-132)
+-91 + j*(-177)
+-204 + j*(-71)
+-194 + j*(69)
+-88 + j*(142)
+6 + j*(93)
+-11 + j*(27)
+-46 + j*(41)
+-32 + j*(51)
+-63 + j*(48)
+-66 + j*(142)
+88 + j*(167)
+131 + j*(-28)
+-103 + j*(-74)
+-167 + j*(211)
+144 + j*(334)
+329 + j*(72)
+173 + j*(-104)
+86 + j*(-20)
+187 + j*(-28)
+176 + j*(-183)
+21 + j*(-251)
+-116 + j*(-192)
+-187 + j*(-69)
+-146 + j*(75)
+-13 + j*(116)
+58 + j*(46)
+50 + j*(-4)
+40 + j*(-40)
+-24 + j*(-63)
+-74 + j*(33)
+59 + j*(116)
+192 + j*(-36)
+55 + j*(-223)
+-163 + j*(-145)
+-164 + j*(65)
+-1 + j*(142)
+137 + j*(43)
+119 + j*(-133)
+-65 + j*(-199)
+-193 + j*(-47)
+-95 + j*(98)
+14 + j*(49)
+-11 + j*(-2)
+-1 + j*(20)
+31 + j*(-43)
+-79 + j*(-95)
+-156 + j*(33)
+-37 + j*(119)
+28 + j*(18)
+-74 + j*(-13)
+-95 + j*(91)
+-21 + j*(122)
+-11 + j*(119)
+47 + j*(191)
+222 + j*(151)
+265 + j*(-71)
+82 + j*(-185)
+-40 + j*(-66)
+66 + j*(24)
+174 + j*(-113)
+35 + j*(-313)
+-267 + j*(-271)
+-388 + j*(52)
+-160 + j*(308)
+133 + j*(223)
+158 + j*(-12)
+13 + j*(-76)
+-36 + j*(-8)
+-13 + j*(6)
+-27 + j*(-4)
+-44 + j*(18)
+-49 + j*(32)
+-75 + j*(81)
+-13 + j*(182)
+148 + j*(168)
+200 + j*(19)
+131 + j*(-46)
+139 + j*(-54)
+121 + j*(-175)
+-78 + j*(-204)
+-154 + j*(7)
+37 + j*(87)
+86 + j*(-81)
+-64 + j*(-85)
+-6 + j*(43)
+111 + j*(-93)
+-103 + j*(-233)
+-294 + j*(11)
+-91 + j*(235)
+106 + j*(117)
+64 + j*(27)
+110 + j*(53)
+191 + j*(-95)
+31 + j*(-250)
+-144 + j*(-170)
+-157 + j*(-76)
+-209 + j*(-36)
+-236 + j*(128)
+-69 + j*(251)
+84 + j*(177)
+125 + j*(95)
+177 + j*(-8)
+71 + j*(-192)
+-204 + j*(-117)
+-164 + j*(200)
+153 + j*(187)
+148 + j*(-98)
+-88 + j*(-79)
+-40 + j*(113)
+110 + j*(35)
+11 + j*(-76)
+-71 + j*(46)
+70 + j*(124)
+175 + j*(-5)
+114 + j*(-146)
+-22 + j*(-192)
+-167 + j*(-117)
+-182 + j*(71)
+-16 + j*(154)
+81 + j*(30)
+-27 + j*(-45)
+-94 + j*(90)
+71 + j*(202)
+274 + j*(52)
+215 + j*(-234)
+-93 + j*(-301)
+-268 + j*(-52)
+-110 + j*(161)
+73 + j*(81)
+32 + j*(-45)
+-45 + j*(-16)
+-29 + j*(23)
+-31 + j*(35)
+9 + j*(85)
+100 + j*(33)
+43 + j*(-78)
+-61 + j*(1)
+64 + j*(94)
+168 + j*(-78)
+-13 + j*(-205)
+-144 + j*(-61)
+-56 + j*(13)
+-86 + j*(-42)
+-156 + j*(94)
+42 + j*(208)
+191 + j*(-6)
+-13 + j*(-153)
+-127 + j*(37)
+59 + j*(109)
+88 + j*(-75)
+-93 + j*(-64)
+-45 + j*(118)
+148 + j*(40)
+61 + j*(-171)
+-164 + j*(-104)
+-133 + j*(106)
+27 + j*(103)
+9 + j*(1)
+-65 + j*(74)
+59 + j*(178)
+222 + j*(57)
+158 + j*(-132)
+12 + j*(-125)
+33 + j*(-59)
+55 + j*(-160)
+-129 + j*(-214)
+-256 + j*(-8)
+-85 + j*(175)
+112 + j*(47)
+15 + j*(-156)
+-210 + j*(-97)
+-221 + j*(140)
+-15 + j*(230)
+112 + j*(87)
+8 + j*(-23)
+-72 + j*(98)
+100 + j*(187)
+235 + j*(-24)
+18 + j*(-221)
+-236 + j*(-31)
+-109 + j*(274)
+211 + j*(248)
+299 + j*(-25)
+122 + j*(-179)
+-27 + j*(-86)
+56 + j*(40)
+208 + j*(-78)
+81 + j*(-318)
+-235 + j*(-260)
+-277 + j*(49)
+-59 + j*(149)
+13 + j*(44)
+-18 + j*(52)
+71 + j*(60)
+81 + j*(-71)
+-65 + j*(-76)
+-45 + j*(76)
+122 + j*(35)
+91 + j*(-156)
+-100 + j*(-170)
+-175 + j*(-18)
+-83 + j*(103)
+70 + j*(66)
+72 + j*(-126)
+-162 + j*(-174)
+-268 + j*(81)
+-34 + j*(223)
+95 + j*(27)
+-81 + j*(-58)
+-129 + j*(103)
+-10 + j*(121)
+-62 + j*(67)
+-89 + j*(242)
+182 + j*(332)
+387 + j*(71)
+248 + j*(-204)
+-4 + j*(-214)
+-124 + j*(-41)
+-28 + j*(148)
+207 + j*(115)
+240 + j*(-131)
+43 + j*(-199)
+14 + j*(-80)
+99 + j*(-156)
+-59 + j*(-278)
+-228 + j*(-122)
+-134 + j*(25)
+-71 + j*(-31)
+-134 + j*(-13)
+-91 + j*(50)
+-78 + j*(2)
+-161 + j*(66)
+-52 + j*(206)
+125 + j*(95)
+28 + j*(-72)
+-110 + j*(14)
+-52 + j*(128)
+25 + j*(127)
+94 + j*(114)
+146 + j*(-5)
+-8 + j*(-91)
+-98 + j*(117)
+173 + j*(220)
+301 + j*(-74)
+52 + j*(-197)
+16 + j*(-13)
+180 + j*(-112)
+-13 + j*(-313)
+-245 + j*(-104)
+-64 + j*(89)
+49 + j*(-84)
+-145 + j*(-141)
+-194 + j*(45)
+-72 + j*(105)
+-32 + j*(76)
+17 + j*(74)
+37 + j*(-18)
+-81 + j*(-42)
+-104 + j*(80)
+-23 + j*(100)
+-51 + j*(107)
+42 + j*(243)
+305 + j*(128)
+233 + j*(-210)
+-93 + j*(-184)
+-76 + j*(74)
+112 + j*(35)
+50 + j*(-95)
+-22 + j*(-21)
+63 + j*(-1)
+66 + j*(-93)
+1 + j*(-117)
+-45 + j*(-119)
+-119 + j*(-73)
+-69 + j*(36)
+47 + j*(-61)
+-136 + j*(-212)
+-364 + j*(19)
+-169 + j*(305)
+76 + j*(196)
+14 + j*(92)
+61 + j*(190)
+235 + j*(61)
+98 + j*(-155)
+-96 + j*(-29)
+35 + j*(119)
+154 + j*(-23)
+37 + j*(-140)
+-79 + j*(-98)
+-150 + j*(-16)
+-151 + j*(161)
+73 + j*(278)
+285 + j*(93)
+202 + j*(-139)
+32 + j*(-159)
+-49 + j*(-87)
+-57 + j*(21)
+84 + j*(85)
+197 + j*(-92)
+2 + j*(-245)
+-152 + j*(-64)
+23 + j*(43)
+71 + j*(-156)
+-158 + j*(-175)
+-177 + j*(49)
+2 + j*(60)
+-1 + j*(-68)
+-82 + j*(-66)
+-103 + j*(-56)
+-190 + j*(-33)
+-222 + j*(119)
+-102 + j*(221)
+-3 + j*(219)
+112 + j*(226)
+266 + j*(72)
+149 + j*(-171)
+-91 + j*(-102)
+-21 + j*(69)
+61 + j*(-51)
+-136 + j*(-63)
+-110 + j*(204)
+182 + j*(163)
+125 + j*(-103)
+-85 + j*(6)
+95 + j*(177)
+266 + j*(-32)
+110 + j*(-194)
+34 + j*(-147)
+1 + j*(-245)
+-282 + j*(-225)
+-354 + j*(159)
+15 + j*(309)
+162 + j*(33)
+-21 + j*(-33)
+23 + j*(92)
+115 + j*(-56)
+-123 + j*(-117)
+-177 + j*(212)
+219 + j*(306)
+383 + j*(-83)
+90 + j*(-290)
+-67 + j*(-128)
+14 + j*(-94)
+-74 + j*(-182)
+-212 + j*(-44)
+-86 + j*(112)
+40 + j*(11)
+-71 + j*(-66)
+-117 + j*(74)
+45 + j*(103)
+53 + j*(-76)
+-162 + j*(-62)
+-153 + j*(212)
+172 + j*(257)
+296 + j*(-73)
+11 + j*(-260)
+-197 + j*(-38)
+-28 + j*(155)
+134 + j*(14)
+11 + j*(-101)
+-45 + j*(18)
+98 + j*(8)
+37 + j*(-184)
+-190 + j*(-105)
+-107 + j*(119)
+73 + j*(1)
+-116 + j*(-134)
+-236 + j*(137)
+83 + j*(258)
+188 + j*(-74)
+-141 + j*(-133)
+-141 + j*(196)
+178 + j*(144)
+77 + j*(-153)
+-197 + j*(-9)
+-36 + j*(248)
+184 + j*(119)
+115 + j*(-14)
+110 + j*(16)
+146 + j*(-99)
+-31 + j*(-158)
+-87 + j*(29)
+91 + j*(44)
+52 + j*(-133)
+-122 + j*(-55)
+-30 + j*(98)
+74 + j*(4)
+-31 + j*(-33)
+-4 + j*(100)
+165 + j*(47)
+131 + j*(-136)
+-23 + j*(-144)
+-62 + j*(-45)
+-7 + j*(18)
+103 + j*(-16)
+102 + j*(-202)
+-154 + j*(-264)
+-269 + j*(8)
+-14 + j*(118)
+39 + j*(-144)
+-268 + j*(-148)
+-272 + j*(185)
+19 + j*(200)
+-1 + j*(0)
+-125 + j*(96)
+30 + j*(173)
+55 + j*(-4)
+-146 + j*(56)
+-10 + j*(319)
+322 + j*(182)
+257 + j*(-162)
+-13 + j*(-180)
+-65 + j*(-35)
+-40 + j*(-1)
+-58 + j*(54)
+21 + j*(128)
+138 + j*(82)
+168 + j*(-33)
+116 + j*(-145)
+-39 + j*(-184)
+-156 + j*(-38)
+-47 + j*(105)
+68 + j*(25)
+-13 + j*(-14)
+35 + j*(111)
+247 + j*(3)
+142 + j*(-295)
+-182 + j*(-240)
+-173 + j*(28)
+1 + j*(16)
+-51 + j*(-80)
+-89 + j*(-8)
+-27 + j*(-38)
+-166 + j*(-100)
+-269 + j*(147)
+30 + j*(319)
+247 + j*(24)
+-16 + j*(-187)
+-190 + j*(47)
+23 + j*(173)
+90 + j*(-25)
+-108 + j*(-33)
+-93 + j*(188)
+130 + j*(202)
+206 + j*(45)
+183 + j*(-49)
+161 + j*(-170)
+-33 + j*(-283)
+-267 + j*(-117)
+-189 + j*(159)
+41 + j*(152)
+41 + j*(3)
+-54 + j*(52)
+41 + j*(136)
+129 + j*(34)
+35 + j*(-28)
+20 + j*(85)
+183 + j*(83)
+219 + j*(-107)
+69 + j*(-186)
+3 + j*(-112)
+37 + j*(-106)
+4 + j*(-153)
+-51 + j*(-147)
+-91 + j*(-144)
+-175 + j*(-95)
+-158 + j*(46)
+-6 + j*(42)
+-35 + j*(-116)
+-227 + j*(-52)
+-151 + j*(165)
+64 + j*(83)
+-52 + j*(-116)
+-252 + j*(39)
+-90 + j*(250)
+103 + j*(104)
+-49 + j*(-39)
+-174 + j*(150)
+37 + j*(317)
+267 + j*(153)
+196 + j*(-101)
+-31 + j*(-114)
+-81 + j*(76)
+90 + j*(135)
+138 + j*(-33)
+-36 + j*(-49)
+-8 + j*(163)
+263 + j*(107)
+215 + j*(-211)
+-100 + j*(-178)
+-57 + j*(99)
+180 + j*(23)
+81 + j*(-173)
+-51 + j*(-57)
+98 + j*(-8)
+91 + j*(-219)
+-158 + j*(-207)
+-163 + j*(16)
+-11 + j*(6)
+-74 + j*(-83)
+-141 + j*(24)
+-35 + j*(77)
+-21 + j*(10)
+-57 + j*(75)
+102 + j*(112)
+183 + j*(-119)
+-65 + j*(-275)
+-282 + j*(-79)
+-187 + j*(134)
+-65 + j*(109)
+-110 + j*(112)
+-45 + j*(265)
+230 + j*(242)
+305 + j*(-80)
+11 + j*(-239)
+-171 + j*(6)
+42 + j*(171)
+181 + j*(-25)
+2 + j*(-136)
+-69 + j*(27)
+86 + j*(60)
+97 + j*(-74)
+13 + j*(-67)
+77 + j*(-61)
+39 + j*(-223)
+-218 + j*(-214)
+-292 + j*(66)
+-76 + j*(206)
+69 + j*(94)
+37 + j*(-4)
+-6 + j*(-4)
+2 + j*(16)
+38 + j*(-16)
+-6 + j*(-115)
+-191 + j*(-93)
+-235 + j*(159)
+21 + j*(279)
+175 + j*(70)
+17 + j*(-56)
+-59 + j*(85)
+85 + j*(141)
+148 + j*(23)
+102 + j*(-33)
+99 + j*(-64)
+39 + j*(-146)
+-107 + j*(-110)
+-124 + j*(42)
+-4 + j*(92)
+40 + j*(16)
+-25 + j*(-8)
+-51 + j*(77)
+54 + j*(139)
+168 + j*(46)
+113 + j*(-96)
+-28 + j*(-76)
+-30 + j*(47)
+65 + j*(81)
+136 + j*(57)
+230 + j*(-17)
+228 + j*(-216)
+7 + j*(-314)
+-117 + j*(-148)
+7 + j*(-106)
+-64 + j*(-285)
+-361 + j*(-161)
+-272 + j*(223)
+129 + j*(195)
+146 + j*(-167)
+-153 + j*(-218)
+-223 + j*(-16)
+-141 + j*(37)
+-156 + j*(42)
+-127 + j*(127)
+-32 + j*(117)
+-32 + j*(57)
+-54 + j*(74)
+-26 + j*(62)
+-93 + j*(35)
+-158 + j*(176)
+22 + j*(332)
+271 + j*(197)
+228 + j*(-80)
+-19 + j*(-112)
+-82 + j*(104)
+122 + j*(197)
+270 + j*(11)
+146 + j*(-187)
+-59 + j*(-143)
+-78 + j*(24)
+31 + j*(86)
+126 + j*(44)
+180 + j*(-72)
+92 + j*(-243)
+-170 + j*(-241)
+-284 + j*(40)
+-55 + j*(232)
+149 + j*(73)
+33 + j*(-94)
+-103 + j*(19)
+11 + j*(149)
+144 + j*(65)
+103 + j*(-41)
+56 + j*(-19)
+107 + j*(-18)
+112 + j*(-110)
+12 + j*(-151)
+-49 + j*(-78)
+7 + j*(-21)
+65 + j*(-89)
+-4 + j*(-190)
+-156 + j*(-168)
+-218 + j*(-20)
+-136 + j*(106)
+-19 + j*(116)
+57 + j*(67)
+105 + j*(-18)
+68 + j*(-156)
+-119 + j*(-213)
+-281 + j*(-46)
+-193 + j*(177)
+11 + j*(179)
+53 + j*(48)
+-5 + j*(34)
+45 + j*(67)
+104 + j*(-28)
+14 + j*(-131)
+-103 + j*(-93)
+-124 + j*(-23)
+-140 + j*(9)
+-147 + j*(88)
+-59 + j*(136)
+-20 + j*(49)
+-163 + j*(47)
+-187 + j*(293)
+126 + j*(425)
+369 + j*(152)
+197 + j*(-113)
+-4 + j*(-4)
+114 + j*(127)
+217 + j*(-8)
+110 + j*(-86)
+119 + j*(-16)
+207 + j*(-158)
+-29 + j*(-351)
+-351 + j*(-115)
+-214 + j*(274)
+127 + j*(270)
+202 + j*(71)
+164 + j*(25)
+209 + j*(-23)
+180 + j*(-123)
+125 + j*(-127)
+163 + j*(-175)
+66 + j*(-309)
+-121 + j*(-241)
+-70 + j*(-93)
+13 + j*(-209)
+-196 + j*(-296)
+-332 + j*(-61)
+-144 + j*(71)
+-88 + j*(-83)
+-279 + j*(-66)
+-269 + j*(167)
+-64 + j*(204)
+-10 + j*(82)
+-59 + j*(57)
+-69 + j*(72)
+-88 + j*(90)
+-69 + j*(161)
+24 + j*(179)
+76 + j*(122)
+96 + j*(81)
+103 + j*(7)
+4 + j*(-44)
+-62 + j*(68)
+54 + j*(134)
+95 + j*(29)
+12 + j*(61)
+164 + j*(158)
+338 + j*(-107)
+28 + j*(-395)
+-340 + j*(-124)
+-163 + j*(250)
+137 + j*(159)
+92 + j*(-22)
+24 + j*(29)
+103 + j*(35)
+98 + j*(-47)
+66 + j*(-48)
+89 + j*(-93)
+-3 + j*(-174)
+-129 + j*(-92)
+-98 + j*(28)
+-38 + j*(42)
+-7 + j*(63)
+78 + j*(34)
+50 + j*(-86)
+-81 + j*(-46)
+-16 + j*(85)
+103 + j*(-8)
+-16 + j*(-98)
+-54 + j*(54)
+149 + j*(39)
+102 + j*(-221)
+-192 + j*(-181)
+-167 + j*(105)
+78 + j*(81)
+42 + j*(-127)
+-145 + j*(-88)
+-132 + j*(79)
+8 + j*(108)
+81 + j*(4)
+7 + j*(-110)
+-141 + j*(-67)
+-123 + j*(97)
+32 + j*(84)
+-13 + j*(-54)
+-156 + j*(39)
+-35 + j*(213)
+158 + j*(103)
+86 + j*(-72)
+-36 + j*(-31)
+-8 + j*(33)
+12 + j*(3)
+-18 + j*(3)
+-26 + j*(21)
+-40 + j*(49)
+-1 + j*(110)
+91 + j*(77)
+57 + j*(-6)
+1 + j*(72)
+150 + j*(144)
+295 + j*(-41)
+176 + j*(-265)
+-59 + j*(-291)
+-229 + j*(-135)
+-201 + j*(130)
+114 + j*(213)
+281 + j*(-125)
+-55 + j*(-348)
+-282 + j*(-45)
+-9 + j*(112)
+31 + j*(-186)
+-354 + j*(-137)
+-294 + j*(325)
+173 + j*(303)
+168 + j*(-91)
+-138 + j*(-62)
+-81 + j*(177)
+95 + j*(133)
+79 + j*(59)
+144 + j*(83)
+242 + j*(-95)
+37 + j*(-299)
+-247 + j*(-161)
+-223 + j*(132)
+5 + j*(216)
+146 + j*(88)
+110 + j*(-48)
+15 + j*(-57)
+13 + j*(1)
+62 + j*(-21)
+42 + j*(-80)
+-10 + j*(-93)
+-57 + j*(-95)
+-132 + j*(-48)
+-117 + j*(71)
+-4 + j*(81)
+-21 + j*(-1)
+-98 + j*(76)
+10 + j*(199)
+175 + j*(142)
+238 + j*(12)
+245 + j*(-152)
+62 + j*(-344)
+-260 + j*(-221)
+-199 + j*(131)
+117 + j*(80)
+23 + j*(-192)
+-208 + j*(-39)
+-1 + j*(132)
+88 + j*(-134)
+-250 + j*(-153)
+-228 + j*(236)
+160 + j*(183)
+52 + j*(-163)
+-254 + j*(30)
+9 + j*(329)
+326 + j*(51)
+100 + j*(-272)
+-187 + j*(-156)
+-197 + j*(35)
+-144 + j*(139)
+-6 + j*(221)
+158 + j*(98)
+41 + j*(-88)
+-153 + j*(50)
+-9 + j*(281)
+256 + j*(204)
+310 + j*(-22)
+224 + j*(-184)
+53 + j*(-279)
+-167 + j*(-194)
+-196 + j*(51)
+-12 + j*(165)
+132 + j*(88)
+176 + j*(-17)
+170 + j*(-149)
+28 + j*(-263)
+-156 + j*(-184)
+-144 + j*(-11)
+-22 + j*(-8)
+-47 + j*(-112)
+-171 + j*(-77)
+-164 + j*(60)
+-51 + j*(81)
+-47 + j*(-8)
+-152 + j*(21)
+-140 + j*(176)
+28 + j*(229)
+139 + j*(130)
+151 + j*(42)
+165 + j*(-37)
+103 + j*(-161)
+-70 + j*(-179)
+-158 + j*(-38)
+-97 + j*(66)
+-30 + j*(76)
+13 + j*(75)
+59 + j*(37)
+47 + j*(-21)
+20 + j*(-23)
+34 + j*(-53)
+-50 + j*(-124)
+-206 + j*(-18)
+-139 + j*(218)
+118 + j*(235)
+202 + j*(41)
+112 + j*(-37)
+115 + j*(-7)
+166 + j*(-97)
+34 + j*(-267)
+-239 + j*(-119)
+-108 + j*(65)
+-68 + j*(-85)
+-296 + j*(1)
+-157 + j*(327)
+224 + j*(201)
+135 + j*(-182)
+-231 + j*(-141)
+-275 + j*(192)
+-20 + j*(354)
+240 + j*(245)
+291 + j*(-37)
+54 + j*(-195)
+-135 + j*(-11)
+25 + j*(170)
+205 + j*(23)
+100 + j*(-162)
+-71 + j*(-133)
+-131 + j*(-20)
+-115 + j*(113)
+40 + j*(216)
+250 + j*(104)
+235 + j*(-154)
+15 + j*(-248)
+-147 + j*(-132)
+-148 + j*(35)
+-17 + j*(121)
+110 + j*(30)
+44 + j*(-112)
+-106 + j*(-56)
+-55 + j*(97)
+101 + j*(49)
+62 + j*(-112)
+-109 + j*(-88)
+-120 + j*(91)
+51 + j*(150)
+152 + j*(11)
+57 + j*(-103)
+-35 + j*(-41)
+23 + j*(16)
+52 + j*(-61)
+-41 + j*(-70)
+-28 + j*(37)
+96 + j*(8)
+76 + j*(-127)
+-33 + j*(-134)
+-47 + j*(-99)
+-90 + j*(-128)
+-177 + j*(-52)
+-112 + j*(59)
+-25 + j*(-8)
+-124 + j*(-69)
+-187 + j*(62)
+-61 + j*(129)
+-21 + j*(21)
+-146 + j*(18)
+-155 + j*(183)
+16 + j*(247)
+124 + j*(129)
+52 + j*(31)
+-17 + j*(124)
+143 + j*(221)
+337 + j*(25)
+185 + j*(-251)
+-93 + j*(-180)
+-52 + j*(13)
+37 + j*(-83)
+-168 + j*(-117)
+-214 + j*(187)
+127 + j*(282)
+261 + j*(-25)
+44 + j*(-146)
+-10 + j*(-31)
+24 + j*(-95)
+-183 + j*(-95)
+-222 + j*(240)
+168 + j*(390)
+433 + j*(71)
+298 + j*(-221)
+113 + j*(-276)
+-38 + j*(-285)
+-211 + j*(-148)
+-129 + j*(102)
+140 + j*(42)
+71 + j*(-243)
+-246 + j*(-169)
+-197 + j*(172)
+141 + j*(163)
+176 + j*(-131)
+-39 + j*(-188)
+-71 + j*(-68)
+-6 + j*(-113)
+-122 + j*(-194)
+-250 + j*(-72)
+-182 + j*(49)
+-130 + j*(2)
+-233 + j*(1)
+-279 + j*(167)
+-152 + j*(306)
+4 + j*(311)
+115 + j*(258)
+196 + j*(161)
+183 + j*(35)
+96 + j*(2)
+91 + j*(52)
+163 + j*(17)
+135 + j*(-98)
+13 + j*(-98)
+6 + j*(10)
+126 + j*(-1)
+124 + j*(-168)
+-72 + j*(-218)
+-180 + j*(-43)
+-50 + j*(76)
+38 + j*(-34)
+-102 + j*(-103)
+-193 + j*(77)
+-8 + j*(222)
+180 + j*(76)
+91 + j*(-114)
+-70 + j*(-62)
+-25 + j*(64)
+83 + j*(8)
+17 + j*(-104)
+-108 + j*(-43)
+-68 + j*(95)
+66 + j*(85)
+87 + j*(-28)
+7 + j*(-65)
+-32 + j*(-13)
+8 + j*(21)
+50 + j*(-14)
+21 + j*(-77)
+-58 + j*(-66)
+-64 + j*(24)
+18 + j*(32)
+10 + j*(-45)
+-84 + j*(0)
+-7 + j*(138)
+182 + j*(66)
+154 + j*(-149)
+-35 + j*(-161)
+-43 + j*(-35)
+47 + j*(-86)
+-53 + j*(-212)
+-228 + j*(-121)
+-199 + j*(75)
+-38 + j*(105)
+-4 + j*(0)
+-91 + j*(-20)
+-118 + j*(69)
+-45 + j*(129)
+31 + j*(110)
+70 + j*(59)
+72 + j*(-11)
+1 + j*(-50)
+-55 + j*(21)
+40 + j*(91)
+129 + j*(-38)
+-18 + j*(-161)
+-184 + j*(-22)
+-86 + j*(154)
+49 + j*(109)
+23 + j*(70)
+81 + j*(145)
+249 + j*(54)
+211 + j*(-182)
+-6 + j*(-238)
+-119 + j*(-112)
+-94 + j*(-16)
+-45 + j*(4)
+-40 + j*(-24)
+-111 + j*(-7)
+-115 + j*(140)
+83 + j*(215)
+242 + j*(36)
+144 + j*(-174)
+-55 + j*(-186)
+-177 + j*(-56)
+-151 + j*(151)
+97 + j*(248)
+300 + j*(8)
+105 + j*(-250)
+-141 + j*(-107)
+-28 + j*(91)
+112 + j*(-6)
+44 + j*(-77)
+77 + j*(-43)
+118 + j*(-206)
+-136 + j*(-317)
+-323 + j*(-78)
+-179 + j*(105)
+-104 + j*(43)
+-173 + j*(98)
+-71 + j*(229)
+88 + j*(177)
+116 + j*(83)
+140 + j*(18)
+84 + j*(-103)
+-86 + j*(-54)
+-16 + j*(139)
+209 + j*(42)
+120 + j*(-204)
+-91 + j*(-161)
+-88 + j*(-69)
+-161 + j*(-97)
+-286 + j*(111)
+-36 + j*(347)
+242 + j*(135)
+69 + j*(-81)
+-37 + j*(124)
+262 + j*(174)
+354 + j*(-204)
+2 + j*(-390)
+-237 + j*(-170)
+-171 + j*(34)
+-58 + j*(66)
+-5 + j*(24)
+-40 + j*(-21)
+-98 + j*(57)
+17 + j*(168)
+192 + j*(62)
+145 + j*(-131)
+6 + j*(-157)
+-46 + j*(-134)
+-132 + j*(-122)
+-197 + j*(14)
+-73 + j*(123)
+19 + j*(25)
+-85 + j*(-29)
+-125 + j*(93)
+-18 + j*(140)
+16 + j*(88)
+4 + j*(108)
+71 + j*(125)
+114 + j*(65)
+103 + j*(39)
+145 + j*(17)
+142 + j*(-93)
+8 + j*(-139)
+-78 + j*(-27)
+-11 + j*(73)
+76 + j*(73)
+147 + j*(40)
+218 + j*(-68)
+157 + j*(-252)
+-81 + j*(-305)
+-247 + j*(-103)
+-129 + j*(117)
+89 + j*(69)
+76 + j*(-133)
+-103 + j*(-138)
+-116 + j*(15)
+-3 + j*(2)
+-71 + j*(-87)
+-168 + j*(54)
+42 + j*(187)
+231 + j*(-71)
+-33 + j*(-334)
+-361 + j*(-124)
+-255 + j*(204)
+-13 + j*(185)
+-21 + j*(64)
+-66 + j*(123)
+37 + j*(165)
+95 + j*(77)
+58 + j*(33)
+67 + j*(37)
+74 + j*(-26)
+-30 + j*(-59)
+-108 + j*(63)
+1 + j*(209)
+211 + j*(170)
+277 + j*(-49)
+127 + j*(-202)
+-37 + j*(-149)
+-49 + j*(-40)
+-4 + j*(-18)
+2 + j*(-22)
+18 + j*(-16)
+25 + j*(-37)
+17 + j*(-31)
+79 + j*(-47)
+69 + j*(-206)
+-183 + j*(-267)
+-346 + j*(2)
+-140 + j*(216)
+21 + j*(79)
+-124 + j*(21)
+-123 + j*(237)
+144 + j*(259)
+203 + j*(23)
+47 + j*(-21)
+65 + j*(90)
+180 + j*(37)
+152 + j*(-79)
+76 + j*(-94)
+55 + j*(-66)
+95 + j*(-49)
+170 + j*(-146)
+53 + j*(-356)
+-285 + j*(-315)
+-371 + j*(47)
+-97 + j*(212)
+49 + j*(59)
+-17 + j*(-6)
+-7 + j*(9)
+-35 + j*(-49)
+-129 + j*(38)
+21 + j*(176)
+208 + j*(-23)
+5 + j*(-260)
+-254 + j*(-107)
+-191 + j*(100)
+-117 + j*(107)
+-118 + j*(190)
+64 + j*(272)
+217 + j*(83)
+73 + j*(-70)
+-32 + j*(52)
+101 + j*(117)
+176 + j*(-16)
+87 + j*(-118)
+-18 + j*(-108)
+-82 + j*(-35)
+-58 + j*(65)
+35 + j*(84)
+73 + j*(41)
+102 + j*(31)
+163 + j*(-49)
+85 + j*(-190)
+-89 + j*(-156)
+-95 + j*(-13)
+-11 + j*(-6)
+-22 + j*(-48)
+-49 + j*(-43)
+-93 + j*(-39)
+-145 + j*(78)
+29 + j*(209)
+235 + j*(17)
+60 + j*(-231)
+-168 + j*(-93)
+-69 + j*(47)
+-81 + j*(-54)
+-246 + j*(132)
+73 + j*(419)
+487 + j*(60)
+174 + j*(-421)
+-269 + j*(-190)
+-85 + j*(129)
+81 + j*(-65)
+-154 + j*(-115)
+-136 + j*(141)
+96 + j*(64)
+-59 + j*(-118)
+-215 + j*(124)
+84 + j*(286)
+255 + j*(-15)
+-16 + j*(-170)
+-146 + j*(68)
+57 + j*(194)
+195 + j*(58)
+163 + j*(-68)
+100 + j*(-120)
+36 + j*(-140)
+-8 + j*(-136)
+-66 + j*(-155)
+-198 + j*(-103)
+-226 + j*(107)
+-17 + j*(230)
+150 + j*(91)
+87 + j*(-49)
+8 + j*(-22)
+44 + j*(16)
+93 + j*(-31)
+83 + j*(-126)
+-42 + j*(-206)
+-228 + j*(-101)
+-180 + j*(163)
+112 + j*(176)
+170 + j*(-102)
+-66 + j*(-179)
+-119 + j*(-8)
+2 + j*(-32)
+-122 + j*(-159)
+-315 + j*(13)
+-185 + j*(263)
+39 + j*(226)
+61 + j*(107)
+42 + j*(103)
+80 + j*(82)
+66 + j*(42)
+73 + j*(47)
+92 + j*(-11)
+-8 + j*(-42)
+-36 + j*(92)
+136 + j*(116)
+161 + j*(-85)
+-52 + j*(-107)
+-78 + j*(107)
+115 + j*(158)
+198 + j*(37)
+206 + j*(-30)
+233 + j*(-147)
+105 + j*(-296)
+-91 + j*(-243)
+-107 + j*(-116)
+-93 + j*(-111)
+-156 + j*(-58)
+-100 + j*(51)
+-8 + j*(5)
+-76 + j*(-36)
+-76 + j*(80)
+89 + j*(67)
+88 + j*(-130)
+-109 + j*(-154)
+-163 + j*(4)
+-71 + j*(72)
+-11 + j*(50)
+28 + j*(6)
+4 + j*(-98)
+-163 + j*(-115)
+-266 + j*(84)
+-107 + j*(284)
+148 + j*(235)
+229 + j*(-1)
+65 + j*(-182)
+-173 + j*(-113)
+-206 + j*(139)
+15 + j*(269)
+215 + j*(127)
+177 + j*(-83)
+16 + j*(-129)
+-66 + j*(-47)
+-53 + j*(12)
+-54 + j*(39)
+-33 + j*(121)
+116 + j*(142)
+199 + j*(-38)
+25 + j*(-173)
+-127 + j*(-29)
+-23 + j*(112)
+71 + j*(55)
+71 + j*(41)
+174 + j*(1)
+127 + j*(-229)
+-209 + j*(-211)
+-235 + j*(178)
+154 + j*(242)
+226 + j*(-96)
+-25 + j*(-138)
+-1 + j*(19)
+86 + j*(-87)
+-87 + j*(-129)
+-107 + j*(76)
+92 + j*(91)
+117 + j*(-59)
+75 + j*(-100)
+46 + j*(-206)
+-205 + j*(-226)
+-292 + j*(119)
+88 + j*(243)
+202 + j*(-139)
+-165 + j*(-208)
+-170 + j*(136)
+146 + j*(70)
+25 + j*(-223)
+-239 + j*(-89)
+-125 + j*(107)
+-38 + j*(11)
+-151 + j*(28)
+-81 + j*(168)
+54 + j*(91)
+-25 + j*(-14)
+-119 + j*(71)
+-67 + j*(187)
+62 + j*(231)
+211 + j*(141)
+182 + j*(-53)
+4 + j*(-33)
+92 + j*(132)
+301 + j*(-38)
+110 + j*(-316)
+-187 + j*(-183)
+-132 + j*(46)
+-33 + j*(34)
+-54 + j*(67)
+66 + j*(127)
+159 + j*(-26)
+22 + j*(-117)
+-34 + j*(-18)
+18 + j*(-16)
+-23 + j*(-11)
+64 + j*(69)
+196 + j*(-114)
+-57 + j*(-320)
+-330 + j*(-72)
+-152 + j*(192)
+-2 + j*(98)
+-83 + j*(132)
+121 + j*(293)
+404 + j*(18)
+167 + j*(-352)
+-204 + j*(-215)
+-169 + j*(91)
+43 + j*(148)
+187 + j*(39)
+197 + j*(-179)
+-52 + j*(-305)
+-244 + j*(-71)
+-23 + j*(115)
+124 + j*(-132)
+-166 + j*(-276)
+-333 + j*(7)
+-122 + j*(169)
+-35 + j*(35)
+-150 + j*(45)
+-89 + j*(186)
+71 + j*(132)
+36 + j*(-23)
+-124 + j*(-6)
+-153 + j*(177)
+23 + j*(295)
+215 + j*(187)
+194 + j*(6)
+92 + j*(1)
+140 + j*(35)
+164 + j*(-89)
+0 + j*(-136)
+-56 + j*(47)
+154 + j*(107)
+251 + j*(-138)
+10 + j*(-301)
+-205 + j*(-109)
+-66 + j*(111)
+130 + j*(-16)
+-21 + j*(-204)
+-230 + j*(-14)
+-6 + j*(218)
+248 + j*(-33)
+-30 + j*(-313)
+-336 + j*(-28)
+-74 + j*(287)
+214 + j*(66)
+23 + j*(-171)
+-169 + j*(6)
+-18 + j*(186)
+165 + j*(110)
+215 + j*(-51)
+141 + j*(-221)
+-84 + j*(-267)
+-209 + j*(-71)
+-64 + j*(42)
+-12 + j*(-101)
+-207 + j*(-122)
+-271 + j*(94)
+-121 + j*(217)
+-10 + j*(194)
+59 + j*(175)
+134 + j*(99)
+99 + j*(0)
+27 + j*(18)
+67 + j*(83)
+180 + j*(54)
+252 + j*(-110)
+118 + j*(-344)
+-245 + j*(-345)
+-413 + j*(30)
+-139 + j*(291)
+91 + j*(139)
+-4 + j*(32)
+15 + j*(153)
+206 + j*(59)
+92 + j*(-194)
+-200 + j*(-92)
+-145 + j*(218)
+156 + j*(247)
+284 + j*(16)
+176 + j*(-186)
+-37 + j*(-201)
+-136 + j*(-23)
+21 + j*(102)
+150 + j*(-71)
+-67 + j*(-228)
+-292 + j*(19)
+-73 + j*(336)
+310 + j*(216)
+332 + j*(-157)
+56 + j*(-287)
+-94 + j*(-136)
+-10 + j*(-37)
+43 + j*(-132)
+-78 + j*(-206)
+-198 + j*(-115)
+-190 + j*(-6)
+-173 + j*(41)
+-153 + j*(139)
+8 + j*(206)
+163 + j*(44)
+36 + j*(-164)
+-196 + j*(-98)
+-203 + j*(114)
+-78 + j*(181)
+-26 + j*(182)
+62 + j*(232)
+237 + j*(156)
+251 + j*(-74)
+62 + j*(-168)
+-41 + j*(-62)
+3 + j*(-13)
+-21 + j*(-46)
+-76 + j*(36)
+42 + j*(139)
+205 + j*(18)
+135 + j*(-199)
+-91 + j*(-214)
+-186 + j*(-43)
+-100 + j*(76)
+-15 + j*(37)
+-72 + j*(-13)
+-146 + j*(102)
+-11 + j*(252)
+202 + j*(170)
+194 + j*(-18)
+103 + j*(-23)
+181 + j*(-23)
+166 + j*(-228)
+-115 + j*(-272)
+-225 + j*(10)
+1 + j*(140)
+100 + j*(-16)
+-1 + j*(-50)
+47 + j*(25)
+138 + j*(-90)
+16 + j*(-223)
+-127 + j*(-161)
+-138 + j*(-84)
+-164 + j*(-64)
+-204 + j*(10)
+-188 + j*(89)
+-175 + j*(176)
+-53 + j*(317)
+230 + j*(272)
+305 + j*(-43)
+55 + j*(-187)
+-64 + j*(-13)
+90 + j*(30)
+88 + j*(-156)
+-129 + j*(-174)
+-196 + j*(16)
+-98 + j*(94)
+-83 + j*(88)
+-60 + j*(185)
+122 + j*(215)
+223 + j*(18)
+56 + j*(-102)
+-25 + j*(59)
+197 + j*(101)
+256 + j*(-204)
+-93 + j*(-337)
+-296 + j*(-22)
+-63 + j*(194)
+100 + j*(45)
+-1 + j*(-23)
+26 + j*(77)
+159 + j*(-20)
+41 + j*(-190)
+-141 + j*(-94)
+-85 + j*(64)
+17 + j*(31)
+-13 + j*(-13)
+-18 + j*(30)
+35 + j*(13)
+6 + j*(-37)
+-47 + j*(8)
+11 + j*(77)
+110 + j*(32)
+112 + j*(-88)
+20 + j*(-143)
+-46 + j*(-119)
+-78 + j*(-110)
+-158 + j*(-88)
+-196 + j*(45)
+-78 + j*(132)
+3 + j*(45)
+-91 + j*(6)
+-100 + j*(129)
+20 + j*(136)
+-5 + j*(57)
+-52 + j*(176)
+173 + j*(255)
+332 + j*(-16)
+96 + j*(-234)
+-121 + j*(-66)
+-5 + j*(100)
+100 + j*(18)
+38 + j*(-21)
+70 + j*(42)
+169 + j*(-37)
+86 + j*(-180)
+-71 + j*(-134)
+-54 + j*(-3)
+48 + j*(-19)
+24 + j*(-111)
+-67 + j*(-94)
+-61 + j*(-22)
+-18 + j*(-33)
+-43 + j*(-50)
+-28 + j*(-21)
+10 + j*(-98)
+-150 + j*(-191)
+-346 + j*(9)
+-187 + j*(305)
+134 + j*(229)
+122 + j*(-38)
+-75 + j*(-45)
+-81 + j*(108)
+35 + j*(128)
+87 + j*(60)
+73 + j*(-12)
+-1 + j*(-37)
+-43 + j*(38)
+37 + j*(85)
+69 + j*(6)
+-5 + j*(9)
+47 + j*(98)
+168 + j*(11)
+84 + j*(-131)
+-36 + j*(-69)
+14 + j*(-11)
+0 + j*(-80)
+-106 + j*(-10)
+-7 + j*(136)
+168 + j*(38)
+94 + j*(-140)
+-55 + j*(-88)
+1 + j*(16)
+88 + j*(-73)
+-23 + j*(-194)
+-198 + j*(-105)
+-177 + j*(92)
+-8 + j*(129)
+30 + j*(16)
+-53 + j*(25)
+8 + j*(119)
+132 + j*(45)
+78 + j*(-69)
+28 + j*(-37)
+82 + j*(-84)
+-40 + j*(-209)
+-239 + j*(-71)
+-139 + j*(154)
+50 + j*(103)
+24 + j*(-12)
+-9 + j*(5)
+-3 + j*(-36)
+-116 + j*(-28)
+-100 + j*(141)
+89 + j*(119)
+43 + j*(-52)
+-103 + j*(43)
+37 + j*(163)
+112 + j*(13)
+-36 + j*(25)
+91 + j*(203)
+330 + j*(-5)
+105 + j*(-291)
+-171 + j*(-92)
+3 + j*(132)
+169 + j*(-21)
+66 + j*(-124)
+59 + j*(-92)
+61 + j*(-216)
+-166 + j*(-260)
+-288 + j*(-28)
+-144 + j*(124)
+-42 + j*(82)
+-34 + j*(65)
+1 + j*(53)
+-16 + j*(18)
+-38 + j*(60)
+28 + j*(83)
+56 + j*(20)
+27 + j*(11)
+66 + j*(15)
+75 + j*(-78)
+-39 + j*(-118)
+-107 + j*(-30)
+-64 + j*(39)
+-19 + j*(25)
+-37 + j*(-17)
+-118 + j*(4)
+-134 + j*(147)
+31 + j*(228)
+143 + j*(97)
+49 + j*(32)
+76 + j*(151)
+277 + j*(72)
+225 + j*(-197)
+-33 + j*(-203)
+-60 + j*(-19)
+44 + j*(-20)
+-1 + j*(-74)
+-28 + j*(-5)
+49 + j*(11)
+67 + j*(-62)
+25 + j*(-95)
+-18 + j*(-107)
+-86 + j*(-66)
+-52 + j*(37)
+77 + j*(2)
+51 + j*(-151)
+-102 + j*(-160)
+-155 + j*(-52)
+-123 + j*(10)
+-77 + j*(35)
+-37 + j*(-19)
+-151 + j*(-78)
+-279 + j*(107)
+-80 + j*(320)
+166 + j*(162)
+40 + j*(-37)
+-87 + j*(115)
+116 + j*(214)
+234 + j*(-7)
+59 + j*(-147)
+-79 + j*(-52)
+-74 + j*(62)
+0 + j*(154)
+177 + j*(139)
+238 + j*(-76)
+45 + j*(-194)
+-65 + j*(-65)
+10 + j*(-18)
+-23 + j*(-69)
+-79 + j*(30)
+66 + j*(104)
+166 + j*(-57)
+38 + j*(-192)
+-109 + j*(-149)
+-170 + j*(-40)
+-140 + j*(96)
+20 + j*(132)
+81 + j*(-31)
+-105 + j*(-83)
+-165 + j*(148)
+92 + j*(245)
+236 + j*(13)
+61 + j*(-146)
+-80 + j*(-19)
+27 + j*(107)
+159 + j*(11)
+81 + j*(-136)
+-73 + j*(-70)
+13 + j*(98)
+228 + j*(-10)
+141 + j*(-288)
+-147 + j*(-269)
+-175 + j*(-65)
+-96 + j*(-78)
+-225 + j*(-78)
+-224 + j*(160)
+59 + j*(181)
+83 + j*(-113)
+-226 + j*(-141)
+-305 + j*(163)
+-93 + j*(317)
+67 + j*(287)
+216 + j*(245)
+365 + j*(32)
+216 + j*(-264)
+-116 + j*(-228)
+-151 + j*(48)
+54 + j*(88)
+63 + j*(-82)
+-107 + j*(-66)
+-95 + j*(116)
+88 + j*(127)
+116 + j*(-40)
+-36 + j*(-79)
+-89 + j*(66)
+40 + j*(155)
+170 + j*(84)
+196 + j*(-43)
+141 + j*(-147)
+37 + j*(-197)
+-66 + j*(-172)
+-134 + j*(-96)
+-136 + j*(9)
+-40 + j*(70)
+35 + j*(-16)
+-76 + j*(-89)
+-170 + j*(64)
+11 + j*(190)
+152 + j*(13)
+-12 + j*(-109)
+-90 + j*(52)
+77 + j*(80)
+54 + j*(-91)
+-123 + j*(-16)
+-5 + j*(180)
+223 + j*(46)
+123 + j*(-204)
+-119 + j*(-177)
+-174 + j*(16)
+-52 + j*(139)
+118 + j*(87)
+125 + j*(-110)
+-74 + j*(-159)
+-132 + j*(8)
+-10 + j*(21)
+-101 + j*(-79)
+-238 + j*(122)
+15 + j*(330)
+260 + j*(115)
+121 + j*(-69)
+85 + j*(38)
+250 + j*(-74)
+77 + j*(-341)
+-238 + j*(-199)
+-146 + j*(61)
+8 + j*(-41)
+-161 + j*(-130)
+-271 + j*(75)
+-132 + j*(226)
+-8 + j*(225)
+101 + j*(228)
+247 + j*(119)
+230 + j*(-91)
+74 + j*(-165)
+-19 + j*(-128)
+-75 + j*(-95)
+-127 + j*(-25)
+-117 + j*(65)
+-79 + j*(142)
+49 + j*(235)
+298 + j*(139)
+308 + j*(-222)
+-73 + j*(-368)
+-323 + j*(-56)
+-135 + j*(231)
+115 + j*(166)
+129 + j*(3)
+47 + j*(-31)
+39 + j*(25)
+129 + j*(23)
+165 + j*(-124)
+3 + j*(-222)
+-131 + j*(-92)
+-35 + j*(14)
+15 + j*(-88)
+-119 + j*(-105)
+-146 + j*(41)
+-48 + j*(86)
+-21 + j*(86)
+78 + j*(122)
+211 + j*(-35)
+49 + j*(-244)
+-173 + j*(-111)
+-52 + j*(62)
+48 + j*(-91)
+-158 + j*(-151)
+-210 + j*(82)
+1 + j*(119)
+-11 + j*(-60)
+-188 + j*(6)
+-103 + j*(201)
+93 + j*(146)
+90 + j*(-23)
+-31 + j*(-64)
+-115 + j*(-6)
+-129 + j*(91)
+-73 + j*(156)
+-34 + j*(175)
+8 + j*(250)
+199 + j*(287)
+373 + j*(81)
+259 + j*(-160)
+71 + j*(-150)
+55 + j*(-83)
+28 + j*(-115)
+-59 + j*(-50)
+13 + j*(64)
+136 + j*(-8)
+74 + j*(-134)
+-45 + j*(-95)
+-34 + j*(8)
+62 + j*(33)
+138 + j*(-57)
+73 + j*(-204)
+-126 + j*(-192)
+-165 + j*(19)
+34 + j*(80)
+88 + j*(-112)
+-105 + j*(-161)
+-154 + j*(27)
+13 + j*(75)
+53 + j*(-72)
+-76 + j*(-108)
+-110 + j*(0)
+-18 + j*(25)
+4 + j*(-70)
+-103 + j*(-115)
+-195 + j*(-31)
+-182 + j*(82)
+-122 + j*(148)
+-19 + j*(197)
+145 + j*(121)
+130 + j*(-141)
+-204 + j*(-209)
+-380 + j*(159)
+-49 + j*(431)
+254 + j*(199)
+109 + j*(-46)
+-40 + j*(69)
+76 + j*(146)
+103 + j*(42)
+23 + j*(88)
+150 + j*(185)
+306 + j*(30)
+202 + j*(-156)
+64 + j*(-117)
+97 + j*(-59)
+127 + j*(-127)
+59 + j*(-185)
+-7 + j*(-177)
+-52 + j*(-165)
+-100 + j*(-148)
+-152 + j*(-111)
+-204 + j*(-42)
+-206 + j*(82)
+-100 + j*(183)
+35 + j*(167)
+95 + j*(85)
+105 + j*(21)
+103 + j*(-40)
+58 + j*(-119)
+-71 + j*(-144)
+-182 + j*(-22)
+-114 + j*(151)
+64 + j*(158)
+118 + j*(35)
+75 + j*(-1)
+117 + j*(-11)
+117 + j*(-136)
+-44 + j*(-187)
+-122 + j*(-53)
+-40 + j*(-3)
+-56 + j*(-62)
+-124 + j*(5)
+-46 + j*(85)
+11 + j*(18)
+-49 + j*(7)
+-18 + j*(71)
+37 + j*(21)
+-21 + j*(4)
+23 + j*(83)
+139 + j*(-21)
+6 + j*(-177)
+-162 + j*(-49)
+-58 + j*(91)
+13 + j*(4)
+-66 + j*(15)
+26 + j*(85)
+84 + j*(-81)
+-144 + j*(-136)
+-197 + j*(111)
+9 + j*(126)
+-88 + j*(-19)
+-234 + j*(235)
+132 + j*(465)
+454 + j*(116)
+223 + j*(-209)
+18 + j*(-98)
+71 + j*(-66)
+-54 + j*(-120)
+-129 + j*(120)
+187 + j*(238)
+367 + j*(-93)
+122 + j*(-313)
+-61 + j*(-222)
+-101 + j*(-175)
+-223 + j*(-97)
+-185 + j*(135)
+59 + j*(154)
+94 + j*(-38)
+-36 + j*(-45)
+-3 + j*(41)
+57 + j*(-8)
+19 + j*(-36)
+42 + j*(-23)
+47 + j*(-97)
+-47 + j*(-107)
+-39 + j*(-42)
+-11 + j*(-113)
+-172 + j*(-134)
+-220 + j*(83)
+5 + j*(147)
+57 + j*(-65)
+-144 + j*(-103)
+-192 + j*(58)
+-134 + j*(111)
+-146 + j*(188)
+15 + j*(324)
+254 + j*(173)
+148 + j*(-80)
+-52 + j*(23)
+94 + j*(183)
+257 + j*(17)
+134 + j*(-141)
+34 + j*(-82)
+66 + j*(-64)
+51 + j*(-109)
+25 + j*(-139)
+-74 + j*(-213)
+-311 + j*(-86)
+-231 + j*(309)
+259 + j*(319)
+364 + j*(-181)
+-62 + j*(-348)
+-226 + j*(-56)
+-77 + j*(29)
+-122 + j*(-21)
+-134 + j*(138)
+69 + j*(139)
+33 + j*(-44)
+-113 + j*(81)
+110 + j*(214)
+250 + j*(-69)
+-32 + j*(-199)
+-103 + j*(50)
+117 + j*(23)
+-11 + j*(-203)
+-255 + j*(-18)
+-77 + j*(229)
+121 + j*(95)
+27 + j*(-4)
+33 + j*(86)
+142 + j*(11)
+57 + j*(-103)
+-25 + j*(-51)
+-18 + j*(-39)
+-105 + j*(-1)
+-42 + j*(191)
+243 + j*(138)
+227 + j*(-188)
+-71 + j*(-205)
+-73 + j*(17)
+75 + j*(-42)
+-54 + j*(-156)
+-165 + j*(5)
+-11 + j*(103)
+47 + j*(-25)
+-75 + j*(-35)
+-68 + j*(111)
+99 + j*(136)
+199 + j*(-17)
+103 + j*(-174)
+-64 + j*(-142)
+-41 + j*(-4)
+87 + j*(-76)
+-41 + j*(-238)
+-248 + j*(-98)
+-129 + j*(101)
+1 + j*(-13)
+-146 + j*(-62)
+-127 + j*(126)
+78 + j*(33)
+-100 + j*(-194)
+-372 + j*(47)
+-139 + j*(343)
+95 + j*(155)
+-95 + j*(54)
+-81 + j*(323)
+264 + j*(278)
+234 + j*(-66)
+-50 + j*(-19)
+48 + j*(223)
+284 + j*(112)
+224 + j*(-91)
+134 + j*(-91)
+138 + j*(-142)
+-8 + j*(-211)
+-136 + j*(-45)
+19 + j*(98)
+153 + j*(-49)
+11 + j*(-176)
+-105 + j*(-61)
+-22 + j*(21)
+2 + j*(-51)
+-99 + j*(-24)
+-56 + j*(127)
+128 + j*(113)
+160 + j*(-46)
+81 + j*(-84)
+115 + j*(-97)
+65 + j*(-268)
+-238 + j*(-262)
+-328 + j*(115)
+54 + j*(303)
+318 + j*(-23)
+104 + j*(-321)
+-145 + j*(-260)
+-211 + j*(-163)
+-313 + j*(-78)
+-312 + j*(160)
+-65 + j*(249)
+25 + j*(66)
+-114 + j*(55)
+-45 + j*(205)
+119 + j*(95)
+-11 + j*(-44)
+-98 + j*(122)
+107 + j*(158)
+88 + j*(-76)
+-170 + j*(13)
+-18 + j*(310)
+313 + j*(129)
+136 + j*(-189)
+-126 + j*(-7)
+83 + j*(190)
+230 + j*(-31)
+31 + j*(-122)
+38 + j*(31)
+165 + j*(-95)
+-62 + j*(-211)
+-161 + j*(81)
+185 + j*(142)
+208 + j*(-250)
+-206 + j*(-253)
+-192 + j*(141)
+153 + j*(92)
+63 + j*(-202)
+-186 + j*(-95)
+-95 + j*(91)
+0 + j*(26)
+-43 + j*(40)
+65 + j*(83)
+115 + j*(-91)
+-76 + j*(-152)
+-131 + j*(6)
+-35 + j*(12)
+-111 + j*(-40)
+-175 + j*(98)
+-62 + j*(197)
+20 + j*(194)
+148 + j*(226)
+348 + j*(36)
+168 + j*(-298)
+-222 + j*(-152)
+-85 + j*(243)
+297 + j*(108)
+188 + j*(-240)
+-70 + j*(-167)
+7 + j*(-41)
+28 + j*(-183)
+-185 + j*(-180)
+-223 + j*(41)
+-71 + j*(119)
+10 + j*(57)
+11 + j*(-16)
+-75 + j*(-59)
+-168 + j*(67)
+-23 + j*(224)
+180 + j*(88)
+67 + j*(-110)
+-99 + j*(-6)
+11 + j*(132)
+138 + j*(37)
+91 + j*(-74)
+19 + j*(-91)
+-42 + j*(-75)
+-66 + j*(5)
+25 + j*(30)
+19 + j*(-80)
+-114 + j*(-31)
+-13 + j*(120)
+162 + j*(-45)
+-66 + j*(-266)
+-356 + j*(-14)
+-152 + j*(330)
+183 + j*(220)
+167 + j*(-35)
+26 + j*(-68)
+-13 + j*(-28)
+-38 + j*(4)
+-9 + j*(59)
+47 + j*(23)
+-9 + j*(-20)
+-32 + j*(76)
+98 + j*(88)
+107 + j*(-59)
+-37 + j*(-49)
+12 + j*(94)
+174 + j*(8)
+88 + j*(-179)
+-100 + j*(-131)
+-91 + j*(10)
+-30 + j*(9)
+-70 + j*(28)
+-10 + j*(131)
+158 + j*(77)
+141 + j*(-124)
+-57 + j*(-151)
+-112 + j*(18)
+19 + j*(88)
+95 + j*(-1)
+59 + j*(-68)
+23 + j*(-81)
+-15 + j*(-88)
+-47 + j*(-52)
+-13 + j*(-25)
+2 + j*(-80)
+-78 + j*(-100)
+-107 + j*(-23)
+-51 + j*(-14)
+-87 + j*(-75)
+-187 + j*(-18)
+-170 + j*(98)
+-112 + j*(129)
+-97 + j*(177)
+15 + j*(250)
+170 + j*(165)
+148 + j*(12)
+64 + j*(20)
+124 + j*(47)
+161 + j*(-74)
+35 + j*(-153)
+-64 + j*(-81)
+-49 + j*(-13)
+-33 + j*(-3)
+-28 + j*(11)
+-21 + j*(12)
+-44 + j*(30)
+-15 + j*(107)
+117 + j*(91)
+134 + j*(-70)
+-36 + j*(-107)
+-75 + j*(66)
+117 + j*(116)
+204 + j*(-89)
+24 + j*(-230)
+-148 + j*(-127)
+-139 + j*(30)
+-41 + j*(98)
+69 + j*(69)
+103 + j*(-61)
+-25 + j*(-137)
+-119 + j*(-23)
+-18 + j*(52)
+8 + j*(-64)
+-153 + j*(-33)
+-83 + j*(189)
+197 + j*(93)
+86 + j*(-235)
+-293 + j*(-129)
+-226 + j*(281)
+158 + j*(278)
+195 + j*(-12)
+13 + j*(-35)
+42 + j*(86)
+158 + j*(42)
+163 + j*(-66)
+129 + j*(-132)
+66 + j*(-199)
+-32 + j*(-218)
+-116 + j*(-207)
+-245 + j*(-177)
+-373 + j*(11)
+-266 + j*(280)
+18 + j*(331)
+182 + j*(159)
+158 + j*(-23)
+15 + j*(-107)
+-128 + j*(-4)
+-47 + j*(170)
+136 + j*(105)
+69 + j*(-54)
+-55 + j*(49)
+98 + j*(155)
+208 + j*(-11)
+83 + j*(-102)
+73 + j*(-41)
+92 + j*(-145)
+-116 + j*(-157)
+-128 + j*(124)
+205 + j*(135)
+236 + j*(-214)
+-62 + j*(-278)
+-117 + j*(-98)
+-63 + j*(-123)
+-197 + j*(-114)
+-185 + j*(81)
+-5 + j*(66)
+-50 + j*(-69)
+-143 + j*(8)
+-59 + j*(42)
+-122 + j*(-60)
+-296 + j*(93)
+-145 + j*(368)
+175 + j*(320)
+255 + j*(62)
+122 + j*(-95)
+-64 + j*(-74)
+-113 + j*(142)
+149 + j*(253)
+330 + j*(-47)
+31 + j*(-283)
+-222 + j*(-14)
+6 + j*(216)
+192 + j*(39)
+72 + j*(-78)
+43 + j*(-16)
+64 + j*(-79)
+-71 + j*(-67)
+-28 + j*(125)
+212 + j*(54)
+131 + j*(-217)
+-133 + j*(-146)
+-68 + j*(70)
+76 + j*(-16)
+-59 + j*(-91)
+-95 + j*(104)
+144 + j*(139)
+205 + j*(-93)
+36 + j*(-150)
+50 + j*(-59)
+124 + j*(-183)
+-73 + j*(-305)
+-228 + j*(-122)
+-81 + j*(-23)
+-100 + j*(-214)
+-424 + j*(-128)
+-380 + j*(317)
+73 + j*(366)
+153 + j*(8)
+-98 + j*(-6)
+-1 + j*(191)
+185 + j*(2)
+-50 + j*(-177)
+-202 + j*(67)
+40 + j*(162)
+50 + j*(-89)
+-235 + j*(-28)
+-160 + j*(301)
+161 + j*(273)
+180 + j*(40)
+69 + j*(28)
+107 + j*(59)
+119 + j*(-6)
+87 + j*(-18)
+110 + j*(-49)
+35 + j*(-127)
+-82 + j*(-34)
+22 + j*(100)
+173 + j*(-21)
+50 + j*(-208)
+-171 + j*(-125)
+-165 + j*(105)
+37 + j*(181)
+170 + j*(35)
+77 + j*(-113)
+-60 + j*(-45)
+16 + j*(80)
+151 + j*(-3)
+94 + j*(-148)
+-14 + j*(-153)
+-68 + j*(-142)
+-179 + j*(-107)
+-211 + j*(71)
+-58 + j*(149)
+-26 + j*(57)
+-117 + j*(155)
+84 + j*(344)
+407 + j*(170)
+378 + j*(-184)
+158 + j*(-296)
+35 + j*(-284)
+-87 + j*(-274)
+-168 + j*(-157)
+-114 + j*(-103)
+-168 + j*(-168)
+-328 + j*(-48)
+-250 + j*(185)
+-42 + j*(190)
+-8 + j*(85)
+-21 + j*(76)
+-8 + j*(45)
+-76 + j*(54)
+-27 + j*(190)
+190 + j*(132)
+170 + j*(-142)
+-105 + j*(-183)
+-204 + j*(33)
+-92 + j*(165)
+28 + j*(173)
+127 + j*(103)
+102 + j*(-33)
+-23 + j*(-9)
+51 + j*(109)
+190 + j*(-38)
+-11 + j*(-218)
+-225 + j*(-1)
+-25 + j*(212)
+148 + j*(43)
+-7 + j*(-45)
+1 + j*(132)
+233 + j*(62)
+165 + j*(-228)
+-132 + j*(-211)
+-180 + j*(21)
+-56 + j*(96)
+-8 + j*(82)
+44 + j*(94)
+104 + j*(25)
+35 + j*(-51)
+-43 + j*(27)
+45 + j*(134)
+209 + j*(76)
+254 + j*(-117)
+107 + j*(-292)
+-150 + j*(-268)
+-263 + j*(-11)
+-60 + j*(197)
+191 + j*(55)
+93 + j*(-218)
+-197 + j*(-148)
+-148 + j*(162)
+184 + j*(128)
+178 + j*(-226)
+-180 + j*(-267)
+-271 + j*(51)
+-34 + j*(158)
+41 + j*(13)
+-38 + j*(0)
+1 + j*(40)
+6 + j*(-18)
+-59 + j*(40)
+88 + j*(136)
+261 + j*(-80)
+59 + j*(-350)
+-248 + j*(-250)
+-266 + j*(-21)
+-182 + j*(36)
+-177 + j*(53)
+-161 + j*(85)
+-193 + j*(107)
+-207 + j*(268)
+27 + j*(402)
+247 + j*(209)
+129 + j*(17)
+56 + j*(136)
+258 + j*(120)
+229 + j*(-168)
+-78 + j*(-160)
+-64 + j*(113)
+170 + j*(59)
+77 + j*(-148)
+-108 + j*(-31)
+15 + j*(130)
+151 + j*(8)
+51 + j*(-105)
+-40 + j*(-45)
+-42 + j*(8)
+-46 + j*(79)
+69 + j*(174)
+252 + j*(73)
+219 + j*(-144)
+48 + j*(-170)
+27 + j*(-79)
+76 + j*(-110)
+14 + j*(-173)
+-57 + j*(-125)
+-37 + j*(-83)
+-28 + j*(-112)
+-76 + j*(-127)
+-127 + j*(-107)
+-182 + j*(-55)
+-190 + j*(67)
+-52 + j*(153)
+88 + j*(37)
+-12 + j*(-134)
+-209 + j*(-48)
+-156 + j*(166)
+36 + j*(158)
+42 + j*(40)
+16 + j*(83)
+163 + j*(47)
+121 + j*(-222)
+-246 + j*(-230)
+-334 + j*(179)
+50 + j*(338)
+243 + j*(25)
+16 + j*(-159)
+-142 + j*(-8)
+-72 + j*(122)
+25 + j*(144)
+138 + j*(94)
+143 + j*(-86)
+-79 + j*(-124)
+-121 + j*(132)
+185 + j*(173)
+239 + j*(-182)
+-132 + j*(-284)
+-294 + j*(43)
+-78 + j*(240)
+91 + j*(185)
+195 + j*(122)
+308 + j*(-75)
+124 + j*(-369)
+-279 + j*(-296)
+-353 + j*(95)
+-79 + j*(262)
+76 + j*(132)
+30 + j*(67)
+55 + j*(129)
+194 + j*(81)
+192 + j*(-132)
+-52 + j*(-206)
+-191 + j*(40)
+42 + j*(218)
+232 + j*(6)
+36 + j*(-152)
+-55 + j*(59)
+214 + j*(88)
+226 + j*(-250)
+-139 + j*(-286)
+-190 + j*(41)
+70 + j*(71)
+55 + j*(-124)
+-89 + j*(-54)
+37 + j*(49)
+132 + j*(-125)
+-43 + j*(-244)
+-177 + j*(-129)
+-149 + j*(-38)
+-137 + j*(-24)
+-142 + j*(4)
+-150 + j*(25)
+-171 + j*(105)
+-52 + j*(214)
+131 + j*(100)
+37 + j*(-120)
+-204 + j*(-43)
+-158 + j*(200)
+51 + j*(194)
+59 + j*(61)
+1 + j*(87)
+82 + j*(112)
+108 + j*(1)
+-3 + j*(-28)
+-23 + j*(77)
+76 + j*(83)
+66 + j*(-2)
+-14 + j*(46)
+72 + j*(158)
+244 + j*(79)
+236 + j*(-113)
+114 + j*(-178)
+60 + j*(-178)
+-21 + j*(-221)
+-165 + j*(-146)
+-140 + j*(19)
+-21 + j*(2)
+-102 + j*(-72)
+-185 + j*(98)
+42 + j*(233)
+225 + j*(3)
+28 + j*(-192)
+-140 + j*(-33)
+-7 + j*(78)
+38 + j*(-54)
+-113 + j*(-42)
+-71 + j*(146)
+151 + j*(107)
+143 + j*(-125)
+-66 + j*(-162)
+-119 + j*(-9)
+-29 + j*(5)
+-102 + j*(-79)
+-268 + j*(76)
+-108 + j*(378)
+293 + j*(308)
+334 + j*(-91)
+11 + j*(-167)
+0 + j*(102)
+304 + j*(29)
+221 + j*(-356)
+-197 + j*(-358)
+-294 + j*(-16)
+-108 + j*(108)
+-43 + j*(82)
+37 + j*(127)
+197 + j*(-4)
+68 + j*(-255)
+-235 + j*(-165)
+-197 + j*(137)
+63 + j*(132)
+61 + j*(-66)
+-91 + j*(-42)
+-37 + j*(91)
+100 + j*(26)
+60 + j*(-134)
+-96 + j*(-156)
+-182 + j*(-64)
+-192 + j*(13)
+-215 + j*(84)
+-202 + j*(231)
+-19 + j*(366)
+247 + j*(267)
+278 + j*(-31)
+21 + j*(-142)
+-112 + j*(76)
+100 + j*(225)
+283 + j*(19)
+115 + j*(-186)
+-77 + j*(-58)
+45 + j*(105)
+199 + j*(-28)
+84 + j*(-192)
+-70 + j*(-128)
+-62 + j*(-35)
+-59 + j*(-8)
+-18 + j*(86)
+176 + j*(46)
+160 + j*(-254)
+-221 + j*(-291)
+-323 + j*(122)
+72 + j*(262)
+206 + j*(-103)
+-147 + j*(-211)
+-238 + j*(141)
+100 + j*(235)
+200 + j*(-59)
+-37 + j*(-152)
+-114 + j*(34)
+33 + j*(107)
+126 + j*(5)
+100 + j*(-115)
+-15 + j*(-191)
+-179 + j*(-140)
+-224 + j*(51)
+-86 + j*(173)
+54 + j*(123)
+80 + j*(24)
+42 + j*(-43)
+-30 + j*(-70)
+-118 + j*(-21)
+-136 + j*(110)
+-18 + j*(228)
+181 + j*(202)
+283 + j*(4)
+170 + j*(-181)
+2 + j*(-163)
+-1 + j*(-71)
+43 + j*(-122)
+-56 + j*(-192)
+-161 + j*(-115)
+-156 + j*(-45)
+-197 + j*(-29)
+-255 + j*(115)
+-100 + j*(283)
+112 + j*(202)
+103 + j*(40)
+40 + j*(46)
+104 + j*(28)
+45 + j*(-110)
+-158 + j*(-43)
+-114 + j*(212)
+162 + j*(218)
+224 + j*(-30)
+39 + j*(-115)
+-30 + j*(13)
+65 + j*(57)
+101 + j*(-19)
+54 + j*(-53)
+42 + j*(-27)
+81 + j*(-44)
+65 + j*(-117)
+-36 + j*(-137)
+-88 + j*(-47)
+-27 + j*(-2)
+-19 + j*(-59)
+-105 + j*(-21)
+-44 + j*(110)
+124 + j*(50)
+86 + j*(-128)
+-64 + j*(-110)
+-41 + j*(-31)
+-33 + j*(-107)
+-197 + j*(-87)
+-207 + j*(129)
+-13 + j*(190)
+45 + j*(83)
+28 + j*(101)
+155 + j*(90)
+182 + j*(-108)
+-11 + j*(-187)
+-96 + j*(-67)
+-54 + j*(-40)
+-118 + j*(-52)
+-151 + j*(76)
+-30 + j*(140)
+28 + j*(68)
+-1 + j*(66)
+59 + j*(91)
+106 + j*(13)
+63 + j*(-46)
+30 + j*(-65)
+-52 + j*(-95)
+-160 + j*(30)
+-26 + j*(209)
+195 + j*(98)
+116 + j*(-109)
+-30 + j*(-35)
+85 + j*(37)
+122 + j*(-138)
+-80 + j*(-183)
+-139 + j*(-16)
+-52 + j*(21)
+-83 + j*(8)
+-54 + j*(124)
+121 + j*(78)
+69 + j*(-126)
+-141 + j*(-68)
+-84 + j*(131)
+74 + j*(79)
+15 + j*(-7)
+12 + j*(95)
+184 + j*(45)
+122 + j*(-194)
+-146 + j*(-146)
+-102 + j*(121)
+168 + j*(62)
+98 + j*(-232)
+-227 + j*(-185)
+-233 + j*(142)
+51 + j*(192)
+104 + j*(-26)
+-62 + j*(-37)
+-11 + j*(115)
+159 + j*(13)
+35 + j*(-194)
+-204 + j*(-81)
+-124 + j*(170)
+105 + j*(130)
+91 + j*(-57)
+-46 + j*(-47)
+-34 + j*(46)
+18 + j*(25)
+-19 + j*(13)
+-1 + j*(90)
+125 + j*(73)
+142 + j*(-82)
+-7 + j*(-134)
+-57 + j*(-12)
+56 + j*(1)
+25 + j*(-146)
+-174 + j*(-100)
+-139 + j*(134)
+93 + j*(115)
+64 + j*(-90)
+-108 + j*(-28)
+-1 + j*(120)
+132 + j*(-34)
+-59 + j*(-165)
+-207 + j*(35)
+-47 + j*(202)
+100 + j*(136)
+141 + j*(77)
+220 + j*(-18)
+155 + j*(-210)
+-57 + j*(-214)
+-86 + j*(-76)
+-43 + j*(-117)
+-204 + j*(-126)
+-249 + j*(128)
+28 + j*(229)
+165 + j*(-16)
+-25 + j*(-170)
+-192 + j*(-66)
+-209 + j*(88)
+-129 + j*(233)
+81 + j*(271)
+209 + j*(80)
+72 + j*(-46)
+18 + j*(77)
+187 + j*(63)
+157 + j*(-168)
+-95 + j*(-155)
+-91 + j*(73)
+98 + j*(53)
+54 + j*(-110)
+-90 + j*(-47)
+-23 + j*(76)
+80 + j*(1)
+1 + j*(-93)
+-100 + j*(-33)
+-98 + j*(78)
+-21 + j*(166)
+151 + j*(190)
+321 + j*(1)
+203 + j*(-288)
+-123 + j*(-281)
+-194 + j*(-1)
+13 + j*(88)
+78 + j*(-65)
+-23 + j*(-102)
+-22 + j*(-69)
+-57 + j*(-141)
+-228 + j*(-72)
+-181 + j*(177)
+86 + j*(182)
+119 + j*(-33)
+4 + j*(-56)
+50 + j*(-43)
+-4 + j*(-202)
+-270 + j*(-153)
+-286 + j*(146)
+-64 + j*(211)
+-37 + j*(127)
+-25 + j*(225)
+196 + j*(214)
+241 + j*(-38)
+58 + j*(-103)
+51 + j*(-18)
+80 + j*(-117)
+-96 + j*(-141)
+-125 + j*(45)
+23 + j*(34)
+-79 + j*(-83)
+-216 + j*(120)
+38 + j*(322)
+293 + j*(91)
+132 + j*(-173)
+-103 + j*(-79)
+-69 + j*(127)
+124 + j*(176)
+286 + j*(19)
+222 + j*(-245)
+-86 + j*(-308)
+-252 + j*(-31)
+-45 + j*(192)
+200 + j*(66)
+170 + j*(-175)
+-29 + j*(-252)
+-189 + j*(-151)
+-204 + j*(22)
+-84 + j*(115)
+18 + j*(67)
+18 + j*(1)
+-2 + j*(-13)
+-11 + j*(-31)
+-57 + j*(-40)
+-103 + j*(17)
+-69 + j*(106)
+46 + j*(123)
+122 + j*(16)
+49 + j*(-89)
+-46 + j*(-57)
+-28 + j*(-10)
+-50 + j*(-45)
+-136 + j*(37)
+-18 + j*(188)
+182 + j*(63)
+70 + j*(-157)
+-140 + j*(-64)
+-78 + j*(111)
+35 + j*(95)
+66 + j*(81)
+185 + j*(32)
+162 + j*(-202)
+-117 + j*(-233)
+-161 + j*(8)
+6 + j*(-26)
+-165 + j*(-170)
+-362 + j*(101)
+-98 + j*(355)
+115 + j*(180)
+-6 + j*(114)
+75 + j*(283)
+329 + j*(164)
+286 + j*(-95)
+141 + j*(-126)
+104 + j*(-136)
+-6 + j*(-132)
+7 + j*(22)
+205 + j*(-46)
+93 + j*(-307)
+-196 + j*(-183)
+-59 + j*(74)
+151 + j*(-113)
+-83 + j*(-315)
+-296 + j*(-106)
+-171 + j*(77)
+-71 + j*(35)
+-72 + j*(4)
+-87 + j*(-40)
+-209 + j*(-25)
+-231 + j*(175)
+-37 + j*(239)
+-9 + j*(131)
+-40 + j*(248)
+265 + j*(286)
+378 + j*(-141)
+-78 + j*(-327)
+-289 + j*(93)
+57 + j*(281)
+181 + j*(31)
+14 + j*(23)
+139 + j*(173)
+344 + j*(-11)
+225 + j*(-270)
+10 + j*(-289)
+-103 + j*(-218)
+-167 + j*(-113)
+-125 + j*(-10)
+-69 + j*(-30)
+-124 + j*(-33)
+-103 + j*(62)
+4 + j*(15)
+-92 + j*(-112)
+-288 + j*(6)
+-251 + j*(276)
+4 + j*(411)
+286 + j*(305)
+386 + j*(-4)
+161 + j*(-228)
+-64 + j*(-95)
+54 + j*(63)
+171 + j*(-109)
+-41 + j*(-246)
+-227 + j*(-56)
+-119 + j*(155)
+76 + j*(156)
+170 + j*(5)
+58 + j*(-159)
+-158 + j*(-61)
+-49 + j*(208)
+276 + j*(100)
+196 + j*(-252)
+-112 + j*(-204)
+-63 + j*(-6)
+14 + j*(-114)
+-177 + j*(-100)
+-102 + j*(158)
+188 + j*(33)
+34 + j*(-267)
+-239 + j*(-119)
+-108 + j*(65)
+-68 + j*(-85)
+-296 + j*(1)
+-157 + j*(327)
+224 + j*(201)
+135 + j*(-182)
+-231 + j*(-141)
+-275 + j*(192)
+-20 + j*(354)
+240 + j*(245)
+291 + j*(-37)
+54 + j*(-195)
+-135 + j*(-11)
+25 + j*(170)
+205 + j*(23)
+100 + j*(-162)
+-71 + j*(-133)
+-131 + j*(-20)
+-115 + j*(113)
+40 + j*(216)
+250 + j*(104)
+235 + j*(-154)
+15 + j*(-248)
+-147 + j*(-132)
+-148 + j*(35)
+-17 + j*(121)
+110 + j*(30)
+44 + j*(-112)
+-106 + j*(-56)
+-55 + j*(97)
+101 + j*(49)
+62 + j*(-112)
+-109 + j*(-88)
+-120 + j*(91)
+51 + j*(150)
+152 + j*(11)
+57 + j*(-103)
+-35 + j*(-41)
+23 + j*(16)
+52 + j*(-61)
+-41 + j*(-70)
+-28 + j*(37)
+96 + j*(8)
+76 + j*(-127)
+-33 + j*(-134)
+-47 + j*(-99)
+-90 + j*(-128)
+-177 + j*(-52)
+-112 + j*(59)
+-25 + j*(-8)
+-124 + j*(-69)
+-187 + j*(62)
+-61 + j*(129)
+-21 + j*(21)
+-146 + j*(18)
+-155 + j*(183)
+16 + j*(247)
+124 + j*(129)
+52 + j*(31)
+-17 + j*(124)
+143 + j*(221)
+337 + j*(25)
+185 + j*(-251)
+-93 + j*(-180)
+-52 + j*(13)
+37 + j*(-83)
+-168 + j*(-117)
+-214 + j*(187)
+127 + j*(282)
+261 + j*(-25)
+44 + j*(-146)
+-10 + j*(-31)
+24 + j*(-95)
+-183 + j*(-95)
+-222 + j*(240)
+168 + j*(390)
+433 + j*(71)
+298 + j*(-221)
+113 + j*(-276)
+-38 + j*(-285)
+-211 + j*(-148)
+-129 + j*(102)
+140 + j*(42)
+71 + j*(-243)
+-246 + j*(-169)
+-197 + j*(172)
+141 + j*(163)
+176 + j*(-131)
+-39 + j*(-188)
+-71 + j*(-68)
+-6 + j*(-113)
+-122 + j*(-194)
+-250 + j*(-72)
+-182 + j*(49)
+-130 + j*(2)
+-233 + j*(1)
+-279 + j*(167)
+-152 + j*(306)
+4 + j*(311)
+115 + j*(258)
+196 + j*(161)
+183 + j*(35)
+96 + j*(2)
+91 + j*(52)
+163 + j*(17)
+135 + j*(-98)
+13 + j*(-98)
+6 + j*(10)
+126 + j*(-1)
+124 + j*(-168)
+-72 + j*(-218)
+-180 + j*(-43)
+-50 + j*(76)
+38 + j*(-34)
+-102 + j*(-103)
+-193 + j*(77)
+-8 + j*(222)
+180 + j*(76)
+91 + j*(-114)
+-70 + j*(-62)
+-25 + j*(64)
+83 + j*(8)
+17 + j*(-104)
+-108 + j*(-43)
+-68 + j*(95)
+66 + j*(85)
+87 + j*(-28)
+7 + j*(-65)
+-32 + j*(-13)
+8 + j*(21)
+50 + j*(-14)
+21 + j*(-77)
+-58 + j*(-66)
+-64 + j*(24)
+18 + j*(32)
+10 + j*(-45)
+-84 + j*(0)
+-7 + j*(138)
+182 + j*(66)
+154 + j*(-149)
+-35 + j*(-161)
+-43 + j*(-35)
+289 + j*(-105)
+48 + j*(-267)
+-117 + j*(-80)
+29 + j*(9)
+35 + j*(-146)
+-147 + j*(-115)
+-127 + j*(57)
+-21 + j*(53)
+-33 + j*(38)
+35 + j*(74)
+91 + j*(-54)
+-83 + j*(-115)
+-143 + j*(86)
+59 + j*(139)
+90 + j*(-30)
+-27 + j*(-8)
+72 + j*(67)
+134 + j*(-110)
+-86 + j*(-178)
+-147 + j*(43)
+63 + j*(65)
+36 + j*(-163)
+-241 + j*(-127)
+-261 + j*(175)
+-10 + j*(271)
+105 + j*(127)
+33 + j*(82)
+76 + j*(185)
+282 + j*(139)
+342 + j*(-134)
+117 + j*(-313)
+-91 + j*(-217)
+-93 + j*(-85)
+-62 + j*(-66)
+-66 + j*(-48)
+-45 + j*(-54)
+-103 + j*(-93)
+-198 + j*(10)
+-96 + j*(158)
+62 + j*(83)
+-5 + j*(-36)
+-83 + j*(56)
+40 + j*(118)
+115 + j*(-21)
+-5 + j*(-117)
+-124 + j*(-46)
+-124 + j*(76)
+-24 + j*(152)
+101 + j*(85)
+59 + j*(-54)
+-82 + j*(-16)
+-40 + j*(128)
+96 + j*(98)
+89 + j*(8)
+78 + j*(14)
+117 + j*(-49)
+11 + j*(-134)
+-95 + j*(-16)
+24 + j*(91)
+124 + j*(-26)
+34 + j*(-121)
+-38 + j*(-86)
+-65 + j*(-70)
+-132 + j*(-6)
+-73 + j*(136)
+105 + j*(129)
+165 + j*(-20)
+114 + j*(-127)
+27 + j*(-206)
+-149 + j*(-214)
+-279 + j*(-35)
+-199 + j*(165)
+-30 + j*(222)
+127 + j*(180)
+237 + j*(3)
+117 + j*(-216)
+-130 + j*(-172)
+-134 + j*(24)
+-23 + j*(24)
+-66 + j*(-16)
+-55 + j*(66)
+30 + j*(5)
+-110 + j*(-68)
+-191 + j*(171)
+123 + j*(295)
+298 + j*(-30)
+11 + j*(-223)
+-153 + j*(-2)
+4 + j*(105)
+43 + j*(1)
+-23 + j*(31)
+62 + j*(81)
+114 + j*(-18)
+42 + j*(-70)
+21 + j*(-55)
+-17 + j*(-88)
+-118 + j*(-25)
+-51 + j*(135)
+152 + j*(98)
+173 + j*(-116)
+-1 + j*(-206)
+-134 + j*(-121)
+-135 + j*(-4)
+-72 + j*(30)
+-74 + j*(0)
+-143 + j*(57)
+-77 + j*(211)
+144 + j*(200)
+202 + j*(-10)
+59 + j*(-81)
+58 + j*(10)
+178 + j*(-93)
+22 + j*(-322)
+-337 + j*(-206)
+-330 + j*(221)
+78 + j*(327)
+239 + j*(-14)
+-35 + j*(-155)
+-123 + j*(98)
+151 + j*(136)
+168 + j*(-165)
+-141 + j*(-185)
+-166 + j*(93)
+47 + j*(113)
+43 + j*(-6)
+30 + j*(49)
+165 + j*(-33)
+17 + j*(-255)
+-269 + j*(-81)
+-86 + j*(231)
+225 + j*(40)
+30 + j*(-259)
+-252 + j*(-91)
+-139 + j*(146)
+13 + j*(98)
+14 + j*(58)
+77 + j*(35)
+42 + j*(-102)
+-147 + j*(-42)
+-55 + j*(191)
+230 + j*(76)
+115 + j*(-262)
+-256 + j*(-185)
+-249 + j*(168)
+25 + j*(216)
+93 + j*(48)
+23 + j*(21)
+58 + j*(40)
+56 + j*(-28)
+-37 + j*(-1)
+32 + j*(119)
+198 + j*(11)
+76 + j*(-219)
+-213 + j*(-105)
+-132 + j*(235)
+230 + j*(217)
+286 + j*(-113)
+52 + j*(-210)
+-11 + j*(-78)
+75 + j*(-99)
+-7 + j*(-212)
+-186 + j*(-150)
+-212 + j*(49)
+-55 + j*(184)
+151 + j*(121)
+186 + j*(-97)
+4 + j*(-198)
+-103 + j*(-67)
+1 + j*(5)
+44 + j*(-101)
+-55 + j*(-142)
+-87 + j*(-94)
+-101 + j*(-129)
+-243 + j*(-112)
+-301 + j*(93)
+-132 + j*(234)
+18 + j*(151)
+-12 + j*(62)
+-49 + j*(107)
+35 + j*(147)
+117 + j*(44)
+16 + j*(-88)
+-175 + j*(0)
+-128 + j*(248)
+146 + j*(272)
+226 + j*(30)
+36 + j*(-52)
+-14 + j*(125)
+177 + j*(180)
+288 + j*(15)
+226 + j*(-129)
+146 + j*(-189)
+43 + j*(-238)
+-108 + j*(-192)
+-154 + j*(-26)
+-35 + j*(66)
+40 + j*(-11)
+-47 + j*(-35)
+-35 + j*(124)
+231 + j*(130)
+330 + j*(-210)
+6 + j*(-432)
+-267 + j*(-223)
+-188 + j*(-30)
+-155 + j*(-62)
+-239 + j*(41)
+-90 + j*(183)
+37 + j*(34)
+-144 + j*(-7)
+-110 + j*(267)
+263 + j*(215)
+240 + j*(-197)
+-127 + j*(-203)
+-124 + j*(60)
+16 + j*(-4)
+-152 + j*(-30)
+-110 + j*(262)
+289 + j*(213)
+280 + j*(-238)
+-146 + j*(-282)
+-222 + j*(64)
+23 + j*(141)
+82 + j*(-6)
+25 + j*(-49)
+6 + j*(-81)
+-108 + j*(-105)
+-194 + j*(47)
+-64 + j*(187)
+83 + j*(114)
+59 + j*(8)
+0 + j*(14)
+-1 + j*(57)
+37 + j*(90)
+122 + j*(75)
+168 + j*(-39)
+73 + j*(-146)
+-55 + j*(-95)
+-36 + j*(14)
+54 + j*(-6)
+14 + j*(-96)
+-99 + j*(-51)
+-68 + j*(88)
+85 + j*(91)
+134 + j*(-51)
+41 + j*(-154)
+-95 + j*(-151)
+-206 + j*(-25)
+-144 + j*(183)
+107 + j*(202)
+188 + j*(-37)
+-20 + j*(-119)
+-62 + j*(71)
+147 + j*(68)
+124 + j*(-173)
+-122 + j*(-161)
+-127 + j*(53)
+21 + j*(59)
+6 + j*(-20)
+-13 + j*(25)
+59 + j*(1)
+4 + j*(-86)
+-95 + j*(-6)
+8 + j*(105)
+144 + j*(-4)
+68 + j*(-172)
+-110 + j*(-169)
+-196 + j*(-29)
+-133 + j*(106)
+-3 + j*(113)
+34 + j*(15)
+-41 + j*(-21)
+-91 + j*(33)
+-90 + j*(110)
+-18 + j*(216)
+197 + j*(218)
+314 + j*(-42)
+87 + j*(-242)
+-115 + j*(-71)
+33 + j*(80)
+140 + j*(-82)
+-29 + j*(-170)
+-99 + j*(-30)
+-1 + j*(-6)
+-40 + j*(-76)
+-98 + j*(8)
+1 + j*(52)
+15 + j*(-54)
+-93 + j*(-42)
+-65 + j*(50)
+-20 + j*(-1)
+-129 + j*(8)
+-103 + j*(194)
+134 + j*(193)
+154 + j*(-35)
+-39 + j*(-37)
+11 + j*(146)
+216 + j*(68)
+156 + j*(-149)
+-17 + j*(-116)
+37 + j*(-21)
+90 + j*(-150)
+-112 + j*(-232)
+-263 + j*(-30)
+-138 + j*(153)
+8 + j*(112)
+-6 + j*(47)
+-35 + j*(86)
+14 + j*(156)
+151 + j*(177)
+316 + j*(31)
+255 + j*(-251)
+-49 + j*(-311)
+-167 + j*(-69)
+13 + j*(4)
+6 + j*(-192)
+-267 + j*(-154)
+-273 + j*(182)
+54 + j*(267)
+185 + j*(0)
+-18 + j*(-135)
+-144 + j*(32)
+2 + j*(172)
+166 + j*(59)
+109 + j*(-117)
+-37 + j*(-109)
+-45 + j*(-27)
+-28 + j*(-60)
+-139 + j*(-47)
+-143 + j*(141)
+78 + j*(190)
+168 + j*(-18)
+1 + j*(-113)
+-71 + j*(6)
+6 + j*(42)
+5 + j*(3)
+-3 + j*(49)
+91 + j*(45)
+108 + j*(-82)
+-16 + j*(-148)
+-133 + j*(-73)
+-136 + j*(76)
+23 + j*(173)
+211 + j*(23)
+102 + j*(-249)
+-216 + j*(-225)
+-303 + j*(62)
+-138 + j*(218)
+-2 + j*(214)
+100 + j*(173)
+144 + j*(47)
+25 + j*(-8)
+6 + j*(151)
+246 + j*(177)
+357 + j*(-109)
+131 + j*(-318)
+-112 + j*(-233)
+-158 + j*(-30)
+-19 + j*(103)
+180 + j*(0)
+107 + j*(-271)
+-215 + j*(-262)
+-282 + j*(39)
+-81 + j*(137)
+-29 + j*(65)
+1 + j*(115)
+158 + j*(27)
+47 + j*(-217)
+-241 + j*(-107)
+-150 + j*(170)
+54 + j*(88)
+-59 + j*(-16)
+-83 + j*(154)
+124 + j*(134)
+70 + j*(-66)
+-105 + j*(45)
+65 + j*(219)
+265 + j*(42)
+152 + j*(-168)
+-22 + j*(-149)
+-83 + j*(-40)
+-25 + j*(85)
+170 + j*(56)
+179 + j*(-217)
+-138 + j*(-293)
+-273 + j*(-1)
+-75 + j*(133)
+-13 + j*(32)
+-70 + j*(78)
+46 + j*(151)
+146 + j*(57)
+153 + j*(-16)
+195 + j*(-137)
+28 + j*(-334)
+-276 + j*(-197)
+-188 + j*(105)
+34 + j*(-1)
+-150 + j*(-147)
+-267 + j*(112)
+5 + j*(197)
+16 + j*(-44)
+-216 + j*(57)
+-28 + j*(312)
+238 + j*(98)
+31 + j*(-144)
+-156 + j*(45)
+-7 + j*(180)
+56 + j*(98)
+30 + j*(136)
+173 + j*(168)
+258 + j*(-6)
+145 + j*(-132)
+42 + j*(-111)
+1 + j*(-65)
+16 + j*(-4)
+90 + j*(-25)
+50 + j*(-115)
+-30 + j*(-59)
+59 + j*(-30)
+15 + j*(-192)
+-250 + j*(-86)
+-112 + j*(277)
+327 + j*(137)
+206 + j*(-332)
+-237 + j*(-243)
+-171 + j*(117)
+79 + j*(52)
+-7 + j*(-91)
+-53 + j*(17)
+75 + j*(-9)
+6 + j*(-153)
+-129 + j*(-91)
+-99 + j*(-10)
+-106 + j*(-25)
+-136 + j*(52)
+-40 + j*(88)
+-48 + j*(1)
+-161 + j*(84)
+-45 + j*(264)
+179 + j*(209)
+245 + j*(39)
+233 + j*(-105)
+105 + j*(-275)
+-171 + j*(-233)
+-192 + j*(54)
+74 + j*(65)
+41 + j*(-211)
+-262 + j*(-182)
+-293 + j*(94)
+-141 + j*(161)
+-134 + j*(158)
+-73 + j*(276)
+132 + j*(254)
+175 + j*(54)
+16 + j*(-18)
+-84 + j*(126)
+39 + j*(310)
+330 + j*(296)
+501 + j*(-6)
+334 + j*(-305)
+71 + j*(-325)
+-45 + j*(-229)
+-115 + j*(-142)
+-98 + j*(11)
+86 + j*(33)
+119 + j*(-179)
+-106 + j*(-235)
+-180 + j*(-46)
+-73 + j*(-6)
+-128 + j*(-57)
+-189 + j*(103)
+11 + j*(227)
+194 + j*(70)
+141 + j*(-124)
+-1 + j*(-195)
+-173 + j*(-159)
+-265 + j*(54)
+-91 + j*(255)
+147 + j*(177)
+175 + j*(-4)
+122 + j*(-93)
+39 + j*(-185)
+-155 + j*(-162)
+-191 + j*(64)
+11 + j*(116)
+21 + j*(-49)
+-126 + j*(13)
+-3 + j*(163)
+136 + j*(6)
+-46 + j*(-89)
+-78 + j*(132)
+209 + j*(125)
+206 + j*(-209)
+-115 + j*(-246)
+-169 + j*(-5)
+-25 + j*(13)
+-78 + j*(-70)
+-147 + j*(35)
+-38 + j*(98)
+-1 + j*(-1)
+-103 + j*(-11)
+-120 + j*(90)
+-57 + j*(137)
+-13 + j*(147)
+47 + j*(153)
+107 + j*(101)
+100 + j*(24)
+37 + j*(-1)
+-18 + j*(52)
+26 + j*(156)
+185 + j*(162)
+270 + j*(-8)
+148 + j*(-137)
+51 + j*(-60)
+148 + j*(-20)
+189 + j*(-180)
+4 + j*(-284)
+-164 + j*(-153)
+-118 + j*(13)
+3 + j*(23)
+24 + j*(-56)
+-43 + j*(-78)
+-88 + j*(-6)
+-18 + j*(78)
+110 + j*(32)
+114 + j*(-117)
+-15 + j*(-175)
+-87 + j*(-96)
+-46 + j*(-64)
+-71 + j*(-127)
+-206 + j*(-91)
+-226 + j*(105)
+-23 + j*(203)
+134 + j*(45)
+30 + j*(-124)
+-115 + j*(-62)
+-65 + j*(28)
+-31 + j*(-54)
+-179 + j*(-63)
+-210 + j*(136)
+-16 + j*(198)
+36 + j*(40)
+-106 + j*(38)
+-68 + j*(192)
+78 + j*(156)
+47 + j*(64)
+39 + j*(136)
+185 + j*(86)
+110 + j*(-131)
+-153 + j*(-52)
+-91 + j*(232)
+165 + j*(208)
+156 + j*(53)
+134 + j*(125)
+352 + j*(78)
+346 + j*(-262)
+-13 + j*(-349)
+-147 + j*(-60)
+64 + j*(48)
+127 + j*(-127)
+-36 + j*(-159)
+-47 + j*(2)
+148 + j*(4)
+195 + j*(-245)
+-71 + j*(-416)
+-358 + j*(-235)
+-324 + j*(68)
+-119 + j*(122)
+-91 + j*(37)
+-129 + j*(89)
+-40 + j*(146)
+21 + j*(93)
+28 + j*(99)
+151 + j*(76)
+176 + j*(-152)
+-89 + j*(-262)
+-268 + j*(-39)
+-136 + j*(136)
+-42 + j*(90)
+-69 + j*(110)
+40 + j*(185)
+185 + j*(63)
+122 + j*(-134)
+-73 + j*(-173)
+-218 + j*(-44)
+-208 + j*(163)
+-20 + j*(275)
+141 + j*(173)
+112 + j*(64)
+101 + j*(95)
+206 + j*(52)
+184 + j*(-124)
+-6 + j*(-166)
+-108 + j*(-8)
+-1 + j*(148)
+205 + j*(106)
+245 + j*(-127)
+27 + j*(-231)
+-72 + j*(-45)
+124 + j*(-6)
+107 + j*(-274)
+-233 + j*(-255)
+-246 + j*(96)
+51 + j*(117)
+33 + j*(-96)
+-96 + j*(-16)
+52 + j*(31)
+20 + j*(-190)
+-269 + j*(-102)
+-158 + j*(219)
+146 + j*(103)
+16 + j*(-148)
+-162 + j*(-1)
+-6 + j*(86)
+-26 + j*(-93)
+-250 + j*(21)
+-105 + j*(300)
+186 + j*(184)
+116 + j*(-55)
+-38 + j*(-11)
+-4 + j*(71)
+16 + j*(56)
+22 + j*(95)
+110 + j*(95)
+133 + j*(8)
+105 + j*(-18)
+121 + j*(-63)
+32 + j*(-133)
+-62 + j*(-13)
+107 + j*(81)
+227 + j*(-165)
+-63 + j*(-356)
+-326 + j*(-103)
+-173 + j*(166)
+21 + j*(103)
+-13 + j*(16)
+-28 + j*(69)
+35 + j*(64)
+17 + j*(31)
+24 + j*(100)
+172 + j*(95)
+235 + j*(-98)
+76 + j*(-238)
+-76 + j*(-169)
+-74 + j*(-90)
+-94 + j*(-104)
+-181 + j*(-21)
+-91 + j*(144)
+133 + j*(70)
+83 + j*(-201)
+-218 + j*(-201)
+-285 + j*(86)
+-70 + j*(182)
+-14 + j*(47)
+-133 + j*(74)
+-64 + j*(236)
+134 + j*(196)
+145 + j*(21)
+33 + j*(-3)
+31 + j*(71)
+93 + j*(63)
+103 + j*(27)
+136 + j*(8)
+159 + j*(-101)
+6 + j*(-204)
+-166 + j*(-51)
+-32 + j*(163)
+197 + j*(45)
+89 + j*(-181)
+-113 + j*(-66)
+34 + j*(115)
+224 + j*(-70)
+40 + j*(-300)
+-203 + j*(-174)
+-153 + j*(20)
+-46 + j*(-1)
+-86 + j*(-54)
+-144 + j*(-4)
+-142 + j*(78)
+-77 + j*(152)
+35 + j*(143)
+64 + j*(58)
+30 + j*(57)
+103 + j*(73)
+147 + j*(-69)
+-13 + j*(-156)
+-113 + j*(-19)
+-8 + j*(49)
+1 + j*(-51)
+-122 + j*(-18)
+-88 + j*(131)
+46 + j*(125)
+52 + j*(45)
+18 + j*(74)
+99 + j*(122)
+229 + j*(40)
+226 + j*(-179)
+-26 + j*(-305)
+-270 + j*(-82)
+-103 + j*(228)
+225 + j*(115)
+159 + j*(-190)
+-81 + j*(-153)
+-35 + j*(-6)
+34 + j*(-107)
+-125 + j*(-144)
+-168 + j*(22)
+-47 + j*(45)
+-95 + j*(-20)
+-159 + j*(114)
+14 + j*(233)
+197 + j*(102)
+174 + j*(-106)
+-4 + j*(-222)
+-247 + j*(-124)
+-266 + j*(206)
+88 + j*(342)
+296 + j*(18)
+17 + j*(-190)
+-146 + j*(75)
+149 + j*(204)
+288 + j*(-123)
+-25 + j*(-312)
+-264 + j*(-69)
+-137 + j*(181)
+74 + j*(180)
+169 + j*(55)
+150 + j*(-76)
+47 + j*(-137)
+-26 + j*(-86)
+4 + j*(-62)
+-24 + j*(-129)
+-163 + j*(-97)
+-177 + j*(95)
+24 + j*(166)
+134 + j*(-13)
+-17 + j*(-141)
+-153 + j*(-25)
+-85 + j*(95)
+-29 + j*(76)
+-37 + j*(125)
+110 + j*(194)
+278 + j*(7)
+135 + j*(-240)
+-113 + j*(-179)
+-115 + j*(-4)
+-42 + j*(2)
+-67 + j*(11)
+-9 + j*(69)
+59 + j*(-32)
+-93 + j*(-112)
+-205 + j*(74)
+-33 + j*(229)
+126 + j*(125)
+100 + j*(23)
+87 + j*(9)
+70 + j*(-52)
+-30 + j*(-29)
+18 + j*(99)
+185 + j*(21)
+101 + j*(-180)
+-99 + j*(-108)
+-31 + j*(54)
+78 + j*(-33)
+-46 + j*(-89)
+-52 + j*(81)
+185 + j*(49)
+157 + j*(-255)
+-177 + j*(-282)
+-271 + j*(8)
+-87 + j*(125)
+-6 + j*(40)
+-25 + j*(14)
+-21 + j*(-10)
+-103 + j*(-24)
+-145 + j*(128)
+56 + j*(224)
+201 + j*(26)
+47 + j*(-132)
+-82 + j*(-22)
+-1 + j*(52)
+16 + j*(-13)
+-42 + j*(16)
+16 + j*(66)
+49 + j*(-5)
+-40 + j*(-9)
+-18 + j*(112)
+144 + j*(107)
+204 + j*(-70)
+72 + j*(-212)
+-123 + j*(-176)
+-181 + j*(23)
+-6 + j*(134)
+121 + j*(-31)
+-50 + j*(-162)
+-195 + j*(7)
+-65 + j*(153)
+37 + j*(91)
+40 + j*(92)
+170 + j*(61)
+163 + j*(-193)
+-170 + j*(-240)
+-288 + j*(107)
+-1 + j*(282)
+185 + j*(114)
+162 + j*(-13)
+153 + j*(-107)
+-3 + j*(-224)
+-206 + j*(-63)
+-57 + j*(169)
+165 + j*(22)
+11 + j*(-170)
+-147 + j*(-13)
+1 + j*(107)
+85 + j*(-23)
+-13 + j*(-83)
+-57 + j*(-38)
+-77 + j*(-19)
+-95 + j*(47)
+-35 + j*(86)
+-41 + j*(71)
+-32 + j*(205)
+263 + j*(254)
+446 + j*(-144)
+64 + j*(-469)
+-317 + j*(-196)
+-170 + j*(134)
+43 + j*(57)
+-21 + j*(-52)
+-77 + j*(8)
+-59 + j*(57)
+-23 + j*(123)
+140 + j*(134)
+221 + j*(-90)
+-5 + j*(-235)
+-171 + j*(-45)
+-26 + j*(109)
+98 + j*(6)
+53 + j*(-85)
+20 + j*(-107)
+-38 + j*(-162)
+-164 + j*(-141)
+-222 + j*(-29)
+-217 + j*(60)
+-197 + j*(170)
+-65 + j*(260)
+76 + j*(199)
+81 + j*(114)
+95 + j*(112)
+139 + j*(42)
+67 + j*(-21)
+35 + j*(58)
+151 + j*(43)
+117 + j*(-108)
+-39 + j*(-65)
+33 + j*(71)
+153 + j*(-46)
+3 + j*(-164)
+-120 + j*(-2)
+28 + j*(127)
+170 + j*(25)
+165 + j*(-112)
+88 + j*(-227)
+-107 + j*(-260)
+-238 + j*(-64)
+-82 + j*(87)
+16 + j*(-58)
+-175 + j*(-95)
+-187 + j*(146)
+65 + j*(148)
+33 + j*(-88)
+-204 + j*(-8)
+-112 + j*(245)
+112 + j*(188)
+80 + j*(72)
+94 + j*(163)
+308 + j*(91)
+301 + j*(-218)
+12 + j*(-330)
+-177 + j*(-164)
+-170 + j*(13)
+-62 + j*(122)
+107 + j*(92)
+132 + j*(-90)
+-40 + j*(-125)
+-41 + j*(42)
+165 + j*(-6)
+113 + j*(-285)
+-213 + j*(-308)
+-335 + j*(-26)
+-180 + j*(148)
+-30 + j*(113)
+8 + j*(11)
+-77 + j*(-79)
+-247 + j*(-12)
+-247 + j*(233)
+-6 + j*(336)
+141 + j*(191)
+93 + j*(113)
+146 + j*(161)
+292 + j*(35)
+192 + j*(-216)
+-88 + j*(-197)
+-121 + j*(41)
+64 + j*(60)
+31 + j*(-109)
+-173 + j*(-31)
+-81 + j*(224)
+200 + j*(147)
+132 + j*(-132)
+-136 + j*(-41)
+-18 + j*(240)
+288 + j*(127)
+226 + j*(-165)
+8 + j*(-162)
+-4 + j*(-52)
+6 + j*(-53)
+-10 + j*(20)
+144 + j*(53)
+215 + j*(-162)
+6 + j*(-276)
+-84 + j*(-134)
+16 + j*(-155)
+-129 + j*(-308)
+-391 + j*(-144)
+-329 + j*(155)
+-134 + j*(208)
+-63 + j*(195)
+69 + j*(210)
+174 + j*(31)
+-1 + j*(-110)
+-136 + j*(81)
+98 + j*(218)
+280 + j*(-43)
+37 + j*(-285)
+-244 + j*(-103)
+-130 + j*(182)
+132 + j*(116)
+78 + j*(-113)
+-134 + j*(-38)
+-12 + j*(190)
+277 + j*(32)
+137 + j*(-336)
+-269 + j*(-279)
+-306 + j*(73)
+-84 + j*(141)
+-79 + j*(33)
+-160 + j*(114)
+-60 + j*(229)
+64 + j*(197)
+116 + j*(135)
+141 + j*(62)
+92 + j*(-4)
+40 + j*(38)
+105 + j*(69)
+138 + j*(-11)
+86 + j*(-39)
+103 + j*(-30)
+90 + j*(-114)
+-45 + j*(-99)
+-21 + j*(61)
+155 + j*(28)
+143 + j*(-152)
+14 + j*(-182)
+-38 + j*(-177)
+-177 + j*(-168)
+-257 + j*(71)
+22 + j*(226)
+203 + j*(-59)
+-80 + j*(-229)
+-218 + j*(40)
+30 + j*(115)
+11 + j*(-123)
+-260 + j*(-18)
+-127 + j*(306)
+204 + j*(222)
+184 + j*(-29)
+74 + j*(-21)
+145 + j*(-28)
+97 + j*(-173)
+-65 + j*(-141)
+-32 + j*(-24)
+42 + j*(-103)
+-76 + j*(-190)
+-200 + j*(-114)
+-247 + j*(-19)
+-295 + j*(141)
+-132 + j*(388)
+254 + j*(333)
+330 + j*(-62)
+25 + j*(-201)
+-71 + j*(1)
+73 + j*(-6)
+-41 + j*(-155)
+-235 + j*(30)
+-35 + j*(269)
+218 + j*(110)
+127 + j*(-100)
+16 + j*(-71)
+24 + j*(-86)
+-116 + j*(-117)
+-199 + j*(104)
+41 + j*(250)
+223 + j*(57)
+123 + j*(-101)
+54 + j*(-88)
+33 + j*(-143)
+-110 + j*(-144)
+-150 + j*(2)
+-69 + j*(37)
+-112 + j*(37)
+-70 + j*(188)
+166 + j*(158)
+164 + j*(-104)
+-70 + j*(-116)
+-74 + j*(55)
+14 + j*(47)
+-10 + j*(61)
+119 + j*(114)
+215 + j*(-118)
+-82 + j*(-257)
+-247 + j*(54)
+39 + j*(202)
+122 + j*(-38)
+-81 + j*(-23)
+25 + j*(167)
+210 + j*(18)
+73 + j*(-124)
+33 + j*(-14)
+141 + j*(-105)
+-53 + j*(-239)
+-199 + j*(8)
+69 + j*(123)
+135 + j*(-160)
+-154 + j*(-180)
+-127 + j*(86)
+100 + j*(2)
+-37 + j*(-207)
+-245 + j*(-57)
+-139 + j*(126)
+-26 + j*(81)
+-37 + j*(59)
+4 + j*(56)
+-21 + j*(-15)
+-119 + j*(55)
+-18 + j*(194)
+148 + j*(102)
+82 + j*(-47)
+-7 + j*(17)
+97 + j*(55)
+132 + j*(-103)
+-51 + j*(-179)
+-177 + j*(-28)
+-92 + j*(119)
+30 + j*(105)
+57 + j*(37)
+43 + j*(4)
+25 + j*(-22)
+-23 + j*(-17)
+-28 + j*(54)
+62 + j*(68)
+92 + j*(-38)
+-19 + j*(-83)
+-71 + j*(21)
+14 + j*(81)
+79 + j*(25)
+70 + j*(-34)
+31 + j*(-78)
+-53 + j*(-79)
+-98 + j*(21)
+-20 + j*(96)
+56 + j*(66)
+81 + j*(31)
+117 + j*(-33)
+43 + j*(-134)
+-94 + j*(-61)
+-4 + j*(74)
+112 + j*(-68)
+-100 + j*(-173)
+-209 + j*(107)
+116 + j*(230)
+250 + j*(-109)
+-65 + j*(-243)
+-179 + j*(18)
+12 + j*(88)
+21 + j*(-33)
+-46 + j*(14)
+36 + j*(38)
+23 + j*(-49)
+-44 + j*(4)
+50 + j*(33)
+29 + j*(-98)
+-134 + j*(-14)
+22 + j*(192)
+293 + j*(-10)
+109 + j*(-337)
+-204 + j*(-235)
+-176 + j*(-43)
+-158 + j*(-93)
+-324 + j*(-2)
+-251 + j*(276)
+33 + j*(293)
+100 + j*(108)
+23 + j*(74)
+47 + j*(98)
+50 + j*(59)
+31 + j*(103)
+155 + j*(132)
+241 + j*(-50)
+63 + j*(-202)
+-117 + j*(-78)
+-51 + j*(88)
+74 + j*(75)
+110 + j*(15)
+144 + j*(-58)
+79 + j*(-200)
+-139 + j*(-191)
+-190 + j*(33)
+-8 + j*(96)
+7 + j*(-53)
+-159 + j*(1)
+-78 + j*(213)
+152 + j*(168)
+161 + j*(-13)
+86 + j*(-45)
+86 + j*(-71)
+-5 + j*(-117)
+-72 + j*(0)
+64 + j*(57)
+101 + j*(-98)
+-54 + j*(-114)
+-33 + j*(19)
+74 + j*(-61)
+-57 + j*(-158)
+-146 + j*(-16)
+-35 + j*(30)
+-71 + j*(-45)
+-130 + j*(91)
+86 + j*(144)
+123 + j*(-132)
+-199 + j*(-146)
+-197 + j*(214)
+173 + j*(206)
+166 + j*(-143)
+-147 + j*(-138)
+-156 + j*(122)
+28 + j*(158)
+74 + j*(79)
+92 + j*(67)
+139 + j*(16)
+139 + j*(-55)
+127 + j*(-139)
+9 + j*(-258)
+-230 + j*(-187)
+-246 + j*(93)
+-12 + j*(165)
+50 + j*(8)
+-50 + j*(1)
+4 + j*(67)
+45 + j*(-31)
+-97 + j*(-49)
+-100 + j*(129)
+100 + j*(128)
+93 + j*(-74)
+-117 + j*(-50)
+-92 + j*(185)
+175 + j*(204)
+278 + j*(-47)
+117 + j*(-231)
+-79 + j*(-203)
+-175 + j*(-86)
+-193 + j*(62)
+-84 + j*(206)
+129 + j*(198)
+231 + j*(-6)
+102 + j*(-179)
+-88 + j*(-148)
+-156 + j*(2)
+-88 + j*(147)
+98 + j*(192)
+267 + j*(23)
+168 + j*(-235)
+-110 + j*(-236)
+-180 + j*(1)
+-2 + j*(80)
+46 + j*(-66)
+-109 + j*(-97)
+-160 + j*(77)
+1 + j*(176)
+139 + j*(74)
+117 + j*(-64)
+33 + j*(-117)
+-59 + j*(-117)
+-161 + j*(-37)
+-133 + j*(150)
+104 + j*(219)
+291 + j*(-16)
+139 + j*(-310)
+-199 + j*(-314)
+-378 + j*(-46)
+-284 + j*(239)
+-25 + j*(341)
+194 + j*(214)
+214 + j*(10)
+110 + j*(-87)
+23 + j*(-93)
+-47 + j*(-53)
+-41 + j*(39)
+58 + j*(28)
+17 + j*(-89)
+-136 + j*(-11)
+-37 + j*(188)
+182 + j*(91)
+91 + j*(-105)
+-46 + j*(6)
+108 + j*(94)
+180 + j*(-86)
+37 + j*(-130)
+85 + j*(-60)
+135 + j*(-260)
+-185 + j*(-387)
+-421 + j*(-73)
+-231 + j*(197)
+-42 + j*(148)
+-9 + j*(95)
+47 + j*(28)
+-54 + j*(-99)
+-247 + j*(40)
+-104 + j*(290)
+146 + j*(186)
+71 + j*(12)
+3 + j*(115)
+165 + j*(115)
+146 + j*(-84)
+-47 + j*(-49)
+16 + j*(131)
+212 + j*(54)
+180 + j*(-160)
+-13 + j*(-214)
+-140 + j*(-92)
+-93 + j*(52)
+25 + j*(36)
+-27 + j*(-58)
+-121 + j*(58)
+49 + j*(178)
+180 + j*(-21)
+-45 + j*(-127)
+-101 + j*(151)
+255 + j*(185)
+320 + j*(-228)
+-79 + j*(-355)
+-247 + j*(-40)
+-45 + j*(126)
+95 + j*(31)
+101 + j*(-80)
+32 + j*(-185)
+-139 + j*(-178)
+-192 + j*(-7)
+-73 + j*(47)
+-81 + j*(-33)
+-180 + j*(51)
+-69 + j*(201)
+110 + j*(124)
+83 + j*(-42)
+-50 + j*(-42)
+-71 + j*(80)
+69 + j*(144)
+213 + j*(-8)
+88 + j*(-250)
+-221 + j*(-203)
+-274 + j*(106)
+-42 + j*(234)
+100 + j*(119)
+87 + j*(26)
+66 + j*(-14)
+21 + j*(-45)
+-20 + j*(-9)
+13 + j*(8)
+4 + j*(-40)
+-59 + j*(-20)
+-49 + j*(38)
+-25 + j*(42)
+-22 + j*(71)
+52 + j*(76)
+53 + j*(-28)
+-86 + j*(-1)
+-26 + j*(194)
+226 + j*(132)
+187 + j*(-146)
+-77 + j*(-126)
+-53 + j*(110)
+164 + j*(88)
+166 + j*(-105)
+30 + j*(-148)
+-29 + j*(-98)
+-57 + j*(-61)
+-66 + j*(14)
+28 + j*(76)
+149 + j*(-6)
+115 + j*(-182)
+-88 + j*(-221)
+-185 + j*(-33)
+-21 + j*(79)
+82 + j*(-96)
+-125 + j*(-214)
+-287 + j*(-10)
+-146 + j*(173)
+-12 + j*(116)
+-25 + j*(76)
+11 + j*(93)
+31 + j*(28)
+-45 + j*(43)
+14 + j*(156)
+173 + j*(86)
+139 + j*(-89)
+6 + j*(-100)
+-23 + j*(-38)
+-27 + j*(-8)
+13 + j*(44)
+117 + j*(-16)
+51 + j*(-180)
+-146 + j*(-136)
+-134 + j*(37)
+-23 + j*(21)
+-78 + j*(-34)
+-112 + j*(47)
+-48 + j*(56)
+-108 + j*(28)
+-144 + j*(182)
+54 + j*(279)
+195 + j*(128)
+129 + j*(27)
+136 + j*(62)
+218 + j*(-19)
+161 + j*(-156)
+49 + j*(-178)
+-12 + j*(-179)
+-121 + j*(-172)
+-220 + j*(-45)
+-171 + j*(123)
+-26 + j*(193)
+110 + j*(132)
+129 + j*(3)
+39 + j*(-29)
+65 + j*(55)
+211 + j*(-35)
+109 + j*(-274)
+-185 + j*(-220)
+-183 + j*(54)
+26 + j*(59)
+-7 + j*(-98)
+-143 + j*(-27)
+-61 + j*(94)
+26 + j*(10)
+-83 + j*(-47)
+-158 + j*(103)
+-2 + j*(258)
+251 + j*(173)
+300 + j*(-131)
+28 + j*(-305)
+-199 + j*(-117)
+-73 + j*(78)
+47 + j*(-50)
+-134 + j*(-120)
+-199 + j*(110)
+38 + j*(192)
+126 + j*(-15)
+-35 + j*(-98)
+-124 + j*(2)
+-126 + j*(100)
+-49 + j*(239)
+209 + j*(235)
+294 + j*(-68)
+13 + j*(-176)
+-31 + j*(79)
+262 + j*(23)
+144 + j*(-357)
+-298 + j*(-252)
+-250 + j*(172)
+72 + j*(168)
+68 + j*(1)
+73 + j*(57)
+232 + j*(-107)
+-36 + j*(-400)
+-446 + j*(-110)
+-196 + j*(342)
+204 + j*(129)
+-45 + j*(-166)
+-267 + j*(185)
+194 + j*(424)
+521 + j*(-70)
+105 + j*(-478)
+-304 + j*(-208)
+-165 + j*(102)
+0 + j*(15)
+-111 + j*(-33)
+-99 + j*(129)
+104 + j*(97)
+68 + j*(-135)
+-190 + j*(-107)
+-194 + j*(148)
+14 + j*(179)
+18 + j*(48)
+-71 + j*(122)
+74 + j*(238)
+245 + j*(97)
+179 + j*(-89)
+52 + j*(-107)
+-18 + j*(-81)
+-87 + j*(2)
+-12 + j*(144)
+167 + j*(89)
+122 + j*(-79)
+-1 + j*(-8)
+138 + j*(82)
+232 + j*(-118)
+33 + j*(-228)
+-41 + j*(-73)
+85 + j*(-91)
+-19 + j*(-235)
+-194 + j*(-97)
+-62 + j*(70)
+66 + j*(-56)
+-55 + j*(-144)
+-111 + j*(-49)
+-57 + j*(-36)
+-92 + j*(-65)
+-105 + j*(-19)
+-88 + j*(-44)
+-190 + j*(-34)
+-196 + j*(132)
+-33 + j*(165)
+-22 + j*(61)
+-68 + j*(141)
+124 + j*(167)
+168 + j*(-108)
+-149 + j*(-180)
+-244 + j*(127)
+-2 + j*(221)
+33 + j*(65)
+-71 + j*(139)
+95 + j*(257)
+263 + j*(78)
+151 + j*(-98)
+33 + j*(-74)
+5 + j*(-63)
+-97 + j*(-25)
+-93 + j*(167)
+140 + j*(245)
+302 + j*(45)
+200 + j*(-151)
+46 + j*(-136)
+48 + j*(-49)
+122 + j*(-85)
+79 + j*(-211)
+-98 + j*(-222)
+-182 + j*(-57)
+-70 + j*(57)
+24 + j*(-21)
+-59 + j*(-98)
+-161 + j*(4)
+-69 + j*(160)
+134 + j*(116)
+154 + j*(-108)
+-57 + j*(-182)
+-161 + j*(-10)
+-42 + j*(93)
+23 + j*(33)
+18 + j*(42)
+133 + j*(21)
+133 + j*(-211)
+-172 + j*(-284)
+-332 + j*(1)
+-152 + j*(195)
+-28 + j*(141)
+-17 + j*(161)
+130 + j*(177)
+220 + j*(-8)
+100 + j*(-139)
+10 + j*(-124)
+-48 + j*(-148)
+-190 + j*(-85)
+-171 + j*(121)
+27 + j*(141)
+56 + j*(-9)
+-40 + j*(-22)
+-37 + j*(16)
+-66 + j*(1)
+-113 + j*(91)
+0 + j*(174)
+98 + j*(89)
+57 + j*(23)
+44 + j*(35)
+30 + j*(5)
+-23 + j*(73)
+120 + j*(161)
+271 + j*(-38)
+64 + j*(-243)
+-151 + j*(-73)
+-24 + j*(100)
+72 + j*(12)
+13 + j*(2)
+74 + j*(50)
+113 + j*(-50)
+20 + j*(-53)
+93 + j*(24)
+184 + j*(-129)
+-1 + j*(-242)
+-82 + j*(-81)
+67 + j*(-92)
+-29 + j*(-284)
+-260 + j*(-185)
+-206 + j*(-7)
+-161 + j*(-64)
+-305 + j*(-4)
+-243 + j*(209)
+-74 + j*(191)
+-119 + j*(148)
+-81 + j*(298)
+144 + j*(272)
+154 + j*(89)
+76 + j*(119)
+211 + j*(135)
+238 + j*(-69)
+45 + j*(-116)
+28 + j*(28)
+146 + j*(1)
+110 + j*(-107)
+45 + j*(-105)
+16 + j*(-117)
+-69 + j*(-81)
+-28 + j*(48)
+132 + j*(-17)
+42 + j*(-207)
+-167 + j*(-116)
+-84 + j*(81)
+78 + j*(-4)
+-19 + j*(-136)
+-136 + j*(-39)
+-55 + j*(69)
+43 + j*(12)
+22 + j*(-86)
+-69 + j*(-117)
+-155 + j*(-61)
+-162 + j*(35)
+-115 + j*(83)
+-90 + j*(102)
+-52 + j*(128)
+-16 + j*(120)
+-25 + j*(138)
+55 + j*(226)
+257 + j*(161)
+288 + j*(-102)
+76 + j*(-227)
+-66 + j*(-138)
+-85 + j*(-68)
+-132 + j*(-14)
+-106 + j*(112)
+21 + j*(136)
+40 + j*(70)
+32 + j*(154)
+274 + j*(192)
+470 + j*(-161)
+147 + j*(-558)
+-358 + j*(-407)
+-404 + j*(30)
+-165 + j*(161)
+-110 + j*(119)
+-52 + j*(228)
+209 + j*(174)
+204 + j*(-175)
+-187 + j*(-217)
+-269 + j*(175)
+78 + j*(296)
+209 + j*(49)
+89 + j*(-22)
+134 + j*(-6)
+108 + j*(-174)
+-145 + j*(-147)
+-117 + j*(135)
+160 + j*(94)
+94 + j*(-165)
+-141 + j*(-80)
+-43 + j*(127)
+132 + j*(31)
+54 + j*(-102)
+-30 + j*(-47)
+19 + j*(-6)
+48 + j*(-57)
+17 + j*(-117)
+-84 + j*(-141)
+-181 + j*(-30)
+-98 + j*(112)
+36 + j*(63)
+11 + j*(-26)
+-16 + j*(-16)
+-29 + j*(-71)
+-196 + j*(-40)
+-182 + j*(252)
+190 + j*(307)
+325 + j*(-54)
+77 + j*(-206)
+13 + j*(-109)
+13 + j*(-216)
+-254 + j*(-208)
+-281 + j*(120)
+9 + j*(128)
+-92 + j*(-108)
+-335 + j*(128)
+-39 + j*(413)
+235 + j*(158)
+40 + j*(-4)
+47 + j*(185)
+272 + j*(43)
+58 + j*(-199)
+-151 + j*(68)
+185 + j*(223)
+320 + j*(-168)
+-80 + j*(-320)
+-244 + j*(13)
+-34 + j*(158)
+46 + j*(89)
+90 + j*(115)
+222 + j*(21)
+141 + j*(-165)
+-11 + j*(-110)
+69 + j*(-47)
+57 + j*(-207)
+-177 + j*(-183)
+-182 + j*(69)
+19 + j*(83)
+4 + j*(-45)
+-62 + j*(29)
+73 + j*(46)
+56 + j*(-146)
+-194 + j*(-108)
+-160 + j*(185)
+148 + j*(170)
+151 + j*(-126)
+-126 + j*(-132)
+-126 + j*(131)
+123 + j*(138)
+142 + j*(-78)
+-23 + j*(-88)
+12 + j*(37)
+146 + j*(-54)
+37 + j*(-241)
+-188 + j*(-173)
+-185 + j*(35)
+-38 + j*(55)
+-45 + j*(-38)
+-124 + j*(16)
+-33 + j*(112)
+83 + j*(-2)
+-41 + j*(-153)
+-229 + j*(-45)
+-171 + j*(152)
+-30 + j*(144)
+-42 + j*(91)
+-32 + j*(158)
+83 + j*(134)
+56 + j*(16)
+-47 + j*(80)
+69 + j*(199)
+236 + j*(71)
+161 + j*(-123)
+-4 + j*(-136)
+-93 + j*(-64)
+-148 + j*(62)
+-47 + j*(245)
+218 + j*(224)
+298 + j*(-30)
+145 + j*(-163)
+47 + j*(-138)
+-21 + j*(-137)
+-120 + j*(-38)
+-23 + j*(128)
+176 + j*(43)
+117 + j*(-156)
+-56 + j*(-127)
+-53 + j*(-14)
+-11 + j*(-1)
+14 + j*(35)
+124 + j*(-1)
+84 + j*(-180)
+-141 + j*(-144)
+-107 + j*(107)
+157 + j*(79)
+155 + j*(-175)
+-37 + j*(-204)
+-59 + j*(-121)
+-61 + j*(-178)
+-214 + j*(-185)
+-306 + j*(-16)
+-241 + j*(144)
+-115 + j*(222)
+52 + j*(216)
+165 + j*(67)
+101 + j*(-112)
+-72 + j*(-145)
+-185 + j*(-23)
+-122 + j*(134)
+55 + j*(108)
+33 + j*(-105)
+-250 + j*(-77)
+-265 + j*(286)
+128 + j*(386)
+296 + j*(48)
+64 + j*(-122)
+-53 + j*(13)
+15 + j*(66)
+23 + j*(66)
+108 + j*(94)
+180 + j*(-81)
+-65 + j*(-205)
+-232 + j*(86)
+78 + j*(267)
+239 + j*(-42)
+-71 + j*(-153)
+-117 + j*(177)
+238 + j*(168)
+198 + j*(-204)
+-176 + j*(-141)
+-97 + j*(228)
+262 + j*(150)
+208 + j*(-185)
+-86 + j*(-157)
+-82 + j*(98)
+142 + j*(136)
+242 + j*(-37)
+164 + j*(-181)
+35 + j*(-193)
+2 + j*(-112)
+82 + j*(-119)
+57 + j*(-270)
+-162 + j*(-302)
+-274 + j*(-95)
+-132 + j*(29)
+-64 + j*(-79)
+-197 + j*(-99)
+-213 + j*(50)
+-98 + j*(53)
+-172 + j*(-28)
+-287 + j*(146)
+-75 + j*(344)
+168 + j*(168)
+29 + j*(-42)
+-130 + j*(121)
+88 + j*(276)
+290 + j*(46)
+116 + j*(-192)
+-108 + j*(-100)
+-81 + j*(66)
+20 + j*(63)
+8 + j*(11)
+-29 + j*(52)
+40 + j*(115)
+158 + j*(41)
+110 + j*(-136)
+-104 + j*(-132)
+-139 + j*(93)
+78 + j*(148)
+141 + j*(-59)
+-54 + j*(-121)
+-123 + j*(51)
+1 + j*(128)
+66 + j*(78)
+93 + j*(68)
+163 + j*(-1)
+104 + j*(-146)
+-76 + j*(-124)
+-93 + j*(61)
+79 + j*(119)
+188 + j*(-23)
+113 + j*(-179)
+-43 + j*(-187)
+-100 + j*(-78)
+-45 + j*(-51)
+-98 + j*(-113)
+-233 + j*(1)
+-123 + j*(232)
+156 + j*(174)
+148 + j*(-90)
+-66 + j*(-91)
+-35 + j*(91)
+155 + j*(33)
+121 + j*(-197)
+-119 + j*(-256)
+-310 + j*(-78)
+-269 + j*(197)
+3 + j*(300)
+182 + j*(91)
+19 + j*(-75)
+-105 + j*(106)
+130 + j*(225)
+284 + j*(-35)
+54 + j*(-224)
+-133 + j*(-47)
+-6 + j*(124)
+160 + j*(51)
+171 + j*(-109)
+57 + j*(-223)
+-130 + j*(-194)
+-180 + j*(4)
+-11 + j*(92)
+74 + j*(-50)
+-52 + j*(-118)
+-97 + j*(-11)
+-3 + j*(7)
+8 + j*(-91)
+-86 + j*(-139)
+-194 + j*(-109)
+-279 + j*(10)
+-231 + j*(179)
+-83 + j*(216)
+-47 + j*(160)
+-45 + j*(217)
+106 + j*(235)
+167 + j*(57)
+-2 + j*(1)
+-26 + j*(185)
+186 + j*(215)
+257 + j*(21)
+141 + j*(-59)
+119 + j*(-13)
+165 + j*(-59)
+110 + j*(-144)
+8 + j*(-139)
+-33 + j*(-65)
+11 + j*(-12)
+63 + j*(-57)
+-11 + j*(-122)
+-100 + j*(-14)
+40 + j*(100)
+182 + j*(-69)
+-8 + j*(-233)
+-179 + j*(-41)
+19 + j*(117)
+161 + j*(-88)
+-35 + j*(-218)
+-136 + j*(-60)
+-17 + j*(-28)
+-75 + j*(-149)
+-241 + j*(-43)
+-153 + j*(168)
+45 + j*(142)
+80 + j*(20)
+69 + j*(-28)
+76 + j*(-134)
+-96 + j*(-247)
+-325 + j*(-105)
+-283 + j*(164)
+-85 + j*(204)
+-66 + j*(121)
+-98 + j*(215)
+92 + j*(301)
+265 + j*(112)
+143 + j*(-83)
+3 + j*(-4)
+103 + j*(76)
+180 + j*(-63)
+59 + j*(-177)
+-62 + j*(-136)
+-111 + j*(-74)
+-144 + j*(11)
+-81 + j*(103)
+1 + j*(78)
+-28 + j*(57)
+13 + j*(127)
+128 + j*(42)
+-3 + j*(-99)
+-172 + j*(89)
+55 + j*(308)
+307 + j*(102)
+168 + j*(-109)
+77 + j*(-8)
+207 + j*(-42)
+105 + j*(-216)
+-57 + j*(-90)
+122 + j*(7)
+168 + j*(-257)
+-159 + j*(-298)
+-193 + j*(23)
+97 + j*(0)
+6 + j*(-298)
+-320 + j*(-202)
+-291 + j*(93)
+-113 + j*(110)
+-132 + j*(59)
+-149 + j*(163)
+-18 + j*(245)
+150 + j*(180)
+192 + j*(-21)
+-12 + j*(-139)
+-167 + j*(93)
+133 + j*(296)
+422 + j*(-64)
+78 + j*(-441)
+-328 + j*(-182)
+-164 + j*(155)
+32 + j*(40)
+-94 + j*(-28)
+-88 + j*(132)
+64 + j*(98)
+8 + j*(21)
+30 + j*(139)
+245 + j*(49)
+146 + j*(-260)
+-206 + j*(-195)
+-180 + j*(150)
+134 + j*(155)
+177 + j*(-130)
+-66 + j*(-232)
+-235 + j*(-58)
+-152 + j*(147)
+47 + j*(132)
+57 + j*(-49)
+-119 + j*(-60)
+-140 + j*(104)
+-33 + j*(127)
+-69 + j*(110)
+-46 + j*(278)
+240 + j*(312)
+383 + j*(20)
+192 + j*(-167)
+70 + j*(-82)
+132 + j*(-64)
+102 + j*(-156)
+2 + j*(-146)
+-12 + j*(-86)
+6 + j*(-78)
+10 + j*(-89)
+1 + j*(-121)
+-66 + j*(-136)
+-112 + j*(-70)
+-74 + j*(-28)
+-65 + j*(-53)
+-93 + j*(-38)
+-75 + j*(-33)
+-134 + j*(-76)
+-257 + j*(40)
+-152 + j*(264)
+122 + j*(228)
+159 + j*(-25)
+-31 + j*(-98)
+-112 + j*(28)
+-53 + j*(109)
+6 + j*(115)
+55 + j*(113)
+119 + j*(81)
+160 + j*(-12)
+98 + j*(-134)
+-69 + j*(-132)
+-108 + j*(42)
+71 + j*(84)
+102 + j*(-123)
+-149 + j*(-164)
+-233 + j*(99)
+-30 + j*(226)
+82 + j*(144)
+124 + j*(140)
+285 + j*(53)
+253 + j*(-241)
+-65 + j*(-312)
+-187 + j*(-81)
+-78 + j*(-13)
+-146 + j*(-58)
+-225 + j*(144)
+30 + j*(315)
+274 + j*(113)
+185 + j*(-124)
+39 + j*(-122)
+31 + j*(-100)
+-21 + j*(-143)
+-119 + j*(-92)
+-108 + j*(5)
+-59 + j*(8)
+-90 + j*(-4)
+-119 + j*(73)
+-38 + j*(153)
+69 + j*(119)
+79 + j*(35)
+44 + j*(34)
+98 + j*(56)
+162 + j*(-49)
+58 + j*(-182)
+-121 + j*(-129)
+-134 + j*(50)
+6 + j*(117)
+101 + j*(33)
+76 + j*(-61)
+10 + j*(-74)
+-4 + j*(-46)
+1 + j*(-69)
+-63 + j*(-79)
+-99 + j*(14)
+19 + j*(67)
+86 + j*(-82)
+-101 + j*(-184)
+-262 + j*(23)
+-74 + j*(246)
+199 + j*(108)
+130 + j*(-200)
+-197 + j*(-220)
+-322 + j*(87)
+-86 + j*(292)
+134 + j*(148)
+47 + j*(-25)
+-66 + j*(71)
+64 + j*(151)
+130 + j*(-6)
+-42 + j*(-47)
+-55 + j*(150)
+165 + j*(156)
+183 + j*(-57)
+16 + j*(-71)
+38 + j*(48)
+134 + j*(-11)
+57 + j*(-99)
+-16 + j*(-20)
+64 + j*(59)
+183 + j*(12)
+243 + j*(-139)
+146 + j*(-344)
+-136 + j*(-390)
+-310 + j*(-160)
+-190 + j*(20)
+-101 + j*(-61)
+-244 + j*(-89)
+-314 + j*(119)
+-135 + j*(274)
+37 + j*(193)
+9 + j*(93)
+-30 + j*(167)
+136 + j*(244)
+330 + j*(52)
+206 + j*(-245)
+-100 + j*(-232)
+-156 + j*(-1)
+-20 + j*(57)
+-2 + j*(-8)
+-21 + j*(8)
+9 + j*(-23)
+-84 + j*(-71)
+-172 + j*(70)
+-40 + j*(197)
+71 + j*(134)
+69 + j*(122)
+204 + j*(131)
+289 + j*(-105)
+48 + j*(-267)
+-117 + j*(-80)
+29 + j*(9)
+35 + j*(-146)
+-147 + j*(-115)
+-127 + j*(57)
+-21 + j*(53)
+-33 + j*(38)
+35 + j*(74)
+91 + j*(-54)
+-83 + j*(-115)
+-143 + j*(86)
+59 + j*(139)
+90 + j*(-30)
+-27 + j*(-8)
+72 + j*(67)
+134 + j*(-110)
+-86 + j*(-178)
+-147 + j*(43)
+63 + j*(65)
+36 + j*(-163)
+-241 + j*(-127)
+-261 + j*(175)
+-10 + j*(271)
+105 + j*(127)
+33 + j*(82)
+76 + j*(185)
+282 + j*(139)
+342 + j*(-134)
+117 + j*(-313)
+-91 + j*(-217)
+-93 + j*(-85)
+-62 + j*(-66)
+-66 + j*(-48)
+-45 + j*(-54)
+-103 + j*(-93)
+-198 + j*(10)
+-96 + j*(158)
+62 + j*(83)
+-5 + j*(-36)
+-83 + j*(56)
+40 + j*(118)
+115 + j*(-21)
+-5 + j*(-117)
+-124 + j*(-46)
+-124 + j*(76)
+-24 + j*(152)
+101 + j*(85)
+59 + j*(-54)
+-82 + j*(-16)
+-40 + j*(128)
+96 + j*(98)
+89 + j*(8)
+78 + j*(14)
+117 + j*(-49)
+11 + j*(-134)
+-95 + j*(-16)
+24 + j*(91)
+124 + j*(-26)
+34 + j*(-121)
+-38 + j*(-86)
+-65 + j*(-70)
+-132 + j*(-6)
+-73 + j*(136)
+105 + j*(129)
+165 + j*(-20)
+114 + j*(-127)
+27 + j*(-206)
+-149 + j*(-214)
+-279 + j*(-35)
+-199 + j*(165)
+-30 + j*(222)
+127 + j*(180)
+237 + j*(3)
+117 + j*(-216)
+-130 + j*(-172)
+-134 + j*(24)
+-23 + j*(24)
+-66 + j*(-16)
+-55 + j*(66)
+30 + j*(5)
+-110 + j*(-68)
+-191 + j*(171)
+123 + j*(295)
+298 + j*(-30)
+11 + j*(-223)
+-153 + j*(-2)
+4 + j*(105)
+43 + j*(1)
+-23 + j*(31)
+62 + j*(81)
+114 + j*(-18)
+42 + j*(-70)
+21 + j*(-55)
+-17 + j*(-88)
+-118 + j*(-25)
+-51 + j*(135)
+152 + j*(98)
+173 + j*(-116)
+-1 + j*(-206)
+-134 + j*(-121)
+-135 + j*(-4)
+-72 + j*(30)
+-74 + j*(0)
+-143 + j*(57)
+-77 + j*(211)
+144 + j*(200)
+202 + j*(-10)
+59 + j*(-81)
+58 + j*(10)
+178 + j*(-93)
+22 + j*(-322)
+-337 + j*(-206)
+-330 + j*(221)
+78 + j*(327)
+239 + j*(-14)
+-35 + j*(-155)
+-123 + j*(98)
+151 + j*(136)
+168 + j*(-165)
+-141 + j*(-185)
+-166 + j*(93)
+47 + j*(113)
+43 + j*(-6)
+30 + j*(49)
+165 + j*(-33)
+17 + j*(-255)
+-269 + j*(-81)
+-86 + j*(231)
+225 + j*(40)
+30 + j*(-259)
+-252 + j*(-91)
+-139 + j*(146)
+13 + j*(98)
+14 + j*(58)
+77 + j*(35)
+42 + j*(-102)
+-147 + j*(-42)
+-55 + j*(191)
+230 + j*(76)
+115 + j*(-262)
+-256 + j*(-185)
+-249 + j*(168)
+-23 + j*(28)
+142 + j*(89)
+243 + j*(-152)
+-11 + j*(-301)
+-160 + j*(-95)
+-9 + j*(-13)
+-18 + j*(-156)
+-180 + j*(-100)
+-137 + j*(49)
+-59 + j*(32)
+-93 + j*(57)
+9 + j*(139)
+139 + j*(30)
+85 + j*(-95)
+49 + j*(-113)
+-1 + j*(-236)
+-292 + j*(-232)
+-390 + j*(163)
+18 + j*(347)
+232 + j*(-16)
+-69 + j*(-199)
+-178 + j*(31)
+-9 + j*(29)
+-153 + j*(-123)
+-350 + j*(132)
+-78 + j*(395)
+177 + j*(175)
+-3 + j*(17)
+-54 + j*(233)
+233 + j*(250)
+274 + j*(-47)
+47 + j*(-99)
+62 + j*(39)
+161 + j*(-92)
+-80 + j*(-226)
+-301 + j*(77)
+-18 + j*(404)
+385 + j*(230)
+369 + j*(-156)
+106 + j*(-264)
+-22 + j*(-159)
+-18 + j*(-98)
+-25 + j*(-91)
+-62 + j*(-67)
+-71 + j*(3)
+14 + j*(64)
+128 + j*(-19)
+71 + j*(-185)
+-119 + j*(-175)
+-159 + j*(-13)
+-60 + j*(39)
+-55 + j*(-1)
+-75 + j*(60)
+33 + j*(105)
+115 + j*(1)
+66 + j*(-100)
+3 + j*(-122)
+-59 + j*(-150)
+-186 + j*(-126)
+-264 + j*(36)
+-168 + j*(209)
+22 + j*(231)
+126 + j*(107)
+83 + j*(4)
+36 + j*(27)
+107 + j*(28)
+112 + j*(-110)
+-60 + j*(-147)
+-120 + j*(21)
+26 + j*(76)
+58 + j*(-45)
+-23 + j*(-40)
+44 + j*(-8)
+48 + j*(-170)
+-195 + j*(-199)
+-287 + j*(54)
+-105 + j*(174)
+-40 + j*(91)
+-74 + j*(122)
+21 + j*(158)
+40 + j*(59)
+-60 + j*(115)
+76 + j*(275)
+334 + j*(137)
+289 + j*(-160)
+68 + j*(-228)
+-31 + j*(-156)
+-88 + j*(-124)
+-161 + j*(-33)
+-124 + j*(107)
+8 + j*(153)
+107 + j*(76)
+85 + j*(-28)
+-11 + j*(-13)
+36 + j*(100)
+209 + j*(28)
+150 + j*(-202)
+-91 + j*(-184)
+-93 + j*(16)
+47 + j*(-1)
+-6 + j*(-98)
+-74 + j*(-21)
+4 + j*(15)
+9 + j*(-45)
+-18 + j*(-18)
+45 + j*(-42)
+-28 + j*(-154)
+-188 + j*(-57)
+-95 + j*(119)
+54 + j*(37)
+-26 + j*(-59)
+-64 + j*(36)
+48 + j*(21)
+4 + j*(-108)
+-123 + j*(-68)
+-115 + j*(13)
+-122 + j*(18)
+-150 + j*(101)
+-64 + j*(182)
+11 + j*(168)
+74 + j*(197)
+255 + j*(128)
+258 + j*(-156)
+-20 + j*(-245)
+-132 + j*(-64)
+-83 + j*(-25)
+-188 + j*(30)
+-97 + j*(302)
+292 + j*(246)
+298 + j*(-159)
+-21 + j*(-179)
+32 + j*(19)
+153 + j*(-161)
+-119 + j*(-269)
+-227 + j*(11)
+1 + j*(71)
+-40 + j*(-97)
+-175 + j*(52)
+53 + j*(170)
+153 + j*(-105)
+-145 + j*(-195)
+-250 + j*(85)
+-49 + j*(207)
+48 + j*(129)
+69 + j*(92)
+109 + j*(19)
+41 + j*(-40)
+16 + j*(28)
+91 + j*(10)
+21 + j*(-59)
+-27 + j*(63)
+158 + j*(100)
+209 + j*(-114)
+35 + j*(-167)
+47 + j*(-66)
+111 + j*(-199)
+-112 + j*(-295)
+-257 + j*(-64)
+-81 + j*(86)
+22 + j*(-27)
+-33 + j*(-78)
+-40 + j*(-95)
+-135 + j*(-163)
+-308 + j*(-43)
+-243 + j*(182)
+-76 + j*(193)
+-74 + j*(161)
+-16 + j*(262)
+194 + j*(226)
+250 + j*(6)
+122 + j*(-113)
+16 + j*(-117)
+-87 + j*(-83)
+-140 + j*(62)
+-11 + j*(180)
+116 + j*(110)
+89 + j*(40)
+112 + j*(82)
+233 + j*(13)
+198 + j*(-182)
+-1 + j*(-221)
+-87 + j*(-75)
+7 + j*(4)
+69 + j*(-75)
+-1 + j*(-138)
+-55 + j*(-95)
+-35 + j*(-101)
+-127 + j*(-163)
+-291 + j*(-27)
+-199 + j*(238)
+83 + j*(233)
+132 + j*(16)
+-4 + j*(-6)
+42 + j*(98)
+173 + j*(21)
+136 + j*(-142)
+4 + j*(-189)
+-103 + j*(-150)
+-156 + j*(-56)
+-114 + j*(25)
+-72 + j*(-2)
+-146 + j*(-1)
+-158 + j*(125)
+-50 + j*(185)
+4 + j*(173)
+88 + j*(221)
+277 + j*(117)
+223 + j*(-158)
+-43 + j*(-142)
+3 + j*(74)
+201 + j*(-54)
+4 + j*(-277)
+-254 + j*(-63)
+-64 + j*(196)
+165 + j*(43)
+50 + j*(-132)
+-64 + j*(-62)
+-34 + j*(-21)
+-73 + j*(-23)
+-63 + j*(88)
+105 + j*(88)
+138 + j*(-120)
+-75 + j*(-207)
+-221 + j*(-44)
+-150 + j*(121)
+-31 + j*(136)
+4 + j*(95)
+-1 + j*(103)
+50 + j*(145)
+151 + j*(125)
+222 + j*(25)
+218 + j*(-111)
+110 + j*(-235)
+-87 + j*(-225)
+-169 + j*(-39)
+-33 + j*(73)
+58 + j*(-28)
+-32 + j*(-81)
+-56 + j*(-4)
+0 + j*(-13)
+-52 + j*(-40)
+-47 + j*(54)
+88 + j*(6)
+-13 + j*(-171)
+-248 + j*(-30)
+-103 + j*(257)
+195 + j*(141)
+110 + j*(-98)
+-19 + j*(-1)
+159 + j*(16)
+120 + j*(-291)
+-305 + j*(-276)
+-378 + j*(201)
+63 + j*(371)
+286 + j*(28)
+67 + j*(-182)
+-76 + j*(-67)
+-17 + j*(-21)
+-61 + j*(-85)
+-170 + j*(4)
+-101 + j*(160)
+56 + j*(147)
+92 + j*(47)
+78 + j*(16)
+103 + j*(-33)
+47 + j*(-131)
+-84 + j*(-116)
+-113 + j*(-16)
+-83 + j*(1)
+-139 + j*(10)
+-166 + j*(136)
+-43 + j*(240)
+93 + j*(202)
+138 + j*(125)
+150 + j*(73)
+153 + j*(25)
+153 + j*(-23)
+118 + j*(-97)
+-18 + j*(-105)
+-68 + j*(83)
+180 + j*(184)
+353 + j*(-104)
+77 + j*(-334)
+-151 + j*(-103)
+63 + j*(66)
+168 + j*(-168)
+-89 + j*(-233)
+-119 + j*(25)
+132 + j*(16)
+107 + j*(-228)
+-86 + j*(-214)
+-54 + j*(-138)
+-92 + j*(-265)
+-349 + j*(-207)
+-356 + j*(107)
+-93 + j*(160)
+-73 + j*(-28)
+-248 + j*(10)
+-212 + j*(209)
+-37 + j*(228)
+18 + j*(128)
+-33 + j*(85)
+-90 + j*(137)
+-46 + j*(281)
+199 + j*(336)
+417 + j*(77)
+261 + j*(-259)
+-77 + j*(-247)
+-156 + j*(1)
+-24 + j*(88)
+17 + j*(42)
+16 + j*(64)
+92 + j*(48)
+74 + j*(-57)
+-51 + j*(-31)
+-7 + j*(107)
+146 + j*(42)
+68 + j*(-126)
+-114 + j*(-33)
+-16 + j*(158)
+170 + j*(69)
+87 + j*(-78)
+-1 + j*(31)
+176 + j*(82)
+247 + j*(-149)
+19 + j*(-266)
+-98 + j*(-95)
+27 + j*(-35)
+33 + j*(-168)
+-127 + j*(-173)
+-180 + j*(-40)
+-136 + j*(45)
+-74 + j*(109)
+67 + j*(114)
+138 + j*(-57)
+-23 + j*(-173)
+-140 + j*(-45)
+-43 + j*(23)
+-66 + j*(-90)
+-259 + j*(13)
+-144 + j*(330)
+278 + j*(287)
+363 + j*(-161)
+-17 + j*(-372)
+-299 + j*(-127)
+-216 + j*(142)
+-33 + j*(185)
+62 + j*(124)
+99 + j*(53)
+91 + j*(-22)
+33 + j*(-68)
+-33 + j*(-50)
+-51 + j*(11)
+7 + j*(47)
+59 + j*(-15)
+-10 + j*(-90)
+-110 + j*(-23)
+-59 + j*(87)
+34 + j*(46)
+-17 + j*(-21)
+-74 + j*(53)
+9 + j*(121)
+81 + j*(61)
+57 + j*(22)
+82 + j*(31)
+119 + j*(-49)
+18 + j*(-129)
+-86 + j*(-42)
+-18 + j*(55)
+60 + j*(-11)
+-16 + j*(-70)
+-66 + j*(14)
+22 + j*(47)
+23 + j*(-51)
+-113 + j*(-11)
+-48 + j*(196)
+238 + j*(147)
+247 + j*(-192)
+-85 + j*(-257)
+-155 + j*(30)
+103 + j*(41)
+40 + j*(-253)
+-333 + j*(-172)
+-313 + j*(243)
+45 + j*(299)
+109 + j*(74)
+-7 + j*(95)
+122 + j*(183)
+224 + j*(11)
+69 + j*(-73)
+57 + j*(95)
+303 + j*(52)
+310 + j*(-268)
+7 + j*(-387)
+-173 + j*(-211)
+-130 + j*(-76)
+-92 + j*(-74)
+-115 + j*(-60)
+-124 + j*(-13)
+-91 + j*(41)
+-10 + j*(51)
+42 + j*(-41)
+-47 + j*(-139)
+-182 + j*(-78)
+-173 + j*(54)
+-92 + j*(66)
+-122 + j*(40)
+-153 + j*(150)
+-4 + j*(240)
+147 + j*(111)
+57 + j*(-50)
+-78 + j*(25)
+3 + j*(144)
+118 + j*(59)
+32 + j*(-44)
+-53 + j*(49)
+57 + j*(134)
+166 + j*(28)
+100 + j*(-100)
+-23 + j*(-94)
+-69 + j*(-5)
+-24 + j*(75)
+73 + j*(71)
+105 + j*(-28)
+19 + j*(-87)
+-48 + j*(-28)
+-14 + j*(33)
+34 + j*(14)
+28 + j*(-35)
+-40 + j*(-55)
+-118 + j*(28)
+-57 + j*(181)
+138 + j*(190)
+226 + j*(35)
+182 + j*(-69)
+153 + j*(-136)
+42 + j*(-231)
+-151 + j*(-138)
+-90 + j*(93)
+134 + j*(37)
+58 + j*(-165)
+-120 + j*(-41)
+66 + j*(122)
+249 + j*(-115)
+25 + j*(-331)
+-183 + j*(-188)
+-133 + j*(-76)
+-165 + j*(-93)
+-202 + j*(42)
+-27 + j*(93)
+-12 + j*(-100)
+-242 + j*(-66)
+-185 + j*(194)
+54 + j*(130)
+-50 + j*(-53)
+-193 + j*(125)
+37 + j*(274)
+191 + j*(54)
+31 + j*(-66)
+-7 + j*(38)
+71 + j*(-16)
+-44 + j*(-88)
+-101 + j*(44)
+20 + j*(53)
+-57 + j*(-65)
+-210 + j*(97)
+-16 + j*(304)
+215 + j*(141)
+97 + j*(-46)
+-6 + j*(60)
+120 + j*(99)
+136 + j*(-38)
+18 + j*(-38)
+42 + j*(48)
+107 + j*(1)
+57 + j*(-47)
+26 + j*(5)
+81 + j*(33)
+141 + j*(0)
+173 + j*(-95)
+95 + j*(-210)
+-70 + j*(-194)
+-105 + j*(-44)
+3 + j*(1)
+30 + j*(-78)
+-32 + j*(-98)
+-53 + j*(-66)
+-62 + j*(-49)
+-61 + j*(-18)
+-31 + j*(-13)
+-39 + j*(-23)
+-13 + j*(19)
+91 + j*(-51)
+-1 + j*(-260)
+-320 + j*(-216)
+-397 + j*(143)
+-115 + j*(337)
+115 + j*(214)
+139 + j*(40)
+49 + j*(-75)
+-118 + j*(-44)
+-129 + j*(173)
+124 + j*(238)
+250 + j*(3)
+105 + j*(-143)
+11 + j*(-124)
+-68 + j*(-156)
+-247 + j*(-36)
+-146 + j*(260)
+207 + j*(206)
+195 + j*(-151)
+-132 + j*(-167)
+-176 + j*(112)
+36 + j*(192)
+151 + j*(66)
+110 + j*(-78)
+-63 + j*(-106)
+-148 + j*(112)
+112 + j*(264)
+325 + j*(5)
+118 + j*(-218)
+-31 + j*(-66)
+116 + j*(-28)
+83 + j*(-211)
+-91 + j*(-182)
+-86 + j*(-112)
+-183 + j*(-161)
+-344 + j*(81)
+-52 + j*(357)
+272 + j*(78)
+11 + j*(-212)
+-203 + j*(57)
+82 + j*(208)
+194 + j*(-78)
+-54 + j*(-166)
+-121 + j*(7)
+-37 + j*(44)
+-34 + j*(38)
+3 + j*(48)
+-25 + j*(-1)
+-94 + j*(120)
+136 + j*(245)
+339 + j*(-54)
+30 + j*(-305)
+-209 + j*(-25)
+49 + j*(156)
+170 + j*(-87)
+-35 + j*(-169)
+-88 + j*(-43)
+-66 + j*(-39)
+-115 + j*(36)
+23 + j*(114)
+80 + j*(-83)
+-192 + j*(-81)
+-143 + j*(287)
+305 + j*(229)
+269 + j*(-241)
+-158 + j*(-226)
+-134 + j*(123)
+133 + j*(91)
+112 + j*(-100)
+21 + j*(-112)
+-12 + j*(-141)
+-151 + j*(-126)
+-176 + j*(70)
+25 + j*(135)
+128 + j*(-49)
+-12 + j*(-217)
+-269 + j*(-181)
+-410 + j*(129)
+-139 + j*(447)
+255 + j*(280)
+152 + j*(-53)
+-63 + j*(101)
+237 + j*(246)
+395 + j*(-192)
+-105 + j*(-402)
+-348 + j*(83)
+75 + j*(325)
+288 + j*(1)
+97 + j*(-154)
+42 + j*(-95)
+8 + j*(-169)
+-168 + j*(-93)
+-78 + j*(130)
+153 + j*(20)
+26 + j*(-214)
+-209 + j*(-102)
+-149 + j*(105)
+-20 + j*(105)
+6 + j*(71)
+43 + j*(59)
+47 + j*(8)
+25 + j*(18)
+91 + j*(8)
+78 + j*(-132)
+-117 + j*(-150)
+-182 + j*(47)
+-35 + j*(133)
+28 + j*(59)
+6 + j*(62)
+74 + j*(63)
+69 + j*(-37)
+-41 + j*(-14)
+18 + j*(109)
+173 + j*(21)
+81 + j*(-160)
+-103 + j*(-80)
+-34 + j*(78)
+88 + j*(11)
+18 + j*(-66)
+-6 + j*(19)
+110 + j*(-4)
+63 + j*(-157)
+-106 + j*(-113)
+-64 + j*(42)
+68 + j*(-10)
+10 + j*(-130)
+-93 + j*(-92)
+-92 + j*(-38)
+-109 + j*(-23)
+-107 + j*(44)
+-27 + j*(44)
+-62 + j*(-31)
+-153 + j*(49)
+-58 + j*(158)
+23 + j*(69)
+-84 + j*(64)
+-25 + j*(244)
+223 + j*(180)
+191 + j*(-71)
+10 + j*(-33)
+115 + j*(78)
+214 + j*(-107)
+6 + j*(-233)
+-123 + j*(-74)
+-34 + j*(-1)
+-45 + j*(-49)
+-81 + j*(33)
+39 + j*(55)
+24 + j*(-92)
+-163 + j*(-40)
+-100 + j*(196)
+172 + j*(156)
+171 + j*(-119)
+-78 + j*(-161)
+-156 + j*(51)
+6 + j*(148)
+101 + j*(45)
+38 + j*(-13)
+35 + j*(58)
+165 + j*(34)
+175 + j*(-161)
+-36 + j*(-250)
+-189 + j*(-88)
+-101 + j*(69)
+21 + j*(22)
+-23 + j*(-78)
+-138 + j*(-33)
+-126 + j*(103)
+-8 + j*(134)
+12 + j*(66)
+-43 + j*(127)
+112 + j*(260)
+383 + j*(100)
+330 + j*(-258)
+23 + j*(-337)
+-91 + j*(-199)
+-110 + j*(-185)
+-264 + j*(-117)
+-245 + j*(149)
+30 + j*(205)
+112 + j*(-11)
+-33 + j*(-68)
+-39 + j*(21)
+15 + j*(-33)
+-98 + j*(-83)
+-180 + j*(64)
+-58 + j*(203)
+113 + j*(162)
+166 + j*(11)
+74 + j*(-98)
+-35 + j*(-45)
+30 + j*(42)
+125 + j*(-70)
+-13 + j*(-211)
+-194 + j*(-110)
+-166 + j*(54)
+-81 + j*(71)
+-74 + j*(62)
+-68 + j*(71)
+-101 + j*(92)
+-91 + j*(233)
+141 + j*(305)
+310 + j*(66)
+131 + j*(-126)
+1 + j*(6)
+140 + j*(49)
+129 + j*(-116)
+-45 + j*(-67)
+49 + j*(110)
+257 + j*(-18)
+165 + j*(-269)
+-75 + j*(-278)
+-187 + j*(-138)
+-194 + j*(9)
+-90 + j*(130)
+77 + j*(91)
+92 + j*(-62)
+-18 + j*(-95)
+-43 + j*(-37)
+-19 + j*(-49)
+-71 + j*(-74)
+-126 + j*(-21)
+-115 + j*(54)
+-66 + j*(91)
+-29 + j*(91)
+-13 + j*(107)
+62 + j*(142)
+178 + j*(54)
+115 + j*(-120)
+-73 + j*(-76)
+-18 + j*(118)
+209 + j*(47)
+165 + j*(-208)
+-64 + j*(-236)
+-146 + j*(-114)
+-171 + j*(-52)
+-197 + j*(86)
+-19 + j*(215)
+181 + j*(56)
+65 + j*(-170)
+-143 + j*(-106)
+-127 + j*(49)
+-51 + j*(53)
+-61 + j*(43)
+-43 + j*(68)
+-45 + j*(40)
+-124 + j*(97)
+-59 + j*(291)
+234 + j*(317)
+419 + j*(34)
+269 + j*(-258)
+0 + j*(-274)
+-101 + j*(-117)
+-46 + j*(-37)
+-21 + j*(-72)
+-90 + j*(-83)
+-137 + j*(1)
+-93 + j*(83)
+-21 + j*(95)
+9 + j*(76)
+27 + j*(77)
+75 + j*(76)
+117 + j*(24)
+112 + j*(-40)
+88 + j*(-76)
+69 + j*(-136)
+-57 + j*(-201)
+-231 + j*(-71)
+-143 + j*(190)
+165 + j*(153)
+162 + j*(-180)
+-190 + j*(-209)
+-260 + j*(144)
+57 + j*(249)
+159 + j*(-2)
+-35 + j*(-54)
+-25 + j*(131)
+188 + j*(100)
+193 + j*(-130)
+9 + j*(-199)
+-107 + j*(-110)
+-122 + j*(3)
+-39 + j*(104)
+126 + j*(49)
+95 + j*(-164)
+-158 + j*(-164)
+-190 + j*(103)
+61 + j*(153)
+91 + j*(-58)
+-81 + j*(-35)
+20 + j*(119)
+177 + j*(-62)
+-69 + j*(-240)
+-276 + j*(49)
+34 + j*(281)
+285 + j*(-22)
+19 + j*(-272)
+-194 + j*(-66)
+-27 + j*(69)
+28 + j*(-104)
+-188 + j*(-129)
+-248 + j*(105)
+-57 + j*(221)
+81 + j*(108)
+33 + j*(-18)
+-84 + j*(-7)
+-110 + j*(110)
+-21 + j*(176)
+41 + j*(153)
+64 + j*(177)
+202 + j*(193)
+331 + j*(9)
+216 + j*(-207)
+10 + j*(-214)
+-82 + j*(-117)
+-124 + j*(-12)
+-60 + j*(143)
+165 + j*(153)
+257 + j*(-86)
+69 + j*(-237)
+-88 + j*(-146)
+-94 + j*(-47)
+-86 + j*(23)
+16 + j*(106)
+173 + j*(-12)
+57 + j*(-231)
+-211 + j*(-134)
+-149 + j*(158)
+141 + j*(144)
+181 + j*(-113)
+-13 + j*(-198)
+-105 + j*(-86)
+-56 + j*(-25)
+-36 + j*(-57)
+-80 + j*(-63)
+-96 + j*(-18)
+-71 + j*(-6)
+-88 + j*(-24)
+-124 + j*(11)
+-108 + j*(51)
+-127 + j*(59)
+-153 + j*(185)
+56 + j*(325)
+334 + j*(108)
+181 + j*(-267)
+-224 + j*(-204)
+-241 + j*(168)
+48 + j*(234)
+113 + j*(47)
+2 + j*(36)
+62 + j*(136)
+213 + j*(46)
+154 + j*(-175)
+-127 + j*(-190)
+-233 + j*(129)
+107 + j*(342)
+432 + j*(21)
+193 + j*(-389)
+-214 + j*(-258)
+-167 + j*(44)
+-10 + j*(-9)
+-145 + j*(-54)
+-161 + j*(165)
+77 + j*(206)
+124 + j*(30)
+33 + j*(39)
+134 + j*(86)
+187 + j*(-78)
+29 + j*(-138)
+6 + j*(-11)
+123 + j*(-55)
+44 + j*(-189)
+-88 + j*(-116)
+-22 + j*(-35)
+0 + j*(-133)
+-151 + j*(-132)
+-167 + j*(40)
+-13 + j*(62)
+-16 + j*(-68)
+-141 + j*(-30)
+-83 + j*(93)
+20 + j*(7)
+-124 + j*(-78)
+-226 + j*(129)
+3 + j*(272)
+150 + j*(62)
+-44 + j*(-34)
+-73 + j*(190)
+191 + j*(197)
+207 + j*(-57)
+29 + j*(-50)
+119 + j*(46)
+187 + j*(-148)
+-65 + j*(-232)
+-148 + j*(8)
+50 + j*(37)
+-4 + j*(-137)
+-182 + j*(-20)
+-45 + j*(158)
+105 + j*(30)
+-4 + j*(-66)
+-45 + j*(23)
+9 + j*(13)
+-52 + j*(4)
+-19 + j*(126)
+153 + j*(77)
+108 + j*(-109)
+-53 + j*(-69)
+4 + j*(52)
+96 + j*(-33)
+2 + j*(-112)
+-69 + j*(-32)
+-9 + j*(22)
+33 + j*(-21)
+0 + j*(-68)
+-62 + j*(-46)
+-46 + j*(37)
+66 + j*(11)
+30 + j*(-150)
+-177 + j*(-118)
+-157 + j*(100)
+45 + j*(60)
+-61 + j*(-139)
+-303 + j*(23)
+-157 + j*(322)
+144 + j*(255)
+147 + j*(33)
+25 + j*(8)
+7 + j*(61)
+13 + j*(86)
+44 + j*(142)
+145 + j*(150)
+210 + j*(77)
+241 + j*(18)
+287 + j*(-81)
+238 + j*(-244)
+66 + j*(-323)
+-96 + j*(-256)
+-141 + j*(-104)
+-23 + j*(-13)
+90 + j*(-146)
+-77 + j*(-325)
+-341 + j*(-188)
+-293 + j*(81)
+-135 + j*(83)
+-202 + j*(64)
+-162 + j*(275)
+168 + j*(275)
+245 + j*(-84)
+-76 + j*(-218)
+-229 + j*(35)
+-60 + j*(180)
+47 + j*(89)
+11 + j*(42)
+16 + j*(64)
+44 + j*(25)
+-13 + j*(-21)
+-99 + j*(47)
+-55 + j*(198)
+146 + j*(237)
+291 + j*(61)
+218 + j*(-129)
+86 + j*(-161)
+35 + j*(-143)
+-24 + j*(-154)
+-101 + j*(-112)
+-124 + j*(-42)
+-135 + j*(21)
+-102 + j*(127)
+57 + j*(161)
+150 + j*(1)
+18 + j*(-112)
+-95 + j*(-10)
+-21 + j*(100)
+87 + j*(67)
+116 + j*(-28)
+54 + j*(-124)
+-98 + j*(-109)
+-133 + j*(77)
+69 + j*(161)
+203 + j*(-35)
+54 + j*(-216)
+-146 + j*(-167)
+-224 + j*(-10)
+-188 + j*(171)
+14 + j*(291)
+250 + j*(158)
+218 + j*(-100)
+19 + j*(-132)
+-16 + j*(-2)
+76 + j*(18)
+112 + j*(-52)
+95 + j*(-116)
+40 + j*(-169)
+-35 + j*(-170)
+-69 + j*(-151)
+-129 + j*(-165)
+-239 + j*(-93)
+-221 + j*(59)
+-125 + j*(80)
+-156 + j*(69)
+-143 + j*(208)
+67 + j*(241)
+147 + j*(46)
+19 + j*(-22)
+22 + j*(44)
+44 + j*(-50)
+-145 + j*(-43)
+-127 + j*(237)
+229 + j*(223)
+235 + j*(-165)
+-151 + j*(-180)
+-155 + j*(177)
+153 + j*(168)
+124 + j*(-74)
+-42 + j*(-8)
+70 + j*(91)
+132 + j*(-57)
+-16 + j*(-89)
+-14 + j*(28)
+62 + j*(-24)
+-44 + j*(-62)
+-59 + j*(84)
+106 + j*(90)
+103 + j*(-62)
+-1 + j*(-36)
+63 + j*(8)
+52 + j*(-102)
+-98 + j*(-39)
+11 + j*(155)
+250 + j*(24)
+140 + j*(-243)
+-105 + j*(-181)
+-74 + j*(-2)
+33 + j*(-24)
+21 + j*(-81)
+16 + j*(-94)
+-13 + j*(-163)
+-137 + j*(-158)
+-172 + j*(-35)
+-105 + j*(8)
+-95 + j*(-8)
+-82 + j*(9)
+-61 + j*(-47)
+-184 + j*(-91)
+-302 + j*(69)
+-197 + j*(250)
+-46 + j*(255)
+18 + j*(230)
+116 + j*(202)
+153 + j*(69)
+47 + j*(14)
+29 + j*(103)
+125 + j*(91)
+109 + j*(3)
+63 + j*(23)
+106 + j*(21)
+71 + j*(-32)
+40 + j*(49)
+194 + j*(54)
+204 + j*(-183)
+-79 + j*(-221)
+-124 + j*(70)
+163 + j*(100)
+186 + j*(-181)
+-60 + j*(-213)
+-83 + j*(-37)
+16 + j*(-55)
+-47 + j*(-115)
+-82 + j*(-51)
+-53 + j*(-66)
+-161 + j*(-73)
+-185 + j*(126)
+58 + j*(189)
+151 + j*(-55)
+-72 + j*(-164)
+-196 + j*(13)
+-115 + j*(155)
+0 + j*(219)
+228 + j*(195)
+358 + j*(-156)
+-49 + j*(-463)
+-512 + j*(-72)
+-199 + j*(486)
+371 + j*(288)
+278 + j*(-197)
+-54 + j*(-151)
+15 + j*(26)
+78 + j*(-95)
+-64 + j*(-87)
+24 + j*(35)
+124 + j*(-163)
+-172 + j*(-277)
+-321 + j*(49)
+-28 + j*(185)
+27 + j*(-65)
+-226 + j*(-18)
+-119 + j*(266)
+170 + j*(151)
+62 + j*(-108)
+-163 + j*(-12)
+-113 + j*(191)
+39 + j*(240)
+192 + j*(206)
+313 + j*(23)
+193 + j*(-197)
+-11 + j*(-159)
+4 + j*(-62)
+-11 + j*(-136)
+-180 + j*(-67)
+-119 + j*(165)
+107 + j*(136)
+76 + j*(-18)
+13 + j*(76)
+216 + j*(109)
+313 + j*(-185)
+30 + j*(-404)
+-285 + j*(-245)
+-296 + j*(75)
+-49 + j*(220)
+146 + j*(54)
+26 + j*(-124)
+-112 + j*(8)
+83 + j*(111)
+186 + j*(-162)
+-133 + j*(-306)
+-315 + j*(-18)
+-127 + j*(135)
+-94 + j*(33)
+-190 + j*(153)
+16 + j*(314)
+231 + j*(128)
+124 + j*(-67)
+6 + j*(-33)
+-10 + j*(6)
+-33 + j*(81)
+122 + j*(173)
+308 + j*(-51)
+71 + j*(-327)
+-252 + j*(-132)
+-125 + j*(173)
+107 + j*(110)
+95 + j*(-14)
+96 + j*(-24)
+103 + j*(-139)
+-78 + j*(-181)
+-139 + j*(-2)
+4 + j*(33)
+-23 + j*(-80)
+-119 + j*(13)
+23 + j*(93)
+81 + j*(-90)
+-136 + j*(-134)
+-177 + j*(100)
+45 + j*(131)
+47 + j*(-78)
+-180 + j*(-56)
+-181 + j*(211)
+100 + j*(286)
+260 + j*(47)
+89 + j*(-166)
+-144 + j*(-52)
+-66 + j*(201)
+208 + j*(168)
+238 + j*(-100)
+21 + j*(-173)
+-49 + j*(-18)
+68 + j*(19)
+83 + j*(-82)
+11 + j*(-84)
+57 + j*(-57)
+86 + j*(-197)
+-140 + j*(-319)
+-407 + j*(-100)
+-293 + j*(264)
+62 + j*(272)
+123 + j*(-11)
+-105 + j*(-58)
+-134 + j*(163)
+80 + j*(209)
+155 + j*(46)
+71 + j*(-19)
+59 + j*(8)
+74 + j*(-35)
+5 + j*(-65)
+-40 + j*(6)
+34 + j*(63)
+116 + j*(-18)
+32 + j*(-153)
+-170 + j*(-86)
+-151 + j*(177)
+139 + j*(230)
+243 + j*(-25)
+66 + j*(-116)
+74 + j*(6)
+221 + j*(-123)
+40 + j*(-356)
+-243 + j*(-229)
+-197 + j*(-8)
+-124 + j*(-42)
+-238 + j*(3)
+-178 + j*(206)
+31 + j*(197)
+49 + j*(81)
+47 + j*(99)
+131 + j*(35)
+40 + j*(-76)
+-39 + j*(45)
+158 + j*(82)
+191 + j*(-202)
+-130 + j*(-276)
+-243 + j*(3)
+-60 + j*(94)
+-45 + j*(-2)
+-97 + j*(67)
+23 + j*(94)
+18 + j*(-47)
+-141 + j*(-11)
+-109 + j*(154)
+14 + j*(155)
+25 + j*(129)
+100 + j*(160)
+185 + j*(37)
+62 + j*(-59)
+3 + j*(79)
+188 + j*(106)
+227 + j*(-115)
+23 + j*(-181)
+-41 + j*(-38)
+45 + j*(1)
+62 + j*(-45)
+61 + j*(-53)
+73 + j*(-99)
+13 + j*(-140)
+-21 + j*(-116)
+-33 + j*(-151)
+-171 + j*(-154)
+-229 + j*(52)
+-4 + j*(153)
+103 + j*(-88)
+-177 + j*(-197)
+-326 + j*(118)
+-32 + j*(326)
+197 + j*(108)
+51 + j*(-71)
+-46 + j*(61)
+132 + j*(113)
+211 + j*(-117)
+-11 + j*(-269)
+-214 + j*(-139)
+-204 + j*(35)
+-146 + j*(99)
+-97 + j*(165)
+25 + j*(192)
+98 + j*(83)
+19 + j*(37)
+25 + j*(147)
+209 + j*(139)
+269 + j*(-86)
+95 + j*(-238)
+-99 + j*(-180)
+-173 + j*(-10)
+-62 + j*(173)
+209 + j*(134)
+254 + j*(-197)
+-91 + j*(-333)
+-283 + j*(-34)
+-62 + j*(144)
+40 + j*(-25)
+-119 + j*(-35)
+-71 + j*(138)
+100 + j*(65)
+6 + j*(-73)
+-84 + j*(53)
+74 + j*(112)
+125 + j*(-59)
+-14 + j*(-108)
+-41 + j*(-36)
+-42 + j*(-70)
+-158 + j*(-33)
+-133 + j*(139)
+28 + j*(144)
+23 + j*(42)
+-23 + j*(112)
+120 + j*(163)
+221 + j*(-5)
+98 + j*(-145)
+-37 + j*(-106)
+-77 + j*(-18)
+-59 + j*(86)
+88 + j*(149)
+236 + j*(-10)
+112 + j*(-234)
+-153 + j*(-170)
+-163 + j*(105)
+103 + j*(191)
+279 + j*(-30)
+151 + j*(-290)
+-133 + j*(-298)
+-257 + j*(-75)
+-139 + j*(90)
+-11 + j*(49)
+-37 + j*(-28)
+-92 + j*(16)
+-48 + j*(84)
+35 + j*(72)
+73 + j*(-1)
+42 + j*(-86)
+-60 + j*(-117)
+-154 + j*(-37)
+-120 + j*(92)
+1 + j*(97)
+3 + j*(-5)
+-102 + j*(25)
+-38 + j*(170)
+160 + j*(95)
+95 + j*(-149)
+-180 + j*(-106)
+-170 + j*(175)
+74 + j*(199)
+105 + j*(33)
+28 + j*(47)
+117 + j*(69)
+129 + j*(-82)
+-30 + j*(-98)
+-29 + j*(21)
+37 + j*(-44)
+-129 + j*(-81)
+-194 + j*(180)
+102 + j*(317)
+298 + j*(81)
+173 + j*(-95)
+102 + j*(-45)
+161 + j*(-87)
+81 + j*(-207)
+-82 + j*(-163)
+-88 + j*(-7)
+56 + j*(30)
+127 + j*(-134)
+-72 + j*(-274)
+-305 + j*(-72)
+-132 + j*(230)
+192 + j*(95)
+82 + j*(-211)
+-176 + j*(-114)
+-77 + j*(59)
+-11 + j*(-83)
+-235 + j*(-65)
+-198 + j*(243)
+132 + j*(240)
+163 + j*(-30)
+12 + j*(-59)
+31 + j*(-41)
+-71 + j*(-137)
+-261 + j*(53)
+-30 + j*(332)
+298 + j*(107)
+107 + j*(-206)
+-142 + j*(-31)
+54 + j*(141)
+179 + j*(-92)
+-74 + j*(-200)
+-170 + j*(34)
+23 + j*(98)
+40 + j*(-74)
+-140 + j*(-59)
+-141 + j*(135)
+32 + j*(186)
+118 + j*(77)
+79 + j*(4)
+48 + j*(21)
+94 + j*(35)
+141 + j*(-46)
+68 + j*(-148)
+-57 + j*(-112)
+-39 + j*(-5)
+47 + j*(-55)
+-49 + j*(-160)
+-205 + j*(-52)
+-132 + j*(129)
+9 + j*(98)
+-30 + j*(44)
+-6 + j*(156)
+211 + j*(107)
+202 + j*(-187)
+-104 + j*(-248)
+-214 + j*(-8)
+-91 + j*(83)
+-95 + j*(62)
+-86 + j*(191)
+116 + j*(219)
+183 + j*(42)
+83 + j*(14)
+173 + j*(68)
+264 + j*(-135)
+28 + j*(-305)
+-180 + j*(-119)
+-67 + j*(59)
+47 + j*(-4)
+14 + j*(-62)
+-4 + j*(-70)
+-54 + j*(-95)
+-126 + j*(-25)
+-64 + j*(67)
+6 + j*(30)
+-21 + j*(11)
+15 + j*(41)
+45 + j*(-38)
+-64 + j*(-52)
+-44 + j*(86)
+132 + j*(28)
+57 + j*(-187)
+-176 + j*(-132)
+-165 + j*(63)
+-75 + j*(78)
+-80 + j*(124)
+78 + j*(195)
+228 + j*(-22)
+-4 + j*(-223)
+-209 + j*(0)
+10 + j*(181)
+164 + j*(-49)
+-78 + j*(-202)
+-262 + j*(8)
+-151 + j*(211)
+1 + j*(238)
+120 + j*(220)
+247 + j*(115)
+237 + j*(-69)
+106 + j*(-139)
+52 + j*(-100)
+54 + j*(-134)
+-59 + j*(-187)
+-202 + j*(-62)
+-113 + j*(153)
+134 + j*(106)
+117 + j*(-168)
+-192 + j*(-185)
+-261 + j*(141)
+46 + j*(265)
+199 + j*(12)
+1 + j*(-146)
+-157 + j*(-1)
+-92 + j*(164)
+56 + j*(206)
+194 + j*(130)
+205 + j*(-42)
+58 + j*(-83)
+63 + j*(59)
+267 + j*(-2)
+223 + j*(-295)
+-92 + j*(-331)
+-177 + j*(-91)
+-37 + j*(-39)
+-65 + j*(-134)
+-171 + j*(-64)
+-117 + j*(47)
+-39 + j*(30)
+-30 + j*(-4)
+-33 + j*(-50)
+-153 + j*(-89)
+-280 + j*(112)
+-45 + j*(370)
+330 + j*(176)
+233 + j*(-250)
+-165 + j*(-257)
+-235 + j*(44)
+-67 + j*(118)
+-48 + j*(67)
+-37 + j*(130)
+82 + j*(110)
+69 + j*(-7)
+-2 + j*(18)
+66 + j*(23)
+4 + j*(-115)
+-230 + j*(-1)
+-110 + j*(342)
+310 + j*(286)
+354 + j*(-125)
+48 + j*(-234)
+-42 + j*(-73)
+11 + j*(-70)
+-78 + j*(-76)
+-73 + j*(71)
+103 + j*(57)
+84 + j*(-134)
+-106 + j*(-129)
+-124 + j*(27)
+-36 + j*(40)
+-80 + j*(10)
+-114 + j*(134)
+54 + j*(240)
+247 + j*(107)
+209 + j*(-124)
+13 + j*(-175)
+-80 + j*(-55)
+-42 + j*(37)
+24 + j*(83)
+164 + j*(77)
+269 + j*(-146)
+24 + j*(-402)
+-358 + j*(-215)
+-275 + j*(216)
+124 + j*(223)
+179 + j*(-100)
+-56 + j*(-172)
+-129 + j*(-26)
+-68 + j*(35)
+-28 + j*(37)
+10 + j*(16)
+-11 + j*(-30)
+-37 + j*(6)
+37 + j*(-8)
+-33 + j*(-153)
+-266 + j*(-46)
+-162 + j*(266)
+182 + j*(187)
+122 + j*(-136)
+-151 + j*(-84)
+-108 + j*(118)
+-5 + j*(82)
+-60 + j*(91)
+23 + j*(199)
+167 + j*(116)
+136 + j*(15)
+152 + j*(13)
+181 + j*(-128)
+-24 + j*(-211)
+-124 + j*(-5)
+68 + j*(65)
+100 + j*(-121)
+-51 + j*(-142)
+-59 + j*(-98)
+-165 + j*(-158)
+-366 + j*(54)
+-148 + j*(388)
+223 + j*(250)
+158 + j*(-40)
+1 + j*(21)
+99 + j*(75)
+97 + j*(-37)
+21 + j*(12)
+141 + j*(35)
+142 + j*(-153)
+-66 + j*(-161)
+-83 + j*(11)
+17 + j*(23)
+25 + j*(18)
+141 + j*(21)
+177 + j*(-226)
+-158 + j*(-329)
+-309 + j*(18)
+6 + j*(153)
+71 + j*(-148)
+-248 + j*(-166)
+-279 + j*(146)
+-52 + j*(199)
+-49 + j*(99)
+-93 + j*(208)
+93 + j*(319)
+321 + j*(184)
+340 + j*(-88)
+131 + j*(-234)
+-27 + j*(-103)
+121 + j*(-9)
+181 + j*(-267)
+-188 + j*(-376)
+-365 + j*(25)
+10 + j*(214)
+159 + j*(-136)
+-173 + j*(-258)
+-288 + j*(6)
+-164 + j*(73)
+-237 + j*(85)
+-181 + j*(339)
+178 + j*(332)
+226 + j*(-12)
+-47 + j*(-44)
+-12 + j*(185)
+211 + j*(103)
+128 + j*(-105)
+-33 + j*(-25)
+66 + j*(81)
+156 + j*(-54)
+0 + j*(-157)
+-127 + j*(-10)
+-4 + j*(132)
+139 + j*(40)
+79 + j*(-74)
+23 + j*(-24)
+107 + j*(-37)
+53 + j*(-196)
+-178 + j*(-147)
+-179 + j*(122)
+74 + j*(182)
+185 + j*(-1)
+119 + j*(-127)
+28 + j*(-185)
+-113 + j*(-173)
+-170 + j*(-17)
+-35 + j*(49)
+-16 + j*(-71)
+-151 + j*(-37)
+-85 + j*(115)
+68 + j*(21)
+-51 + j*(-130)
+-218 + j*(-13)
+-162 + j*(153)
+-63 + j*(190)
+18 + j*(219)
+161 + j*(182)
+217 + j*(19)
+130 + j*(-104)
+2 + j*(-137)
+-141 + j*(-49)
+-119 + j*(186)
+168 + j*(240)
+290 + j*(-35)
+86 + j*(-157)
+57 + j*(-26)
+190 + j*(-136)
+-6 + j*(-339)
+-279 + j*(-161)
+-187 + j*(89)
+-35 + j*(71)
+-34 + j*(38)
+9 + j*(36)
+-21 + j*(-38)
+-119 + j*(59)
+58 + j*(194)
+231 + j*(-33)
+-16 + j*(-212)
+-141 + j*(44)
+158 + j*(81)
+125 + j*(-313)
+-374 + j*(-289)
+-446 + j*(250)
+17 + j*(442)
+265 + j*(146)
+147 + j*(-57)
+49 + j*(-35)
+74 + j*(-35)
+49 + j*(-120)
+-98 + j*(-146)
+-208 + j*(21)
+-69 + j*(197)
+124 + j*(98)
+37 + j*(-71)
+-103 + j*(37)
+32 + j*(169)
+162 + j*(35)
+54 + j*(-69)
+-1 + j*(23)
+96 + j*(36)
+104 + j*(-56)
+58 + j*(-69)
+78 + j*(-97)
+1 + j*(-203)
+-190 + j*(-150)
+-219 + j*(67)
+-55 + j*(164)
+41 + j*(95)
+35 + j*(70)
+101 + j*(92)
+202 + j*(-23)
+112 + j*(-209)
+-103 + j*(-188)
+-135 + j*(-6)
+-16 + j*(25)
+-25 + j*(-49)
+-83 + j*(2)
+-8 + j*(53)
+23 + j*(-26)
+-57 + j*(-25)
+-11 + j*(57)
+82 + j*(-37)
+-43 + j*(-152)
+-170 + j*(-37)
+-93 + j*(54)
+-96 + j*(-8)
+-214 + j*(91)
+-90 + j*(313)
+190 + j*(255)
+225 + j*(22)
+115 + j*(-39)
+119 + j*(-33)
+105 + j*(-135)
+-41 + j*(-175)
+-135 + j*(-68)
+-116 + j*(19)
+-103 + j*(53)
+-94 + j*(129)
+4 + j*(206)
+153 + j*(180)
+245 + j*(44)
+206 + j*(-132)
+28 + j*(-211)
+-133 + j*(-80)
+-57 + j*(109)
+135 + j*(76)
+141 + j*(-91)
+40 + j*(-116)
+51 + j*(-105)
+4 + j*(-216)
+-210 + j*(-176)
+-216 + j*(76)
+6 + j*(90)
+-40 + j*(-96)
+-239 + j*(27)
+-95 + j*(268)
+145 + j*(173)
+111 + j*(28)
+119 + j*(60)
+221 + j*(-74)
+40 + j*(-259)
+-171 + j*(-100)
+-47 + j*(68)
+50 + j*(-38)
+-37 + j*(-72)
+-7 + j*(-37)
+-42 + j*(-154)
+-260 + j*(-73)
+-182 + j*(211)
+93 + j*(139)
+1 + j*(-67)
+-121 + j*(69)
+54 + j*(108)
+-10 + j*(-86)
+-221 + j*(101)
+77 + j*(344)
+349 + j*(-26)
+-51 + j*(-301)
+-306 + j*(91)
+35 + j*(310)
+177 + j*(62)
+26 + j*(54)
+174 + j*(157)
+295 + j*(-98)
+20 + j*(-240)
+-98 + j*(-3)
+103 + j*(49)
+100 + j*(-137)
+-69 + j*(-115)
+-49 + j*(13)
+22 + j*(-11)
+-23 + j*(-35)
+-29 + j*(40)
+65 + j*(64)
+139 + j*(-15)
+112 + j*(-129)
+4 + j*(-163)
+-49 + j*(-100)
+-20 + j*(-83)
+-41 + j*(-118)
+-83 + j*(-96)
+-82 + j*(-107)
+-192 + j*(-139)
+-315 + j*(43)
+-140 + j*(250)
+73 + j*(127)
+-40 + j*(-17)
+-107 + j*(146)
+124 + j*(192)
+196 + j*(-69)
+-19 + j*(-176)
+-128 + j*(-65)
+-133 + j*(-17)
+-197 + j*(58)
+-139 + j*(213)
+13 + j*(219)
+35 + j*(163)
+75 + j*(223)
+249 + j*(183)
+296 + j*(-32)
+154 + j*(-146)
+62 + j*(-116)
+40 + j*(-108)
+-14 + j*(-113)
+-75 + j*(-64)
+-81 + j*(28)
+11 + j*(87)
+102 + j*(11)
+26 + j*(-83)
+-47 + j*(13)
+97 + j*(66)
+144 + j*(-139)
+-105 + j*(-196)
+-170 + j*(65)
+74 + j*(124)
+102 + j*(-91)
+-80 + j*(-80)
+-29 + j*(71)
+97 + j*(2)
+42 + j*(-81)
+35 + j*(-62)
+48 + j*(-177)
+-178 + j*(-238)
+-325 + j*(26)
+-100 + j*(229)
+79 + j*(75)
+-45 + j*(-35)
+-101 + j*(106)
+62 + j*(166)
+164 + j*(25)
+97 + j*(-110)
+-28 + j*(-144)
+-144 + j*(-75)
+-161 + j*(84)
+-7 + j*(173)
+120 + j*(52)
+18 + j*(-78)
+-114 + j*(42)
+45 + j*(204)
+273 + j*(22)
+107 + j*(-272)
+-217 + j*(-142)
+-112 + j*(176)
+195 + j*(71)
+88 + j*(-234)
+-211 + j*(-156)
+-177 + j*(99)
+-6 + j*(92)
+-29 + j*(5)
+-69 + j*(59)
+-11 + j*(93)
+20 + j*(63)
+31 + j*(49)
+30 + j*(6)
+-49 + j*(11)
+-37 + j*(144)
+149 + j*(153)
+198 + j*(-51)
+23 + j*(-128)
+-43 + j*(4)
+64 + j*(35)
+70 + j*(-76)
+-52 + j*(-81)
+-86 + j*(45)
+15 + j*(118)
+117 + j*(75)
+143 + j*(-13)
+119 + j*(-71)
+87 + j*(-121)
+4 + j*(-158)
+-98 + j*(-84)
+-44 + j*(57)
+132 + j*(25)
+141 + j*(-175)
+-33 + j*(-253)
+-145 + j*(-178)
+-187 + j*(-118)
+-250 + j*(-28)
+-211 + j*(132)
+-40 + j*(179)
+53 + j*(59)
+-20 + j*(-36)
+-122 + j*(10)
+-110 + j*(148)
+61 + j*(212)
+224 + j*(52)
+129 + j*(-190)
+-135 + j*(-187)
+-214 + j*(35)
+-81 + j*(148)
+1 + j*(98)
+-6 + j*(98)
+69 + j*(136)
+181 + j*(28)
+91 + j*(-155)
+-130 + j*(-107)
+-113 + j*(127)
+132 + j*(112)
+103 + j*(-163)
+-225 + j*(-134)
+-235 + j*(238)
+124 + j*(314)
+231 + j*(42)
+78 + j*(-9)
+156 + j*(80)
+275 + j*(-119)
+40 + j*(-315)
+-192 + j*(-129)
+-70 + j*(52)
+16 + j*(-64)
+-165 + j*(-95)
+-232 + j*(161)
+25 + j*(338)
+308 + j*(185)
+317 + j*(-112)
+103 + j*(-245)
+-50 + j*(-148)
+-11 + j*(-56)
+17 + j*(-116)
+-97 + j*(-125)
+-129 + j*(23)
+25 + j*(85)
+115 + j*(-62)
+-6 + j*(-184)
+-159 + j*(-110)
+-139 + j*(45)
+-1 + j*(64)
+28 + j*(-65)
+-100 + j*(-98)
+-138 + j*(18)
+-51 + j*(27)
+-122 + j*(-42)
+-230 + j*(123)
+-16 + j*(313)
+245 + j*(122)
+118 + j*(-151)
+-115 + j*(-88)
+-102 + j*(78)
+-15 + j*(105)
+45 + j*(103)
+127 + j*(21)
+37 + j*(-133)
+-170 + j*(-50)
+-119 + j*(180)
+85 + j*(175)
+108 + j*(61)
+115 + j*(46)
+151 + j*(-66)
+-31 + j*(-154)
+-152 + j*(68)
+88 + j*(200)
+204 + j*(-35)
+-8 + j*(-97)
+10 + j*(114)
+246 + j*(33)
+162 + j*(-222)
+-52 + j*(-168)
+-8 + j*(-47)
+22 + j*(-113)
+-56 + j*(-87)
+23 + j*(-35)
+49 + j*(-194)
+-185 + j*(-232)
+-262 + j*(21)
+-47 + j*(101)
+8 + j*(-89)
+-191 + j*(-145)
+-322 + j*(28)
+-266 + j*(245)
+-43 + j*(359)
+177 + j*(213)
+93 + j*(-14)
+-114 + j*(91)
+46 + j*(342)
+381 + j*(202)
+356 + j*(-164)
+76 + j*(-260)
+-67 + j*(-126)
+-42 + j*(-6)
+54 + j*(9)
+84 + j*(-112)
+-93 + j*(-175)
+-216 + j*(41)
+-4 + j*(220)
+187 + j*(48)
+62 + j*(-99)
+-8 + j*(18)
+151 + j*(32)
+170 + j*(-167)
+1 + j*(-237)
+-81 + j*(-171)
+-116 + j*(-170)
+-235 + j*(-134)
+-296 + j*(37)
+-192 + j*(194)
+-21 + j*(214)
+74 + j*(98)
+-1 + j*(-1)
+-93 + j*(92)
+38 + j*(225)
+244 + j*(106)
+206 + j*(-135)
+13 + j*(-202)
+-122 + j*(-124)
+-175 + j*(12)
+-77 + j*(171)
+138 + j*(122)
+132 + j*(-113)
+-93 + j*(-131)
+-113 + j*(52)
+14 + j*(35)
+-81 + j*(-54)
+-184 + j*(119)
+7 + j*(270)
+177 + j*(148)
+148 + j*(47)
+192 + j*(47)
+250 + j*(-116)
+63 + j*(-264)
+-123 + j*(-127)
+-39 + j*(22)
+52 + j*(-51)
+-25 + j*(-103)
+-47 + j*(-40)
+-6 + j*(-68)
+-97 + j*(-120)
+-204 + j*(-2)
+-122 + j*(153)
+33 + j*(144)
+76 + j*(43)
+42 + j*(-7)
+21 + j*(-5)
+32 + j*(-12)
+24 + j*(-70)
+-91 + j*(-107)
+-226 + j*(40)
+-106 + j*(296)
+238 + j*(284)
+373 + j*(-71)
+105 + j*(-325)
+-190 + j*(-192)
+-182 + j*(65)
+-12 + j*(129)
+65 + j*(48)
+39 + j*(-4)
+18 + j*(13)
+54 + j*(33)
+107 + j*(-6)
+110 + j*(-91)
+38 + j*(-165)
+-86 + j*(-168)
+-182 + j*(-47)
+-103 + j*(130)
+128 + j*(115)
+190 + j*(-144)
+-47 + j*(-298)
+-258 + j*(-156)
+-246 + j*(28)
+-178 + j*(105)
+-101 + j*(175)
+53 + j*(149)
+76 + j*(-33)
+-113 + j*(-80)
+-179 + j*(104)
+-24 + j*(184)
+38 + j*(68)
+-64 + j*(44)
+-83 + j*(166)
+38 + j*(235)
+155 + j*(177)
+173 + j*(84)
+158 + j*(74)
+257 + j*(64)
+337 + j*(-165)
+70 + j*(-406)
+-300 + j*(-202)
+-197 + j*(201)
+158 + j*(170)
+151 + j*(-98)
+-24 + j*(-82)
+13 + j*(11)
+29 + j*(-41)
+-23 + j*(28)
+142 + j*(89)
+243 + j*(-152)
+-11 + j*(-301)
+-160 + j*(-95)
+-9 + j*(-13)
+-18 + j*(-156)
+-180 + j*(-100)
+-137 + j*(49)
+-59 + j*(32)
+-93 + j*(57)
+9 + j*(139)
+139 + j*(30)
+85 + j*(-95)
+49 + j*(-113)
+-1 + j*(-236)
+-292 + j*(-232)
+-390 + j*(163)
+18 + j*(347)
+232 + j*(-16)
+-69 + j*(-199)
+-178 + j*(31)
+-9 + j*(29)
+-153 + j*(-123)
+-350 + j*(132)
+-78 + j*(395)
+177 + j*(175)
+-3 + j*(17)
+-54 + j*(233)
+233 + j*(250)
+274 + j*(-47)
+47 + j*(-99)
+62 + j*(39)
+161 + j*(-92)
+-80 + j*(-226)
+-301 + j*(77)
+-18 + j*(404)
+385 + j*(230)
+369 + j*(-156)
+106 + j*(-264)
+-22 + j*(-159)
+-18 + j*(-98)
+-25 + j*(-91)
+-62 + j*(-67)
+-71 + j*(3)
+14 + j*(64)
+128 + j*(-19)
+71 + j*(-185)
+-119 + j*(-175)
+-159 + j*(-13)
+-60 + j*(39)
+-55 + j*(-1)
+-75 + j*(60)
+33 + j*(105)
+115 + j*(1)
+66 + j*(-100)
+3 + j*(-122)
+-59 + j*(-150)
+-186 + j*(-126)
+-264 + j*(36)
+-168 + j*(209)
+22 + j*(231)
+126 + j*(107)
+83 + j*(4)
+36 + j*(27)
+107 + j*(28)
+112 + j*(-110)
+-60 + j*(-147)
+-120 + j*(21)
+26 + j*(76)
+58 + j*(-45)
+-23 + j*(-40)
+44 + j*(-8)
+48 + j*(-170)
+-195 + j*(-199)
+-287 + j*(54)
+-105 + j*(174)
+-40 + j*(91)
+-74 + j*(122)
+21 + j*(158)
+40 + j*(59)
+-60 + j*(115)
+76 + j*(275)
+334 + j*(137)
+289 + j*(-160)
+68 + j*(-228)
+-31 + j*(-156)
+-88 + j*(-124)
+-161 + j*(-33)
+-124 + j*(107)
+8 + j*(153)
+107 + j*(76)
+85 + j*(-28)
+-11 + j*(-13)
+36 + j*(100)
+209 + j*(28)
+150 + j*(-202)
+-91 + j*(-184)
+-93 + j*(16)
+47 + j*(-1)
+-6 + j*(-98)
+-74 + j*(-21)
+4 + j*(15)
+9 + j*(-45)
+-18 + j*(-18)
+45 + j*(-42)
+-28 + j*(-154)
+-188 + j*(-57)
+-95 + j*(119)
+54 + j*(37)
+-26 + j*(-59)
+-64 + j*(36)
+48 + j*(21)
+4 + j*(-108)
+-123 + j*(-68)
+-115 + j*(13)
+-122 + j*(18)
+-150 + j*(101)
+-64 + j*(182)
+11 + j*(168)
+74 + j*(197)
+255 + j*(128)
+258 + j*(-156)
+-20 + j*(-245)
+-132 + j*(-64)
+-83 + j*(-25)
+-188 + j*(30)
+-97 + j*(302)
+292 + j*(246)
+298 + j*(-159)
+-21 + j*(-179)
+32 + j*(19)
+153 + j*(-161)
+-119 + j*(-269)
+-227 + j*(11)
+1 + j*(71)
+-40 + j*(-97)
+-175 + j*(52)
+53 + j*(170)
+153 + j*(-105)
+-145 + j*(-195)
+-250 + j*(85)
+-49 + j*(207)
+48 + j*(129)
+20 + j*(-16)
+-153 + j*(39)
+-67 + j*(248)
+168 + j*(204)
+190 + j*(6)
+79 + j*(-42)
+55 + j*(11)
+116 + j*(11)
+151 + j*(-91)
+37 + j*(-217)
+-189 + j*(-141)
+-180 + j*(150)
+139 + j*(216)
+272 + j*(-98)
+0 + j*(-273)
+-162 + j*(-72)
+-13 + j*(18)
+-18 + j*(-144)
+-253 + j*(-80)
+-201 + j*(224)
+119 + j*(223)
+158 + j*(-62)
+-76 + j*(-111)
+-123 + j*(72)
+-8 + j*(115)
+5 + j*(85)
+42 + j*(146)
+187 + j*(103)
+190 + j*(-75)
+51 + j*(-117)
+18 + j*(-45)
+43 + j*(-53)
+4 + j*(-48)
+48 + j*(8)
+132 + j*(-81)
+28 + j*(-197)
+-75 + j*(-110)
+22 + j*(-79)
+-21 + j*(-257)
+-312 + j*(-221)
+-363 + j*(127)
+-65 + j*(267)
+102 + j*(74)
+8 + j*(-53)
+-57 + j*(-21)
+-49 + j*(-23)
+-98 + j*(-45)
+-168 + j*(1)
+-192 + j*(103)
+-134 + j*(218)
+10 + j*(260)
+124 + j*(185)
+151 + j*(85)
+132 + j*(1)
+42 + j*(-52)
+-50 + j*(34)
+49 + j*(156)
+209 + j*(53)
+132 + j*(-117)
+2 + j*(-72)
+53 + j*(-21)
+35 + j*(-124)
+-127 + j*(-79)
+-94 + j*(112)
+71 + j*(101)
+65 + j*(6)
+58 + j*(45)
+162 + j*(-21)
+55 + j*(-196)
+-175 + j*(-70)
+-47 + j*(199)
+252 + j*(92)
+190 + j*(-209)
+-69 + j*(-199)
+-71 + j*(-8)
+73 + j*(-34)
+11 + j*(-181)
+-168 + j*(-110)
+-112 + j*(105)
+133 + j*(71)
+139 + j*(-204)
+-138 + j*(-275)
+-276 + j*(-60)
+-179 + j*(93)
+-94 + j*(119)
+18 + j*(148)
+162 + j*(6)
+26 + j*(-228)
+-247 + j*(-132)
+-196 + j*(110)
+-56 + j*(52)
+-201 + j*(25)
+-186 + j*(303)
+185 + j*(322)
+255 + j*(-55)
+-76 + j*(-139)
+-141 + j*(135)
+88 + j*(190)
+140 + j*(19)
+35 + j*(-28)
+-6 + j*(30)
+34 + j*(95)
+163 + j*(86)
+219 + j*(-117)
+-15 + j*(-264)
+-230 + j*(-56)
+-86 + j*(169)
+83 + j*(84)
+21 + j*(7)
+28 + j*(96)
+162 + j*(54)
+146 + j*(-94)
+45 + j*(-119)
+13 + j*(-106)
+-49 + j*(-112)
+-103 + j*(-21)
+-24 + j*(58)
+58 + j*(6)
+44 + j*(-64)
+-5 + j*(-103)
+-108 + j*(-93)
+-155 + j*(63)
+35 + j*(171)
+190 + j*(-23)
+7 + j*(-206)
+-175 + j*(-45)
+-35 + j*(121)
+113 + j*(-3)
+18 + j*(-146)
+-119 + j*(-103)
+-148 + j*(11)
+-88 + j*(97)
+18 + j*(88)
+26 + j*(-2)
+-47 + j*(23)
+50 + j*(112)
+197 + j*(-47)
+23 + j*(-272)
+-256 + j*(-141)
+-197 + j*(119)
+-28 + j*(103)
+-75 + j*(49)
+-61 + j*(182)
+146 + j*(168)
+159 + j*(-66)
+-41 + j*(-97)
+-52 + j*(81)
+131 + j*(78)
+152 + j*(-101)
+-6 + j*(-171)
+-116 + j*(-80)
+-110 + j*(36)
+-23 + j*(101)
+86 + j*(69)
+116 + j*(-40)
+59 + j*(-113)
+-4 + j*(-137)
+-81 + j*(-152)
+-188 + j*(-98)
+-225 + j*(40)
+-157 + j*(156)
+-58 + j*(203)
+49 + j*(203)
+142 + j*(134)
+159 + j*(27)
+109 + j*(-42)
+33 + j*(-64)
+-49 + j*(4)
+13 + j*(147)
+227 + j*(116)
+262 + j*(-137)
+35 + j*(-221)
+-35 + j*(-57)
+105 + j*(-54)
+57 + j*(-218)
+-124 + j*(-179)
+-112 + j*(-45)
+-62 + j*(-72)
+-150 + j*(-71)
+-165 + j*(53)
+-93 + j*(107)
+-51 + j*(159)
+119 + j*(214)
+309 + j*(1)
+148 + j*(-280)
+-118 + j*(-215)
+-103 + j*(-68)
+-106 + j*(-115)
+-245 + j*(-18)
+-124 + j*(192)
+93 + j*(70)
+-49 + j*(-119)
+-227 + j*(47)
+-80 + j*(221)
+50 + j*(139)
+16 + j*(105)
+64 + j*(148)
+132 + j*(102)
+154 + j*(76)
+253 + j*(1)
+211 + j*(-228)
+-62 + j*(-268)
+-141 + j*(-52)
+-21 + j*(-23)
+-99 + j*(-81)
+-146 + j*(102)
+98 + j*(163)
+176 + j*(-89)
+-30 + j*(-168)
+-74 + j*(-58)
+-72 + j*(-105)
+-255 + j*(-44)
+-206 + j*(249)
+106 + j*(258)
+140 + j*(19)
+6 + j*(35)
+111 + j*(107)
+173 + j*(-62)
+7 + j*(-121)
+-20 + j*(1)
+59 + j*(-44)
+-64 + j*(-100)
+-124 + j*(90)
+105 + j*(177)
+235 + j*(-37)
+90 + j*(-192)
+-28 + j*(-144)
+-42 + j*(-128)
+-148 + j*(-137)
+-256 + j*(38)
+-103 + j*(261)
+194 + j*(200)
+233 + j*(-95)
+-8 + j*(-198)
+-115 + j*(-16)
+40 + j*(62)
+106 + j*(-97)
+-47 + j*(-189)
+-173 + j*(-98)
+-190 + j*(20)
+-149 + j*(123)
+-37 + j*(182)
+63 + j*(129)
+74 + j*(73)
+105 + j*(53)
+122 + j*(-39)
+19 + j*(-87)
+-16 + j*(11)
+98 + j*(8)
+78 + j*(-145)
+-92 + j*(-151)
+-136 + j*(-19)
+-94 + j*(37)
+-70 + j*(81)
+18 + j*(103)
+47 + j*(9)
+-56 + j*(27)
+33 + j*(182)
+274 + j*(57)
+168 + j*(-253)
+-151 + j*(-201)
+-143 + j*(74)
+79 + j*(80)
+96 + j*(-104)
+-49 + j*(-161)
+-158 + j*(-77)
+-153 + j*(47)
+-65 + j*(85)
+-58 + j*(42)
+-104 + j*(119)
+37 + j*(215)
+175 + j*(63)
+37 + j*(-49)
+5 + j*(101)
+208 + j*(50)
+102 + j*(-205)
+-168 + j*(-50)
+47 + j*(210)
+306 + j*(-73)
+-16 + j*(-332)
+-255 + j*(-18)
+41 + j*(160)
+139 + j*(-130)
+-158 + j*(-171)
+-180 + j*(115)
+55 + j*(134)
+56 + j*(-25)
+-40 + j*(18)
+54 + j*(101)
+173 + j*(-6)
+116 + j*(-182)
+-86 + j*(-226)
+-232 + j*(-57)
+-132 + j*(143)
+54 + j*(100)
+23 + j*(-40)
+-83 + j*(20)
+1 + j*(123)
+117 + j*(54)
+103 + j*(-50)
+57 + j*(-96)
+-11 + j*(-141)
+-128 + j*(-109)
+-163 + j*(13)
+-107 + j*(88)
+-53 + j*(115)
+16 + j*(123)
+62 + j*(72)
+40 + j*(47)
+73 + j*(71)
+129 + j*(-10)
+32 + j*(-91)
+-40 + j*(18)
+92 + j*(69)
+134 + j*(-86)
+-20 + j*(-116)
+-22 + j*(19)
+113 + j*(-21)
+64 + j*(-169)
+-74 + j*(-158)
+-113 + j*(-92)
+-147 + j*(-40)
+-122 + j*(71)
+29 + j*(62)
+12 + j*(-122)
+-220 + j*(-116)
+-272 + j*(134)
+-90 + j*(245)
+-1 + j*(192)
+25 + j*(218)
+171 + j*(227)
+279 + j*(64)
+198 + j*(-95)
+87 + j*(-100)
+73 + j*(-67)
+80 + j*(-100)
+35 + j*(-149)
+-53 + j*(-163)
+-153 + j*(-111)
+-209 + j*(27)
+-129 + j*(186)
+68 + j*(223)
+205 + j*(86)
+179 + j*(-74)
+88 + j*(-138)
+5 + j*(-157)
+-96 + j*(-119)
+-115 + j*(1)
+-16 + j*(38)
+-15 + j*(-49)
+-125 + j*(6)
+-32 + j*(174)
+199 + j*(79)
+140 + j*(-194)
+-129 + j*(-188)
+-168 + j*(26)
+-37 + j*(71)
+-35 + j*(20)
+-45 + j*(83)
+76 + j*(84)
+86 + j*(-76)
+-113 + j*(-103)
+-179 + j*(133)
+62 + j*(269)
+273 + j*(88)
+204 + j*(-132)
+66 + j*(-167)
+2 + j*(-162)
+-103 + j*(-144)
+-148 + j*(13)
+28 + j*(86)
+103 + j*(-114)
+-116 + j*(-188)
+-182 + j*(15)
+-18 + j*(18)
+-134 + j*(-136)
+-347 + j*(89)
+-95 + j*(383)
+220 + j*(180)
+69 + j*(-60)
+-48 + j*(91)
+146 + j*(103)
+101 + j*(-139)
+-162 + j*(-80)
+-118 + j*(158)
+24 + j*(144)
+-9 + j*(153)
+144 + j*(295)
+445 + j*(102)
+343 + j*(-304)
+-41 + j*(-339)
+-161 + j*(-82)
+-35 + j*(47)
+82 + j*(1)
+88 + j*(-138)
+-106 + j*(-212)
+-285 + j*(14)
+-85 + j*(303)
+262 + j*(192)
+267 + j*(-119)
+84 + j*(-187)
+59 + j*(-170)
+-18 + j*(-281)
+-279 + j*(-235)
+-345 + j*(93)
+-56 + j*(264)
+149 + j*(54)
+-6 + j*(-124)
+-141 + j*(19)
+14 + j*(121)
+86 + j*(-53)
+-107 + j*(-88)
+-104 + j*(133)
+148 + j*(91)
+79 + j*(-190)
+-215 + j*(-110)
+-141 + j*(163)
+71 + j*(98)
+-9 + j*(-30)
+-50 + j*(76)
+74 + j*(47)
+-21 + j*(-69)
+-111 + j*(97)
+124 + j*(161)
+175 + j*(-124)
+-117 + j*(-168)
+-140 + j*(79)
+18 + j*(42)
+-129 + j*(-30)
+-170 + j*(247)
+187 + j*(317)
+292 + j*(-23)
+37 + j*(-107)
+30 + j*(71)
+175 + j*(-1)
+69 + j*(-127)
+-26 + j*(-14)
+93 + j*(53)
+172 + j*(-49)
+153 + j*(-153)
+76 + j*(-268)
+-137 + j*(-300)
+-285 + j*(-99)
+-179 + j*(86)
+-56 + j*(67)
+-50 + j*(33)
+-41 + j*(37)
+-47 + j*(40)
+-22 + j*(98)
+101 + j*(63)
+71 + j*(-103)
+-99 + j*(-73)
+-39 + j*(54)
+16 + j*(-78)
+-238 + j*(-69)
+-216 + j*(317)
+238 + j*(336)
+301 + j*(-74)
+30 + j*(-109)
+119 + j*(-5)
+102 + j*(-274)
+-336 + j*(-198)
+-234 + j*(338)
+317 + j*(203)
+107 + j*(-310)
+-373 + j*(9)
+39 + j*(494)
+548 + j*(83)
+259 + j*(-392)
+-59 + j*(-276)
+-50 + j*(-222)
+-245 + j*(-243)
+-345 + j*(76)
+-46 + j*(217)
+41 + j*(0)
+-101 + j*(28)
+41 + j*(107)
+47 + j*(-132)
+-296 + j*(-61)
+-186 + j*(387)
+322 + j*(310)
+317 + j*(-164)
+-23 + j*(-210)
+-63 + j*(-51)
+-68 + j*(-73)
+-175 + j*(40)
+-20 + j*(210)
+158 + j*(66)
+35 + j*(-66)
+-25 + j*(49)
+91 + j*(58)
+83 + j*(-30)
+75 + j*(-8)
+147 + j*(-103)
+-15 + j*(-257)
+-227 + j*(-94)
+-94 + j*(96)
+3 + j*(-42)
+-209 + j*(-49)
+-199 + j*(257)
+140 + j*(306)
+250 + j*(40)
+117 + j*(-65)
+97 + j*(-48)
+59 + j*(-125)
+-77 + j*(-87)
+-37 + j*(62)
+100 + j*(11)
+37 + j*(-114)
+-59 + j*(-43)
+25 + j*(4)
+25 + j*(-114)
+-153 + j*(-93)
+-145 + j*(137)
+109 + j*(171)
+191 + j*(-75)
+-13 + j*(-193)
+-144 + j*(-52)
+-71 + j*(59)
+-11 + j*(46)
+20 + j*(59)
+115 + j*(11)
+86 + j*(-164)
+-141 + j*(-180)
+-206 + j*(53)
+-4 + j*(141)
+72 + j*(-33)
+-84 + j*(-98)
+-161 + j*(37)
+-96 + j*(133)
+-21 + j*(173)
+110 + j*(175)
+214 + j*(13)
+74 + j*(-158)
+-111 + j*(-55)
+-28 + j*(112)
+115 + j*(41)
+57 + j*(-75)
+-24 + j*(-36)
+-1 + j*(-3)
+-20 + j*(-16)
+-31 + j*(53)
+78 + j*(77)
+124 + j*(-49)
+11 + j*(-101)
+-12 + j*(-10)
+84 + j*(-37)
+29 + j*(-175)
+-149 + j*(-140)
+-162 + j*(32)
+-39 + j*(63)
+-34 + j*(-16)
+-105 + j*(19)
+-59 + j*(109)
+41 + j*(71)
+3 + j*(-23)
+-98 + j*(30)
+-42 + j*(162)
+121 + j*(127)
+112 + j*(-46)
+-64 + j*(-49)
+-78 + j*(147)
+136 + j*(196)
+232 + j*(0)
+93 + j*(-115)
+-5 + j*(-24)
+59 + j*(53)
+144 + j*(33)
+218 + j*(-44)
+221 + j*(-222)
+6 + j*(-361)
+-238 + j*(-199)
+-153 + j*(69)
+88 + j*(24)
+55 + j*(-197)
+-150 + j*(-198)
+-190 + j*(-41)
+-102 + j*(-2)
+-101 + j*(-59)
+-194 + j*(-53)
+-261 + j*(78)
+-156 + j*(254)
+87 + j*(235)
+144 + j*(-18)
+-100 + j*(-113)
+-231 + j*(132)
+-11 + j*(312)
+197 + j*(161)
+122 + j*(-5)
+43 + j*(53)
+148 + j*(74)
+173 + j*(-95)
+-18 + j*(-148)
+-86 + j*(41)
+116 + j*(92)
+151 + j*(-148)
+-134 + j*(-187)
+-187 + j*(127)
+143 + j*(188)
+202 + j*(-142)
+-109 + j*(-194)
+-141 + j*(74)
+67 + j*(52)
+-37 + j*(-107)
+-177 + j*(85)
+66 + j*(231)
+214 + j*(-20)
+-19 + j*(-139)
+-97 + j*(74)
+100 + j*(126)
+143 + j*(-30)
+59 + j*(-60)
+67 + j*(-48)
+49 + j*(-99)
+-6 + j*(-85)
+2 + j*(-83)
+-78 + j*(-118)
+-170 + j*(35)
+22 + j*(202)
+261 + j*(16)
+144 + j*(-269)
+-115 + j*(-267)
+-222 + j*(-120)
+-230 + j*(24)
+-117 + j*(153)
+61 + j*(76)
+-21 + j*(-107)
+-218 + j*(6)
+-86 + j*(230)
+141 + j*(103)
+21 + j*(-98)
+-153 + j*(20)
+-58 + j*(168)
+37 + j*(133)
+56 + j*(142)
+192 + j*(128)
+230 + j*(-85)
+17 + j*(-165)
+-42 + j*(20)
+144 + j*(10)
+78 + j*(-226)
+-221 + j*(-146)
+-165 + j*(190)
+173 + j*(174)
+194 + j*(-137)
+-57 + j*(-189)
+-112 + j*(-10)
+4 + j*(12)
+-13 + j*(-78)
+-116 + j*(-51)
+-128 + j*(61)
+-35 + j*(141)
+119 + j*(104)
+158 + j*(-125)
+-125 + j*(-265)
+-395 + j*(30)
+-168 + j*(416)
+249 + j*(329)
+288 + j*(0)
+127 + j*(-76)
+122 + j*(-61)
+76 + j*(-166)
+-107 + j*(-134)
+-115 + j*(67)
+70 + j*(103)
+136 + j*(-47)
+35 + j*(-147)
+-89 + j*(-117)
+-135 + j*(0)
+-57 + j*(94)
+35 + j*(58)
+16 + j*(11)
+26 + j*(54)
+121 + j*(8)
+77 + j*(-132)
+-66 + j*(-115)
+-62 + j*(-21)
+-44 + j*(-54)
+-147 + j*(-11)
+-90 + j*(163)
+119 + j*(127)
+98 + j*(-64)
+-51 + j*(-28)
+23 + j*(93)
+136 + j*(-2)
+59 + j*(-98)
+25 + j*(-46)
+92 + j*(-109)
+-35 + j*(-244)
+-247 + j*(-124)
+-176 + j*(107)
+21 + j*(59)
+-58 + j*(-110)
+-253 + j*(-2)
+-168 + j*(241)
+71 + j*(222)
+96 + j*(59)
+28 + j*(57)
+93 + j*(68)
+86 + j*(-60)
+-78 + j*(-46)
+-54 + j*(137)
+134 + j*(111)
+105 + j*(-52)
+-15 + j*(-2)
+73 + j*(86)
+153 + j*(-13)
+109 + j*(-70)
+141 + j*(-113)
+49 + j*(-303)
+-291 + j*(-239)
+-296 + j*(175)
+111 + j*(217)
+139 + j*(-158)
+-216 + j*(-148)
+-193 + j*(179)
+64 + j*(148)
+-6 + j*(-11)
+-98 + j*(140)
+112 + j*(226)
+215 + j*(31)
+93 + j*(-42)
+110 + j*(34)
+212 + j*(-61)
+122 + j*(-230)
+-73 + j*(-220)
+-151 + j*(-72)
+-80 + j*(49)
+42 + j*(33)
+48 + j*(-71)
+-34 + j*(-74)
+-5 + j*(-15)
+45 + j*(-105)
+-96 + j*(-188)
+-226 + j*(-47)
+-139 + j*(88)
+-63 + j*(54)
+-95 + j*(61)
+-36 + j*(117)
+24 + j*(41)
+-85 + j*(0)
+-132 + j*(162)
+52 + j*(274)
+237 + j*(158)
+254 + j*(-29)
+160 + j*(-160)
+0 + j*(-185)
+-93 + j*(-59)
+9 + j*(45)
+118 + j*(-73)
+-11 + j*(-226)
+-217 + j*(-146)
+-233 + j*(57)
+-114 + j*(142)
+-49 + j*(125)
+-33 + j*(145)
+49 + j*(185)
+175 + j*(114)
+163 + j*(-51)
+4 + j*(-78)
+-24 + j*(78)
+165 + j*(107)
+232 + j*(-113)
+29 + j*(-233)
+-103 + j*(-90)
+-6 + j*(2)
+33 + j*(-94)
+-83 + j*(-117)
+-119 + j*(-3)
+-40 + j*(37)
+-17 + j*(-3)
+-37 + j*(-3)
+-30 + j*(6)
+-42 + j*(1)
+-52 + j*(42)
+6 + j*(63)
+35 + j*(1)
+-27 + j*(-25)
+-57 + j*(37)
+-6 + j*(85)
+65 + j*(64)
+93 + j*(-26)
+-6 + j*(-112)
+-162 + j*(-6)
+-62 + j*(223)
+232 + j*(156)
+214 + j*(-170)
+-101 + j*(-198)
+-153 + j*(74)
+57 + j*(127)
+87 + j*(-12)
+13 + j*(11)
+103 + j*(54)
+158 + j*(-85)
+23 + j*(-167)
+-68 + j*(-73)
+-16 + j*(6)
+66 + j*(-13)
+106 + j*(-112)
+16 + j*(-253)
+-206 + j*(-235)
+-287 + j*(-20)
+-161 + j*(94)
+-115 + j*(45)
+-179 + j*(110)
+-66 + j*(265)
+177 + j*(206)
+229 + j*(-56)
+29 + j*(-212)
+-180 + j*(-122)
+-211 + j*(67)
+-111 + j*(175)
+-7 + j*(196)
+98 + j*(174)
+173 + j*(52)
+76 + j*(-78)
+-70 + j*(-5)
+-7 + j*(144)
+130 + j*(100)
+120 + j*(18)
+137 + j*(25)
+191 + j*(-89)
+27 + j*(-209)
+-123 + j*(-37)
+49 + j*(95)
+144 + j*(-89)
+-53 + j*(-139)
+-40 + j*(62)
+180 + j*(-23)
+50 + j*(-293)
+-267 + j*(-175)
+-211 + j*(141)
+48 + j*(148)
+93 + j*(-32)
+-21 + j*(-88)
+-88 + j*(-21)
+-52 + j*(52)
+20 + j*(28)
+-15 + j*(-39)
+-94 + j*(19)
+-23 + j*(121)
+88 + j*(68)
+71 + j*(-22)
+28 + j*(-31)
+0 + j*(-36)
+-36 + j*(21)
+67 + j*(81)
+156 + j*(-72)
+-31 + j*(-177)
+-110 + j*(28)
+133 + j*(40)
+74 + j*(-280)
+-330 + j*(-195)
+-272 + j*(250)
+146 + j*(238)
+168 + j*(-88)
+-37 + j*(-124)
+-72 + j*(-48)
+-106 + j*(-19)
+-66 + j*(86)
+80 + j*(-11)
+-115 + j*(-216)
+-410 + j*(63)
+-127 + j*(443)
+249 + j*(223)
+89 + j*(-33)
+8 + j*(133)
+240 + j*(65)
+91 + j*(-233)
+-233 + j*(-70)
+-98 + j*(220)
+87 + j*(124)
+2 + j*(88)
+93 + j*(220)
+280 + j*(86)
+178 + j*(-92)
+82 + j*(-25)
+150 + j*(-11)
+131 + j*(-62)
+169 + j*(-24)
+284 + j*(-177)
+86 + j*(-409)
+-194 + j*(-261)
+-110 + j*(-54)
+-40 + j*(-146)
+-190 + j*(-113)
+-112 + j*(75)
+57 + j*(-34)
+-89 + j*(-157)
+-156 + j*(21)
+44 + j*(25)
+-8 + j*(-208)
+-265 + j*(-150)
+-250 + j*(71)
+-143 + j*(82)
+-176 + j*(101)
+-104 + j*(218)
+48 + j*(175)
+52 + j*(69)
+42 + j*(62)
+76 + j*(-13)
+-42 + j*(-117)
+-218 + j*(-21)
+-216 + j*(183)
+-65 + j*(296)
+95 + j*(268)
+155 + j*(155)
+118 + j*(115)
+166 + j*(144)
+257 + j*(42)
+170 + j*(-81)
+105 + j*(-21)
+202 + j*(-64)
+71 + j*(-257)
+-216 + j*(-83)
+-33 + j*(272)
+344 + j*(103)
+203 + j*(-236)
+-35 + j*(-91)
+180 + j*(45)
+285 + j*(-255)
+-16 + j*(-395)
+-144 + j*(-194)
+-54 + j*(-185)
+-204 + j*(-263)
+-358 + j*(-25)
+-134 + j*(192)
+87 + j*(17)
+-61 + j*(-190)
+-274 + j*(-67)
+-202 + j*(146)
+-24 + j*(114)
+-71 + j*(-14)
+-197 + j*(93)
+-50 + j*(267)
+165 + j*(129)
+54 + j*(-76)
+-102 + j*(35)
+39 + j*(137)
+101 + j*(-47)
+-115 + j*(-85)
+-144 + j*(139)
+53 + j*(161)
+45 + j*(17)
+-57 + j*(78)
+47 + j*(170)
+136 + j*(62)
+45 + j*(-3)
+9 + j*(91)
+122 + j*(133)
+210 + j*(30)
+152 + j*(-102)
+6 + j*(-80)
+28 + j*(83)
+249 + j*(54)
+253 + j*(-223)
+-12 + j*(-285)
+-82 + j*(-117)
+-32 + j*(-133)
+-198 + j*(-104)
+-148 + j*(222)
+318 + j*(199)
+364 + j*(-360)
+-198 + j*(-505)
+-407 + j*(-36)
+-81 + j*(146)
+15 + j*(-82)
+-185 + j*(-115)
+-231 + j*(62)
+-135 + j*(154)
+-32 + j*(180)
+85 + j*(121)
+83 + j*(-10)
+-6 + j*(-30)
+-6 + j*(5)
+-22 + j*(-37)
+-99 + j*(20)
+-8 + j*(119)
+107 + j*(-13)
+-62 + j*(-148)
+-233 + j*(29)
+-110 + j*(229)
+69 + j*(205)
+139 + j*(107)
+148 + j*(-12)
+15 + j*(-99)
+-117 + j*(44)
+35 + j*(213)
+230 + j*(81)
+153 + j*(-101)
+45 + j*(-81)
+46 + j*(-70)
+-18 + j*(-79)
+-33 + j*(27)
+107 + j*(33)
+115 + j*(-139)
+-54 + j*(-181)
+-138 + j*(-85)
+-167 + j*(-8)
+-170 + j*(141)
+24 + j*(254)
+207 + j*(93)
+97 + j*(-66)
+15 + j*(45)
+188 + j*(88)
+281 + j*(-124)
+144 + j*(-306)
+-56 + j*(-351)
+-270 + j*(-260)
+-339 + j*(7)
+-134 + j*(148)
+-58 + j*(4)
+-243 + j*(64)
+-98 + j*(387)
+372 + j*(268)
+358 + j*(-269)
+-140 + j*(-374)
+-326 + j*(1)
+-108 + j*(205)
+54 + j*(144)
+113 + j*(67)
+145 + j*(-55)
+17 + j*(-186)
+-179 + j*(-106)
+-173 + j*(105)
+6 + j*(173)
+120 + j*(52)
+62 + j*(-79)
+-54 + j*(-76)
+-91 + j*(-2)
+-81 + j*(37)
+-84 + j*(86)
+-18 + j*(156)
+94 + j*(109)
+66 + j*(1)
+-30 + j*(43)
+35 + j*(156)
+177 + j*(122)
+224 + j*(-8)
+184 + j*(-121)
+73 + j*(-189)
+-50 + j*(-130)
+-21 + j*(-18)
+64 + j*(-62)
+3 + j*(-136)
+-38 + j*(-88)
+1 + j*(-141)
+-177 + j*(-245)
+-417 + j*(-3)
+-223 + j*(356)
+144 + j*(274)
+133 + j*(2)
+-23 + j*(29)
+54 + j*(130)
+156 + j*(40)
+117 + j*(-54)
+80 + j*(-83)
+22 + j*(-125)
+-69 + j*(-81)
+-42 + j*(8)
+26 + j*(-35)
+-51 + j*(-103)
+-154 + j*(-21)
+-129 + j*(120)
+-1 + j*(198)
+175 + j*(153)
+254 + j*(-54)
+97 + j*(-231)
+-97 + j*(-167)
+-103 + j*(-42)
+-78 + j*(-31)
+-126 + j*(18)
+-64 + j*(139)
+108 + j*(125)
+172 + j*(-43)
+69 + j*(-180)
+-100 + j*(-182)
+-194 + j*(-36)
+-94 + j*(103)
+51 + j*(16)
+-61 + j*(-156)
+-307 + j*(-35)
+-250 + j*(295)
+100 + j*(351)
+247 + j*(54)
+11 + j*(-116)
+-156 + j*(104)
+71 + j*(301)
+324 + j*(105)
+209 + j*(-163)
+2 + j*(-124)
+25 + j*(-20)
+53 + j*(-74)
+-29 + j*(-71)
+-11 + j*(-1)
+18 + j*(-50)
+-83 + j*(-41)
+-61 + j*(117)
+119 + j*(110)
+141 + j*(-40)
+78 + j*(-63)
+103 + j*(-100)
+-4 + j*(-199)
+-146 + j*(-67)
+11 + j*(60)
+96 + j*(-160)
+-206 + j*(-229)
+-296 + j*(124)
+49 + j*(225)
+127 + j*(-81)
+-148 + j*(-121)
+-178 + j*(133)
+12 + j*(196)
+109 + j*(129)
+199 + j*(47)
+197 + j*(-168)
+-59 + j*(-260)
+-194 + j*(-43)
+-33 + j*(56)
+-24 + j*(-89)
+-209 + j*(-33)
+-154 + j*(204)
+91 + j*(205)
+155 + j*(6)
+28 + j*(-95)
+-91 + j*(-32)
+-73 + j*(102)
+71 + j*(110)
+86 + j*(-47)
+-96 + j*(-49)
+-97 + j*(175)
+162 + j*(208)
+236 + j*(-28)
+86 + j*(-104)
+83 + j*(-31)
+144 + j*(-143)
+-41 + j*(-261)
+-227 + j*(-84)
+-100 + j*(122)
+78 + j*(37)
+5 + j*(-104)
+-107 + j*(-34)
+-36 + j*(46)
+-1 + j*(-52)
+-163 + j*(-68)
+-221 + j*(161)
+13 + j*(306)
+222 + j*(154)
+190 + j*(-35)
+95 + j*(-87)
+23 + j*(-92)
+-39 + j*(-25)
+51 + j*(57)
+160 + j*(-88)
+-40 + j*(-257)
+-277 + j*(-37)
+-72 + j*(240)
+201 + j*(61)
+33 + j*(-181)
+-167 + j*(-4)
+23 + j*(164)
+177 + j*(-35)
+-9 + j*(-182)
+-146 + j*(-37)
+-55 + j*(64)
+-23 + j*(12)
+-80 + j*(59)
+23 + j*(174)
+213 + j*(78)
+189 + j*(-164)
+-45 + j*(-227)
+-160 + j*(-63)
+-71 + j*(49)
+1 + j*(5)
+-30 + j*(-38)
+-71 + j*(-27)
+-113 + j*(4)
+-131 + j*(110)
+4 + j*(221)
+197 + j*(117)
+167 + j*(-107)
+-25 + j*(-143)
+-84 + j*(-18)
+-26 + j*(17)
+-46 + j*(-12)
+-90 + j*(59)
+-5 + j*(156)
+136 + j*(110)
+164 + j*(-22)
+103 + j*(-94)
+66 + j*(-124)
+-8 + j*(-197)
+-194 + j*(-173)
+-287 + j*(54)
+-124 + j*(237)
+52 + j*(200)
+112 + j*(145)
+231 + j*(81)
+262 + j*(-181)
+-52 + j*(-349)
+-326 + j*(-77)
+-149 + j*(221)
+91 + j*(129)
+30 + j*(-11)
+-32 + j*(62)
+56 + j*(96)
+81 + j*(35)
+79 + j*(51)
+174 + j*(16)
+170 + j*(-146)
+-2 + j*(-214)
+-122 + j*(-100)
+-80 + j*(30)
+39 + j*(37)
+77 + j*(-76)
+-37 + j*(-143)
+-120 + j*(-40)
+-34 + j*(30)
+1 + j*(-59)
+-99 + j*(-75)
+-117 + j*(10)
+-101 + j*(12)
+-173 + j*(83)
+-59 + j*(276)
+235 + j*(181)
+185 + j*(-144)
+-124 + j*(-111)
+-71 + j*(191)
+264 + j*(134)
+277 + j*(-245)
+-90 + j*(-402)
+-404 + j*(-138)
+-311 + j*(268)
+90 + j*(347)
+272 + j*(21)
+45 + j*(-173)
+-86 + j*(-25)
+25 + j*(-8)
+-83 + j*(-120)
+-233 + j*(86)
+33 + j*(272)
+226 + j*(-22)
+-98 + j*(-202)
+-271 + j*(151)
+78 + j*(340)
+279 + j*(57)
+95 + j*(-117)
+-16 + j*(-28)
+-4 + j*(8)
+-40 + j*(69)
+78 + j*(198)
+313 + j*(81)
+272 + j*(-214)
+9 + j*(-281)
+-112 + j*(-127)
+-78 + j*(-23)
+-30 + j*(23)
+56 + j*(36)
+119 + j*(-63)
+35 + j*(-156)
+-47 + j*(-92)
+40 + j*(-49)
+76 + j*(-214)
+-148 + j*(-326)
+-365 + j*(-142)
+-317 + j*(88)
+-206 + j*(148)
+-161 + j*(208)
+-7 + j*(267)
+136 + j*(120)
+17 + j*(-25)
+-86 + j*(106)
+84 + j*(185)
+154 + j*(1)
+-25 + j*(-38)
+-8 + j*(156)
+233 + j*(115)
+233 + j*(-157)
+8 + j*(-231)
+-100 + j*(-129)
+-130 + j*(-64)
+-159 + j*(37)
+-62 + j*(146)
+66 + j*(83)
+18 + j*(-22)
+-67 + j*(44)
+8 + j*(146)
+142 + j*(98)
+158 + j*(-36)
+64 + j*(-110)
+-27 + j*(-71)
+-23 + j*(11)
+54 + j*(26)
+107 + j*(-57)
+52 + j*(-185)
+-147 + j*(-221)
+-330 + j*(-16)
+-221 + j*(300)
+131 + j*(345)
+312 + j*(74)
+192 + j*(-150)
+23 + j*(-168)
+-71 + j*(-105)
+-102 + j*(1)
+-19 + j*(91)
+97 + j*(45)
+91 + j*(-66)
+22 + j*(-88)
+5 + j*(-83)
+-33 + j*(-119)
+-137 + j*(-95)
+-184 + j*(43)
+-74 + j*(170)
+91 + j*(133)
+119 + j*(-13)
+25 + j*(-51)
+32 + j*(11)
+110 + j*(-62)
+6 + j*(-186)
+-143 + j*(-97)
+-69 + j*(28)
+4 + j*(-74)
+-153 + j*(-144)
+-278 + j*(28)
+-190 + j*(209)
+-28 + j*(267)
+151 + j*(206)
+205 + j*(-18)
+-10 + j*(-141)
+-157 + j*(59)
+28 + j*(205)
+158 + j*(63)
+80 + j*(-13)
+98 + j*(9)
+91 + j*(-105)
+-86 + j*(-76)
+-18 + j*(132)
+211 + j*(1)
+16 + j*(-245)
+-234 + j*(1)
+52 + j*(231)
+251 + j*(-89)
+-86 + j*(-255)
+-217 + j*(79)
+84 + j*(165)
+110 + j*(-91)
+-110 + j*(-47)
+-6 + j*(163)
+218 + j*(46)
+154 + j*(-189)
+-40 + j*(-220)
+-156 + j*(-128)
+-184 + j*(17)
+-69 + j*(131)
+78 + j*(55)
+26 + j*(-98)
+-136 + j*(-69)
+-156 + j*(100)
+-10 + j*(195)
+146 + j*(112)
+135 + j*(-62)
+-30 + j*(-98)
+-86 + j*(69)
+99 + j*(153)
+250 + j*(-33)
+122 + j*(-255)
+-124 + j*(-231)
+-188 + j*(-32)
+-55 + j*(51)
+-4 + j*(-64)
+-158 + j*(-104)
+-240 + j*(84)
+-83 + j*(220)
+44 + j*(142)
+14 + j*(95)
+55 + j*(151)
+163 + j*(98)
+175 + j*(-11)
+154 + j*(-71)
+121 + j*(-178)
+-61 + j*(-245)
+-223 + j*(-83)
+-134 + j*(109)
+23 + j*(90)
+40 + j*(-26)
+-63 + j*(-75)
+-184 + j*(28)
+-112 + j*(262)
+214 + j*(273)
+328 + j*(-78)
+25 + j*(-257)
+-150 + j*(-34)
+-2 + j*(88)
+49 + j*(14)
+53 + j*(50)
+209 + j*(-34)
+84 + j*(-334)
+-343 + j*(-233)
+-317 + j*(254)
+139 + j*(308)
+239 + j*(-45)
+21 + j*(-132)
+0 + j*(-38)
+14 + j*(-110)
+-142 + j*(-103)
+-156 + j*(95)
+34 + j*(137)
+92 + j*(-17)
+-23 + j*(-77)
+-86 + j*(4)
+-31 + j*(71)
+35 + j*(28)
+-18 + j*(-49)
+-136 + j*(23)
+-76 + j*(206)
+143 + j*(209)
+216 + j*(33)
+142 + j*(-41)
+165 + j*(-47)
+182 + j*(-200)
+-25 + j*(-333)
+-278 + j*(-192)
+-284 + j*(89)
+-81 + j*(228)
+116 + j*(163)
+187 + j*(-5)
+106 + j*(-158)
+-52 + j*(-189)
+-170 + j*(-98)
+-185 + j*(35)
+-110 + j*(132)
+-6 + j*(145)
+54 + j*(98)
+74 + j*(59)
+112 + j*(23)
+127 + j*(-89)
+-16 + j*(-196)
+-223 + j*(-80)
+-173 + j*(192)
+114 + j*(220)
+196 + j*(-34)
+-5 + j*(-118)
+-51 + j*(45)
+115 + j*(42)
+88 + j*(-138)
+-77 + j*(-112)
+-34 + j*(0)
+28 + j*(-119)
+-189 + j*(-197)
+-359 + j*(57)
+-176 + j*(310)
+58 + j*(261)
+83 + j*(140)
+59 + j*(148)
+132 + j*(187)
+263 + j*(144)
+366 + j*(-21)
+301 + j*(-267)
+38 + j*(-374)
+-177 + j*(-218)
+-143 + j*(-13)
+6 + j*(8)
+45 + j*(-118)
+-83 + j*(-208)
+-263 + j*(-126)
+-303 + j*(107)
+-120 + j*(285)
+124 + j*(221)
+164 + j*(6)
+16 + j*(-66)
+-30 + j*(45)
+92 + j*(52)
+81 + j*(-104)
+-105 + j*(-95)
+-105 + j*(107)
+95 + j*(117)
+110 + j*(-64)
+-30 + j*(-69)
+-7 + j*(24)
+49 + j*(-38)
+-51 + j*(-72)
+-76 + j*(49)
+45 + j*(69)
+59 + j*(-28)
+1 + j*(-32)
+18 + j*(-15)
+1 + j*(-49)
+-28 + j*(1)
+68 + j*(8)
+63 + j*(-148)
+-140 + j*(-156)
+-158 + j*(49)
+18 + j*(35)
+-69 + j*(-136)
+-291 + j*(12)
+-151 + j*(303)
+156 + j*(231)
+154 + j*(-16)
+4 + j*(-32)
+25 + j*(35)
+49 + j*(-44)
+-81 + j*(-60)
+-117 + j*(100)
+45 + j*(158)
+107 + j*(18)
+-14 + j*(-22)
+-25 + j*(106)
+119 + j*(108)
+124 + j*(-33)
+1 + j*(-24)
+39 + j*(105)
+204 + j*(71)
+243 + j*(-117)
+103 + j*(-262)
+-107 + j*(-233)
+-186 + j*(-18)
+9 + j*(117)
+169 + j*(-78)
+-38 + j*(-264)
+-255 + j*(-65)
+-93 + j*(146)
+71 + j*(24)
+-35 + j*(-64)
+-45 + j*(53)
+103 + j*(7)
+45 + j*(-185)
+-169 + j*(-179)
+-259 + j*(-13)
+-221 + j*(146)
+-75 + j*(259)
+122 + j*(190)
+117 + j*(1)
+-24 + j*(11)
+30 + j*(129)
+163 + j*(53)
+115 + j*(-79)
+39 + j*(-78)
+24 + j*(-94)
+-67 + j*(-115)
+-146 + j*(-1)
+-71 + j*(117)
+44 + j*(117)
+119 + j*(50)
+122 + j*(-75)
+-22 + j*(-142)
+-129 + j*(-4)
+-5 + j*(119)
+114 + j*(24)
+69 + j*(-62)
+50 + j*(-61)
+43 + j*(-132)
+-81 + j*(-155)
+-127 + j*(-49)
+-80 + j*(-35)
+-148 + j*(-53)
+-191 + j*(80)
+-61 + j*(153)
+-11 + j*(72)
+-51 + j*(94)
+46 + j*(123)
+75 + j*(-23)
+-107 + j*(-56)
+-169 + j*(133)
+-46 + j*(234)
+39 + j*(260)
+209 + j*(301)
+429 + j*(98)
+305 + j*(-234)
+-11 + j*(-199)
+-4 + j*(39)
+181 + j*(17)
+167 + j*(-130)
+95 + j*(-141)
+110 + j*(-161)
+57 + j*(-264)
+-107 + j*(-279)
+-221 + j*(-151)
+-187 + j*(2)
+-64 + j*(31)
+-30 + j*(-67)
+-136 + j*(-105)
+-219 + j*(-16)
+-222 + j*(110)
+-134 + j*(257)
+118 + j*(292)
+275 + j*(26)
+51 + j*(-173)
+-101 + j*(43)
+176 + j*(127)
+243 + j*(-247)
+-187 + j*(-356)
+-349 + j*(45)
+-35 + j*(218)
+104 + j*(-2)
+-42 + j*(-104)
+-130 + j*(-30)
+-140 + j*(59)
+-53 + j*(153)
+100 + j*(58)
+-21 + j*(-139)
+-265 + j*(11)
+-124 + j*(286)
+123 + j*(177)
+21 + j*(18)
+-54 + j*(158)
+110 + j*(206)
+146 + j*(98)
+148 + j*(144)
+346 + j*(78)
+331 + j*(-241)
+21 + j*(-313)
+-62 + j*(-134)
+-5 + j*(-163)
+-192 + j*(-202)
+-315 + j*(64)
+-100 + j*(282)
+128 + j*(213)
+204 + j*(84)
+226 + j*(-52)
+133 + j*(-189)
+-13 + j*(-185)
+-60 + j*(-127)
+-117 + j*(-110)
+-192 + j*(11)
+-81 + j*(163)
+76 + j*(117)
+71 + j*(33)
+98 + j*(65)
+218 + j*(-32)
+136 + j*(-245)
+-103 + j*(-230)
+-140 + j*(-43)
+-17 + j*(-5)
+2 + j*(-107)
+-103 + j*(-146)
+-204 + j*(-68)
+-201 + j*(74)
+-77 + j*(156)
+43 + j*(87)
+18 + j*(-26)
+-78 + j*(-23)
+-92 + j*(71)
+-6 + j*(110)
+65 + j*(51)
+54 + j*(-28)
+3 + j*(-69)
+-63 + j*(-95)
+-188 + j*(-63)
+-260 + j*(119)
+-112 + j*(305)
+105 + j*(266)
+153 + j*(124)
+122 + j*(88)
+158 + j*(67)
+161 + j*(-8)
+119 + j*(-23)
+158 + j*(-27)
+180 + j*(-141)
+59 + j*(-246)
+-91 + j*(-214)
+-161 + j*(-121)
+-182 + j*(-28)
+-158 + j*(57)
+-108 + j*(107)
+-62 + j*(150)
+40 + j*(182)
+164 + j*(95)
+141 + j*(-78)
+-38 + j*(-122)
+-150 + j*(40)
+-28 + j*(221)
+210 + j*(173)
+235 + j*(-68)
+36 + j*(-117)
+44 + j*(62)
+269 + j*(-25)
+148 + j*(-341)
+-221 + j*(-246)
+-154 + j*(107)
+140 + j*(24)
+11 + j*(-214)
+-194 + j*(-41)
+-2 + j*(136)
+152 + j*(-42)
+34 + j*(-159)
+0 + j*(-144)
+-70 + j*(-254)
+-342 + j*(-173)
+-310 + j*(194)
+59 + j*(204)
+55 + j*(-135)
+-282 + j*(-95)
+-249 + j*(260)
+87 + j*(286)
+177 + j*(19)
+3 + j*(-105)
+-130 + j*(-4)
+-79 + j*(127)
+51 + j*(107)
+32 + j*(-21)
+-107 + j*(11)
+-69 + j*(170)
+93 + j*(142)
+66 + j*(13)
+-25 + j*(60)
+45 + j*(134)
+104 + j*(72)
+62 + j*(64)
+124 + j*(116)
+233 + j*(27)
+179 + j*(-120)
+54 + j*(-121)
+39 + j*(-40)
+120 + j*(-28)
+174 + j*(-146)
+57 + j*(-303)
+-192 + j*(-267)
+-262 + j*(-21)
+-100 + j*(103)
+-4 + j*(28)
+-45 + j*(-1)
+-27 + j*(39)
+15 + j*(4)
+-26 + j*(-27)
+-45 + j*(16)
+-8 + j*(23)
+-14 + j*(3)
+-22 + j*(30)
+24 + j*(40)
+49 + j*(-11)
+18 + j*(-54)
+-32 + j*(-62)
+-83 + j*(-26)
+-80 + j*(49)
+-13 + j*(76)
+18 + j*(38)
+1 + j*(34)
+29 + j*(61)
+78 + j*(30)
+78 + j*(-23)
+62 + j*(-53)
+33 + j*(-89)
+-33 + j*(-95)
+-72 + j*(-38)
+-35 + j*(1)
+-16 + j*(-37)
+-78 + j*(-54)
+-124 + j*(26)
+-56 + j*(110)
+44 + j*(68)
+13 + j*(-25)
+-82 + j*(21)
+-27 + j*(143)
+125 + j*(108)
+138 + j*(-32)
+62 + j*(-75)
+40 + j*(-86)
+-35 + j*(-128)
+-145 + j*(-28)
+-37 + j*(131)
+164 + j*(13)
+54 + j*(-241)
+-240 + j*(-185)
+-275 + j*(87)
+-105 + j*(175)
+-54 + j*(129)
+-41 + j*(175)
+83 + j*(185)
+124 + j*(48)
+2 + j*(26)
+26 + j*(180)
+254 + j*(150)
+280 + j*(-119)
+47 + j*(-206)
+-38 + j*(-61)
+35 + j*(-46)
+-37 + j*(-86)
+-65 + j*(52)
+115 + j*(58)
+78 + j*(-153)
+-162 + j*(-54)
+6 + j*(223)
+328 + j*(5)
+98 + j*(-344)
+-228 + j*(-127)
+-13 + j*(134)
+175 + j*(-97)
+-51 + j*(-226)
+-109 + j*(-45)
+19 + j*(-105)
+-165 + j*(-229)
+-330 + j*(17)
+-105 + j*(196)
+25 + j*(25)
+-117 + j*(-30)
+-136 + j*(91)
+-75 + j*(111)
+-64 + j*(157)
+81 + j*(193)
+156 + j*(-6)
+-69 + j*(-76)
+-107 + j*(180)
+178 + j*(200)
+199 + j*(-71)
+-4 + j*(-74)
+49 + j*(42)
+105 + j*(-75)
+-48 + j*(-87)
+-8 + j*(64)
+129 + j*(-42)
+-34 + j*(-173)
+-140 + j*(16)
+51 + j*(69)
+30 + j*(-128)
+-188 + j*(-42)
+-73 + j*(185)
+127 + j*(80)
+44 + j*(-42)
+45 + j*(36)
+153 + j*(-95)
+-71 + j*(-272)
+-311 + j*(-13)
+-74 + j*(242)
+141 + j*(32)
+-62 + j*(-125)
+-179 + j*(77)
+-16 + j*(167)
+16 + j*(71)
+-38 + j*(141)
+119 + j*(219)
+250 + j*(59)
+155 + j*(-83)
+79 + j*(-50)
+105 + j*(-57)
+56 + j*(-115)
+-28 + j*(-63)
+15 + j*(38)
+155 + j*(28)
+233 + j*(-149)
+82 + j*(-362)
+-228 + j*(-315)
+-295 + j*(-9)
+-49 + j*(83)
+-19 + j*(-139)
+-301 + j*(-110)
+-281 + j*(252)
+97 + j*(297)
+186 + j*(-23)
+-48 + j*(-92)
+-55 + j*(87)
+105 + j*(33)
+14 + j*(-136)
+-166 + j*(-42)
+-105 + j*(145)
+69 + j*(142)
+126 + j*(14)
+69 + j*(-76)
+-10 + j*(-82)
+-33 + j*(-52)
+-43 + j*(-77)
+-158 + j*(-76)
+-227 + j*(112)
+-27 + j*(276)
+199 + j*(119)
+109 + j*(-119)
+-103 + j*(-88)
+-129 + j*(78)
+-34 + j*(158)
+71 + j*(153)
+141 + j*(63)
+81 + j*(-21)
+36 + j*(50)
+183 + j*(53)
+187 + j*(-201)
+-153 + j*(-245)
+-253 + j*(144)
+149 + j*(292)
+339 + j*(-86)
+25 + j*(-294)
+-154 + j*(-68)
+-1 + j*(33)
+15 + j*(-88)
+-103 + j*(-47)
+-32 + j*(57)
+37 + j*(-40)
+-107 + j*(-82)
+-166 + j*(107)
+23 + j*(222)
+186 + j*(107)
+190 + j*(-50)
+103 + j*(-158)
+-57 + j*(-165)
+-136 + j*(8)
+44 + j*(134)
+214 + j*(-54)
+40 + j*(-269)
+-199 + j*(-137)
+-110 + j*(89)
+91 + j*(24)
+50 + j*(-169)
+-138 + j*(-184)
+-230 + j*(-40)
+-163 + j*(98)
+-31 + j*(94)
+-35 + j*(-19)
+-166 + j*(23)
+-93 + j*(205)
+140 + j*(119)
+37 + j*(-144)
+-257 + j*(-19)
+-130 + j*(305)
+187 + j*(207)
+112 + j*(-46)
+-50 + j*(41)
+73 + j*(127)
+92 + j*(-15)
+-51 + j*(43)
+88 + j*(204)
+276 + j*(23)
+107 + j*(-150)
+25 + j*(11)
+241 + j*(-28)
+145 + j*(-346)
+-242 + j*(-277)
+-223 + j*(87)
+62 + j*(66)
+-9 + j*(-175)
+-272 + j*(-85)
+-260 + j*(204)
+-30 + j*(338)
+209 + j*(269)
+321 + j*(43)
+205 + j*(-158)
+29 + j*(-143)
+21 + j*(-46)
+69 + j*(-63)
+43 + j*(-95)
+40 + j*(-97)
+26 + j*(-156)
+-83 + j*(-180)
+-163 + j*(-90)
+-137 + j*(-2)
+-98 + j*(28)
+-65 + j*(42)
+-40 + j*(33)
+-45 + j*(40)
+2 + j*(71)
+71 + j*(3)
+12 + j*(-86)
+-49 + j*(-52)
+-18 + j*(-75)
+-158 + j*(-172)
+-394 + j*(39)
+-216 + j*(417)
+215 + j*(356)
+267 + j*(-4)
+39 + j*(-91)
+-21 + j*(19)
+14 + j*(40)
+23 + j*(61)
+95 + j*(56)
+98 + j*(-49)
+4 + j*(-43)
+59 + j*(7)
+77 + j*(-148)
+-192 + j*(-173)
+-273 + j*(172)
+69 + j*(319)
+239 + j*(54)
+88 + j*(-60)
+86 + j*(-1)
+102 + j*(-127)
+-129 + j*(-129)
+-141 + j*(173)
+198 + j*(213)
+281 + j*(-101)
+58 + j*(-202)
+4 + j*(-91)
+53 + j*(-126)
+-39 + j*(-185)
+-129 + j*(-119)
+-148 + j*(-39)
+-126 + j*(63)
+30 + j*(96)
+95 + j*(-108)
+-163 + j*(-204)
+-314 + j*(91)
+-50 + j*(296)
+163 + j*(134)
+129 + j*(0)
+139 + j*(-59)
+47 + j*(-234)
+-250 + j*(-158)
+-202 + j*(202)
+178 + j*(155)
+110 + j*(-235)
+-288 + j*(-155)
+-218 + j*(224)
+96 + j*(153)
+-20 + j*(-86)
+-237 + j*(98)
+-28 + j*(359)
+277 + j*(214)
+241 + j*(-70)
+39 + j*(-107)
+-6 + j*(23)
+114 + j*(50)
+146 + j*(-100)
+-25 + j*(-165)
+-116 + j*(1)
+40 + j*(86)
+90 + j*(-74)
+-91 + j*(-78)
+-48 + j*(143)
+234 + j*(71)
+175 + j*(-279)
+-200 + j*(-285)
+-286 + j*(40)
+-75 + j*(151)
+-17 + j*(57)
+-71 + j*(105)
+59 + j*(202)
+235 + j*(68)
+175 + j*(-158)
+-39 + j*(-190)
+-136 + j*(-37)
+-61 + j*(75)
+27 + j*(76)
+87 + j*(53)
+165 + j*(-28)
+125 + j*(-212)
+-119 + j*(-264)
+-262 + j*(-40)
+-106 + j*(139)
+42 + j*(45)
+-30 + j*(-46)
+-74 + j*(23)
+-8 + j*(40)
+-19 + j*(-18)
+-76 + j*(11)
+-53 + j*(69)
+-13 + j*(94)
+71 + j*(114)
+192 + j*(-9)
+81 + j*(-239)
+-222 + j*(-189)
+-243 + j*(119)
+6 + j*(170)
+20 + j*(-16)
+-153 + j*(39)
+-67 + j*(248)
+168 + j*(204)
+190 + j*(6)
+79 + j*(-42)
+55 + j*(11)
+116 + j*(11)
+151 + j*(-91)
+37 + j*(-217)
+-189 + j*(-141)
+-180 + j*(150)
+139 + j*(216)
+272 + j*(-98)
+0 + j*(-273)
+-162 + j*(-72)
+-13 + j*(18)
+-18 + j*(-144)
+-253 + j*(-80)
+-201 + j*(224)
+119 + j*(223)
+158 + j*(-62)
+-76 + j*(-111)
+-123 + j*(72)
+-8 + j*(115)
+5 + j*(85)
+42 + j*(146)
+187 + j*(103)
+190 + j*(-75)
+51 + j*(-117)
+18 + j*(-45)
+43 + j*(-53)
+4 + j*(-48)
+48 + j*(8)
+132 + j*(-81)
+28 + j*(-197)
+-75 + j*(-110)
+22 + j*(-79)
+-21 + j*(-257)
+-312 + j*(-221)
+-363 + j*(127)
+-65 + j*(267)
+102 + j*(74)
+8 + j*(-53)
+-57 + j*(-21)
+-49 + j*(-23)
+-98 + j*(-45)
+-168 + j*(1)
+-192 + j*(103)
+-134 + j*(218)
+10 + j*(260)
+124 + j*(185)
+151 + j*(85)
+132 + j*(1)
+42 + j*(-52)
+-50 + j*(34)
+49 + j*(156)
+209 + j*(53)
+132 + j*(-117)
+2 + j*(-72)
+53 + j*(-21)
+35 + j*(-124)
+-127 + j*(-79)
+-94 + j*(112)
+71 + j*(101)
+65 + j*(6)
+58 + j*(45)
+162 + j*(-21)
+55 + j*(-196)
+-175 + j*(-70)
+-47 + j*(199)
+252 + j*(92)
+190 + j*(-209)
+-69 + j*(-199)
+-71 + j*(-8)
+73 + j*(-34)
+11 + j*(-181)
+-168 + j*(-110)
+-112 + j*(105)
+133 + j*(71)
+139 + j*(-204)
+-138 + j*(-275)
+-276 + j*(-60)
+-179 + j*(93)
+-94 + j*(119)
+18 + j*(148)
+162 + j*(6)
+26 + j*(-228)
+-247 + j*(-132)
+-196 + j*(110)
+-56 + j*(52)
+-201 + j*(25)
+-186 + j*(303)
+185 + j*(322)
+255 + j*(-55)
+-76 + j*(-139)
+-141 + j*(135)
+88 + j*(190)
+140 + j*(19)
+35 + j*(-28)
+-6 + j*(30)
+34 + j*(95)
+163 + j*(86)
+219 + j*(-117)
+-15 + j*(-264)
+-230 + j*(-56)
+-86 + j*(169)
+83 + j*(84)
+21 + j*(7)
+28 + j*(96)
+162 + j*(54)
+146 + j*(-94)
+45 + j*(-119)
+13 + j*(-106)
+-49 + j*(-112)
+-103 + j*(-21)
+-24 + j*(58)
+58 + j*(6)
+44 + j*(-64)
+-5 + j*(-103)
+-108 + j*(-93)
+-155 + j*(63)
+35 + j*(171)
+190 + j*(-23)
+7 + j*(-206)
+-175 + j*(-45)
+-35 + j*(121)
+113 + j*(-3)
+18 + j*(-146)
+-119 + j*(-103)
+-148 + j*(11)
+-88 + j*(97)
+18 + j*(88)
+26 + j*(-2)
+-47 + j*(23)
+50 + j*(112)
+197 + j*(-47)
+23 + j*(-272)
+-256 + j*(-141)
+-197 + j*(119)
+-28 + j*(103)
+-75 + j*(49)
+-61 + j*(182)
+146 + j*(168)
+223 + j*(-352)
+-117 + j*(-362)
+-214 + j*(-116)
+-118 + j*(-18)
+-79 + j*(3)
+4 + j*(16)
+34 + j*(-110)
+-133 + j*(-130)
+-123 + j*(67)
+101 + j*(-2)
+-35 + j*(-277)
+-377 + j*(-114)
+-243 + j*(260)
+86 + j*(173)
+13 + j*(-74)
+-164 + j*(1)
+-120 + j*(128)
+-76 + j*(166)
+41 + j*(252)
+271 + j*(109)
+152 + j*(-218)
+-205 + j*(-132)
+-139 + j*(202)
+138 + j*(141)
+63 + j*(-48)
+-29 + j*(73)
+163 + j*(103)
+194 + j*(-156)
+-71 + j*(-252)
+-256 + j*(-65)
+-218 + j*(179)
+21 + j*(313)
+284 + j*(127)
+158 + j*(-184)
+-140 + j*(-66)
+32 + j*(200)
+288 + j*(-52)
+-25 + j*(-322)
+-303 + j*(11)
+8 + j*(266)
+199 + j*(1)
+-21 + j*(-95)
+-13 + j*(100)
+170 + j*(16)
+52 + j*(-146)
+-64 + j*(-15)
+80 + j*(44)
+100 + j*(-100)
+-12 + j*(-95)
+40 + j*(-29)
+87 + j*(-139)
+-32 + j*(-217)
+-127 + j*(-185)
+-219 + j*(-163)
+-351 + j*(-13)
+-260 + j*(244)
+8 + j*(251)
+52 + j*(61)
+-82 + j*(55)
+-55 + j*(198)
+103 + j*(207)
+172 + j*(102)
+163 + j*(34)
+175 + j*(-6)
+187 + j*(-92)
+112 + j*(-191)
+-13 + j*(-187)
+-48 + j*(-117)
+-37 + j*(-129)
+-129 + j*(-146)
+-194 + j*(-21)
+-95 + j*(64)
+-56 + j*(-2)
+-133 + j*(26)
+-59 + j*(139)
+74 + j*(41)
+-53 + j*(-100)
+-219 + j*(56)
+-78 + j*(266)
+144 + j*(188)
+136 + j*(12)
+25 + j*(2)
+35 + j*(95)
+173 + j*(95)
+249 + j*(-93)
+69 + j*(-274)
+-174 + j*(-158)
+-117 + j*(83)
+91 + j*(48)
+60 + j*(-139)
+-109 + j*(-133)
+-146 + j*(-28)
+-153 + j*(18)
+-174 + j*(133)
+-21 + j*(262)
+191 + j*(147)
+131 + j*(-84)
+-91 + j*(-60)
+-91 + j*(168)
+141 + j*(219)
+254 + j*(37)
+179 + j*(-83)
+151 + j*(-97)
+132 + j*(-204)
+-59 + j*(-262)
+-197 + j*(-70)
+-52 + j*(82)
+57 + j*(-21)
+-24 + j*(-64)
+4 + j*(2)
+58 + j*(-95)
+-100 + j*(-137)
+-112 + j*(71)
+148 + j*(45)
+110 + j*(-274)
+-224 + j*(-282)
+-287 + j*(-44)
+-231 + j*(-8)
+-341 + j*(89)
+-217 + j*(372)
+134 + j*(326)
+149 + j*(50)
+1 + j*(65)
+110 + j*(130)
+159 + j*(-41)
+-1 + j*(-98)
+-35 + j*(-6)
+-40 + j*(-34)
+-161 + j*(46)
+-49 + j*(272)
+239 + j*(190)
+215 + j*(-86)
+18 + j*(-94)
+22 + j*(13)
+71 + j*(-9)
+58 + j*(-19)
+90 + j*(-33)
+60 + j*(-100)
+-13 + j*(-57)
+71 + j*(-2)
+117 + j*(-132)
+-30 + j*(-194)
+-86 + j*(-75)
+-5 + j*(-81)
+-77 + j*(-177)
+-211 + j*(-114)
+-216 + j*(12)
+-179 + j*(95)
+-92 + j*(181)
+43 + j*(148)
+42 + j*(47)
+11 + j*(85)
+128 + j*(83)
+135 + j*(-89)
+-26 + j*(-108)
+-13 + j*(-4)
+34 + j*(-100)
+-165 + j*(-124)
+-202 + j*(153)
+97 + j*(221)
+173 + j*(-41)
+-33 + j*(-90)
+-23 + j*(67)
+114 + j*(-3)
+16 + j*(-141)
+-141 + j*(-59)
+-120 + j*(104)
+6 + j*(171)
+139 + j*(124)
+180 + j*(-7)
+117 + j*(-78)
+108 + j*(-89)
+84 + j*(-193)
+-108 + j*(-221)
+-190 + j*(-8)
+10 + j*(79)
+62 + j*(-123)
+-175 + j*(-160)
+-235 + j*(95)
+-3 + j*(199)
+134 + j*(30)
+48 + j*(-132)
+-129 + j*(-153)
+-287 + j*(-12)
+-277 + j*(249)
+-39 + j*(432)
+274 + j*(365)
+433 + j*(85)
+322 + j*(-204)
+59 + j*(-260)
+-57 + j*(-103)
+18 + j*(-27)
+33 + j*(-77)
+-15 + j*(-50)
+49 + j*(-8)
+103 + j*(-109)
+4 + j*(-202)
+-118 + j*(-167)
+-178 + j*(-77)
+-171 + j*(42)
+-45 + j*(113)
+62 + j*(-1)
+-47 + j*(-123)
+-185 + j*(-22)
+-116 + j*(124)
+4 + j*(99)
+1 + j*(15)
+-64 + j*(18)
+-69 + j*(95)
+28 + j*(132)
+93 + j*(33)
+-4 + j*(-34)
+-49 + j*(76)
+84 + j*(90)
+58 + j*(-60)
+-105 + j*(33)
+72 + j*(223)
+306 + j*(-32)
+3 + j*(-308)
+-298 + j*(17)
+28 + j*(320)
+315 + j*(13)
+51 + j*(-237)
+-146 + j*(-25)
+-1 + j*(113)
+62 + j*(49)
+73 + j*(97)
+251 + j*(71)
+310 + j*(-189)
+95 + j*(-368)
+-134 + j*(-315)
+-258 + j*(-168)
+-263 + j*(39)
+-74 + j*(165)
+98 + j*(18)
+-33 + j*(-171)
+-260 + j*(-57)
+-216 + j*(215)
+39 + j*(288)
+199 + j*(135)
+175 + j*(-11)
+128 + j*(-47)
+139 + j*(-87)
+107 + j*(-184)
+-12 + j*(-233)
+-125 + j*(-194)
+-191 + j*(-104)
+-168 + j*(8)
+-58 + j*(2)
+-112 + j*(-141)
+-364 + j*(-62)
+-354 + j*(296)
+-7 + j*(395)
+122 + j*(168)
+4 + j*(133)
+89 + j*(241)
+245 + j*(127)
+202 + j*(-16)
+177 + j*(-44)
+158 + j*(-179)
+-78 + j*(-233)
+-194 + j*(-3)
+-25 + j*(98)
+-21 + j*(-19)
+-141 + j*(86)
+23 + j*(247)
+190 + j*(107)
+105 + j*(16)
+142 + j*(83)
+241 + j*(-56)
+65 + j*(-168)
+5 + j*(20)
+246 + j*(1)
+198 + j*(-315)
+-134 + j*(-306)
+-176 + j*(-57)
+-74 + j*(-21)
+-92 + j*(25)
+76 + j*(118)
+253 + j*(-148)
+-59 + j*(-423)
+-412 + j*(-146)
+-233 + j*(209)
+33 + j*(124)
+-13 + j*(-18)
+-54 + j*(36)
+2 + j*(25)
+-38 + j*(-10)
+-30 + j*(65)
+95 + j*(10)
+16 + j*(-184)
+-251 + j*(-123)
+-256 + j*(179)
+20 + j*(262)
+134 + j*(60)
+3 + j*(-25)
+-24 + j*(76)
+87 + j*(51)
+25 + j*(-78)
+-124 + j*(8)
+-28 + j*(175)
+152 + j*(83)
+81 + j*(-86)
+-64 + j*(-41)
+-49 + j*(65)
+-4 + j*(88)
+44 + j*(122)
+156 + j*(86)
+158 + j*(-56)
+40 + j*(-72)
+57 + j*(4)
+123 + j*(-68)
+23 + j*(-143)
+-40 + j*(-57)
+34 + j*(-45)
+-11 + j*(-144)
+-154 + j*(-81)
+-125 + j*(83)
+10 + j*(102)
+62 + j*(28)
+48 + j*(-32)
+-8 + j*(-69)
+-83 + j*(-17)
+-49 + j*(91)
+76 + j*(95)
+133 + j*(-16)
+76 + j*(-117)
+-46 + j*(-124)
+-100 + j*(-6)
+15 + j*(78)
+121 + j*(-42)
+18 + j*(-172)
+-105 + j*(-120)
+-112 + j*(-68)
+-171 + j*(-49)
+-202 + j*(98)
+-40 + j*(182)
+48 + j*(47)
+-74 + j*(1)
+-91 + j*(130)
+13 + j*(153)
+28 + j*(134)
+112 + j*(191)
+283 + j*(66)
+190 + j*(-181)
+-50 + j*(-140)
+-25 + j*(47)
+116 + j*(8)
+77 + j*(-105)
+-1 + j*(-88)
+-8 + j*(-64)
+-26 + j*(-51)
+-6 + j*(-22)
+13 + j*(-75)
+-98 + j*(-91)
+-134 + j*(87)
+96 + j*(171)
+262 + j*(-78)
+49 + j*(-341)
+-283 + j*(-235)
+-309 + j*(95)
+-49 + j*(218)
+96 + j*(40)
+-30 + j*(-72)
+-94 + j*(37)
+9 + j*(51)
+-33 + j*(-47)
+-124 + j*(53)
+39 + j*(127)
+79 + j*(-116)
+-263 + j*(-139)
+-325 + j*(289)
+103 + j*(416)
+244 + j*(88)
+29 + j*(35)
+117 + j*(213)
+332 + j*(40)
+176 + j*(-206)
+-27 + j*(-109)
+34 + j*(4)
+69 + j*(-52)
+26 + j*(-38)
+86 + j*(-21)
+98 + j*(-133)
+-35 + j*(-187)
+-146 + j*(-99)
+-163 + j*(30)
+-75 + j*(153)
+102 + j*(144)
+151 + j*(-22)
+29 + j*(-74)
+21 + j*(30)
+142 + j*(8)
+147 + j*(-128)
+60 + j*(-193)
+-25 + j*(-213)
+-138 + j*(-165)
+-137 + j*(-36)
+-25 + j*(-57)
+-117 + j*(-185)
+-313 + j*(-41)
+-186 + j*(215)
+73 + j*(129)
+10 + j*(-91)
+-188 + j*(-33)
+-156 + j*(150)
+-1 + j*(170)
+66 + j*(65)
+9 + j*(-28)
+-105 + j*(-4)
+-117 + j*(129)
+7 + j*(177)
+62 + j*(92)
+2 + j*(70)
+-1 + j*(146)
+91 + j*(202)
+249 + j*(173)
+368 + j*(-40)
+200 + j*(-308)
+-124 + j*(-233)
+-95 + j*(58)
+148 + j*(-4)
+25 + j*(-247)
+-243 + j*(-95)
+-110 + j*(173)
+111 + j*(69)
+13 + j*(-80)
+-71 + j*(30)
+45 + j*(75)
+62 + j*(-25)
+-4 + j*(-7)
+66 + j*(32)
+112 + j*(-86)
+-21 + j*(-180)
+-173 + j*(-95)
+-192 + j*(79)
+-62 + j*(213)
+132 + j*(177)
+175 + j*(3)
+57 + j*(-47)
+61 + j*(55)
+217 + j*(21)
+240 + j*(-191)
+69 + j*(-334)
+-145 + j*(-303)
+-267 + j*(-139)
+-214 + j*(37)
+-87 + j*(57)
+-81 + j*(0)
+-100 + j*(49)
+-11 + j*(47)
+-57 + j*(-75)
+-234 + j*(18)
+-134 + j*(261)
+125 + j*(190)
+74 + j*(-13)
+-49 + j*(70)
+92 + j*(134)
+115 + j*(-39)
+-58 + j*(3)
+84 + j*(188)
+326 + j*(-57)
+28 + j*(-380)
+-365 + j*(-95)
+-148 + j*(321)
+235 + j*(210)
+224 + j*(-69)
+118 + j*(-110)
+112 + j*(-178)
+-54 + j*(-281)
+-257 + j*(-122)
+-157 + j*(101)
+25 + j*(32)
+-56 + j*(-122)
+-231 + j*(-43)
+-213 + j*(147)
+-79 + j*(205)
+-19 + j*(182)
+27 + j*(203)
+136 + j*(184)
+176 + j*(63)
+98 + j*(25)
+138 + j*(98)
+284 + j*(-20)
+152 + j*(-266)
+-157 + j*(-163)
+-75 + j*(167)
+272 + j*(98)
+243 + j*(-262)
+-79 + j*(-310)
+-180 + j*(-104)
+-121 + j*(-22)
+-129 + j*(17)
+-73 + j*(122)
+73 + j*(115)
+127 + j*(-4)
+89 + j*(-89)
+13 + j*(-136)
+-88 + j*(-99)
+-75 + j*(14)
+24 + j*(-11)
+-43 + j*(-105)
+-148 + j*(16)
+12 + j*(148)
+184 + j*(-37)
+13 + j*(-256)
+-235 + j*(-158)
+-253 + j*(63)
+-132 + j*(175)
+7 + j*(188)
+121 + j*(86)
+82 + j*(-61)
+-48 + j*(-65)
+-71 + j*(22)
+-37 + j*(45)
+-30 + j*(61)
+25 + j*(79)
+67 + j*(5)
+-13 + j*(-47)
+-65 + j*(34)
+18 + j*(83)
+67 + j*(-1)
+-18 + j*(-66)
+-122 + j*(-3)
+-121 + j*(146)
+42 + j*(250)
+243 + j*(139)
+220 + j*(-100)
+18 + j*(-141)
+-32 + j*(-6)
+63 + j*(11)
+41 + j*(-72)
+-39 + j*(-31)
+7 + j*(40)
+64 + j*(-4)
+33 + j*(-47)
+13 + j*(-38)
+-11 + j*(-57)
+-86 + j*(-13)
+-52 + j*(140)
+160 + j*(158)
+261 + j*(-52)
+122 + j*(-205)
+4 + j*(-161)
+17 + j*(-146)
+-57 + j*(-216)
+-218 + j*(-132)
+-185 + j*(71)
+6 + j*(81)
+26 + j*(-89)
+-151 + j*(-119)
+-225 + j*(56)
+-95 + j*(184)
+45 + j*(132)
+45 + j*(26)
+-18 + j*(23)
+0 + j*(76)
+54 + j*(44)
+15 + j*(1)
+-4 + j*(78)
+135 + j*(101)
+208 + j*(-83)
+43 + j*(-216)
+-100 + j*(-126)
+-80 + j*(-51)
+-107 + j*(-56)
+-152 + j*(42)
+-45 + j*(132)
+49 + j*(54)
+0 + j*(1)
+0 + j*(45)
+58 + j*(7)
+15 + j*(-72)
+-64 + j*(-62)
+-104 + j*(-23)
+-142 + j*(49)
+-80 + j*(156)
+31 + j*(118)
+-28 + j*(48)
+-75 + j*(192)
+141 + j*(274)
+272 + j*(69)
+136 + j*(-35)
+148 + j*(63)
+301 + j*(-52)
+177 + j*(-295)
+-89 + j*(-259)
+-163 + j*(-65)
+-95 + j*(74)
+64 + j*(137)
+232 + j*(-18)
+102 + j*(-238)
+-108 + j*(-122)
+47 + j*(31)
+162 + j*(-208)
+-146 + j*(-344)
+-315 + j*(-50)
+-107 + j*(96)
+-50 + j*(-24)
+-119 + j*(23)
+-1 + j*(54)
+-10 + j*(-113)
+-206 + j*(-80)
+-172 + j*(90)
+-112 + j*(31)
+-278 + j*(105)
+-152 + j*(428)
+272 + j*(356)
+274 + j*(-40)
+-8 + j*(-49)
+43 + j*(140)
+188 + j*(39)
+100 + j*(-66)
+71 + j*(-19)
+104 + j*(-89)
+-40 + j*(-136)
+-99 + j*(35)
+70 + j*(86)
+100 + j*(-71)
+-41 + j*(-81)
+-35 + j*(41)
+64 + j*(29)
+54 + j*(-48)
+4 + j*(-39)
+16 + j*(-15)
+30 + j*(-28)
+23 + j*(-38)
+37 + j*(-33)
+69 + j*(-82)
+5 + j*(-177)
+-146 + j*(-139)
+-141 + j*(26)
+6 + j*(3)
+-82 + j*(-157)
+-302 + j*(-16)
+-176 + j*(260)
+77 + j*(187)
+21 + j*(42)
+0 + j*(155)
+213 + j*(106)
+161 + j*(-171)
+-105 + j*(-142)
+-74 + j*(41)
+-6 + j*(-48)
+-200 + j*(-20)
+-127 + j*(281)
+233 + j*(215)
+174 + j*(-139)
+-139 + j*(-53)
+-16 + j*(238)
+275 + j*(110)
+204 + j*(-158)
+18 + j*(-156)
+-12 + j*(-95)
+-54 + j*(-97)
+-115 + j*(-15)
+-56 + j*(88)
+47 + j*(91)
+103 + j*(29)
+100 + j*(-44)
+52 + j*(-76)
+48 + j*(-64)
+62 + j*(-144)
+-107 + j*(-223)
+-295 + j*(-20)
+-124 + j*(269)
+211 + j*(180)
+210 + j*(-136)
+-30 + j*(-187)
+-75 + j*(-37)
+23 + j*(-43)
+-26 + j*(-152)
+-160 + j*(-112)
+-173 + j*(-1)
+-141 + j*(27)
+-179 + j*(72)
+-134 + j*(211)
+62 + j*(235)
+153 + j*(57)
+18 + j*(-49)
+-91 + j*(59)
+-9 + j*(190)
+154 + j*(190)
+287 + j*(50)
+264 + j*(-194)
+-6 + j*(-338)
+-285 + j*(-137)
+-204 + j*(201)
+122 + j*(242)
+264 + j*(-21)
+90 + j*(-225)
+-133 + j*(-137)
+-104 + j*(73)
+94 + j*(60)
+81 + j*(-141)
+-124 + j*(-130)
+-107 + j*(52)
+30 + j*(-14)
+-123 + j*(-132)
+-267 + j*(105)
+-4 + j*(286)
+173 + j*(42)
+-68 + j*(-75)
+-126 + j*(203)
+191 + j*(258)
+284 + j*(-37)
+79 + j*(-140)
+24 + j*(-43)
+53 + j*(-62)
+-16 + j*(-51)
+40 + j*(43)
+168 + j*(-70)
+23 + j*(-254)
+-206 + j*(-125)
+-115 + j*(107)
+86 + j*(30)
+-8 + j*(-153)
+-216 + j*(-48)
+-146 + j*(204)
+122 + j*(213)
+206 + j*(-9)
+70 + j*(-124)
+-12 + j*(-57)
+35 + j*(-30)
+35 + j*(-92)
+-35 + j*(-102)
+-54 + j*(-55)
+-30 + j*(-59)
+-64 + j*(-103)
+-161 + j*(-87)
+-221 + j*(37)
+-135 + j*(186)
+44 + j*(175)
+94 + j*(25)
+1 + j*(-35)
+-40 + j*(4)
+-54 + j*(4)
+-107 + j*(71)
+4 + j*(193)
+194 + j*(51)
+24 + j*(-204)
+-309 + j*(-17)
+-148 + j*(399)
+307 + j*(319)
+320 + j*(-84)
+30 + j*(-134)
+13 + j*(58)
+161 + j*(40)
+166 + j*(-69)
+151 + j*(-122)
+107 + j*(-256)
+-153 + j*(-310)
+-333 + j*(-22)
+-107 + j*(238)
+148 + j*(95)
+56 + j*(-95)
+-53 + j*(-16)
+44 + j*(20)
+18 + j*(-106)
+-148 + j*(-36)
+-59 + j*(171)
+180 + j*(93)
+134 + j*(-147)
+-69 + j*(-138)
+-74 + j*(8)
+19 + j*(6)
+6 + j*(-56)
+-35 + j*(-47)
+-35 + j*(-32)
+-45 + j*(-34)
+-56 + j*(-30)
+-88 + j*(-30)
+-137 + j*(29)
+-98 + j*(129)
+4 + j*(142)
+40 + j*(108)
+86 + j*(119)
+192 + j*(45)
+163 + j*(-137)
+-23 + j*(-178)
+-109 + j*(-47)
+-45 + j*(38)
+23 + j*(16)
+29 + j*(-38)
+-18 + j*(-78)
+-82 + j*(-54)
+-97 + j*(-8)
+-124 + j*(24)
+-136 + j*(148)
+54 + j*(250)
+238 + j*(50)
+54 + j*(-159)
+-132 + j*(24)
+81 + j*(172)
+197 + j*(-84)
+-91 + j*(-178)
+-169 + j*(130)
+138 + j*(212)
+238 + j*(-50)
+71 + j*(-148)
+27 + j*(-93)
+21 + j*(-141)
+-101 + j*(-151)
+-175 + j*(-35)
+-143 + j*(88)
+-20 + j*(175)
+168 + j*(91)
+126 + j*(-157)
+-150 + j*(-144)
+-145 + j*(139)
+122 + j*(133)
+107 + j*(-90)
+-35 + j*(-45)
+81 + j*(3)
+63 + j*(-230)
+-289 + j*(-218)
+-350 + j*(189)
+14 + j*(330)
+170 + j*(72)
+-1 + j*(-24)
+-21 + j*(124)
+160 + j*(117)
+177 + j*(-96)
+-41 + j*(-163)
+-151 + j*(40)
+27 + j*(177)
+166 + j*(32)
+45 + j*(-67)
+13 + j*(75)
+225 + j*(71)
+252 + j*(-197)
+13 + j*(-288)
+-76 + j*(-163)
+-52 + j*(-177)
+-203 + j*(-203)
+-318 + j*(5)
+-170 + j*(200)
+23 + j*(168)
+77 + j*(37)
+5 + j*(-57)
+-119 + j*(-8)
+-84 + j*(159)
+120 + j*(156)
+163 + j*(-39)
+38 + j*(-105)
+2 + j*(-85)
+-69 + j*(-130)
+-208 + j*(-8)
+-69 + j*(190)
+144 + j*(28)
+-67 + j*(-190)
+-315 + j*(65)
+-78 + j*(351)
+194 + j*(199)
+129 + j*(35)
+116 + j*(79)
+212 + j*(-13)
+105 + j*(-165)
+-42 + j*(-103)
+-18 + j*(-26)
+-33 + j*(-53)
+-98 + j*(36)
+28 + j*(151)
+187 + j*(27)
+95 + j*(-152)
+-76 + j*(-102)
+-53 + j*(45)
+81 + j*(30)
+79 + j*(-110)
+-73 + j*(-139)
+-142 + j*(-1)
+-56 + j*(91)
+11 + j*(70)
+44 + j*(74)
+137 + j*(27)
+115 + j*(-141)
+-91 + j*(-153)
+-125 + j*(53)
+66 + j*(93)
+107 + j*(-72)
+-11 + j*(-115)
+-41 + j*(-74)
+-77 + j*(-88)
+-153 + j*(-8)
+-74 + j*(104)
+13 + j*(44)
+-59 + j*(32)
+12 + j*(166)
+238 + j*(53)
+144 + j*(-252)
+-177 + j*(-214)
+-190 + j*(52)
+-13 + j*(71)
+-35 + j*(-33)
+-102 + j*(30)
+-28 + j*(89)
+14 + j*(33)
+-23 + j*(18)
+-9 + j*(43)
+12 + j*(16)
+-22 + j*(-2)
+-42 + j*(20)
+-49 + j*(36)
+-61 + j*(78)
+-13 + j*(137)
+71 + j*(127)
+106 + j*(69)
+105 + j*(23)
+86 + j*(-14)
+47 + j*(-19)
+42 + j*(12)
+81 + j*(4)
+81 + j*(-41)
+54 + j*(-64)
+29 + j*(-87)
+-44 + j*(-96)
+-117 + j*(-6)
+-57 + j*(128)
+97 + j*(144)
+198 + j*(35)
+192 + j*(-114)
+61 + j*(-221)
+-120 + j*(-144)
+-91 + j*(68)
+144 + j*(69)
+187 + j*(-185)
+-45 + j*(-290)
+-186 + j*(-134)
+-126 + j*(-23)
+-78 + j*(-33)
+-77 + j*(-47)
+-109 + j*(-83)
+-236 + j*(-37)
+-226 + j*(202)
+79 + j*(271)
+223 + j*(-45)
+-52 + j*(-234)
+-246 + j*(-39)
+-148 + j*(95)
+-148 + j*(66)
+-197 + j*(212)
+18 + j*(345)
+206 + j*(161)
+88 + j*(6)
+4 + j*(106)
+112 + j*(158)
+176 + j*(88)
+209 + j*(41)
+247 + j*(-77)
+134 + j*(-211)
+-4 + j*(-175)
+-25 + j*(-144)
+-153 + j*(-154)
+-265 + j*(98)
+23 + j*(327)
+317 + j*(71)
+131 + j*(-193)
+-20 + j*(-42)
+173 + j*(-32)
+96 + j*(-317)
+-264 + j*(-239)
+-225 + j*(116)
+62 + j*(96)
+35 + j*(-115)
+-110 + j*(-95)
+-129 + j*(-40)
+-211 + j*(5)
+-209 + j*(233)
+86 + j*(327)
+258 + j*(68)
+91 + j*(-89)
+32 + j*(23)
+170 + j*(-24)
+79 + j*(-250)
+-222 + j*(-204)
+-284 + j*(109)
+-35 + j*(264)
+156 + j*(127)
+106 + j*(-33)
+9 + j*(1)
+76 + j*(74)
+187 + j*(-17)
+138 + j*(-182)
+-18 + j*(-234)
+-148 + j*(-174)
+-220 + j*(-49)
+-185 + j*(90)
+-85 + j*(149)
+-6 + j*(161)
+112 + j*(158)
+230 + j*(0)
+107 + j*(-209)
+-117 + j*(-146)
+-82 + j*(18)
+-1 + j*(-53)
+-151 + j*(-81)
+-170 + j*(132)
+49 + j*(147)
+28 + j*(-42)
+-135 + j*(54)
+24 + j*(213)
+176 + j*(22)
+-32 + j*(-86)
+-86 + j*(156)
+201 + j*(181)
+238 + j*(-119)
+-22 + j*(-173)
+-73 + j*(19)
+60 + j*(59)
+112 + j*(-21)
+105 + j*(-103)
+6 + j*(-199)
+-177 + j*(-119)
+-129 + j*(101)
+83 + j*(54)
+-2 + j*(-140)
+-205 + j*(7)
+-2 + j*(243)
+291 + j*(10)
+77 + j*(-358)
+-356 + j*(-235)
+-397 + j*(187)
+-103 + j*(388)
+156 + j*(310)
+265 + j*(131)
+234 + j*(-39)
+114 + j*(-98)
+68 + j*(-42)
+121 + j*(-46)
+118 + j*(-134)
+43 + j*(-175)
+-6 + j*(-183)
+-94 + j*(-211)
+-239 + j*(-127)
+-238 + j*(78)
+-62 + j*(156)
+25 + j*(55)
+-22 + j*(17)
+-8 + j*(59)
+60 + j*(25)
+52 + j*(-66)
+-31 + j*(-122)
+-165 + j*(-97)
+-246 + j*(84)
+-81 + j*(274)
+169 + j*(173)
+129 + j*(-61)
+-41 + j*(-42)
+-1 + j*(53)
+28 + j*(-37)
+-127 + j*(-18)
+-95 + j*(196)
+140 + j*(185)
+142 + j*(-6)
+23 + j*(27)
+132 + j*(103)
+218 + j*(-57)
+79 + j*(-162)
+8 + j*(-87)
+34 + j*(-99)
+-49 + j*(-119)
+-70 + j*(-13)
+31 + j*(-25)
+-42 + j*(-132)
+-174 + j*(-13)
+-49 + j*(132)
+66 + j*(23)
+-40 + j*(-21)
+-6 + j*(108)
+163 + j*(21)
+55 + j*(-175)
+-128 + j*(-65)
+-13 + j*(71)
+65 + j*(-69)
+-99 + j*(-96)
+-74 + j*(76)
+100 + j*(-28)
+-100 + j*(-233)
+-386 + j*(34)
+-129 + j*(409)
+279 + j*(222)
+163 + j*(-144)
+-134 + j*(-53)
+-40 + j*(199)
+188 + j*(122)
+153 + j*(-63)
+43 + j*(-46)
+86 + j*(-2)
+121 + j*(-87)
+28 + j*(-152)
+-52 + j*(-89)
+-8 + j*(-25)
+50 + j*(-85)
+-23 + j*(-180)
+-165 + j*(-146)
+-204 + j*(-16)
+-154 + j*(54)
+-144 + j*(88)
+-98 + j*(173)
+43 + j*(182)
+98 + j*(55)
+8 + j*(6)
+-11 + j*(95)
+104 + j*(115)
+175 + j*(6)
+135 + j*(-130)
+-28 + j*(-204)
+-218 + j*(-63)
+-127 + j*(205)
+177 + j*(165)
+170 + j*(-130)
+-81 + j*(-122)
+-25 + j*(62)
+99 + j*(-93)
+-175 + j*(-198)
+-305 + j*(164)
+71 + j*(327)
+210 + j*(6)
+-46 + j*(-25)
+81 + j*(217)
+372 + j*(-47)
+49 + j*(-410)
+-353 + j*(-103)
+-105 + j*(274)
+185 + j*(89)
+45 + j*(-71)
+21 + j*(68)
+194 + j*(-9)
+76 + j*(-224)
+-145 + j*(-120)
+-81 + j*(67)
+43 + j*(45)
+63 + j*(8)
+141 + j*(-40)
+125 + j*(-245)
+-159 + j*(-333)
+-387 + j*(-76)
+-262 + j*(242)
+52 + j*(285)
+228 + j*(51)
+97 + j*(-194)
+-165 + j*(-156)
+-192 + j*(86)
+6 + j*(148)
+72 + j*(6)
+-21 + j*(-44)
+-42 + j*(8)
+-21 + j*(-8)
+-69 + j*(-26)
+-122 + j*(25)
+-125 + j*(115)
+-47 + j*(216)
+127 + j*(212)
+209 + j*(37)
+93 + j*(-69)
+43 + j*(0)
+126 + j*(-35)
+35 + j*(-187)
+-184 + j*(-109)
+-168 + j*(132)
+25 + j*(175)
+89 + j*(71)
+62 + j*(46)
+91 + j*(54)
+129 + j*(8)
+129 + j*(-59)
+84 + j*(-127)
+-25 + j*(-149)
+-112 + j*(-56)
+-74 + j*(61)
+32 + j*(75)
+75 + j*(9)
+45 + j*(-30)
+35 + j*(-6)
+99 + j*(-19)
+99 + j*(-148)
+-78 + j*(-198)
+-180 + j*(-15)
+-16 + j*(105)
+88 + j*(-45)
+-67 + j*(-121)
+-122 + j*(45)
+47 + j*(96)
+112 + j*(-54)
+18 + j*(-138)
+-59 + j*(-147)
+-173 + j*(-126)
+-249 + j*(50)
+-78 + j*(206)
+102 + j*(76)
+4 + j*(-79)
+-115 + j*(8)
+-25 + j*(96)
+45 + j*(4)
+-52 + j*(-67)
+-154 + j*(13)
+-117 + j*(154)
+38 + j*(181)
+104 + j*(40)
+-29 + j*(-26)
+-80 + j*(121)
+78 + j*(172)
+119 + j*(44)
+52 + j*(59)
+178 + j*(81)
+203 + j*(-158)
+-105 + j*(-211)
+-176 + j*(105)
+100 + j*(158)
+86 + j*(-57)
+-78 + j*(70)
+170 + j*(234)
+381 + j*(-73)
+115 + j*(-324)
+-103 + j*(-158)
+-21 + j*(-47)
+-13 + j*(-86)
+-24 + j*(-48)
+26 + j*(-95)
+-98 + j*(-156)
+-170 + j*(23)
+34 + j*(74)
+33 + j*(-156)
+-228 + j*(-105)
+-163 + j*(162)
+49 + j*(91)
+-55 + j*(-23)
+-78 + j*(143)
+136 + j*(117)
+88 + j*(-100)
+-74 + j*(-24)
+45 + j*(58)
+47 + j*(-107)
+-160 + j*(-49)
+-60 + j*(171)
+133 + j*(49)
+-1 + j*(-78)
+-38 + j*(78)
+146 + j*(24)
+27 + j*(-180)
+-169 + j*(-9)
+54 + j*(150)
+183 + j*(-133)
+-143 + j*(-261)
+-291 + j*(56)
+-34 + j*(204)
+76 + j*(14)
+-81 + j*(-49)
+-136 + j*(98)
+-8 + j*(189)
+109 + j*(116)
+85 + j*(4)
+-1 + j*(27)
+54 + j*(110)
+161 + j*(28)
+81 + j*(-88)
+-9 + j*(-13)
+81 + j*(32)
+89 + j*(-84)
+-42 + j*(-56)
+25 + j*(90)
+211 + j*(2)
+165 + j*(-228)
+-50 + j*(-291)
+-224 + j*(-180)
+-269 + j*(36)
+-84 + j*(199)
+123 + j*(67)
+13 + j*(-132)
+-170 + j*(-20)
+-52 + j*(141)
+76 + j*(28)
+-49 + j*(-59)
+-116 + j*(81)
+17 + j*(170)
+146 + j*(95)
+168 + j*(-48)
+49 + j*(-161)
+-111 + j*(-78)
+-35 + j*(81)
+108 + j*(-36)
+-85 + j*(-177)
+-255 + j*(91)
+52 + j*(313)
+323 + j*(22)
+112 + j*(-261)
+-116 + j*(-156)
+-99 + j*(-52)
+-137 + j*(-53)
+-193 + j*(76)
+-76 + j*(194)
+32 + j*(173)
+106 + j*(176)
+270 + j*(93)
+274 + j*(-181)
+8 + j*(-296)
+-151 + j*(-134)
+-101 + j*(-42)
+-129 + j*(-54)
+-191 + j*(64)
+-76 + j*(199)
+84 + j*(156)
+115 + j*(51)
+105 + j*(1)
+103 + j*(-62)
+23 + j*(-135)
+-111 + j*(-93)
+-134 + j*(71)
+18 + j*(165)
+168 + j*(69)
+170 + j*(-89)
+86 + j*(-190)
+-62 + j*(-257)
+-286 + j*(-156)
+-298 + j*(162)
+30 + j*(271)
+175 + j*(-34)
+-128 + j*(-179)
+-298 + j*(134)
+-25 + j*(361)
+221 + j*(213)
+233 + j*(49)
+245 + j*(-49)
+184 + j*(-243)
+-98 + j*(-312)
+-303 + j*(-71)
+-190 + j*(200)
+52 + j*(226)
+160 + j*(67)
+76 + j*(-42)
+1 + j*(37)
+141 + j*(112)
+286 + j*(-86)
+103 + j*(-325)
+-180 + j*(-226)
+-165 + j*(12)
+-15 + j*(30)
+-6 + j*(-50)
+-42 + j*(-57)
+-66 + j*(-71)
+-141 + j*(-52)
+-167 + j*(64)
+-81 + j*(138)
+-5 + j*(130)
+53 + j*(117)
+122 + j*(42)
+70 + j*(-81)
+-72 + j*(-55)
+-62 + j*(87)
+76 + j*(93)
+98 + j*(-37)
+-18 + j*(-68)
+-57 + j*(47)
+69 + j*(101)
+165 + j*(-36)
+36 + j*(-178)
+-132 + j*(-77)
+-51 + j*(88)
+105 + j*(7)
+21 + j*(-148)
+-135 + j*(-89)
+-132 + j*(34)
+-95 + j*(84)
+-34 + j*(168)
+147 + j*(148)
+190 + j*(-71)
+-7 + j*(-144)
+-42 + j*(10)
+92 + j*(-43)
+-45 + j*(-206)
+-257 + j*(-30)
+-90 + j*(206)
+115 + j*(66)
+-11 + j*(-71)
+-69 + j*(61)
+85 + j*(42)
+-3 + j*(-151)
+-255 + j*(-30)
+-164 + j*(272)
+136 + j*(253)
+180 + j*(23)
+35 + j*(-36)
+-21 + j*(70)
+77 + j*(161)
+246 + j*(105)
+296 + j*(-127)
+86 + j*(-293)
+-139 + j*(-175)
+-122 + j*(16)
+-23 + j*(62)
+29 + j*(76)
+148 + j*(69)
+228 + j*(-103)
+88 + j*(-265)
+-78 + j*(-213)
+-85 + j*(-136)
+-115 + j*(-165)
+-247 + j*(-107)
+-253 + j*(92)
+-76 + j*(185)
+58 + j*(76)
+3 + j*(-54)
+-125 + j*(-25)
+-125 + j*(115)
+2 + j*(161)
+76 + j*(91)
+89 + j*(49)
+140 + j*(-18)
+88 + j*(-181)
+-148 + j*(-204)
+-255 + j*(20)
+-112 + j*(158)
+-23 + j*(98)
+-56 + j*(100)
+-4 + j*(156)
+62 + j*(124)
+68 + j*(116)
+159 + j*(119)
+223 + j*(-42)
+63 + j*(-168)
+-75 + j*(-52)
+-2 + j*(51)
+45 + j*(11)
+22 + j*(23)
+86 + j*(39)
+112 + j*(-45)
+52 + j*(-62)
+90 + j*(-48)
+91 + j*(-175)
+-97 + j*(-210)
+-167 + j*(-32)
+-47 + j*(19)
+-75 + j*(-48)
+-134 + j*(64)
+28 + j*(141)
+114 + j*(-26)
+-23 + j*(-104)
+-72 + j*(-25)
+-67 + j*(-39)
+-186 + j*(16)
+-132 + j*(243)
+148 + j*(263)
+255 + j*(40)
+181 + j*(-93)
+116 + j*(-193)
+-99 + j*(-260)
+-295 + j*(-11)
+-73 + j*(253)
+186 + j*(70)
+24 + j*(-122)
+-80 + j*(49)
+122 + j*(68)
+71 + j*(-155)
+-151 + j*(-36)
+57 + j*(177)
+284 + j*(-136)
+-108 + j*(-418)
+-460 + j*(-14)
+-102 + j*(373)
+259 + j*(76)
+0 + j*(-238)
+-278 + j*(4)
+-77 + j*(258)
+132 + j*(125)
+50 + j*(5)
+30 + j*(89)
+156 + j*(59)
+136 + j*(-91)
+25 + j*(-89)
+60 + j*(-50)
+67 + j*(-173)
+-136 + j*(-235)
+-296 + j*(-33)
+-186 + j*(202)
+47 + j*(213)
+152 + j*(32)
+25 + j*(-130)
+-182 + j*(-38)
+-134 + j*(219)
+156 + j*(234)
+235 + j*(-38)
+19 + j*(-140)
+-61 + j*(23)
+84 + j*(67)
+126 + j*(-87)
+-25 + j*(-165)
+-162 + j*(-55)
+-124 + j*(133)
+90 + j*(179)
+211 + j*(-38)
+13 + j*(-212)
+-182 + j*(-48)
+-60 + j*(128)
+51 + j*(36)
+-46 + j*(10)
+-1 + j*(147)
+177 + j*(74)
+106 + j*(-110)
+-42 + j*(-34)
+55 + j*(71)
+138 + j*(-32)
+71 + j*(-79)
+117 + j*(-62)
+138 + j*(-248)
+-153 + j*(-356)
+-378 + j*(-59)
+-158 + j*(226)
+103 + j*(93)
+21 + j*(-108)
+-128 + j*(-50)
+-100 + j*(57)
+-52 + j*(62)
+-37 + j*(88)
+56 + j*(103)
+120 + j*(-14)
+18 + j*(-119)
+-86 + j*(-52)
+-49 + j*(19)
+-28 + j*(-16)
+-78 + j*(4)
+-28 + j*(66)
+40 + j*(-21)
+-94 + j*(-110)
+-235 + j*(46)
+-122 + j*(244)
+82 + j*(224)
+149 + j*(86)
+103 + j*(-18)
+2 + j*(-36)
+-35 + j*(56)
+57 + j*(84)
+52 + j*(-11)
+-54 + j*(59)
+101 + j*(197)
+290 + j*(-27)
+21 + j*(-250)
+-200 + j*(57)
+144 + j*(256)
+317 + j*(-111)
+-35 + j*(-231)
+-62 + j*(93)
+255 + j*(8)
+97 + j*(-315)
+-196 + j*(-134)
+-5 + j*(62)
+65 + j*(-169)
+-229 + j*(-138)
+-146 + j*(197)
+177 + j*(89)
+48 + j*(-173)
+-131 + j*(-8)
+79 + j*(94)
+136 + j*(-148)
+-89 + j*(-189)
+-98 + j*(-37)
+-33 + j*(-115)
+-235 + j*(-156)
+-340 + j*(135)
+-59 + j*(346)
+229 + j*(163)
+170 + j*(-139)
+-100 + j*(-177)
+-182 + j*(55)
+35 + j*(134)
+83 + j*(-104)
+-205 + j*(-132)
+-235 + j*(199)
+92 + j*(236)
+101 + j*(-49)
+-137 + j*(12)
+4 + j*(226)
+203 + j*(23)
+-34 + j*(-153)
+-190 + j*(95)
+35 + j*(227)
+117 + j*(71)
+25 + j*(83)
+146 + j*(158)
+243 + j*(-14)
+93 + j*(-117)
+33 + j*(-8)
+132 + j*(-5)
+119 + j*(-95)
+81 + j*(-100)
+89 + j*(-154)
+-29 + j*(-220)
+-136 + j*(-104)
+-52 + j*(-29)
+-68 + j*(-131)
+-256 + j*(-42)
+-174 + j*(246)
+167 + j*(237)
+245 + j*(-77)
+22 + j*(-215)
+-128 + j*(-107)
+-121 + j*(9)
+-64 + j*(64)
+8 + j*(53)
+4 + j*(-2)
+-37 + j*(31)
+57 + j*(78)
+134 + j*(-76)
+-64 + j*(-196)
+-221 + j*(20)
+-8 + j*(187)
+134 + j*(-31)
+-113 + j*(-128)
+-178 + j*(175)
+181 + j*(239)
+266 + j*(-146)
+-107 + j*(-251)
+-209 + j*(91)
+103 + j*(182)
+199 + j*(-104)
+-37 + j*(-228)
+-179 + j*(-75)
+-117 + j*(39)
+-67 + j*(19)
+-123 + j*(6)
+-182 + j*(136)
+-29 + j*(314)
+270 + j*(224)
+297 + j*(-118)
+5 + j*(-243)
+-147 + j*(-53)
+-59 + j*(62)
+-13 + j*(42)
+6 + j*(65)
+78 + j*(22)
+16 + j*(-84)
+-120 + j*(-11)
+-54 + j*(141)
+86 + j*(102)
+69 + j*(6)
+18 + j*(23)
+39 + j*(59)
+78 + j*(63)
+129 + j*(35)
+130 + j*(-42)
+67 + j*(-43)
+124 + j*(16)
+233 + j*(-110)
+101 + j*(-299)
+-107 + j*(-228)
+-93 + j*(-87)
+-44 + j*(-103)
+-73 + j*(-93)
+-12 + j*(-100)
+-74 + j*(-272)
+-402 + j*(-230)
+-477 + j*(182)
+-138 + j*(373)
+49 + j*(196)
+-4 + j*(135)
+72 + j*(177)
+160 + j*(41)
+48 + j*(-70)
+-42 + j*(-15)
+-48 + j*(32)
+-59 + j*(100)
+64 + j*(181)
+217 + j*(40)
+97 + j*(-146)
+-69 + j*(-56)
+16 + j*(49)
+51 + j*(-58)
+-100 + j*(-43)
+-62 + j*(161)
+190 + j*(142)
+240 + j*(-128)
+1 + j*(-267)
+-202 + j*(-106)
+-123 + j*(113)
+81 + j*(69)
+27 + j*(-138)
+-227 + j*(-65)
+-180 + j*(252)
+156 + j*(284)
+272 + j*(17)
+142 + j*(-124)
+55 + j*(-136)
+-46 + j*(-150)
+-151 + j*(-18)
+-26 + j*(148)
+173 + j*(47)
+125 + j*(-160)
+-49 + j*(-190)
+-146 + j*(-95)
+-146 + j*(23)
+-39 + j*(73)
+-4 + j*(-42)
+-192 + j*(-47)
+-214 + j*(250)
+153 + j*(349)
+335 + j*(-4)
+52 + j*(-206)
+-117 + j*(13)
+78 + j*(148)
+223 + j*(-25)
+107 + j*(-204)
+-91 + j*(-177)
+-137 + j*(24)
+80 + j*(119)
+240 + j*(-135)
+-16 + j*(-385)
+-337 + j*(-204)
+-276 + j*(81)
+-131 + j*(95)
+-144 + j*(98)
+-69 + j*(190)
+58 + j*(122)
+11 + j*(36)
+-13 + j*(97)
+72 + j*(85)
+51 + j*(5)
+15 + j*(36)
+71 + j*(20)
+8 + j*(-52)
+-58 + j*(57)
+110 + j*(100)
+132 + j*(-136)
+-168 + j*(-152)
+-199 + j*(187)
+130 + j*(242)
+191 + j*(-30)
+-13 + j*(-49)
+32 + j*(131)
+248 + j*(64)
+243 + j*(-201)
+-5 + j*(-322)
+-230 + j*(-169)
+-196 + j*(75)
+-16 + j*(98)
+-35 + j*(-2)
+-109 + j*(129)
+127 + j*(247)
+310 + j*(-20)
+88 + j*(-214)
+-17 + j*(-38)
+181 + j*(-79)
+35 + j*(-376)
+-369 + j*(-230)
+-305 + j*(204)
+51 + j*(236)
+142 + j*(31)
+117 + j*(-63)
+76 + j*(-205)
+-181 + j*(-262)
+-340 + j*(21)
+-110 + j*(234)
+94 + j*(80)
+-3 + j*(-83)
+-133 + j*(-50)
+-197 + j*(47)
+-180 + j*(219)
+45 + j*(315)
+223 + j*(128)
+105 + j*(-37)
+23 + j*(57)
+156 + j*(66)
+145 + j*(-112)
+-32 + j*(-117)
+-41 + j*(13)
+35 + j*(-1)
+-9 + j*(-37)
+-20 + j*(28)
+58 + j*(18)
+37 + j*(-65)
+-47 + j*(-47)
+-27 + j*(33)
+58 + j*(1)
+15 + j*(-119)
+-175 + j*(-94)
+-216 + j*(169)
+78 + j*(308)
+295 + j*(36)
+76 + j*(-201)
+-128 + j*(-14)
+61 + j*(145)
+202 + j*(-52)
+37 + j*(-194)
+-88 + j*(-111)
+-111 + j*(-56)
+-168 + j*(45)
+-43 + j*(217)
+190 + j*(112)
+100 + j*(-115)
+-81 + j*(7)
+115 + j*(171)
+320 + j*(-76)
+110 + j*(-345)
+-170 + j*(-251)
+-202 + j*(-48)
+-118 + j*(45)
+-31 + j*(53)
+4 + j*(-3)
+-32 + j*(0)
+56 + j*(38)
+139 + j*(-158)
+-148 + j*(-346)
+-462 + j*(-49)
+-251 + j*(342)
+106 + j*(250)
+93 + j*(13)
+-2 + j*(1)
+-17 + j*(-29)
+-165 + j*(-13)
+-170 + j*(245)
+145 + j*(297)
+227 + j*(16)
+27 + j*(-17)
+124 + j*(132)
+296 + j*(-95)
+11 + j*(-325)
+-241 + j*(-57)
+-6 + j*(150)
+126 + j*(-81)
+-124 + j*(-161)
+-195 + j*(89)
+9 + j*(161)
+58 + j*(30)
+-7 + j*(32)
+46 + j*(65)
+68 + j*(-27)
+-42 + j*(-48)
+-82 + j*(63)
+6 + j*(127)
+64 + j*(95)
+73 + j*(83)
+127 + j*(93)
+195 + j*(22)
+158 + j*(-81)
+71 + j*(-58)
+144 + j*(21)
+292 + j*(-108)
+192 + j*(-371)
+-107 + j*(-387)
+-221 + j*(-170)
+-129 + j*(-66)
+-102 + j*(-100)
+-140 + j*(-81)
+-131 + j*(-42)
+-135 + j*(-43)
+-150 + j*(-1)
+-105 + j*(19)
+-119 + j*(-37)
+-231 + j*(11)
+-203 + j*(185)
+-24 + j*(214)
+26 + j*(82)
+-66 + j*(65)
+-45 + j*(161)
+74 + j*(134)
+50 + j*(-1)
+-112 + j*(23)
+-123 + j*(243)
+134 + j*(355)
+374 + j*(153)
+311 + j*(-141)
+69 + j*(-212)
+-59 + j*(-82)
+-23 + j*(46)
+91 + j*(78)
+191 + j*(-21)
+141 + j*(-179)
+-24 + j*(-198)
+-78 + j*(-90)
+-41 + j*(-75)
+-111 + j*(-91)
+-164 + j*(45)
+-13 + j*(144)
+105 + j*(21)
+13 + j*(-90)
+-83 + j*(-31)
+-72 + j*(54)
+-16 + j*(114)
+120 + j*(117)
+209 + j*(-67)
+25 + j*(-232)
+-168 + j*(-74)
+-19 + j*(94)
+112 + j*(-90)
+-132 + j*(-218)
+-303 + j*(52)
+-74 + j*(267)
+127 + j*(127)
+59 + j*(10)
+42 + j*(67)
+127 + j*(27)
+88 + j*(-70)
+38 + j*(-35)
+120 + j*(-59)
+69 + j*(-244)
+-210 + j*(-252)
+-332 + j*(38)
+-124 + j*(254)
+103 + j*(177)
+129 + j*(16)
+62 + j*(-56)
+-5 + j*(-55)
+-28 + j*(-5)
+31 + j*(23)
+71 + j*(-66)
+-43 + j*(-142)
+-154 + j*(-28)
+-56 + j*(91)
+49 + j*(-14)
+-91 + j*(-120)
+-241 + j*(49)
+-97 + j*(265)
+147 + j*(204)
+175 + j*(4)
+71 + j*(-74)
+1 + j*(-69)
+-74 + j*(-44)
+-116 + j*(86)
+41 + j*(211)
+260 + j*(69)
+173 + j*(-223)
+-151 + j*(-216)
+-218 + j*(95)
+50 + j*(211)
+184 + j*(-8)
+11 + j*(-132)
+-96 + j*(4)
+8 + j*(103)
+95 + j*(48)
+112 + j*(-3)
+138 + j*(-74)
+71 + j*(-193)
+-90 + j*(-191)
+-160 + j*(-76)
+-156 + j*(2)
+-149 + j*(106)
+6 + j*(211)
+207 + j*(63)
+96 + j*(-185)
+-151 + j*(-116)
+-106 + j*(91)
+28 + j*(43)
+-65 + j*(-14)
+-70 + j*(153)
+167 + j*(157)
+202 + j*(-108)
+-39 + j*(-171)
+-103 + j*(11)
+18 + j*(47)
+8 + j*(-15)
+-13 + j*(47)
+106 + j*(54)
+124 + j*(-97)
+-13 + j*(-128)
+-19 + j*(-32)
+59 + j*(-93)
+-58 + j*(-210)
+-235 + j*(-93)
+-173 + j*(105)
+-12 + j*(91)
+-19 + j*(-16)
+-87 + j*(3)
+-59 + j*(40)
+-63 + j*(-13)
+-190 + j*(8)
+-238 + j*(218)
+-28 + j*(414)
+288 + j*(330)
+379 + j*(11)
+155 + j*(-177)
+-21 + j*(-29)
+142 + j*(110)
+308 + j*(-112)
+76 + j*(-364)
+-228 + j*(-204)
+-165 + j*(69)
+11 + j*(55)
+-9 + j*(-9)
+11 + j*(54)
+137 + j*(-18)
+57 + j*(-210)
+-174 + j*(-170)
+-202 + j*(40)
+-80 + j*(119)
+-4 + j*(99)
+57 + j*(72)
+91 + j*(-23)
+2 + j*(-104)
+-105 + j*(-46)
+-95 + j*(64)
+-4 + j*(102)
+67 + j*(42)
+27 + j*(-38)
+-49 + j*(8)
+37 + j*(84)
+137 + j*(-60)
+-59 + j*(-211)
+-276 + j*(-4)
+-111 + j*(245)
+100 + j*(150)
+39 + j*(45)
+44 + j*(131)
+165 + j*(78)
+103 + j*(-25)
+91 + j*(86)
+328 + j*(23)
+293 + j*(-351)
+-117 + j*(-438)
+-303 + j*(-141)
+-199 + j*(38)
+-134 + j*(95)
+3 + j*(163)
+148 + j*(17)
+15 + j*(-133)
+-74 + j*(6)
+112 + j*(-8)
+0 + j*(-288)
+-395 + j*(-139)
+-284 + j*(327)
+161 + j*(292)
+171 + j*(-38)
+-12 + j*(-35)
+43 + j*(32)
+42 + j*(-57)
+-28 + j*(-5)
+96 + j*(-1)
+39 + j*(-228)
+-286 + j*(-150)
+-209 + j*(217)
+135 + j*(122)
+-25 + j*(-186)
+-325 + j*(42)
+-75 + j*(346)
+185 + j*(126)
+-11 + j*(-35)
+-67 + j*(190)
+208 + j*(199)
+223 + j*(-86)
+-15 + j*(-120)
+-46 + j*(49)
+71 + j*(74)
+103 + j*(-5)
+66 + j*(-67)
+-37 + j*(-75)
+-94 + j*(66)
+62 + j*(173)
+192 + j*(35)
+88 + j*(-50)
+105 + j*(66)
+313 + j*(-35)
+223 + j*(-352)
+-117 + j*(-362)
+-214 + j*(-116)
+-118 + j*(-18)
+-79 + j*(3)
+4 + j*(16)
+34 + j*(-110)
+-133 + j*(-130)
+-123 + j*(67)
+101 + j*(-2)
+-35 + j*(-277)
+-377 + j*(-114)
+-243 + j*(260)
+86 + j*(173)
+13 + j*(-74)
+-164 + j*(1)
+-120 + j*(128)
+-76 + j*(166)
+41 + j*(252)
+271 + j*(109)
+152 + j*(-218)
+-205 + j*(-132)
+-139 + j*(202)
+138 + j*(141)
+63 + j*(-48)
+-29 + j*(73)
+163 + j*(103)
+194 + j*(-156)
+-71 + j*(-252)
+-256 + j*(-65)
+-218 + j*(179)
+21 + j*(313)
+284 + j*(127)
+158 + j*(-184)
+-140 + j*(-66)
+32 + j*(200)
+288 + j*(-52)
+-25 + j*(-322)
+-303 + j*(11)
+8 + j*(266)
+199 + j*(1)
+-21 + j*(-95)
+-13 + j*(100)
+170 + j*(16)
+52 + j*(-146)
+-64 + j*(-15)
+80 + j*(44)
+100 + j*(-100)
+-12 + j*(-95)
+40 + j*(-29)
+87 + j*(-139)
+-32 + j*(-217)
+-127 + j*(-185)
+-219 + j*(-163)
+-351 + j*(-13)
+-260 + j*(244)
+8 + j*(251)
+52 + j*(61)
+-82 + j*(55)
+-55 + j*(198)
+103 + j*(207)
+172 + j*(102)
+163 + j*(34)
+175 + j*(-6)
+187 + j*(-92)
+112 + j*(-191)
+-13 + j*(-187)
+-48 + j*(-117)
+-37 + j*(-129)
+-129 + j*(-146)
+-194 + j*(-21)
+-95 + j*(64)
+-56 + j*(-2)
+-133 + j*(26)
+-59 + j*(139)
+74 + j*(41)
+-53 + j*(-100)
+-219 + j*(56)
+-78 + j*(266)
+144 + j*(188)
+136 + j*(12)
+25 + j*(2)
+35 + j*(95)
+173 + j*(95)
+249 + j*(-93)
+69 + j*(-274)
+-174 + j*(-158)
+-117 + j*(83)
+91 + j*(48)
+60 + j*(-139)
+-109 + j*(-133)
+-146 + j*(-28)
+-153 + j*(18)
+-174 + j*(133)
+-21 + j*(262)
+191 + j*(147)
+131 + j*(-84)
+-91 + j*(-60)
+-91 + j*(168)
+141 + j*(219)
+254 + j*(37)
+179 + j*(-83)
+151 + j*(-97)
+132 + j*(-204)
+-59 + j*(-262)
+-197 + j*(-70)
+-52 + j*(82)
+57 + j*(-21)
+-24 + j*(-64)
+4 + j*(2)
+58 + j*(-95)
+-100 + j*(-137)
+-112 + j*(71)
+148 + j*(45)
+110 + j*(-274)
+-224 + j*(-282)
+-287 + j*(-44)
+-231 + j*(-8)
+-341 + j*(89)
+-217 + j*(372)
+134 + j*(326)
+149 + j*(50)
+1 + j*(65)
+110 + j*(130)
+159 + j*(-41)
+-1 + j*(-98)
+-35 + j*(-6)
+-40 + j*(-34)
+-161 + j*(46)
+-49 + j*(272)
+239 + j*(190)
+215 + j*(-86)
+18 + j*(-94)
+22 + j*(13)
+71 + j*(-9)
+58 + j*(-19)
+90 + j*(-33)
+60 + j*(-100)
+-13 + j*(-57)
+71 + j*(-2)
+117 + j*(-132)
+-30 + j*(-194)
+-86 + j*(-75)
+-5 + j*(-81)
+138 + j*(169)
+171 + j*(-16)
+31 + j*(-37)
+76 + j*(78)
+231 + j*(-36)
+105 + j*(-274)
+-192 + j*(-209)
+-205 + j*(77)
+11 + j*(123)
+16 + j*(-23)
+-105 + j*(62)
+64 + j*(218)
+275 + j*(9)
+74 + j*(-238)
+-168 + j*(-60)
+-8 + j*(139)
+133 + j*(-11)
+-16 + j*(-84)
+-25 + j*(78)
+161 + j*(52)
+138 + j*(-136)
+-6 + j*(-127)
+21 + j*(-45)
+83 + j*(-111)
+18 + j*(-208)
+-103 + j*(-223)
+-221 + j*(-151)
+-252 + j*(-1)
+-166 + j*(93)
+-98 + j*(93)
+-58 + j*(98)
+-4 + j*(57)
+-63 + j*(-6)
+-138 + j*(103)
+16 + j*(211)
+146 + j*(52)
+10 + j*(-53)
+-27 + j*(73)
+110 + j*(28)
+-1 + j*(-129)
+-175 + j*(21)
+-14 + j*(196)
+130 + j*(52)
+11 + j*(-21)
+27 + j*(103)
+193 + j*(16)
+107 + j*(-202)
+-131 + j*(-188)
+-225 + j*(0)
+-151 + j*(190)
+72 + j*(253)
+236 + j*(65)
+118 + j*(-120)
+0 + j*(-57)
+58 + j*(-48)
+-39 + j*(-142)
+-183 + j*(23)
+5 + j*(203)
+180 + j*(36)
+63 + j*(-68)
+97 + j*(18)
+214 + j*(-175)
+-72 + j*(-381)
+-351 + j*(-119)
+-185 + j*(129)
+-79 + j*(41)
+-179 + j*(95)
+-40 + j*(252)
+127 + j*(124)
+24 + j*(40)
+58 + j*(175)
+269 + j*(78)
+195 + j*(-171)
+1 + j*(-156)
+-3 + j*(-79)
+-44 + j*(-112)
+-129 + j*(-7)
+-21 + j*(110)
+84 + j*(32)
+48 + j*(-4)
+119 + j*(15)
+174 + j*(-157)
+-36 + j*(-284)
+-210 + j*(-117)
+-117 + j*(38)
+-27 + j*(-5)
+-57 + j*(-45)
+-81 + j*(-31)
+-107 + j*(-19)
+-129 + j*(36)
+-92 + j*(88)
+-56 + j*(98)
+-28 + j*(129)
+60 + j*(140)
+129 + j*(58)
+108 + j*(-37)
+47 + j*(-77)
+-11 + j*(-66)
+-13 + j*(-17)
+44 + j*(-52)
+-26 + j*(-168)
+-223 + j*(-115)
+-238 + j*(111)
+-64 + j*(192)
+21 + j*(105)
+-16 + j*(61)
+-45 + j*(96)
+-6 + j*(173)
+145 + j*(181)
+225 + j*(-13)
+28 + j*(-133)
+-81 + j*(72)
+163 + j*(156)
+250 + j*(-125)
+-13 + j*(-226)
+-88 + j*(-43)
+2 + j*(-64)
+-158 + j*(-110)
+-231 + j*(163)
+66 + j*(300)
+243 + j*(77)
+145 + j*(-66)
+91 + j*(-82)
+-3 + j*(-118)
+-97 + j*(46)
+150 + j*(188)
+357 + j*(-127)
+28 + j*(-403)
+-263 + j*(-116)
+-34 + j*(139)
+162 + j*(-49)
+13 + j*(-190)
+-71 + j*(-94)
+-10 + j*(-69)
+-17 + j*(-113)
+-30 + j*(-117)
+-39 + j*(-168)
+-137 + j*(-205)
+-234 + j*(-144)
+-278 + j*(-71)
+-324 + j*(36)
+-268 + j*(194)
+-107 + j*(233)
+-40 + j*(147)
+-77 + j*(115)
+-82 + j*(144)
+-68 + j*(184)
+1 + j*(250)
+151 + j*(223)
+182 + j*(59)
+47 + j*(4)
+1 + j*(134)
+144 + j*(217)
+321 + j*(108)
+336 + j*(-132)
+124 + j*(-289)
+-108 + j*(-170)
+-71 + j*(62)
+132 + j*(80)
+207 + j*(-77)
+137 + j*(-212)
+-21 + j*(-270)
+-189 + j*(-154)
+-143 + j*(55)
+40 + j*(48)
+29 + j*(-76)
+-23 + j*(-30)
+86 + j*(-61)
+-16 + j*(-259)
+-301 + j*(-136)
+-191 + j*(176)
+76 + j*(64)
+-82 + j*(-138)
+-248 + j*(69)
+-47 + j*(208)
+20 + j*(65)
+-73 + j*(123)
+99 + j*(208)
+180 + j*(-16)
+-52 + j*(-37)
+25 + j*(211)
+308 + j*(54)
+112 + j*(-242)
+-138 + j*(-21)
+132 + j*(167)
+282 + j*(-146)
+-18 + j*(-290)
+-132 + j*(-64)
+-1 + j*(-25)
+-52 + j*(-86)
+-66 + j*(31)
+93 + j*(6)
+41 + j*(-172)
+-129 + j*(-120)
+-83 + j*(-8)
+-58 + j*(-74)
+-164 + j*(-30)
+-86 + j*(102)
+34 + j*(-6)
+-129 + j*(-104)
+-228 + j*(110)
+-2 + j*(228)
+122 + j*(19)
+-69 + j*(-95)
+-194 + j*(75)
+-91 + j*(233)
+55 + j*(252)
+185 + j*(220)
+327 + j*(85)
+330 + j*(-186)
+59 + j*(-378)
+-275 + j*(-226)
+-273 + j*(152)
+69 + j*(266)
+235 + j*(-11)
+22 + j*(-172)
+-91 + j*(0)
+83 + j*(44)
+72 + j*(-172)
+-193 + j*(-160)
+-221 + j*(110)
+-21 + j*(165)
+-10 + j*(71)
+-45 + j*(179)
+176 + j*(250)
+351 + j*(4)
+187 + j*(-248)
+-58 + j*(-215)
+-134 + j*(-49)
+-70 + j*(90)
+96 + j*(116)
+197 + j*(-52)
+59 + j*(-202)
+-98 + j*(-122)
+-70 + j*(-14)
+-54 + j*(-15)
+-69 + j*(80)
+129 + j*(153)
+303 + j*(-96)
+85 + j*(-378)
+-241 + j*(-274)
+-278 + j*(-6)
+-146 + j*(123)
+7 + j*(137)
+139 + j*(-3)
+30 + j*(-230)
+-274 + j*(-177)
+-313 + j*(152)
+-42 + j*(278)
+115 + j*(126)
+76 + j*(6)
+21 + j*(-25)
+-47 + j*(-20)
+-79 + j*(77)
+37 + j*(151)
+155 + j*(52)
+115 + j*(-82)
+19 + j*(-114)
+-53 + j*(-88)
+-88 + j*(-23)
+-47 + j*(28)
+-21 + j*(-10)
+-91 + j*(-20)
+-108 + j*(88)
+8 + j*(125)
+48 + j*(22)
+-56 + j*(-13)
+-115 + j*(101)
+-33 + j*(222)
+136 + j*(245)
+288 + j*(110)
+260 + j*(-110)
+67 + j*(-175)
+-20 + j*(-52)
+64 + j*(-1)
+83 + j*(-84)
+-3 + j*(-98)
+-11 + j*(-27)
+53 + j*(-38)
+29 + j*(-122)
+-88 + j*(-127)
+-158 + j*(-10)
+-103 + j*(127)
+46 + j*(177)
+194 + j*(92)
+219 + j*(-91)
+73 + j*(-203)
+-47 + j*(-112)
+50 + j*(-37)
+113 + j*(-226)
+-173 + j*(-369)
+-459 + j*(-75)
+-267 + j*(309)
+103 + j*(266)
+158 + j*(7)
+39 + j*(-69)
+-4 + j*(-54)
+-42 + j*(-57)
+-64 + j*(-7)
+-15 + j*(-8)
+-68 + j*(-75)
+-190 + j*(26)
+-75 + j*(214)
+159 + j*(127)
+119 + j*(-120)
+-113 + j*(-125)
+-154 + j*(73)
+-1 + j*(133)
+53 + j*(23)
+-35 + j*(-5)
+-37 + j*(91)
+76 + j*(78)
+54 + j*(-48)
+-77 + j*(-11)
+-22 + j*(120)
+104 + j*(47)
+5 + j*(-65)
+-92 + j*(55)
+28 + j*(141)
+81 + j*(59)
+44 + j*(87)
+179 + j*(117)
+244 + j*(-84)
+56 + j*(-171)
+18 + j*(-42)
+110 + j*(-112)
+-64 + j*(-203)
+-151 + j*(35)
+129 + j*(78)
+115 + j*(-264)
+-286 + j*(-228)
+-276 + j*(174)
+35 + j*(175)
+-31 + j*(3)
+-115 + j*(204)
+204 + j*(310)
+392 + j*(-6)
+218 + j*(-228)
+87 + j*(-224)
+16 + j*(-268)
+-153 + j*(-245)
+-214 + j*(-83)
+-144 + j*(-13)
+-146 + j*(-17)
+-177 + j*(42)
+-155 + j*(139)
+-41 + j*(238)
+184 + j*(183)
+202 + j*(-103)
+-98 + j*(-148)
+-96 + j*(172)
+290 + j*(103)
+187 + j*(-378)
+-361 + j*(-303)
+-335 + j*(233)
+112 + j*(228)
+70 + j*(-117)
+-220 + j*(-16)
+-105 + j*(269)
+175 + j*(218)
+240 + j*(-1)
+139 + j*(-170)
+-76 + j*(-202)
+-206 + j*(-1)
+-41 + j*(163)
+97 + j*(21)
+-49 + j*(-71)
+-110 + j*(96)
+61 + j*(147)
+104 + j*(8)
+9 + j*(-8)
+31 + j*(57)
+87 + j*(23)
+74 + j*(-18)
+83 + j*(-41)
+50 + j*(-121)
+-93 + j*(-125)
+-170 + j*(37)
+-49 + j*(194)
+160 + j*(169)
+248 + j*(-33)
+101 + j*(-201)
+-77 + j*(-106)
+16 + j*(42)
+153 + j*(-100)
+-37 + j*(-273)
+-260 + j*(-90)
+-132 + j*(139)
+43 + j*(68)
+-6 + j*(-21)
+-18 + j*(41)
+70 + j*(1)
+-1 + j*(-109)
+-128 + j*(-21)
+-35 + j*(126)
+136 + j*(49)
+116 + j*(-148)
+-77 + j*(-223)
+-245 + j*(-94)
+-228 + j*(111)
+-66 + j*(186)
+25 + j*(107)
+-4 + j*(63)
+-1 + j*(93)
+39 + j*(82)
+38 + j*(65)
+63 + j*(76)
+94 + j*(30)
+45 + j*(6)
+70 + j*(89)
+226 + j*(30)
+187 + j*(-206)
+-70 + j*(-217)
+-106 + j*(1)
+54 + j*(12)
+25 + j*(-103)
+-43 + j*(-42)
+50 + j*(-44)
+-26 + j*(-195)
+-242 + j*(-65)
+-86 + j*(187)
+168 + j*(5)
+-59 + j*(-237)
+-286 + j*(36)
+18 + j*(249)
+221 + j*(-82)
+-111 + j*(-298)
+-361 + j*(-28)
+-236 + j*(218)
+-90 + j*(258)
+46 + j*(279)
+197 + j*(146)
+99 + j*(-45)
+-68 + j*(61)
+70 + j*(210)
+206 + j*(71)
+90 + j*(-3)
+121 + j*(132)
+343 + j*(42)
+306 + j*(-258)
+44 + j*(-334)
+-93 + j*(-221)
+-117 + j*(-137)
+-129 + j*(-74)
+-117 + j*(-31)
+-138 + j*(6)
+-113 + j*(123)
+61 + j*(161)
+150 + j*(2)
+51 + j*(-83)
+28 + j*(-44)
+50 + j*(-108)
+-72 + j*(-148)
+-126 + j*(-25)
+-35 + j*(-13)
+-116 + j*(-93)
+-243 + j*(79)
+-44 + j*(286)
+213 + j*(133)
+146 + j*(-103)
+-11 + j*(-98)
+-22 + j*(-30)
+-7 + j*(-33)
+-11 + j*(-42)
+-28 + j*(-73)
+-112 + j*(-69)
+-141 + j*(33)
+-66 + j*(71)
+-74 + j*(28)
+-130 + j*(108)
+-23 + j*(220)
+121 + j*(146)
+100 + j*(47)
+80 + j*(74)
+177 + j*(49)
+192 + j*(-122)
+4 + j*(-225)
+-177 + j*(-88)
+-115 + j*(122)
+74 + j*(116)
+81 + j*(-32)
+-33 + j*(-11)
+33 + j*(89)
+124 + j*(-4)
+15 + j*(-59)
+33 + j*(91)
+272 + j*(5)
+190 + j*(-344)
+-204 + j*(-337)
+-279 + j*(-7)
+-79 + j*(77)
+-61 + j*(-11)
+-98 + j*(45)
+-18 + j*(73)
+-5 + j*(12)
+-30 + j*(23)
+-7 + j*(-3)
+-117 + j*(-27)
+-175 + j*(190)
+113 + j*(332)
+339 + j*(58)
+153 + j*(-180)
+-6 + j*(-69)
+95 + j*(-9)
+112 + j*(-137)
+5 + j*(-180)
+-50 + j*(-175)
+-165 + j*(-189)
+-298 + j*(-45)
+-235 + j*(155)
+-98 + j*(201)
+-30 + j*(216)
+103 + j*(233)
+236 + j*(89)
+165 + j*(-84)
+43 + j*(-76)
+48 + j*(-39)
+39 + j*(-93)
+-65 + j*(-92)
+-103 + j*(33)
+16 + j*(115)
+131 + j*(11)
+40 + j*(-123)
+-109 + j*(-20)
+25 + j*(151)
+238 + j*(-4)
+93 + j*(-249)
+-129 + j*(-137)
+-25 + j*(4)
+26 + j*(-148)
+-188 + j*(-151)
+-175 + j*(78)
+18 + j*(22)
+-127 + j*(-142)
+-316 + j*(84)
+-95 + j*(322)
+147 + j*(190)
+126 + j*(31)
+100 + j*(-28)
+6 + j*(-132)
+-205 + j*(-31)
+-122 + j*(247)
+168 + j*(197)
+136 + j*(-45)
+-29 + j*(11)
+76 + j*(120)
+163 + j*(-8)
+53 + j*(-73)
+34 + j*(-1)
+80 + j*(-33)
+23 + j*(-58)
+38 + j*(-1)
+97 + j*(-74)
+-21 + j*(-153)
+-113 + j*(-23)
+-6 + j*(59)
+35 + j*(-18)
+-14 + j*(3)
+79 + j*(45)
+146 + j*(-105)
+-11 + j*(-223)
+-163 + j*(-120)
+-147 + j*(15)
+-73 + j*(63)
+-5 + j*(44)
+-18 + j*(-26)
+-122 + j*(21)
+-46 + j*(200)
+216 + j*(142)
+220 + j*(-159)
+-49 + j*(-223)
+-127 + j*(-42)
+-32 + j*(-11)
+-76 + j*(-63)
+-124 + j*(33)
+-28 + j*(82)
+-2 + j*(9)
+-49 + j*(31)
+21 + j*(60)
+26 + j*(-55)
+-136 + j*(-30)
+-95 + j*(194)
+192 + j*(163)
+202 + j*(-169)
+-139 + j*(-247)
+-292 + j*(45)
+-106 + j*(243)
+64 + j*(181)
+78 + j*(105)
+98 + j*(102)
+156 + j*(51)
+143 + j*(-47)
+60 + j*(-82)
+14 + j*(-37)
+42 + j*(-9)
+54 + j*(-51)
+-11 + j*(-55)
+-8 + j*(37)
+132 + j*(31)
+141 + j*(-167)
+-99 + j*(-227)
+-214 + j*(21)
+16 + j*(170)
+176 + j*(-35)
+1 + j*(-192)
+-143 + j*(-53)
+-38 + j*(50)
+16 + j*(-36)
+-76 + j*(-49)
+-75 + j*(47)
+4 + j*(50)
+15 + j*(9)
+35 + j*(7)
+62 + j*(-85)
+-89 + j*(-181)
+-284 + j*(-24)
+-200 + j*(250)
+75 + j*(296)
+235 + j*(119)
+209 + j*(-78)
+54 + j*(-180)
+-109 + j*(-104)
+-86 + j*(60)
+50 + j*(40)
+-7 + j*(-86)
+-163 + j*(18)
+-50 + j*(236)
+219 + j*(178)
+261 + j*(-81)
+93 + j*(-204)
+-46 + j*(-151)
+-62 + j*(-53)
+9 + j*(-37)
+-6 + j*(-150)
+-204 + j*(-142)
+-251 + j*(129)
+44 + j*(235)
+179 + j*(-49)
+-92 + j*(-185)
+-224 + j*(63)
+-23 + j*(180)
+44 + j*(37)
+-61 + j*(49)
+11 + j*(160)
+138 + j*(74)
+73 + j*(-49)
+-30 + j*(-4)
+-8 + j*(94)
+106 + j*(132)
+247 + j*(18)
+187 + j*(-228)
+-112 + j*(-264)
+-233 + j*(19)
+-22 + j*(182)
+129 + j*(60)
+98 + j*(-37)
+78 + j*(-68)
+28 + j*(-122)
+-53 + j*(-83)
+-20 + j*(-33)
+-34 + j*(-88)
+-128 + j*(-16)
+-5 + j*(105)
+121 + j*(-70)
+-107 + j*(-190)
+-213 + j*(73)
+61 + j*(124)
+12 + j*(-165)
+-330 + j*(-8)
+-106 + j*(413)
+366 + j*(186)
+166 + j*(-272)
+-235 + j*(-93)
+-61 + j*(252)
+247 + j*(101)
+165 + j*(-173)
+-52 + j*(-185)
+-144 + j*(-51)
+-87 + j*(78)
+44 + j*(53)
+-8 + j*(-77)
+-158 + j*(33)
+-1 + j*(223)
+214 + j*(47)
+35 + j*(-146)
+-105 + j*(49)
+132 + j*(135)
+194 + j*(-134)
+-62 + j*(-203)
+-132 + j*(-12)
+-42 + j*(33)
+-53 + j*(45)
+37 + j*(127)
+180 + j*(4)
+67 + j*(-156)
+-43 + j*(-66)
+58 + j*(-57)
+-21 + j*(-222)
+-253 + j*(-117)
+-170 + j*(121)
+4 + j*(33)
+-148 + j*(-78)
+-264 + j*(141)
+-60 + j*(298)
+76 + j*(199)
+69 + j*(198)
+254 + j*(226)
+409 + j*(-74)
+118 + j*(-368)
+-250 + j*(-156)
+-117 + j*(216)
+229 + j*(144)
+211 + j*(-153)
+4 + j*(-170)
+17 + j*(-78)
+25 + j*(-194)
+-210 + j*(-213)
+-315 + j*(76)
+-71 + j*(266)
+132 + j*(136)
+108 + j*(-1)
+71 + j*(-26)
+48 + j*(-62)
+-4 + j*(-49)
+31 + j*(-17)
+52 + j*(-103)
+-76 + j*(-139)
+-118 + j*(-13)
+-18 + j*(-8)
+-95 + j*(-107)
+-242 + j*(40)
+-76 + j*(244)
+146 + j*(102)
+25 + j*(-105)
+-175 + j*(8)
+-96 + j*(219)
+109 + j*(235)
+243 + j*(102)
+238 + j*(-103)
+35 + j*(-230)
+-175 + j*(-71)
+-66 + j*(175)
+197 + j*(110)
+174 + j*(-141)
+-46 + j*(-141)
+-14 + j*(55)
+214 + j*(-29)
+127 + j*(-362)
+-308 + j*(-368)
+-463 + j*(72)
+-127 + j*(339)
+137 + j*(142)
+37 + j*(-33)
+-33 + j*(45)
+71 + j*(40)
+31 + j*(-100)
+-148 + j*(-56)
+-133 + j*(151)
+80 + j*(188)
+175 + j*(-13)
+-8 + j*(-161)
+-218 + j*(16)
+-62 + j*(306)
+307 + j*(204)
+282 + j*(-192)
+-77 + j*(-222)
+-102 + j*(70)
+148 + j*(46)
+76 + j*(-195)
+-163 + j*(-113)
+-102 + j*(98)
+49 + j*(60)
+26 + j*(-11)
+32 + j*(3)
+41 + j*(-80)
+-122 + j*(-91)
+-158 + j*(142)
+111 + j*(235)
+263 + j*(-9)
+100 + j*(-180)
+-24 + j*(-112)
+-10 + j*(-76)
+-56 + j*(-92)
+-91 + j*(-4)
+8 + j*(40)
+39 + j*(-65)
+-73 + j*(-80)
+-68 + j*(33)
+44 + j*(-6)
+-33 + j*(-130)
+-175 + j*(-30)
+-64 + j*(118)
+66 + j*(-15)
+-110 + j*(-141)
+-264 + j*(64)
+-81 + j*(255)
+96 + j*(142)
+45 + j*(30)
+16 + j*(57)
+28 + j*(26)
+-52 + j*(40)
+-20 + j*(188)
+189 + j*(180)
+245 + j*(-30)
+107 + j*(-127)
+26 + j*(-82)
+10 + j*(-51)
+16 + j*(-8)
+87 + j*(-27)
+52 + j*(-146)
+-113 + j*(-113)
+-96 + j*(65)
+66 + j*(48)
+40 + j*(-81)
+-51 + j*(-44)
+-7 + j*(-4)
+-27 + j*(-67)
+-122 + j*(-4)
+-56 + j*(119)
+57 + j*(86)
+60 + j*(37)
+102 + j*(34)
+138 + j*(-71)
+28 + j*(-156)
+-66 + j*(-100)
+-81 + j*(-52)
+-119 + j*(24)
+-2 + j*(164)
+234 + j*(32)
+120 + j*(-280)
+-211 + j*(-208)
+-163 + j*(80)
+48 + j*(6)
+-82 + j*(-158)
+-237 + j*(8)
+-83 + j*(151)
+16 + j*(23)
+-105 + j*(-33)
+-162 + j*(88)
+-88 + j*(173)
+-7 + j*(180)
+49 + j*(146)
+41 + j*(116)
+52 + j*(172)
+192 + j*(187)
+280 + j*(25)
+190 + j*(-87)
+165 + j*(-76)
+192 + j*(-189)
+2 + j*(-319)
+-212 + j*(-167)
+-150 + j*(40)
+-28 + j*(29)
+-51 + j*(-14)
+-64 + j*(33)
+-37 + j*(63)
+-5 + j*(105)
+121 + j*(116)
+203 + j*(-59)
+33 + j*(-202)
+-124 + j*(-63)
+-6 + j*(66)
+93 + j*(-57)
+-46 + j*(-152)
+-161 + j*(-16)
+-57 + j*(126)
+104 + j*(80)
+132 + j*(-82)
+4 + j*(-183)
+-140 + j*(-127)
+-165 + j*(3)
+-103 + j*(65)
+-59 + j*(71)
+-27 + j*(72)
+-1 + j*(49)
+-18 + j*(29)
+-30 + j*(56)
+-1 + j*(76)
+23 + j*(69)
+44 + j*(73)
+88 + j*(52)
+102 + j*(-11)
+66 + j*(-52)
+34 + j*(-64)
+-6 + j*(-72)
+-51 + j*(-47)
+-64 + j*(-3)
+-70 + j*(43)
+-40 + j*(127)
+103 + j*(165)
+236 + j*(36)
+203 + j*(-141)
+91 + j*(-225)
+-43 + j*(-272)
+-245 + j*(-207)
+-314 + j*(58)
+-100 + j*(226)
+71 + j*(105)
+6 + j*(12)
+8 + j*(86)
+137 + j*(24)
+72 + j*(-169)
+-155 + j*(-161)
+-243 + j*(38)
+-152 + j*(206)
+35 + j*(274)
+239 + j*(147)
+209 + j*(-130)
+-77 + j*(-184)
+-187 + j*(78)
+30 + j*(220)
+177 + j*(68)
+86 + j*(-40)
+37 + j*(33)
+138 + j*(57)
+199 + j*(-63)
+119 + j*(-182)
+-6 + j*(-187)
+-65 + j*(-117)
+-58 + j*(-79)
+-84 + j*(-76)
+-130 + j*(1)
+-47 + j*(105)
+95 + j*(50)
+74 + j*(-98)
+-52 + j*(-102)
+-61 + j*(-11)
+1 + j*(-19)
+-22 + j*(-62)
+-42 + j*(-39)
+-13 + j*(-65)
+-95 + j*(-143)
+-254 + j*(-52)
+-218 + j*(170)
+-1 + j*(207)
+68 + j*(42)
+-62 + j*(-22)
+-127 + j*(99)
+-28 + j*(198)
+100 + j*(168)
+161 + j*(67)
+137 + j*(-53)
+23 + j*(-115)
+-88 + j*(-56)
+-102 + j*(47)
+-71 + j*(115)
+-13 + j*(189)
+136 + j*(218)
+274 + j*(76)
+213 + j*(-101)
+94 + j*(-103)
+122 + j*(-74)
+119 + j*(-194)
+-63 + j*(-236)
+-153 + j*(-74)
+-51 + j*(-9)
+-75 + j*(-94)
+-219 + j*(11)
+-104 + j*(242)
+171 + j*(182)
+173 + j*(-53)
+30 + j*(-60)
+84 + j*(1)
+123 + j*(-148)
+-86 + j*(-216)
+-199 + j*(-1)
+-18 + j*(121)
+79 + j*(-26)
+-52 + j*(-82)
+-74 + j*(56)
+83 + j*(62)
+101 + j*(-119)
+-90 + j*(-180)
+-211 + j*(-8)
+-95 + j*(165)
+104 + j*(121)
+125 + j*(-66)
+-21 + j*(-136)
+-109 + j*(-46)
+-74 + j*(21)
+-54 + j*(21)
+-50 + j*(49)
+8 + j*(59)
+33 + j*(-11)
+-33 + j*(-55)
+-105 + j*(-14)
+-122 + j*(79)
+-34 + j*(183)
+147 + j*(138)
+163 + j*(-91)
+-69 + j*(-154)
+-146 + j*(50)
+21 + j*(95)
+-13 + j*(-51)
+-182 + j*(74)
+-1 + j*(296)
+258 + j*(112)
+97 + j*(-134)
+-93 + j*(26)
+86 + j*(161)
+185 + j*(-30)
+3 + j*(-100)
+-35 + j*(62)
+97 + j*(78)
+108 + j*(9)
+132 + j*(20)
+209 + j*(-88)
+66 + j*(-243)
+-126 + j*(-114)
+-15 + j*(74)
+154 + j*(-27)
+83 + j*(-182)
+-23 + j*(-168)
+-54 + j*(-163)
+-157 + j*(-145)
+-198 + j*(7)
+-65 + j*(86)
+-8 + j*(4)
+-59 + j*(11)
+16 + j*(64)
+93 + j*(-59)
+-44 + j*(-173)
+-175 + j*(-67)
+-128 + j*(35)
+-103 + j*(34)
+-101 + j*(98)
+22 + j*(112)
+37 + j*(-44)
+-161 + j*(-40)
+-138 + j*(218)
+171 + j*(208)
+193 + j*(-130)
+-136 + j*(-187)
+-226 + j*(96)
+-24 + j*(198)
+43 + j*(97)
+25 + j*(105)
+112 + j*(83)
+74 + j*(-59)
+-106 + j*(-1)
+-40 + j*(228)
+238 + j*(198)
+291 + j*(-81)
+85 + j*(-223)
+-102 + j*(-134)
+-134 + j*(42)
+-7 + j*(164)
+153 + j*(119)
+189 + j*(-5)
+176 + j*(-74)
+160 + j*(-194)
+-38 + j*(-299)
+-253 + j*(-97)
+-90 + j*(166)
+163 + j*(25)
+18 + j*(-195)
+-168 + j*(-37)
+6 + j*(115)
+129 + j*(-74)
+-57 + j*(-192)
+-192 + j*(-52)
+-152 + j*(83)
+-61 + j*(173)
+138 + j*(174)
+239 + j*(-86)
+-32 + j*(-259)
+-235 + j*(6)
+30 + j*(211)
+244 + j*(-52)
+16 + j*(-287)
+-218 + j*(-146)
+-188 + j*(21)
+-148 + j*(50)
+-149 + j*(127)
+-40 + j*(220)
+122 + j*(177)
+188 + j*(19)
+91 + j*(-129)
+-91 + j*(-100)
+-105 + j*(88)
+85 + j*(121)
+137 + j*(-74)
+-48 + j*(-150)
+-143 + j*(8)
+-28 + j*(99)
+43 + j*(16)
+-33 + j*(-38)
+-91 + j*(52)
+11 + j*(128)
+108 + j*(16)
+-25 + j*(-107)
+-197 + j*(54)
+-35 + j*(287)
+231 + j*(175)
+180 + j*(-54)
+37 + j*(-19)
+104 + j*(53)
+146 + j*(-32)
+103 + j*(-37)
+197 + j*(-47)
+201 + j*(-274)
+-88 + j*(-373)
+-273 + j*(-151)
+-202 + j*(18)
+-151 + j*(68)
+-64 + j*(161)
+115 + j*(89)
+55 + j*(-106)
+-114 + j*(-28)
+2 + j*(107)
+102 + j*(-45)
+-75 + j*(-107)
+-86 + j*(72)
+73 + j*(25)
+-35 + j*(-103)
+-129 + j*(71)
+110 + j*(129)
+143 + j*(-177)
+-216 + j*(-223)
+-318 + j*(144)
+-21 + j*(317)
+190 + j*(157)
+169 + j*(-28)
+50 + j*(-92)
+-35 + j*(-16)
+55 + j*(55)
+124 + j*(-91)
+-76 + j*(-184)
+-195 + j*(43)
+23 + j*(168)
+127 + j*(-21)
+-24 + j*(-86)
+-48 + j*(16)
+-13 + j*(1)
+-77 + j*(50)
+61 + j*(185)
+277 + j*(-13)
+76 + j*(-301)
+-230 + j*(-147)
+-134 + j*(109)
+17 + j*(51)
+-36 + j*(18)
+34 + j*(83)
+119 + j*(-69)
+-88 + j*(-181)
+-231 + j*(35)
+-56 + j*(187)
+56 + j*(81)
+0 + j*(47)
+33 + j*(84)
+54 + j*(20)
+-30 + j*(49)
+67 + j*(183)
+291 + j*(59)
+209 + j*(-247)
+-123 + j*(-255)
+-218 + j*(47)
+18 + j*(204)
+210 + j*(45)
+127 + j*(-150)
+-28 + j*(-127)
+-19 + j*(-28)
+41 + j*(-64)
+-23 + j*(-112)
+-67 + j*(-49)
+-11 + j*(-40)
+-58 + j*(-117)
+-178 + j*(-32)
+-90 + j*(123)
+77 + j*(41)
+-18 + j*(-128)
+-199 + j*(-32)
+-130 + j*(159)
+25 + j*(129)
+2 + j*(50)
+-11 + j*(135)
+169 + j*(147)
+255 + j*(-99)
+20 + j*(-288)
+-238 + j*(-140)
+-201 + j*(104)
+-42 + j*(139)
+-18 + j*(82)
+-24 + j*(129)
+86 + j*(163)
+189 + j*(54)
+141 + j*(-90)
+16 + j*(-121)
+-60 + j*(-47)
+-37 + j*(35)
+34 + j*(42)
+54 + j*(-21)
+1 + j*(-56)
+-64 + j*(-23)
+-86 + j*(66)
+-4 + j*(176)
+185 + j*(168)
+293 + j*(-25)
+189 + j*(-211)
+37 + j*(-234)
+-41 + j*(-211)
+-153 + j*(-193)
+-257 + j*(-36)
+-156 + j*(163)
+59 + j*(153)
+124 + j*(-12)
+31 + j*(-100)
+-38 + j*(-74)
+-36 + j*(-50)
+-52 + j*(-71)
+-115 + j*(-49)
+-112 + j*(33)
+-35 + j*(22)
+-97 + j*(-69)
+-265 + j*(47)
+-158 + j*(327)
+183 + j*(303)
+255 + j*(-6)
+49 + j*(-117)
+-35 + j*(-29)
+-37 + j*(-11)
+-100 + j*(52)
+-19 + j*(184)
+144 + j*(127)
+116 + j*(0)
+74 + j*(40)
+171 + j*(14)
+134 + j*(-144)
+-31 + j*(-127)
+-19 + j*(-9)
+37 + j*(-53)
+-46 + j*(-69)
+-46 + j*(33)
+40 + j*(25)
+20 + j*(-9)
+61 + j*(40)
+169 + j*(-71)
+25 + j*(-241)
+-170 + j*(-106)
+-41 + j*(49)
+47 + j*(-108)
+-164 + j*(-161)
+-221 + j*(74)
+-23 + j*(134)
+0 + j*(1)
+-84 + j*(45)
+12 + j*(110)
+64 + j*(-10)
+-69 + j*(-43)
+-93 + j*(108)
+71 + j*(156)
+163 + j*(8)
+57 + j*(-125)
+-102 + j*(-61)
+-56 + j*(121)
+161 + j*(79)
+127 + j*(-186)
+-178 + j*(-166)
+-173 + j*(155)
+146 + j*(148)
+126 + j*(-161)
+-166 + j*(-127)
+-125 + j*(134)
+91 + j*(84)
+23 + j*(-89)
+-124 + j*(-6)
+-51 + j*(129)
+67 + j*(97)
+84 + j*(18)
+59 + j*(-33)
+6 + j*(-53)
+-37 + j*(-18)
+-30 + j*(18)
+-25 + j*(32)
+-8 + j*(62)
+33 + j*(58)
+24 + j*(46)
+67 + j*(115)
+241 + j*(51)
+215 + j*(-228)
+-107 + j*(-264)
+-177 + j*(41)
+102 + j*(90)
+109 + j*(-188)
+-174 + j*(-182)
+-178 + j*(73)
+10 + j*(71)
+-40 + j*(-48)
+-136 + j*(58)
+-13 + j*(171)
+109 + j*(90)
+91 + j*(7)
+77 + j*(-2)
+96 + j*(-32)
+83 + j*(-88)
+29 + j*(-134)
+-59 + j*(-119)
+-66 + j*(-29)
+28 + j*(-53)
+-49 + j*(-205)
+-292 + j*(-125)
+-271 + j*(165)
+-31 + j*(194)
+-34 + j*(57)
+-119 + j*(175)
+101 + j*(296)
+293 + j*(71)
+163 + j*(-140)
+30 + j*(-122)
+-22 + j*(-136)
+-182 + j*(-74)
+-144 + j*(190)
+173 + j*(177)
+170 + j*(-153)
+-148 + j*(-142)
+-109 + j*(144)
+128 + j*(57)
+-21 + j*(-135)
+-193 + j*(74)
+42 + j*(246)
+203 + j*(37)
+45 + j*(-69)
+21 + j*(54)
+144 + j*(16)
+93 + j*(-97)
+38 + j*(-51)
+118 + j*(-80)
+45 + j*(-235)
+-166 + j*(-204)
+-220 + j*(-24)
+-149 + j*(75)
+-78 + j*(117)
+16 + j*(105)
+23 + j*(11)
+-76 + j*(37)
+-7 + j*(185)
+194 + j*(125)
+190 + j*(-84)
+45 + j*(-119)
+28 + j*(-83)
+-14 + j*(-139)
+-162 + j*(-71)
+-115 + j*(148)
+133 + j*(147)
+187 + j*(-83)
+16 + j*(-179)
+-76 + j*(-82)
+-33 + j*(-36)
+-30 + j*(-78)
+-91 + j*(-79)
+-127 + j*(-24)
+-125 + j*(30)
+-112 + j*(84)
+-52 + j*(161)
+103 + j*(162)
+213 + j*(-22)
+71 + j*(-232)
+-186 + j*(-186)
+-230 + j*(35)
+-110 + j*(97)
+-126 + j*(50)
+-202 + j*(181)
+-38 + j*(369)
+234 + j*(290)
+279 + j*(59)
+192 + j*(-30)
+180 + j*(-76)
+80 + j*(-197)
+-156 + j*(-118)
+-127 + j*(197)
+230 + j*(240)
+357 + j*(-110)
+89 + j*(-301)
+-90 + j*(-158)
+-49 + j*(-65)
+-64 + j*(-64)
+-56 + j*(29)
+84 + j*(9)
+41 + j*(-170)
+-170 + j*(-97)
+-65 + j*(140)
+202 + j*(-10)
+26 + j*(-335)
+-357 + j*(-192)
+-310 + j*(196)
+-2 + j*(245)
+78 + j*(64)
+8 + j*(8)
+-12 + j*(19)
+-44 + j*(29)
+-33 + j*(104)
+85 + j*(107)
+105 + j*(-25)
+-24 + j*(-45)
+-27 + j*(93)
+144 + j*(96)
+188 + j*(-94)
+28 + j*(-198)
+-100 + j*(-114)
+-93 + j*(-23)
+-74 + j*(-4)
+-90 + j*(39)
+-28 + j*(117)
+111 + j*(85)
+137 + j*(-92)
+-47 + j*(-187)
+-205 + j*(-25)
+-78 + j*(178)
+155 + j*(92)
+112 + j*(-166)
+-160 + j*(-181)
+-235 + j*(68)
+-44 + j*(175)
+44 + j*(33)
+-103 + j*(-21)
+-174 + j*(165)
+8 + j*(320)
+242 + j*(232)
+292 + j*(9)
+166 + j*(-132)
+25 + j*(-111)
+-6 + j*(-17)
+49 + j*(25)
+98 + j*(0)
+110 + j*(-52)
+78 + j*(-95)
+43 + j*(-95)
+57 + j*(-105)
+17 + j*(-192)
+-161 + j*(-177)
+-211 + j*(55)
+24 + j*(159)
+147 + j*(-49)
+-27 + j*(-159)
+-86 + j*(-21)
+30 + j*(-39)
+-74 + j*(-160)
+-217 + j*(10)
+6 + j*(170)
+178 + j*(-110)
+-146 + j*(-326)
+-436 + j*(-13)
+-206 + j*(317)
+84 + j*(190)
+-2 + j*(-10)
+-135 + j*(107)
+26 + j*(238)
+175 + j*(51)
+-33 + j*(-112)
+-230 + j*(151)
+72 + j*(428)
+441 + j*(163)
+285 + j*(-211)
+31 + j*(-141)
+122 + j*(-71)
+59 + j*(-276)
+-257 + j*(-174)
+-159 + j*(170)
+137 + j*(47)
+-65 + j*(-188)
+-270 + j*(93)
+35 + j*(292)
+190 + j*(24)
+-17 + j*(-28)
+60 + j*(139)
+204 + j*(-42)
+-46 + j*(-151)
+-100 + j*(155)
+249 + j*(170)
+259 + j*(-165)
+19 + j*(-155)
+119 + j*(-50)
+136 + j*(-286)
+-193 + j*(-291)
+-197 + j*(45)
+93 + j*(-6)
+-42 + j*(-261)
+-276 + j*(-72)
+-58 + j*(115)
+63 + j*(-158)
+-290 + j*(-265)
+-474 + j*(115)
+-182 + j*(390)
+96 + j*(258)
+81 + j*(59)
+-41 + j*(51)
+-43 + j*(172)
+125 + j*(212)
+248 + j*(37)
+133 + j*(-148)
+-28 + j*(-124)
+-58 + j*(-66)
+-134 + j*(-73)
+-265 + j*(95)
+-115 + j*(383)
+272 + j*(359)
+402 + j*(-1)
+164 + j*(-211)
+-20 + j*(-98)
+35 + j*(7)
+76 + j*(-46)
+15 + j*(-50)
+42 + j*(10)
+103 + j*(-47)
+29 + j*(-105)
+1 + j*(-14)
+133 + j*(-28)
+109 + j*(-211)
+-85 + j*(-211)
+-73 + j*(-80)
+-12 + j*(-185)
+-257 + j*(-252)
+-415 + j*(74)
+-114 + j*(316)
+127 + j*(92)
+-46 + j*(-83)
+-161 + j*(90)
+21 + j*(185)
+119 + j*(18)
+-19 + j*(-86)
+-134 + j*(21)
+-71 + j*(149)
+52 + j*(132)
+54 + j*(53)
+23 + j*(91)
+148 + j*(122)
+232 + j*(-80)
+6 + j*(-236)
+-189 + j*(-35)
+-30 + j*(151)
+110 + j*(29)
+18 + j*(-44)
+18 + j*(25)
+71 + j*(-54)
+-92 + j*(-98)
+-150 + j*(140)
+132 + j*(248)
+313 + j*(-16)
+139 + j*(-256)
+-113 + j*(-218)
+-223 + j*(-1)
+-79 + j*(244)
+271 + j*(206)
+365 + j*(-177)
+55 + j*(-370)
+-127 + j*(-204)
+-74 + j*(-156)
+-203 + j*(-210)
+-339 + j*(19)
+-121 + j*(228)
+83 + j*(73)
+-7 + j*(-76)
+-74 + j*(-42)
+-105 + j*(-87)
+-296 + j*(-25)
+-277 + j*(303)
+100 + j*(375)
+226 + j*(42)
+-40 + j*(-61)
+-86 + j*(187)
+175 + j*(223)
+258 + j*(-19)
+107 + j*(-147)
+-11 + j*(-129)
+-97 + j*(-93)
+-180 + j*(18)
+-139 + j*(190)
+23 + j*(274)
+184 + j*(236)
+315 + j*(129)
+383 + j*(-73)
+267 + j*(-321)
+-45 + j*(-396)
+-294 + j*(-148)
+-168 + j*(194)
+203 + j*(185)
+301 + j*(-173)
+-1 + j*(-367)
+-240 + j*(-165)
+-136 + j*(38)
+1 + j*(-26)
+-81 + j*(-139)
+-235 + j*(-66)
+-253 + j*(145)
+-54 + j*(307)
+235 + j*(204)
+265 + j*(-140)
+-65 + j*(-286)
+-284 + j*(-6)
+-80 + j*(246)
+168 + j*(127)
+129 + j*(-69)
+18 + j*(-79)
+10 + j*(-55)
+-6 + j*(-84)
+-62 + j*(-88)
+-127 + j*(-64)
+-195 + j*(52)
+-80 + j*(241)
+212 + j*(180)
+235 + j*(-160)
+-88 + j*(-255)
+-211 + j*(1)
+-27 + j*(86)
+-21 + j*(-64)
+-187 + j*(-4)
+-112 + j*(192)
+86 + j*(136)
+46 + j*(-40)
+-119 + j*(-14)
+-132 + j*(142)
+-19 + j*(224)
+86 + j*(201)
+132 + j*(159)
+184 + j*(144)
+286 + j*(71)
+287 + j*(-121)
+101 + j*(-206)
+8 + j*(-66)
+159 + j*(-26)
+183 + j*(-241)
+-70 + j*(-322)
+-205 + j*(-115)
+-80 + j*(1)
+-47 + j*(-96)
+-193 + j*(-70)
+-182 + j*(145)
+61 + j*(205)
+191 + j*(-12)
+30 + j*(-181)
+-134 + j*(-75)
+-66 + j*(42)
+-21 + j*(-38)
+-177 + j*(-21)
+-162 + j*(250)
+190 + j*(324)
+389 + j*(-1)
+202 + j*(-268)
+-9 + j*(-250)
+-85 + j*(-190)
+-165 + j*(-132)
+-175 + j*(-1)
+-69 + j*(38)
+-55 + j*(-35)
+-124 + j*(-18)
+-110 + j*(44)
+-94 + j*(37)
+-130 + j*(83)
+-62 + j*(179)
+81 + j*(139)
+98 + j*(-9)
+-30 + j*(-78)
+-156 + j*(11)
+-132 + j*(190)
+69 + j*(250)
+196 + j*(72)
+58 + j*(-65)
+-54 + j*(53)
+72 + j*(150)
+165 + j*(21)
+50 + j*(-70)
+-45 + j*(34)
+35 + j*(168)
+235 + j*(170)
+391 + j*(-54)
+242 + j*(-366)
+-132 + j*(-349)
+-209 + j*(-13)
+61 + j*(66)
+103 + j*(-178)
+-140 + j*(-204)
+-170 + j*(10)
+-18 + j*(20)
+-69 + j*(-89)
+-191 + j*(18)
+-77 + j*(186)
+122 + j*(123)
+134 + j*(-72)
+-21 + j*(-153)
+-157 + j*(-62)
+-147 + j*(90)
+-30 + j*(162)
+78 + j*(128)
+128 + j*(52)
+129 + j*(-39)
+54 + j*(-112)
+-57 + j*(-70)
+-37 + j*(69)
+148 + j*(86)
+257 + j*(-141)
+59 + j*(-385)
+-279 + j*(-310)
+-349 + j*(4)
+-136 + j*(132)
+-54 + j*(-13)
+-226 + j*(-44)
+-296 + j*(187)
+-86 + j*(364)
+149 + j*(270)
+174 + j*(87)
+90 + j*(40)
+105 + j*(76)
+181 + j*(-5)
+86 + j*(-147)
+-91 + j*(-65)
+-9 + j*(110)
+159 + j*(-8)
+-11 + j*(-176)
+-190 + j*(42)
+68 + j*(233)
+261 + j*(-37)
+21 + j*(-206)
+-69 + j*(-16)
+96 + j*(-71)
+-120 + j*(-277)
+-433 + j*(43)
+-113 + j*(453)
+306 + j*(214)
+134 + j*(-105)
+-35 + j*(83)
+228 + j*(158)
+294 + j*(-152)
+21 + j*(-230)
+-8 + j*(-52)
+100 + j*(-127)
+-74 + j*(-223)
+-178 + j*(4)
+83 + j*(98)
+169 + j*(-205)
+-161 + j*(-320)
+-317 + j*(-17)
+-81 + j*(132)
+8 + j*(-56)
+-179 + j*(-90)
+-199 + j*(103)
+-43 + j*(113)
+-83 + j*(4)
+-197 + j*(112)
+-80 + j*(269)
+73 + j*(223)
+95 + j*(174)
+190 + j*(176)
+292 + j*(6)
+148 + j*(-172)
+-16 + j*(-81)
+67 + j*(17)
+118 + j*(-107)
+-34 + j*(-157)
+-94 + j*(-16)
+16 + j*(43)
+71 + j*(-37)
+34 + j*(-95)
+-16 + j*(-122)
+-96 + j*(-127)
+-170 + j*(-51)
+-168 + j*(58)
+-98 + j*(134)
+1 + j*(136)
+44 + j*(64)
+-2 + j*(47)
+29 + j*(110)
+141 + j*(53)
+81 + j*(-95)
+-76 + j*(-31)
+3 + j*(137)
+197 + j*(63)
+176 + j*(-136)
+30 + j*(-194)
+-62 + j*(-160)
+-128 + j*(-101)
+-132 + j*(-6)
+-75 + j*(22)
+-81 + j*(8)
+-88 + j*(57)
+-30 + j*(64)
+-62 + j*(31)
+-95 + j*(136)
+72 + j*(214)
+193 + j*(50)
+74 + j*(-64)
+23 + j*(25)
+122 + j*(24)
+123 + j*(-87)
+58 + j*(-127)
+1 + j*(-174)
+-169 + j*(-155)
+-218 + j*(85)
+28 + j*(179)
+113 + j*(-44)
+-93 + j*(-81)
+-86 + j*(119)
+101 + j*(91)
+65 + j*(-50)
+4 + j*(-4)
+80 + j*(-27)
+-8 + j*(-143)
+-153 + j*(-26)
+-38 + j*(117)
+76 + j*(17)
+-6 + j*(-52)
+-33 + j*(6)
+-18 + j*(-1)
+-59 + j*(51)
+66 + j*(141)
+221 + j*(-31)
+57 + j*(-251)
+-185 + j*(-149)
+-173 + j*(52)
+-64 + j*(115)
+47 + j*(105)
+112 + j*(-37)
+-73 + j*(-145)
+-216 + j*(90)
+59 + j*(261)
+247 + j*(-18)
+-3 + j*(-190)
+-117 + j*(4)
+4 + j*(30)
+-83 + j*(-12)
+-57 + j*(210)
+305 + j*(148)
+264 + j*(-318)
+-233 + j*(-344)
+-327 + j*(86)
+-46 + j*(213)
+59 + j*(112)
+123 + j*(61)
+132 + j*(-136)
+-174 + j*(-194)
+-283 + j*(185)
+114 + j*(347)
+311 + j*(16)
+122 + j*(-151)
+63 + j*(-121)
+-25 + j*(-228)
+-282 + j*(-91)
+-136 + j*(250)
+212 + j*(86)
+-5 + j*(-243)
+-327 + j*(39)
+-32 + j*(371)
+282 + j*(131)
+129 + j*(-94)
+45 + j*(4)
+151 + j*(-32)
+63 + j*(-173)
+-78 + j*(-105)
+-53 + j*(-16)
+-42 + j*(-6)
+-19 + j*(64)
+116 + j*(46)
+123 + j*(-122)
+-24 + j*(-168)
+-87 + j*(-91)
+-96 + j*(-54)
+-105 + j*(11)
+-15 + j*(45)
+6 + j*(-69)
+-151 + j*(-69)
+-148 + j*(140)
+89 + j*(154)
+129 + j*(-83)
+-83 + j*(-156)
+-197 + j*(5)
+-127 + j*(157)
+31 + j*(202)
+190 + j*(87)
+156 + j*(-146)
+-85 + j*(-204)
+-216 + j*(-30)
+-155 + j*(107)
+-95 + j*(154)
+-13 + j*(214)
+136 + j*(175)
+153 + j*(21)
+40 + j*(-1)
+65 + j*(89)
+175 + j*(22)
+105 + j*(-119)
+-43 + j*(-61)
+13 + j*(91)
+191 + j*(42)
+188 + j*(-163)
+1 + j*(-242)
+-140 + j*(-134)
+-145 + j*(11)
+-46 + j*(112)
+123 + j*(88)
+182 + j*(-113)
+-4 + j*(-250)
+-164 + j*(-119)
+-84 + j*(-23)
+-111 + j*(-127)
+-332 + j*(-11)
+-223 + j*(346)
+188 + j*(330)
+250 + j*(-14)
+39 + j*(-63)
+91 + j*(49)
+187 + j*(-119)
+-20 + j*(-245)
+-148 + j*(-88)
+-70 + j*(-34)
+-145 + j*(-76)
+-208 + j*(101)
+6 + j*(201)
+101 + j*(0)
+-80 + j*(-46)
+-74 + j*(122)
+69 + j*(79)
+-21 + j*(-8)
+-45 + j*(161)
+223 + j*(167)
+260 + j*(-165)
+-73 + j*(-249)
+-171 + j*(35)
+70 + j*(114)
+132 + j*(-117)
+-102 + j*(-209)
+-268 + j*(-11)
+-166 + j*(224)
+73 + j*(252)
+189 + j*(76)
+90 + j*(-40)
+28 + j*(37)
+148 + j*(68)
+208 + j*(-92)
+79 + j*(-209)
+-41 + j*(-173)
+-88 + j*(-124)
+-132 + j*(-63)
+-104 + j*(26)
+-31 + j*(5)
+-103 + j*(-40)
+-168 + j*(113)
+37 + j*(241)
+228 + j*(40)
+66 + j*(-176)
+-133 + j*(-46)
+-21 + j*(117)
+107 + j*(22)
+41 + j*(-64)
+28 + j*(-28)
+63 + j*(-115)
+-113 + j*(-202)
+-288 + j*(13)
+-102 + j*(262)
+165 + j*(146)
+112 + j*(-84)
+-59 + j*(-62)
+-39 + j*(65)
+69 + j*(44)
+68 + j*(-50)
+-1 + j*(-81)
+-45 + j*(-60)
+-72 + j*(-40)
+-107 + j*(0)
+-97 + j*(94)
+23 + j*(130)
+104 + j*(6)
+-19 + j*(-107)
+-163 + j*(2)
+-98 + j*(163)
+32 + j*(159)
+57 + j*(105)
+67 + j*(107)
+103 + j*(98)
+129 + j*(96)
+221 + j*(78)
+284 + j*(-74)
+160 + j*(-206)
+58 + j*(-151)
+107 + j*(-152)
+34 + j*(-272)
+-140 + j*(-206)
+-98 + j*(-59)
+-9 + j*(-129)
+-130 + j*(-213)
+-245 + j*(-123)
+-288 + j*(-35)
+-350 + j*(134)
+-155 + j*(395)
+218 + j*(272)
+158 + j*(-80)
+-105 + j*(11)
+93 + j*(211)
+281 + j*(-88)
+-50 + j*(-284)
+-209 + j*(13)
+38 + j*(69)
+-41 + j*(-163)
+-296 + j*(27)
+-74 + j*(295)
+156 + j*(88)
+-33 + j*(-39)
+-42 + j*(158)
+167 + j*(74)
+14 + j*(-136)
+-183 + j*(77)
+65 + j*(263)
+221 + j*(14)
+-19 + j*(-74)
+-25 + j*(204)
+338 + j*(187)
+400 + j*(-231)
+31 + j*(-421)
+-223 + j*(-202)
+-164 + j*(-1)
+-90 + j*(11)
+-108 + j*(50)
+-28 + j*(141)
+110 + j*(79)
+81 + j*(-49)
+1 + j*(-29)
+44 + j*(-4)
+22 + j*(-83)
+-86 + j*(-19)
+19 + j*(105)
+155 + j*(-39)
+-16 + j*(-174)
+-126 + j*(8)
+58 + j*(71)
+61 + j*(-107)
+-94 + j*(-41)
+53 + j*(81)
+152 + j*(-152)
+-134 + j*(-249)
+-212 + j*(27)
+13 + j*(31)
+-108 + j*(-165)
+-331 + j*(65)
+-63 + j*(331)
+197 + j*(100)
+23 + j*(-91)
+-70 + j*(56)
+72 + j*(66)
+44 + j*(-62)
+-47 + j*(-30)
+-16 + j*(-4)
+-71 + j*(-36)
+-115 + j*(84)
+42 + j*(141)
+95 + j*(-24)
+-60 + j*(-59)
+-73 + j*(71)
+12 + j*(56)
+-54 + j*(25)
+-49 + j*(161)
+138 + j*(169)
+171 + j*(-16)
+31 + j*(-37)
+76 + j*(78)
+231 + j*(-36)
+105 + j*(-274)
+-192 + j*(-209)
+-205 + j*(77)
+11 + j*(123)
+16 + j*(-23)
+-105 + j*(62)
+64 + j*(218)
+275 + j*(9)
+74 + j*(-238)
+-168 + j*(-60)
+-8 + j*(139)
+133 + j*(-11)
+-16 + j*(-84)
+-25 + j*(78)
+161 + j*(52)
+138 + j*(-136)
+-6 + j*(-127)
+21 + j*(-45)
+83 + j*(-111)
+18 + j*(-208)
+-103 + j*(-223)
+-221 + j*(-151)
+-252 + j*(-1)
+-166 + j*(93)
+-98 + j*(93)
+-58 + j*(98)
+-4 + j*(57)
+-63 + j*(-6)
+-138 + j*(103)
+16 + j*(211)
+146 + j*(52)
+10 + j*(-53)
+-27 + j*(73)
+110 + j*(28)
+-1 + j*(-129)
+-175 + j*(21)
+-14 + j*(196)
+130 + j*(52)
+11 + j*(-21)
+27 + j*(103)
+193 + j*(16)
+107 + j*(-202)
+-131 + j*(-188)
+-225 + j*(0)
+-151 + j*(190)
+72 + j*(253)
+236 + j*(65)
+118 + j*(-120)
+0 + j*(-57)
+58 + j*(-48)
+-39 + j*(-142)
+-183 + j*(23)
+5 + j*(203)
+180 + j*(36)
+63 + j*(-68)
+97 + j*(18)
+214 + j*(-175)
+-72 + j*(-381)
+-351 + j*(-119)
+-185 + j*(129)
+-79 + j*(41)
+-179 + j*(95)
+-40 + j*(252)
+127 + j*(124)
+24 + j*(40)
+58 + j*(175)
+269 + j*(78)
+195 + j*(-171)
+1 + j*(-156)
+-3 + j*(-79)
+-44 + j*(-112)
+-129 + j*(-7)
+-21 + j*(110)
+84 + j*(32)
+48 + j*(-4)
+119 + j*(15)
+174 + j*(-157)
+-36 + j*(-284)
+-210 + j*(-117)
+-117 + j*(38)
+-27 + j*(-5)
+-57 + j*(-45)
+-81 + j*(-31)
+-107 + j*(-19)
+-129 + j*(36)
+-92 + j*(88)
+-56 + j*(98)
+-28 + j*(129)
+60 + j*(140)
+129 + j*(58)
+108 + j*(-37)
+47 + j*(-77)
+-11 + j*(-66)
+-13 + j*(-17)
+44 + j*(-52)
+-26 + j*(-168)
+-223 + j*(-115)
+-238 + j*(111)
+-64 + j*(192)
+21 + j*(105)
+-16 + j*(61)
+-45 + j*(96)
+-6 + j*(173)
+145 + j*(181)
+225 + j*(-13)
+28 + j*(-133)
+-81 + j*(72)
+163 + j*(156)
+250 + j*(-125)
+-13 + j*(-226)
+-88 + j*(-43)
+2 + j*(-64)
+-158 + j*(-110)
+-231 + j*(163)
+66 + j*(300)
+243 + j*(77)
+145 + j*(-66)
+91 + j*(-82)
+-3 + j*(-118)
+-97 + j*(46)
+150 + j*(188)
+357 + j*(-127)
+28 + j*(-403)
+-263 + j*(-116)
+-34 + j*(139)
+162 + j*(-49)
+13 + j*(-190)
+-71 + j*(-94)
+-10 + j*(-69)
+-17 + j*(-113)
+-30 + j*(-117)
+-39 + j*(-168)
+-137 + j*(-205)
+-234 + j*(-144)
+-278 + j*(-71)
+-324 + j*(36)
+-268 + j*(194)
+-107 + j*(233)
+-40 + j*(147)
+144 + j*(100)
+114 + j*(-139)
+-59 + j*(-81)
+41 + j*(-2)
+23 + j*(-161)
+-189 + j*(-74)
+-52 + j*(148)
+144 + j*(-46)
+-123 + j*(-207)
+-264 + j*(122)
+91 + j*(254)
+206 + j*(-91)
+-107 + j*(-187)
+-196 + j*(83)
+6 + j*(176)
+105 + j*(62)
+81 + j*(-24)
+15 + j*(-57)
+-35 + j*(6)
+52 + j*(47)
+86 + j*(-85)
+-80 + j*(-120)
+-107 + j*(52)
+46 + j*(39)
+-36 + j*(-94)
+-171 + j*(52)
+12 + j*(190)
+124 + j*(6)
+-62 + j*(-54)
+-77 + j*(151)
+130 + j*(168)
+180 + j*(26)
+166 + j*(-25)
+178 + j*(-141)
+-4 + j*(-233)
+-127 + j*(-46)
+69 + j*(38)
+97 + j*(-207)
+-206 + j*(-209)
+-213 + j*(114)
+80 + j*(118)
+58 + j*(-122)
+-129 + j*(-64)
+-42 + j*(75)
+59 + j*(-29)
+-37 + j*(-95)
+-54 + j*(-34)
+-23 + j*(-101)
+-174 + j*(-157)
+-306 + j*(5)
+-240 + j*(180)
+-135 + j*(243)
+-26 + j*(291)
+132 + j*(257)
+208 + j*(124)
+208 + j*(8)
+157 + j*(-139)
+-93 + j*(-210)
+-298 + j*(95)
+19 + j*(426)
+450 + j*(151)
+264 + j*(-317)
+-165 + j*(-221)
+-127 + j*(117)
+110 + j*(104)
+114 + j*(-34)
+76 + j*(-50)
+64 + j*(-108)
+-61 + j*(-112)
+-74 + j*(44)
+88 + j*(50)
+76 + j*(-103)
+-59 + j*(-65)
+11 + j*(50)
+115 + j*(-42)
+33 + j*(-141)
+-35 + j*(-100)
+-25 + j*(-98)
+-86 + j*(-113)
+-129 + j*(-36)
+-80 + j*(10)
+-71 + j*(-4)
+-76 + j*(33)
+-16 + j*(42)
+-2 + j*(-22)
+-56 + j*(-44)
+-93 + j*(-27)
+-144 + j*(9)
+-151 + j*(122)
+-30 + j*(186)
+37 + j*(105)
+-25 + j*(115)
+68 + j*(235)
+293 + j*(144)
+298 + j*(-127)
+99 + j*(-245)
+-52 + j*(-191)
+-116 + j*(-89)
+-85 + j*(19)
+25 + j*(21)
+33 + j*(-80)
+-43 + j*(-100)
+-53 + j*(-90)
+-119 + j*(-156)
+-303 + j*(-93)
+-355 + j*(148)
+-214 + j*(329)
+-27 + j*(395)
+199 + j*(349)
+314 + j*(112)
+151 + j*(-49)
+52 + j*(86)
+244 + j*(121)
+284 + j*(-127)
+49 + j*(-185)
+27 + j*(2)
+211 + j*(-42)
+151 + j*(-265)
+-82 + j*(-264)
+-145 + j*(-88)
+-41 + j*(-4)
+49 + j*(-73)
+-9 + j*(-200)
+-190 + j*(-180)
+-232 + j*(2)
+-119 + j*(68)
+-112 + j*(33)
+-122 + j*(126)
+45 + j*(161)
+108 + j*(-21)
+-56 + j*(-84)
+-106 + j*(52)
+-6 + j*(88)
+16 + j*(47)
+35 + j*(50)
+67 + j*(-11)
+-2 + j*(-44)
+1 + j*(21)
+67 + j*(-56)
+-99 + j*(-135)
+-204 + j*(109)
+81 + j*(243)
+216 + j*(-44)
+-47 + j*(-130)
+-43 + j*(114)
+233 + j*(11)
+84 + j*(-315)
+-265 + j*(-170)
+-150 + j*(167)
+147 + j*(76)
+84 + j*(-208)
+-208 + j*(-217)
+-339 + j*(59)
+-137 + j*(312)
+177 + j*(216)
+168 + j*(-83)
+-66 + j*(-107)
+-75 + j*(45)
+-13 + j*(2)
+-144 + j*(21)
+-92 + j*(252)
+191 + j*(226)
+193 + j*(-28)
+28 + j*(-5)
+127 + j*(87)
+182 + j*(-74)
+2 + j*(-99)
+33 + j*(83)
+234 + j*(-5)
+139 + j*(-223)
+-50 + j*(-148)
+25 + j*(-31)
+87 + j*(-139)
+-49 + j*(-194)
+-114 + j*(-74)
+-28 + j*(-21)
+13 + j*(-83)
+-19 + j*(-139)
+-81 + j*(-182)
+-221 + j*(-189)
+-378 + j*(-21)
+-302 + j*(275)
+32 + j*(345)
+192 + j*(62)
+-36 + j*(-93)
+-155 + j*(137)
+107 + j*(244)
+225 + j*(-13)
+21 + j*(-123)
+-39 + j*(11)
+32 + j*(-8)
+-66 + j*(-26)
+-44 + j*(143)
+177 + j*(104)
+151 + j*(-119)
+-4 + j*(-110)
+28 + j*(-82)
+-83 + j*(-192)
+-298 + j*(13)
+-53 + j*(310)
+272 + j*(63)
+35 + j*(-238)
+-210 + j*(-17)
+-16 + j*(141)
+29 + j*(-34)
+-162 + j*(33)
+-40 + j*(267)
+216 + j*(182)
+217 + j*(-12)
+163 + j*(-77)
+107 + j*(-164)
+-49 + j*(-154)
+-57 + j*(-6)
+54 + j*(-30)
+-21 + j*(-124)
+-98 + j*(-25)
+-4 + j*(8)
+-48 + j*(-83)
+-159 + j*(32)
+-23 + j*(166)
+86 + j*(62)
+21 + j*(54)
+163 + j*(147)
+370 + j*(-109)
+130 + j*(-465)
+-307 + j*(-383)
+-434 + j*(-24)
+-293 + j*(241)
+-41 + j*(349)
+219 + j*(228)
+253 + j*(-38)
+90 + j*(-149)
+0 + j*(-105)
+-21 + j*(-91)
+-54 + j*(-76)
+-62 + j*(-71)
+-137 + j*(-81)
+-226 + j*(62)
+-79 + j*(230)
+105 + j*(127)
+32 + j*(-2)
+-16 + j*(91)
+112 + j*(83)
+72 + j*(-52)
+-34 + j*(34)
+112 + j*(119)
+197 + j*(-66)
+29 + j*(-139)
+23 + j*(-28)
+93 + j*(-136)
+-129 + j*(-206)
+-209 + j*(88)
+128 + j*(161)
+176 + j*(-214)
+-231 + j*(-250)
+-276 + j*(163)
+103 + j*(216)
+162 + j*(-110)
+-103 + j*(-170)
+-168 + j*(8)
+-94 + j*(54)
+-115 + j*(67)
+-83 + j*(164)
+49 + j*(171)
+99 + j*(70)
+49 + j*(5)
+-25 + j*(11)
+-71 + j*(113)
+41 + j*(254)
+279 + j*(206)
+356 + j*(-46)
+205 + j*(-207)
+76 + j*(-194)
+20 + j*(-175)
+-49 + j*(-140)
+-44 + j*(-54)
+33 + j*(-76)
+-28 + j*(-177)
+-183 + j*(-119)
+-182 + j*(59)
+-43 + j*(129)
+66 + j*(73)
+86 + j*(-34)
+5 + j*(-106)
+-82 + j*(-42)
+-15 + j*(33)
+47 + j*(-59)
+-76 + j*(-122)
+-139 + j*(6)
+-29 + j*(49)
+-35 + j*(-45)
+-131 + j*(8)
+-66 + j*(96)
+-30 + j*(40)
+-101 + j*(95)
+33 + j*(218)
+203 + j*(63)
+78 + j*(-99)
+5 + j*(-5)
+102 + j*(-70)
+-103 + j*(-209)
+-305 + j*(100)
+66 + j*(353)
+339 + j*(-42)
+-57 + j*(-307)
+-301 + j*(69)
+21 + j*(284)
+190 + j*(57)
+82 + j*(-44)
+60 + j*(-49)
+-45 + j*(-98)
+-144 + j*(104)
+140 + j*(253)
+336 + j*(-73)
+31 + j*(-284)
+-132 + j*(-40)
+67 + j*(16)
+7 + j*(-181)
+-216 + j*(-55)
+-95 + j*(177)
+87 + j*(103)
+58 + j*(34)
+124 + j*(73)
+238 + j*(-86)
+78 + j*(-296)
+-180 + j*(-224)
+-221 + j*(8)
+-57 + j*(126)
+105 + j*(9)
+-1 + j*(-199)
+-282 + j*(-111)
+-247 + j*(228)
+83 + j*(258)
+134 + j*(0)
+-55 + j*(-5)
+2 + j*(168)
+202 + j*(102)
+206 + j*(-102)
+62 + j*(-202)
+-98 + j*(-160)
+-134 + j*(5)
+27 + j*(59)
+62 + j*(-136)
+-194 + j*(-168)
+-259 + j*(117)
+-12 + j*(205)
+42 + j*(38)
+-71 + j*(74)
+40 + j*(184)
+169 + j*(58)
+74 + j*(-47)
+27 + j*(14)
+86 + j*(18)
+86 + j*(-35)
+77 + j*(-62)
+31 + j*(-113)
+-66 + j*(-48)
+53 + j*(76)
+242 + j*(-124)
+-1 + j*(-432)
+-417 + j*(-264)
+-421 + j*(142)
+-186 + j*(296)
+-6 + j*(315)
+218 + j*(226)
+247 + j*(-93)
+-90 + j*(-182)
+-182 + j*(164)
+179 + j*(245)
+259 + j*(-111)
+-62 + j*(-174)
+-81 + j*(103)
+185 + j*(71)
+134 + j*(-216)
+-175 + j*(-194)
+-214 + j*(105)
+35 + j*(205)
+169 + j*(27)
+64 + j*(-98)
+-13 + j*(-45)
+30 + j*(-47)
+-57 + j*(-122)
+-204 + j*(22)
+-45 + j*(244)
+211 + j*(115)
+117 + j*(-112)
+-33 + j*(-10)
+135 + j*(69)
+196 + j*(-180)
+-95 + j*(-271)
+-214 + j*(4)
+13 + j*(116)
+98 + j*(-71)
+-56 + j*(-140)
+-122 + j*(-34)
+-77 + j*(11)
+-88 + j*(7)
+-112 + j*(77)
+-31 + j*(173)
+130 + j*(153)
+206 + j*(-4)
+139 + j*(-139)
+52 + j*(-182)
+-37 + j*(-235)
+-233 + j*(-211)
+-333 + j*(33)
+-136 + j*(209)
+6 + j*(76)
+-130 + j*(20)
+-127 + j*(216)
+112 + j*(206)
+97 + j*(-23)
+-114 + j*(33)
+-18 + j*(248)
+208 + j*(163)
+162 + j*(-18)
+74 + j*(20)
+156 + j*(33)
+157 + j*(-88)
+54 + j*(-106)
+54 + j*(-64)
+59 + j*(-120)
+-37 + j*(-133)
+-66 + j*(-51)
+-35 + j*(-43)
+-90 + j*(-32)
+-62 + j*(88)
+112 + j*(53)
+64 + j*(-175)
+-239 + j*(-116)
+-204 + j*(276)
+263 + j*(312)
+400 + j*(-181)
+-59 + j*(-414)
+-345 + j*(-23)
+-17 + j*(279)
+287 + j*(-2)
+54 + j*(-317)
+-267 + j*(-153)
+-187 + j*(132)
+25 + j*(112)
+10 + j*(-30)
+-101 + j*(14)
+-50 + j*(140)
+96 + j*(128)
+144 + j*(-4)
+58 + j*(-91)
+-30 + j*(-45)
+-2 + j*(36)
+90 + j*(21)
+115 + j*(-74)
+66 + j*(-150)
+-4 + j*(-198)
+-127 + j*(-223)
+-272 + j*(-129)
+-288 + j*(60)
+-172 + j*(156)
+-106 + j*(139)
+-111 + j*(180)
+-2 + j*(269)
+180 + j*(195)
+193 + j*(-4)
+47 + j*(-75)
+-20 + j*(1)
+14 + j*(30)
+-6 + j*(3)
+-56 + j*(64)
+12 + j*(162)
+153 + j*(139)
+195 + j*(6)
+124 + j*(-74)
+64 + j*(-59)
+65 + j*(-44)
+59 + j*(-62)
+30 + j*(-60)
+30 + j*(-37)
+40 + j*(-38)
+44 + j*(-30)
+95 + j*(-29)
+142 + j*(-123)
+58 + j*(-236)
+-76 + j*(-217)
+-99 + j*(-147)
+-112 + j*(-163)
+-206 + j*(-144)
+-247 + j*(-40)
+-233 + j*(20)
+-268 + j*(112)
+-160 + j*(294)
+119 + j*(248)
+119 + j*(-46)
+-166 + j*(-35)
+-129 + j*(279)
+225 + j*(253)
+252 + j*(-98)
+-35 + j*(-184)
+-156 + j*(-9)
+-127 + j*(107)
+-74 + j*(223)
+131 + j*(286)
+298 + j*(88)
+164 + j*(-94)
+57 + j*(7)
+195 + j*(31)
+187 + j*(-161)
+-21 + j*(-151)
+23 + j*(42)
+228 + j*(-50)
+130 + j*(-291)
+-111 + j*(-240)
+-89 + j*(-58)
+41 + j*(-115)
+-55 + j*(-274)
+-294 + j*(-221)
+-366 + j*(43)
+-172 + j*(231)
+43 + j*(133)
+-14 + j*(-48)
+-181 + j*(25)
+-89 + j*(216)
+122 + j*(141)
+79 + j*(-52)
+-66 + j*(-21)
+-28 + j*(63)
+-8 + j*(-1)
+-116 + j*(37)
+-42 + j*(202)
+159 + j*(124)
+83 + j*(-76)
+-100 + j*(16)
+22 + j*(194)
+196 + j*(66)
+77 + j*(-83)
+-19 + j*(47)
+152 + j*(118)
+251 + j*(-88)
+80 + j*(-239)
+-86 + j*(-166)
+-109 + j*(-57)
+-93 + j*(1)
+-73 + j*(54)
+-21 + j*(100)
+72 + j*(111)
+172 + j*(20)
+124 + j*(-136)
+-50 + j*(-129)
+-43 + j*(38)
+132 + j*(0)
+69 + j*(-211)
+-181 + j*(-151)
+-145 + j*(109)
+105 + j*(105)
+136 + j*(-108)
+-2 + j*(-182)
+-82 + j*(-158)
+-173 + j*(-144)
+-274 + j*(-18)
+-214 + j*(171)
+-36 + j*(211)
+54 + j*(119)
+42 + j*(52)
+20 + j*(42)
+28 + j*(47)
+45 + j*(26)
+29 + j*(4)
+18 + j*(19)
+47 + j*(9)
+21 + j*(-30)
+-14 + j*(29)
+117 + j*(64)
+194 + j*(-156)
+-80 + j*(-331)
+-351 + j*(-86)
+-207 + j*(208)
+8 + j*(154)
+-31 + j*(71)
+-18 + j*(165)
+136 + j*(132)
+124 + j*(-31)
+2 + j*(-37)
+-8 + j*(30)
+4 + j*(45)
+24 + j*(95)
+135 + j*(85)
+139 + j*(-47)
+35 + j*(-35)
+120 + j*(34)
+194 + j*(-156)
+-86 + j*(-270)
+-250 + j*(62)
+107 + j*(274)
+376 + j*(-83)
+81 + j*(-404)
+-240 + j*(-239)
+-210 + j*(-13)
+-152 + j*(24)
+-155 + j*(121)
+13 + j*(231)
+222 + j*(92)
+180 + j*(-144)
+1 + j*(-199)
+-95 + j*(-138)
+-144 + j*(-87)
+-191 + j*(10)
+-120 + j*(147)
+57 + j*(143)
+117 + j*(-29)
+-23 + j*(-131)
+-144 + j*(-45)
+-124 + j*(57)
+-93 + j*(82)
+-83 + j*(140)
+27 + j*(192)
+135 + j*(89)
+48 + j*(-26)
+-49 + j*(83)
+102 + j*(208)
+302 + j*(53)
+222 + j*(-209)
+-25 + j*(-246)
+-151 + j*(-85)
+-100 + j*(69)
+42 + j*(111)
+156 + j*(-3)
+81 + j*(-167)
+-112 + j*(-141)
+-125 + j*(42)
+30 + j*(71)
+41 + j*(-50)
+-55 + j*(-14)
+54 + j*(79)
+187 + j*(-110)
+-51 + j*(-331)
+-372 + j*(-107)
+-217 + j*(260)
+122 + j*(160)
+20 + j*(-132)
+-268 + j*(17)
+-103 + j*(351)
+269 + j*(233)
+226 + j*(-110)
+-33 + j*(-105)
+-6 + j*(63)
+107 + j*(-15)
+-10 + j*(-103)
+-88 + j*(27)
+31 + j*(91)
+69 + j*(8)
+44 + j*(25)
+150 + j*(0)
+107 + j*(-216)
+-198 + j*(-200)
+-223 + j*(147)
+117 + j*(201)
+166 + j*(-112)
+-123 + j*(-139)
+-135 + j*(134)
+117 + j*(157)
+165 + j*(-52)
+25 + j*(-124)
+-57 + j*(-50)
+-33 + j*(39)
+78 + j*(47)
+110 + j*(-95)
+-59 + j*(-139)
+-91 + j*(61)
+158 + j*(62)
+148 + j*(-249)
+-190 + j*(-263)
+-224 + j*(35)
+-13 + j*(33)
+-105 + j*(-115)
+-235 + j*(47)
+-71 + j*(166)
+-21 + j*(40)
+-129 + j*(108)
+42 + j*(244)
+213 + j*(25)
+-16 + j*(-142)
+-153 + j*(88)
+67 + j*(202)
+175 + j*(26)
+91 + j*(-64)
+47 + j*(-93)
+-87 + j*(-119)
+-182 + j*(95)
+90 + j*(248)
+279 + j*(-56)
+-25 + j*(-264)
+-223 + j*(11)
+-1 + j*(165)
+72 + j*(1)
+-47 + j*(19)
+42 + j*(117)
+108 + j*(-4)
+-17 + j*(0)
+78 + j*(148)
+271 + j*(-11)
+112 + j*(-221)
+-30 + j*(-89)
+124 + j*(-91)
+-13 + j*(-344)
+-397 + j*(-146)
+-210 + j*(320)
+266 + j*(155)
+98 + j*(-298)
+-337 + j*(-121)
+-184 + j*(305)
+194 + j*(218)
+178 + j*(-49)
+65 + j*(-50)
+132 + j*(-78)
+56 + j*(-267)
+-237 + j*(-258)
+-377 + j*(42)
+-192 + j*(322)
+141 + j*(327)
+325 + j*(55)
+189 + j*(-217)
+-54 + j*(-221)
+-131 + j*(-95)
+-144 + j*(-40)
+-175 + j*(66)
+-47 + j*(191)
+121 + j*(77)
+18 + j*(-81)
+-108 + j*(42)
+54 + j*(137)
+127 + j*(-64)
+-112 + j*(-124)
+-172 + j*(144)
+100 + j*(218)
+187 + j*(-15)
+14 + j*(-90)
+-21 + j*(30)
+62 + j*(21)
+18 + j*(-42)
+-34 + j*(35)
+68 + j*(101)
+170 + j*(2)
+119 + j*(-130)
+6 + j*(-136)
+-16 + j*(-76)
+10 + j*(-100)
+-74 + j*(-148)
+-179 + j*(-42)
+-91 + j*(98)
+42 + j*(25)
+-37 + j*(-88)
+-147 + j*(-1)
+-86 + j*(103)
+-18 + j*(102)
+36 + j*(106)
+126 + j*(17)
+11 + j*(-145)
+-206 + j*(-6)
+-47 + j*(245)
+207 + j*(66)
+-15 + j*(-161)
+-214 + j*(128)
+122 + j*(326)
+318 + j*(7)
+70 + j*(-118)
+91 + j*(78)
+311 + j*(-99)
+57 + j*(-383)
+-241 + j*(-135)
+-14 + j*(94)
+115 + j*(-156)
+-186 + j*(-227)
+-252 + j*(89)
+21 + j*(159)
+73 + j*(-37)
+-58 + j*(-59)
+-62 + j*(23)
+-24 + j*(32)
+8 + j*(34)
+42 + j*(-37)
+-79 + j*(-105)
+-193 + j*(67)
+2 + j*(228)
+190 + j*(57)
+70 + j*(-106)
+-11 + j*(-27)
+69 + j*(-54)
+-45 + j*(-185)
+-231 + j*(-43)
+-115 + j*(156)
+37 + j*(57)
+-93 + j*(-25)
+-156 + j*(170)
+78 + j*(279)
+248 + j*(86)
+146 + j*(-98)
+6 + j*(-70)
+16 + j*(18)
+95 + j*(-5)
+75 + j*(-119)
+-78 + j*(-141)
+-161 + j*(25)
+-20 + j*(162)
+144 + j*(63)
+93 + j*(-98)
+-44 + j*(-76)
+-37 + j*(32)
+53 + j*(35)
+81 + j*(-43)
+35 + j*(-105)
+-49 + j*(-117)
+-122 + j*(-47)
+-89 + j*(52)
+-2 + j*(38)
+-39 + j*(-33)
+-122 + j*(45)
+-23 + j*(166)
+119 + j*(76)
+28 + j*(-49)
+-66 + j*(86)
+141 + j*(190)
+303 + j*(-67)
+58 + j*(-293)
+-188 + j*(-107)
+-60 + j*(103)
+87 + j*(5)
+-7 + j*(-75)
+-25 + j*(29)
+105 + j*(-1)
+59 + j*(-175)
+-141 + j*(-156)
+-177 + j*(27)
+-63 + j*(100)
+4 + j*(71)
+35 + j*(47)
+62 + j*(-2)
+26 + j*(-59)
+-28 + j*(-43)
+-9 + j*(-8)
+21 + j*(-62)
+-70 + j*(-139)
+-241 + j*(-59)
+-252 + j*(199)
+17 + j*(357)
+298 + j*(173)
+252 + j*(-141)
+3 + j*(-206)
+-95 + j*(-69)
+-40 + j*(-15)
+-54 + j*(-54)
+-133 + j*(-16)
+-143 + j*(107)
+-35 + j*(205)
+133 + j*(177)
+202 + j*(1)
+71 + j*(-123)
+-56 + j*(-41)
+13 + j*(59)
+94 + j*(-21)
+19 + j*(-98)
+-47 + j*(-52)
+-40 + j*(-37)
+-110 + j*(-35)
+-149 + j*(111)
+23 + j*(215)
+165 + j*(74)
+76 + j*(-56)
+-11 + j*(1)
+30 + j*(45)
+23 + j*(37)
+51 + j*(127)
+254 + j*(113)
+326 + j*(-168)
+64 + j*(-348)
+-156 + j*(-192)
+-112 + j*(-25)
+-44 + j*(-9)
+-15 + j*(15)
+85 + j*(-18)
+57 + j*(-182)
+-154 + j*(-184)
+-199 + j*(30)
+-31 + j*(102)
+40 + j*(6)
+31 + j*(-35)
+49 + j*(-125)
+-118 + j*(-252)
+-381 + j*(-74)
+-271 + j*(275)
+63 + j*(257)
+85 + j*(16)
+-61 + j*(23)
+-1 + j*(112)
+55 + j*(21)
+-43 + j*(4)
+-15 + j*(107)
+101 + j*(37)
+-3 + j*(-95)
+-155 + j*(18)
+-65 + j*(187)
+84 + j*(152)
+90 + j*(71)
+85 + j*(79)
+158 + j*(64)
+202 + j*(-56)
+105 + j*(-194)
+-98 + j*(-185)
+-185 + j*(19)
+-22 + j*(162)
+120 + j*(41)
+18 + j*(-66)
+-49 + j*(47)
+81 + j*(86)
+91 + j*(-52)
+-56 + j*(-18)
+25 + j*(170)
+280 + j*(81)
+242 + j*(-219)
+-45 + j*(-251)
+-104 + j*(-11)
+115 + j*(41)
+188 + j*(-203)
+-66 + j*(-356)
+-310 + j*(-163)
+-231 + j*(110)
+-1 + j*(123)
+53 + j*(-40)
+-52 + j*(-109)
+-141 + j*(-64)
+-173 + j*(28)
+-115 + j*(134)
+21 + j*(132)
+54 + j*(7)
+-55 + j*(-27)
+-80 + j*(75)
+13 + j*(101)
+42 + j*(37)
+21 + j*(30)
+62 + j*(24)
+64 + j*(-76)
+-80 + j*(-126)
+-209 + j*(16)
+-119 + j*(219)
+111 + j*(224)
+198 + j*(27)
+74 + j*(-86)
+3 + j*(-23)
+49 + j*(-32)
+-34 + j*(-107)
+-163 + j*(16)
+-45 + j*(180)
+108 + j*(92)
+33 + j*(-2)
+5 + j*(95)
+135 + j*(96)
+144 + j*(-18)
+107 + j*(-13)
+182 + j*(-74)
+67 + j*(-247)
+-175 + j*(-125)
+-54 + j*(132)
+190 + j*(-6)
+40 + j*(-233)
+-161 + j*(-98)
+-61 + j*(39)
+-20 + j*(-42)
+-102 + j*(4)
+-11 + j*(105)
+84 + j*(20)
+41 + j*(-22)
+104 + j*(-15)
+120 + j*(-202)
+-148 + j*(-276)
+-279 + j*(-10)
+-69 + j*(116)
+-6 + j*(-48)
+-163 + j*(-61)
+-185 + j*(83)
+-119 + j*(146)
+-56 + j*(219)
+141 + j*(226)
+251 + j*(-26)
+21 + j*(-221)
+-214 + j*(-74)
+-190 + j*(148)
+-60 + j*(253)
+116 + j*(282)
+306 + j*(153)
+316 + j*(-95)
+158 + j*(-246)
+-43 + j*(-279)
+-268 + j*(-133)
+-239 + j*(223)
+180 + j*(308)
+349 + j*(-122)
+-64 + j*(-347)
+-322 + j*(26)
+-8 + j*(297)
+247 + j*(64)
+94 + j*(-145)
+-49 + j*(-45)
+32 + j*(45)
+108 + j*(-38)
+32 + j*(-130)
+-74 + j*(-74)
+-28 + j*(23)
+49 + j*(-39)
+-59 + j*(-112)
+-149 + j*(50)
+41 + j*(172)
+185 + j*(-4)
+66 + j*(-120)
+44 + j*(-49)
+133 + j*(-151)
+-36 + j*(-321)
+-262 + j*(-193)
+-228 + j*(-13)
+-184 + j*(-14)
+-239 + j*(48)
+-181 + j*(162)
+-107 + j*(170)
+-72 + j*(226)
+110 + j*(231)
+163 + j*(-16)
+-125 + j*(-67)
+-160 + j*(276)
+224 + j*(334)
+330 + j*(-10)
+110 + j*(-105)
+117 + j*(-16)
+158 + j*(-151)
+-41 + j*(-218)
+-127 + j*(-69)
+-90 + j*(-40)
+-190 + j*(7)
+-132 + j*(233)
+139 + j*(206)
+105 + j*(-23)
+-70 + j*(91)
+141 + j*(276)
+378 + j*(51)
+246 + j*(-183)
+138 + j*(-158)
+154 + j*(-242)
+-54 + j*(-347)
+-252 + j*(-144)
+-119 + j*(59)
+10 + j*(-28)
+-83 + j*(-84)
+-122 + j*(31)
+-16 + j*(100)
+103 + j*(54)
+160 + j*(-99)
+23 + j*(-279)
+-250 + j*(-215)
+-277 + j*(72)
+-40 + j*(152)
+33 + j*(-25)
+-109 + j*(-80)
+-172 + j*(23)
+-148 + j*(94)
+-120 + j*(180)
+33 + j*(251)
+209 + j*(100)
+108 + j*(-134)
+-139 + j*(-85)
+-134 + j*(147)
+62 + j*(185)
+126 + j*(57)
+85 + j*(6)
+94 + j*(-25)
+28 + j*(-120)
+-146 + j*(-66)
+-144 + j*(151)
+54 + j*(213)
+146 + j*(105)
+148 + j*(69)
+239 + j*(5)
+206 + j*(-204)
+-40 + j*(-253)
+-141 + j*(-56)
+-26 + j*(25)
+-9 + j*(-23)
+-25 + j*(31)
+88 + j*(24)
+68 + j*(-133)
+-115 + j*(-102)
+-71 + j*(83)
+107 + j*(17)
+22 + j*(-158)
+-146 + j*(-75)
+-86 + j*(59)
+-18 + j*(10)
+-89 + j*(6)
+-71 + j*(113)
+38 + j*(118)
+62 + j*(61)
+79 + j*(71)
+175 + j*(26)
+182 + j*(-141)
+27 + j*(-250)
+-154 + j*(-200)
+-242 + j*(-35)
+-169 + j*(148)
+28 + j*(182)
+119 + j*(23)
+-4 + j*(-71)
+-80 + j*(55)
+78 + j*(136)
+201 + j*(-40)
+51 + j*(-215)
+-136 + j*(-129)
+-115 + j*(15)
+-48 + j*(14)
+-65 + j*(13)
+-32 + j*(52)
+6 + j*(-6)
+-92 + j*(-28)
+-108 + j*(125)
+95 + j*(154)
+145 + j*(-75)
+-81 + j*(-149)
+-168 + j*(36)
+-63 + j*(98)
+-88 + j*(78)
+-85 + j*(232)
+168 + j*(283)
+300 + j*(21)
+99 + j*(-140)
+-28 + j*(1)
+87 + j*(86)
+153 + j*(6)
+146 + j*(-33)
+196 + j*(-98)
+144 + j*(-267)
+-88 + j*(-317)
+-242 + j*(-145)
+-199 + j*(22)
+-127 + j*(65)
+-105 + j*(106)
+-24 + j*(184)
+145 + j*(170)
+253 + j*(-1)
+181 + j*(-197)
+1 + j*(-265)
+-160 + j*(-197)
+-226 + j*(-42)
+-148 + j*(98)
+-10 + j*(91)
+0 + j*(-11)
+-71 + j*(-3)
+-41 + j*(52)
+-11 + j*(0)
+-92 + j*(-5)
+-85 + j*(107)
+28 + j*(93)
+-16 + j*(7)
+-84 + j*(111)
+69 + j*(193)
+167 + j*(37)
+43 + j*(-35)
+47 + j*(66)
+161 + j*(-15)
+35 + j*(-163)
+-132 + j*(-27)
+-15 + j*(130)
+108 + j*(49)
+64 + j*(-9)
+86 + j*(22)
+136 + j*(-57)
+55 + j*(-124)
+25 + j*(-78)
+64 + j*(-126)
+-51 + j*(-210)
+-187 + j*(-104)
+-148 + j*(22)
+-120 + j*(35)
+-128 + j*(148)
+94 + j*(257)
+345 + j*(11)
+172 + j*(-356)
+-223 + j*(-314)
+-296 + j*(6)
+-100 + j*(103)
+-70 + j*(-10)
+-178 + j*(45)
+-81 + j*(194)
+84 + j*(86)
+-57 + j*(-71)
+-226 + j*(136)
+33 + j*(346)
+279 + j*(84)
+23 + j*(-144)
+-164 + j*(141)
+165 + j*(317)
+367 + j*(-18)
+89 + j*(-231)
+-88 + j*(-35)
+35 + j*(93)
+132 + j*(57)
+219 + j*(1)
+264 + j*(-218)
+-21 + j*(-406)
+-325 + j*(-150)
+-140 + j*(187)
+168 + j*(58)
+76 + j*(-210)
+-147 + j*(-161)
+-148 + j*(-8)
+-74 + j*(6)
+-89 + j*(-23)
+-144 + j*(18)
+-127 + j*(123)
+2 + j*(157)
+58 + j*(49)
+-41 + j*(27)
+-10 + j*(156)
+165 + j*(92)
+88 + j*(-93)
+-71 + j*(11)
+91 + j*(141)
+202 + j*(-65)
+-13 + j*(-148)
+-18 + j*(62)
+214 + j*(-37)
+35 + j*(-320)
+-281 + j*(-126)
+-102 + j*(167)
+122 + j*(-16)
+-92 + j*(-170)
+-205 + j*(63)
+10 + j*(156)
+71 + j*(-11)
+-37 + j*(-30)
+-14 + j*(35)
+26 + j*(-16)
+-26 + j*(-56)
+-78 + j*(-49)
+-167 + j*(5)
+-163 + j*(206)
+111 + j*(287)
+266 + j*(14)
+36 + j*(-153)
+-81 + j*(48)
+132 + j*(109)
+180 + j*(-126)
+-32 + j*(-206)
+-134 + j*(-86)
+-135 + j*(-16)
+-150 + j*(71)
+-54 + j*(168)
+60 + j*(118)
+49 + j*(54)
+72 + j*(72)
+124 + j*(-14)
+5 + j*(-96)
+-78 + j*(39)
+68 + j*(103)
+100 + j*(-56)
+-78 + j*(-47)
+-35 + j*(161)
+194 + j*(110)
+156 + j*(-115)
+-33 + j*(-79)
+11 + j*(81)
+156 + j*(53)
+188 + j*(-41)
+220 + j*(-119)
+189 + j*(-305)
+-71 + j*(-407)
+-284 + j*(-194)
+-153 + j*(18)
+1 + j*(-100)
+-168 + j*(-241)
+-371 + j*(-59)
+-262 + j*(197)
+-33 + j*(185)
+-1 + j*(25)
+-129 + j*(-14)
+-205 + j*(121)
+-92 + j*(288)
+154 + j*(258)
+230 + j*(4)
+18 + j*(-135)
+-125 + j*(29)
+9 + j*(150)
+98 + j*(33)
+-13 + j*(-10)
+-10 + j*(112)
+136 + j*(90)
+122 + j*(-68)
+-18 + j*(-75)
+-45 + j*(35)
+28 + j*(87)
+118 + j*(69)
+181 + j*(-52)
+69 + j*(-202)
+-136 + j*(-134)
+-113 + j*(66)
+42 + j*(57)
+8 + j*(-47)
+-66 + j*(23)
+25 + j*(87)
+83 + j*(7)
+42 + j*(-22)
+74 + j*(-25)
+54 + j*(-136)
+-122 + j*(-134)
+-162 + j*(60)
+3 + j*(125)
+60 + j*(15)
+-7 + j*(-12)
+-16 + j*(25)
+-18 + j*(44)
+15 + j*(123)
+188 + j*(107)
+230 + j*(-129)
+-8 + j*(-223)
+-100 + j*(-18)
+85 + j*(27)
+83 + j*(-168)
+-118 + j*(-143)
+-72 + j*(44)
+106 + j*(-39)
+4 + j*(-240)
+-216 + j*(-181)
+-240 + j*(-13)
+-204 + j*(47)
+-207 + j*(129)
+-109 + j*(250)
+64 + j*(228)
+132 + j*(100)
+86 + j*(10)
+14 + j*(3)
+-6 + j*(80)
+102 + j*(127)
+205 + j*(6)
+120 + j*(-132)
+23 + j*(-95)
+71 + j*(-92)
+2 + j*(-221)
+-213 + j*(-148)
+-161 + j*(94)
+59 + j*(23)
+-74 + j*(-202)
+-357 + j*(-33)
+-240 + j*(288)
+18 + j*(272)
+37 + j*(175)
+105 + j*(233)
+291 + j*(98)
+181 + j*(-177)
+-100 + j*(-116)
+-73 + j*(117)
+91 + j*(106)
+87 + j*(23)
+88 + j*(41)
+129 + j*(-18)
+35 + j*(-51)
+51 + j*(93)
+299 + j*(35)
+273 + j*(-335)
+-156 + j*(-414)
+-351 + j*(-25)
+-69 + j*(227)
+180 + j*(63)
+119 + j*(-141)
+-9 + j*(-163)
+-68 + j*(-130)
+-117 + j*(-95)
+-148 + j*(-23)
+-117 + j*(53)
+-54 + j*(87)
+18 + j*(79)
+74 + j*(8)
+27 + j*(-95)
+-106 + j*(-81)
+-122 + j*(64)
+18 + j*(103)
+67 + j*(-23)
+-38 + j*(-62)
+-52 + j*(15)
+-5 + j*(-18)
+-100 + j*(-43)
+-124 + j*(118)
+87 + j*(151)
+124 + j*(-83)
+-111 + j*(-116)
+-126 + j*(108)
+68 + j*(95)
+16 + j*(-65)
+-108 + j*(23)
+4 + j*(105)
+25 + j*(-23)
+-137 + j*(26)
+-43 + j*(242)
+209 + j*(152)
+157 + j*(-90)
+-29 + j*(-62)
+-1 + j*(57)
+65 + j*(22)
+33 + j*(-6)
+37 + j*(25)
+71 + j*(4)
+57 + j*(-27)
+45 + j*(-31)
+33 + j*(-45)
+14 + j*(-37)
+20 + j*(-40)
+-26 + j*(-62)
+-83 + j*(25)
+33 + j*(124)
+168 + j*(6)
+71 + j*(-131)
+-31 + j*(-49)
+61 + j*(-3)
+76 + j*(-119)
+-37 + j*(-129)
+-37 + j*(-59)
+-21 + j*(-105)
+-117 + j*(-103)
+-119 + j*(0)
+-52 + j*(-21)
+-143 + j*(-62)
+-216 + j*(88)
+-84 + j*(226)
+62 + j*(204)
+172 + j*(158)
+307 + j*(4)
+238 + j*(-293)
+-97 + j*(-386)
+-315 + j*(-170)
+-280 + j*(40)
+-205 + j*(124)
+-131 + j*(193)
+-19 + j*(206)
+49 + j*(155)
+71 + j*(120)
+98 + j*(83)
+88 + j*(44)
+91 + j*(46)
+132 + j*(-2)
+78 + j*(-77)
+6 + j*(-24)
+94 + j*(13)
+116 + j*(-141)
+-91 + j*(-177)
+-135 + j*(46)
+101 + j*(64)
+78 + j*(-226)
+-296 + j*(-205)
+-355 + j*(235)
+74 + j*(406)
+328 + j*(66)
+108 + j*(-200)
+-114 + j*(-77)
+-45 + j*(81)
+49 + j*(34)
+9 + j*(-13)
+-10 + j*(21)
+1 + j*(23)
+-32 + j*(61)
+52 + j*(161)
+234 + j*(83)
+208 + j*(-136)
+31 + j*(-148)
+47 + j*(-47)
+117 + j*(-138)
+-10 + j*(-226)
+-93 + j*(-142)
+-71 + j*(-156)
+-241 + j*(-191)
+-377 + j*(94)
+-81 + j*(344)
+216 + j*(110)
+48 + j*(-162)
+-172 + j*(-31)
+-73 + j*(142)
+57 + j*(87)
+47 + j*(13)
+22 + j*(-12)
+-25 + j*(-16)
+-24 + j*(68)
+117 + j*(53)
+107 + j*(-164)
+-175 + j*(-194)
+-265 + j*(111)
+1 + j*(253)
+161 + j*(64)
+62 + j*(-62)
+4 + j*(-42)
+-28 + j*(-76)
+-167 + j*(-33)
+-160 + j*(195)
+110 + j*(252)
+217 + j*(-8)
+-30 + j*(-126)
+-147 + j*(141)
+146 + j*(299)
+387 + j*(37)
+243 + j*(-246)
+35 + j*(-247)
+-33 + j*(-213)
+-173 + j*(-204)
+-295 + j*(11)
+-115 + j*(234)
+114 + j*(135)
+74 + j*(-23)
+9 + j*(18)
+79 + j*(5)
+8 + j*(-88)
+-105 + j*(53)
+108 + j*(214)
+368 + j*(-23)
+211 + j*(-374)
+-131 + j*(-378)
+-259 + j*(-180)
+-253 + j*(-60)
+-255 + j*(34)
+-210 + j*(148)
+-110 + j*(215)
+11 + j*(240)
+160 + j*(177)
+216 + j*(-8)
+86 + j*(-150)
+-68 + j*(-105)
+-78 + j*(-5)
+-49 + j*(3)
+-88 + j*(13)
+-98 + j*(117)
+33 + j*(196)
+191 + j*(102)
+180 + j*(-88)
+23 + j*(-161)
+-81 + j*(-76)
+-59 + j*(-5)
+-49 + j*(-9)
+-93 + j*(25)
+-62 + j*(125)
+76 + j*(147)
+159 + j*(25)
+98 + j*(-92)
+0 + j*(-98)
+-47 + j*(-64)
+-97 + j*(-25)
+-108 + j*(90)
+31 + j*(173)
+175 + j*(49)
+82 + j*(-114)
+-69 + j*(-41)
+-1 + j*(96)
+131 + j*(36)
+105 + j*(-78)
+41 + j*(-94)
+9 + j*(-105)
+-73 + j*(-95)
+-102 + j*(18)
+3 + j*(81)
+83 + j*(25)
+106 + j*(-34)
+129 + j*(-136)
+4 + j*(-281)
+-235 + j*(-223)
+-278 + j*(6)
+-155 + j*(91)
+-127 + j*(73)
+-122 + j*(136)
+-34 + j*(174)
+15 + j*(154)
+86 + j*(183)
+236 + j*(89)
+199 + j*(-133)
+11 + j*(-152)
+20 + j*(-77)
+4 + j*(-209)
+-286 + j*(-191)
+-341 + j*(189)
+17 + j*(314)
+130 + j*(55)
+-38 + j*(45)
+91 + j*(190)
+264 + j*(-47)
+-21 + j*(-260)
+-262 + j*(22)
+-18 + j*(275)
+221 + j*(108)
+154 + j*(-83)
+52 + j*(-103)
+-15 + j*(-94)
+-64 + j*(-11)
+44 + j*(52)
+108 + j*(-109)
+-117 + j*(-198)
+-267 + j*(60)
+-30 + j*(270)
+205 + j*(99)
+99 + j*(-131)
+-123 + j*(-71)
+-119 + j*(173)
+160 + j*(271)
+397 + j*(8)
+227 + j*(-342)
+-134 + j*(-293)
+-158 + j*(-21)
+2 + j*(-22)
+-86 + j*(-103)
+-139 + j*(74)
+104 + j*(113)
+129 + j*(-175)
+-195 + j*(-192)
+-213 + j*(151)
+124 + j*(177)
+165 + j*(-131)
+-93 + j*(-189)
+-161 + j*(-6)
+-66 + j*(54)
+-33 + j*(25)
+-26 + j*(12)
+-36 + j*(-13)
+-82 + j*(9)
+-55 + j*(66)
+-14 + j*(37)
+-62 + j*(30)
+-41 + j*(111)
+63 + j*(80)
+17 + j*(-19)
+-72 + j*(60)
+42 + j*(157)
+161 + j*(45)
+98 + j*(-74)
+28 + j*(-83)
+-31 + j*(-104)
+-149 + j*(-33)
+-94 + j*(147)
+101 + j*(103)
+35 + j*(-83)
+-158 + j*(25)
+-26 + j*(250)
+224 + j*(148)
+187 + j*(-78)
+29 + j*(-98)
+-18 + j*(-13)
+12 + j*(62)
+127 + j*(79)
+210 + j*(-69)
+71 + j*(-202)
+-48 + j*(-101)
+40 + j*(-66)
+-28 + j*(-208)
+-261 + j*(-81)
+-141 + j*(224)
+177 + j*(142)
+123 + j*(-127)
+-58 + j*(-62)
+45 + j*(30)
+76 + j*(-122)
+-115 + j*(-110)
+-59 + j*(100)
+177 + j*(4)
+77 + j*(-275)
+-228 + j*(-226)
+-267 + j*(42)
+-95 + j*(151)
+31 + j*(91)
+57 + j*(-20)
+-27 + j*(-105)
+-147 + j*(-56)
+-144 + j*(71)
+-50 + j*(106)
+-7 + j*(58)
+-29 + j*(24)
+-67 + j*(45)
+-49 + j*(118)
+65 + j*(116)
+86 + j*(-36)
+-112 + j*(-77)
+-193 + j*(165)
+64 + j*(317)
+276 + j*(114)
+177 + j*(-104)
+25 + j*(-93)
+-6 + j*(-34)
+-25 + j*(0)
+8 + j*(62)
+98 + j*(21)
+41 + j*(-95)
+-111 + j*(-27)
+-52 + j*(167)
+162 + j*(155)
+220 + j*(-29)
+118 + j*(-123)
+54 + j*(-117)
+21 + j*(-127)
+-53 + j*(-118)
+-95 + j*(-32)
+-35 + j*(44)
+45 + j*(13)
+33 + j*(-52)
+-14 + j*(-35)
+33 + j*(7)
+99 + j*(-81)
+2 + j*(-207)
+-172 + j*(-160)
+-208 + j*(-7)
+-146 + j*(72)
+-112 + j*(112)
+-35 + j*(176)
+103 + j*(151)
+158 + j*(18)
+99 + j*(-81)
+11 + j*(-106)
+-61 + j*(-59)
+-44 + j*(31)
+65 + j*(18)
+53 + j*(-113)
+-81 + j*(-117)
+-83 + j*(-16)
+-30 + j*(-77)
+-202 + j*(-127)
+-324 + j*(141)
+-44 + j*(362)
+228 + j*(146)
+90 + j*(-93)
+-62 + j*(8)
+55 + j*(76)
+70 + j*(-87)
+-134 + j*(-94)
+-181 + j*(119)
+-22 + j*(212)
+74 + j*(162)
+115 + j*(141)
+197 + j*(92)
+218 + j*(-27)
+170 + j*(-106)
+127 + j*(-173)
+2 + j*(-251)
+-190 + j*(-165)
+-203 + j*(62)
+-20 + j*(153)
+93 + j*(51)
+58 + j*(-40)
+6 + j*(-46)
+-22 + j*(-21)
+-3 + j*(30)
+86 + j*(17)
+95 + j*(-126)
+-79 + j*(-179)
+-173 + j*(-15)
+-42 + j*(74)
+-4 + j*(-47)
+-164 + j*(-27)
+-126 + j*(191)
+116 + j*(171)
+101 + j*(-45)
+-76 + j*(13)
+52 + j*(183)
+247 + j*(13)
+79 + j*(-192)
+-83 + j*(-44)
+78 + j*(41)
+103 + j*(-173)
+-161 + j*(-172)
+-162 + j*(106)
+95 + j*(105)
+82 + j*(-119)
+-99 + j*(-95)
+-67 + j*(33)
+-4 + j*(-14)
+-74 + j*(-21)
+-40 + j*(69)
+55 + j*(6)
+-31 + j*(-93)
+-138 + j*(-1)
+-71 + j*(106)
+7 + j*(80)
+4 + j*(54)
+16 + j*(66)
+38 + j*(67)
+89 + j*(71)
+165 + j*(-13)
+92 + j*(-161)
+-76 + j*(-122)
+-33 + j*(4)
+47 + j*(-105)
+-160 + j*(-189)
+-305 + j*(81)
+-49 + j*(291)
+180 + j*(107)
+85 + j*(-82)
+-24 + j*(-65)
+-71 + j*(-59)
+-182 + j*(24)
+-113 + j*(245)
+162 + j*(235)
+211 + j*(-2)
+82 + j*(-57)
+105 + j*(-40)
+57 + j*(-190)
+-214 + j*(-143)
+-218 + j*(195)
+119 + j*(257)
+211 + j*(-23)
+-3 + j*(-104)
+-58 + j*(68)
+81 + j*(122)
+161 + j*(34)
+153 + j*(-53)
+96 + j*(-107)
+34 + j*(-81)
+81 + j*(-36)
+146 + j*(-136)
+33 + j*(-271)
+-147 + j*(-221)
+-185 + j*(-76)
+-133 + j*(-6)
+-98 + j*(9)
+-80 + j*(22)
+-57 + j*(44)
+0 + j*(50)
+52 + j*(-19)
+-2 + j*(-106)
+-92 + j*(-95)
+-130 + j*(-57)
+-187 + j*(-7)
+-173 + j*(144)
+32 + j*(171)
+71 + j*(-71)
+-226 + j*(-107)
+-287 + j*(241)
+47 + j*(349)
+146 + j*(107)
+4 + j*(114)
+156 + j*(236)
+326 + j*(-4)
+98 + j*(-211)
+-76 + j*(-43)
+40 + j*(45)
+30 + j*(-45)
+-41 + j*(55)
+136 + j*(119)
+220 + j*(-103)
+8 + j*(-214)
+-111 + j*(-71)
+-53 + j*(21)
+-6 + j*(43)
+85 + j*(30)
+97 + j*(-129)
+-117 + j*(-163)
+-171 + j*(70)
+44 + j*(124)
+54 + j*(-39)
+-52 + j*(37)
+140 + j*(110)
+220 + j*(-192)
+-144 + j*(-316)
+-315 + j*(39)
+-25 + j*(219)
+111 + j*(18)
+-19 + j*(-42)
+4 + j*(44)
+74 + j*(-40)
+-48 + j*(-110)
+-127 + j*(16)
+-18 + j*(100)
+57 + j*(18)
+-7 + j*(-45)
+-74 + j*(11)
+-25 + j*(96)
+80 + j*(71)
+81 + j*(-37)
+-18 + j*(-50)
+-22 + j*(45)
+85 + j*(44)
+107 + j*(-78)
+-13 + j*(-150)
+-145 + j*(-63)
+-115 + j*(125)
+119 + j*(172)
+253 + j*(-79)
+37 + j*(-286)
+-185 + j*(-141)
+-96 + j*(16)
+-42 + j*(-79)
+-195 + j*(-61)
+-161 + j*(144)
+57 + j*(105)
+-1 + j*(-112)
+-246 + j*(-51)
+-245 + j*(218)
+-22 + j*(330)
+162 + j*(235)
+211 + j*(70)
+119 + j*(-49)
+3 + j*(-13)
+25 + j*(96)
+150 + j*(94)
+206 + j*(-46)
+86 + j*(-180)
+-112 + j*(-100)
+-64 + j*(151)
+252 + j*(136)
+301 + j*(-232)
+-54 + j*(-372)
+-244 + j*(-119)
+-134 + j*(26)
+-115 + j*(15)
+-107 + j*(129)
+71 + j*(166)
+145 + j*(18)
+98 + j*(-38)
+134 + j*(-103)
+-1 + j*(-272)
+-283 + j*(-120)
+-150 + j*(210)
+165 + j*(83)
+21 + j*(-183)
+-189 + j*(-12)
+-2 + j*(131)
+64 + j*(-58)
+-126 + j*(-49)
+-59 + j*(136)
+103 + j*(37)
+-17 + j*(-81)
+-87 + j*(56)
+59 + j*(99)
+103 + j*(-33)
+22 + j*(-93)
+-52 + j*(-93)
+-134 + j*(-23)
+-73 + j*(110)
+72 + j*(34)
+-58 + j*(-106)
+-211 + j*(92)
+29 + j*(271)
+210 + j*(41)
+16 + j*(-95)
+-42 + j*(75)
+119 + j*(57)
+55 + j*(-96)
+-86 + j*(-13)
+-23 + j*(100)
+32 + j*(108)
+118 + j*(181)
+371 + j*(95)
+402 + j*(-281)
+74 + j*(-475)
+-175 + j*(-357)
+-277 + j*(-229)
+-358 + j*(-48)
+-234 + j*(166)
+-27 + j*(107)
+-109 + j*(-28)
+-217 + j*(129)
+-30 + j*(271)
+136 + j*(125)
+71 + j*(-9)
+-1 + j*(-15)
+-70 + j*(-4)
+-133 + j*(132)
+42 + j*(294)
+303 + j*(142)
+223 + j*(-158)
+-55 + j*(-142)
+-59 + j*(102)
+181 + j*(112)
+231 + j*(-144)
+-11 + j*(-252)
+-147 + j*(-62)
+1 + j*(39)
+33 + j*(-119)
+-177 + j*(-115)
+-193 + j*(136)
+23 + j*(185)
+57 + j*(69)
+38 + j*(128)
+215 + j*(129)
+273 + j*(-96)
+122 + j*(-198)
+69 + j*(-190)
+-35 + j*(-276)
+-267 + j*(-134)
+-122 + j*(179)
+229 + j*(28)
+83 + j*(-345)
+-271 + j*(-250)
+-245 + j*(-14)
+-210 + j*(-30)
+-313 + j*(112)
+-86 + j*(327)
+173 + j*(93)
+-69 + j*(-135)
+-255 + j*(141)
+42 + j*(303)
+182 + j*(20)
+-82 + j*(-75)
+-145 + j*(193)
+121 + j*(270)
+237 + j*(54)
+108 + j*(-70)
+25 + j*(-13)
+55 + j*(12)
+28 + j*(-23)
+-34 + j*(63)
+120 + j*(189)
+352 + j*(4)
+215 + j*(-322)
+-115 + j*(-276)
+-127 + j*(-49)
+-33 + j*(-69)
+-134 + j*(-77)
+-108 + j*(78)
+27 + j*(11)
+-137 + j*(-69)
+-186 + j*(235)
+243 + j*(309)
+369 + j*(-182)
+-112 + j*(-344)
+-274 + j*(80)
+69 + j*(216)
+162 + j*(-28)
+27 + j*(-59)
+87 + j*(-18)
+86 + j*(-177)
+-136 + j*(-192)
+-197 + j*(26)
+-31 + j*(121)
+74 + j*(19)
+27 + j*(-87)
+-86 + j*(-85)
+-127 + j*(34)
+-18 + j*(105)
+66 + j*(24)
+24 + j*(-49)
+-16 + j*(-54)
+-59 + j*(-66)
+-125 + j*(-4)
+-54 + j*(88)
+26 + j*(-8)
+-124 + j*(-73)
+-205 + j*(136)
+11 + j*(251)
+134 + j*(88)
+36 + j*(11)
+19 + j*(73)
+58 + j*(71)
+84 + j*(89)
+207 + j*(41)
+176 + j*(-191)
+-116 + j*(-194)
+-131 + j*(103)
+144 + j*(100)
+114 + j*(-139)
+-59 + j*(-81)
+41 + j*(-2)
+23 + j*(-161)
+-189 + j*(-74)
+-52 + j*(148)
+144 + j*(-46)
+-123 + j*(-207)
+-264 + j*(122)
+91 + j*(254)
+206 + j*(-91)
+-107 + j*(-187)
+-196 + j*(83)
+6 + j*(176)
+105 + j*(62)
+81 + j*(-24)
+15 + j*(-57)
+-35 + j*(6)
+52 + j*(47)
+86 + j*(-85)
+-80 + j*(-120)
+-107 + j*(52)
+46 + j*(39)
+-36 + j*(-94)
+-171 + j*(52)
+12 + j*(190)
+124 + j*(6)
+-62 + j*(-54)
+-77 + j*(151)
+130 + j*(168)
+180 + j*(26)
+166 + j*(-25)
+178 + j*(-141)
+-4 + j*(-233)
+-127 + j*(-46)
+69 + j*(38)
+97 + j*(-207)
+-206 + j*(-209)
+-213 + j*(114)
+80 + j*(118)
+58 + j*(-122)
+-129 + j*(-64)
+-42 + j*(75)
+59 + j*(-29)
+-37 + j*(-95)
+-54 + j*(-34)
+-23 + j*(-101)
+-174 + j*(-157)
+-306 + j*(5)
+-240 + j*(180)
+-135 + j*(243)
+-26 + j*(291)
+132 + j*(257)
+208 + j*(124)
+208 + j*(8)
+157 + j*(-139)
+-93 + j*(-210)
+-298 + j*(95)
+19 + j*(426)
+450 + j*(151)
+264 + j*(-317)
+-165 + j*(-221)
+-127 + j*(117)
+110 + j*(104)
+114 + j*(-34)
+76 + j*(-50)
+64 + j*(-108)
+-61 + j*(-112)
+-74 + j*(44)
+88 + j*(50)
+76 + j*(-103)
+-59 + j*(-65)
+11 + j*(50)
+115 + j*(-42)
+33 + j*(-141)
+-35 + j*(-100)
+-25 + j*(-98)
+-86 + j*(-113)
+-129 + j*(-36)
+-80 + j*(10)
+-71 + j*(-4)
+-76 + j*(33)
+-16 + j*(42)
+-2 + j*(-22)
+-56 + j*(-44)
+-93 + j*(-27)
+-144 + j*(9)
+-151 + j*(122)
+-30 + j*(186)
+37 + j*(105)
+-25 + j*(115)
+68 + j*(235)
+293 + j*(144)
+298 + j*(-127)
+99 + j*(-245)
+-52 + j*(-191)
+-116 + j*(-89)
+-85 + j*(19)
+25 + j*(21)
+33 + j*(-80)
+-43 + j*(-100)
+-53 + j*(-90)
+-119 + j*(-156)
+-303 + j*(-93)
+-355 + j*(148)
+-214 + j*(329)
+-27 + j*(395)
+199 + j*(349)
+314 + j*(112)
+151 + j*(-49)
+52 + j*(86)
+244 + j*(121)
+284 + j*(-127)
+49 + j*(-185)
+27 + j*(2)
+211 + j*(-42)
+151 + j*(-265)
+-82 + j*(-264)
+-145 + j*(-88)
+-41 + j*(-4)
+49 + j*(-73)
+-9 + j*(-200)
+-190 + j*(-180)
+-232 + j*(2)
+-119 + j*(68)
+-112 + j*(33)
+-122 + j*(126)
+45 + j*(161)
+108 + j*(-21)
+-56 + j*(-84)
+-106 + j*(52)
+-6 + j*(88)
+16 + j*(47)
+35 + j*(50)
+67 + j*(-11)
+-2 + j*(-44)
+1 + j*(21)
+67 + j*(-56)
+-99 + j*(-135)
+-204 + j*(109)
+81 + j*(243)
+216 + j*(-44)
+-47 + j*(-130)
+64 + j*(-24)
+41 + j*(-137)
+-82 + j*(-142)
+-141 + j*(-64)
+-153 + j*(28)
+-67 + j*(131)
+93 + j*(62)
+26 + j*(-125)
+-173 + j*(-42)
+-63 + j*(158)
+138 + j*(8)
+-60 + j*(-206)
+-307 + j*(6)
+-136 + j*(267)
+69 + j*(159)
+-29 + j*(66)
+-37 + j*(230)
+202 + j*(243)
+265 + j*(5)
+98 + j*(-65)
+90 + j*(48)
+213 + j*(-6)
+160 + j*(-149)
+56 + j*(-121)
+119 + j*(-106)
+91 + j*(-280)
+-187 + j*(-302)
+-305 + j*(-4)
+-69 + j*(175)
+116 + j*(18)
+30 + j*(-141)
+-93 + j*(-135)
+-163 + j*(-81)
+-216 + j*(28)
+-139 + j*(171)
+18 + j*(165)
+49 + j*(78)
+57 + j*(83)
+155 + j*(21)
+103 + j*(-164)
+-122 + j*(-168)
+-175 + j*(40)
+-28 + j*(109)
+23 + j*(23)
+-23 + j*(6)
+-10 + j*(32)
+2 + j*(1)
+-35 + j*(-1)
+-23 + j*(35)
+13 + j*(-4)
+-66 + j*(-68)
+-210 + j*(28)
+-175 + j*(274)
+111 + j*(379)
+349 + j*(170)
+293 + j*(-82)
+161 + j*(-128)
+151 + j*(-157)
+40 + j*(-276)
+-187 + j*(-195)
+-172 + j*(47)
+14 + j*(54)
+-13 + j*(-79)
+-132 + j*(-13)
+-64 + j*(110)
+35 + j*(85)
+52 + j*(49)
+99 + j*(15)
+79 + j*(-91)
+-39 + j*(-89)
+-27 + j*(5)
+39 + j*(-52)
+-76 + j*(-105)
+-136 + j*(44)
+11 + j*(106)
+51 + j*(-4)
+-18 + j*(1)
+37 + j*(23)
+4 + j*(-74)
+-138 + j*(35)
+53 + j*(249)
+366 + j*(14)
+157 + j*(-379)
+-248 + j*(-250)
+-188 + j*(83)
+41 + j*(38)
+-22 + j*(-115)
+-141 + j*(-55)
+-129 + j*(31)
+-105 + j*(80)
+-28 + j*(122)
+49 + j*(49)
+-32 + j*(-14)
+-62 + j*(99)
+91 + j*(110)
+94 + j*(-57)
+-52 + j*(-32)
+41 + j*(77)
+134 + j*(-120)
+-168 + j*(-247)
+-377 + j*(124)
+-13 + j*(419)
+333 + j*(126)
+125 + j*(-203)
+-144 + j*(-54)
+-21 + j*(157)
+153 + j*(50)
+77 + j*(-89)
+-10 + j*(-42)
+33 + j*(-24)
+-8 + j*(-95)
+-121 + j*(-30)
+-54 + j*(96)
+50 + j*(21)
+-81 + j*(-54)
+-167 + j*(165)
+110 + j*(319)
+340 + j*(62)
+156 + j*(-168)
+14 + j*(-24)
+199 + j*(27)
+245 + j*(-236)
+-26 + j*(-341)
+-163 + j*(-165)
+-98 + j*(-92)
+-140 + j*(-118)
+-202 + j*(-4)
+-97 + j*(97)
+-11 + j*(29)
+-64 + j*(-8)
+-75 + j*(61)
+6 + j*(84)
+62 + j*(32)
+72 + j*(-46)
+13 + j*(-127)
+-112 + j*(-111)
+-132 + j*(13)
+-25 + j*(25)
+-56 + j*(-96)
+-250 + j*(-49)
+-264 + j*(226)
+14 + j*(361)
+247 + j*(173)
+189 + j*(-72)
+2 + j*(-122)
+-89 + j*(-29)
+-75 + j*(69)
+-3 + j*(126)
+95 + j*(119)
+141 + j*(39)
+118 + j*(-20)
+115 + j*(-37)
+116 + j*(-103)
+31 + j*(-166)
+-64 + j*(-118)
+-65 + j*(-54)
+-66 + j*(-45)
+-90 + j*(16)
+6 + j*(77)
+94 + j*(-42)
+-61 + j*(-146)
+-194 + j*(41)
+13 + j*(211)
+212 + j*(1)
+8 + j*(-216)
+-228 + j*(-27)
+-75 + j*(230)
+174 + j*(141)
+160 + j*(-45)
+83 + j*(-62)
+115 + j*(-94)
+39 + j*(-226)
+-177 + j*(-192)
+-229 + j*(41)
+-44 + j*(156)
+86 + j*(37)
+6 + j*(-76)
+-101 + j*(-11)
+-45 + j*(110)
+105 + j*(72)
+92 + j*(-110)
+-130 + j*(-128)
+-197 + j*(137)
+96 + j*(279)
+316 + j*(0)
+93 + j*(-269)
+-172 + j*(-113)
+-61 + j*(115)
+125 + j*(30)
+73 + j*(-115)
+4 + j*(-102)
+11 + j*(-150)
+-149 + j*(-238)
+-384 + j*(-59)
+-305 + j*(295)
+54 + j*(376)
+254 + j*(119)
+124 + j*(-99)
+-45 + j*(-50)
+-22 + j*(57)
+33 + j*(26)
+-25 + j*(24)
+21 + j*(144)
+226 + j*(79)
+194 + j*(-200)
+-114 + j*(-233)
+-198 + j*(49)
+19 + j*(156)
+126 + j*(13)
+56 + j*(-76)
+-11 + j*(-73)
+-66 + j*(-25)
+-28 + j*(86)
+134 + j*(58)
+122 + j*(-135)
+-61 + j*(-136)
+-48 + j*(8)
+57 + j*(-56)
+-45 + j*(-141)
+-107 + j*(-39)
+-30 + j*(-52)
+-159 + j*(-131)
+-292 + j*(89)
+-57 + j*(279)
+117 + j*(89)
+-38 + j*(10)
+1 + j*(186)
+231 + j*(69)
+86 + j*(-197)
+-174 + j*(-53)
+-38 + j*(173)
+136 + j*(46)
+21 + j*(-68)
+-37 + j*(43)
+69 + j*(60)
+68 + j*(-39)
+-21 + j*(-29)
+-25 + j*(62)
+76 + j*(116)
+218 + j*(29)
+185 + j*(-206)
+-100 + j*(-251)
+-214 + j*(39)
+54 + j*(186)
+209 + j*(-40)
+37 + j*(-188)
+-83 + j*(-73)
+-18 + j*(6)
+35 + j*(-20)
+56 + j*(-64)
+25 + j*(-142)
+-98 + j*(-144)
+-122 + j*(-19)
+-17 + j*(-11)
+-58 + j*(-113)
+-182 + j*(-39)
+-112 + j*(105)
+23 + j*(50)
+-20 + j*(-59)
+-103 + j*(-37)
+-104 + j*(3)
+-135 + j*(6)
+-189 + j*(83)
+-144 + j*(216)
+12 + j*(267)
+136 + j*(172)
+117 + j*(60)
+77 + j*(79)
+180 + j*(68)
+186 + j*(-144)
+-102 + j*(-214)
+-239 + j*(102)
+61 + j*(281)
+254 + j*(25)
+56 + j*(-141)
+-49 + j*(6)
+57 + j*(30)
+-7 + j*(-59)
+-101 + j*(93)
+103 + j*(225)
+279 + j*(25)
+134 + j*(-156)
+2 + j*(-59)
+90 + j*(11)
+130 + j*(-89)
+39 + j*(-122)
+33 + j*(-61)
+78 + j*(-105)
+-21 + j*(-170)
+-120 + j*(-28)
+64 + j*(127)
+313 + j*(-81)
+153 + j*(-427)
+-210 + j*(-384)
+-231 + j*(-131)
+-118 + j*(-202)
+-387 + j*(-298)
+-633 + j*(100)
+-279 + j*(514)
+172 + j*(310)
+67 + j*(-50)
+-197 + j*(56)
+-66 + j*(297)
+193 + j*(192)
+164 + j*(-54)
+-28 + j*(-98)
+-116 + j*(18)
+-81 + j*(117)
+-19 + j*(151)
+37 + j*(168)
+129 + j*(162)
+209 + j*(63)
+163 + j*(-70)
+45 + j*(-78)
+25 + j*(6)
+100 + j*(17)
+131 + j*(-62)
+88 + j*(-138)
+-5 + j*(-174)
+-111 + j*(-132)
+-146 + j*(-30)
+-123 + j*(44)
+-94 + j*(106)
+11 + j*(177)
+171 + j*(91)
+123 + j*(-115)
+-89 + j*(-86)
+-54 + j*(130)
+180 + j*(79)
+123 + j*(-181)
+-157 + j*(-134)
+-135 + j*(154)
+141 + j*(170)
+193 + j*(-69)
+15 + j*(-131)
+-30 + j*(-1)
+87 + j*(23)
+130 + j*(-98)
+33 + j*(-192)
+-98 + j*(-163)
+-141 + j*(-40)
+-41 + j*(35)
+35 + j*(-76)
+-122 + j*(-187)
+-322 + j*(-10)
+-206 + j*(290)
+116 + j*(298)
+231 + j*(49)
+106 + j*(-91)
+16 + j*(-54)
+35 + j*(-28)
+39 + j*(-62)
+7 + j*(-80)
+-8 + j*(-82)
+-33 + j*(-113)
+-124 + j*(-127)
+-225 + j*(-24)
+-181 + j*(148)
+-6 + j*(187)
+78 + j*(68)
+18 + j*(-5)
+-16 + j*(27)
+11 + j*(34)
+21 + j*(15)
+33 + j*(-19)
+-19 + j*(-102)
+-199 + j*(-66)
+-223 + j*(192)
+48 + j*(288)
+165 + j*(59)
+-33 + j*(-6)
+-26 + j*(218)
+255 + j*(191)
+272 + j*(-114)
+8 + j*(-186)
+-96 + j*(-7)
+-14 + j*(115)
+115 + j*(137)
+253 + j*(25)
+185 + j*(-202)
+-76 + j*(-175)
+-47 + j*(91)
+243 + j*(33)
+178 + j*(-313)
+-200 + j*(-301)
+-272 + j*(54)
+-1 + j*(194)
+169 + j*(40)
+136 + j*(-121)
+37 + j*(-179)
+-43 + j*(-160)
+-63 + j*(-138)
+-114 + j*(-163)
+-235 + j*(-103)
+-231 + j*(80)
+-65 + j*(129)
+-11 + j*(6)
+-116 + j*(-33)
+-173 + j*(54)
+-153 + j*(148)
+-80 + j*(243)
+95 + j*(272)
+233 + j*(119)
+171 + j*(-49)
+55 + j*(-51)
+62 + j*(1)
+98 + j*(-42)
+52 + j*(-112)
+-40 + j*(-102)
+-72 + j*(-16)
+1 + j*(43)
+81 + j*(-20)
+53 + j*(-125)
+-43 + j*(-179)
+-188 + j*(-168)
+-325 + j*(2)
+-218 + j*(263)
+74 + j*(243)
+76 + j*(-13)
+-163 + j*(36)
+-66 + j*(303)
+223 + j*(214)
+158 + j*(-27)
+11 + j*(62)
+166 + j*(144)
+234 + j*(-49)
+67 + j*(-89)
+112 + j*(40)
+257 + j*(-106)
+83 + j*(-316)
+-161 + j*(-204)
+-150 + j*(-12)
+-67 + j*(54)
+35 + j*(88)
+170 + j*(-28)
+55 + j*(-238)
+-200 + j*(-151)
+-151 + j*(99)
+42 + j*(74)
+9 + j*(-31)
+-1 + j*(45)
+143 + j*(-13)
+63 + j*(-231)
+-192 + j*(-179)
+-185 + j*(47)
+-30 + j*(47)
+-66 + j*(-51)
+-162 + j*(28)
+-84 + j*(158)
+79 + j*(127)
+111 + j*(-55)
+-77 + j*(-161)
+-276 + j*(13)
+-178 + j*(303)
+132 + j*(349)
+320 + j*(135)
+297 + j*(-108)
+119 + j*(-267)
+-125 + j*(-216)
+-168 + j*(18)
+16 + j*(81)
+48 + j*(-74)
+-92 + j*(-81)
+-94 + j*(18)
+-81 + j*(-3)
+-179 + j*(80)
+-57 + j*(281)
+202 + j*(188)
+150 + j*(-26)
+40 + j*(47)
+203 + j*(78)
+226 + j*(-163)
+0 + j*(-209)
+-13 + j*(-86)
+6 + j*(-194)
+-262 + j*(-181)
+-286 + j*(189)
+80 + j*(265)
+151 + j*(-21)
+-35 + j*(-16)
+78 + j*(108)
+181 + j*(-91)
+-48 + j*(-185)
+-113 + j*(24)
+58 + j*(37)
+21 + j*(-93)
+-57 + j*(-22)
+38 + j*(-23)
+-54 + j*(-161)
+-253 + j*(-11)
+-105 + j*(243)
+149 + j*(144)
+117 + j*(-54)
+15 + j*(-83)
+-57 + j*(-91)
+-180 + j*(6)
+-98 + j*(235)
+189 + j*(204)
+222 + j*(-64)
+36 + j*(-125)
+-2 + j*(-39)
+12 + j*(-47)
+-20 + j*(-14)
+54 + j*(13)
+81 + j*(-112)
+-78 + j*(-156)
+-151 + j*(-22)
+-98 + j*(49)
+-86 + j*(112)
+76 + j*(211)
+308 + j*(4)
+122 + j*(-337)
+-262 + j*(-223)
+-233 + j*(119)
+6 + j*(144)
+40 + j*(33)
+45 + j*(11)
+43 + j*(-90)
+-130 + j*(-105)
+-162 + j*(110)
+53 + j*(146)
+67 + j*(-40)
+-78 + j*(-10)
+-3 + j*(91)
+42 + j*(-25)
+-122 + j*(-4)
+-47 + j*(221)
+228 + j*(124)
+138 + j*(-163)
+-124 + j*(-83)
+-40 + j*(128)
+112 + j*(25)
+-30 + j*(-65)
+-81 + j*(145)
+210 + j*(213)
+359 + j*(-129)
+35 + j*(-382)
+-292 + j*(-139)
+-144 + j*(200)
+153 + j*(124)
+97 + j*(-101)
+-52 + j*(-10)
+112 + j*(100)
+239 + j*(-129)
+11 + j*(-296)
+-152 + j*(-137)
+-54 + j*(-61)
+-98 + j*(-168)
+-269 + j*(-66)
+-192 + j*(139)
+-30 + j*(98)
+-91 + j*(12)
+-161 + j*(124)
+-47 + j*(248)
+115 + j*(233)
+236 + j*(119)
+250 + j*(-72)
+95 + j*(-197)
+-52 + j*(-136)
+-57 + j*(-49)
+-47 + j*(-37)
+-54 + j*(-12)
+-31 + j*(-16)
+-93 + j*(-37)
+-151 + j*(93)
+11 + j*(206)
+153 + j*(60)
+35 + j*(-54)
+-14 + j*(54)
+110 + j*(35)
+32 + j*(-99)
+-103 + j*(47)
+114 + j*(197)
+316 + j*(-71)
+65 + j*(-332)
+-214 + j*(-156)
+-134 + j*(71)
+-4 + j*(54)
+1 + j*(30)
+66 + j*(43)
+121 + j*(-80)
+-9 + j*(-190)
+-156 + j*(-113)
+-150 + j*(11)
+-104 + j*(44)
+-106 + j*(69)
+-71 + j*(145)
+52 + j*(167)
+144 + j*(62)
+97 + j*(-61)
+-7 + j*(-66)
+-28 + j*(-11)
+-20 + j*(-7)
+-63 + j*(14)
+-44 + j*(110)
+88 + j*(124)
+147 + j*(-8)
+36 + j*(-94)
+-58 + j*(1)
+39 + j*(115)
+204 + j*(23)
+161 + j*(-202)
+-83 + j*(-239)
+-188 + j*(-33)
+-38 + j*(81)
+49 + j*(-44)
+-83 + j*(-132)
+-227 + j*(-7)
+-192 + j*(210)
+33 + j*(340)
+315 + j*(206)
+324 + j*(-126)
+49 + j*(-216)
+-6 + j*(-18)
+190 + j*(-70)
+64 + j*(-332)
+-242 + j*(-202)
+-119 + j*(66)
+68 + j*(-121)
+-240 + j*(-272)
+-431 + j*(117)
+-62 + j*(359)
+168 + j*(81)
+-14 + j*(-62)
+-42 + j*(56)
+35 + j*(-28)
+-143 + j*(-83)
+-199 + j*(154)
+36 + j*(207)
+38 + j*(9)
+-150 + j*(108)
+25 + j*(344)
+317 + j*(180)
+221 + j*(-98)
+23 + j*(-40)
+105 + j*(94)
+245 + j*(-13)
+183 + j*(-194)
+4 + j*(-231)
+-112 + j*(-112)
+-64 + j*(18)
+39 + j*(7)
+29 + j*(-66)
+-8 + j*(-44)
+40 + j*(-46)
+14 + j*(-140)
+-119 + j*(-122)
+-127 + j*(6)
+-47 + j*(11)
+-90 + j*(-26)
+-123 + j*(74)
+-8 + j*(132)
+60 + j*(39)
+-11 + j*(-6)
+-38 + j*(69)
+47 + j*(123)
+156 + j*(77)
+216 + j*(-64)
+124 + j*(-233)
+-90 + j*(-257)
+-214 + j*(-104)
+-177 + j*(40)
+-98 + j*(95)
+-26 + j*(106)
+40 + j*(76)
+68 + j*(6)
+35 + j*(-67)
+-59 + j*(-93)
+-153 + j*(0)
+-78 + j*(149)
+103 + j*(101)
+69 + j*(-101)
+-152 + j*(-82)
+-163 + j*(154)
+59 + j*(207)
+144 + j*(28)
+11 + j*(-62)
+-85 + j*(35)
+-25 + j*(155)
+107 + j*(158)
+172 + j*(62)
+152 + j*(-12)
+137 + j*(-38)
+126 + j*(-89)
+62 + j*(-109)
+65 + j*(-64)
+127 + j*(-144)
+-11 + j*(-286)
+-241 + j*(-156)
+-163 + j*(96)
+54 + j*(46)
+-8 + j*(-119)
+-135 + j*(-46)
+-76 + j*(45)
+-47 + j*(12)
+-54 + j*(60)
+71 + j*(45)
+36 + j*(-161)
+-245 + j*(-125)
+-243 + j*(197)
+57 + j*(221)
+52 + j*(-16)
+-157 + j*(70)
+-7 + j*(316)
+300 + j*(180)
+240 + j*(-146)
+-49 + j*(-164)
+-121 + j*(78)
+91 + j*(207)
+287 + j*(41)
+203 + j*(-204)
+-25 + j*(-200)
+-50 + j*(-33)
+74 + j*(-29)
+61 + j*(-146)
+-47 + j*(-156)
+-89 + j*(-97)
+-93 + j*(-52)
+-59 + j*(-19)
+-25 + j*(-72)
+-133 + j*(-123)
+-226 + j*(28)
+-69 + j*(151)
+38 + j*(-12)
+-158 + j*(-95)
+-256 + j*(132)
+-58 + j*(262)
+54 + j*(157)
+24 + j*(139)
+112 + j*(168)
+187 + j*(37)
+86 + j*(-59)
+16 + j*(0)
+59 + j*(20)
+46 + j*(-21)
+-2 + j*(8)
+18 + j*(72)
+103 + j*(110)
+242 + j*(49)
+283 + j*(-177)
+63 + j*(-349)
+-171 + j*(-238)
+-180 + j*(-73)
+-181 + j*(-31)
+-218 + j*(127)
+13 + j*(308)
+317 + j*(100)
+180 + j*(-249)
+-138 + j*(-177)
+-78 + j*(81)
+146 + j*(-2)
+57 + j*(-236)
+-176 + j*(-192)
+-194 + j*(-18)
+-125 + j*(-6)
+-196 + j*(-15)
+-239 + j*(140)
+-93 + j*(263)
+40 + j*(199)
+26 + j*(161)
+98 + j*(230)
+284 + j*(135)
+255 + j*(-117)
+28 + j*(-158)
+-29 + j*(-4)
+69 + j*(37)
+98 + j*(-4)
+141 + j*(-21)
+175 + j*(-158)
+-8 + j*(-275)
+-180 + j*(-100)
+-18 + j*(64)
+117 + j*(-118)
+-94 + j*(-255)
+-248 + j*(-61)
+-112 + j*(74)
+-43 + j*(-29)
+-158 + j*(-42)
+-182 + j*(93)
+-77 + j*(161)
+21 + j*(132)
+57 + j*(35)
+-44 + j*(-43)
+-165 + j*(81)
+-31 + j*(267)
+203 + j*(157)
+128 + j*(-79)
+-87 + j*(-9)
+-4 + j*(209)
+245 + j*(149)
+262 + j*(-107)
+58 + j*(-215)
+-103 + j*(-107)
+-89 + j*(53)
+44 + j*(110)
+147 + j*(25)
+136 + j*(-93)
+44 + j*(-163)
+-94 + j*(-143)
+-162 + j*(35)
+33 + j*(192)
+276 + j*(1)
+118 + j*(-319)
+-238 + j*(-221)
+-201 + j*(113)
+76 + j*(107)
+74 + j*(-97)
+-54 + j*(-91)
+-29 + j*(-59)
+-99 + j*(-143)
+-282 + j*(-12)
+-161 + j*(262)
+140 + j*(199)
+129 + j*(-60)
+-64 + j*(-62)
+-53 + j*(68)
+25 + j*(51)
+6 + j*(24)
+28 + j*(52)
+80 + j*(-8)
+14 + j*(-88)
+-90 + j*(-59)
+-140 + j*(35)
+-114 + j*(186)
+98 + j*(286)
+330 + j*(91)
+204 + j*(-202)
+-58 + j*(-122)
+52 + j*(80)
+236 + j*(-100)
+20 + j*(-310)
+-190 + j*(-115)
+-12 + j*(36)
+76 + j*(-176)
+-187 + j*(-270)
+-344 + j*(-37)
+-238 + j*(147)
+-126 + j*(180)
+-33 + j*(186)
+35 + j*(103)
+-52 + j*(49)
+-85 + j*(202)
+136 + j*(264)
+256 + j*(45)
+103 + j*(-90)
+21 + j*(-9)
+54 + j*(-2)
+-6 + j*(-4)
+35 + j*(121)
+237 + j*(49)
+168 + j*(-221)
+-132 + j*(-182)
+-128 + j*(100)
+96 + j*(123)
+135 + j*(-8)
+127 + j*(-30)
+165 + j*(-132)
+10 + j*(-247)
+-133 + j*(-87)
+42 + j*(19)
+100 + j*(-223)
+-222 + j*(-286)
+-333 + j*(62)
+-33 + j*(204)
+95 + j*(-21)
+-64 + j*(-117)
+-130 + j*(-28)
+-133 + j*(-2)
+-188 + j*(76)
+-101 + j*(226)
+95 + j*(206)
+155 + j*(47)
+94 + j*(-64)
+-34 + j*(-110)
+-178 + j*(15)
+-74 + j*(246)
+210 + j*(184)
+187 + j*(-86)
+-14 + j*(-54)
+100 + j*(81)
+223 + j*(-134)
+-47 + j*(-290)
+-216 + j*(-41)
+-10 + j*(69)
+-2 + j*(-136)
+-267 + j*(-77)
+-235 + j*(247)
+64 + j*(313)
+211 + j*(148)
+238 + j*(6)
+191 + j*(-171)
+-45 + j*(-252)
+-218 + j*(-37)
+-59 + j*(169)
+144 + j*(66)
+88 + j*(-122)
+-86 + j*(-115)
+-136 + j*(40)
+-5 + j*(144)
+148 + j*(40)
+75 + j*(-150)
+-138 + j*(-115)
+-154 + j*(91)
+-1 + j*(159)
+87 + j*(103)
+144 + j*(42)
+158 + j*(-103)
+-23 + j*(-199)
+-171 + j*(-38)
+-54 + j*(110)
+37 + j*(25)
+-58 + j*(23)
+9 + j*(170)
+218 + j*(90)
+172 + j*(-133)
+-3 + j*(-113)
+45 + j*(-8)
+119 + j*(-112)
+-10 + j*(-196)
+-89 + j*(-106)
+-42 + j*(-93)
+-127 + j*(-153)
+-262 + j*(-16)
+-144 + j*(182)
+47 + j*(115)
+-1 + j*(-23)
+-86 + j*(62)
+46 + j*(127)
+110 + j*(-31)
+-53 + j*(-82)
+-69 + j*(88)
+113 + j*(64)
+59 + j*(-134)
+-136 + j*(-60)
+-41 + j*(107)
+82 + j*(-21)
+-89 + j*(-90)
+-97 + j*(122)
+169 + j*(59)
+45 + j*(-286)
+-397 + j*(-161)
+-355 + j*(334)
+84 + j*(410)
+231 + j*(128)
+119 + j*(5)
+63 + j*(3)
+4 + j*(25)
+30 + j*(139)
+221 + j*(116)
+240 + j*(-124)
+23 + j*(-187)
+-40 + j*(-53)
+13 + j*(-55)
+-84 + j*(-57)
+-74 + j*(125)
+165 + j*(130)
+197 + j*(-127)
+-37 + j*(-181)
+-86 + j*(2)
+45 + j*(20)
+16 + j*(-74)
+-71 + j*(1)
+35 + j*(109)
+179 + j*(11)
+139 + j*(-147)
+26 + j*(-174)
+-8 + j*(-152)
+-52 + j*(-191)
+-188 + j*(-172)
+-266 + j*(3)
+-136 + j*(168)
+52 + j*(132)
+100 + j*(-23)
+17 + j*(-127)
+-110 + j*(-131)
+-202 + j*(-24)
+-151 + j*(117)
+-20 + j*(118)
+-13 + j*(30)
+-76 + j*(63)
+-2 + j*(139)
+105 + j*(52)
+33 + j*(-74)
+-95 + j*(-33)
+-92 + j*(82)
+-8 + j*(115)
+42 + j*(70)
+19 + j*(27)
+-23 + j*(67)
+59 + j*(145)
+216 + j*(42)
+144 + j*(-204)
+-153 + j*(-209)
+-245 + j*(70)
+-40 + j*(204)
+59 + j*(79)
+-44 + j*(63)
+1 + j*(219)
+226 + j*(186)
+257 + j*(-53)
+64 + j*(-124)
+5 + j*(14)
+122 + j*(37)
+124 + j*(-71)
+35 + j*(-55)
+83 + j*(21)
+177 + j*(-45)
+146 + j*(-151)
+92 + j*(-190)
+26 + j*(-250)
+-139 + j*(-231)
+-185 + j*(-25)
+24 + j*(56)
+122 + j*(-159)
+-81 + j*(-301)
+-264 + j*(-180)
+-276 + j*(-36)
+-257 + j*(64)
+-177 + j*(170)
+-37 + j*(166)
+-4 + j*(84)
+-8 + j*(76)
+38 + j*(30)
+-32 + j*(-66)
+-163 + j*(13)
+-101 + j*(153)
+1 + j*(117)
+-42 + j*(90)
+-12 + j*(180)
+119 + j*(151)
+118 + j*(46)
+96 + j*(48)
+146 + j*(-9)
+49 + j*(-115)
+-74 + j*(-1)
+65 + j*(105)
+148 + j*(-71)
+-60 + j*(-138)
+-116 + j*(88)
+109 + j*(135)
+158 + j*(-69)
+0 + j*(-125)
+-55 + j*(-34)
+-37 + j*(9)
+-11 + j*(54)
+79 + j*(37)
+63 + j*(-92)
+-106 + j*(-74)
+-110 + j*(134)
+105 + j*(196)
+244 + j*(34)
+192 + j*(-152)
+17 + j*(-219)
+-125 + j*(-83)
+-1 + j*(95)
+216 + j*(-44)
+77 + j*(-322)
+-231 + j*(-233)
+-198 + j*(36)
+-13 + j*(4)
+-98 + j*(-134)
+-258 + j*(-17)
+-184 + j*(182)
+8 + j*(197)
+91 + j*(61)
+1 + j*(-35)
+-86 + j*(46)
+16 + j*(127)
+89 + j*(-1)
+-80 + j*(-47)
+-95 + j*(187)
+206 + j*(194)
+231 + j*(-133)
+-62 + j*(-153)
+-21 + j*(76)
+164 + j*(-67)
+-66 + j*(-256)
+-270 + j*(-5)
+-62 + j*(169)
+6 + j*(22)
+-118 + j*(103)
+91 + j*(258)
+290 + j*(-17)
+15 + j*(-226)
+-156 + j*(23)
+66 + j*(129)
+97 + j*(-69)
+-72 + j*(-26)
+34 + j*(121)
+175 + j*(-28)
+25 + j*(-163)
+-91 + j*(-52)
+-42 + j*(16)
+-49 + j*(22)
+-19 + j*(124)
+164 + j*(124)
+243 + j*(-84)
+98 + j*(-250)
+-100 + j*(-234)
+-218 + j*(-77)
+-147 + j*(123)
+78 + j*(139)
+161 + j*(-71)
+4 + j*(-197)
+-129 + j*(-128)
+-143 + j*(-45)
+-141 + j*(2)
+-122 + j*(45)
+-107 + j*(54)
+-117 + j*(101)
+-40 + j*(161)
+40 + j*(84)
+-67 + j*(37)
+-97 + j*(231)
+188 + j*(313)
+370 + j*(17)
+158 + j*(-226)
+-66 + j*(-129)
+-54 + j*(23)
+35 + j*(68)
+139 + j*(27)
+158 + j*(-143)
+-45 + j*(-235)
+-185 + j*(-54)
+-51 + j*(61)
+-35 + j*(-49)
+-178 + j*(45)
+-4 + j*(259)
+267 + j*(54)
+59 + j*(-241)
+-228 + j*(-37)
+-34 + j*(224)
+180 + j*(54)
+35 + j*(-87)
+-25 + j*(50)
+119 + j*(49)
+84 + j*(-80)
+0 + j*(-6)
+139 + j*(39)
+206 + j*(-162)
+13 + j*(-283)
+-124 + j*(-184)
+-116 + j*(-117)
+-155 + j*(-119)
+-226 + j*(-56)
+-247 + j*(66)
+-173 + j*(209)
+42 + j*(250)
+177 + j*(32)
+-29 + j*(-141)
+-209 + j*(83)
+45 + j*(274)
+258 + j*(11)
+16 + j*(-204)
+-165 + j*(-1)
+-2 + j*(117)
+32 + j*(-23)
+-111 + j*(28)
+-8 + j*(192)
+165 + j*(91)
+99 + j*(-37)
+73 + j*(5)
+147 + j*(-90)
+-31 + j*(-238)
+-258 + j*(-49)
+-117 + j*(214)
+118 + j*(139)
+89 + j*(-19)
+11 + j*(0)
+40 + j*(21)
+35 + j*(-11)
+9 + j*(13)
+49 + j*(36)
+94 + j*(3)
+107 + j*(-69)
+24 + j*(-164)
+-161 + j*(-100)
+-141 + j*(158)
+157 + j*(201)
+267 + j*(-76)
+83 + j*(-209)
+10 + j*(-151)
+-16 + j*(-212)
+-202 + j*(-191)
+-211 + j*(35)
+-29 + j*(13)
+-168 + j*(-146)
+-388 + j*(119)
+-94 + j*(441)
+273 + j*(221)
+144 + j*(-82)
+-36 + j*(16)
+87 + j*(100)
+141 + j*(-43)
+18 + j*(-96)
+-24 + j*(-37)
+-25 + j*(-23)
+-53 + j*(13)
+-23 + j*(74)
+40 + j*(106)
+163 + j*(103)
+291 + j*(-91)
+100 + j*(-375)
+-272 + j*(-255)
+-221 + j*(100)
+53 + j*(44)
+-82 + j*(-169)
+-295 + j*(35)
+-92 + j*(264)
+97 + j*(131)
+34 + j*(59)
+103 + j*(104)
+171 + j*(-62)
+-25 + j*(-145)
+-67 + j*(46)
+138 + j*(-2)
+1 + j*(-266)
+-345 + j*(-102)
+-222 + j*(293)
+151 + j*(245)
+151 + j*(-49)
+-62 + j*(-60)
+-69 + j*(107)
+81 + j*(129)
+144 + j*(-4)
+32 + j*(-121)
+-141 + j*(-47)
+-134 + j*(176)
+87 + j*(270)
+281 + j*(137)
+303 + j*(-72)
+185 + j*(-235)
+-19 + j*(-260)
+-150 + j*(-108)
+-71 + j*(45)
+59 + j*(11)
+47 + j*(-105)
+-69 + j*(-129)
+-163 + j*(-31)
+-121 + j*(141)
+97 + j*(195)
+257 + j*(-18)
+95 + j*(-258)
+-180 + j*(-167)
+-146 + j*(113)
+137 + j*(120)
+197 + j*(-177)
+-105 + j*(-314)
+-317 + j*(-47)
+-110 + j*(209)
+154 + j*(55)
+45 + j*(-206)
+-199 + j*(-161)
+-227 + j*(14)
+-176 + j*(76)
+-161 + j*(139)
+-66 + j*(207)
+28 + j*(161)
+32 + j*(127)
+88 + j*(130)
+134 + j*(21)
+21 + j*(-32)
+13 + j*(87)
+168 + j*(25)
+63 + j*(-192)
+-204 + j*(-83)
+-122 + j*(182)
+84 + j*(126)
+18 + j*(18)
+-4 + j*(131)
+150 + j*(105)
+93 + j*(-37)
+-3 + j*(91)
+233 + j*(173)
+367 + j*(-139)
+78 + j*(-336)
+-112 + j*(-143)
+-4 + j*(-45)
+-9 + j*(-131)
+-103 + j*(-71)
+-32 + j*(-3)
+-30 + j*(-91)
+-170 + j*(-27)
+-76 + j*(189)
+197 + j*(115)
+184 + j*(-183)
+-89 + j*(-236)
+-194 + j*(-35)
+-69 + j*(81)
+33 + j*(7)
+-21 + j*(-98)
+-161 + j*(-71)
+-204 + j*(107)
+-37 + j*(241)
+161 + j*(144)
+149 + j*(-46)
+23 + j*(-83)
+-8 + j*(-36)
+-11 + j*(-44)
+-68 + j*(-16)
+-21 + j*(86)
+132 + j*(37)
+116 + j*(-173)
+-110 + j*(-238)
+-264 + j*(-83)
+-255 + j*(90)
+-177 + j*(215)
+-18 + j*(296)
+179 + j*(214)
+214 + j*(6)
+68 + j*(-100)
+-61 + j*(-35)
+-76 + j*(94)
+28 + j*(204)
+221 + j*(187)
+339 + j*(-5)
+269 + j*(-218)
+93 + j*(-317)
+-90 + j*(-290)
+-208 + j*(-153)
+-174 + j*(-4)
+-92 + j*(18)
+-100 + j*(8)
+-82 + j*(83)
+41 + j*(72)
+41 + j*(-76)
+-122 + j*(-94)
+-178 + j*(50)
+-107 + j*(134)
+-55 + j*(170)
+46 + j*(211)
+180 + j*(128)
+154 + j*(-30)
+33 + j*(-28)
+62 + j*(72)
+199 + j*(27)
+215 + j*(-164)
+37 + j*(-307)
+-204 + j*(-242)
+-288 + j*(-9)
+-171 + j*(158)
+-47 + j*(177)
+31 + j*(182)
+157 + j*(148)
+211 + j*(-5)
+117 + j*(-101)
+71 + j*(-81)
+66 + j*(-141)
+-81 + j*(-169)
+-163 + j*(18)
+25 + j*(127)
+137 + j*(-39)
+8 + j*(-131)
+-37 + j*(-42)
+28 + j*(-64)
+-48 + j*(-138)
+-127 + j*(-55)
+-64 + j*(-16)
+-105 + j*(-90)
+-244 + j*(19)
+-136 + j*(239)
+115 + j*(183)
+109 + j*(-37)
+-54 + j*(-30)
+-6 + j*(98)
+125 + j*(0)
+-4 + j*(-169)
+-224 + j*(-39)
+-127 + j*(221)
+142 + j*(183)
+163 + j*(-52)
+3 + j*(-110)
+-57 + j*(-47)
+-82 + j*(-33)
+-137 + j*(42)
+-74 + j*(148)
+19 + j*(119)
+-8 + j*(95)
+24 + j*(173)
+148 + j*(144)
+152 + j*(57)
+177 + j*(71)
+301 + j*(-57)
+147 + j*(-323)
+-212 + j*(-216)
+-170 + j*(158)
+158 + j*(166)
+208 + j*(-74)
+96 + j*(-134)
+68 + j*(-169)
+-72 + j*(-209)
+-172 + j*(-21)
+32 + j*(85)
+112 + j*(-146)
+-152 + j*(-204)
+-201 + j*(76)
+69 + j*(110)
+78 + j*(-144)
+-173 + j*(-148)
+-206 + j*(94)
+5 + j*(179)
+146 + j*(25)
+59 + j*(-169)
+-175 + j*(-153)
+-226 + j*(95)
+10 + j*(196)
+125 + j*(-16)
+-63 + j*(-127)
+-161 + j*(30)
+-50 + j*(101)
+-45 + j*(33)
+-116 + j*(107)
+6 + j*(240)
+213 + j*(154)
+223 + j*(-80)
+44 + j*(-195)
+-124 + j*(-118)
+-154 + j*(23)
+-95 + j*(109)
+-25 + j*(144)
+65 + j*(130)
+93 + j*(28)
+-23 + j*(3)
+-41 + j*(175)
+191 + j*(228)
+316 + j*(4)
+185 + j*(-139)
+129 + j*(-107)
+139 + j*(-197)
+-44 + j*(-263)
+-156 + j*(-78)
+-8 + j*(11)
+12 + j*(-128)
+-142 + j*(-95)
+-98 + j*(57)
+14 + j*(12)
+-44 + j*(-38)
+-41 + j*(38)
+37 + j*(-1)
+-17 + j*(-58)
+-8 + j*(2)
+69 + j*(-117)
+-173 + j*(-255)
+-416 + j*(61)
+-106 + j*(380)
+202 + j*(123)
+-37 + j*(-95)
+-159 + j*(194)
+202 + j*(280)
+305 + j*(-110)
+-48 + j*(-237)
+-175 + j*(40)
+17 + j*(151)
+99 + j*(49)
+89 + j*(11)
+108 + j*(-40)
+42 + j*(-106)
+-22 + j*(-56)
+32 + j*(-42)
+-19 + j*(-139)
+-181 + j*(-54)
+-98 + j*(169)
+161 + j*(101)
+119 + j*(-177)
+-168 + j*(-175)
+-224 + j*(81)
+-42 + j*(186)
+69 + j*(107)
+79 + j*(40)
+71 + j*(-13)
+8 + j*(-39)
+-18 + j*(30)
+74 + j*(40)
+71 + j*(-88)
+-93 + j*(-84)
+-103 + j*(117)
+117 + j*(165)
+234 + j*(-37)
+115 + j*(-219)
+-88 + j*(-229)
+-228 + j*(-66)
+-147 + j*(160)
+113 + j*(151)
+153 + j*(-106)
+-80 + j*(-168)
+-131 + j*(13)
+-11 + j*(6)
+-115 + j*(-80)
+-220 + j*(122)
+30 + j*(283)
+231 + j*(51)
+51 + j*(-148)
+-115 + j*(-27)
+-54 + j*(92)
+1 + j*(101)
+71 + j*(133)
+204 + j*(47)
+149 + j*(-150)
+-49 + j*(-141)
+-57 + j*(23)
+74 + j*(31)
+106 + j*(-79)
+54 + j*(-171)
+-86 + j*(-245)
+-306 + j*(-141)
+-325 + j*(156)
+-70 + j*(288)
+83 + j*(156)
+46 + j*(88)
+86 + j*(115)
+158 + j*(23)
+77 + j*(-86)
+-24 + j*(-36)
+1 + j*(38)
+54 + j*(31)
+68 + j*(4)
+74 + j*(-21)
+71 + j*(-45)
+72 + j*(-72)
+45 + j*(-136)
+-73 + j*(-156)
+-146 + j*(-31)
+-47 + j*(54)
+6 + j*(-28)
+-95 + j*(-40)
+-88 + j*(93)
+56 + j*(94)
+69 + j*(-23)
+12 + j*(-25)
+54 + j*(-30)
+16 + j*(-139)
+-152 + j*(-108)
+-157 + j*(76)
+-4 + j*(113)
+44 + j*(16)
+5 + j*(-21)
+-18 + j*(-37)
+-75 + j*(-35)
+-98 + j*(37)
+-44 + j*(64)
+-59 + j*(38)
+-85 + j*(127)
+62 + j*(199)
+191 + j*(50)
+99 + j*(-103)
+-20 + j*(-98)
+-95 + j*(-77)
+-221 + j*(28)
+-174 + j*(302)
+161 + j*(393)
+378 + j*(131)
+269 + j*(-100)
+143 + j*(-91)
+175 + j*(-71)
+202 + j*(-180)
+83 + j*(-320)
+-159 + j*(-292)
+-243 + j*(-25)
+6 + j*(103)
+125 + j*(-158)
+-182 + j*(-278)
+-330 + j*(53)
+-28 + j*(209)
+87 + j*(-44)
+-133 + j*(-98)
+-148 + j*(98)
+-8 + j*(100)
+-25 + j*(47)
+15 + j*(103)
+116 + j*(-4)
+-33 + j*(-134)
+-166 + j*(30)
+-9 + j*(145)
+65 + j*(6)
+-54 + j*(-18)
+-39 + j*(66)
+-13 + j*(16)
+-127 + j*(62)
+-58 + j*(260)
+182 + j*(251)
+255 + j*(86)
+262 + j*(12)
+310 + j*(-136)
+165 + j*(-339)
+-88 + j*(-323)
+-206 + j*(-184)
+-265 + j*(-32)
+-186 + j*(199)
+124 + j*(227)
+233 + j*(-72)
+2 + j*(-201)
+-70 + j*(-66)
+-18 + j*(-109)
+-199 + j*(-134)
+-247 + j*(142)
+52 + j*(219)
+122 + j*(-47)
+-98 + j*(-73)
+-71 + j*(100)
+48 + j*(25)
+-83 + j*(-39)
+-117 + j*(148)
+96 + j*(191)
+163 + j*(14)
+69 + j*(-51)
+52 + j*(-48)
+-1 + j*(-100)
+-112 + j*(-35)
+-72 + j*(105)
+53 + j*(110)
+95 + j*(47)
+127 + j*(4)
+151 + j*(-115)
+1 + j*(-254)
+-248 + j*(-164)
+-279 + j*(143)
+-1 + j*(298)
+228 + j*(104)
+124 + j*(-119)
+-37 + j*(-70)
+9 + j*(3)
+-1 + j*(-85)
+-151 + j*(-22)
+-82 + j*(185)
+129 + j*(152)
+133 + j*(8)
+112 + j*(22)
+209 + j*(-59)
+104 + j*(-248)
+-107 + j*(-182)
+-71 + j*(-43)
+-45 + j*(-108)
+-172 + j*(-52)
+-74 + j*(115)
+83 + j*(-25)
+-111 + j*(-149)
+-212 + j*(94)
+50 + j*(164)
+59 + j*(-96)
+-214 + j*(-33)
+-108 + j*(274)
+221 + j*(184)
+180 + j*(-109)
+-30 + j*(-104)
+-18 + j*(21)
+74 + j*(-22)
+15 + j*(-140)
+-161 + j*(-123)
+-222 + j*(91)
+-16 + j*(219)
+119 + j*(31)
+-93 + j*(-53)
+-136 + j*(249)
+267 + j*(321)
+422 + j*(-106)
+83 + j*(-326)
+-103 + j*(-133)
+-19 + j*(-66)
+-76 + j*(-122)
+-156 + j*(-10)
+-61 + j*(81)
+4 + j*(31)
+-7 + j*(6)
+-9 + j*(-18)
+-76 + j*(-28)
+-103 + j*(77)
+8 + j*(109)
+-6 + j*(26)
+-76 + j*(143)
+158 + j*(265)
+379 + j*(-24)
+124 + j*(-326)
+-173 + j*(-161)
+-82 + j*(57)
+29 + j*(-19)
+-76 + j*(-59)
+-96 + j*(74)
+27 + j*(110)
+71 + j*(33)
+47 + j*(18)
+88 + j*(33)
+153 + j*(-46)
+93 + j*(-183)
+-85 + j*(-192)
+-160 + j*(-37)
+-65 + j*(51)
+-23 + j*(8)
+-49 + j*(45)
+68 + j*(91)
+153 + j*(-83)
+-45 + j*(-222)
+-215 + j*(-39)
+-76 + j*(128)
+57 + j*(24)
+-31 + j*(-62)
+-94 + j*(17)
+-35 + j*(77)
+25 + j*(60)
+62 + j*(13)
+48 + j*(-77)
+-66 + j*(-117)
+-169 + j*(-25)
+-148 + j*(110)
+-46 + j*(175)
+66 + j*(153)
+118 + j*(61)
+73 + j*(-13)
+18 + j*(15)
+72 + j*(76)
+202 + j*(-4)
+170 + j*(-243)
+-148 + j*(-337)
+-383 + j*(-37)
+-180 + j*(274)
+90 + j*(170)
+14 + j*(19)
+-11 + j*(147)
+204 + j*(98)
+129 + j*(-184)
+-167 + j*(-109)
+-95 + j*(139)
+38 + j*(57)
+-108 + j*(78)
+52 + j*(354)
+470 + j*(147)
+305 + j*(-340)
+-129 + j*(-233)
+-25 + j*(78)
+165 + j*(-70)
+-12 + j*(-168)
+-20 + j*(11)
+165 + j*(-69)
+56 + j*(-277)
+-128 + j*(-223)
+-151 + j*(-162)
+-265 + j*(-139)
+-330 + j*(69)
+-180 + j*(206)
+-98 + j*(208)
+23 + j*(308)
+322 + j*(173)
+234 + j*(-235)
+-176 + j*(-170)
+-61 + j*(183)
+243 + j*(-21)
+-40 + j*(-298)
+-281 + j*(18)
+28 + j*(190)
+106 + j*(-104)
+-175 + j*(-97)
+-111 + j*(153)
+73 + j*(53)
+-63 + j*(-48)
+-102 + j*(122)
+65 + j*(134)
+61 + j*(25)
+47 + j*(66)
+148 + j*(-6)
+30 + j*(-163)
+-146 + j*(-35)
+-18 + j*(112)
+71 + j*(-20)
+-81 + j*(-45)
+-62 + j*(141)
+157 + j*(104)
+135 + j*(-134)
+-111 + j*(-157)
+-197 + j*(73)
+-11 + j*(230)
+194 + j*(111)
+134 + j*(-102)
+-62 + j*(-59)
+-3 + j*(141)
+239 + j*(83)
+249 + j*(-192)
+9 + j*(-319)
+-204 + j*(-199)
+-226 + j*(18)
+-57 + j*(117)
+35 + j*(-24)
+-144 + j*(-77)
+-189 + j*(177)
+117 + j*(246)
+204 + j*(-59)
+-71 + j*(-129)
+-109 + j*(110)
+74 + j*(128)
+74 + j*(46)
+125 + j*(105)
+293 + j*(-47)
+124 + j*(-316)
+-171 + j*(-190)
+-82 + j*(49)
+76 + j*(-41)
+-20 + j*(-145)
+-95 + j*(-79)
+-88 + j*(-45)
+-96 + j*(4)
+-4 + j*(19)
+-30 + j*(-130)
+-269 + j*(-49)
+-153 + j*(281)
+231 + j*(144)
+61 + j*(-247)
+-316 + j*(-23)
+-40 + j*(334)
+289 + j*(28)
+-18 + j*(-257)
+-237 + j*(28)
+10 + j*(163)
+55 + j*(-52)
+-143 + j*(-21)
+-86 + j*(154)
+36 + j*(115)
+16 + j*(90)
+100 + j*(114)
+154 + j*(-57)
+-74 + j*(-144)
+-199 + j*(110)
+39 + j*(281)
+238 + j*(115)
+183 + j*(-55)
+107 + j*(-86)
+57 + j*(-136)
+-100 + j*(-133)
+-185 + j*(79)
+18 + j*(264)
+272 + j*(126)
+228 + j*(-124)
+57 + j*(-138)
+52 + j*(-62)
+74 + j*(-105)
+11 + j*(-100)
+70 + j*(-62)
+100 + j*(-229)
+-173 + j*(-303)
+-309 + j*(14)
+-11 + j*(165)
+88 + j*(-107)
+-182 + j*(-122)
+-108 + j*(158)
+177 + j*(-9)
+-81 + j*(-312)
+-420 + j*(10)
+-87 + j*(375)
+267 + j*(65)
+-15 + j*(-252)
+-297 + j*(1)
+-99 + j*(247)
+85 + j*(129)
+24 + j*(45)
+37 + j*(105)
+133 + j*(47)
+86 + j*(-66)
+2 + j*(-36)
+59 + j*(-3)
+82 + j*(-129)
+-110 + j*(-208)
+-272 + j*(-12)
+-133 + j*(203)
+57 + j*(128)
+-1 + j*(5)
+-67 + j*(95)
+56 + j*(132)
+55 + j*(2)
+-104 + j*(74)
+21 + j*(325)
+397 + j*(245)
+479 + j*(-168)
+187 + j*(-424)
+-112 + j*(-354)
+-223 + j*(-171)
+-210 + j*(-34)
+-180 + j*(40)
+-151 + j*(127)
+-30 + j*(218)
+151 + j*(151)
+162 + j*(-45)
+-1 + j*(-98)
+-57 + j*(28)
+45 + j*(92)
+136 + j*(23)
+131 + j*(-99)
+6 + j*(-171)
+-126 + j*(-63)
+-30 + j*(97)
+153 + j*(-6)
+38 + j*(-223)
+-206 + j*(-115)
+-122 + j*(133)
+104 + j*(64)
+32 + j*(-139)
+-155 + j*(-63)
+-92 + j*(118)
+71 + j*(85)
+76 + j*(-45)
+3 + j*(-83)
+-49 + j*(-84)
+-129 + j*(-49)
+-145 + j*(93)
+30 + j*(165)
+148 + j*(-16)
+-26 + j*(-164)
+-193 + j*(-4)
+-58 + j*(157)
+66 + j*(52)
+-34 + j*(-5)
+-21 + j*(121)
+144 + j*(62)
+71 + j*(-129)
+-114 + j*(-54)
+-28 + j*(91)
+74 + j*(-21)
+-74 + j*(-101)
+-159 + j*(49)
+-75 + j*(139)
+-42 + j*(163)
+66 + j*(264)
+320 + j*(168)
+315 + j*(-167)
+11 + j*(-255)
+-103 + j*(-51)
+8 + j*(26)
+26 + j*(-25)
+5 + j*(4)
+61 + j*(14)
+71 + j*(-38)
+62 + j*(-42)
+102 + j*(-91)
+30 + j*(-209)
+-154 + j*(-167)
+-170 + j*(28)
+-4 + j*(84)
+75 + j*(-52)
+-42 + j*(-158)
+-196 + j*(-76)
+-167 + j*(122)
+52 + j*(160)
+147 + j*(-67)
+-71 + j*(-224)
+-288 + j*(-60)
+-233 + j*(160)
+-115 + j*(214)
+-53 + j*(279)
+156 + j*(344)
+403 + j*(129)
+305 + j*(-223)
+-13 + j*(-255)
+-86 + j*(-47)
+35 + j*(-33)
+-35 + j*(-149)
+-202 + j*(-40)
+-119 + j*(170)
+86 + j*(138)
+84 + j*(-18)
+-21 + j*(-8)
+10 + j*(69)
+79 + j*(35)
+62 + j*(-9)
+64 + j*(6)
+117 + j*(-38)
+78 + j*(-147)
+-62 + j*(-166)
+-147 + j*(-49)
+-96 + j*(75)
+23 + j*(88)
+79 + j*(8)
+55 + j*(-57)
+28 + j*(-82)
+-13 + j*(-128)
+-125 + j*(-137)
+-226 + j*(-23)
+-197 + j*(148)
+-41 + j*(251)
+158 + j*(197)
+228 + j*(-18)
+69 + j*(-161)
+-68 + j*(-64)
+13 + j*(20)
+49 + j*(-93)
+-93 + j*(-119)
+-125 + j*(1)
+-74 + j*(-6)
+-194 + j*(5)
+-200 + j*(272)
+164 + j*(381)
+399 + j*(35)
+170 + j*(-278)
+-124 + j*(-202)
+-181 + j*(1)
+-99 + j*(130)
+40 + j*(155)
+115 + j*(48)
+47 + j*(-8)
+49 + j*(64)
+170 + j*(11)
+112 + j*(-161)
+-74 + j*(-132)
+-78 + j*(27)
+31 + j*(60)
+92 + j*(13)
+125 + j*(-69)
+62 + j*(-180)
+-76 + j*(-174)
+-123 + j*(-94)
+-156 + j*(-50)
+-170 + j*(93)
+50 + j*(170)
+159 + j*(-115)
+-197 + j*(-238)
+-335 + j*(179)
+103 + j*(320)
+206 + j*(-99)
+-185 + j*(-123)
+-128 + j*(246)
+194 + j*(129)
+23 + j*(-105)
+-100 + j*(143)
+235 + j*(190)
+255 + j*(-187)
+-83 + j*(-195)
+-48 + j*(43)
+90 + j*(-62)
+-66 + j*(-126)
+-54 + j*(26)
+61 + j*(-91)
+-182 + j*(-188)
+-292 + j*(146)
+59 + j*(268)
+154 + j*(-42)
+-104 + j*(-69)
+-62 + j*(144)
+95 + j*(56)
+-24 + j*(-26)
+-31 + j*(132)
+156 + j*(95)
+112 + j*(-81)
+-4 + j*(-31)
+79 + j*(8)
+69 + j*(-118)
+-75 + j*(-99)
+-64 + j*(18)
+-15 + j*(8)
+-44 + j*(33)
+38 + j*(95)
+130 + j*(-11)
+35 + j*(-104)
+-21 + j*(-25)
+64 + j*(-24)
+41 + j*(-137)
+-82 + j*(-142)
+-141 + j*(-64)
+-153 + j*(28)
+-67 + j*(131)
+93 + j*(62)
+26 + j*(-125)
+-173 + j*(-42)
+-63 + j*(158)
+138 + j*(8)
+-60 + j*(-206)
+-307 + j*(6)
+-136 + j*(267)
+69 + j*(159)
+-29 + j*(66)
+-37 + j*(230)
+202 + j*(243)
+265 + j*(5)
+98 + j*(-65)
+90 + j*(48)
+213 + j*(-6)
+160 + j*(-149)
+56 + j*(-121)
+119 + j*(-106)
+91 + j*(-280)
+-187 + j*(-302)
+-305 + j*(-4)
+-69 + j*(175)
+116 + j*(18)
+30 + j*(-141)
+-93 + j*(-135)
+-163 + j*(-81)
+-216 + j*(28)
+-139 + j*(171)
+18 + j*(165)
+49 + j*(78)
+57 + j*(83)
+155 + j*(21)
+103 + j*(-164)
+-122 + j*(-168)
+-175 + j*(40)
+-28 + j*(109)
+23 + j*(23)
+-23 + j*(6)
+-10 + j*(32)
+2 + j*(1)
+-35 + j*(-1)
+-23 + j*(35)
+13 + j*(-4)
+-66 + j*(-68)
+-210 + j*(28)
+-175 + j*(274)
+111 + j*(379)
+349 + j*(170)
+293 + j*(-82)
+161 + j*(-128)
+151 + j*(-157)
+40 + j*(-276)
+-187 + j*(-195)
+-172 + j*(47)
+14 + j*(54)
+-13 + j*(-79)
+-132 + j*(-13)
+-64 + j*(110)
+35 + j*(85)
+52 + j*(49)
+99 + j*(15)
+79 + j*(-91)
+-39 + j*(-89)
+-27 + j*(5)
+39 + j*(-52)
+-76 + j*(-105)
+-136 + j*(44)
+11 + j*(106)
+51 + j*(-4)
+-18 + j*(1)
+37 + j*(23)
+4 + j*(-74)
+-138 + j*(35)
+53 + j*(249)
+366 + j*(14)
+157 + j*(-379)
+-248 + j*(-250)
+-188 + j*(83)
+41 + j*(38)
+-22 + j*(-115)
+-141 + j*(-55)
+-129 + j*(31)
+-105 + j*(80)
+-28 + j*(122)
+49 + j*(49)
+-32 + j*(-14)
+-62 + j*(99)
+91 + j*(110)
+94 + j*(-57)
+-52 + j*(-32)
+41 + j*(77)
+134 + j*(-120)
+-168 + j*(-247)
+-377 + j*(124)
+-13 + j*(419)
+333 + j*(126)
+125 + j*(-203)
+-144 + j*(-54)
+-21 + j*(157)
+153 + j*(50)
+77 + j*(-89)
+-10 + j*(-42)
+33 + j*(-24)
+-8 + j*(-95)
+-121 + j*(-30)
+-54 + j*(96)
+50 + j*(21)
+-81 + j*(-54)
+-167 + j*(165)
+110 + j*(319)
+340 + j*(62)
+156 + j*(-168)
+14 + j*(-24)
+199 + j*(27)
+245 + j*(-236)
+-26 + j*(-341)
+-163 + j*(-165)
+-98 + j*(-92)
+-140 + j*(-118)
+-202 + j*(-4)
+-97 + j*(97)
+-11 + j*(29)
+-64 + j*(-8)
+-75 + j*(61)
+6 + j*(84)
+62 + j*(32)
+72 + j*(-46)
+13 + j*(-127)
+-112 + j*(-111)
+-132 + j*(13)
+-25 + j*(25)
+-56 + j*(-96)
+-250 + j*(-49)
+-264 + j*(226)
+14 + j*(361)
+247 + j*(173)
+189 + j*(-72)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+0 + j*(0)
+];
-- 
GitLab