From d4980fd81fe036397d80996d6bec816597a3dec9 Mon Sep 17 00:00:00 2001 From: prasad-sawantdesai Date: Fri, 30 Jan 2026 08:05:02 +0100 Subject: [PATCH 01/18] adapted cmake and doc_common locally available --- .readthedocs.yml | 19 +- CMakeLists.txt | 28 +- cmake/ALBuildDataDictionary.cmake | 396 ++++++++++ cmake/ALBuildDocumentation.cmake | 27 + cmake/ALCommonConfig.cmake | 60 ++ cmake/ALCore.cmake | 189 +++++ cmake/ALDetermineVersion.cmake | 53 ++ cmake/ALExampleUtilities.cmake | 53 ++ cmake/ALLocalPaths.cmake | 14 + cmake/ALSetCompilerFlags.cmake | 116 +++ cmake/FindMDSplus.cmake | 91 +++ cmake/FindPThreads4W.cmake | 70 ++ cmake/xsltproc.py | 71 ++ doc/.gitignore | 2 - doc/doc_common/building_installing.rst | 412 ++++++++++ doc/doc_common/ci_build_docs.sh | 52 ++ doc/doc_common/conf.rst | 141 ++++ doc/doc_common/deploy.ps1 | 95 +++ doc/doc_common/dev_guide.rst | 240 ++++++ doc/doc_common/identifiers.rst | 54 ++ doc/doc_common/imas.rst | 32 + doc/doc_common/imas_uri.rst | 253 +++++++ doc/doc_common/load_store_ids.rst | 261 +++++++ doc/doc_common/media/image1.png | Bin 0 -> 131122 bytes doc/doc_common/media/image2.png | Bin 0 -> 123994 bytes doc/doc_common/media/image3.png | Bin 0 -> 88768 bytes doc/doc_common/media/image4.png | Bin 0 -> 37057 bytes doc/doc_common/media/image5.png | Bin 0 -> 66593 bytes doc/doc_common/media/image6.png | Bin 0 -> 67131 bytes doc/doc_common/media/image7.png | Bin 0 -> 98313 bytes doc/doc_common/plugins.rst | 75 ++ doc/doc_common/plugins_architecture.rst | 339 +++++++++ doc/doc_common/plugins_examples.rst | 958 ++++++++++++++++++++++++ doc/doc_common/requirements.txt | 17 + doc/doc_common/static/.keep | 0 doc/doc_common/templates/base.html | 24 + doc/doc_common/use_ids.rst | 339 +++++++++ doc/doc_common/using_al.rst | 38 + 38 files changed, 4480 insertions(+), 39 deletions(-) create mode 100644 cmake/ALBuildDataDictionary.cmake create mode 100644 cmake/ALBuildDocumentation.cmake create mode 100644 cmake/ALCommonConfig.cmake create mode 100644 cmake/ALCore.cmake create mode 100644 cmake/ALDetermineVersion.cmake create mode 100644 cmake/ALExampleUtilities.cmake create mode 100644 cmake/ALLocalPaths.cmake create mode 100644 cmake/ALSetCompilerFlags.cmake create mode 100644 cmake/FindMDSplus.cmake create mode 100644 cmake/FindPThreads4W.cmake create mode 100644 cmake/xsltproc.py create mode 100644 doc/doc_common/building_installing.rst create mode 100755 doc/doc_common/ci_build_docs.sh create mode 100644 doc/doc_common/conf.rst create mode 100644 doc/doc_common/deploy.ps1 create mode 100644 doc/doc_common/dev_guide.rst create mode 100644 doc/doc_common/identifiers.rst create mode 100644 doc/doc_common/imas.rst create mode 100644 doc/doc_common/imas_uri.rst create mode 100644 doc/doc_common/load_store_ids.rst create mode 100644 doc/doc_common/media/image1.png create mode 100644 doc/doc_common/media/image2.png create mode 100644 doc/doc_common/media/image3.png create mode 100644 doc/doc_common/media/image4.png create mode 100644 doc/doc_common/media/image5.png create mode 100644 doc/doc_common/media/image6.png create mode 100644 doc/doc_common/media/image7.png create mode 100644 doc/doc_common/plugins.rst create mode 100644 doc/doc_common/plugins_architecture.rst create mode 100644 doc/doc_common/plugins_examples.rst create mode 100644 doc/doc_common/requirements.txt create mode 100644 doc/doc_common/static/.keep create mode 100644 doc/doc_common/templates/base.html create mode 100644 doc/doc_common/use_ids.rst create mode 100644 doc/doc_common/using_al.rst diff --git a/.readthedocs.yml b/.readthedocs.yml index de7f9fc..122fe6c 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -10,21 +10,6 @@ build: tools: python: "3.11" - jobs: - post_checkout: - # Clone IMAS-Core (only if not already present) - - | - if [ ! -d "IMAS-Core" ]; then - git clone --depth 1 --branch develop \ - https://github.com/iterorganization/IMAS-Core.git \ - IMAS-Core - fi - - ls -la - - ln -sfn $PWD/IMAS-Core/common/doc_common $PWD/doc/doc_common - - ls -la doc/ - - ls -la doc/doc_common/ - - echo "Created symlink doc/doc_common -> IMAS-Core/common/doc_common" - # Build documentation in the "doc" directory with Sphinx sphinx: configuration: doc/conf.py @@ -35,11 +20,11 @@ formats: - pdf - epub -# Optional but recommended, declare the Python requirements required +# Optional but Python requirements required recommended, declare the # to build your documentation python: install: - - requirements: IMAS-Core/common/doc_common/requirements.txt + - requirements: doc/doc_common/requirements.txt # Submodules configuration (optional) submodules: diff --git a/CMakeLists.txt b/CMakeLists.txt index 9d3a520..fa85774 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,19 +20,18 @@ if(WIN32) endif() endif() -# Configuration options for common assets +# Local paths for IMAS-Matlab ################################################################################ +# Include local paths to eliminate AL_COMMON_PATH dependency +include(ALLocalPaths) option( AL_DOWNLOAD_DEPENDENCIES "Automatically download assets from the AL git repository" ON ) set( AL_CORE_GIT_REPOSITORY "https://github.com/iterorganization/IMAS-Core.git" CACHE STRING "Git repository of AL-core" ) set( AL_CORE_VERSION "main" CACHE STRING "Git commit/tag/branch of AL-core" ) + include(FetchContent) -# Load common assets +# Load AL-core library (used for the shared library) ################################################################################ -if( DEFINED ENV{AL_COMMON_PATH} ) - # Take common assets from the path in this environment variable instead of al-core - set( AL_COMMON_PATH $ENV{AL_COMMON_PATH} ) -else() - if(WIN32) +if(WIN32) if( ${AL_DOWNLOAD_DEPENDENCIES} ) # FetchContent_Declare causing reursive call wrapped by vcpkg to _find_package # So manually clone al-core here. Need fix in later release @@ -69,7 +68,6 @@ else() message( FATAL_ERROR "${al-core_SOURCE_DIR} does not exist. Set AL_DOWNLOAD_DEPENDENCIES=ON to download." ) endif() endif() - set( AL_COMMON_PATH "${al-core_SOURCE_DIR}/common" ) else() if( ${AL_DOWNLOAD_DEPENDENCIES} ) # Download common assets from the ITER git: @@ -84,12 +82,9 @@ else() SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../al-core" ) endif() - FetchContent_MakeAvailable( al-core ) - set( AL_COMMON_PATH "${al-core_SOURCE_DIR}/common" ) + endif() endif() -add_subdirectory( ${AL_COMMON_PATH} _common ) - # Define project ################################################################################ @@ -120,8 +115,6 @@ include( ALCore ) if( AL_DOCS_ONLY ) return() endif() - - # Dependencies ################################################################################ find_package( Python3 REQUIRED COMPONENTS Interpreter ) @@ -130,8 +123,6 @@ if(WIN32) else() find_package( Matlab REQUIRED ) endif() - - # Utility sources and target ################################################################################ @@ -149,7 +140,6 @@ if(WIN32) target_link_libraries( al-mex PUBLIC al Matlab::mex Matlab::mx ) target_include_directories( al-mex PRIVATE src ) target_include_directories( al-mex PUBLIC ${Matlab_INCLUDE_DIRS} ) - target_include_directories( al-mex PUBLIC ${AL_COMMON_PATH}/../include ) # Use separate (non-interleaved) complex API for compatibility target_compile_definitions( al-mex PUBLIC) @@ -238,7 +228,7 @@ macro( GENERATE GENERATOR IS_C_GENERATOR OUTPUT_FILES ) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${GENERATOR}_dummy.txt COMMAND - ${_SAXONCHE_VENV_PYTHON} "${AL_COMMON_PATH}/xsltproc.py" + ${_SAXONCHE_VENV_PYTHON} "${AL_LOCAL_XSLTPROC_SCRIPT}" -xsl ${CMAKE_CURRENT_SOURCE_DIR}/${GENERATOR}.xsl -s ${IDSDEF} -o ${CMAKE_CURRENT_BINARY_DIR}/${GENERATOR}_output.xml @@ -283,8 +273,6 @@ else() list( APPEND MEX_TARGETS "mex-${NAME}" ) endmacro() endif() - - # These XSLs generate files in triplets, which are then compiled into one mex target foreach( METHOD_NAME allocate delete gen get get_sample get_slice init put put_slice rand validate ) FILES_FROM_METHOD_NAME( OUTPUT_FILES ${METHOD_NAME} ) diff --git a/cmake/ALBuildDataDictionary.cmake b/cmake/ALBuildDataDictionary.cmake new file mode 100644 index 0000000..7961b62 --- /dev/null +++ b/cmake/ALBuildDataDictionary.cmake @@ -0,0 +1,396 @@ +# Everything needed for building the Data Dictionary +# +# This script sets the following variables: +# IDSDEF Path to the generated IDSDef.xml +# IDS_NAMES List of IDSs that are available in the data dictionary +# DD_VERSION Version of the data dictionary +# DD_SAFE_VERSION DD version, safe to use as linker symbol + +if( AL_DOCS_ONLY ) + return() +endif() + +# Find Python for the xsltproc.py program +if(WIN32) + if(NOT Python3_FOUND AND NOT PYTHON_EXECUTABLE) + # Check if Python is in PATH + find_program(PYTHON_EXECUTABLE NAMES python3.exe python.exe python3 python DOC "Python interpreter") + if(NOT PYTHON_EXECUTABLE) + message(FATAL_ERROR "Could not find Python. Please ensure Python is installed and in PATH.") + endif() + else() + set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE}) + endif() +else() + find_package(Python REQUIRED COMPONENTS Interpreter Development.Module) + set(PYTHON_EXECUTABLE ${Python_EXECUTABLE}) +endif() + +message(STATUS "Found Python: ${PYTHON_EXECUTABLE}") + +# Set up Python venv paths for saxonche (used for all XSLT transformations) +if(WIN32) + set(_VENV_PYTHON "${CMAKE_CURRENT_BINARY_DIR}/dd_build_env/Scripts/python.exe") + set(_VENV_PIP "${CMAKE_CURRENT_BINARY_DIR}/dd_build_env/Scripts/pip.exe") +else() + set(_VENV_PYTHON "${CMAKE_CURRENT_BINARY_DIR}/dd_build_env/bin/python") + set(_VENV_PIP "${CMAKE_CURRENT_BINARY_DIR}/dd_build_env/bin/pip") +endif() + +if( NOT AL_DOWNLOAD_DEPENDENCIES AND NOT AL_DEVELOPMENT_LAYOUT ) + # The DD easybuild module should be loaded, use that module: + # Create Python venv first and install imas_data_dictionary + if(NOT EXISTS "${_VENV_PYTHON}") + execute_process( + COMMAND ${PYTHON_EXECUTABLE} -m venv dd_build_env + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + RESULT_VARIABLE _VENV_EXITCODE + OUTPUT_VARIABLE _VENV_OUTPUT + ERROR_VARIABLE _VENV_ERROR + ) + + if(_VENV_EXITCODE) + message(STATUS "venv stdout: ${_VENV_OUTPUT}") + message(STATUS "venv stderr: ${_VENV_ERROR}") + message(FATAL_ERROR "Failed to create venv (exit code: ${_VENV_EXITCODE}). Ensure Python has venv module installed: python -m venv --help") + endif() + + if(DEFINED DD_VERSION) + execute_process( + COMMAND ${_VENV_PIP} install imas_data_dictionary==${DD_VERSION} + RESULT_VARIABLE _PIP_EXITCODE + OUTPUT_VARIABLE _PIP_OUTPUT + ERROR_VARIABLE _PIP_ERROR + ) + else() + execute_process( + COMMAND ${_VENV_PIP} install imas_data_dictionary + RESULT_VARIABLE _PIP_EXITCODE + OUTPUT_VARIABLE _PIP_OUTPUT + ERROR_VARIABLE _PIP_ERROR + ) + endif() + + if(_PIP_EXITCODE) + message(STATUS "imas_data_dictionary pip output: ${_PIP_OUTPUT}") + message(STATUS "imas_data_dictionary pip error: ${_PIP_ERROR}") + message(FATAL_ERROR "Failed to install imas_data_dictionary dependency (exit code: ${_PIP_EXITCODE}). Check network connectivity and Python wheel compatibility.") + endif() + + execute_process( + COMMAND ${_VENV_PIP} install saxonche + RESULT_VARIABLE _PIP_EXITCODE + OUTPUT_VARIABLE _PIP_OUTPUT + ERROR_VARIABLE _PIP_ERROR + ) + + if(_PIP_EXITCODE) + message(STATUS "saxonche pip output: ${_PIP_OUTPUT}") + message(STATUS "saxonche pip error: ${_PIP_ERROR}") + message(FATAL_ERROR "Failed to install saxonche dependency (exit code: ${_PIP_EXITCODE}). Check network connectivity and Python wheel compatibility.") + endif() + endif() +# Set up idsinfo command path +if(WIN32) + set(_IDSINFO_COMMAND "${CMAKE_CURRENT_BINARY_DIR}/dd_build_env/Scripts/idsinfo.exe") +else() + set(_IDSINFO_COMMAND "${CMAKE_CURRENT_BINARY_DIR}/dd_build_env/bin/idsinfo") +endif() + + # Use idsinfo idspath command from venv to get the path to IDSDef.xml or data_dictionary.xml + execute_process( + COMMAND ${_IDSINFO_COMMAND} idspath + OUTPUT_VARIABLE IDSDEF + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _IDSINFO_EXITCODE + ) + + if( _IDSINFO_EXITCODE ) + message( FATAL_ERROR + "Failed to run 'idsinfo idspath' command. " + "Please ensure IMAS-Data-Dictionary module is loaded." + ) + endif() + + if( NOT EXISTS "${IDSDEF}" ) + message( FATAL_ERROR + "idsinfo idspath returned '${IDSDEF}' but file does not exist. " + "Please ensure IMAS-Data-Dictionary module is properly loaded." + ) + endif() + + message( STATUS "Found Data Dictionary: ${IDSDEF}" ) + + # Populate identifier source xmls based on the IDSDEF location + get_filename_component( DD_BASE_DIR "${IDSDEF}" DIRECTORY ) + + if( DD_BASE_DIR MATCHES "schemas$" ) + # DD 4.1.0+ layout: resources/schemas//*_identifier.xml + file( GLOB DD_IDENTIFIER_FILES "${DD_BASE_DIR}/*/*_identifier.xml" ) + else() + # DD 3.x/4.0.0 layout: dd_x.y.z/include//*_identifier.xml + file( GLOB DD_IDENTIFIER_FILES "${DD_BASE_DIR}/*/*_identifier.xml" ) + endif() + + if( NOT DD_IDENTIFIER_FILES ) + message( WARNING "No identifier XML files found in Data Dictionary at: ${IDSDEF}" ) + endif() + + # When using pre-installed DD, we still need venv for extracting IDS names and version + # Create Python venv and install saxonche if not already done + if(NOT EXISTS "${_VENV_PYTHON}") + execute_process( + COMMAND ${PYTHON_EXECUTABLE} -m venv dd_build_env + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + RESULT_VARIABLE _VENV_EXITCODE + OUTPUT_VARIABLE _VENV_OUTPUT + ERROR_VARIABLE _VENV_ERROR + ) + + if(_VENV_EXITCODE) + message(STATUS "venv stdout: ${_VENV_OUTPUT}") + message(STATUS "venv stderr: ${_VENV_ERROR}") + message(FATAL_ERROR "Failed to create venv (exit code: ${_VENV_EXITCODE}). Ensure Python has venv module installed: python -m venv --help") + endif() + + execute_process( + COMMAND ${_VENV_PIP} install saxonche + RESULT_VARIABLE _PIP_EXITCODE + OUTPUT_VARIABLE _PIP_OUTPUT + ERROR_VARIABLE _PIP_ERROR + ) + + if(_PIP_EXITCODE) + message(STATUS "saxonche pip output: ${_PIP_OUTPUT}") + message(STATUS "saxonche pip error: ${_PIP_ERROR}") + message(FATAL_ERROR "Failed to install saxonche dependency (exit code: ${_PIP_EXITCODE}). Check network connectivity and Python wheel compatibility.") + endif() + endif() +else() + if(WIN32) + # Build the DD from source using direct git commands: + if( AL_DOWNLOAD_DEPENDENCIES ) + # Download the Data Dictionary from the ITER git: + set( data-dictionary_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/data-dictionary-src" ) + if( NOT EXISTS "${data-dictionary_SOURCE_DIR}/.git" ) + message( STATUS "Cloning data-dictionary from ${DD_GIT_REPOSITORY}" ) + execute_process( + COMMAND git clone "${DD_GIT_REPOSITORY}" "${data-dictionary_SOURCE_DIR}" + RESULT_VARIABLE _GIT_CLONE_RESULT + ERROR_VARIABLE _GIT_CLONE_ERROR + ) + if( _GIT_CLONE_RESULT ) + message( FATAL_ERROR "Failed to clone data-dictionary: ${_GIT_CLONE_ERROR}" ) + endif() + endif() + # Checkout the specified version + execute_process( + COMMAND git fetch origin + WORKING_DIRECTORY "${data-dictionary_SOURCE_DIR}" + RESULT_VARIABLE _GIT_FETCH_RESULT + ) + execute_process( + COMMAND git checkout "${DD_VERSION}" + WORKING_DIRECTORY "${data-dictionary_SOURCE_DIR}" + RESULT_VARIABLE _GIT_CHECKOUT_RESULT + ERROR_VARIABLE _GIT_CHECKOUT_ERROR + ) + if( _GIT_CHECKOUT_RESULT ) + message( FATAL_ERROR "Failed to checkout ${DD_VERSION}: ${_GIT_CHECKOUT_ERROR}" ) + endif() + else() + # Look in ../data-dictionary for the data dictionary + if( NOT( AL_PARENT_FOLDER ) ) + set( AL_PARENT_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}/.. ) + endif() + set( data-dictionary_SOURCE_DIR ${AL_PARENT_FOLDER}/data-dictionary ) + if( NOT IS_DIRECTORY ${data-dictionary_SOURCE_DIR} ) + message( FATAL_ERROR + "${data-dictionary_SOURCE_DIR} does not exist. Please clone the " + "data-dictionary repository or set AL_DOWNLOAD_DEPENDENCIES=ON." + ) + endif() + endif() + else() + # Build the DD from source: + include(FetchContent) + + if( AL_DOWNLOAD_DEPENDENCIES ) + # Download the Data Dictionary from the ITER git: + FetchContent_Declare( + data-dictionary + GIT_REPOSITORY ${DD_GIT_REPOSITORY} + GIT_TAG ${DD_VERSION} + ) + else() + # Look in ../data-dictionary for the data dictionary + if( NOT( AL_PARENT_FOLDER ) ) + set( AL_PARENT_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}/.. ) + endif() + set( DD_SOURCE_DIRECTORY ${AL_PARENT_FOLDER}/data-dictionary ) + if( NOT IS_DIRECTORY ${DD_SOURCE_DIRECTORY} ) + message( FATAL_ERROR + "${DD_SOURCE_DIRECTORY} does not exist. Please clone the " + "data-dictionary repository or set AL_DOWNLOAD_DEPENDENCIES=ON." + ) + endif() + + FetchContent_Declare( + data-dictionary + SOURCE_DIR ${DD_SOURCE_DIRECTORY} + ) + set( DD_SOURCE_DIRECTORY ) # unset temporary var + endif() + FetchContent_MakeAvailable( data-dictionary ) + endif() + + + # get version of the data dictionary + execute_process( + COMMAND git describe --tags --always --dirty + WORKING_DIRECTORY ${data-dictionary_SOURCE_DIR} + OUTPUT_VARIABLE DD_GIT_DESCRIBE + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _GIT_RESULT + ) + if(_GIT_RESULT) + execute_process( + COMMAND git rev-parse --short HEAD + WORKING_DIRECTORY ${data-dictionary_SOURCE_DIR} + OUTPUT_VARIABLE DD_GIT_DESCRIBE + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + endif() + + # We need the IDSDef.xml at configure time, ensure it is built + # Create Python venv and install saxonche if not already done + if(NOT EXISTS "${_VENV_PYTHON}") + execute_process( + COMMAND ${PYTHON_EXECUTABLE} -m venv dd_build_env + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + RESULT_VARIABLE _VENV_EXITCODE + OUTPUT_VARIABLE _VENV_OUTPUT + ERROR_VARIABLE _VENV_ERROR + ) + + if(_VENV_EXITCODE) + message(STATUS "venv stdout: ${_VENV_OUTPUT}") + message(STATUS "venv stderr: ${_VENV_ERROR}") + message(FATAL_ERROR "Failed to create venv (exit code: ${_VENV_EXITCODE}). Ensure Python has venv module installed: python -m venv --help") + endif() + + execute_process( + COMMAND ${_VENV_PIP} install saxonche + RESULT_VARIABLE _PIP_EXITCODE + OUTPUT_VARIABLE _PIP_OUTPUT + ERROR_VARIABLE _PIP_ERROR + ) + + if(_PIP_EXITCODE) + message(STATUS "saxonche pip output: ${_PIP_OUTPUT}") + message(STATUS "saxonche pip error: ${_PIP_ERROR}") + message(FATAL_ERROR "Failed to install saxonche dependency (exit code: ${_PIP_EXITCODE}). Check network connectivity and Python wheel compatibility.") + endif() + endif() + + execute_process( + COMMAND ${_VENV_PYTHON} "${al-common_SOURCE_DIR}/xsltproc.py" + -xsl "dd_data_dictionary.xml.xsl" + -o "IDSDef.xml" + -s "dd_data_dictionary.xml.xsd" + DD_GIT_DESCRIBE=${DD_GIT_DESCRIBE} + WORKING_DIRECTORY ${data-dictionary_SOURCE_DIR} + RESULT_VARIABLE _MAKE_DD_EXITCODE + OUTPUT_VARIABLE _MAKE_DD_OUTPUT + ERROR_VARIABLE _MAKE_DD_ERROR + ) + + if( _MAKE_DD_EXITCODE ) + message(STATUS "xsltproc.py output: ${_MAKE_DD_OUTPUT}") + message(STATUS "xsltproc.py error: ${_MAKE_DD_ERROR}") + message(FATAL_ERROR "Error while building the Data Dictionary (exit code: ${_MAKE_DD_EXITCODE}). Check paths and Saxon-HE configuration.") + endif() + + # Populate IDSDEF filename + set( IDSDEF "${data-dictionary_SOURCE_DIR}/IDSDef.xml" ) + + # Install IDSDEF (needed for some applications and for UDA backend) + get_filename_component( REAL_IDSDEF ${IDSDEF} REALPATH ) + install( FILES ${REAL_IDSDEF} DESTINATION include RENAME IDSDef.xml ) + + # Populate identifier source xmls + file( GLOB DD_IDENTIFIER_FILES "${data-dictionary_SOURCE_DIR}/*/*_identifier.xml" "${data-dictionary_SOURCE_DIR}/schemas/*/*_identifier.xml" ) +endif() + +# Find out which IDSs exist and populate IDS_NAMES +# Ensure saxonche is installed before using xsltproc.py +# Check if saxonche is available in the venv +execute_process( + COMMAND ${_VENV_PYTHON} -c "import saxonche" + RESULT_VARIABLE _SAXONCHE_CHECK + OUTPUT_QUIET + ERROR_QUIET +) + +if(_SAXONCHE_CHECK) + message(STATUS "Installing saxonche in venv...") + execute_process( + COMMAND ${_VENV_PIP} install saxonche + RESULT_VARIABLE _PIP_EXITCODE + OUTPUT_VARIABLE _PIP_OUTPUT + ERROR_VARIABLE _PIP_ERROR + ) + + if(_PIP_EXITCODE) + message(STATUS "saxonche pip output: ${_PIP_OUTPUT}") + message(STATUS "saxonche pip error: ${_PIP_ERROR}") + message(FATAL_ERROR "Failed to install saxonche dependency (exit code: ${_PIP_EXITCODE}). Check network connectivity and Python wheel compatibility.") + endif() +endif() + +set( list_idss_file ${al-common_SOURCE_DIR}/list_idss.xsl ) +set( CMAKE_CONFIGURE_DEPENDS ${CMAKE_CONFIGURE_DEPENDS};${list_idss_file};${IDSDEF} ) +set( ids_names_tmpfile "${CMAKE_CURRENT_BINARY_DIR}/ids_names_tmp.txt" ) +execute_process( COMMAND + ${_VENV_PYTHON} "${al-common_SOURCE_DIR}/xsltproc.py" + -xsl ${list_idss_file} + -s ${IDSDEF} + -o ${ids_names_tmpfile} + RESULT_VARIABLE _XSLT_RESULT + ERROR_VARIABLE _XSLT_ERROR +) +if(_XSLT_RESULT) + message(FATAL_ERROR "Failed to extract IDS names: ${_XSLT_ERROR}") +endif() +if(EXISTS ${ids_names_tmpfile}) + file(READ ${ids_names_tmpfile} IDS_NAMES) + string(STRIP "${IDS_NAMES}" IDS_NAMES) + file(REMOVE ${ids_names_tmpfile}) +else() + message(FATAL_ERROR "IDS names output file not created") +endif() +set( list_idss_file ) # unset temporary var + +# DD version +set( dd_version_file ${al-common_SOURCE_DIR}/dd_version.xsl ) +set( dd_version_tmpfile "${CMAKE_CURRENT_BINARY_DIR}/dd_version_tmp.txt" ) +execute_process( COMMAND + ${_VENV_PYTHON} "${al-common_SOURCE_DIR}/xsltproc.py" + -xsl ${dd_version_file} + -s ${IDSDEF} + -o ${dd_version_tmpfile} + RESULT_VARIABLE _XSLT_RESULT + ERROR_VARIABLE _XSLT_ERROR +) +if(_XSLT_RESULT) + message(FATAL_ERROR "Failed to extract DD version: ${_XSLT_ERROR}") +endif() +if(EXISTS ${dd_version_tmpfile}) + file(READ ${dd_version_tmpfile} DD_VERSION) + string(STRIP "${DD_VERSION}" DD_VERSION) + file(REMOVE ${dd_version_tmpfile}) +else() + message(FATAL_ERROR "DD version output file not created") +endif() +string( REGEX REPLACE "[+-]" "_" DD_SAFE_VERSION "${DD_VERSION}" ) +set( dd_version_file ) # unset temporary var diff --git a/cmake/ALBuildDocumentation.cmake b/cmake/ALBuildDocumentation.cmake new file mode 100644 index 0000000..0c716fa --- /dev/null +++ b/cmake/ALBuildDocumentation.cmake @@ -0,0 +1,27 @@ +# CMake config for building Sphinx docs +find_package( Python3 REQUIRED ) + +file( GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/doc.sh" + CONTENT "#!/bin/bash +# Link al-common/doc_common folder +ln -sf '${al-common_SOURCE_DIR}/doc_common' '${CMAKE_CURRENT_SOURCE_DIR}/doc/' +# Link plugins folder +ln -sfT '${al-plugins_SOURCE_DIR}/' '${CMAKE_CURRENT_SOURCE_DIR}/doc/plugins' + +# Set up python venv +${Python3_EXECUTABLE} -m venv '${CMAKE_CURRENT_BINARY_DIR}/doc_venv' +source '${CMAKE_CURRENT_BINARY_DIR}/doc_venv/bin/activate' +pip install -r '${CMAKE_CURRENT_SOURCE_DIR}/doc/doc_common/requirements.txt' + +# Instruct sphinx to treat all warnings as errors +export SPHINXOPTS='-W --keep-going' +# Build HTML documentation +make -C '${CMAKE_CURRENT_SOURCE_DIR}/doc' clean html +# Add a version file: +echo ${FULL_VERSION} > ${CMAKE_CURRENT_SOURCE_DIR}/doc/_build/html/version.txt +" +) + +add_custom_target( "${PROJECT_NAME}-docs" ALL + COMMAND bash "${CMAKE_CURRENT_BINARY_DIR}/doc.sh" +) diff --git a/cmake/ALCommonConfig.cmake b/cmake/ALCommonConfig.cmake new file mode 100644 index 0000000..1c97c50 --- /dev/null +++ b/cmake/ALCommonConfig.cmake @@ -0,0 +1,60 @@ +# Shared options + +# Note: default options are also listed in the docs: doc_common/building_installing.rst +# When changing default values, the documentation should be updated to reflect that. + +# Note: AL_DOWNLOAD_DEPENDENCIES is also shared, but needs to be set before this +# repository is available, so not listing it here. + +option( BUILD_SHARED_LIBS "Build shared libraries" ON ) +option( AL_EXAMPLES "Build and test examples" ON ) +option( AL_TESTS "Build tests and enable test framework" ON ) +option( AL_PLUGINS "Enable plugin framework for tests and examples" OFF ) +option( AL_HLI_DOCS "Build the Sphinx-based High Level Interface documentation" OFF ) +option( AL_DOCS_ONLY "Don't build anything, except the Sphinx-based High Level Interface documentation" OFF ) + +# Saxon XSLT processor has been replaced with Python saxonche +# No longer need to find SaxonHE - saxonche is installed automatically via pip in virtual environments + +if( NOT AL_DOWNLOAD_DEPENDENCIES ) + # Check if local paths exist (indicates development mode) + if( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/ALLocalPaths.cmake" ) + set( _DEV OFF ) + else() + set( _DEV ON ) + endif() + option( AL_DEVELOPMENT_LAYOUT "Look into parent directories for dependencies" ${_DEV} ) +endif() + +# Enable CTest? +if( AL_EXAMPLES OR AL_TESTS ) + include( CTest ) +endif() + +# Allow configuration of repositories and branches for dependent packages +################################################################################ + +if( AL_DOWNLOAD_DEPENDENCIES ) + if( ${AL_PLUGINS} ) + # AL plugins + ############################################################################## + set( + AL_PLUGINS_GIT_REPOSITORY "ssh://git@git.iter.org/imas/al-plugins.git" + CACHE STRING "Git repository of al-plugins" + ) + set( + AL_PLUGINS_VERSION "main" + CACHE STRING "al-plugins version (tag or branch name) to use for this build" + ) + endif() + # Data dictionary + ############################################################################## + set( + DD_GIT_REPOSITORY "https://github.com/iterorganization/IMAS-data-Dictionary.git" + CACHE STRING "Git repository of the Data Dictionary" + ) + set( + DD_VERSION "main" + CACHE STRING "Data dictionary version (tag or branch name) to use for this build" + ) +endif() diff --git a/cmake/ALCore.cmake b/cmake/ALCore.cmake new file mode 100644 index 0000000..21c6bc7 --- /dev/null +++ b/cmake/ALCore.cmake @@ -0,0 +1,189 @@ +# AL core and plugins + +if( NOT AL_DOWNLOAD_DEPENDENCIES AND NOT AL_DEVELOPMENT_LAYOUT ) + # The Access Layer core should be available as a module, use PkgConfig to create a + # target: + find_package( PkgConfig ) + pkg_check_modules( al REQUIRED IMPORTED_TARGET al-core ) + add_library( al ALIAS PkgConfig::al ) + set( AL_CORE_VERSION ${al_VERSION} ) + + # Stop processing + return() +endif() +if(WIN32) + if( AL_DOWNLOAD_DEPENDENCIES ) + # Download the AL core from the ITER git using direct git commands: + set( al-core_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/al-core-src" ) + if( NOT EXISTS "${al-core_SOURCE_DIR}/.git" ) + message( STATUS "Cloning al-core from ${AL_CORE_GIT_REPOSITORY}" ) + execute_process( + COMMAND git clone "${AL_CORE_GIT_REPOSITORY}" "${al-core_SOURCE_DIR}" + RESULT_VARIABLE _GIT_CLONE_RESULT + ERROR_VARIABLE _GIT_CLONE_ERROR + ) + if( _GIT_CLONE_RESULT ) + message( FATAL_ERROR "Failed to clone al-core: ${_GIT_CLONE_ERROR}" ) + endif() + endif() + # Checkout the specified version + execute_process( + COMMAND git fetch origin + WORKING_DIRECTORY "${al-core_SOURCE_DIR}" + RESULT_VARIABLE _GIT_FETCH_RESULT + ) + execute_process( + COMMAND git checkout "${AL_CORE_VERSION}" + WORKING_DIRECTORY "${al-core_SOURCE_DIR}" + RESULT_VARIABLE _GIT_CHECKOUT_RESULT + ERROR_VARIABLE _GIT_CHECKOUT_ERROR + ) + if( _GIT_CHECKOUT_RESULT ) + message( FATAL_ERROR "Failed to checkout ${AL_CORE_VERSION}: ${_GIT_CHECKOUT_ERROR}" ) + endif() + else() + # Look in ../al-core + set( al-core_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../al-core ) + if( NOT IS_DIRECTORY ${al-core_SOURCE_DIR} ) + # Repository used to be called "al-lowlevel", check this directory as well for + # backwards compatibility: + set( al-core_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../al-lowlevel ) + if( NOT IS_DIRECTORY ${al-core_SOURCE_DIR} ) + message( FATAL_ERROR + "${al-core_SOURCE_DIR} does not exist. Please clone the " + "al-core repository or set AL_DOWNLOAD_DEPENDENCIES=ON." + ) + endif() + endif() + endif() +else() + include(FetchContent) + + if( AL_DOWNLOAD_DEPENDENCIES ) + # Download the AL core from the ITER git: + FetchContent_Declare( + al-core + GIT_REPOSITORY ${AL_CORE_GIT_REPOSITORY} + GIT_TAG ${AL_CORE_VERSION} + ) + else() + # Look in ../al-core + set( AL_SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../al-core ) + if( NOT IS_DIRECTORY ${AL_SOURCE_DIRECTORY} ) + # Repository used to be called "al-lowlevel", check this directory as well for + # backwards compatibility: + set( AL_SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../al-lowlevel ) + if( NOT IS_DIRECTORY ${AL_SOURCE_DIRECTORY} ) + message( FATAL_ERROR + "${AL_SOURCE_DIRECTORY} does not exist. Please clone the " + "al-core repository or set AL_DOWNLOAD_DEPENDENCIES=ON." + ) + endif() + endif() + + FetchContent_Declare( + al-core + SOURCE_DIR ${AL_SOURCE_DIRECTORY} + ) + set( AL_SOURCE_DIRECTORY ) # unset temporary var + endif() +endif() + +# Don't load the AL core when only building documentation +if( NOT AL_DOCS_ONLY ) + # Ensure vcpkg packages are found in the subdirectory + if(WIN32) + # On Windows, ensure vcpkg packages are available to the subdirectory + if(DEFINED VCPKG_INSTALLED_DIR AND DEFINED VCPKG_TARGET_TRIPLET) + # Add vcpkg installed directory to CMAKE_PREFIX_PATH for the subdirectory + set(CMAKE_PREFIX_PATH "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET};${CMAKE_PREFIX_PATH}") + # Pass vcpkg variables to subdirectory by setting them in parent scope + set(VCPKG_INSTALLED_DIR "${VCPKG_INSTALLED_DIR}" CACHE STRING "vcpkg installed dir" FORCE) + set(VCPKG_TARGET_TRIPLET "${VCPKG_TARGET_TRIPLET}" CACHE STRING "vcpkg triplet" FORCE) + message(STATUS "ALCore: Passing vcpkg paths to al-core subdirectory") + message(STATUS " VCPKG_INSTALLED_DIR: ${VCPKG_INSTALLED_DIR}") + message(STATUS " VCPKG_TARGET_TRIPLET: ${VCPKG_TARGET_TRIPLET}") + message(STATUS " CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}") + endif() + add_subdirectory( ${al-core_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/_deps/al-core-build ) + else() + FetchContent_MakeAvailable( al-core ) + endif() + get_target_property( AL_CORE_VERSION al VERSION ) +endif() + + +if( ${AL_PLUGINS} ) + if(WIN32) + if( ${AL_DOWNLOAD_DEPENDENCIES} ) + # Download the AL plugins from the ITER git using direct git commands: + set( al-plugins_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/al-plugins-src" ) + if( NOT EXISTS "${al-plugins_SOURCE_DIR}/.git" ) + message( STATUS "Cloning al-plugins from ${AL_PLUGINS_GIT_REPOSITORY}" ) + execute_process( + COMMAND git clone "${AL_PLUGINS_GIT_REPOSITORY}" "${al-plugins_SOURCE_DIR}" + RESULT_VARIABLE _GIT_CLONE_RESULT + ERROR_VARIABLE _GIT_CLONE_ERROR + ) + if( _GIT_CLONE_RESULT ) + message( FATAL_ERROR "Failed to clone al-plugins: ${_GIT_CLONE_ERROR}" ) + endif() + endif() + # Checkout the specified version + execute_process( + COMMAND git fetch origin + WORKING_DIRECTORY "${al-plugins_SOURCE_DIR}" + RESULT_VARIABLE _GIT_FETCH_RESULT + ) + execute_process( + COMMAND git checkout "${AL_PLUGINS_VERSION}" + WORKING_DIRECTORY "${al-plugins_SOURCE_DIR}" + RESULT_VARIABLE _GIT_CHECKOUT_RESULT + ERROR_VARIABLE _GIT_CHECKOUT_ERROR + ) + if( _GIT_CHECKOUT_RESULT ) + message( FATAL_ERROR "Failed to checkout ${AL_PLUGINS_VERSION}: ${_GIT_CHECKOUT_ERROR}" ) + endif() + else() + # Look in ../plugins + set( al-plugins_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../al-plugins ) + if( NOT IS_DIRECTORY ${al-plugins_SOURCE_DIR} ) + message( FATAL_ERROR + "${al-plugins_SOURCE_DIR} does not exist. Please clone the " + "al-plugins repository or set AL_DOWNLOAD_DEPENDENCIES=ON." + ) + endif() + endif() + + else() + if( ${AL_DOWNLOAD_DEPENDENCIES} ) + # Download the AL plugins from the ITER git: + FetchContent_Declare( + al-plugins + GIT_REPOSITORY ${AL_PLUGINS_GIT_REPOSITORY} + GIT_TAG ${AL_PLUGINS_VERSION} + ) + else() + # Look in ../plugins + set( PLUGINS_SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../al-plugins ) + if( NOT IS_DIRECTORY ${PLUGINS_SOURCE_DIRECTORY} ) + message( FATAL_ERROR + "${PLUGINS_SOURCE_DIRECTORY} does not exist. Please clone the " + "al-plugins repository or set AL_DOWNLOAD_DEPENDENCIES=ON." + ) + endif() + + FetchContent_Declare( + al-plugins + SOURCE_DIR ${PLUGINS_SOURCE_DIRECTORY} + ) + set( PLUGINS_SOURCE_DIRECTORY ) # unset temporary var + endif() + FetchContent_MakeAvailable( al-plugins ) + endif() +endif() + +if( AL_HLI_DOCS ) + include( ALBuildDocumentation ) +endif() + diff --git a/cmake/ALDetermineVersion.cmake b/cmake/ALDetermineVersion.cmake new file mode 100644 index 0000000..5c4399e --- /dev/null +++ b/cmake/ALDetermineVersion.cmake @@ -0,0 +1,53 @@ +# Determine the version of the current AL component, based on git describe + +if( NOT GIT_ARCHIVE_DESCRIBE ) + message( FATAL_ERROR "GIT_ARCHIVE_DESCRIBE should be set before including ALDetermineVersion" ) +endif() + +if( NOT GIT_ARCHIVE_DESCRIBE MATCHES "^.Format:%.describe" ) + # We are part of an exported tarball and git-archive set the describe content: + set( _GIT_DESCRIBE_ERROR_CODE 0 ) + set( _GIT_DESCRIBE_OUTPUT "${GIT_ARCHIVE_DESCRIBE}" ) +else() + # Ask git for a describe: + find_package( Git ) + if( GIT_EXECUTABLE ) + # Generate a git-describe version string from Git repository tags + execute_process( + COMMAND ${GIT_EXECUTABLE} describe --tags --dirty + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE _GIT_DESCRIBE_OUTPUT + RESULT_VARIABLE _GIT_DESCRIBE_ERROR_CODE + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + endif() +endif() + +# Process git describe output: +if( _GIT_DESCRIBE_OUTPUT AND NOT _GIT_DESCRIBE_ERROR_CODE ) + # Git describe should return the version (MAJOR.MINOR.PATCH) and potentially + # a suffix "--g[-dirty]" + # Use a regex to extract all parts: + if( _GIT_DESCRIBE_OUTPUT MATCHES "([0-9]+)[.]([0-9]+)[.]*([0-9]+)(.*)" ) + set( VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}" ) + if( CMAKE_MATCH_4 MATCHES "-([0-9]+)-(.*)" ) + # Use ncommits as fourth version component for the CMAKE project version + set( VERSION "${VERSION}.${CMAKE_MATCH_1}" ) + endif() + else() + message( FATAL_ERROR "Unexpected output of git describe: '${_GIT_DESCRIBE_OUTPUT}'") + endif() + + # Generate a version string that conforms to the Python standards + # e.g. 5.1.0-3-g7c620eb5-dirty becomes 5.1.0+3-g7c620eb5-dirty + string( REGEX REPLACE "-(.*)$" "+\\1" FULL_VERSION ${_GIT_DESCRIBE_OUTPUT} ) + message( VERBOSE "Determined project version: ${VERSION}" ) +endif() + +# Fallback: git not found, or git describe fails +# Set version to 0.0.0 and report a warning +if( NOT DEFINED VERSION ) + set( VERSION "0.0.0" ) + set( FULL_VERSION "0.0.0+unknown" ) + message( WARNING "Failed to determine VERSION from git tags. Falling back to default version '${VERSION}'" ) +endif() diff --git a/cmake/ALExampleUtilities.cmake b/cmake/ALExampleUtilities.cmake new file mode 100644 index 0000000..1631afd --- /dev/null +++ b/cmake/ALExampleUtilities.cmake @@ -0,0 +1,53 @@ +# CMake file providing common logic to test AL examples + +set( EXAMPLE_ENVIRONMENT_WITHOUT_PLUGINS + "IMAS_AL_ENABLE_PLUGINS=FALSE" +) + +if( AL_PLUGINS ) + get_target_property( PLUGIN_DIR al-plugins BINARY_DIR ) + set( EXAMPLE_ENVIRONMENT_WITH_PLUGINS + ${TEST_ENVIRONMENT} + "IMAS_AL_ENABLE_PLUGINS=TRUE" + "IMAS_AL_PLUGINS=${PLUGIN_DIR}" + ) +endif() + +function( set_al_example_properties TEST DISABLED USE_PLUGINS EXTRA_ENVIRONMENT ) + # Set common properties + set_tests_properties( ${TEST} PROPERTIES + # Case insensitive fault|error[^_]|exception|severe|abort|segmentation|fault|dump|logic_error|failed + FAIL_REGULAR_EXPRESSION "[Ff][Aa][Uu][Ll][Tt]|[Ee][Rr][Rr][Oo][Rr][^_]|[Ee][Xx][Cc][Ee][Pp][Tt][Ii][Oo][Nn]|[Ss][Ee][Vv][Ee][Rr][Ee]|[Aa][Bb][Oo][Rr][Tt]|[Ss][Ee][Gg][Mm][Ee][Nn][Tt][Aa][Tt][Ii][Oo][Nn]|[Ff][Aa][Uu][Ll][Tt]|[Dd][Uu][Mm][Pp]|[Ll][Oo][Gg][Ii][Cc]_[Ee][Rr][Rr][Oo][Rr]|[Ff][Aa][Ii][Ll][Ee][Dd]" + DISABLED ${DISABLED} + ) + + # Set environment variables + if( USE_PLUGINS ) + set( P_ENV ${EXAMPLE_ENVIRONMENT_WITH_PLUGINS} ) + else() + set( P_ENV ${EXAMPLE_ENVIRONMENT_WITHOUT_PLUGINS} ) + endif() + set_tests_properties( ${TEST} PROPERTIES ENVIRONMENT "${P_ENV};${EXTRA_ENVIRONMENT}" ) + + # Set fixtures: put/put_slice must run before get/get_slice + string( TOLOWER ${TEST} TEST_LOWER ) + string( REGEX REPLACE "put|get" "" FIXTURE_NAME ${TEST_LOWER} ) + if( TEST_LOWER MATCHES "put" ) + set_tests_properties( ${TEST} PROPERTIES FIXTURES_SETUP ${FIXTURE_NAME} ) + elseif( TEST_LOWER MATCHES "get" ) + set_tests_properties( ${TEST} PROPERTIES FIXTURES_REQUIRED ${FIXTURE_NAME} ) + endif() +endfunction() + + +function( error_on_missing_tests SOURCE_EXTENSION TESTS ) + file( GLOB _SRCS "*.${SOURCE_EXTENSION}" ) + foreach( _SRC IN LISTS _SRCS ) + string( REGEX REPLACE "^.*[/\\]|[.]${SOURCE_EXTENSION}$" "" _SRC_STEM ${_SRC} ) + list( FIND TESTS ${_SRC_STEM} FOUND ) + if( FOUND EQUAL -1 ) + message( SEND_ERROR "Source file ${_SRC} found, but no corresponding test exists" ) + endif() + endforeach() +endfunction() + diff --git a/cmake/ALLocalPaths.cmake b/cmake/ALLocalPaths.cmake new file mode 100644 index 0000000..b33f5ba --- /dev/null +++ b/cmake/ALLocalPaths.cmake @@ -0,0 +1,14 @@ +# Local paths for IMAS-Matlab +# This file defines local paths to eliminate AL_COMMON_PATH dependency + +# Directory containing CMake modules +set(AL_LOCAL_CMAKE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/cmake) + +# Directory containing documentation common files +set(AL_LOCAL_DOC_COMMON_DIR ${CMAKE_CURRENT_SOURCE_DIR}/doc/doc_common) + +# XSLT processor script +set(AL_LOCAL_XSLTPROC_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/cmake/xsltproc.py) + +# Add cmake modules to CMake module path +list(APPEND CMAKE_MODULE_PATH ${AL_LOCAL_CMAKE_DIR}) diff --git a/cmake/ALSetCompilerFlags.cmake b/cmake/ALSetCompilerFlags.cmake new file mode 100644 index 0000000..b821ffc --- /dev/null +++ b/cmake/ALSetCompilerFlags.cmake @@ -0,0 +1,116 @@ +# Compiler flags for building the Access Layer + +include_guard( DIRECTORY ) + +################################################################################ +# Compile definitions for Fortran interface + +if( CMAKE_SYSTEM_NAME STREQUAL Linux ) + add_compile_definitions( $<$:_Linux> ) +elseif( CMAKE_SYSTEM_NAME STREQUAL Darwin ) + add_compile_definitions( $<$:_MacOS> ) +elseif( CMAKE_SYSTEM_NAME STREQUAL Windows ) + add_compile_definitions( $<$:_Windows> ) +else() + message( WARNING "Unknown CMAKE_SYSTEM_NAME '${CMAKE_SYSTEM_NAME}', continuing..." ) +endif() + + +################################################################################ +# General options + +set( CMAKE_POSITION_INDEPENDENT_CODE ON ) + +# Set default build type to RelWithDebInfo (optimize build, keep debugging symbols) +if( NOT CMAKE_BUILD_TYPE ) + set( CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING + "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." + FORCE + ) +endif() + +################################################################################ +# C++ +if(NOT DEFINED CMAKE_CXX_STANDARD) + set( CMAKE_CXX_STANDARD 17 ) +endif() +if( CMAKE_CXX_COMPILER_ID STREQUAL "Intel" OR CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM" ) + # icpc/icpx options + string( APPEND CMAKE_CXX_FLAGS + # " -Wall" + ) +elseif( CMAKE_CXX_COMPILER_ID STREQUAL "GNU" ) + # g++ options + string( APPEND CMAKE_CXX_FLAGS + # " -Wall -Wextra" + ) +elseif( CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" ) + # Visual Studio C++ options + string( APPEND CMAKE_CXX_FLAGS + # " -Wall" + ) +elseif( CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" ) + # Apple Clang C++ options + string( APPEND CMAKE_CXX_FLAGS + # " -Wall" + ) +else() + message( WARNING "Unsupported C++ compiler: ${CMAKE_CXX_COMPILER_ID}" ) +endif() + + +################################################################################ +# Fortran + +get_property(languages GLOBAL PROPERTY ENABLED_LANGUAGES) +if( "Fortran" IN_LIST languages ) + + set( CMAKE_Fortran_FORMAT FREE ) + set( CMAKE_Fortran_PREPROCESS ON ) + set( CMAKE_Fortran_MODULE_DIRECTORY include ) + + if( CMAKE_Fortran_COMPILER_ID STREQUAL "Intel" ) + # ifort options + string( APPEND CMAKE_Fortran_FLAGS + " -r8 -assume no2underscore" + ) + # string( APPEND CMAKE_Fortran_FLAGS " -warn all" ) + elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" ) + # gfortran options + string( APPEND CMAKE_Fortran_FLAGS + " -fdefault-real-8 -fdefault-double-8 -fno-second-underscore -ffree-line-length-none" + ) + # string( APPEND CMAKE_Fortran_FLAGS " -Wall -Wextra" ) + elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "NAG" ) + # nagfort options + string( APPEND CMAKE_Fortran_FLAGS + " -maxcontin=4000 -w=unused -w=x95 -kind=byte -r8" + ) + # Set CONFIG options for NAG, CMake's definition keep them all empty + string( APPEND CMAKE_Fortran_FLAGS_DEBUG " -g" ) + string( APPEND CMAKE_Fortran_FLAGS_RELWITHDEBINFO " -O2 -g" ) + string( APPEND CMAKE_Fortran_FLAGS_RELEASE " -O3" ) + elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "PGI" ) + # PGI / nvfortran options + string( APPEND CMAKE_Fortran_FLAGS + " -r8 -Mnosecond_underscore" + ) + else() + message( WARNING "Unsupported Fortran compiler: ${CMAKE_Fortran_COMPILER_ID}" ) + endif() + +endif() + +################################################################################ +# Windows support + +# TODO: salvaged from old CMakeLists +# Need to figure out if this is needed and functional before uncommenting + +# add_definitions( -D_CRT_SECURE_NO_WARNINGS ) +# add_compile_options( /bigobj ) + +# set( CMAKE_FIND_LIBRARY_SUFFIXES ".dll.lib" ".lib" ) +# set( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SAFESEH:NO" ) +# set( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO /SUBSYSTEM:CONSOLE" ) +# set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++14 /Zc:__cplusplus" ) diff --git a/cmake/FindMDSplus.cmake b/cmake/FindMDSplus.cmake new file mode 100644 index 0000000..0c06f29 --- /dev/null +++ b/cmake/FindMDSplus.cmake @@ -0,0 +1,91 @@ +# - Find MDSplus +# Find the MDSplus includes, libraries and runtime libraries +# +# To provide the module with a hint about where to find your MDSPLUS +# installation, you can set the environment variables MDSPLUS_DIR. The +# Find module will then look in this path when searching for MDSPLUS +# paths and libraries. +# +# MDSPLUS_INCLUDES - where to find mdslib.h, etc +# MDSPLUS_LIBRARIES - Link these libraries when using MDSplus +# MDSPLUS_RUNTIME_LIB - Runtime libraries for using MDSplus (only for Windows) +# MDSPLUS_FOUND - True if MDSplus found +# +# Normal usage would be: +# find_package (MDSplus REQUIRED) +# target_link_libraries (uses_mdsplus ${MDSPLUS_LIBRARIES}) + +if( MDSPLUS_INCLUDES AND MDSPLUS_LIBRARIES AND MDSPLUS_RUNTIME_LIB ) + # Already in cache, be silent + set( MDSplus_FIND_QUIETLY TRUE ) +endif( MDSPLUS_INCLUDES AND MDSPLUS_LIBRARIES AND MDSPLUS_RUNTIME_LIB ) + +find_path( MDSPLUS_INCLUDES mdslib.h + HINTS + ${MDSPLUS_DIR} + ENV MDSPLUS_DIR + PATHS + /usr/local/mdsplus + PATH_SUFFIXES include ) + +set( MDS_LIBS + MdsLib + MdsShr + MdsIpShr + TreeShr + TdiShr + XTreeShr +) + +if( WIN32 ) + set( MDS_LIBS ${MDS_LIBS} MdsObjectsCppShr-VS ) +endif() +if( MINGW OR NOT WIN32 ) + set( MDS_LIBS ${MDS_LIBS} MdsObjectsCppShr ) +endif() + +set( MDSPLUS_LIBRARIES "" ) + +foreach( MDS_LIB ${MDS_LIBS} ) + + find_library( ${MDS_LIB}-FIND NAMES "${MDS_LIB}" + HINTS + ${MDSPLUS_DIR} + ENV MDSPLUS_DIR + PATHS + /usr/local/mdsplus + PATH_SUFFIXES lib lib64 ) + + if( ${MDS_LIB}-FIND ) + list( APPEND MDSPLUS_LIBRARIES "${${MDS_LIB}-FIND}" ) + else() + if( MDSplus_FIND_REQUIRED ) + message( FATAL_ERROR "Failed to find MDS library: ${MDS_LIB}" ) + endif() + endif() + +endforeach() + +# Resolve full path of runtime DLL +set( MDSPLUS_RUNTIME_LIB "" ) +if( WIN32 ) + include( GetPrerequisites ) + + if( ${MDSPLUS_DIR} ) + set( MDSPLUS_PATH ${MDSPLUS_PATH} ${MDSPLUS_DIR}/lib ${MDSPLUS_DIR}/bin ) + endif() + if( DEFINED ENV{MDSPLUS_DIR} ) + set( MDSPLUS_PATH ${MDSPLUS_PATH} $ENV{MDSPLUS_DIR}/lib $ENV{MDSPLUS_DIR}/bin ) + endif() + + foreach( MDS_LIB ${MDS_LIBS} ) + gp_resolve_item( "$ENV{PATH}" "${MDS_LIB}.dll" "${MDSPLUS_PATH}" "" MDS_DLL ) + list( APPEND MDSPLUS_RUNTIME_LIB ${MDS_DLL} ) + endforeach() +endif() + + +include( FindPackageHandleStandardArgs ) +find_package_handle_standard_args( MDSplus DEFAULT_MSG MDSPLUS_LIBRARIES MDSPLUS_INCLUDES ) + +mark_as_advanced( MDSPLUS_LIBRARIES MDSPLUS_INCLUDES MDSPLUS_RUNTIME_LIB ) diff --git a/cmake/FindPThreads4W.cmake b/cmake/FindPThreads4W.cmake new file mode 100644 index 0000000..4de1783 --- /dev/null +++ b/cmake/FindPThreads4W.cmake @@ -0,0 +1,70 @@ +# FindPThreads4W.cmake - Minimal version +# Find the PThreads-Win32 library + +message(STATUS "FindPThreads4W: CMAKE_PREFIX_PATH = ${CMAKE_PREFIX_PATH}") +message(STATUS "FindPThreads4W: VCPKG_INSTALLED_DIR = ${VCPKG_INSTALLED_DIR}") +message(STATUS "FindPThreads4W: VCPKG_TARGET_TRIPLET = ${VCPKG_TARGET_TRIPLET}") +message(STATUS "FindPThreads4W: CMAKE_CURRENT_SOURCE_DIR = ${CMAKE_CURRENT_SOURCE_DIR}") +message(STATUS "FindPThreads4W: CMAKE_CURRENT_BINARY_DIR = ${CMAKE_CURRENT_BINARY_DIR}") + +# Try to determine vcpkg installed directory from build directory structure +set(_POSSIBLE_VCPKG_PATHS "") +if(CMAKE_CURRENT_BINARY_DIR MATCHES "(.*/build)/") + set(_BUILD_DIR "${CMAKE_MATCH_1}") + list(APPEND _POSSIBLE_VCPKG_PATHS + "${_BUILD_DIR}/vcpkg_installed/x64-windows" + "${_BUILD_DIR}/vcpkg_installed/x86-windows" + ) + message(STATUS "FindPThreads4W: Detected build dir: ${_BUILD_DIR}") +endif() + +# Find include directory and library +find_path(PThreads4W_INCLUDE_DIR + NAMES pthread.h + HINTS + ${PThreads4W_DIR} + ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET} + ${CMAKE_PREFIX_PATH} + ${_POSSIBLE_VCPKG_PATHS} + PATH_SUFFIXES include +) + +find_library(PThreads4W_LIBRARY + NAMES pthreadVC3 pthreadVCE3 pthreadVSE3 pthread pthreads + HINTS + ${PThreads4W_DIR} + ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET} + ${CMAKE_PREFIX_PATH} + ${_POSSIBLE_VCPKG_PATHS} + PATH_SUFFIXES lib +) + +message(STATUS "FindPThreads4W: PThreads4W_INCLUDE_DIR = ${PThreads4W_INCLUDE_DIR}") +message(STATUS "FindPThreads4W: PThreads4W_LIBRARY = ${PThreads4W_LIBRARY}") + +# Use standard CMake handling +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(PThreads4W + REQUIRED_VARS PThreads4W_INCLUDE_DIR PThreads4W_LIBRARY +) + +if(PThreads4W_FOUND) + set(PThreads4W_INCLUDE_DIRS ${PThreads4W_INCLUDE_DIR}) + set(PThreads4W_LIBRARIES ${PThreads4W_LIBRARY}) + + # Create imported target + if(NOT TARGET PThreads4W::PThreads4W) + add_library(PThreads4W::PThreads4W UNKNOWN IMPORTED) + set_target_properties(PThreads4W::PThreads4W PROPERTIES + IMPORTED_LOCATION "${PThreads4W_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${PThreads4W_INCLUDE_DIR}" + ) + if(WIN32) + set_target_properties(PThreads4W::PThreads4W PROPERTIES + INTERFACE_LINK_LIBRARIES "ws2_32" + ) + endif(WIN32) + endif(NOT TARGET PThreads4W::PThreads4W) +endif(PThreads4W_FOUND) + +mark_as_advanced(PThreads4W_INCLUDE_DIR PThreads4W_LIBRARY) diff --git a/cmake/xsltproc.py b/cmake/xsltproc.py new file mode 100644 index 0000000..009b7ad --- /dev/null +++ b/cmake/xsltproc.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python +# simple net.sf.saxon.Transform cli replacement via saxonche Python bindings +# example invokation: +# ./xsltproc.py -xsl IDSDef2MDSpreTree.xsl -s IDSDef.xml -o output.xml DD_GIT_DESCRIBE=1 AL_GIT_DESCRIBE=1 + +import argparse +import logging + +import saxonche + + +def parse_arguments() -> tuple: + """Parse arguments, similar to net.sf.saxon.Transform...""" + + parser = argparse.ArgumentParser( + prog="xsltproc.py", + description="Imitates Saxon-HE's net.sf.saxon.Transform.", + epilog="Additional arguments in format key=value will be set as xml parameters", + ) + parser.add_argument( + "-xsl", + "--stylesheet_file", + type=str, + required=True, + help="XSL style sheet file", + ) + parser.add_argument( + "-s", + "--source_file", + type=str, + required=True, + help="source XML document", + ) + parser.add_argument( + "-o", + "--output_file", + type=str, + required=True, + help="transformed output XML document", + ) + + args, other_args = parser.parse_known_args() + # Convert list of strings "key=value" into dict(key=value, ...) + other_kwargs = {k: v for k, v in map(lambda x: x.split("="), other_args)} + return (args, other_kwargs) + + +def saxon_xsltproc( + source_file: str, stylesheet_file: str, output_file: str, **kwargs +) -> None: + with saxonche.PySaxonProcessor(license=False) as proc: + xsltproc = proc.new_xslt30_processor() + for key, value in kwargs.items(): + string_value = proc.make_string_value(value) + xsltproc.set_parameter(key, string_value) + xsltproc.transform_to_file( + source_file=source_file, + stylesheet_file=stylesheet_file, + output_file=output_file, + ) + + +if __name__ == "__main__": + logging.basicConfig(level=logging.INFO) + args, other_kwargs = parse_arguments() + saxon_xsltproc( + source_file=args.source_file, + stylesheet_file=args.stylesheet_file, + output_file=args.output_file, + **other_kwargs, + ) diff --git a/doc/.gitignore b/doc/.gitignore index a56608d..1c84c65 100644 --- a/doc/.gitignore +++ b/doc/.gitignore @@ -1,4 +1,2 @@ _build -# Symlinks to other AL projects (created by CMake): -doc_common plugins diff --git a/doc/doc_common/building_installing.rst b/doc/doc_common/building_installing.rst new file mode 100644 index 0000000..a5571fb --- /dev/null +++ b/doc/doc_common/building_installing.rst @@ -0,0 +1,412 @@ +Building and installing the Access Layer +======================================== + +This page describes how to build and install the Access Layer. + +Documentation for developers wishing to contribute to the Access Layer can be found in +the :ref:`Access Layer development guide`. Please refer to that guide if you wish to set +up a development environment. + +.. note:: + + For Windows-specific installation instructions, please refer to the + :doc:`Windows Installation Guide `. + + +.. _`build prerequisites`: + +Prerequisites +------------- + +To build the Access Layer you need: + +- Git +- A C++11 compiler (tested with GCC and Intel compilers) +- CMake (3.16 or newer) +- Saxon-HE XSLT processor +- Boost C++ libraries (1.66 or newer) +- PkgConfig + +The following dependencies are only required for some of the components: + +- Backends + + - **HDF5 backend**: HDF5 C/C++ libraries (1.8.12 or newer) + - **MDSplus backend**: MDSplus libraries (7.84.8 or newer) + - **UDA backend**: `UDA `__ libraries + (2.7.5 or newer) [#uda_install]_ + +.. [#uda_install] When installing UDA, make sure you have + `Cap'n'Proto `__ installed in your system + and add its support by adding the CMake switch `-DENABLE_CAPNP=ON` when configuring UDA. + + +- High Level Interfaces + + - All HLIs require the ``xsltproc`` program + - **C++ High Level Interface**: Blitz++ libraries + - **Fortran High Level Interface**: A fortran compiler, ideally with F2008 support + (tested with ``gfortran``, ``ifort`` and ``nagfor``) + - **Java High Level Interface**: Java Development Kit and Java Native Interface + (tested with Java versions 11, 17 and 21) + - **MATLAB High Level Interface**: A working MATLAB installation (tested with + version 2020b) + - **Python High Level Interface**: Python (version 3.8 or newer) with the pip + packages ``build``, ``cython`` and ``numpy`` installed. + + + + +Standard environments: + +.. md-tab-set:: + + .. md-tab-item:: SDCC ``intel-2020b`` + + The following modules provide all the requirements when using the + ``intel-2020b`` toolchain: + + .. code-block:: bash + + module load intel/2020b CMake/3.24.3-GCCcore-10.2.0 Saxon-HE/11.4-Java-11 \ + Boost/1.74.0-GCC-10.2.0 HDF5/1.10.7-iimpi-2020b \ + MDSplus/7.96.17-GCCcore-10.2.0 MDSplus-Java/7.96.17-GCCcore-10.2.0-Java-11 \ + UDA/2.7.4-GCCcore-10.2.0 Blitz++/1.0.2-GCCcore-10.2.0 \ + MATLAB/2020b-GCCcore-10.2.0-Java-11 SciPy-bundle/2020.11-intel-2020b + + .. md-tab-item:: SDCC ``foss-2023b`` + + The following modules provide all the requirements when using the + ``foss-2023b`` toolchain: + + .. code-block:: bash + + module load CMake/3.27.6-GCCcore-13.2.0 Saxon-HE/12.4-Java-21 \ + Boost/1.83.0-GCC-13.2.0 HDF5/1.14.3-gompi-2023b \ + MDSplus/7.132.0-GCCcore-13.2.0 \ + UDA/2.8.0-GCC-13.2.0 Blitz++/1.0.2-GCCcore-13.2.0 \ + MATLAB/2023b-r5 SciPy-bundle/2023.11-gfbf-2023b \ + build/1.0.3-foss-2023b + + .. admonition:: The MATLAB/2023b-r5 installation is lightly tweaked + + The installation at ITER uses `EB PR#20508 + `__ + and its tweak resolves `IMAS-5162 `__ + by removing ``libstdc++.so.6`` from the MATLAB installation. It also adds + ``extern/bin/glnxa64`` to ``LD_LIBRARY_PATH`` to address the + ``MatlabEngine not found`` issue. + + .. caution:: + + When using the HDF5 backend within MATLAB, depending on the HDF5 library being used + you may need to add ``LD_PRELOAD=/lib/libhdf5_hl.so`` when starting + MATLAB. + + .. md-tab-item:: Ubuntu 22.04 + + The following packages provide most requirements when using Ubuntu 22.04: + + .. code-block:: bash + + apt install git build-essential cmake libsaxonhe-java libboost-all-dev \ + pkg-config libhdf5-dev xsltproc libblitz0-dev gfortran \ + default-jdk-headless python3-dev python3-venv python3-pip + + The following dependencies are not available from the package repository, + you will need to install them yourself: + + - MDSplus: see their `GitHub repository + `__ or `home page + `__ for installation instructions. + - UDA: see their `GitHub repository `__ for more + details. + - MATLAB, which is not freely available. + + +Building and installing a single High Level Interface +----------------------------------------------------- + +This section explains how to install a single High Level Interface. Please make sure you +have the :ref:`build prerequisites` installed. + + +Clone the repository +```````````````````` + +First you need to clone the repository of the High Level Interface you want to build: + +.. code-block:: bash + + # For the C++ HLI use: + git clone ssh://git@git.iter.org/imas/al-cpp.git + # For the Fortran HLI use: + git clone ssh://git@git.iter.org/imas/al-fortran.git + # For the Java HLI use: + git clone ssh://git@git.iter.org/imas/al-java.git + # For the MATLAB HLI use: + git clone ssh://git@git.iter.org/imas/al-matlab.git + # For the Python HLI use: + git clone ssh://git@git.iter.org/imas/al-python.git + + +Configuration +````````````` + +Once you have cloned the repository, navigate your shell to the folder and run cmake. +You can pass configuration options with ``-D OPTION=VALUE``. See below list for an +overview of configuration options. + +.. code-block:: bash + + cd al-cpp # al-fortran, al-java, al-matlab or al-python + cmake -B build -D CMAKE_INSTALL_PREFIX=$HOME/al-install -D OPTION1=VALUE1 -D OPTION2=VALUE2 [...] + +.. note:: + + CMake will automatically fetch dependencies from other Access Layer GIT repositories + for you. You may need to provide credentials to clone the following repositories: + + - `imas-core (git@github.com:iterorganization/IMAS-Core.git) + `__ + - `al-plugins (ssh://git@git.iter.org/imas/al-plugins.git) + `__ + - `imas-data-dictionary (git@github.com:iterorganization/IMAS-Data-Dictionary.git) + `__ + + If you need to change the git repositories, for example to point to a mirror of the + repository or to use a HTTPS URL instead of the default SSH URLs, you can update the + :ref:`configuration options`. For example, add the following options to your + ``cmake`` command to download the repositories over HTTPS instead of SSH: + + .. code-block:: text + :caption: Use explicit options to download dependent repositories over HTTPS + + cmake -B build \ + -D AL_CORE_GIT_REPOSITORY=git@github.com:iterorganization/IMAS-Core.git \ + -D AL_PLUGINS_GIT_REPOSITORY=https://git.iter.org/scm/imas/al-plugins.git \ + -D DD_GIT_REPOSITORY=git@github.com:iterorganization/IMAS-Data-Dictionary.git + + If you use CMake 3.21 or newer, you can also use the ``https`` preset: + + .. code-block:: text + :caption: Use CMake preset to set to download dependent repositories over HTTPS + + cmake -B build --preset=https + + +Choosing the compilers +'''''''''''''''''''''' + +You can instruct CMake to use compilers with the following environment variables: + +- ``CC``: C compiler, for example ``gcc`` or ``icc``. +- ``CXX``: C++ compiler, for example ``g++`` or ``icpc``. +- ``FC``: Fortran compiler, for example ``gfortran``, ``ifort`` or ``nagfor``. + +If you don't specify a compiler, CMake will take a default (usually from the Gnu +Compiler Collection). + +.. important:: + + These environment variables must be set before the first time you configure + ``cmake``! + + If you have an existing ``build`` folder and want to use a different compiler, you + should delete the ``build`` folder first, or use a differently named folder for the + build tree. + + +Configuration options +''''''''''''''''''''' + +- **Backend configuration options** + + - ``AL_BACKEND_HDF5``, allowed values ``ON`` *(default)* or ``OFF``. + Enable/disable the HDF5 backend. + - ``AL_BACKEND_MDSPLUS``, allowed values ``ON`` or ``OFF`` *(default)*. + Enable/disable the MDSplus backend. + + - ``AL_BUILD_MDSPLUS_MODELS``, allowed values ``ON`` *(default)* or ``OFF``, + only available when the MDSplus backend is enabled. Enable building MDSplus + models for the selected Data Dictionary version. + + - ``AL_BACKEND_UDA``, allowed values ``ON`` or ``OFF`` *(default)*. Enable/disable + the UDA backend. + - ``AL_BACKEND_UDAFAT``, allowed values ``ON`` or ``OFF`` *(default)*. + Enable/disable the UDA backend and use FAT UDA instead of the client/server + model. See the `UDA documentation `__ for more + information. + +- **Control what to build** + + - ``AL_EXAMPLES``, allowed values ``ON`` *(default)* or ``OFF``. Enable/disable + building the example programs in the ``examples`` directory. + - ``AL_TESTS``, allowed values ``ON`` *(default)* or ``OFF``. Enable/disable + building the test programs in the ``tests`` folder. + - ``AL_PLUGINS``, allowed values ``ON`` or ``OFF`` *(default)* . Enable/disable + building the plugins from the ``al-plugins`` repository. + - ``AL_HLI_DOCS``, allowed values ``ON`` or ``OFF`` *(default)*. Enable/disable + building the documentation. + - ``AL_DOCS_ONLY``, allowed values ``ON`` or ``OFF`` *(default)*. When enabled, + ONLY the documentation will be built (needs ``AL_HLI_DOCS=ON``). Regardless of + other configuration options, nothing else will be built. + - ``AL_PYTHON_BINDINGS``, allowed values ``ON`` *(default when building the Python + HLI)* or ``OFF`` *(default when not building the Python HLI)*. When enabled, this + builds the Access Layer Python lowlevel bindings. + +- **Dependency configuration options** + + - ``AL_DOWNLOAD_DEPENDENCIES``, allowed values ``ON`` *(default)* or ``OFF``. + Enable or disable the automatic downloading of dependencies. Should be disabled + when using a :ref:`development environment `. + + .. important:: + + The following environment variables must be set before the first time you + configure ``cmake``! + + If you have an existing ``build`` folder and want to use a different compiler, + you should delete the ``build`` folder first, or use a differently named folder + for the build tree. + + When ``AL_DOWNLOAD_DEPENDENCIES`` is enabled, the following settings can be used to + configure the location and/or version of the dependencies that should be used. + + - ``AL_CORE_GIT_REPOSITORY``, + ``AL_PLUGINS_GIT_REPOSITORY``, ``DD_GIT_REPOSITORY``. Configure the git URLs + where the ``imas-core``, ``al-plugins`` c.q. + ``imas-data-dictionary`` repositories should be fetched from. + - ``AL_CORE_VERSION``, ``AL_PLUGINS_VERSION``, + ``DD_VERSION``. Configure the version of the repository that should be used. + This can point to any valid branch name, tag or commit hash. + + This setting can be used to control which version of the Data Dictionary you + want to use. For example: ``-D DD_VERSION=3.38.1`` will use DD version 3.38.1 + instead of the default. + + .. code-block:: text + :caption: Default values for ``*_GIT_REPOSITORY`` and ``*_VERSION`` options + + AL_CORE_GIT_REPOSITORY: git@github.com:iterorganization/IMAS-Core.git + AL_CORE_VERSION: main + + AL_PLUGINS_GIT_REPOSITORY: ssh://git@git.iter.org/imas/al-plugins.git + AL_PLUGINS_VERSION: main + + DD_GIT_REPOSITORY: git@github.com:iterorganization/IMAS-Data-Dictionary.git + DD_VERSION: main + +- **Useful CMake options** + + - ``CMAKE_INSTALL_PREFIX``. Configure the path where the Access Layer will be + installed, for example ``-D CMAKE_INSTALL_PREFIX=$HOME/al-install`` will install + the Access Layer inside the ``al-install`` folder in your home directory. + - ``CMAKE_BUILD_TYPE``. Configure the build type for compiled languages. + Supported values (case sensitive): + + - ``Debug``: build with debug symbols and minimal optimizations. + - ``Release``: build with optimizations enabled, without debug symbols. + - ``RelWithDebInfo`` *(default)*: build with optimizations and debug symbols + enabled. + - ``MinSizeRel``: build optimized for minimizing the size of the resulting + binaries. + +More advanced options are available as well, these can be used to configure where CMake +searches for the prerequisite dependencies (such as the Boost libraries). To show all +available configuration options, use the command-line tool ``ccmake`` or the gui tool +``cmake-gui``: + +.. code-block:: bash + + # for the CLI tool + ccmake -B build -S . + # for the GUI tool + cmake-gui -B build -S . + + +Build the High Level Interface +`````````````````````````````` + +Use ``make`` to build everything. You can speed things up by using parallel compiling +as shown with the ``-j`` option. Be careful with the amount of parallel processes +though: it's easy to exhaust your machine's available hardware (CPU or memory) which may +cause the build to fail. This is especially the case with the C++ High Level Interface. + +.. code-block:: bash + + # Instruct make to build "all" in the "build" folder, using at most "8" parallel + # processes: + make -C build -j8 all + +.. note:: + + By default CMake on Linux will create ``Unix Makefiles`` for actually building + everything, as assumed in this section. + + You can select different generators (such as Ninja) if you prefer, but these are not + tested. See the `CMake documentation + `__ for more + details. + + +Optional: Test the High Level Interface +``````````````````````````````````````` + +If you set either of the options ``AL_EXAMPLES`` or ``AL_TESTS`` to ``ON``, you can run +the corresponding test programs as follows: + +.. code-block:: bash + + # Use make: + make -C build test + # Directly invoke ctest + ctest --test-dir build + +This executes ``ctest`` to run all test and example programs. Note that this may take a +long time to complete. + + +Install the High Level Interface +```````````````````````````````` + +Run ``make install`` to install the high level interface in the folder that you chose in +the configuration step above. + + +Use the High Level Interface +```````````````````````````` + +After installing the HLI, you need to ensure that your code can find the installed +Access Layer. To help you with this, a file ``al_env.sh`` is installed. You can +``source`` this file to set all required environment variables: + +.. code-block:: bash + :caption: Set environment variables (replace ```` with your install folder) + + source /bin/al_env.sh + +You may want to add this to your ``$HOME/.bashrc`` file to automatically make the Access +Layer installation available for you. + +.. note:: + + To use a ``public`` dataset, you also need to set the ``IMAS_HOME`` environment + variable. For example, on SDCC, this would be ``export IMAS_HOME=/work/imas``. + + Some programs may rely on an environment variable ``IMAS_VERSION`` to detect which + version of the data dictionary is used in the current IMAS environment. You may set + it manually with the DD version you've build the HLI with, for example: ``export + IMAS_VERSION=3.41.0``. + +Once you have set the required environment variables, you may continue :ref:`Using the +Access Layer`. + + +Troubleshooting +``````````````` + +**Problem:** ``Target Boost::log already has an imported location`` + This problem is known to occur with the ``2020b`` toolchain on SDCC. Add the CMake + configuration option ``-D Boost_NO_BOOST_CMAKE=ON`` to work around the problem. + diff --git a/doc/doc_common/ci_build_docs.sh b/doc/doc_common/ci_build_docs.sh new file mode 100755 index 0000000..398d94a --- /dev/null +++ b/doc/doc_common/ci_build_docs.sh @@ -0,0 +1,52 @@ +#!/bin/bash +# ITER Bamboo CI (ci.iter.org) script to build sphinx documentation for all HLIs + +# Script assumes that the pwd is the access layer git root directory (i.e. the +# parent directory of where this script is located). + +# Quit with error when any command is unsuccessful +set -e + +# Set up environment such that module files can be loaded +if test -f /etc/profile.d/modules.sh ;then +. /etc/profile.d/modules.sh +else +. /usr/share/Modules/init/sh +fi + +# Make Python available +module purge +module load Python/3.8.6-GCCcore-10.2.0 + +# Create and activate a venv +rm -rf docs_venv +python -m venv docs_venv +. docs_venv/bin/activate + +# Install dependencies +pip install --upgrade pip +pip install -r doc_common/requirements.txt + +# Output all installed packages +pip list -v + +# Update the ##VERSION## string in the deploy script +if test `git describe` = `git describe --abbrev=0`; then + # Strip patch version from the release tag, e.g. 5.0.1 -> 5.0 + VERSION=`git describe | cut -d. -f1-2` +else + VERSION=dev +fi +sed -i "s/##VERSION##/$VERSION/g" doc_common/deploy.ps1 + +# Instruct sphinx to treat all warnings as errors +export SPHINXOPTS='-W --keep-going' + +# Make all the docs +# We're not using `make docs`, because some HLI Makefiles +# won't do anything unless the right environment parameters exist +make -C cppinterface/doc html +make -C fortraninterface/doc html +make -C javainterface/doc html +make -C mexinterface/doc html +make -C pythoninterface/doc html diff --git a/doc/doc_common/conf.rst b/doc/doc_common/conf.rst new file mode 100644 index 0000000..1959f35 --- /dev/null +++ b/doc/doc_common/conf.rst @@ -0,0 +1,141 @@ +Configuring the Access Layer +============================ + +Some functionality of the Access Layer can be configured through enironment +variables. This page provides an overview of the available options. + + +Environment variables controlling HLI behaviour +----------------------------------------------- + +``IMAS_AL_DEFAULT_BACKEND`` [#backend_env]_ + Specify which backend to use by default with open/create methods that do not + pass this information as an argument. Values for this environment + variable correspond to the targeted backend ID, see below table. If not + specified, the MDS+ backend is the default. + + .. csv-table:: Backend IDs + :header-rows: 1 + + Backend, Backend ID + :ref:`ASCII `, 11 + :ref:`MDSplus `, 12 + :ref:`HDF5 `, 13 + :ref:`Memory `, 14 + :ref:`UDA `, 15 + + +``IMAS_AL_FALLBACK_BACKEND`` [#backend_env]_ + Specify a fallback backend to be tried if opening the given data-entry was + not successful with the primary/default backend. Values for this environment + variable correspond to the targeted backend ID, see above table. If not + specified, no secondary attempt will be made. This does not have any effect + on calls to create new dataentries. + + +``IMAS_AL_DISABLE_OBSOLESCENT_WARNING`` + Since version 4.10.0, all interfaces print warnings when putting an IDS that + contains data in fields marked as `obsolescent` in the DD. Setting this + variable to ``1`` disables these printouts. + + +``IMAS_AL_DISABLE_VALIDATE`` + Set this environment variable to ``1`` to disable the automatic run of :ref:`IDS + validation` when doing a ``put`` or ``put_slice``. + + +.. [#backend_env] These environment variables are not applicable when using + :ref:`Data Entry URIs`, which explicitly specify the backend. Also not applicable + in the Python HLI. + + +Environment variables controlling access layer plugins +------------------------------------------------------ + +``IMAS_AL_ENABLE_PLUGINS`` + Execution of C++ plugins in AL5 is a new feature which can be tested by + users who are interested in. It's currently an experimental feature which is + disabled by default. + + When the plugins framework is disabled: + + - Low level plugins registering/search functions are disabled. + - The behavior of writing data for nodes with default values is the same + that AL4. HLI write requests for these `empty` nodes are not sent to the + LL. + + When the plugins framework is enabled: + + - Low level plugins registering/search functions are enabled. + - The behavior of writing data for nodes with default values differs from + AL4. HLI write requests for these `empty` nodes are sent to the LL + allowing eventually to execute low level C++ plugins bound to these nodes + whose content can be handled by these plugins. + + To enable the plugins framework, set the global environment variable + ``IMAS_AL_ENABLE_PLUGINS`` before executing the access layer: + + .. code-block:: bash + + export IMAS_AL_ENABLE_PLUGINS=TRUE + + +Backend specific environment variables +-------------------------------------- + + +``HDF5_BACKEND_READ_CACHE`` [#uri_precedence]_ + Specify the size of the read cache in MB (default is 5). It may improve + reading performance at the cost of increased memory consumption. Obtained + performance and best size of cache is heavily depending on the data. + + +``HDF5_BACKEND_WRITE_CACHE`` [#uri_precedence]_ + Specify the size of the write cache in MB (default is 5). It may improve + writing performance at the cost of increased memory consumption. Obtained + performance and best size of cache is heavily depending on the data. + + +.. [#uri_precedence] These settings can also be configured in the IMAS URI, see + :ref:`Query keys specific for the HDF5 backend`. The URI provided settings + will be used if both are present. + + +``IMAS_AL_SERIALIZER_TMP_DIR`` + Specify the path to storing temporary data. If it is not set, the default + location `/dev/shm/` or the current working directory will be chosen. + + + +UDA client configuration to reach the server at ITER +---------------------------------------------------- + +``UDA_HOST=uda.iter.org`` [#uda_uri]_ + If set, all queries with the UDA backend will be directed at the ITER UDA + server `uda.iter.org`, unless directly specified in the Access Layer's URI. + +``UDA_PORT=56565`` [#uda_uri]_ + If set, all queries will be directed to the port `56565` of the selected UDA + server, unless directly specified in the Access Layer's URI. + + + The ITER UDA server uses SSL authentication through a Personal Key Infrastructure + (PKI). You can download your PKI certificate at `pkiuda.iter.org`. Extract the + obtained `bundle.zip` in a folder in which only you have read permission (e.g. + `$HOME/.uda`). Then set the following environment variables: + + .. code-block:: bash + + export UDA_CLIENT_SSL_KEY=$HOME/.uda/private.key + export UDA_CLIENT_CA_SSL_CERT=$HOME/.uda/ca-server-certificate.pem + export UDA_CLIENT_SSL_CERT=$HOME/.uda/certificate.pem + export UDA_CLIENT_SSL_AUTHENTICATE=1 + + Do the same on all the systems from which you want to access ITER's UDA server. + + +.. [#uda_uri] An Access Layer URI of the form + `imas:uda?path=;backend=` will only work if + `UDA_HOST` and `UDA_PORT` environment variables are set. If not, the information + needs to be directly passed in the URI, as + `imas://:/uda?path=;backend=`. diff --git a/doc/doc_common/deploy.ps1 b/doc/doc_common/deploy.ps1 new file mode 100644 index 0000000..19fe159 --- /dev/null +++ b/doc/doc_common/deploy.ps1 @@ -0,0 +1,95 @@ +# Stop when any command fails +$ErrorActionPreference = "Stop" +# Enable debug output +$DebugPreference = "Continue" + +$sharepoint_root = "\\sharepoint.iter.org@SSL\departments\POP\CM\IMDesign\Code Documentation\ACCESS-LAYER-doc" +$root_url = "https://sharepoint.iter.org/departments/POP/CM/IMDesign/Code%20Documentation/ACCESS-LAYER-doc" +$version = "##VERSION##" + +Net use X: $sharepoint_root + +foreach ($hli in $("cpp", "fortran", "java", "matlab", "python")) { + $deploy_folder = "${sharepoint_root}\${hli}\${version}" + Write-Debug "Deploying to folder: $deploy_folder" + + New-Item -ItemType Directory -Path $deploy_folder -Force + Copy-Item -Path ".\${hli}_html\*" -Destination $deploy_folder -Recurse -Force + + # Generate versions.js + $latest = "IDM" + $latest_version = [version]"0.0" + $latest_url = "https://user.iter.org/default.aspx?uid=YSQENW" + + $versions = New-Object System.Collections.Generic.List[string] + Get-ChildItem -Path "${sharepoint_root}\${hli}" -Directory -Name | Foreach-Object { + try { + $as_version = [version]$_ + if ($as_version -gt $latest_version) { + $latest_version = $as_version + $latest = $_ + $latest_url = "${root_url}/${hli}/${_}/index.html" + } + } catch [System.InvalidCastException] { + sleep 0.01 + Write-Debug "Could not convert $_ to a [version]. Ignoring for version comparisons" + } + } + # Generate the versions.js file for use by the sphinx-immaterial version + # switcher. See + # https://jbms.github.io/sphinx-immaterial/customization.html#version-dropdown + # + # Notes: + # - The "version" item is used for generating the URL. Since sharepoint + # doesn't automatically forward to `index.html`, we add it manually. We + # also need to include a pound (#) because sphinx-immaterial will add an + # additional `/` to the url which must be ignored by the sharepoint + # server. + # - The "title" is just the folder name (dev, or MAJOR.MINOR release) + # - Aliases are used to check if the current documentation page is the + # latest release yes or no. + # - The latest release will get the alias "latest" + # - We always include the folder name. This is required due to the way + # that sphinx-immaterial checks which version the current page is for. + # This is checked (in javascript) by iterating over all versions.js + # entries and selecting the one which matches: + # - $redirect_url == $base_url + # - or $base_url / .. / $alias matches for any alias in aliases + # The redirect_url is constructed from the version, but that will + # include a "/index.html#" so doesn't match the $base_url. By + # including an alias with the folder name we can still let this + # algorithm succeed. + Get-ChildItem -Path "${sharepoint_root}\${hli}" -Directory -Name | Foreach-Object { + $aliases = "[`"$_`"]" + if ($_ -eq $latest) { + $aliases = "[`"$_`", `"latest`"]" + } + $versions.Add(" {`"version`": `"${_}/index.html#`", `"title`": `"$_`", `"aliases`": $aliases}") + } + Write-Debug "Latest documentation version: $latest" + $versions_content = "[`n" + ($versions -Join ",`n") + "`n]" + + # Deploy versions.js + Set-Content -Path "${sharepoint_root}\${hli}\versions.json" -Value $versions_content + Set-Content -Path "${sharepoint_root}\${hli}\versions.js" -Value $versions_content + + # Deploy redirect html page + $latest_html_content = " + + + + + + + +

If this page does not refresh automatically, then please direct your browser to + our latest docs. +

+ +" + Set-Content -Path "${sharepoint_root}\${hli}\latest.html" -Value $latest_html_content + + Get-ChildItem -Path "${sharepoint_root}\${hli}" +} + +Net use X: /delete \ No newline at end of file diff --git a/doc/doc_common/dev_guide.rst b/doc/doc_common/dev_guide.rst new file mode 100644 index 0000000..d826b79 --- /dev/null +++ b/doc/doc_common/dev_guide.rst @@ -0,0 +1,240 @@ +Access Layer development guide +============================== + + +Access Layer repositories +------------------------- + +The IMAS Access Layer consists of a number of components which are developed in separate +repositories: + +- `imas-core `__: the + Access Layer core repository, MDSplus model generator and Python lowlevel + bindings. +- `data-dictionary + `__: the IMAS Data + Dictionary definitions, used for generating MDSplus models and the traditional High + Level Interfaces. +- `al-plugins `__: Access + Layer plugins. +- Traditional (code-generated) High Level Interfaces + + - `al-cpp `__: C++ HLI + - `al-fortran `__: + Fortran HLI + - `al-java `__: Java HLI + - `al-matlab `__: + MATLAB HLI + - `al-python `__: + Python HLI + +- Non-generated code HLIs. The following High Level Interfaces load the Data + Dictionary definitions at runtime + + - `IMASPy `__: alternative + Python HLI + - `al-hdc `__: alternative + HLI based on the HDC (Hierarchical Data Containers) library + +The documentation on this page covers everything except the Non-generated HLIs, those +are documented in their own projects. + + +Development environment +----------------------- + +.. note:: + + This is the first iteration of the development process after the Access Layer split. + The process is not set in stone or sacred. Please suggest improvements to the + development flow based on your experience, if you feel the process the can be + streamlined. + +See the :ref:`build prerequisites` section for an overview of modules you need to load +when on SDCC or packages to install when using Ubuntu 22.04. + +The recommended development folder layout is to clone all :ref:`Access Layer +repositories` in a single root folder (``al-dev`` in below example, but the name of that +folder is not important). + +.. code-block:: text + + al-dev/ # Feel free to name this folder however you want + ├── al-core/ + ├── al-plugins/ # Optional + ├── al-cpp/ # Optional + ├── al-fortran/ # Optional + ├── al-java/ # Optional + ├── al-matlab/ # Optional + ├── al-python/ # Optional + └── data-dictionary/ + +Then, when you configure a project for building (see :ref:`Configuration`), set the +option ``-D AL_DOWNLOAD_DEPENDENCIES=OFF``. Instead of fetching requirements from the +ITER git, CMake will now use the repositories as they are checked out in your +development folders. + + With this setup, it is your responsibility to update the repositories to their + latest versions (if needed). The ``_VERSION`` configuration options are + ignored when ``AL_DOWNLOAD_DEPENDENCIES=OFF``. + +This setup allows you to develop in multiple repositories in parallel. + + +Dependency management +--------------------- + +With all Access Layer components spread over different repositories, managing +dependencies is more complex than before. Below diagram expresses the dependencies +between the different repositories: + +.. md-mermaid:: + :name: repository-dependencies + + flowchart + core[al-core] -->|"MDSplus
models"| dd[data-dictionary] + plugins[al-plugins] --> core + hli["al-{hli}"] --> core + hli --> dd + hli --> plugins + +To manage the "correct" version of each of the dependencies, the CMake configuration +specifies which branch to use from each repository: + +- Each HLI indicates which commit to use from the ``al-core`` repository. This is + defined by the ``AL_CORE_VERSION`` cache string in the main ``CMakeLists.txt`` of + the repository. + + The default version used is ``main``, which is the last stable release of + ``al-core``. +- Inside the ``al-core`` repository, the commits to use for the + ``al-plugins`` and ``data-dictionary`` are set in `ALCommonConfig.cmake + `__. + + The default versions used are ``main`` for ``al-plugins``, and ``main`` for + ``data-dictionary``. + + +.. info:: + + CMake supports setting branch names, tags and commit hashes for the dependencies. + + +CMake +----- + +We're using CMake for the build configuration. See `the CMake documentation +`__ for more details about CMake. + +The ``FetchContent`` CMake module for making :ref:`dependencies from other repositories +` available. For more information on this module we refer to the +`FetchContent CMake documentation +`__ + + +Documentation overview +---------------------- + +The documentation is generated with Sphinx. Because the documentation of each HLI +depends on the contents of the ``al-plugins`` and ``al-core`` repositories, it is +configured with CMake. For more information on Sphinx, see the `Sphinx docs +`__ and the `documentation of the theme +(sphinx-immaterial) that we're using +`__. + +Documentation of the HLI is inside the ``doc`` folder of the repository. This folder +contains the configuration (``conf.py``), and documentation pages (``*.rst``). +Documentation that is common to all High Level Interfaces (such as this developer guide) +is in the `common/doc_common folder in the al-core repository +`__. + + +Building the documentation +'''''''''''''''''''''''''' + +Use the option ``-D AL_HLI_DOCS`` to enable building documentation. This will create a +target ``al--docs``, e.g. ``al-python-docs`` that will only build the +documentation. You could also use ``-D AL_DOCS_ONLY`` to only build the documentation, +and nothing else. + +.. code-block:: console + :caption: Example: building the documentation for the Python HLI + + al-dev$ cd al-python + al-python$ # Configure cmake to only create the documentation: + al-python$ cmake -B build -D AL_HLI_DOCS -D AL_DOCS_ONLY + [...] + al-python$ make -C build al-python-docs + [...] + + +CI and deployment overview +-------------------------- + +Main CI plans. These plans execute the script ``ci/build_and_test.sh`` in each of the +repositories. This allows for easy reproduction of the CI plans on SDCC: just execute +``bash ci/build_and_test.sh`` in a clone of the repository. + +- `AL-Core `__ tests building the Access + Layer core. Note that there are no unit tests in this repository, the CI plan + only checks that the AL can be built successfully. +- `AL-Cpp `__ builds and tests the C++ HLI. +- `AL-Fortran `__ builds and tests the Fortran + HLI. + + .. note:: + There are three Jobs inside this plan. One uses the GCC compilers, one uses the + Intel compilers and the third uses the NAGfor Fortran compiler. + + All three execute ``ci/build_and_test.sh``, but some set the ``CC``, ``CXX`` and + ``FC`` environment variables to select the compiler. + +- `AL-Java `__ builds and tests the Java HLI. +- `AL-Matlab `__ builds and tests the Matlab HLI. +- `AL-Python `__ builds and tests the Python HLI. + +Documentation CI plan: + +- `Access Layer Doc `__ builds the AL + documentation for all HLIs (only on the ``main`` and ``develop`` branches). The + output of this CI plan is used to deploy the documentation to sharepoint with the + `Access-Layer doc deployment project + `__. + +Other CI plans: + +- `Data-Dictionary Dev `__ builds and tests all + HLIs (develop branch) with the Data Dictionary branch that triggered the build. + + This project is used to test the compatibility of new Data Dictionary developments + with the generated Access Layer HLIs. This CI plan is triggered for the develop + branches of the Data Dictionary, and with every PR in the Data-Dictionary + repository. + + .. note:: + The Main CI plans use the last released Data Dictionary version for testing. + +- `IMAS AL DEV `__ builds development modules + for all components. These modules are published to SDCC by the `IMAS AL DEV Deploy + `__ + deployment project. + + These development modules can be used on SDCC as follows: + + .. code-block:: bash + :caption: Development modules based on the Data Dictionary ``develop/3`` branch + + module use /work/imas/opt/bamboo_deploy/imas3-dev-modules/modules/all/ + # For intel: + module load IMAS/develop3-develop-intel-2020b + # For foss: + module load IMAS/develop3-develop-foss-2020b + + .. code-block:: bash + :caption: Development modules based on the Data Dictionary ``develop/4`` branch + + module use /work/imas/opt/bamboo_deploy/imas4-dev-modules/modules/all/ + # For intel: + module load IMAS/develop4-develop-intel-2020b + # For foss: + module load IMAS/develop4-develop-foss-2020b diff --git a/doc/doc_common/identifiers.rst b/doc/doc_common/identifiers.rst new file mode 100644 index 0000000..69a86f1 --- /dev/null +++ b/doc/doc_common/identifiers.rst @@ -0,0 +1,54 @@ +Identifiers +=========== + +The "identifier" structure is used to provide an enumerated list of options for +defining, for example: + +- A particular coordinate system, such as Cartesian, cylindrical, or spherical. +- A particle, which may be either an electron, an ion, a neutral atom, a + molecule, a neutron, or a photon. +- Plasma heating may come from neutral beam injection, electron cyclotron + heating, ion cyclotron heating, lower hybrid heating, alpha particles. + +Identifiers are a list of possible valid labels. Each label has three +representations: + +1. An index (integer) +2. A name (short string) +3. A description (long string). + +.. csv-table:: Identifier examples (from part of the ``core_sources/source`` identifier) + :header-rows: 1 + + Index, Name, Description + 2, NBI, Source from Neutral Beam Injection + 3, EC, Sources from heating at the electron cyclotron heating and current drive + 4, LH, Sources from lower hybrid heating and current drive + 5, IC, Sources from heating at the ion cyclotron range of frequencies + 6, fusion, "Sources from fusion reactions, e.g. alpha particle heating" + +The list of possible labels for a given identifier structure in the Data +Dictionary can be found in the |DD| documentation. + +The use of private indices or names in identifiers structure is discouraged, +since this would defeat the purpose of having a standard enumerated list. Please +create a `JIRA `_ tracker when you want to add a new +identifier value. + + +Using the identifiers library +----------------------------- + +|identifiers_link_instructions| + +Below examples illustrates how to use the identifiers in your |lang| programs. + +.. literalinclude:: code_samples/identifier_example1 + :caption: |lang| example 1: obtain identifier information of coordinate identifier ``phi`` + +.. literalinclude:: code_samples/identifier_example2 + :caption: |lang| example 2: Use the identifier library to fill the ``NBI`` label in the ``core_sources`` IDS + +.. literalinclude:: code_samples/identifier_example3 + :caption: |lang| example 3: Use the identifier library to fill the type of coordinate system used in the ``equilibrium`` IDS + diff --git a/doc/doc_common/imas.rst b/doc/doc_common/imas.rst new file mode 100644 index 0000000..aa739fc --- /dev/null +++ b/doc/doc_common/imas.rst @@ -0,0 +1,32 @@ +IMAS overview +============= + +IMAS is the Integrated Modeling and Analysis Suite of ITER. It consists of +numerous infrastructure components, physics components and tools. An up-to-date +overview of these can be found at ``_ (ITER +Organization account required). + +The IMAS core consists of: + +1. Standardized data structures for storing experimental and simulation data. +2. Infrastructure for storing and loading these data structures. + +The standardized data structures are defined in the |DD|. +The documentation for the Data Dictionary (DD) can be found there as well, for +example: + +- Which data structures (IDSs) exist +- What data is contained in these structures +- What units a data field has +- What are the coordinates belonging to a data field + +.. todo:: + + Add links to the HLI documentation pages. + +The Access Layer, of which you are currently reading the documentation, +provides the libraries for working with these data structures, for example: + +- Loading an IDS from disk +- Storing an IDS to disk +- Using and manipulating IDSs in your program diff --git a/doc/doc_common/imas_uri.rst b/doc/doc_common/imas_uri.rst new file mode 100644 index 0000000..891e76a --- /dev/null +++ b/doc/doc_common/imas_uri.rst @@ -0,0 +1,253 @@ +Data entry URIs +=============== + +Data entry URIs specify where and how IMAS data is stored (or should be stored +to). When you :ref:`load or store IMAS data `, you +need to provide a data entry URI. + +This page documents the URI structure and the options that are supported. + + +Data entry URI structure +------------------------ + +The general structure of an IMAS URI is the following, with optional elements +indicated with square brackets: + +.. code-block:: text + + imas:[//host/]backend?query + +Let's break down each of the components: + +1. ``imas:`` this part indicates that this is an IMAS URI +2. ``host`` when the data is located at another machine, you use this + section to indicate the address of that machine. See :ref:`UDA backend` for + further details. +3. ``backend`` select the Access Layer backend. See :ref:`Backends` for the + options. +4. ``query`` the query consists of ``key=value`` pairs, separated by a + semicolon ``;``. See :ref:`Query keys` for further details. + +.. + Commenting this out, as no backend currently supports URI fragments + + 5. ``fragment`` In order to identify a subset from a given data-entry a + ``fragment`` can be added to the URI. Such ``fragment``, which starts with a + hash ``#``, is optional and allows to identify a specific IDS, or a part of + an IDS. See :ref:`URI fragment` for further details. + + +Backends +-------- + +Several backends exist for storing and loading IMAS data. Each backend uses a +different format for storing the data. + +.. note:: + + Depending on local install choices, some backends may be unavailable in + your Access Layer installation. + + +Backend comparison +'''''''''''''''''' + +.. csv-table:: Comparison of backend functionality + :header-rows: 1 + :stub-columns: 1 + + , :ref:`HDF5 `, :ref:`MDSplus `, :ref:`UDA `, :ref:`Memory `, :ref:`ASCII `, :ref:`Flexbuffers ` + :ref:`get `, Yes, Yes, Yes, Yes, Yes, Yes [#fb_get]_ + :ref:`get_slice `, Yes, Yes, Yes, Yes, \-, \- + :ref:`put `, Yes, Yes, \-, Yes, Yes, Yes [#fb_put]_ + :ref:`put_slice `, Yes, Yes, \-, Yes, \-, \- + Persistent storage, Yes, Yes, Yes [#uda]_, \-, Yes [#ascii]_, \- + +.. [#uda] The UDA backend is read-only. +.. [#ascii] Suitable for tests and small data, but not recommended for large + datasets or long-term storage. +.. [#fb_get] Only when using ``OPEN_PULSE`` mode +.. [#fb_put] Only when not using ``OPEN_PULSE`` mode + + +HDF5 backend +'''''''''''' + +The HDF5 backend is identified by ``hdf5`` in the IMAS URI, and stores data in +the `hdf5 data format `_ + + +MDSplus backend +''''''''''''''' + +The MDSplus backend is identified by ``mdsplus`` in the IMAS URI. The data is +stored in the `MDSplus format `_. + +This backend imposes some limitations on the data that can be stored, see +`maxoccur` in the |DD| documentation. + +This backend has been around and stable for a longer time, so most older IMAS +data is stored in this format. + + +UDA backend +''''''''''' + +The UDA backend is used when a host is provided. `UDA (Universal Data Access) +`_ is the mechanism for contacting the server that +stores the data. + +A number of UDA plugins already exist for these, but their availability depends +on how UDA has been installed on the local cluster. Therefore it's recommended +that you contact the IMAS support team when you want to use this functionality. + +.. todo:: + + Provide a sample URI string + + +Memory backend +'''''''''''''' + +The memory backend is identified by ``memory`` in the IMAS URI. When storing or +loading IMAS data with this backend, the data is stored in-memory. This is +therefore not persistent. + +The memory backend can still be useful to transfer data between languages in the +same program (for example, storing an IDS in C++ and then loading it with the +Fortran HLI) or to :ref:`store a number of time slices ` and then :ref:`loading all time slices `. + + +ASCII backend +''''''''''''' + +The ASCII backend is identified by ``ascii`` in the IMAS URI. The ASCII backend +can be used to store IDS data in a plain-text human readable format. The +performance and size of the stored data is worse than the other backends, so +this is typically only used for debugging. + + +Flexbuffers backend +''''''''''''''''''' + +The Flexbuffers backend is identified by ``flexbuffers`` in the IMAS URI. The +Flexbuffers backend is used when (de)serializing IDSs with the +``FLEXBUFFERS_SERIALIZER_PROTOCOL``. It is optimized for (de)serialization speed and +therefore has very limited functionality. It is not intended to be used outside of IDS +serialization. + + +Query keys +---------- + +You can use query keys to indicate to the backend where the data is stored and +(optionally) set backend-specific configuration options. The following query +keys are currently recognized. + +.. note:: + + Query keys are case-sensitive and unknown query keys are silently ignored. + +``path`` [#mandatory]_ + Provide the path to the folder where the IMAS data is (or will be) stored. + Paths can be absolute (starting with a ``/`` on UNIX, or with a drive letter + on Windows) or relative to the current working directory. + + The backend manages how your IMAS data is stored within the folder. + + .. code-block:: text + :caption: URI examples using path + + imas:hdf5?path=/absolute/path/to/data + imas:hdf5?path=relative_path + +``user``, ``database``, ``version``, ``pulse``, ``run`` [#mandatory]_ + Use `legacy` (Access Layer version 4 and earlier) way to indicate where the + IMAS data is (or will be) stored. + + .. code-block:: text + :caption: URI example using legacy data identifiers + + imas:mdsplus?user=public;pulse=131024;run=41;database=ITER;version=3 + + In Access Layer version 5.0.0 and earlier use key ``shot`` instead of ``pulse``. + + .. code-block:: text + :caption: URI example using legacy data identifiers in Access Layer 5.0.0 and earlier. + + imas:mdsplus?user=public;shot=131024;run=41;database=ITER;version=3 + + + +.. [#mandatory] Either ``path`` or `all` of the legacy query keys must be + provided. + + +Query keys specific for the HDF5 backend +'''''''''''''''''''''''''''''''''''''''' + +The :ref:`HDF5 backend` also recognizes these backend-specific query keys. + +``hdf5_compression`` + Data compression is enabled by default. Set ``hdf5_compression=no`` or + ``hdf5_compression=n`` to disable data compression. + +``hdf5_write_buffering`` + During a `put` operation, 0D and 1D buffers are first + stored in memory. Buffers are flushed at the end of the put. + + This feature is enabled by default. Set ``hdf5_write_buffering=no`` or + ``hdf5_write_buffering=n`` to disable write buffering. + +``write_cache_option`` + Set the size of the HDF5 chunk cache used during chunked datasets write + operations. Default to 100x1024x1024 bytes (100 MiB). + +``read_cache_option`` + Set the size of the HDF5 chunk cache used during chunked datasets read + operations. Default to 5x1024x1024 bytes (5 MiB). + +``open_read_only`` + Open master file and IDSs files in read only if ``open_read_only=yes`` or + ``open_read_only=y``, overwriting the files access modes default behavior (see IMAS-5274 for an example use-case). + +``hdf5_debug`` + HDF5 debug output is disabled by default. Set ``hdf5_debug=yes`` or + ``hdf5_debug=y`` to enable HDF5 debug output. + + +Query keys specific for the ASCII backend +''''''''''''''''''''''''''''''''''''''''' + +The :ref:`ASCII backend` also recognizes these backend-specific query keys. + +``filename`` + Specify the exact filename in which the IDS data will be stored, instead + of the default `.ids`. + + +Query keys specific for the UDA backend +''''''''''''''''''''''''''''''''''''''' + +The :ref:`UDA backend` also recognizes these backend-specific query keys. + +``verbose`` + UDA verbosity is disabled by default. Set ``verbose=1`` to obtain + more information and ease debugging. + +``cache_mode`` + UDA cache_mode is ``ids`` by default. Set ``cache_mode=none``or ``cache_mode=ids`` to specify the mode of caching. + - ``none``: No caching is performed. + - ``ids``: Caches the entire IDS (Interface Data Structure). + +``fetch`` + UDA ``fetch`` is disabled by default. Set ``fetch=1`` to enable fetching + and downloading IDS files to the local ``local_cache`` directory. + +``local_cache`` + UDA ``local_cache`` is set to ``tmp/path_in_uri`` by default. This is used along with ``fetch=1`` in the query. + Set ``local_cache=/path/to/local/cache/directory`` and the download directory will be ``local_cache/path_in_uri``. + ``local_cache`` specifies the path to the local cache directory where IDSs will be downloaded. diff --git a/doc/doc_common/load_store_ids.rst b/doc/doc_common/load_store_ids.rst new file mode 100644 index 0000000..7f4f446 --- /dev/null +++ b/doc/doc_common/load_store_ids.rst @@ -0,0 +1,261 @@ +Loading and storing IMAS data +============================= + +IMAS data is grouped together in Data Entries. A Data Entry is a collection of +:ref:`IDSs ` and their (potentially) multiple +occurrences, which groups and stores data over multiple IDSs as a single +dataset. The Data Entry concept is used whether the collection of IDSs is stored +in a database or only exists temporarily (for example for communication in an +integrated workflow). + +Loading and storing IMAS data happens through an IMAS Database Entry. A Database +Entry tracks the information required for locating where the Data Entry is (or +will be) stored on disk. In |lang| this object is modeled as |dbentry|. + +You may :ref:`open an existing IMAS Database Entry`, which you can use for +loading data that was stored previously. Alternatively you can :ref:`create a +new IMAS Database Entry` to store IDS data. + + +Open an existing IMAS Database Entry +------------------------------------ + +To open an IMAS Database Entry, you need to know the URI indicating where the +Access Layer can find the data. IMAS URIs start with ``imas:`` and indicate +the format and the location of the stored data. You can find a detailed +description of the IMAS URI syntax on the :ref:`Data entry URIs` page. + +.. literalinclude:: code_samples/dbentry_open + :caption: |lang| example: open an existing IMAS Database Entry + +.. seealso:: + + API documentation for |dbentry_open|. + + +Loading IMAS data +----------------- + +After you open a database entry, you can request to load data from disk. + +.. contents:: + :local: + + +Load an entire IDS +'''''''''''''''''' + +With |dbentry_get| you can load ("get") an entire IDS from the database entry. + +Multiple `occurrences` of an IDS may be stored in a data entry. By default, if +you don't specify an occurrence number, occurrence 0 is loaded. By providing an +occurrence number you can load a specific occurrence. How different occurrences +are used depends on the experiment. They could, for example, correspond to: + +- different methods for computing the physical quantities of the IDS, or +- different functionalities in a workflow (e.g. initial values, prescribed + values, values at next time step, …), or +- multiple subsystems (e.g. diagnostics) of the same type in an experiment, etc. + +.. todo:: extend docs after Task 2c. is implemented (get multiple occurrences) + +.. literalinclude:: code_samples/dbentry_get + :caption: |lang| example: get an IDS from an IMAS Database Entry + +.. seealso:: + + - API documentation for |dbentry_get|. + + +Load a single `time slice` of an IDS +'''''''''''''''''''''''''''''''''''' + +Instead of loading a full IDS from disk, the Access Layer allows you to load a +specific `time slice`. This is often useful when you're not interested in the +full time evolution, but instead want data of a specific time. You can use +|dbentry_getslice| for this. + +Most of the time there are no entries at that specific time, so you also need to +indicate an `interpolation method`. This determines what values the access layer +returns when your requested time is in between available time points in the +data. Three interpolation methods currently exist: + +|PREVIOUS_INTERP| + Returns the `previous` time slice if the requested time does not exactly + exist in the original IDS. + + For example, when data exists at :math:`t=\{1, 3, 4\}`, requesting + :math:`t_r=2.1` will give you the data at :math:`t=1`. + + .. csv-table:: Edge case behaviour. :math:`\{t_i\}, i=1..N` represents the time series stored in the IDS. + :header-rows: 1 + + Case, Behaviour + :math:`t_r \lt t_1`, Return data at :math:`t_1`. + :math:`t_r = t_i` [#equal_note]_, Return data at :math:`t_i`. + + +|CLOSEST_INTERP| + Returns the `closest` time slice in the original IDS. This can also be + `after` the requested time. + + For example, when data exists at :math:`t=\{1, 3, 4\}`, requesting + :math:`t=2.1` will give you the data at :math:`t=3`. + + .. csv-table:: Edge case behaviour. :math:`\{t_i\}, i=1..N` represents the time series stored in the IDS. + :header-rows: 1 + + Case, Behaviour + :math:`t_r \lt t_1`, Return data at :math:`t_1`. + :math:`t_r = t_i` [#equal_note]_, Return data at :math:`t_i`. + :math:`t_r - t_i = t_{i+1} - t_r` [#equal_note]_, Return data at :math:`t_{i+1}`. + +.. [#equal_note] Equality for floating point numbers is tricky. For example, + :code:`3.0/7.0 + 2.0/7.0 + 2.0/7.0` is not exactly equal to :code:`1.0`. It + is therefore advised not to depend on this behaviour. + +|LINEAR_INTERP| + Returns a linear interpolation between the existing slices before and after + the requested time. + + For example, when data exists at :math:`t=\{1, 3, 4\}`, requesting + :math:`t=2.1` will give you a linear interpolation of the data at + :math:`t=1` and the data at :math:`t=3`. + + Note that the linear interpolation will be successful only if, between the + two time slices of an interpolated dynamic array of structure, the same + leaves are populated and they have the same size. Otherwise + |dbentry_getslice| will interpolate all fields with a compatible size and + leave others empty. + + .. csv-table:: Edge case behaviour. :math:`\{t_i\}, i=1..N` represents the time series stored in the IDS. + :header-rows: 1 + + Case, Behaviour + :math:`t_r \lt t_1`, Return data at :math:`t_1`. + :math:`t_r \gt t_N`, Return data at :math:`t_N`. + +.. literalinclude:: code_samples/dbentry_getslice + :caption: |lang| example: get a time slice from an IMAS Database Entry + +.. note:: + + The access layer assumes that all time arrays are stored in increasing + order. |dbentry_getslice| may return unexpected results if your data does + not adhere to this assumption. + +.. seealso:: + + API documentation for |dbentry_getslice|. + + +.. include:: partial_get + + +Create a new IMAS Database Entry +-------------------------------- + +To create a new IMAS Database Entry, you need to provide the URI to indicate the +format and the location where you want to store the data. You can find a +detailed description of the IMAS URI syntax and the options available on the +:ref:`Data entry URIs` page. + +.. caution:: + + This function erases any existing database entry on the specified URI! + + +.. literalinclude:: code_samples/dbentry_create + :caption: |lang| example: create a new IMAS Database Entry + +.. seealso:: + + API documentation for |dbentry_create|. + + +Store IMAS data +--------------- + +After you have created an IMAS Database Entry, you can use it for storing IDS +data. There are two ways to do this: + +.. contents:: + :local: + + +Store an entire IDS +''''''''''''''''''' + +With |dbentry_put| you can store ("put") an entire IDS in a database entry. +First you need to have an IDS with data: you can create a new one or :ref:`load +an IDS ` which you modify. See :ref:`Use Interface Data +Structures` for more information on using and manipulating IDSs. + +.. caution:: + + This function erases the existing IDS in the data entry if any was already + stored previously. + +Multiple `occurrences` of an IDS may be stored in a data entry. By default, if +you don't specify an occurrence number, the IDS is stored as occurrence 0. By +providing an occurrence number you can store the IDS as a specific occurrence. + +.. note:: + + The MDS+ backend has a limitation on the number of occurrences of a given + IDS. This number is indicated in the |DD| documentation in the "Max. + occurrence number" column of the list of IDSs. This limitation doesn't apply + to other backends. + +.. literalinclude:: code_samples/dbentry_put + :caption: |lang| example: put an IDS to an IMAS Database Entry + +.. seealso:: + + API documentation for |dbentry_put|. + + +Append a time slice to an already-stored IDS +'''''''''''''''''''''''''''''''''''''''''''' + +With |dbentry_put_slice| you can append a time slice to an existing database +entry. This is useful when you generate data inside a time loop (for example in +simulations, or when taking measurements of an experiment). + +It means you can put a time slice with every iteration of your loop such that +you don't have to keep track of the complete time evolution in memory. Instead, +the Access Layer will keep appending the data to the Database Entry in the +storage backend. + +.. note:: + + Although being put progressively time slice by time slice, the final IDS + must be compliant with the data dictionary. A typical error when + constructing IDS variables time slice by time slice is to change the size of + the IDS fields during the time loop, which is not allowed but for the + children of an array of structure which has time as its coordinate. + +.. literalinclude:: code_samples/dbentry_put_slice + :caption: |lang| example: iteratively put time slices to an IMAS Database Entry + +.. seealso:: + + API documentation for |dbentry_put_slice|. + + +Listing all occurrences of an IDS from a backend +'''''''''''''''''''''''''''''''''''''''''''''''' + +With |list_all_occurrences| you can List all non-empty occurrences of an IDS +using its name in the dataset, and optionnally return the content of a +descriptive node path. + +.. note:: + + The MDS+ backend is storing IDS occurrences infos (pulse file metadata) + for AL version > 5.0.0. Pulse files created with AL version <= 5.0.0. + do not provide these informations (an exception will occur for such + pulse files when calling |list_all_occurrences|). + +.. literalinclude:: code_samples/dbentry_list_all_occurrences + :caption: |lang| example: listing all occurrences of a magnetics IDS from an IMAS Database Entry diff --git a/doc/doc_common/media/image1.png b/doc/doc_common/media/image1.png new file mode 100644 index 0000000000000000000000000000000000000000..d76f03e0b26090f684dc530c274199b27d82fecd GIT binary patch literal 131122 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

wkRjhy`k<+xK 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

%!V(YberqR1*c>_*% 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ℑ-o=-oD~Zfm zm7kmct{Bv1a?}wFV~$ne3$mUqe_Qh2Rlq~eaZ0p{@d{F_%QYS?Kn9K`LI)()8vtQg zC(h^Rk24)AEka6L`{)hV`#5`?=y#cg9hPa}1`*72A)}hPy8YJdGXG3(qwlh0N0T$m zBW>igKAJBq=&7|<-YO^!Dj#*`!T7*^VI^2;E;&gMK7O;%U;2UjQ3K-E{K{3sA+>Aw zNKU@9%FKmVQ zvYCG(Ta#8Qe$*b4m34f4Vpjz_Ff3=kNz4K8aZ~x)Me#U@dQtxNUSH?`kg4Z8Iv!On z-=8RplL3sATarm(9m4?i0a4xrKPoP|u8iT^y*<*0`{Qg!| z7bu^4FyhgSy+Il)?m49Y9xPz1bSpwJFft42ozk#|9R9Mr6jfPHOdZ?gkFP0M7CbG( zWNfd>=>NESF4Nz6$rc~0&qUJ5jVp!rag=}7$Meaeg7I+rTQ^2yDmpil@u+^8_M|B2 z)C@y<#$0JNNNT|Qq-(oT0iQK3$JorN4t@Nz+u7`~kR5Q|yR-XP-}`gRMBESHXE8cD6xnqv$db)X%(NNo@eUtKe2Tq74iBp87wQPx9;(DBa-PVRs&y> z6Al>+%UxM<=oBM+6)%6TEb|;FumN|N+McKr?YA3J?i8APU*VN3A3;P-5a>XihHO`} zqGs7){a%hY`oXX*G)dkl>68^zY+})*S6dL#buEsVfDVp|XbBmB7scyKMg^#7B7~g$ zt+#YI;}{#EKr@WWX-HgAfwy9JlRI?XPl)tS;fPyI)X{ocCu>$E-@-V3Vn?sN(`hn% zp)td+rqaMi zvrkcx4x%wR3{mB?IFUyRQS+K@17sQhFZxmBika`

    -Z(Yc=<7EGoxE)L^WsW%Q z_znbia!~kore!imu3cTYf$+)RU;tf{;CYw78WiaKdZ3*z8Ey3wuK3FJg`K0b$IxW9 zC1TE~Nnt|hNCAEBm*m*{RGIYWufc0Hn{ZUJqtlz4FO!?v^uhIS%>7X=BUVOpb#Jlh zgG}C)BnDCR`!Bp^aYKlYP^(b3NDy}Q^*eaF_F9sD5G0mf-hJ@aj~%7Lwf!MEaefnw z-1jRLq`>9PR`R=`^e&+Y+aoQT%5zO#J$~obIH?yL1!wuSFWTsX-7iKS0-NNAWgLSH zNa*6j$W=L!k#PiXVq~;(^7eO>SbXwb+ll}id>Gg*4g?Ks$cctHDkP!Xa!%)UG+J(W zpHTHlQyJhuwNu!lovCLbS#o6MLu_zy!5+v1I4z~&-kl=pyCJ;;ZM{(eXI&B|#BFRi zq*ZX+qz&bIgJ+R_gJI2FBamXMwkC9>sAS-(4W_AYYAgFr>H=iVrIG%H*OuZ~n0B6=d5%~L-MHp?|_r_5S6EB#C!G5?`~HkVU6$rg!LL$zJM zfQnIL+kp&Xx*u~Yv%|Xw&lwj)4C`Z@1lPVi21L=iQ4oB#8rIthF|%;s?aYNE4|R2k z+UPHnSL_-6WcEc@g|o*v8k;{KoFCvFL4N+O zRr8Hy=mg%Rf8f1fn?ls`knl7)#dV5ZM|2B$(QXNl4=mVS`@YUswtUvKfI6(7WH>&K zdF0_;AQN}7kRJZmn~|U_$Dqf?rUe2JRqzh8ZJ9y!(cM+SZ0q?AwBDHx{H?L3-~cSOAr#(m@DFFQFG{0YyQ&ih$J61B4eR zEkXzZLJ<){3oQf)32;}!KKs1yx$k$!xZ@k+j{D>D4~lE8Ip@>ce4d9auQ+o?x7PTc zV2=^(H63lf@VA#+4g%C+c<+yuGoP>^(;6$Qy)6Rm9&pv;HLtv|kc_{RF?$j22K-ku z>s^8Ym*baV#VfS>XxSwNNnmz&n2CCN|^#P%{qBa+mPvar5RK z0#d1qcWbx4%Mj)tP};QaKU5lVjrJ8fuCO-axWL|Cm^psCta)BWq^WI4(WJ?`dd|-m zztKZUboaR#@ov2H?d@fw7~XZnfj%PdyASs1!i=y4c^kGqT^>+eOSMt+>%tiAJv4t# z_zRT^DT#|%ui1>Z$6$B3PeI>55L9MP8|(+)WgV%ISdgz=ec4hm^fh61-auACecwnr ziG&UV`7Oy81zISBlAu3MIy_E-ah|zISZo0=B=zRX6jts$(0brAxw7w^_<5awAvtOk ze0jl|__3PBtn&)_(O0?Ace;8KIz2zUtQ@2F$|+d9?Lc>+8oHv;Y}10APZ%07q`=1X z%}Vvu+s#b5jKW2YO2(g{{d?M{@3*@t)S;RaCuOO73=KlJkZ^-+guTS9Vd#CIw6Cgk% zoDYZ!PP5XRjxVA5XCJKy_1~xzi^w2yK)(#}-h%vkVk^=Xmk^+x6QH5pbI9>ILA(D| zQM+byI@jJ#9-9jE2aRS^k=_{g3ynp@1wNkfyV?DNLfo$W9*kP3pYtOq?Q9f+rAvX4H0U`F6iSXk74 z0`7;~0ac6+?`~`d^3+nT$dIrh4?VhWp{&O>xVbD?#FN+q#@+7jM&+OG2A`0x6owUV zW~@+eDtBJpQ^-?*+)~%0P-F%GjUp-T01`=cIZ?SL1br)GisT|UgnPuF4#1j;rXCm^ z#lM=Wu^*niBk6fmOwv9)Ls9vITGR+gEG(%E7o|hhckOq3dH76>bcf8RtBHvk1ACu} zrh%)(VGDk@cZ>B)Ww0Ir_}g*#KWECH7cKnd8r*@4i=1(E(X0_n94HbJNH+YsphUld&^e(LwtV6QeD^KP%74)H2=s7cl6 zJYTxKP7p*`&tz{tnYG*^X7wC0f7R#KnXJ7W;geNstS^GihLwn#j@zs~DX%q5yv?cF zR;O-#9_^ZdQ*q#s9fS(&nn%lb>-*UT+hJxZg7S(X+WwTlvF>`pV-s41I01iUOHiGa zVnAd$Gim69dPWvKk&-WdVV7saF<_i8q`8822X6H^W6r|FLVW3Y(L;{ad28ICwZz9; z`L^T&&ok5zopTIFtG}Xf^iBXv!$bUo`FlA#X5`$5IP}rjDZbXfqNDXnFdh zu9aSR58J_%=j*I%U9v;IK1ApjgD7Rby{0FRGZr`-xHaKT)>0X;xEd)(p2`lZNB16w zJc7qbZ{7-w{DF+L=zDuj|9E%q&;7gMepv{W=nl0VaGs2#W3=I`!J>%bGgVv{5+6gx zGDZ0}JztF8+2;JZa~O+i7u3b(c3D2jK&+Gx>=l1#e#m|oXX$8d%VYR&snuoa*yal= zX@UGua4mkSU0dZrj@2G_7B6$2^FcAg?3ea~FI1;iOe%e80lD}Aq?yxD^pH-PPc~87 zQX}!v1^5?!>|KwI2Gz0XV&=}w$Od9zmvoHR(;o=BM_P34AXuzy4Dqj{*}G_vO9=vf zXu&5Y?B7G6Mj=Lelx)!__X$HxPR9o0JC$%5?Ji3;GLj z-&2BL6dz9~o}K+AK16h$*QI{IMc>zGYAcBv5N}sl7_5K^31P0V`t40@q+T(k_HVbt z8t?Cb42LEbYHI`la!CZp95E%iRDL(A2B{#G2y?sMyoZeBrLI|39})iR?KEcKV$qyQDL$^)qOGn2 z&~=dWfU2|mTzi=9QoyItRrh&6l~SSi>0Y^6Q6xQEOeImGdSG2kpj)$(%~afJ>b;?H z#}D}?YsshNd83YHJ=K#?AE%xd^W}K`-?z9<-%W8p_2X-;q2ut4a^5XzdE<8RCnvOL z1;9Yp5eU{mv*B!h`Hq=Q_<-{@16&zu>S)QY#BxqW@d5l`BFOOUQG^~BxJD(dPxR}8 zA?tJ!tgI2o=c@+tDWMY3`L%{y+!wN&3^E05x8^Jstp;bT#a z&sn&+%bQh#sZE==N1wk@-Z$to`+8+&ek%nLsPzWLW7W8}B^R?8QLw&<1brecwm7th zJa5`D6$GF2Sx!(+dxC{N#T8VVP>V<|MJ}8BcSQ%!bK!N(IBdbDH51;!Z96bl>x*YL zvg6f!Kp1N3L|xzS*u34JCN4*7j?D;@7cjx2)w|@cWp|4)$^4~pYq;f#?HqzdXP$M3 z7W9jzZLNa#K0&_>T|kP?Zot~)txL?a2a+Rq2P?XW=$oB^8Pna5CJZwzY+3qu^_7dY zcFf?g1!QSrwx^W;B$YpRp>^S&pzaq1Y<(hlX@rc3`cQBtu~YX|gbz4>$){X*%gnKR zp?tp96dn_WthQ>7DBKfwcX06}?kyHCVxxM;AA2xpN%Eo#NkSWQ#x`oRhP# zdoc-VSX`_WkYa!~6Aj`4=WD4Mb63b@eafkWI$T5D-b2ne?QTv#`$$xs8`T$aP7`oW zti4iP3&bTY=YUk&2C`3?Q@we9G+Y`gV8zJJWS>AVvlz|AERsit3JQPGN}}SBO?L>T zoNq6}u_@vk-%T}hu?1IWpJFF1win-Dm-^a?P-;$Zyly|osv{;g4_PP%6W+k*X+W;a zQjU>FtDbSVBfuqTw?M89xsck&!W;IWWhM1%O{GT5*~+upe+9w^-|~4{J`0QmAg6}HFP zu#@L{Ss>akQ~)NSZ=XyExyyhilPdV{q$qGartn?{#J+G^Lhkm-2Tx$TaGDPhx@|-G zQLK+B0dQ+Ah0Rk)Fi^z5w*|_#Ks;oYk06hjhq#EEzZGEQp@GSN?LusGF=~uz56j_$ zyi(608UAnQ_&YPwL#OW$lA{cB4X@I^x{Y5za3{8PNi8=xp5aZWZ(#KM|L`*9cy4>S z(|9qH@o82a`cp)ki)Xw$a_E0$5_35anX{o`{Zkd&;*7Txe|rYD6(o5|(N4@D@^yZv(XMDqRm%ZHhmpXtc4G4G6(ro%Qlvh~&?O_`YH zdVxVBdz19sE|Zq{{KpV0dPi{zqog9{B%=oNpcNvJIrsj%){l!(F2i={?;G|790#SE z#DkWJ2VFsc9gqKAj&*|Zoccj!5mV^=LCJ%v;z9S2gXW9C;<5*y8$HA*XgC*oaB11H z;h=Kl$Jv9_`#~QPCMFCsqYNh0m+_qCL8lWSQ|o$w?&>4|dt29vB9Z8gM1h{3klj|Y zCa7tn;qHk63E2B)dIRmU=^HsPzn^`HJOHhbx(G41l(te;-FN zTcnNAhnHxUn+0spyNZnX;_2N$sv zNOvPuqSO2mn8e!u1AA#Q@*r}cAJ0=`D1{Yl`T)3Jnt|1D4Z4qF3DBD`2iExeSO@3? zKx{fgYjT}`7eDSTM;SLWw7Y}bqxRn$qpTJ=(8M-SEffbS&Z~n^ag8HlyMHfsri8&L z1!;!zAU!HDhi2#Nw9NvGo8tQ>_gV69oLkd7Ar+_sCOa3NU}O<^-OE#D>zDI)Fb(4* zyIY3$A^`0^q$y`KW%oCVmVyLzGa@@!^iccx5ee97`}aoR5NmC&D^f1ndU)%&b$XlYGNYLe@&m7V8Tly^s_|^g9l&TQZ-hrfymDL1M+Ynvg zwuI;E8s@v?y!4ylnpc&c%2c3f|A>A#y`9OH5^i$MCJAoXTAZ$sylG$o+uFO1wx?`M z)jApa<9+TMy5^s27|PFuS1Aegnj=KLr}fK%qtQO)-8d^PtL8aci&8u%DB;1a*fOKS zC8PaS2U!?ukI>oBIV^nv3mFf5%(tRIyjN`Mr;Wv2AqXMh#SphA)vx8*LyH)#e_H>r zv}6>#h>ho2?*YgJ1z`YK_%Ca%IgoMt+XqcF0+E?MV#>hvbS=+smm^>bRlLpVpkKfY zoQG{%lRX(RU`qR%%lpq%0aP657@RIE8)X4 z@*sk!{r+R_p^wnN#l~@>bl`qsZKVbEeV!|*={6f#QwzAXrY}w$LMk0ls2AboPBIWD{ z=od7b%64vdMv|u6;6tyupzA%U)$jc*9rtr(Gkg|=R6KlN7pW)*ETS_l{DMX(K_9;Z zT^a-vL~*bnpBgbCt^GydGV4>yZm#pMJmRE6<2q)cretgY{rkD#xALg2b%*psFnoiS(Y0@$<73aNfu#a>!73ey_rxE7|<#;l~LOQir zT{8CMG1M@*8JH`x*8uABB5cK%o!m!^6>a@Uuy3&P?e&yeXxSwlL6_Ep_bi5*>4(G6 z52r^S9F&h9buq!G-2hns$C*IAlmw5D4Ppl7OU3{m*slE}#ppu7z3o(SAvy##ee^vm ze+>0!EU=Bt!B~C z>9hfiESDh=W*3bBsjc>vleu-{Z-pTCiBT>3(G^e#V~o)f*>3=Zu_<4IE4=MWf6x2+ zbvo=JtP$%Ll?e}3`9uTcv*nxr`c}}s4=^n3)wO4UK=q#UyWM+^zqH`Jwbux-b2#DQ zT4!bR&M<{ep8x%=6&f(c;$SW2iM9IMht4v8Ja6%v)^sJ2tMTz6=?d$AR@&Z2`q|(1 zOedtQ1dCsaslW3zGEy~Nu#Zc`L;ACv_@y^qH%|X`^W5lt?@KoxRSJDp6dF0(!wEb0 ztmC4K=C!YCF1{DO&k7hvGsoMWG!?p2d;j+NdWc3F-q5S*{mpgybA7bi z2{<@daC^|aGqA1Pnd|gL9k7&kW>t5`Wde;Dp9!w8Z5g8l^;5U&WH_rX5GC)^2%zxB6^0rCw<_H7>WSPDtbOWgk-2 zGUHH-ZF7o>R!O6f*#ia;Z5F3<9T^#)@NoH=z+KZcQeNTSu zP);`o^e(=eY#K5H-CXgsxw*30wDuyQxpQok$_-pQD&U|hz2V{`Qpk|~b{vbunzi-U&C;{V{ zH;sqZJ8)>({gNrQr0c>a-2{B5W4FZpfy_yz?r}HyAat4=_!AYOm|=x<9#SFV3tDW+ z%vG0tQQuR+nYio>*Gz)r%`fuoSqch|2K=5cEcAt0iKK>*o3q$kH9gw7R6Q9)9sgOi#i=ulR9VE2&xV?o1@X z0^GlKk)yAl3Bl6~lwzxgGUWS#P>DeGmqE%P+{}Fzb?2MhmwPSOHz~GlzvE8m3M2N{ zSu*3o_kYg`c83d2(y;Tk@xk837-x&!@)b}<;XcNVXT`#R&|~I7SX=4rQ;&sD)>Dh- z#COZ)gUOv}_3mML{}x$`pr?vGanoku&-De@$c9ThBb`e-jubnXzi@z7U(=@H5875j z+}*rh*w zl?Au=nT^el%p?|0kwsA^GMR3afuyPVcC9{gH~X<37# z$wTb}N;;XrlG~rhy1R!;zj@~6&uvzdojikQm-&*l1%)^L^(A!{cgBICD7A6RJB{7e z$mDUIHUH81(FS|4f9}@v%-x4Uc!y!46QPu#^$Q&sM60%~p_U|l&Ol`>XHjF_p#HVV z!9C;fX==0^t+Gv?-BN1s_t-ggZC!j!j6Hvk{zt@@58rion3zhga2e~$D4vJ};Z2E^ zuJgcUBK4lF5uI=By+t05(C}`L`Ma__CspnbJ>6TNq9WPvXC##KapOG~pRNv`CgdLf z313OoRnqC;+w`Y-5H74t+uD~BWu-tboJv`83+7zd@Od#B@x(K^qqm3W0fC|aEPd|| zHxtwO&Xe~nXoi6dwwGC2ov zEdRn;QmkeNA7Bk$%q1*zW+XSqCuh_E3^q5*_cGFsn(p6tR7}0>Om4V+6MqB0)?>QT z2z~eiXpEXQ0r2!RygwE1Jq{t}Biw?nU3vAVr#x;#W{aJ0C3LOgYR`mNw3SQSKySNP z*wbCdPN20+;ZZt=EX2<8iDj0hrJ_8aH8gvZaV#fzfS3Q8i@&qcd36@@SL+}7=GggJ z{g0I``xqUdM{U+$Qb2#wLO@NmKL7YprP8VrtCENN{ngt(`ZDKPH=dn2*|?@M*8P=9 zMa@61I*Z`OXkX3D(umf0`-|mbZm~@2sz%x9QOZDw<@oJezfp8n?@Lt9`9rOWD?S$sOop%y$y z&GY9tD)y|gZO*q=;YvRdq7gX@Fhrq#82v|00dF+rT{qx^xPR%vB zsdWvN(oZ|br%+W>wRK`6>4C)2qU-h`&u-SwC*0DRCqmk+KT}(3eRF5yYr|?g`3h$H zAdp)0>wQ8)9#OjACB*hwfGeUlcO(y>I0ZUzRP)&xFp`!w?TKeHY~4&5@o9*{NJ;Cl z4sm8>`=qpxssn9Z?6-#I>+iB+h+eF{n-pEGUSUZ6jQi^6^2JjX8ev;d^1IRB!Qj9f zbvujk$4sHpfqbc6t`z%InE5U^x8lDGS zZT)LBT?IOdowT$sk*N1&5hbTk zZch=s^Su#ah%FUv+9r;hd4iM(E;SC&?sbPc^%Xxr*b#^Dvm0Dxjo7aSk~kp=0I(I3 zF_3!#4a{ZiX{5dt73!C{HNAef_7Mu8NP$hDl@2z+%m!@Ys#K~*`6;k&!%H;g_Y$v? zYs;`hjbF-Ru{%x@erb6`bAV7*bajw0T&azA!o~nLkmod%ia?#(gP{WJk|*~Tu75u9 zWePW@#8IfDjr~59o{C_3g(kRa>-HK+0=IY!FCf?I)sAo~oGYAi?A0CbXpL($IC83T z8i)bWAp-h)GnawQyxbU%PU!99$B%8O#V`66*qx85CrU;ed8eg5eRrD47{3H@^|@gG z6g3N1xd%Dog*<-VrW3erQF!lfikgj~oKxi)?=TKD+B&5ZQl*#TQo}O;@R20oDykBf zm~;1UZMWd60Mk>04c|Iec<9)O2LKd-{w!dSiE3%lV{7QqpZ(3|PWBx#G8oJRTKExQ zy*Xuvu?O43_o_afx6@-2ETt5AY(`Y{b|0}iZpC2Se=T1SOF0)RE*@;tW>e+m?(Zd; z^2si~?6@>=HxMAiz%RpgHt)`?o5PYa0QW=n=D%pty(hjEsGY`6aJF#ILaZ^#-|g)A zW0rpd4}F@QJDSzfrf1~Gea5SwhFCd;-|YxLslL0kNPZ?2>Z0w7n^F#6cP)+Uky7wb&1-BG|IK1jj@Aq%$>V%wM5KlR0EY04V zYouK}8j;>%cWp|1sa+k>+|6Kzf~7OLD~nI(&#Wig{&$`5q9j^Xc$6#ve z-B}IGrFlhpADUxoYEg=d@7cLVm0tSD`@(bo?MZeu;7K8EEuImvktI&=w6vC2(t)*T zAqy*YKxL?E_tX2VCps~#ilIR%3D99{YcoW%{Fp4^Uy`EdtRy`rWO(wweK__0tVY%o zg#!J%7>Ij-M0rOc<2-`*z#q#{5{(i&kZQW)5&BS?{^OCe)2$Sq7w-myoqQ0c@QQhD zW3NZZ7KY@qJX-K&m^Uv?&uU{hNldW450L6vfBoyEn!x_sA%G@xs~)9}&)Pk-t3~&e zNzz4L)}4k^-nt)0#A?OoyFZI5ww(#ADa-(@F#u`Lq7IOzo&X^2TDNb*v@d ztv+9WmW!RpN8CPu*P&pZ&l6%KD;LZ_EIVB7zYFX&8|cx8lH%hd5+h6Lo*e0Gb8C_F z^`#7)3_e03?#PDocf|o4eiV6}p=h+VZ;`Hxo&UdMa8PvuKe6C}We)sg4+rd@e_mkb zCtZK^rX``O-$_?KR@;p?E#t^enJ!(WFgaNY#6a#e@FPB_{0CU{0O*%T&R^#k?D-q1 zbPZ1jirwIt()kXVYttsDsz5z)VjO^N+y~(LACR&e%xbhE0ORreG9Rh7V!qp^s%p@o zk0_N3tZ11yKveR+=FZzwBv$+QGCJsEGoXd&F7l_G4WqqSLwh7&Rjgqk%6@y9t~x*V z1J+ObM(0C7uYP|11??hTrqqUS>?t%3>)ET!+r6$#Y=@L?+A&CIs4mv(Y`8~SR@#^I zYIGG76SJ2(8S+ao<-46(ry{U=j8?5eU@#2-z1ru5V9C{;+!{bv={`T>*N@WmmK<^7 z8Q^J80s8YWed?G~eT1aS{n-KW?8wFcS_r&*qF&;Q4scM*8|zZ4j==a+v6dZK;4ftt z@b;sNZG<4OC(nHw^%^^%n+#LQp`AY6-OiuS*pNk+(JpM`5(Pb|xGD@F1K3hZj^By} z?5GZKz>yCf_T$=GXb2XY=4fQUV61KAwgcOD?ZLu=UIRdBWiMFSsMfx3-d;3`48Pod z=o+009-RaOFVcm^JD1Rb?UKe-`E*a1p7b5*r<2|CbV}lh)`*Yj^u%ef(oU2e*Qk&*rYslpLTF=j`-8R?=B_ zuq&`-)l${aNQGt;e>82MdUeG*FH>C9h{^a|%NExYNZB3_OJGET(=!W!`uRq=UWik0 zZ|^-isRe}q`(#=l1su!kBz5h6AFJcGaNtI;@Nj|xQwKVW&-_rJ8;-5IB>Io>%r1fcXMe)zpuD1HHqP7bUMpd!Df&nbMHfvNxuLxq+vz|>HSPHt?9%U6s-M*)+m@R-i?!_$bl z2S!Y6M>`LPg5RO10Hu>vUQzTaK4W0|al_<%F|XstdhM>S8}CX$!vIGyT_ag}yB7

    s`&XV| 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 TfcBz{%z1OGGo`1l{q;WpLz*~i literal 0 HcmV?d00001 diff --git a/doc/doc_common/media/image3.png b/doc/doc_common/media/image3.png new file mode 100644 index 0000000000000000000000000000000000000000..51035eddd81e7416c8f3334fda5d89b02e622b18 GIT binary patch literal 88768 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ν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 literal 0 HcmV?d00001 diff --git a/doc/doc_common/media/image4.png b/doc/doc_common/media/image4.png new file mode 100644 index 0000000000000000000000000000000000000000..8fa3a7faff7053b8e1e91f03885b73c035ff2943 GIT binary patch literal 37057 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 jss9Y+{*SlG1oqslIoFD!2N;M^DsXA3>#F6c+ literal 0 HcmV?d00001 diff --git a/doc/doc_common/media/image5.png b/doc/doc_common/media/image5.png new file mode 100644 index 0000000000000000000000000000000000000000..278f00ab26624871f2112d7e812960585fbe717e GIT binary patch literal 66593 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 o3p>zd;sRNv@g9H*>2X_b(2DcEL!6C>12@F0E zECl%`_x(KYIq&(``uAGXySut~)z#Hi)wO$1ytbw)0WJ+L3JMCrD>Wru6cnsk6cn@v zY%~-URI2-oR%8dNx2~!JO8pewKC*#sFaJg!1*Itk@6H+n*|(#up|6ajo8``nTSXx& z|J3J@rBUY6Kdt{&nCAZNGR;}|mugwK`9F0e#j zto{LytRoq6DqEsqU?J=OA|Yd7|Nj;JA6Eb6Ps+&iFXi77IhTKd{biE(k1BE&pP(bx z=l@(t3`Xe_|F)5uK@KzjXXJk<|5cr7?)?8q|5u;p|3Fm}UYY+3imUP=&Q;xBi;_vR-t`wrc;(2evd3EZ1Q>7HceRg z7bxy+PKfzGvn@Xj-@DNbf9@K0O??ViO?_m(eoOe+pDHEZ{`gpvwe|U8WPeMe1*E3W z_}2FX2^Pmg&BPl8g^J|w4|RPtGc25>E?<)27kacv#V;<8R<#SL1YtiGc12OF!N zY{-Ab1cp@??u~NPG*{Pj)^vVuZmupMim$J&ov01|vzva&fTQq@6VR6Sb6jS(?D1Bw zubb%Lp!mri);aSdm&=(~M3?dEsf8-v)-}n4dHVq2mh3x}V2|r-eW3rJL64xXZh2m0 z*ErOjI44A}%DuEnq9QepH@-GDCTFvUalSVwc#09vy7PiQ8D%6^9FfSmiWTO;r4e}- ztB5_b4|Do$-i<8@!FVjGTUh|Htt2p1IXsqK6?ORnUuk$YS1Mv~>2;oLS6{XEH}CiY zRfr_{G`26TO;^6l#oI2uI<;IP<%y&qDuw8mLkUE)57+Z}hGFI)~Y`gar*{EUOJZ}c6t%Ri0o!c(U*v4A-jSJr3@P(YG z;EwlDDziR)ZuMTML}y--eoi0$*^_D{mE`WDRF=Muud?lCJOn(ws459Z^DZi0rPfmh zih)5s#tK_p<^jP|Wr!K5a(|VBP&)XkbJKx0lXd2wBsVTJW3JVRd?6c@aXz13Y z6H8v}0C#?fWQ0(4@&BQ!%*WDyCUF*t5sz5y!|4#<&giCH4@YEr3>I7seS5^i9iX5B zEx?yNFW>0et#m)#7uM@EWe|DZS#T%iFDJw-H=T%*!-m>bU7?N=JFS_OJf8PGxc_x- zG>x4nrTT{7%In2`1zWyf;=HG8eUq^16FKg zeWnO2kkrES*$qZmOlm2tx_KMMGn#9@K4 zRb?WdOeG;~rpAQ#!RRV=wR@s@PedVi9I#7AV_bP;%V74S)ic|h%ZfSuxbui@`cPf7 zM?B!ZbJCV?uKY=VhP2jq+vGZwj1YG@dqGwaZ6o;6`UdQL6V@heOluiepwrhp$`drY z=jxH^KguxePDGwxBa?s$ej{OmcgbJix3NmGxm5;=ZT@8&bf;6DqWLUDx^u#eCJuMV zs2S&lCd`)a@`L`UO&~*mOAr!Pv-J4j{??Oq%+_Z2u?{^^cNsMxD(|xuTifKjsurCaLurr`hga$v)f3v>hW1Frv~(^QdH9nCs3Lzn&yF zyj+A?p`QBx%%z#~3D*-3hTENDUX7L5Zo(NkyEcC+xmG&pX+3CR<*MEm0J^BlW2tm% zgTx>fA}4w)owV9~)pN0_n|*16RyV*ki-yK6D)(z4z^*)zkKL-Y`Pfp>mkhJ3ZBqn8L&towo)zS~+aJ9hD&WO57tmnj9ax1%H* z9x`z;Uy7PHm&2P2RU^@!cUB|{hpMfH1Z|LftZ1LUQJgaQIdDC5NZZV?vwqc8%%#@Z zp8j)8^SV9fm(b0T=?jyCKy#z2IKVn8J3<}kaSiKz8Ak{xoT2q_8q&4xbsp2SmDXl8 zmX1T(v7ZQY)?p(BldU@k-pBm%8}G&#$@|g~m3JHJUi^JQE97(xRtm(3&u3=%0=IEg zzIQ33OknCkfRyTn)6pO!T^f@uJV;w(ePGQ5>8|g@gy4 z#r?p6xcT}O+%_!a!G40J^>H=k)`k9i6YV|k0Jr=jtMOiJtJZuikN9V(N~zQZfcr}; z&(pukTKm45z<6os8BC|XQd1Q1ojOu}Y(sO^{0i62#v++?V}i=GI=JqakJrmW z1eUokK_p!}^>xZ?)K+L8L$JbC^5NZ4qw?QQ#ryPvg8ng4K$T2gn!8 zW95zVpB9ZVw;APl7G6mOR1Z)a)QJ8fv8}ZsbdIXS@#FjExsYW4Q`Wu(N)&e1?B>l# zQmfYr{a=p0e9Fi-HTkTZo8;R<+sj1q%Tek2rHa!Xf!jfT6+xNk69<3p0q^cS2fy3w z*%R!L^8qJ6mWreICBJITbTaev;Kg!VjWLXPsD+ZSVN^KLGlum6g5{IbnL-+w_VvVH ztN=sw5WKGgykCJDE8f^`>(Y&ZD?6`LKei9>4U^g~i8;X5&+R!`?r{6v{MOdt2UMJG zkzm=+io{W0pD3=XXz@+(c-qVU0-sLj(z6FoP3^O_LBDpanj7T;eGbm$E@x(-W9SxT zD*9I-y{wS_M|RI}qe@E1U1{fgCgHT-OY9euiIbh~I>hMm#OUuetJ^3ZmHC2Fgl4te zxqIQ$VC$9!{R{rUsHI?d#4x$r8EM?$!~~48`-~`}i*b+$aIOz*efFL=`N%?lX~AIm zjG_J@%v;wNJtUv*>7khS#4;OTrpR2Li5{QMj4tGfnx^v3vk1?l+|C5g&Ik4LP6zR* z3_vvpw3|7MRz_AQGig8l^hO|bGNkKm=CtJVKX?=Ru?fjkH1&7eFG-NU?6tUc&pY;|hIA(U%Fj_Cc?qbg#{fnPIu zYx6ZQ%)j!AZ}y&y@O{Z#>)~&hflFDNTqhqQhVt@++db)uT%v{NVz zdq<3)m{PYEi+5}Y1WuPCZK0rC7*zfAbyXXnUrWl|X3_2~1^paf!L=iE1<_zx1VJnT zO7z!;9-FI#4CUBt?D(pQa7CQU_hxRGblSvGB^p9}punHF;F1(43qB7i>YY}%U@zS| zWw30hl+l4uEhz0$dHHKN#zve9KhC`J;~As`i(}!$fn0enjKS|R$ZqU+OBO71g2!Nj zLu0fmgsboRrGI?O4F*$6?+Bqh@z|4zCGj2|=K}$`UDvnc*&RAor_TmUyyLN0L%j!3 zm--&F?mP=GfwtBp+=!@QT-863BlknH_W*0Qf>m3A<*nbwIzKdn zkp?L5Ku!g7FD=Q(%k@{J4e7f#h+>@jLcB%56ckD8-&3DvBp?P`4xch1^>^n3G)I>V z#-zjJWT|HRoR`#M$3U|77h_fmZof%VcSOVN6dc6FF>^eL->~R>o>qB2NKN>tUbW7< zzPJ%-B7a)ySAtlzrJX4oa&C)YdUul$iq#?ZWpO7xu<8%5RnD{)Ht9tNkxCc`t4h@w z&Bju~rpuB|)b=2AQUMMfCtAU(o?9{8sjJhqKFOSc^L{i5pZnmkvxF!b#_|2p*OllF zW{gUc`$0mt$+K20INT^DhJ36TL6J;piJMj<7x7mUm|2O_K@8nhR?saq1rR3IZCQhu zDBMsa5RAgxLxHh06c{;z*d2Jfm!%^Vg8hCeec19Es$<#s+67z=7X56?_%jP-Z z$6Vg7nM{F~CN&0yW~a57>BFcB`E?iwNwrXFI8 zk@uj&y&@^x_D?(|eMznAzi5kB_kAftt=;FGHtPQ^iSW@2-Cd ziP%wjnipX$d_vyxHIckAf%dJXDTkmkpJul5V_qgc1$~Zsm_fnR<<4;nL`UEn_jR!a zm5)h5A75y3zJhi?g%Q(j+T*OUEbnKy_mI*i-7B4=JXw9}5VvQ;q{@81dSnWTKD+>2 z{P?7j8qs zkZ_XMmk8L^CijnZ_k?;UuhpuC;No94YOU4v>}Ifg>|iR(N@_`8koU_y()#X#D~y28 zfnKFBS@Cn;i73kpI?*pAiEQG>>qEaCGY9{oLH{^i!Y7}t%qQfE^*odz^kji5L~C1C zO2*9`nmD&zl9}CxHYR1Xv0d_~3%v>baco==y9;g$AjQA4`$$REP3$Bf{)tJv0yF>h zZLfFf!lBl#*%(nkHos0Jo}uHNFp&^-w|~Ty4_^qIKp|$!t@mx&bg-f$`NqK`pq-Fv z3W9E)MW1v|8VWz>vDAppQ94ajUxx(BLc&Ps;fV#Oh}bxKA)WR!tXuLniO?vT2ZA#! z@Zcsh`FlgcR-&jTJ!_=l`BGbnwWU$^3dXRgBBM}6P|9YuFSL0^NT z5BF@A><*}LiDhl*X)GswC7Xw37xo*kLcNmtnNdPGCjByNons1%`LIVLql=Hn_M@v* z8q%kZa!DQ#h#_>WI@d6fG)1RlFbmf=0+>tDVWo9n9NOvX657`DE!DDxfqBl1$6^r>V0 zDk}J}T0@4AX+FQtU7l23-n1Kp9vW7scp-0$} z9a0uw+;mwcEMr;5m1pz)IG9Rrh?(BAi_%UtBqF$# zRZ|jMBH`QwGZ)E%<;m|m`6t$d8e_8Q@r#)70H~h zbUI~g;4$a^`*qoc>*sHp4Ed@yq;zyoQc|419}EL@nd=I)KAUxK_!f1oEnViAHFe5A z33HvKD_!_Z?tB@z$)yjdS!x9&TrQ5zZlw$P$eT*PZZZ@rPQJyRcD=lXUe(&{_N5w5 z>$*@nDQt~`EF?^L>yqbvdh}`+CSO*X-MHbGXtD+exaut#^7(2uO)aIRymrYgJZp9% zcb=B8RF!#<52yna9CK#AJvOng%X~>F*12#PxT~Xw6nv@S)6}qR*Ar?WG$z?o?Oa1e z+xfSTwXUGd7}@O-Rld=|7x|X5vwozE#_{s`uxWR_w*kn}2l8r6qAct7ig7()xLwCq zQ}XK`_y%(WBJ(j*d*ZEF$%2?hjXRG+FG1J$bob&?TAq}mfU|Nf<1E9?@Vc4Vu6Vbt zXHK{1ZVF9?4cFbm`d>E)+i%x-g@1t@SZQo((ll5g)FJoZ&Cjs)8!hWdQJO1gUL z0a1zzpp(5KA*(XQ1fmTas!X;_bv?pmpi_4iqLpDB5S)?F$a@gw!X-H zDjZyz3R#{H9&`1{16_~kP}#eLRV>0GbYGBZc4f)u2R#Qej2G4Os+XfEcE2s~ZF$kG z5VpvKsj~}N2D}+(Q|PH!X7Pg989{xTM2F_-Ws!xATyR+IhLSshJVJ!! zMajFmxmIy<`tEFu16pYW1+VjMx48eP=GGvq1$G(V1+dAwazXV7KI!O#IVVKt(#Md{ z$3f^6R^}m~?&=eHn?#Q{``u>bhy-9v&R55au2NUHrPjS8I_!7j+CF!K+WSNd@7ZX) zSdJmN?l-2o4VBV`?{O`Gv}uO!tX@AB|2DDPAu>zZ=6Km5C*CxcXR}hMdJR;o?bz!F z-yt76fiIq|Ci$LiQH6Hg1eBJLbTjoNHuNkx`%lr{ZPyre!#5G~PvfM&#_dLZ$x|R8 zbMaB$Bu0NQtlRp?vk>VMTz~;Tx@^i9AeK2+Xm9CXmCM&rb23~87RgXUZ7J^D`ccv8 zb;D+n@J>9(c0ih@&M)dyU%YNyHLPwBKXpisf zscrp8snNB+(^f+>m6jBl815m?NU)M-cV~!q=vn7FU6)MHJie*FLhroQvNn+YVAYBi zS|U1E8SJ!qKAbYc-5RjL$dS^+8STD6qbl7RKzuyVMchE3e53!hEgmly5ufQ}I_!++ zyxUYU!9c6#Sogp+zr)^L6wW)W)UCD^>v^M~*%0|Tu)Ey(x3I+i^^)LmxT?Fq&Yr%k zFvjPgIdArqL&VE+^8_&#Mj_$H9G!r=sn=aMW16`by~pc`v4jkvJ4Sif!)llJvt}09 zXtH&@OO^u)rXdoO^u@Y$fK|y$sjgZgM)kRr*7tZfrVVh8l?!j@$1(XtuR9)J;pDF^ zfn34{$Fm2YQw=SnXW8-D=H^W*TW+75LJ!I)n(H}kkf~NVbDd1$O5`Rh23<*_^Vxbg zoZ*)F==&>!Ml%P-)0Q9s-RuvB)BK$amfAmc*1?gc^joK%HGeM5HaJprUE7I6krAog zda590!rA8*{v3Iekb%zw$rlx?dH&ND`U!eSe#Hhv3){uUnw*R><}2 zlS7>w^Dc|A!+ZQ7D^cEd%fi8S1MzN>G&;Ps3Wge{%+uZljPm%_Y?kf=$Sst3QULGZ zI(x!Lp?z&~$Rp(@v%Xa8_S@G9Hm)q+(nA{;`aPtUWKgc8aGfy*L^$eth<#iy7oL+X zxK>ASKwYZSl*;_!S6FtIN~UEN9tE1d5C{qz0JIoRGWmptjsC;agk`uO&?kJ zj2oHk22Srx8(N^Z1y!N?U~CEh%@?uXa%=cgOIl1m4nDyV)mkYleQ8WR?CwPu2kztV5sUI&0Wg=*`ZKn&rc9-k{ovGorEuqXEU5Oa+Ty z^q4-~gT~0It9KH7es_>_%Abmir)3sj__86plKB6`SP0WitXt{xKmQ#f1zmOn9Gar zWl*S@#R3o9pUTxH>qlJr;xf*kbzNhnU@CNSnnkNQpUWsiKW6mu$S|`s&59Fk>Mu50RrO#loptX%hmTE7S3O+ zbS{3-Jnw755P2uHU^olE#W-oP6{S;JA1b_A;JmR^jHf zij^2@M=c^9MPr;(9r145oPnQeH@EYiIAe+4D&t2N;;4GaPl@O1E2%#V6roCOw`Rw}Jm;ZH-ay3BlWJK%r+?Y=pXRt0gLb)l7K~g{MWd%{Pp_@7?>Nt?jJk zVA0!T^O)~z1wOSgn9Zf%C9~g7Wi7@MCjt+K(8Lyp0CZ4{nMWkQ;j}DGinB}jM|UE> z7PY*mp_l4_Lh;gzf*0v6&J(p)#jN!AKN?qRatiu;E)1u{WWj`9MHJ!X&{H9At^ zXMYw=UkEpzU5OmxJn^R$QC3uX5^s*$?^eBV3?UsR|KG!2jaV83uT-esl-{j!^+jZJ z5_jFbeYuRrzV!^8$gUfDOm1b!?!lc|ELSkj_bF1^igfOSfF=BM)*72NqF{ksQUhr4P1U5%X}83ej@%Fhvrah``e zz|$xm^+{W6o<~YIgygZyhzLwYFaBvSJo+1sGY!2Lh%KCW$AO5_KPsP!q5IpP>z31# zD`;l!%!6e~OAtJOQaMOn>{bjn=K7>e&7xoxKDfo-04?S|tGuwa$k5yqVi%+Q=FN@W z&^34{Qhw#Wbzc6k^4{i}is(&a#E&RZ5Mg$hJIy`L^CEJy02>1Kv`#(m+bFRDE|Fa^ zYhV$NhC=8~`Vu^tlvdC%Ma4**Thr}%>YhIFXF*q|Bf^1LG(lS`mgMT_VINdt3lB$gyHUA$$t0`a36d?t=P?5m-H`f? zaG8s@PcO&ij5Reyz>88wDI3CAQN@QlIRVb$;Gz*41{D&(mvOB0 zaLuMC68R__tNU#)c$5ptCSTFO zr)prnXyL$5rwA|h%g~h~WL1IXlS)JK7|p#mU@={=dXn*@NMQFS?F&$WEmQ@0@`jns zr26XwUvneEl5iGog4-=VdrPAP0Pk4PP-ZjT97kr?ehj85-2ef;CcP_G*({Q*EpeFd zu4nN<0hN{TOcz1>QA1mPp5#2l41aGYrtCF|T|(O=l=S~aSmy^`?>93ahCxw!jr@~O zW>ZzBo3+6_cQP3KB|>pJRJ85a)S?pW#bxa-2P(10w`P?5zBb?iiAO#ErB5;@(Uvb! zlMxldrO?mhPQYI;+go410;^6Z&)ar=CvC-dUW2bM9j?J|7Fb*^-XKCGho*B5!`9)) zC^;)`$l<@dkn(gnC-2;EE*sB;hGek(3yF04tSWjuf6_T#Jdd8Oy|(X0GFJm*Y5IWb zdpQ&kOFu|%i@J8jx16sO{+@i0Xf9B(iQG>6n+V#@8y3@4?NGlwvBLI~jFMy>2qCv- z{82$iyamVRaPkg5DqAUoDsJBp9dS}QUQp_qfX7GvR4dYSM`u9c(UsT7x|b@*h8nm% zb&RGvuR+9)caSXG?=3dlLI`Rt{oGHoE@8WRa8~(i-qxAVryK}(?h8onua(TVpE}P~ zrjw?=dq)IN5CQ(+WsK3R=LPB(dVqT&_{kO?*Y(=q1}=ztAZhnkyu(O)G0wG-ZukI0 zZOHkV;Nl_tKtyqY_-i`M_I-ek|$HnMI@CGI4X$>T3NIe#J3DiS< z?1U8qenX2kBkVTQZZgBqzc?7tlZH#Snxx59<*H97T1>gc&fZi!5**!bTAQ1Aj&`w# z6H)Jjzl;&c^y_LZ9s<-N0-P<`a$d_MQ&d8r(|cmK^*sVlPD@MP&>CN=HlorH9?%+c ziHjHOG(pb_9f5&3vm|278zJ%_O-Y!_9`-UER!5dZyPiXYJSb}J*jSHtScA)T__@@{ z*@E1rV4QU@2M?SPcZUnL{jHFsLCGGSoOjWnWQC9`;e%t3g_QXQX7pNJ5040+VHHLw z93PatBk=5D5(Hl%ScgyZy1ylr>Pmq~px^5mIruN(a3`a7@?YB^g(^(TnYm-bH_59`6mKJ& z;-e03Cq~*B3ur^36lxYH9Eg_|L~Z)dUB#Vw7XIQ{k&5g>VFZafM}~^*Fdq19LBCj^ z+Z|XYL+!JmdWq8`9CIJ#Rn-OEWKgb7**rOX1^!cVpu*@1v(WH={eg3x)<7&U_LQe0 zH=pu1cUq&=N1{{dkYD0VpZzS6(~Jl!g;MP$GB$zhk@zhUZ)|_|iB*0a+#4CWbo14@ z-40HBY#YC2LgM?e!1qGwU%UT*A^!{Ye|7ed0_WO%oD1*Av~SsqI_e}t{xEJ(RBmCP z(JFU$g}tH)aYVS5LZCqxxDaehOEH@L-R>e;^gw#cSgKxJ3Y*|HNx@u1e&q$b#386; z7G4~A%2|rhZB1?|AIC>(uGmWuyt(BFBxEjf{9Tvz6iCl_#Geblhgr*mCt za73DYXJ}QLEOu0|wpCIrqZ0&XL2fc=jJ-PZufgN0>7P`3LFDiQv83(HFtRe$9aMrn z=b5!#gUY8nD|7H!qd>AAG9R(kA&?ZY8hGi+p)0t0dQKqN4?g6q$N`A1w(k8aOa{UP zVxUAWRVfs7GVHqm(n<+?2HFsnk(T+S;!dm01pu5G8i0fLp(1}ZBn*Le2h;V$An!jf zOMm~EA72;o#^vY{#{vxf*e~cJlOt0D$10zEj#j<+U7bf+hYUZF>AyAR69a>q6FEGB z)U&5CxqX`PYQB(!?rQ}d_R>mh*$QAAHU;O%K@6WPS%t;1=AWVyUDfd10>}O#2nI5nu3X2~D!IO$VSx2X)~EvK zx@3AaCG>SvU6HgB`1=PB&Xo4`2FA;?SGfg*Fgci6Z zZpgpvh}{wZZLoIUV2z7HmM?-^W)}i_d+SR?$hT0FXN!Q94hV@9z_l3WOwY3ReoP@Pu*bK;|Ya}1I27gSxXFE|&ptYz1pfrbwR7%0{&{=V6j=T^(iKy!biw+9Nnvv9niKzKZC-`r%$1`48v zHN4{{D)$J!v-I2+O8Z`Rel`QQ{IWS3`F5~VI8cUxraL2_+(`>L1DbXCd84AtUzezl zb&00wp6L(9t8xZYNzkOLOsoEDJ9rkre*)alcyuKxatJ~G=1y5^c|C~N=#7yaa*Tgf z7b!b3mErjte7elNc#EOkbUsn2>%(?#5*W8#=5arYOX}T#e-!!4m_R+aD=LMky-c`G zCv>7>d`?XGqJihL@gGuEEDOBn;8^}Owgq$538ZLk@^h?O;wQIVvMD3wh6X z#@^%iDKv6QUAc6$(hqH_CdmA2eAFkj9FGw-g5JE!pA1ns z`15eaRmm94mF3HAFRUJo~_{DjG|0Z-Q9(&$U1uj2Os_1kaxTYM=5*#?|!1Yq>@?V z!UHRVzII^#yNu`Ztd19r-#SFhmDR(5zn?u^2^Rjym0B`7Iw}+nG}aKlwYb^A^Lqsr z3IO#C)|+I^C;;3Z9JsSpdTT_Bn2VuA^A>mJTEONQBaiv_fuN<6`k91>5jPKywf(>0 zsvNqYr_U#PE55CA$`w3KXECV`GbFT$PEOVvn~t(|C~}mj-$&wo@L#M{*3jkgm(HZAsj*N?q`m8U9yr1 z4&V28xAF*}V#+6Naw zEw%mYj_+rp#rw;nS$wUtd!Z#^;j-9`)M2DCr>&3JJT^zvjYkE_4G2$q<4Bc}J-!P! z>p9Vr$zaRU*pz*3@L@|do7^!Fyv{Ix?LUA2RJjvP`=?K|;1Cg;MF3`N1LLQcDUcaB znnP65RV5T_hE>0XFnL-#kLErNODaV4peF|Xfvzfa7Vf`+MN7}P{&F)(^xBP)ghBL*_0S;{YjVtsi_CEMoW#*LTLN?#qbKLX2#wc7SnTF>Ny-r1F~cs zbgep*o(CFwJA&4jL@2tt!vz<|#~giUk-yIWcgOfo&SNfidl5TV21VPt37Vq4_c#6g z8jLk?cJ^o_OASg{BQ5n&;^(ER53_n$=2*T%!u$fpO!aG+ifkR&(8_;C=X74XOIR&|e)~ZbN zekB^U!0jsZ)q4f*joqXMxfzZX4V4}$vVoF&J3yf#8@1H4S&YhJ0o2k8SQ2&NtNgGr ztg?b4yl%pPDm0eHOGUbC$O@2z-U&;pk3xCL3WM#*+gzArFY~c&wdP0fOY3-Z1)rzS|-UrE{ zWNX7Bsy=rhnUVFBe9fQ5davwt`0bWk=#ZJL84afO3K01XoB_%bI5NEm{YroHQ~OS} z*Y8_2$%26g%=k>*y+ssC8U}#zxwDU4VVU=EIMUWji`9&3@qULu&&~vHKbdODCIX2; zMbQ0AcZBoCG4)J(*9I-UylNE9zjQbQXOf!|tvV0AM4tprvEI#&{nh($n)OXubYR(mrIj66 zk=21*6oz-eg*)PWJQ{XU({9~3lt_2Q4%6w%esF`bk4GXCZxXm=DRe(Fs89Srj=W5i zaK1M+_Mm>Q;!5<4DmQcu&&j``7V6%_)5?^HkN1iDiQ?(KIB9INg+seY{8EUQNp7mY z_g$>)ce~_Dvuwy)`7)|!eeveDpsD)Yqhcz?zMLnonDQ*l4p-mz{uoe{HRLCD5B>%i zWsfp+@I$D!(bKmmefik5)Zu!8QdJM#EEdW(n`@{)5GUq^@;kpc3FqyXS2cus-vorI zp;}Q=_5;^fQANp|L^q-;GoKcU=E~l5j19g#y^X*6pyG#a!1PG^u6o7wZtgvzGH+L2 zOJgR}A4RiX5#v*#`4>>R%@@+3etf1CrEs&6zFrGs#Sv-oR50c4gB{^6kK=__g)HL_ z@=cHo7Ot?y%JwVVGJWFwPvhkFMU0HrH)*7kT5zuPUOL81gy6`lC(b|#HZi`^arRlq z4h>HXnakN9{UQ?4B|?=#9xF;7jnQZ!jX-dLOj!_uu?6L(+bcbr*F0&4#^T#Rg(qG} zYX#FR95vF?S;q;j_ot_m4D89AmhmuID!g=slW*%(p-KId3K3Op(}Yn_W%N$NRjpQV zYwW`=3y6W=uZg({D!<0jX)lRu$@WwXav#F`%l%=m1L^oQu!|b$aN$4#c$cl}1*GVc zJu5QA-*ta8_&M7Y2xqT5zh1?TD0HnKyfG91*A)oy7 z6ye)#xJ0BSq+_l&pADp$^)=^aU|QIv>{nHYQU$o-6ao5k;h0I0s=|jG>VfsRh2?_? zRj+(`ld?HC+nXSBAuqO;tm+Jf{N7O9q6w9Y&r9|_6AO8~5*4{_`yGMjYJ%!`F_5$* z+Acr23^zX1_O9SqI+J{LOZ7w>9GNKdt62%`Ct-!pRNrHg+4raYOi}9wC-sdZ@U)1q z3W^0Ac;r4fy0j(;YhoDj&%ErtZvC;OSpuaIU1AxOJc*#OaNWNDjm;m2-o2005I~uU)-M7FOySx#eUAI zM?y5%vc~z!R2_gDWNp{1RVAm7_awz$~U}9TcbR zmvRy#>MPh_e0C~|UG~(kE{s17yK?8z_UU+RS(5~_%=NQ!_`tlgeCPF!s@Z@X(f+hzA*%-?x?t85;C?CwaL%v7l;jycLA44H6aXYZ>G584M& zO;#Mva^77b1SclJ+JwHtz0_`&QNwk|%pqTHpyGj1^@)SAH}nUbtMoFZL?4qS+W{Lx zutB3A?#l|T2o+GSU49{MSd0%1hGzM`mh05JvVkAU8}XZ$H?!HZg+q*36MsVUS5)mR z&)QG6-2vJUJ-@{ z1EB5fp4$HDPVGTo%Ebh$CSRwgk0n2Nu_HeC(p*;1v7-9sz$qQcSg^*XUD?1p)>F=3CVQFc#Vf+p<$kRErmOnaX^J1dx-?g&w0~3VaNqAfpSr4Z-CAZ_cF6jS?xVn;8)-yKN{n#4%NA3b zRoCRXlN2Rq^dQ5B7M5cpj_QIG)S5F;U^_o?Xe(U+n4dfwKWbCd@n!fBoBy!W6Pfc8 zK-`;jgTV6@M;Dia?7Mi!uPL)TRC%(@*`#ZyEvi^a)>!x-X=IHgV%MOEo$rCbgG$wR zk)(zGSD~JkX9AWq&JK;{%l+fTYx+s*EX_RVL@Kv>7FG}Z>S=;T+msirMi>6$( z)*1ajN(R>6`C9mD4pd$fbGEaul`^O~*ZmtWnjG8$m1PhpLiK$Kh{){$E}H6x@4um+x|nYVC8D! zXtb$!hTPMhGsU@nukFhQ$P-)w58kEZms}_dbToPk8Ph_!ImxvxLx0+|7_SepY^+)BCpY#qaqA6ZIu38WM@;8~v2F$aK+9#fQ(jO};U(1bc^r+0qFnn&?d*aw-N;NIc=k5~ zCH&3^YF1UV`Z{(jjF>HQG}!Rk@TgD)m3_p{w2_-jTRto76NdHt5=t_FXUe zK8r9`VoZ_Bvnc(DtH+v}%c<_|=SUrPKweAmaufb3vMo?^S>MJ@o`4_ssLhZRi za!;t0l4k47P`GgFE=K1lU){P^sJ&^N9ob>VFM;VFtS-9tP`HY^9Rvh&XKVCr(M1^q z+Kohf?Rm>ZAB(y(@W)og&0RxJhKarj8}2I|#ri$4 z0Abk9X)b>oA6V2oacbJSAkyEapoDQdcxk{iget6S)eXetXkRivd z5EQozi*7D*H4FHBfTO`{$UWxtk0)|JceKhdBXiUB`;gF--sUV|IQCUHZPZjtVH(=| zExUTEY;6$`)9g(Sh_5O6>*tVk{ew#2UQ`-h?*B#oulFl5i8$)`CJ*p<8o*3Iq+8v! zD*uTKivITnC&Aog8!3(WME?7U?3@1^x zSSDtNYn%yrjL57>Z@73LaK)B__AxZcmpi@cqPD_SfTDGZ2aoua!SW0`+5@c6jGL|5 z`O}3@@2CEllQ{v8SVd!IqoJ?ry!rMW!-v`surn!0TiFN|J9x29h56o*HkMUoU5ALV zH%1>GEm^sTN9?Qjr|&C|4sfWXBBP{N=LVB^ZE-!Wr})~fe~KTpUc6n0&;F`sh`M{c zq5vrj%xkasT2JE1LF-3C*;4h^WW3-MdjI`v&Z4LQ+Gv|^(#vfh2^~v>u1pdGO-ocO zT2PpnyWe~dG|$WX`ceQ5jYoRQa@$f?X@3DKQ^xq~19SEpZj13V^ThNnwYpMZH%J=C z%RWPs_HE&YDX`qH7+e?$_^iG}7Bqq5Zp*LzLH2&JK9EJdAsNDXzt?4s+(|rFrK^BB z^N%?j&X=ZXOFRqF)K_Z#*3BE`gN|0Dnz;fLdDVrEcUykfYa3JTxtWI@@T-@XXC zH(X;Fy%-V^(tyP$mCc3mv)wyWG{WWk=UIBOCPY2v> z2(MNvF20&GQ3NxoUng-|RHEwyx{{RP;W4QUfl9N%!Al)^YBNxe>d+WYJ5SHu&c?}hc-`*JzF7)@k#Hfx(cyCm02 z)f?}!REnhdJtofHZzDw2Wz}WTKIYfm1Xr!b5hiq5vp>dPZqVgxkvs5moTXnnsrfmqUUONVsL{!U`xZT(m;lQ;$W5jn*Gw73+dVYiqhL;*j!2n%MQ zXfxB%2;5tTyNTVZrapHKk{s|G)&AfNRSl+VqqW$p!+-Xwhlxgw?xP!4j)p>R=(nLb zhBP*+VXQLmEpaLYZPgH^?)wiecRE!B8iZ@Ke*L+M-z7Q9Dz2=XQ{M(=Kc0GzYry7y zHzw#&Bx!cGc-0JM2$yKgWO<*u8U@bl-H>vc?awsyy?e?Wx!Aa8qQXXo@~8LU%4#y< zEu;w$JY=tRDTHtcWB&T`77^s^&x7_JXs2dmx)00BLEl4uP@8|JI-;6ek2lg$gfJ#2 zQ2G4%y$On}*C4M0o)P|Op4Yom)+q(t?)I{=iOSYrXDd(rVxjvZV=pj93r8}-IoJ6J zKRz^c&G#|ya)N=E2J>?k)SXWqT+v0lGl32~eg7YCZy6SK`>u`BBi$g4fV6aX$Iu}l z2nb4uARt3`D=iEq9YaVdsdNcSGlX=A2t&spC9r>k&$Iq(t^K~ou|MrE;tY4kRrh&b zyq)u@(zPjQPG4)%d@J*rj<~a(t6nu7-j-`+a-zMT)+9voIsn08a52gDmFJ=fRi33A}yqTBkSxT(h=K@alOU{2Z}{IPj+~>8W{_(X1RDI-!srqXN+>P-J>hwt! z#2zCzH6Upjwyl7A-azA_bZ`LlIGsmT$qD%8^d-}>*|fp? zngdUJCnNiPyF+2CX~3s{GID7+MNBCCtB*g8fy5i$4*23T~4ooepL`* z;=pj=Qh;>YmOl9rySBE*G-V*_DHEF!3rq=}`|2!sfX7qmcDaVne}K-478?o$!8iU^ zI0@2$1MYsFui-qsi!LQF7O*QuArkL-4t&uvlbQ;a0CpW}iBSF91F)_wSstzOhZiAMGtnzr($vgv9Hm3CC*BkqpP{#Li>N-;ZTqf@*sGn*xXgH=;R!A^ z#rzerPg<7|0L%ER5lMKin8blMj^ZlhUY}(HRgSmf%NB!u7bI0Z?!0?Xze@YJD2+g} zHk0jfg+Qtt&!Q2B52WE9ojy!SKNhP^{Mb!g{cWE}EZeKc0S)feKI*SI5sy40MI_?Q zXmBwEC5W*iO|!-&+saIN7{pcv&qTlBkgboG>te#U3{w6_@|Fu%E~S0JP2zv<_7XfVt0`Q14w=Nx zgTja9I!kz<$bG|)_3-D-*UrLHT{9%=!4o~ecGGw}xB#|+0i;z|@&qO@PagBs@FH+#kRD#PlY{2RGIfmGMh zqm+K5E^n=kW6|iZp((?w_#^m79^hZ{Yn9)b0NW!TxLi+3qGuqZ5=PAn5=Qq#WprIf zh9^*s0%xQA4Lo>cFcmObP=^n=D-IYgx`R_m!7Fz0Brtz9=n|F_eAYSUB%QT^fq^r% zIaaPM>IrA;l1hkXg7Jk-3#DTgJh)4%0K=&ai6Q>#vEepoOMXOg6Y^qr_E(<&79Q7C z^<3oobBe{VcnZA6rH7v=H@O%Dn&*wu1z9+6uw;HPk51YdH~YmDn3lMJ(=FV%i+#Zz z#gi6h*&)S=lTyAXlQ@;GMQ~yb#G)e_Ee;bwq{Xa$KY9yk!~#2AFh-U(Nj3!mCno_# z-jlf0GR<}A76LwSO%l!=BGkAgs9BbJUwk0^1qDhBF`}u?uq%7nT>sk5%lB<}Ah+oXweI zdxg)tsJ*m(^wtKDHI8NQiF|$Ge5k=$D(d(f0ER_r2Oy$G%4{575CMyfx-Ni3(wK){ z>$OsFD*)oh#mH}dfQ~|x-ae}gvfc1b^~2J9dQjwY7(&HB&pKxe$-Y#T7?7A=!3s=; z)+ERy;rB1Dz=Nk=&mNf}E>h=HzS&uwWYWzqUa}_mav3WGrsg7w-x=gF^xlWbX`Nih zkwC~~jYEfFH8XGXpPVv?_F_cu4jy{Ae9~A>*kGeuLeM`;dF{U(3eH7QJEFU zV@n>`^SmUb*<6>=B?orC_Ld+bnyjF9n)09yVphHV2kj4-yw&NF)3-V3m<8_0pU3rW z4hHd`yt>-->>$4O>wF_$Wb=g^NkgarUAp5`3E4axGt$(Lx!8P??kDv!WF#)&q!3l70yP(N&X5Gij#GR@lc~;A)G? zsgj&rD5)Tv!w)a{cmOjzA=al0o*4vpi-G#5*%}cdHGU3eR`sE=QBlVij zZ*KT3DTyC5pd$DCgjN&;%)?Av_$T{5ieP zT$NJd-MX!$^Wvz}B|J~9-YI7Iy}I(g?OH|PsE7|KY<99eg= zx!m%>0^H5XppIKVjAs}b8dfWiRh}ALQTn^OE~~TUB=oR1N>f|kDn~igV}B32lN-#=wu&F$VtP%|Ci_%bjm-aen!o$EXn@AP#y2 zbH|CS5XMu5NVNkFtLfKjk5gg$y4coaLu;-#{H?W8!K0{K&zV)ic@=x0h4DFHWvpb- z|0lN!aJ)}AzsVoJ^1RinHA#NZ-W<90K_WoO){vlN677Imb?vz-u;D0GCkAV20jZna z1@!7<(b1wMHlWy1(rB&(;yv1dhYu{@-&))#V_P02xjNSE;vGlG4Nml%WkRR#I7v`a z!7l%44|N9t+dRq7xSg|&6wrmmjH%W=d@S0@FV+0c3vjFx?$TbILwD zsUXZdc^5yV#%T23@%;#_EAC(Ac~nBCfoTI;`mf>Gu5QA*K|9eM7!-uYOv{{c^OyBG z^2nZEQh%qcAf$TO!TJCQk0rRMuzjv4g96P~!Eqa3X@~`A0!-{a{qZhp#3eKwa=(?O z4Cyw`u9zDV@-&}(T*cY8{AHrTAbqVt(oV?G(WoFMi;MQ+0{a_RR(oe@WE|W>{(&)I zoP>#gqT!JL-D8bz>r06AR(A6@M|i0`c=l%=ZF`7`f2(R71eZW-XJdfo1}MH>HH(yc zz$UiHFWMS!m{I)1p(v5+13X3%XZ8WF%Q3~e(kw0+Y7;sRgzN|UgOH#Y^37v)v>ILg z6${m`LU~lSu))vXdZ=4Y$gkVtFRV0$T7yYVMBX;ww(_5Rg$YFWPn;u~jC=)B_dS~J zLY8UJ8UU*eus5(gYY}BgkdEJeK5(woa-btM_sIWljgya>E_5%Q){E4J4A^Sz$3F;w zpR6dsD9de)y8JV7!@e&*q3Ri>E^Vv5HGCV$w1~U(Fb_xhK0U=}Q(~rS4^>(28zvvF zN!sI28u1yW$QH0m;lQDoh4Dq`MNLe__>Vaxg0AK6mO>jghis&Oevlq|k;5lX zhUqTCf*;HdB%tYgN0bB|LMQruge|WHG$)`-29~vJKI-l8#4pL^az=D%aP<|LZjv&{ z%zMHHT!~I}j36@DHZx|x9}`e~)TR|BY5{-ELIeC zu3Xl#RV8WFQ8CT`q?5BbznRnSu1Gb3ZVGej9s#Pq67Iz??N_u_5UcV8Kh8GEQJVU9 zRGhMp|1lZ=IrpfmLMXXtcn_GJ$DZ6vQ9uC+g2i3ibS92}r)^_4_i*a`hy<64N8x#@ z0ax`6TwS(V>Bf8<|A>F=erK1&Y(9;pzQ2#r=$<|zuft%AJb+d1%tgIsl5z18B*@ii z)*%^;jQ68kg+-Y)Qw%OCuoCXj1q?G*r6Y>q>6boy$>3Z_O92|M-wbO|M0COI*z^-$T<2SOx{x2ABg5*4kc6}H#3{#JfcX`XmIY+KjJH|L5j`z6k(qCYusha z)X6YA#F-mbk8HwtCu`VV(E4QlM(gf^;VjjbMpddVd`K|#nZ(3$5`6k#lcIw!ay$Q& z1}u&{)abu(^cxlSq%-0ndGx^avfKJr9bZJ zb}lgu#)Mi~ZxtZFa6g7xap@RdbR5;90|KUBL=!k zrt^>VPYylSGbt;bwBU$tUWsjTm?<~~YSlr%fllT}(yn985?+V|1N~_}NSFxzIv571 z3sop1TZ8^Zm^b&EzaIecEm(+TF8^|0*T65wF&Vz?4eB%oZrxKAgrZ?=A+OI3-~kx| zAAl=J&k80+iPsFoly!%{7U1NP!oI&@=W3%$FNrb0hwTfbMIGZ5CkmM?p-dk_NDrmaR& zg9~2nuU3>AjCV?0k!^WzG5+z=Sb93+Wh7lsX!>4RYyKgR_M?KwbF1hEeo2!`2z+~? zDu|b&L$K!HV;CK@d4%t0s^19TLU)3>fogT>er*uAroZ$x{x~Bn%c>&;zMIq|Q{nT% zo5yae##ddu9vR==MmoR$B$j^agvC7>`eTCA2&g<3N z96<~Bh>@3KFGu(?m&%!XJCqpOnu3iI9z6!#W+T=pCVU%y>M}*@N zm#3>kEA=H4cY`=%2aqg)HO>Y0yZ`QwZyBe_!beG^&5b7{K_`{0%|x0Clc)PO)DSfi z8g9?Bl<)9&uT#;2#F-YOmL(?G;W`KO3H?cFlC+`BTfe78kxWE_YknKiBv>Y$mkewT zOdHCsi}PP5T~+rB@EUVNj9e#+O$Tq;0Ku3`Q}=M;T_>@YVTulbIRp{zTN5AnbO0G z4=3*(r<4C}d_ztya9kiznx{(&yR@@|xrTa*rg@RV=8c}h&H`jSj2LQTKNwBzMVo}I zLSXVAorU%>f2vg6kzW4NJ^iy+XoiDWM~NJ)2N(SkT%9`xU-Av3`C3`Ul>AOh^;>N9 z8}ETRbQy-MM+GOx&^Q)sHhyUObh5M9TU6hZ6`s&ZMrU zE*%8D@_$7}*vwtQ()i`~Z0*iT3q7m{p3T^*(N(&PU&qiN1@Hf;iTEY+_!U9XWHj>G zy}IKUAGI!}O#C*1yHdO2OIlH}&c%>8To5il+qX6)``gygl4^Peoxbl^eCSu@<}EwE zFQK5Nq-bFqs?`ER{^dmZPRHajj7GUxj2s5`@->D4y}q@qj0ZI#EZyYrxNL-1M$eqyeebbF`|5 ze)ou~&b{rETkdkfK)oK)*5_dBj7Q)a(lTT}Fcjkwq}fVzxz=_p`FnUlNWdH^KY6uC z#upLbnSZKV1F$u*6Vre=^&FgIhbp^M_rR?Wu^xk1i0E-^*yjr-G>{V1Lr4&Al~2y& z>#{G~CFSxmP$2N}T<^NY0P08E0vcqRqt?bZ60=#|+Tyg9*<6_#gyZQ}SgkUSJ)=>u z_x?m{3+D?a%m^^oR7@TAevF|3_GM9SGX_}Ru%l0*ngmd0&y(S$C#`P{EurG(FG#pv z<%>NB;%Tg~n)puNh)3+v@RXu`Ls?Ne$-DsabI;x!5jb{2 zS&Q&-SWZ+#xZSCF0z~C3@LnsiXT`5|F&jwrZRLi#Br;h+lpa9aS7`JN{9yHJi02w* z&lB_qQkJHe0aZ3(2#ZemI}E_%b4IgU(%U3JsX)UM@l73y27MrgSwRk{Mj*iP-;_3! zU-+~!I3Op=UJ&N6G(a~|XWhH#an>gn&)KFcQhotssUjx`BEW9&Ynyu=6n#2)S7=_Y z`=S^wNXmX0!+VlJh&F-QMdZh!=31Uw8bM5gf3ItOsxH;}5#Xiwa_8w%=JdDr;mWtBPn1m{oH z8q4p{`<#ohI?NQkrLs03k0_#rFs~trGoG*)ST*AX#wNI6+H`l z$b@LYu8?k9ho2=$ZyS$Ga{a8>n1CI94c~YL#0GXuQ!vo8{qrutFY|wT?Bh>2q3kB( ztA?|TM}pZi$l6Exh|!Z7HshX2J>5ybfv^U@Q^xJ4S3wys_`p#(#p>{>R6Kbw8KZ`5 zU6Ws-t2#^(Sv^_-tS}FQW_?m5O}hO-G@@qv=l-hWS&L+^-ubZ=eghT@mn~sdr(2-o=r7KE})6yu`)J?psJ<|Lh@IV24hXag5 z1)(H5`GW-_2%KyIl*A6|(^3TT5ijx+zIQD!0R$spa=lkX#loBQ2^*5s|EnOa@v>4C z3Ci>2GY$vJ7eWeX|IP=MdyW~}BN`twa(}eZORi`$9$#= z-HTRm>V8(#y`zy=7WHa-(O}D&;C+-w9YrY8H6Iz8%RRxD^iUcvDq>K z>Cj1)ZO*181{kB-h8Y+2|1X7!N>3P+thG!%26I z>M{L9?=2;6z*-YEXX4$b{O*G+tva!_SE0px&-_m&;dXM@NeQQ^&)e1ziyn!kI`v%)#S5XgVGV(9)h_>|^RQzH) zhM(=0d6O^`ee^t*{dGgBnPtyx!T+Si;9~0V?z*=8_=D{CABb^vxVS02%nWtkrQ!*b z(m<*~RAZ9QCpc}bw9nd(fdHtGg?Or9iS(|b9G0!@V_0$< zde0f-T9Whl2Razj59e)e;4=9=ap{*U$*|wa_XEGkA%Bz3tW5My8y&*)qduz9pip93 zWnB3+&NSm=UI#Wt=$KBC%tPs3$)7A=h*%OheeRcgZ%OvLK=FAs5zU$f)C+8st2k80 z4>r|H-iYQx8Bdo#Y4ytzKA6WJ8(`SUjGn=j77-jLV_qh54pLm5(*5x?LM+p32pp-Y zZgMHmqw4iMM%N8TUnj&5Ggvwa|8ZjJ!%yftoGvVitG=%Wqd_8f<%fE?J!D*_f50Ro zgG9Mp;4#qqU}QWkro<1o%Xg6dPJL_}iCVvet{=tKnFL>mLRj%~HMbTu>Wk!@ABim* zN=cD09KC7w;z`Tsi-qr(E2q7QvFo1Q+{6`pNTz2zO-_qdQ1cIWHMt`^0!0U}W&TmhR0eJN0;sMJqGMqd!1T81Y&$e(2UZ&}Z z8Ma{eJl#)h8P2`4z79AH8DHF7esNvp(vrDf8a9m?ak?4kp-)QVshTjUf#|E9L8SZU z2VlefmYrh0)FR|FuhB&`X*FzcaIz!j?%fv00%8G2LM%*L^jKBX=yUGqgcC_< z-m&svvfqW|O8&Mf_;N)yY-7&OLuoH0^eh)!Q=LW=$F1h{5KD~SN1^`eN}2a%CGreT zKk`Wb(Hmka;Z$d}4HA|*wxvuHtg1CqMKy%kmmD8`9WDmxJ8E)lqp>0(WQp2*w(4=X zEN5TddpkNr1`<(2>N5NF76X{O|MOlSX<4_OGnFX{IA z5)!vx(Ec^^>`AAYS&wE;&-768>Ra*)G)CkzXfsg;f=HKmVqBqRaGp`_KMC52pRU z9eDcbt4%V_-#(}R^5oN){e`4XspqP~0U9)l&vF8{iGj~+r{_y{=(oPgohSFl1T-eZ z0G`1@K7$V~Ibj=iLcsyGJ!ay|r-aJ>o6S9S^^VLX!Y{rn`9dxB6AVYSqDBYM9f{wZ z`iP)!()}?L6=~yeHCs0F@gPZ1H9arMn*pUVGNoA$3r1H^_8I6@#(YzYoc*?AF0SJ{ zwxjMg{?o@Ya?JFTk;In1N6P2d!t)PWpCC62B=d{^EPOvbgxibwm@dmdtGiOl%Si~d zDz@kFtu(%?F8Yz1osQC;qi(y_gG}R#>F5@v;`fInX$kQ~PDDiwCIhO>3?nGZ;TEoj zQGT|?)x<&%7z6-tG*&?>`|l_KxG9$5;gr!!RSB?c8~`_^4uwdd42!=Y)#4u&r3*1A zl@5SZ`7jV}|D#L2&y=g2CjtPp^)VKFRa=aENZ0pz54e zo$q^B4|N)dMvt5GtlNHJdEB%w^B6rP9=om%3NKBXJt?F#@;d7?EMwVxLw1?Q`ig3- z`QPameEohdXIQ80BYwX<=z)s6wvhX)n$6EJ0NKjjhJv`ZfGrg_?5^+WBPht$Li72{ z=swVwi!QZZ;T3h`oXLj?jOP1SDzhydq!N**aA~#T%voq)|c*+V&Iougla5%e`)z#@>r)SC_zHMhTgo0WL~i{{&= zH}z4h(SRKaT-*8qPTj}$^gd_+`>H$n&j^3;xt;6o9aU|4T3P?-Bv9%2xP&1JY)k!c zc;y#)QoF&$IqkRX>v>F^x4`73j1Wu^^5tC1w}nU=iuZT45J=8ftFtLZPPw^5JPpA- z%@?7JW;|K9SWy#1j_#zdvSl{3I?s6GbYsHu&s+uOJ*%Ix$tmIAq8=qY$-siG@zO&G zk~ZBHf(PWWI8CA>Ubhj-vIFSwrwWzGgbOm>&&n|C2CHuD;Q6yS%lgYdNdb9rMe`yb zgO3aeqc0+{akInp%UGOYYZLu7wfrpEQK+$K|613C)f(F1sg7`8ElLOA3KKmohP;Pt z{n>Y8QTBM0bkX8{R_6FIW+h_nz9T(FkZzsLQTU^#D2Q_}LCn;>qT`#ep9yB*e!}@; zq-T;ZM9qSpd(n>&qxma5K)-1@MOoI=9|;yPxZuTm2!Ls&eaP+$QlJ6nD|@2kMEkeXXf{3Jj7P=8E6@d zx##LwJ3_xx?#j&VLtpNyOPM=0KmX`4g5Yy}o>iYK>)5JbT#&_swlnHH?WL}x!JR;y zNbYWvi)yir@5n6uUn^zrO4(E70`7+roY2fspKV3>CpNy6@3_+)a*b9&tVk@dul2Z? z%Fm{L&d8z(vF>uXUBYfwE)dD0$ITG@(YiEM7h|jjn*|om3hp?5NlP(l&ZldoO;H~o zCdf=P4G%d`M*!m+t6=u-|s?#e^jgyTyI>T(PcZI>zeD_ksI-Cq&lzir?QH#y?M@ zA2uyf7*B)g{|tbwDLR=Wk_;p`3ua$@1M`OtRj&cS^L}DWfz9yY5!XQ+6+|SbF=-mW zo!M6yE#swDpOO*H)CT^%1HMp{SpWXJkMNUkJasXyO}dZk-@N=f2HxMv(&JoL{IB-k zn@E|+dR^~&|558`4Z>}!_7h!$^S|F%8~fK-F;IP$9W)Tt z)A?m{Av3A!dAR6R-?7|v$9zl#$sxwD(e{Q%(xxhvh^@pn3}Jz%&v{e~x9QztbNFcm zzub3w5HxD11#Q>SiBwP6RGusG9`ZiemZrFq8YCEG>KUe4Z~|O*L#Y|*<4ocJz4G&< z0d4w+$H-?$EyF|D+lXfMJljGKT=OwD8<{a5#Wu9a>`zGXjU+RKz@NzDFpKyeb=wqQ@;E!A=Hu9p zhJ0x;G7k}Mf81{tg}g6ojH3)WrPWtcKd}r{-BB-Z(I`m(>y5BJ>%9E7Y529U^8fUE zZ$0MO5C6T^t%77pBBIt1;~f|=@VQ_8`hRF(>}0~&Ti7{I;s4O*q0f2>cjzNcf5ePY z%YnmBYgzu)*^%G(2X7l9T|R=--G00Bw&s0j(5>Sa0T+n^LGBGYqmO~a49KUrJ{1Hvj_Yy#z1U@HLnJ@VgvBxlI~ z!8z%0-*B`-6sqCsy1C--Qt)2NT72JwNo+|CII02w^Td0y9kPs{`;Pj2;^2d-HmEkr8UjPiosQ3ut@ zeCpCUfqj1&n-$2iys2oDeyDUV9QJWBG+OJ(;MY}4O z_k?_0XS-{(2$i`F(jOGyZ3py1DE^k(4F z<;0BFCQ@K}+ias|ptICag+kg*TEx+%oC|?z%O~>D9j8OBgWzkFT z=i!Iwuq;ex28NS&CKse7RZlaj2(W68(mw&vbQFdVnRf)2guL-HMELMtZ!|f!U-}%m z&|l4~A=RZWu5;8wpM;jXP(_AsJTlg6&!@iHhjCq0l00PsSaCe z8&JO74&6!_?zYll87v<>MSmxbB8bfD^@|)FS39>;_iF)&Zl#Jw0!ARe!QikWGlK5@Tg#x? zK?R|+l96uH-J?Jd&$BG{s}%_FAE?cMN5iCC$7mj-a3=4#u0Urzs32?`?xYri76`in z*f_yay6+_aT=)MrMNxz17C8XdMf9Iv6?+0WW7AhJ{)ICGkbpkmIRORAx&^2FkCObm zF9f;)2n(fQO2Ymg1CFSnR3P2^JKxk90IaOlJyFEj-rn0mez&9U-(390dB%%7{Braz z>IS7{hNW(ebU9_Nzk`>vcf;rezm$ZW2fk^l+ z=UElZPJ37J=q>vnGOX8uavK8gwO0-=T^jf7(|lv#yFwdDi!vcUrq8v+DDQze9?v6* zW+omsL|J=pQ6k1aD|PXA4Hq61D0Yib67#0W)eQ~KLwK54dChVpB>ai zGgDX~fHxo|xjvdU!}OGDv8^Acq>^ZrPj5Q%&tkXOV-RmxFP=>-bDq4>{oFztsI1v; z0`1$=KQzHfVY4=r466J_1Wk#U7TN8824baG9J1u2-@tg~OVdOCiQ&kx_K?8vMk5RK zLf@RAK-ogNe`t*3$FN*7Z?PF{=uWEozI`zuzdjj#R^9sZWj4k!2QExackPZTpPFsx z=e@>9@00A@LdRsY=1YBHRtS+st5j~091oM6{*0DNg zSPwBhUY`=q8wKJfXFst{DfSRu9=u@1bIt^8H7i$4x{9YylI@$mJ%di5Z*FEmbFl_A zF&56E8+Bc=DQ&TY{iB~qQP&gm#;B?5)VdR8jT0{>CE>d4X0w$3CUxktSIg`WlU}PL zz!7S{LtyF9G24rmzj^j_BTb=+SOt;GrGsF4uIuC}vh{cjzbiUhB3jpT(;02EXXAaM zwMs+b2l)BpM~UotQX;2*5pV$u8iHcs@MbVnP82ssSi=5{cZ5h)0bs2__(r&t)DW*n zaPWw)IBVww3aWC95)3c%1>C1I9}ZMXBGm8*q*MxSyY3VT1RhtkpMy)SBnC^0;04hR z(A#mnD?ZE$hIr3x^!DoS|~ExOib@qA58Na?}YfevdJfUT}Pi zs)A^IjcD}JEik$ic%&g%G&C9G6+=s)f}ok~pU}A4SkW3k>>qg$N_WdFYOy%K?$*Mw zpG(i@U}qpqthe5-*1jT$5Xq3x-9USL;V#lES82>NDth1G1CNoJg#986zY}4V7@Zv) zr1kv31P9Z=ev`xG0?GFEMFbARQ9+%u0T5+%lcE;s366S0=7x6DVl2jtUyNeBgx`;D z^deH9cH?x}4==*}z|j*Y6f6s{QiLUF<@6XD6Z`<|?yS)UavY)hf_wZFo_3$I?Fn>W~0xrx_04C73U=v#oPV5@laPAC z6&NW*r^~Dc()(@%x%l`hmW@0tnH1(W0<7K(%q|kM^I5H@q-4!zBd)Zk zjt#;58E>=~9R_9iU*O`W`#lG0<9;o{*D~s929W(Iu>D`^$6!jz6aXXte&}&|ersNV z5yU~N9Y0@U>>5c0Gx&2Gwg1XHV7QjJfou-W*R8lstXk?s3rjQbz0?OJc7K1qCm`w< z?2MeHdRV(5KH8Zh8#25)>rFBrfPd)Sxbu#yOO8gfXAy4h)HqNgK#kn?-d&H7VR?3r z9s19~qHaAXKa@kFDVhnIj{a&_Lzui;q=!_b6{MO8#DDNH<+cDn5^YXhL8{VUo5 zYE0(F1a=~zBZ}Flc1bJW13TJ;D4*hNX0>-^7El9c~p{Zdkj4b{^fy zZ_!aI6p;8G^e2jWhygCm%dO#uG~EFjoh)YCvpPz7*u3@Im}%$JR)zZ{@DzP5aca0s zN^KA5!=y%@t2+t(pq6oT`gdy)48y+B&>%k0)(Fa++=gD8S_y$T_Zv1JpIineNpdr^ zAxW4&!J@z@ZU(UK?68zl@GcwGV`sli)F^ksOwJQZ^X@|Xud=OZ0ZaXP3tavEveA?F z==U`WtC%pcp9}tvfIlrt3)t#_K#^BgtWy;KdV)+YD{uymnR_WRc>VrF`0ORqVQ)+1 z0;?$*&bbWlhyHmIhBn7n}GO{2h~&Nr;$J6&Eb@qvj-(>#wNAc08F^_Vc+i#guoL$$SK^CCe6st>ecg_ zI#Dmc!MjCVPt8IaMiNAF_@qVDvvxFY-@KRZ*urk&4fCEsufdjT{n+NMCY?AhnReui z#NEQ#XG3(sPbZB`pZF^7h6Xl5t4~Se+YMZco_`dA?-fTAs@!tRSOviQ0aU7O?qI}L z-6jD+rFpCzcZNd>B|EGq$|^v>#YH0ejrTr9_F{Ys$u^U?(hWX{;HWY{Rf>lkM%W{7$8-!j2X;b>>w`#L(O|lbOd9%P>T!Je;Kldw3M)Af<0Bdqc24S zDhv9s8?Hwiq*l!c9(|nq2moV7_8QeWY#nKuBVMF$Qb^}2-FRZn7k&q83Bw>SFh{;G zD@E*CPJQv%mu*Nfl-ds$%a>JO4d?Gy;^1V^`vHW!CeUbZ!3^SIg&-T*+!uNRo;|gl zD^K2fY-oFoY@_ajHun{QUNKjy%Dq+yW7NCLP!0O&sykh>_q|34BICE4T6xvtJU{!jwf2cR4QvL+IxXUYII17I}b zS7JB2jN8w=xD!i{M8CS@(X&M7xz$R#S=|Az0{{_Jk^Glp0B9EltON)p`r@!~iGL>G z$CXpOTD|e`b|`|)QIp_Xj{~TJQU?EcP{3sg9vGauRRV2FTLlpB3yS|Di8OyP0Kg&u zDO2Zmi;qmLrUAio+bLtt1J#e$LOW__-BJOEm8%L@pcY#JVd)ZF^G z8LaK6j0S@I|7beJYjhlKF<InF9ViWDMc02b#yigU%9 z8br;uw7r!m1K;Ws{u9Fnta#iRZV=)S!?{@Bd#X8TQIsnOLv8$iB>(&NSY^zJnD7;K z7Da^m*7v)Pb|`wwemx0QNhr9Z!q^*gV_gja+C=LrgdYwXa-5xu?_w7qP5kav;c5s@ zu~!zsTilaKA9R)U2%v|589*^*WYbZKrjLtZ@{W}H$7D%004)FMC08KU2rEG-xW7u| zzBqc~6VA@0H*n7+Re$2X2V5(z39&0G&M1_!1!=}9|tz*18F zgfCH~!CgBUy==-aE*_obZcXgr1cT_3xx8vam#p5@H1s$i4mB_2+MPJKo`AxYzBzhW z@7md}ru-(!wt~_KKax`cI6Jf@$gad$bmZiIp+$bOBv}439`=o^ZlP${aZ-AC7T_G_ z_&~EdMAG1jULY{t!^oCcoHF&cRnErN=_tk>LfbgEy9(kVT}HkV%YDq_j`0Jj@z_BQ z0-t7nGM2^uB^tWF)ZU?o@kqle10D2jn73vxhkAEmx?bx*<`Ur&v5|)z%ck3$dSfhm zMB;2IPA@Ru7*-jjjokCEx%VT=vU5EBYKh$i1AzFNC3WR;wuw%fA^hf~3@sniuhJFE zb>+UaFL7+VvvZZs%zJjomg&$qxt!SO8Js6M*Z@r^UtQhp#mX|Q`=BBouL*l$nJWV$ z*2-AC4{j2B22Ehf)!@2PvFvvqHMw}io>++dW%v}f{ha5WZU#(=$<8Jtlk03nYi)X* z*ySG1FHIo~cSx{x>8#*|Zr*y>Gc}|g=z*+$vuNTkTrV&9C~a0G45G1ywfwyFJ94#d z*0K;#2aF^Ak_)h>kx+O+KnAvk2yK`BozxiYd-=cqFqVG*P$T-9mWLr|ETb!cny3H; zOC-VKVh~f{R~uLQUa|%;WGH(Z5fY9u>@3K(MV?;gvP^2`HTX3QZjh4Hc!(}o3x4Xx zn-LB}cEEhmhj^bjVU+*&2X7>jJ5&-%#3;U07ij2w)Sr2QBX6dR%_ilfcXAK^1I^WH ze?p{hgWEp9K$a;r2qYvKL64*PCi5;;*XF^PKhXqt2k6a>;Ap$< z;s;*Uy|?5r@i5xy_L17m#_j+Le#ILgSwWkKzvxz+Rm$gSVRM<~sPwE8)P|EJmoDU= zX4XB{LikkgSs#SW_hQk32=9Uu1Rf?4*xL{p@!XJEw(I5ZpaClMO*mEI*T8+09w$;>-8ECV!@0LTIG3tn_>0TDH_c2D*^ zq4Rh3Tmab);I5qgKKq1YesghlMqP-EI~HfEe9GVSq;oh!z&}pH1Ckv;Y#0q!brhg{L(1H(xG0x^ zJ(d4&7KDFZKmIk>oea-KcUZfzM4eR~#2rj-qo5^}pr>9ctX~pBBqY9An_P62SWVwW zX$|buAOw#Wbfj#QD7H@YkEocX%ZH*y)Q<6%q2%AkI~>nqI1ILTzJ}3BrCe_C(!lci zeXDp->JXnhkSop5k0?9A;6gE-p#hbEqNn~x=2k`Na~N?dMnj@8HMRN&%fPUC_4lR5 zEJEam`^*&A5aXuOX=1nR&E15_T-xBBa=G4Ov?Q6W)a1R2HlL{Kr?Yf!#WY>-=HgE! zW=cM&A&B}5V}Ny7`d~o{eagc?6yv{E28um)k>OOcdkgR4aPf4<97qU4Bj|`)P1MMG z7VC*t1)&G2y?8W1__31kllY9RU#4vCuAxK`@`4GFz1Xh3RcFo1p!FGWbl&l>#>wT? z((_4wI);Kr06ha|QvRuGao(+P?UR{{`0!-!5rQ49vP-Sk#E%|d5X`|<;aS%Y$XhZX zydfKvH^Z#+Hz1H-vpw^)eDN6nykQP_q)HIAKsZQw00+w~!whkj zZX%_d={=j2VD|8XYz5>`9hAt!jcjK&IMiaZbrzR#Y8&l?jT>Hb6ot2Yl)NE zZ^5i|M2PHwdowd{EW+7gi!Rl~&omEbn{x{E<;uTlbY2+T#QH-|eYafh&IOj8RLCbE zH652NG@qDV>&|Xv_+3!22)juwx;N&f$&=+_M)#L!m}5;zLPN;)g%)Ot(kBkv`R~UL zs5neM3eUXG(hKHGLp?*`FLBPy5-Bu^@pQuwekSzRBM?GyiyCCe8^<;Ut4=+yd-$w zsUnd~$j<|EM$e>GAwu0rI!36b>RrGa%1H1grO)8hxRUEc7HYi!_HPhcn2e$8%}_-zzzTpya>^!l z92u604jW(G_jB2Kd-C?~v%OfZSZ)S+#q}^h29Q?OAknQO9%prbV*1bx?4C%ck}N9*L&~#j_>=&|BvBt3}ElI=9+8GIiES#TF-tj z6dgNanCtxqc3V8e0L}qCul)$YvOLHrbU_u!;Xd$G2*r_LzOGRRI4s6sR&1FDvASpi zKfeIDFRb(JgFX%yoQ{4z_J~s#LJ2lKKur0uB1dPM4;C*E8ra7hVWtK4SB53>bH^t} z6y*5SpnE7;kc3UcOidxF1+ND*0x5C;pl8<%SSC;R`RgvSUw>~hSqhkz)FM@gio{lE#Z7*WsF+zETW7bW?(Q~v$|o06o*v>opXrK& z*qU)^Xus!gw-T#jNKb*VK;c&snA@{e^8)UN-IZnjuDk)izN_lov0?mi#Q(}Qfs!XB zP|X>IHArY*0;`mj9=6Wg{d$23|9pj^r+|709*l!%k_`zKQa$0IqgCtORNy;`@F91fQXj^*DW*DD{I| zr#jb<=1RrY-N$rp_0+sc>FiKNE@T_?3!SJz5ByPUp}EtMF)hM;5TTEa0kR}}jTu{< z@A;Unl?rxw3qLAgZB@9rxy5X0{{&x|;O3VM=5QxbmGH(1j zQDH^s`f3FknPRcTL50?p-m9RdAD#-iG~GS7el8w5Ub*#12Z2c1K-ytGH{rSZh3Dpv zGpXyMCHi=sKlViY1 zHHKnSv&m;qqVkLQgci5TWRA30wS)vVP{xN$ojzcG|H9W|XH*0yYJG_5-I482ov$$- zOfo{2UnnpYQZAlqg;K-MG{Lv7;N1X^?yFHBwXzStlPq>E>v=zy^Ig zla{MB`-VI-T(Sz6fFQBniJ3{Z(TUb4{_)+aQRMr_NQ)J;4}R8jQRBp$Dfw&!TS?=_ zi&vChBqcqJR~Jf}tyV6~Hb-3EUnN=a;mtnkaN#EForbHgv=!PK{>k9GuWr8UT9~1b z>8^urx4D6M?Dkar0@eMguMfG&q*y`r3C0?H}i7Hdv8B znLEg4F*#F464E)a9gB9d7NjfU7#5(s6A$WCiT4|QFc=S+$We?(J0tc*_KOSJe`X&! z8kK1Z6{w{4@VQF?R5*^uUfdDO<_zSld( ztgo^tj+FH##NmR4Nln?uQJN}!TuU`ff!z}j{HySwX*Vo9$;((_)%ci*k@F!j>-dOA zPrBn6eYbIyara8kK10<{tVKr`Gl0{E0BO$TGx^_{8PlyulGQkUnspqZEme-ykN6D) zgRaDL3H1yDTZ1_(KRl{UeQtQn$uv*aXG3zgm>yfttOqjHcqGpE|b5Y#GEyy6c}gEJK_=T z4j{08u250i^BkoqQhO(@ShVIVbQ)EaVtg}5X$Zf31dDPhkf#OphcAbjo34DG#56y#6Du6sBdAgk&8SP9|AXuA$QGjJ5QD^0uX0U*=CUBBl*L$=0 zNHDYp@ymdPOSzKw0S?=w-q|^f39WD+{)vqy>Dhih4n^TEB*5-N%dF{3IPLQ+qTta` zrRO@62nt=C$X#%->RUnjd-Rm^-3h`s5~2xW>lGhaIiFFyQv#L)V;Wvfb(U6{BMencp}Nh3zR;2V|t|6 zx3|NC>zrj_^$~c5Oo7t$fQ*lcD1L^b&IeCi>4ijTc-5g7X8vk8vk$>M!1ic9g@R#4 zQ*SyiTGhXMq8ZPR5=A-^Uyh749FaFN( zxff7y5A8G+nW562LV`&TE77yEqXW(w;QojMJiSw_9`MZH_x)jt_~#=12QLv907>Bd zb;Zys9%6lVHi!S;55=3cTA;{4U(noNz5m~p1>mYb_Z0h%rVT5Ir6ul4-O-lukl*`y z&u{>w^2K-KDHg*aB~SlR_unn}^6iev==n?*@@B)`i8m+EPRUDw6- z7B*I>LbDjiVDE{OeK%%5IP|O}=;hE?OF3I>6y_#7qWp#DHz0c8U8_3Ci$3L(o(Qea zPFYBzd>zK(MZ#O39?L?dV`;~ZL;)ItymN)-Z~_vqIxj-+O6gqfg*a+Td**!d=>o%8 z<)s&{-Q};0~Lub!n=FvJ0{UmD}J znrQZG$9(%4p`NEBHjN7=iRQoi$6vT{O<`-)HXXmA(X-(HU2{y6?qk5xe_Tf1fJ3DX zjgzmFr~0)yu+wqgnNIHZG(9bS*6VGi{_uFoWN}XkgR&MBv8j!dyk-D%c{QG#*vqYG z9$7dINE0LR^2OJkoqi;gZxLVSK|cSkI@&L;i}Xq_#Oy#hIE(A}s$Qw-0S=_ELdH0L zcKPz>{D|1TOt4KUQp_deJc?Pu$LB7}_FN3C{@zmU2!@ zwqo-3v#lr(iA0Mpo^(-+{7(h0=NH-P-Yffxs9j!xY87tY)}#$lqmE>r0-dX#mdRm{ z5rJ9Op-3zWY_GKl6@~ z$b^b}w<|7*)wLc15zxG2COEoghn3G`;>%g9>G|ktgruP};r_gx9t*>VdICigpQa;( zn<~GV`SiSIAZ8|y&v}iMlS?1$ReaL@V8$}sue9HHo13^7j(BLqcGgx4Dnbia^0^CT z#XlgJfg|p^wrICc!r8Kuu#d#H5mD9mlSY1s&%ne#9-mwSY7vHdjO3-+ zZf3#nUjcVs@Y~twL{Z`JphNv`Eu`}wI$EZx-Cn+rg1F;~=esO~E?%TbA%Wq`EPh7_ z^s_pd5F7EeuyI@he5+(%ey!xfCyiU9Z227cQ;7*Cn>|`T_VLI}*)=j}~ zp|oQ`E8*}SvDw{o6cL0BxZz>hG@7@gHd`f)O^&f#!fE1uEO$Jc@i$`Q(gh=hS{hD% z3Dfc8qHzW&mz`|0QV%&o(IwK#AOB<||J7EF6y*c{&MQz8roN8hpQaO4wh0(%LBu3*X@p9-CTN4|#__~eSX?tGzaJ$EU%BBaJkwIi;f$v$F)b4R0rU(VKdIa%` zXVw-Wui7X>l-35E%)=7O?OGP{AT>`_jU13`ele%>Ly+AP-;CVCd7HMfguT+i7Oqs|FPTMuAIMuBkThwDm#MfS5 zTQxygqpi0L(DJl20wV^Oa84dM_mxRw!^I-MdW0-e;AbYsVb>e`0=2$+s95=lZ<=Qt zh@HTc*;O6tlA$R5n?tbnU9a{ylvfezz+pE;0ie5rrsrUV(1v5`?3if{Uu=Lredi@` zg0s7|d68JK(GhMxnlv;>l3z$28HmaD_& z^>oo4D%ky%CtQ4VnydzBHkpt7OGzQMY#NUlhNG919GQQa3u?`0Yi9YD0La`2&gGHQ zW~96J>U=ZhK7k7oGQ>_ZxP}RgCLD1VB)~?%V3@^A+b#v6Do;d9wiq@eqz zVvgSv0`ua|Mw`l9bZ^ax(;&SKa=;lH!a{`w6@50poP>_N_>3m6gqlyB7x?wxC&p>U zuBU9%EBK%E$-ApV_jx(mt7nbsC?|P~k5)SnA`f3UIhVCg3---TJ>DHGgX}*MY%38= zgTisgHYzsk0yN1$)8FdY-@(@xEIW)*(c&OQ|KDHROvUt0@;-;w3(66aT%Y~mxDrmhbeeS4Xo+8XMNbV%?! zfUIrW(}@7$Rc9D)pa_fHyM`6@`Y{mpz|nI6gq_T>0-H|bIKCh=vz_?w{m&)1K}P_^ zaRX*m*_jc=GnR9T`W9jaUtMb+Ip|`cMx#d&I3?<}KThZD&l|2>7w1U0XG!|ILo!KB zku}Z^zjb}~qsRrf${dpce3caqY{G7wg%RjG0L-Aw*Ws>D#T~OSmaiRRGgw!k;$qk5 zW+F}D)5Bs^aJ=*Ix7SY}b8u|M?o-#uokl^7X@f^pqmomH84_X+0~7H4?}0+*&*QSnvFt)4 z(Tj9Z+7P`3FXKi=gek9m#`MjxGC~&0SM)oo4T{L^(cd6)D4u4ABBJBtsm1yAcJ>!W z>F>Qw(yPBsPWOHlk`AHbW;=R(s!s<+Y+o&XTW~7{!4JbDm z5|5q-lCzsVg>nn>OiX>Tm?xyy%kK)k<|us~Bl9s=P{BTKKnChu+g{+ardk{P=_pm9 zaWr&^eI>D{^qEHdJYzb*OpBfY?^^UkYh(V?FE-8m+|frTD{#z1`1yoOY+|C94;SJS zh7{*QV%3U*s}OvbOb;5$fqJy_(0cK%#k^G$N9z;O2sda`pz*~{>SIeVBo@C3nR%`j ztQ?)q;`QL7?YWnOgFlQ=BQ-vT>~-JntfYRt7;uI@+A)S&t)G%?-_9bqmyVP5)0kS|I; zWgMiQrxJx7^@lD~0a_U6{+O`kimJpEsN4UeHHX3C<%u4^V@@_gm#@0*k>`xRVJG6f z8(^ur7&fbZ0k??&d|Z;hFJ1(5@<*b%t**j^Wc4&BqY|1}D-qirvB^8g;1RghDu3m2 zPsKJrvxM1wEGeOUEe(lm*i$G8iw^ka0%{?u2%}GjG#o!nM5WKy4^lbd3f76Dge-x5 zWXz)Ycrj4^NKl}VrYsaY4nJC4BjILx?MNTUaSG&X#7kBJ#`z%%Zy&w|z9)*=KU+VX z+*B==?Si-WkY&Qb4=!}I5;B}Qo-m@}bPOd1^ys4#)%Mf|!G<`%yx*^q9H9*{QS zm8o3-+YrBU)i)3DJ(s@@9>m)*K;#?gZ#uq*INj}2C~?U^Eskc(B)?O{-7$sK+-e)B z3=a!0*WjK=eYxa=i3yb7xd2)s@H8JV}iuAtM2Gip5^DB zi?;MUdGfXJtK?To?@zaArLOyEF6v%+06WT7t)$ zex@mt&Wy;<#c8wWUO6t*z+%p1Y|ItX-)j zGfxX&k&O>c#A39attA6Zie-$7-uRQuFqc4!S&QJ6b*z9etk)4^eWg>3?SZ1>Qno(wk zLlaaA9?M41Ua=q%{rob}m^z`!pg?Iv5UPfHGT*c8=CXgjtjT1+u{F&1-ZG;ND6&qc5ANS~um$NyP{6 zRf57*;J-5a=Uxc_eT{SYPOS3tYv0`?WnzDAXQuNe_xmOAwzn5~v9ll%pa2BY*T1VG z{hD=Z^s^6vEx?_`F9VUNZNTBjKO{DPNM-&|!$>u2D*)^;(zIUlgB$z~09SqPxC}rz z!;`ZvD%NRorT#hiC+8k5jIu_2>2;YW2F(TEMasmdWkX6GAL~ORNf^7mxL^g9$C~ck zElKNbY%fnwA&Yq6SRwTzuD44rVQ)=T0}-tSh?nIWf@q9BHRGnTX+AZzxmek-{+JoU z|E_(1f1&*|jQ=Ktk$kZ8g{XICP`MS1$|hQ^?xX6W!UV9f`o=OC!ds)}6||{a^cX;k zuwUIB^80UMo3TACfTRi7K1)(yr8s5*HYczPXkfcT_gp$+>-l%QHi^h%-_(FQ{(q|l z#&1$qa;`jLmM;mz13%xhQCEixot|bLupx%ZxF%5d8@(@!a?^@& zLCaPi{oag{;7%;S@~H&F3OUl|b#;|fo+7Gk&cL;3QA2Nw@pJvx&$xBWm~+z;X!U`f zU3YdR*YuGwfh(%gDXlcR#M`B0P+Y0hBImbQPj4!B1_UnhXG?Oc*!0mFr_!8iRtU+4?6JF~;Ma`EB=I&pE^#rEKNk znT5}8lbi`z2lMd(D?hG^M}2^ip?Fh#)jh0H;6RmDl54+7=LqP znK}Qv_+(*mniV_8Ja&EMG``O7_xBTT_*U^aYw?V-g@9sV$Jp2!&bD0Xqwg7DJxpv# z)%EQpt3b%7pgswl$k=FbDN(vrsQiMb{Pj5Ks0C{6ycY6{(H5Kfne<#xx2WgH+6V8mTzfXbX594gw8jqB$iiq26yiE+2p16wqZKTWTNJaX?*ph+LqE7i%Xqo7jFz z$VBF7EpnBWu@Lo}8cZ}=Mp7Vj{%5$Vc5j;zpU|`JZVlId`SvzC1e@omGW`K>;K5E1 z;p8E;%|d|A#ntSK6{+6xMyj@^iwZpbw=2|$bZ)`J{YP59 zStnCpZ5UkaoGjYuK#hk8de}d|ED0K%n=zXzti^3>scsE`PrlTgJyeYP_|i6aP=F7r z%Gg0Vx#uI&gksu;BI+C

    +pNdn3jNHOkHIxNNsJjq>YuP7B4}a1iK#yzkFcVyQ!{ zK_RX<5Q2iU>joH6Z+d?3PDs+6o1T($e+*Drfa2sM()i{?Z@&l&?TrlG4B~87J$p*} zbcm}a9NgPVAqz6am9(mPW?sEk+hZNP{UD~VC3uCwsau2I;XsmFbB>yF&VQGh&Da!l z;T=&rD*X@*(M)}Y!)6mN3(65L-~5chKs|*0PAPq9qShJ-Tp@S{FH?Q+HkBuYGFWm{ z(4HSXe?md`N#9B8$9va-@Bvm#QDXffqMf1G7T_2NjnXfduRHX`HtQbBab;0yKZlVy z#|pp(Oss93{J5&)8iMcOe9kaOyljg(2kOrnkVeT+VjA6A?ZAlUD!X+YqKBZ7Zr0LsZr9QqnqofiJq7w45eKV_k^i zBFRF#2oA_~`T7C5aKS;^N`ka2E4S&OcI5!3J*a?s!nzGKQ_@MYu#7e)!_jj2CX*j3 zs09)V3oqj(?^>BPLN^(SCj?9PCgXu@AvmJP&*Z7Qm;smg<+n!+^~gtHg}e&(%ZcsX zPHV%LIi-Qy46qUF;0z)0Co7D6&_dx@X{sa)PSoieOHCTq)Kxj-_%mvhsr=AzOrjv7 zgUV{#@OWjR3~|LX2{}5g;IvhzZcILZ%<0S;8JG|{%x8M;p`2H%YK0RHd2q`tKM+BdjZ9La3t7WWo z=n$9NWqy&E)|rnY`G`|5pLT3<76mAx%{gbl$vU(pUoWqM$~?c+W{vHaiQNb^4Hs{jU$jpr#u77WhcF ztHq8{i|3H#vyNiVqY3)KD7~2yoyuFTIeF)0-v3Lm0SeI)3%yCG&;u4G=1#= zM?WyQ&+{dLv&_lK?wg|LniVG}RE?ovLGr~=!w{%!!K2#$4cFL1;kF-a@!f1{1}5Oc zq;u}nO`%+>Glp-?xy5so;?rJ~l*&b+!o%sDF|uQ`YrG3QH z!{dO^#)w3-RP!DLI!z1HQnzc+6zI;_VZsD(pw3IKRWV) zEXejBtws$#eX3p49)Z}A`yhC6F>}1Ho zd3H*BsteJuXY3aZN`qG8j3y_PQ14%E31ncEoYAd?5ft`2D-NTbyo*i<$xEip-g_#Z z0li;(JUaQsM1sFRro?X-aL2l-&}wCi%65yg`uVi0>id=w9IfAEfcY}`lb~^w{O(5D zRQv0g34CDKZQe~@BjqfCjV%fti&2Hr-!Qix?XT|miD0!L+GaTGKV_Ip^;de@RWcIV zK7+LnUp_fG@_O~`z(Iw`6!KYF>#y-^2$ElN=;tdc6*0j8jZ|bLKwQ{Qzp@o%e_sJyX1)0u@+`yg>(gO zy1pXGy%l50!C`OOhHn()lL;*g{p?`5wIvc|IE7XPPbIb_P7DO)GWnVG72bE7uR2>Z zgzal_;r+UL%J$pWcQc~gw;&76{0;r<)8AT%n;k(67ssdHLPG~b`B(Um=CLyK%r&Ms zK8Kush@4XVP!H=A2bvcp*|*eD7}lfUZ(gT;Dw( zoEXC}(XZsF29KA()Ei0}6X{_TnNObYepsRN*_f>JbfoDkcV+y}GgcE7wQ!Fx`&fA0 zZ%Eo7;29>h#^ypY@nqzCa6WG4|7Y^-Xah)r9dQl&jJ)loh)DZdg-)PtTW8KaR znrr=TwRJWCbjs)wjJ*iq3A)GB+=}|APu}0KnH4!FqCVNpVf`2EO-s%%_fB~BmXK@o zyCPD8`|!tqf$M=j^@&D>yk>Ob%~|@upY@i#0Pu}7ujtm26=t?DFaB*n4_SDJ;ktth zpy}$@f1~WxpMo24Bp0WJ!yfp)ciko^MSc5Q~p-9vGDg++Th=h3H-+W zhS^_Obe7KG-M-XFc#*)^ckF#cGue2`+=%gnx@d=G`U{XBe6mIUjSiv)P{Lh1hGEJ1 z15=Zn3%w&Y$prmps->iR)?WK1*+vZ`G5n_yO`Y!43U=z*en9)bsxnuF$PlhlJPs8O z$#u>hyhZ$+Hr~vle-ge|uDdsdg+Xqj{$P7UQX|osoySdtfgk|Xa-1-|Hlc}xXJaaI z3a*zI586K-<`w$guBo|BFdpqTH|$ZbeHnI}R5;9XS3nt&tNoy`@s_Blu`lsWchzOI zy3qSoev(HVj8|gs&NfeP=VTks5%MNdPt89i>(f}6UgRGQZCyQ2slHtma(dJp*rGPl z_JMD4!=f3>Lrhm!#sF2M%0Y_MahzTqBnyD{=Q-8q;XD`O)z3;g$Q{&l85kO%pf^N+CfH*Wjf}lY7K9Vt+bLH4 zb%gG%Fm=U+m2(W)kxLFfLswp=2AMZvR~DTGN0s8Ljoy6T3JU&7bqsscRAIT1(nT9x z=8xo_FFokdKVBww^Fxn*JUvGJI5c;>E;)yz>2AQrU4N14a-lARgEkQanB-iBXwuOa zAZt=ti@F)Sondc&I$}xO84vaX`Af33F0&F(O}=g?5Rlg(HC13sh(k+i^MGVG+J1L^ zA|hG=LUY8h-74g|6J-$t;xlwl z@2sQ&-mtvU!-VGMkHG2*|0$@g`Z=p-ly8El)2Hy)P77Hp16vSZrB;eZg&wk_`0ERafrMpIRYf`Q@wXVciwNLa4Kb?>R)CflHTTI9G|_V>Kd^| zBz;NAVw0pGk^M2Nlbe)=(#5aa zOX7^d^~Vq4kqvymI3gjy9o`)Evaek3{N#mNJxp;y?RjJapJ65E1OaVIe4|FOX)hMS zP4(o2wmIF6T8M=Fx6kMc9=hE$kwKUhiEw9G*7Z^mHl)TqDGoXvdb8#(u`AGw(n}f( zI_*D;T2x&n2t&B)#FCwtd>rGV#uyxp%O)^{KDhD5bu!JXw~5 zf>}`l6@;lq`#Av?Sh6scHOt>@AblN73w@Imc{%U*O%%bhKYNNE-$@%Q(PKWFiDZ7L zY0E#h#9aQ_TBH@F_tN+vf|;xs{L;T{U&p9VEh96T8!isaP+N`LDf{Ziva;@@U-ce0=- zxr}(#t0|fln2t1%XTENJ=*M&LHmTtQ4oWP!31p7@FYWNisZ!|F)0OFTA-9hYcsEZVyoZ+MzM`!g+lh557~qlm8nW-;_g18dfBiU+8=avV$6bGU ze3p>NVAhLwUS9NR4GG{%UvmYiR+6XGo4Jddsn=qr%#ZJ`e@9*Es6U(j_S)0jW`@~P7W}zt3`)j!7?O3T;w6VCzc?(&`#DmfXZc;>R!!X+ zlj{@N>Q;;Mfhl>ZIeRy1qIQw;r>%F!vt#;nzQbKiZ)|&F{fnVlM{9BHFJd0z}(UXSd#D zv7}DYNvzPzEMFpwDEYU=p%_NGSS+4?!>o0${EBR``m0NWTMwkk$Ta643tT7W*L~do zX3>j5xRl^3iyX5Au2)u|(mWrf=^1gYneg`>Ejkrw7-*l~> zC&;@dEWzG8T74zd^7(`*RVZ=>&-F8nl?k)4!Upd=Al8?XR;ttJ$U~RH z4wF9(jAF~C2F)>MO za}}>YPeMazJd?kU47_xYCR@)aU=$=4RF4nEqvvbHg^l!HN`)|TpMXl+2jF?)BFd@} zxUS+0HBY99ReFoUu<(bywg-&qJy9L+PI*hPAuxR<9SwQxB>`%lwuU$}F661UZh1uf zIBk_rI}f7B&6PNwd{Crd>4*3rFc$M(dc#&M^+Ydqilf?9;vu*RP3I! zGT2idlM3qTHX9yTd*k)^FD1Yh2}#P)@Nf1@UxBly_3a;-l$Sj*yE>m@DN`o>{I=Nh zE#Rf>HWU;2tCE+H!Hx=?w|HDKo#b|jM(S4$a#>PS)ArV5ReTRhjVkLdWpIC3 zw7lMbP3G;A_g44H(_+#I2S%{ zdvCT%G~4$nhFXqzwH3B=hxUILhHo(pMVUcs6(nNmrfE~BPht^tsA+GE`#QQ1t&rAfL6?{zwk?)?j%}iYYz@%xobdWzL z`bOV%pQrjuPTS|{_H9c%M;Uviu2hqimfO<{bKWmopd=L;*V{FWe%pB!F#h=y4<9cH zL{Q3^ndvLX5s59D=9+NL1aO*Ivn7zbKS6HfbhSvW17=E^_vC2FN9GAA^DANcM_qByr5Co}-&&){QdA#H8= zejSJYG*<}>MDNbLGrr?5e-mMN(qSk7@rj|lMO-hyHgpg~=luP+mlaM)NXlFva0%W1 zyZD^I%~mA(#u#Hq4-&PoOrURU@wFbH@4S8o>YEP7f_)TBl&gbVdIo6(X=I;!=Ze~y z$B!kZAb!&h&=UV9ZKXzR`r~EUAMrpf2XJ7j{nsy}GjA5_w{XD}6kLnK^evb-KU62F zQCR`c{r~7-e`bD&RLZ6T>Hk~j^ev9SY!Au)%ftDvbYuDbz?8Ja`Dbc?$5vSa4$)yB{5eB@XgQm{rVE zC*Ym?2TJ3FKW%VS7UBz^obcithuyDKT)}+fkeE;KgLhl?lT;XMPk6V70=+B|UY@Q5V+ad%1O`V!P(TQ4O+)g5)DoX_>9f7Z`|< z%|Vv_6nR2qd70cr(LhLe&+n{hjT0LrmxecXYc_3Q#Opd_?)ESP@4=EsYBTAO`a13v zHGb)IxP9SDL4ZVY#j5911~t`-1xDaH&uv$AeAH>59=4F=bOlOypt!)XmcH;l#d5ki zx9ynB0H%qU34R!sYZ|8c2}kmj=E`eG%wfXMm>N9PINcZ-iNfT+ zi)`!{JJ%gjqm`Pfmdy~&D}wJ4g1)*i*lvj5Vl75svA9c~XwZl`G~74VvS@s!TX--} zRX!kR&nQ!;=BT4}9zCkGb{MW_cynWc5d()Xc)3-5w_{bkkRZ0ZcvZkIg^pH!@=T{M zkDs1?FC!DZgU%z~%>NXqt5=2gy{BL>nfS4aX#;Zl9HiW1vlZ(NcdIn5)x^`#>%o9c z)l62!oorI<24YJ2u=b1d!MZaIi?h^aYZ*R^E>VnVnH}ChsvECp2hQg;0H?@5Qoh(Y zPP`T)GgwqJl`X&zXNZ<-Ai3OZWv2MFEZJ|O@=)ku)Qr9HJA1mH3z5V#$wy~Ny4V?v zdtw6#fmHYpwN@nVoIm`B@OQ+ug?XBcgc4~~Pt{c2qcpn497{zz#%U6)>e)bUaWr<> zOf~NZN^2~pWk9yfhQ(VQ!pW~b_kidhTK-d!K$g9tD16|)o#L$#kc-H+q<7jPDLv7%fqSuee5cO4FR`(h7ovU_I zY!>3v36C=1s1sML6!e%QJ;Q7ODP7=xhf|kx`W*VJx>_E0Mdxxo-JHvoL8vka-w|E8 zINHU$OjP3x&?le9RJc1=4NRMDn6GL>@R(G3O&?;$ud*Y$iF(ZiduP7cpGl1FNt0~7C&NX=3p4o-}+fD)OeE>Ytn*`{pbQI>)NiFQ&J z>W5c$x>*@NWsHGzP?X|<9(2lPzY8m4il)4YBbNxHHR#0w{4$mD#mbBGtC<()>nO~$>mgPT*h-PU_cJ6hgS4iB zb?>u_a99q606op$_wN_{dk$cz=*SzEv0wu2-lL-Hc_3@J8`GUw&zfPW#$AAdv)14N zN)oV~=@N$wLdSLv$K74OU+NE_t@t`6P*U>UzXW;av-r2slgaj`PG7aD`Tm0Ecj_a0r`zxxba z3jmjUya*Er80g=45!OFXxFP}%bm82>t+f07bjZT6#P+7EBr0%9>Cc$ahVq1eLc*tK zTVAi1*2_`^VspXdI-wQFlh=cAfcNOs;G2s; zh^2;dNuqm;YhGiIIOl3Qx8N~ba4ZbLUZY}K;UgqJCt?WC?$gNO5p4vWR z^yN`Ab%I-Wc@E^qcWId4ow%D8kn_D%d+$iB&Kk~GWg()Qvmw2K26W!L9QytlU`U5w zT*@`SEofXYl4)V20vi#)Jj|iP&x?+_!F;_R=vu_}^;P$zgR%{fPC6~?7d^hmad)A> z52U|QI(><5}v;vpA)gaAt~eM$Pu1D zwYwtG&KaiXI5iBQ6+C2HpL-`nWq5t`XXOD21(4Ie`nGE|*skN`ITodceh({Q6D{u# zy8f*?^?s0B1ho4W5oN`rz!&)fx2^$Os|Y~xuoMf{qgl*#X&_t`9cn&oRR3P$_o)MH ziT|?>{&=Z6D$Q=f%-inTj=ami;)=Zg$)W1P>rg754E7j!F2INzu@@h;+5*`YY+-aY z;0OPb29cj%HRFPJ{`g19lp|G2)W>^=_78S_1_;Q{GOr~DR1;$FO$%2L;Iw(TlzX%Q zAaSSVzr{mna9{;cHI@;~k`M2}3-RVt6u<)>iWO883#A$6e&;m3b6jaya^`EW{mH1ESNWu zhItdBZfnlJ=0lhcFnbhcDQ3XM-boLdqlWngjDIE;@CcHqfC6D7tR=lYj60K_}IH8zmd*PhKQ^8s^V<%PEd} z;Xek{9k&|?XE+AhX0HAq2t+tFQ#a76R~?P`esVnvuXs1CoRm(C>6J>ll@<;xi@)Dj z;JdFPy~NH0H5%;*S zH@;6~erFf1s;G+&D2S^+Wchc`N}>wl4ALL1D_S&ke+5z4MaOC|{e0h4i(xz|Vsa(W z`FsG!-VP((Wh)FX>^ht{nP-Cv`w?EO>@9L}N9dgMNj^8aGh&2L^dW-w$d9}H>wXb* z1BJE;!;?z~#>kIPCSHLu%mxOQ_EI*o(U7Xn2)>g22(2aJiFxmyBE&Ci!q`(`?uOR- z>opfS-D~$MknePpi+R6|5s3(GGNAZ9nBw76j$rjds_O7?(*(SHJH62SubSV-xl9c; ze&H^Q!-_r!m}QPbQ3*<5Qqz>=G17--KywLQKa_;X@>L7$-n03M{m00YTzqq;bw24? zqh(BU1Wg4aPL3M0*vx!oA?q5{>A^qeq_V<8Bww`N{UQMxk#ylfy}%$~NE<)$O@4ua zQX-V^HYI=^3@HHHIrCayPoveZUxFGhzl~p;UW`|XEl~1bxR3o9 znfn=&S^2@r$+Y9NDp`0@{cf7DtH(PSghb%xM@|w3N(GBh-s*|xm`HiW+u4PK07C=N z$-SYq94kxpSikHuJ`f>@T}qxMmR8DEij>E~0u1WTwil=K+J~9bWnl%Jxs0x5PM@la znH7YqPcpv&n~sB1u4@Q-X-O{w0Jrw9NsiqS0BBpU1wfnkh*R=2JG&?vmXAF@bk50l z|E;K6F$Kbdf6D<36mWa6T>Ec>2Ydny>-;gV#2Va>^Rv;~`myTm_K~a-j|J`tkSNsjr zAPT`UdWI)UhpI;mc#Yj=_`TuHX8~O)4qzVc{8Lat%F!mL9Mn>1l~Gg#DCOO|4&Z2j z1lX=m)}Qjz8__>11p>%RpFu9-zsB1}D!bZ|G^BDLT3|E#$K#3pFA50OP6ooV8&KH= z0^2_Z4S1Y@KLdQCLB~*y#|agS+o%6W91NSgpYzuL5)b&c^s~ z`sx6geXf~=10?~IQ!z6-Y*ko6r`Y-;C^w0*p6nu|9MifIbY40~{%E<|LpSYl*z%@? z5=bWM(;!*}GuVaiF-AT&s<5JZv;puvF>Zs$ki)+s88H4*o~Dh%x&3#ReC-;_LZo`V zuPnCNBxT1R^0epu#@|oejR}>$HUa6Y!rOpjkoAjIm(dhlpAG)CP>3geDh|$aR2#uB zEx6MxAU%Q0ZXAtd7>&c&xdE?*XHY)(HWxh8%JKo*6{3dd*{?1p=P{^rF7>7hnUaphRH2{}}%gMUsUI3m z#%LYIJB6>T7c5l>=>FYq46Oq>*OlfV9c({Fx~)XXleOS(MYpWIl&DCXyY;8n>F(bO zcdx$C_tly~8bLYZFZY)eYy7~~Yg8bJJr8$E(0;>kDd@U4r`POFt%Bq6$odoM!u&@C zA%@5E^TRWUf5$D@G7m-f-se0}T5P$%FWWAo&eXJL|Hr!OumU-uxWmPSNmknRqZZU%-P zLO?-!Xru>JQo2(_8iwwUkrEiX&NHCz`=0N*&iCVR@n`1QvDRK|-7EH<{rrWI)*1rb zdn50h=|ragFSB~t^Vh8YgavgVl(0D~8Ey#6;b zz}RW{lRuF`<}xOxbXnLv=}T>(JcxPxHx`IE)Ze&TXnFEW;R$9dZT3EPVy`@=b+`Y! z)*$-R)bbVCZO;U>Z>3N?$ydi1k495~!D|n0{uwdX3`ySVCnF}~X$xg9&f8PkdMfKp zFH$3mFNQeQPZM*YcYH%X(wqz1e%OxKSAzA_(@xutwza8;(s)7Q7KbcIqV) zG=cGVgCx0#+sy|Xp1uaTDI<$3w&)i{Su&)Fsy8)H4+wK>5k2d-iua=1*Q_!opR(xo zT~Gojlc83W=GL5Ddi;vY+@*KE^ld|VQ{AdRB+wIC9St~sVa;D`Hh~6iXG)?`z+{XNcy|j!w+aqtTV-g3Dbf)*Z0|5s z{YXq)<84hJJtlrhmqrN|bMhvNEX{z^pa&#$Rtni4jCOats8D`zbs!y+>=J#mOzsdn%Fohnf`bETT0@x%<5-FBOTH}T+25DX6~|)XK~0uc8?sa{ zo$W@{b=%Dk&+wJ6`E2=jE-eeo*$~)ytVyPymY1+q%T}G)xk^iiWMsa)HanPoR76N| zw4tH?y|WG(AF?{ihoXLsB>%jK8#YQp0Jy~%jHfORLylVAlIq@Qvak|W2Et7V9sxt? zrMOqbgEf7Er2XS6qfBn_I&T>cWpSwKJJUk5o@^bWaDn0-P2m7r6RmYA8rGXYGUWp# zQ@CHW1F*aXi>qlL{A8%dZp}-xMm||==|(l#T2VKK`%-$uh(;t@BEP-7xxA}r&whin zcN8#h)`^`IiMsuxY4N2k6K~=BuleQ=p9F==Mc01f^mMpds#g<<(J73*Nc_mG7N|Zx zx{~~2^PCz%f~$#6vRR5tQZ_hyZc`^Se0{0{`Lx;d4s&WTpi$w;o1wn}2-DcV)`-tl zc$jL(76{9CmbyXKI|$4Rcq(ZZ0C%Xa`;r5WQ({Zo*)gBb5O|6K9pEVt)k)x81^n3k zQYsoG{l+DqK(LV+(=0jm9XRO&fEv)#XTZVb1lWMRslF7PQuy#LVBKs|A44vh>0jBn zpyBB);PqDDwt%MhgbF=)DXmSnHuAH` zxlp*wqfNks!|2J!t5v4g^pCMA9dOr(UGCV{@Z+~Hw7+=XiFcjF^Py2!*Mfmut(xsV zYP#Q4-YEsTB;14hxnECDO>a^~K|}4_g&Kja=@Vd$mu$+8#eGr`l6<(=XM8wcs(&c4 z+P6h}UXZ+EB91D|OhrFPjR^_Y*Al5{dlFB+ju1Pqh7#OB_dO&8v6AyxNs6;kO2G4P zH&8`AB|)q*;3x@tlbDSJcx&@D$qzuG3c|Ym!FJ&OO&CTu;m()ux zKwy46Q!in~3s!MJ2+DWBgnRI_nM@o|3_e8}mN*J$wlnMxg`iZ3pWRaHUkds1%|UAo z08MZr!>j+a4XjPvFg>y1qE`V5 z8AULR;xKyR0Zb{nVMroWJi3_*akpENzKXye@djk9SS2E`^UxQGWhD+QDB~ne(jm#= zAp;?(;aQpyrEelRFUVx3GYpTz8LJQrSkZrbrT0z z-z38Uhv5MdqFYT@5??gSi8p%jcFbQtm%1FW|@G@>4j3eJY~e@3^}4nBJ7s2)2JE7z^t zb9ytW1meCwo!4ev-f{>D7G9*X&9kMqDb_WkFyi0+s^bpaV!PR6(;}%wgXb!*f`?GB z7IxJR(N9;5J7Oz()0}VfNr1tqjjujT$~-n&bnNwtXJ0D%Js?X;I7M0CrUA)q5uM$! zgfW&tow$#Bxx2OBq0jf5VG6gu!N+^A+btS}f3``n*@E!$*Cr{qJ-H{Q8=sUIuuU@2 zWC-4L&bCXTzyWijE5L@%1_O=T1`}*2oQySE{UmVi!PlWyY4`{F zZu+6e*P_e^A~%9~7UTSbNIbl*4R0LTY&C)lHXX^CmelI~>4o&P))0Z71AXsEai-RN zkQW*W4CPD9kUj2>YC8xH>z8?Bn$3A~I={ZgSF|-2zncDHvM#flPVT8mn(@^(1<5E_ z%-P{WipP^C)nkKgrk6%u^X--K2X}3x;_k)fgtEFtfQ>B5dI=_AkyYqb{A0asqKx zLfMetbv6+AV@V!+j(Ff&2q);$JTD=G_;S2U$e{Vt@&YnM0Lb_(3woG}_7XTeIW*lg zyNl4dO4#C8b(Ql9coR1pB2gNOT=xl>lhC_z*JysMEkx38r|&_9%lb`WJe#Bt+^Vft zx&y}D-{tbcx$65P1(Jr8sziDfFGlT^-Nao-2<2Pn=IYjb32r1XW26~)>`kKRCUzAO z+DxN8jM;Ai4nZ*%^kOE=9&e7xlV2v1WdpWsHLI?vJuB5w^^qq}`;nhDVUK?Y;;_lc z2XFy@iMR=ynfy?cw>d6@%1ec;ban+(fV^8U?vMmt=QSoP{PFXqEb-)4TPtczg#2u) ztp9g>@wQI%1{rQ~^)$z65Pm@bTekV3^>oxi)Q%{)fkh-X{qn?+OicuiN6 zpi;$E-!%Ej+iZ32(s5+R<-zZ4K$%cr<_)oW{q0WW+Co$eJp+2!SOT?`dIyX13Lp{A zK;&Zg4y949jv`_3lMe7c_q1`ZF|P2Y-f(}N{ZLpu0Bn!y^IiaV-ojyvTn)3g>^ImM z^uSVc?#<*Jr0U64W{18UME{Y$BVkRT5%8`ViwY%_!?hXJF+)qORT*+;MYossU(E=k z%b8E}RgOHTrOUa{p~!g&mMex=F^jV?KJPn}ou98#1!*`vx2b(`n>wtZAXlh9NMo|+ zOR*4RZBqJirNi`Tj3y$J<%`*gQ(wi2^EIODnplWdKlQ5@D%I#0MG+Uc+rJJrxP4gF zlHSFmJ;rw46&Mf2{^B$aKif8XPq`6Idnj6VbE(NPl07rsHRSw>uJqcH3GplMf2p}2 zgdG3*ZVW7lbC$8HJs#Jqk8$=TbeH0rwNk|xWY(Wo= zE^C_X7Fe9mc1kT7isq`$&uYD%l`(UjOSq2C1(33bxV@!l zmv$+m*e1Ygb6xF;+)~l1FU`V)710PcIWc$l$F#LCFa5gwN%=NZqN3->Bw~et(Rq9z}Gfh^tO~PX^lm)&^ zQr9yoB3iC{X~q9&Vea#CX2mF3HJj5Mf9z-Gb@P{7B>HcDK(22tmBjA`;WNE!zp;w! z@M#mPCM8;N47~9D0ku6>Y|OoACrc&Le*3&av16O`W0B!0z=;~Iz_!T)RO_`T{U_E- zSY2N6&(KS^-t<*D-#=0NOp63rEVbW@JDWta zG_a+zz{9e%AWZ^5&x{FcHW|w4GW$o?hE?8A>H6MNksJ3KUU#H!eY*EmWO}J>vi)G7 zgy1W>CQ1Jh{~7#ITl{_PkOXU`*pA>wPhs7sDO%dMd!9w(X>1=mz*K&;I96*U`sS{t zqmA_)87HaP*`#RPfb;=S)|+tA{a1Ok;ax{EsG|qjrooTnUdyX5MhZSFXClv#EUic} zuA?s^Wf@=+A?-TsiFT=qC2D(|%`C?&TO*G$`Y04VQ9`Bl`K|=>-1MCnrIP7_bOzu? z+u5^N?HeslVz$-iMJrN4u7kE|_bQ@M@-p{3_()q%bH8j@Qd0ah#%_3aK?6-fcdxR^ zt=}PeM_nxuS?c30R>6=gbz5v%SkOV%o3hFax816WOlOn?irr_;|?O> z)+)>|VlC|HS=Zd+f7rYZLAJu8>Q{abvsk(f@*aw9%rzP49T>+3>10DHYa)X`m!6P? zvZ{W(f1JzZ^kiZ%;uzsh&GjiOwIgy%Y~%1N$O$l9JhCQ$-W9c=bk8(H_@U#+08_sRmbf;)zi* zszXBK;T!B!Ck@97DJA&R*r<^}`(HGiFQdE1=RsryU|Nuxo7s)#=O$^6s3B@$l|;*} z=5V(%FA8S)_@E7A`5tw!BCVW?6HEV`?EQ{a5MnuK_DrNg`%&b%mI7II(<`unR;8Ub zPENUg1WT6o8!I7c$^5R0$u{aQPvgrutp{pw#G|`~rm)Be!L;6~=tC0={9(|sg|PM4 z;_#A%TDcx|Sw%`V*-}sWGIdnKOYM*Hw?|Mb-a72{%?tS~nlJSq4srr7uJyN?p#}j? zlNO}pMtRybz(*uRd#y@MHtRq;q5Sz@h{d)GN9v^%rNoat=Vb zwkt#$*#Z4&k_N%fsF=|hg5n4BZ zd3GV_%Yj#RW&IebW5@t`t{L4V0{<_)3E@P&xPYifn(tG=%>dpoi}L@XoXBz8V7wQE zZnd1Y0Ihi=Gyc+;b`wx3GxQN5Hk?Qn|3cnC1p^1rDeS*G^>?BRo%*{D7kbGPqln62 zklA+06jPrXX*>6wa^;qBu0#H|$N8g5(ytHUqHb$R+W}{G9^sGL^av%-t*VaBUN-yS z)0)j_`d}1=&=;BU4TMN>s9m6g*0(XKAL^@{RkTBG-u}8aye{-UheEAl)yrV0aG9li zCMX~c+77O#!(DMawf_jPe4)dAn%+pMG_{SG+&VUVUfst95ZdBTvJ`_4a4NHnr1Gy% z4RNC7v{2i}0z^@N4atlZj9Nwq&WE@o?d2mG$RR%2)ks-*6bId>a|PZc`&PCZgwaZT z5mKSHw(=13I@o`wTPbC(X40!Dd5B-I%8^EkNQsKR1N#X%A}aq$DCxw0>f(zGdG;8v zCFy3&)#*Eq6Q_)N9z}VxRJ6PdxDgVlF2h8u)JP2HMlVpdKamq3ojJhu%jzOScF8JS zFT?8tiQKRe{C?Ir-e5jJA_4ah1y+>^9SUc3I%IT>l91eGJa1&c4nMXa6S_KmSZ8yz zKe0bs25McZ{iS!3tYYwC;9Z`(XozfBFtJ67Bd?Mp?!lh?cBV;Fy-0@&wCJ>I*Y$nr zj=7gtMnf%&*IBcD_R_s~Hq{y?Rn>_Ghm|2kNW}X^_lFuUhNok98Xfmfk1||sC>Fa- z+OttcZF?T*5LytJrXCgRPV~}C+cJB@KP0O95L}Hm*E~2lZCa<5a#K87Xs&vYHR=*k zfyjc6uiAI?B6)FzX*?@WeoyXKJ*(7q z71)%QI(~TmQ$2KF+Dl>Qcn&Jw{PdSwIj#w6liJQCGTxtRT5Z)-H7N3t!i}&ar?FbD z=*d$v)lp)D?;h$I3E8*mS!ff9X;u@szPLH{^n8i*50?pCShZZ2c@HU#b8ObCAOOQ6 zfGQXc%g4PR^}VUQmzv$lIJvs#c{;lyi2~%GF?$PX-m$3fSF$NI{-q@|L!Hr^1LnZ* zD0#E>)0`Z1^Vr{dkWh+A|9$46Ih6pf(RuXfcf-;2b>En`<;e#R!X5V~2BUf( z9Gd5e^et02?|#hT0bUQ-^mg`VnEM(j2QF7=2r{wEtbETVc#|A3UyP>QLDWC6HaW}R zp@Dlz3=M=H_9Q`N3Bbg zE1C7`eTn=E8#cn5Ee@GEMZbZ!`oiCa_fH~A+xd$)O|v5KzO7qxeA;I2w}-NT3nZ5E z9p`VHP5d;-Tv^ois?#Z*kYPap^6xTDSR<8XHo!9zAjx3#L?3HBPwY{z{gwz%{z#ku zYJ#ag<-lu4rGC6c?(L*xwg*(v0rmS0zxQZDYKG@l(K$ESO%u=9tXZU7tU$KH%;-(3lu{qvY(wkASvw{ruwgn2xKP zkT)2aTtc7(>BxCLJh`3@sl;j16aM*)aax@5bn!&!okx*Ey9VhlJks_vua>5(Y(yv9 zg3Yf^5-Ai@n)E~_L@&-M5np7h5W=sgIxK6e`30p`hS%|FRHq=e2&svUpj;@m)wEC&D6b*a=C?J;V{X(_hi-wY*W!6Um+TQSnPkb|3(R+qJ)DJ4F?G-z zfVKNY2bew#a6Xtt#b|uUuO62|#Xb%Vpyo1Dl-F(-uq z4N|T8g-LcA4N`h8+^WzXpu4E zhm@k9Hm~rt8Vol!B&BgbViyilYhan}UuQPDh$8>K4sT{0 ziOr6)71=SvU@)8tC8txjRp8i}hFPCbux-Jw?h6`9rD~Ey9*9Y4Tz6pm76qf9kgZG& zR|l>vK52sMf9uLmp-xHK7?6dMQ6J|d(AtXSjt(fqR(mYv$9Lnjpy3qyTZquj&I4`*NyjKcVG=#{`Kr+)7D^ivOZlmsoLNr;(dx4C`E8Gz zQ>l?MeYPIGyWSj*sCAxXZG=XFa8RG%+fgMHE_L{&2p8#&0_V5MUlAExArv~f9rk#N zy(^H1saA4325uA2XG!TbNN|a5T8LxZoCK5k69G#}SoKra`mC&I^0A>od*1VjSdLZI z2txQ~n>Iy35EtQWN+bA`T%oK_`<93y0--o};cCGR-KJYKRbW|qMG$ne|>?KplQ%N<`xwCid zxtzxZdh`Qf;Ub=8JVhq-}cSNr((UZ?#&*(=$4A`WiY~%T-$KE?Y8{1rfuE^2iT7fpfG$w-q#Jm|$A$zxB?Fa%50? zk=T)dhz25+^dl{b&>c(iT$ppxjlBu z@Z^N<0ycT|Rz?bvHCC7YB~J8ERp($>k;6orXp!~;a(woVW79m#^l<3H^bLiE%DP!+ zMTtCSb@rOglrjg@N^Ely4b&o_ZoC-I@y#NmP~{m^^6+=AuXLLk(aUSt?p;4!4)37{wJmu{Rp&^+iLF=K=J&swh6gfzTD6 z8W*BGbQERa%u1^mmN5+q&qVL^9@Rv_c zPIx%FyB~Xgk(k}_pCneo{+nUFCQ?3X&a+xPVN-*m6mu?pMeGk{b3#pXB3^vbWjCo$i^611AHn56{5yVFLEaVW zK!JqNk$EzH2wxd;Vz=0uW!vYZ?3SR;#z;+seVNq3n^`j6>Dv%szv@pin^<$^hf{SM zBI>oWn@7REkCZB;>vY=sysFF3IH`A|h9DvnJ308#_!RV9p`SIIvA#7w<5X-BDu-ND zePrJzyD@k@lz4WbMgpiU{KqT_uWA-(MnI?&&WYM|Y274O|%~r1~+1PMituYPjlO<*M>2{s%owzTPsFF1Ws`EnQBlfCksM%@CfjEq)A9-!O?5AQ`4 zqX6}*t%Lfg6ULAMBT<1-zGjm$y1csCXi^e;3bxv??%5hxD+`VoN~yvkZXd>n#M zWxip0uc{)0rl^-Art=&4o1)+SEj`$6k1zCsHIkmTp3j{@15Pr9f3pwK1}d%dXs^tq zh^@Xm*|w7Ckng9EvGI0iv_IE5d+JncEo!`c&D<-ADy@@WCJT@s66N$5(U9kM(*+?(?7TM3|_Tt{|i@>M9KNa*9<_ ze{=$%@hU>+(P^AWCm}{j0miL#`$2dAXJghQYX5XKKZHLp!A0aj22^Fp1rDu!k!-%m z*O+pS&;R!$^=Q$Z4S4RehDm*fVu?jz39wq3Ux7`NG?JdoUpnsh-snw}jt4B7rwH<(_6?jGxraT` zy4>{zA{z$nzw&Mu3DoO(9YTa+&!SoPjUP~nGBiph|ET1xtW9{d+ynlIEzCV8bVYLW zE83M<>O-4|hKy;qg<7|>>aTAG@qgA=xnFjgIIqHTsaEk>@%q{WY*dtEyg}BfAn$(v z_wvoB*M)VWKW9wW)8RLTO*kVKQO@ks;VGnt;G)>YpPADIkok0^KrRJHJvPWZkkRoxD>{2}c=FXo!|PThU1 zOhY*GsW59BlSn2!oh9o`3F11YLQu~W%R2sS%;wA8913ZVr8laBTA{j!osrC*-I7X% zKuV-L?4=s&@iraetv|C+E;FfHr7`bSwC3M~VodNO%gk+hcvMpoUgB!SBNE5fnydEM1>)dUv? zI4rLi!A8?o1@kdy+4Q(y+dlBPif%cjX*-=7LuTQimjvgcfCQ=~&4*dqdVWK~ z^M47$tI|n0S(>-HB0$g`Hr%Zn`Q%Z1NfoygF5o^zo2hZZ5MBO>~C-KWbF~$q?2V?3?{E_{;2e7m15d(8FxBl;d}n z;_02lzYxfTsLoGc^~paS-DO~zZ+A^Fb(t*n-ik0*AV3^HIA&st6<`04P1+g&$kC+8 zar)lx4<3Zkn1g_*;eX(RCkwTqd0+h%&THUupls68SEX?kWXOJjO00^4AXbvU5Ce+A zgWHh6Y4G7hAla)It**OVgusCfjNxWWs3(oFQ1^|{}e1(e&cA;Sn@>;f2HTayLlJI0t z>2`{q<&5m)EVG#9#~ZL5bM-@*c4$b5fhAoXz0xIVH{y{g2IDTjQ&f%Ac;usTDbj+# z1?_UthW;rfucRY;WzT2BY}GM(`xNbpY;u$~|soQl@81K7I-u!mWOZd;(c*)}Txxfje`l}iSYoK>J6 z%kaaD^&GG!-+%&n;qz1orYCS%3o{v}#eY^cX&PwIyP);|IZbL?F(9)`Dg11vql&(q zCOl9|fce`2=71cC3U>J^l^!4q(_Z>9*}$Vqsm*@=?wfEGI8sR8gXyanbxF*-j9d5? zw=Q|MQ#F>5yK>2MD46xL%q7oFN*}KAUIzqPUSJ6#Xk_Uzexf0lpL+tMhJE!xAg)V+ PfIk^2`RDo141NC(bU<5Q literal 0 HcmV?d00001 diff --git a/doc/doc_common/media/image7.png b/doc/doc_common/media/image7.png new file mode 100644 index 0000000000000000000000000000000000000000..534b89abf4bdeb123b80684d7faa751f6bc4d1f7 GIT binary patch literal 98313 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�l`XF`=uICiAw<6mA(~SzaOE!r=4J0{MXn({SJ2c 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

    (W*!0(b#un=TI%uM(uMj^(5`Sns- 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 literal 0 HcmV?d00001 diff --git a/doc/doc_common/plugins.rst b/doc/doc_common/plugins.rst new file mode 100644 index 0000000..f7b1acb --- /dev/null +++ b/doc/doc_common/plugins.rst @@ -0,0 +1,75 @@ +=========================================== +Plugins framework for the IMAS access layer +=========================================== + +Plugins are C++ software components compiled in separate +libraries from the Access Layer (AL) library, which make use of them. Using a +modified Low Level architecture, we demonstrate that plugins satisfy many +use-cases requirements, providing new features available from all existing HLIs. +We describe the Access Layer plugins architecture and some plugins examples. + + + +Plugins offer the following advantages: + +- Developers write plugins in C++ and compile plugins separately from + the AL library, which discovers them at runtime, according to some + Data Dictionary-defined or user-defined plugins activation + directives. More precisely, the AL Low Level layer loads plugins and + calls them according to the previous directives. **Plugins provide + new features with common behavior between High Level + Interfaces**. There is no need for developing specific High Level + Interface (HLI) implementation of plugins features, **decreasing + therefore drastically development time**, **simplifying maintenance** + and **reducing the risk of potential bugs**. + +- Contributing also to **reduced time development**, code **plugin + compilation is fast** since plugins have no dependency on HLI + classes. The compilation time must be compared to the one required + for specific HLI code whose change may (depending on which source + file has been modified) trigger the full recompilation of the HLI + layer. + +- Features provided by a plugin behave the same in all HLIs with same + exceptions, same outputs, same bugs... **Users experience remains + unchanged** from one HLI to another. + +- Plugins source files are stored in separate repositories with + separate development lifecycles. Developers group plugins into + separate projects, improving **code management, lowering code + coupling** (plugins are not coupled, they only implement the plugin + interface described later) between AL components and **making clear + separation of features** provided by each plugin. + +- Plugins depend on the AL library, not the other way around. + Therefore, at development time, plugins developers do not need to + recompile the AL, which lowers time development. Moreover, in + production, upon new plugins release, no change are required to the + AL sources or to the AL installed binaries, **preventing AL updates + procedures and reducing AL deployment maintenance.** + +AL plugins provide many features available for all HLIs as for example: + +- **Creating fast C++ post processing** using low-level R/W data access + functions. Plugins have flexibility to run on-the-fly data + transformations such as decompression/compression, calibration, + filtering, ... + +- **Patching values from/to DD leaves** by overriding ``get()``/``put()`` + operations. An example is the unified NBC plugin (which overrides + the ``get()`` operation) which provides data format backward + compatibility. + +- **Displaying specific values** of DD leaves to users. Building + reports for some specific Interface Data Structure (IDS) nodes. + **Debugging**: developers check expected DD leaves values according + to some logic implemented in the plugin (for some specific + data/context). Plugins can display important warnings/infos to users + if necessary. + +- **Selecting partial data to speed up IDS writing/reading.** Let us + consider a partial read operation. Since a plugin has the control to + read data from any DD node, plugin logic allows reading few specific + nodes of an IDS and skip/ignore (large) nodes not required by the use + case. We will show later an example, which shows how to read only + some part of the data from an IDS, reducing IDS loading time. diff --git a/doc/doc_common/plugins_architecture.rst b/doc/doc_common/plugins_architecture.rst new file mode 100644 index 0000000..083f8e7 --- /dev/null +++ b/doc/doc_common/plugins_architecture.rst @@ -0,0 +1,339 @@ +========================================= +Plugin implementation in the Access Layer +========================================= + + +Overview of the AL architecture before AL-plugins +================================================= + +`Figure 1`_ depicts the layered AL architecture model. It comprises +the upper High Level Interface (HLI) and the so-called Low Level (LL), +which receive HLIs requests. The LL includes a C layer with C functions +(wrappers) for calling the functions of the (C++) LL API located in the +C++ layer of the LL. + +.. figure:: ./doc_common/media/image1.png + :name: Figure 1 + + **Figure 1:** Layered AL architecture model + +When calling an AL API function (``get()``/``get_slice()``, ``put()``/``put_slice()``), +the HLI iterates over all nodes of the IDS where each visited node is +either a scalar, or an array (with dimensions from 1 to 6) or an array +of structures. + +Distinguishing Read and Write operations, we have two use-cases: + +- When calling ``get()``/``get_slice()``, the HLI calls the LL for each visited + node, passing the data contained in the node (scalar or array), the + parameters which define the dimension(s), the shape(s) of the data + and the identifier (path) of the node. Then the LL calls the backend, + which returns the data to the LL, which in turn returns the data + (allocated pointers) to the HLI. + +- When calling ``put()``/``put_slice()``, the HLI calls the LL for each node, + passing a pointer to the data to be written, the parameters which + define the dimension(s), the shape(s) of the data and the identifier + (path) of the node. Then the LL calls the backend, which writes the + data to some storage. + + +Modified AL architecture for plugins management and execution +============================================================= + +`Figure 2`_ depicts the modified AL architecture for enabling the use of +plugins. It introduces new components: + +- The C wrappers for plugins management + +- The plugins API + +- The plugin interface + +- The C++ plugins + +From now on, the Low Level C wrappers call the Plugins API functions. +The LL API is remained unchanged. + +.. figure:: ./doc_common/media/image2.png + :name: Figure 2 + + **Figure 2:** Modified layered AL architecture model for plugins + orchestration + + +The C wrappers for plugins management +------------------------------------- + +`Figure 3`_ displays the list of new C wrappers for plugins management and +the new plugins API. The latter includes: + +- functions for plugins management (registering and binding to a node) + +- functions which allow plugins to override the behavior of the LL data + access functions + +In the new AL plugin architecture, HLIs call the current C wrappers, which call +the new plugins API, which in turn call the plugins if they are registered and +bound to at least one node of the DD. For example, the +``al_begin_global_action(...)`` function calls the new plugins API +``beginGlobalActionPlugin(...)`` function of the plugins API. The functions +``al_read_data(...) and :code:``al_write_data(...)` delegate to the +``readDataSPlugin(...)`` and ``writeDataPlugin(...)`` plugins API +functions. + +.. figure:: ./doc_common/media/image3.png + :name: Figure 3 + + **Figure 3:** The new C wrappers for plugins management and the new plugins API + +Since the plugins API functions located in the LL C++ layer are not +accessible from the HLIs, the new C wrappers depicted in `Figure 3`_ allow +for accessing some plugins API functions from HLIs. These functions are +mainly devoted to plugin registering and activation, features supported +by the plugins API described in the next section: + +- The ``al_register_plugin(...)`` wrapper (resp. + ``al_unregister_plugin(...)``) delegates to the dedicated C++ + ``registerPlugin(...)`` (resp. ``unregisterPlugin(...)``) function + from the plugins API. + +- The ``al_bind_plugin(...)`` wrapper (``al_unbind_plugin(...)``) + delegates to the dedicated C++ :code:`bindPlugin(...) (resp. + ``unbindPlugin(...)``) function from the plugins API. + + +The Plugins API and the low level holder plugin class +----------------------------------------------------- + +`Figure 4`_ depicts the ``LLplugin`` plugin holder class. + +.. figure:: ./doc_common/media/image4.png + :name: Figure 4 + + **Figure 4:** The plugin holder class (``LLplugin``) + + +Plugin registration +~~~~~~~~~~~~~~~~~~~ + +Among the plugins API functions (`Figure 3`_), we find +``registerPlugin(plugin_name)`` (``unregisterPlugin(plugin_name)``) +which creates (resp. destroys) a plugin instance from a C++ class located in a +shared library (.so). The ``registerPlugin(...)`` function creates a +``LLplugin`` object for holding the plugin instance using the +``al_plugin`` pointer attribute defined in the ``LLplugin`` class (see +`Figure 4`_). The ``LLplugin`` object is then stored in a static map (named +````LLplugin``sStore``) of the ``LLplugin`` class. This map allows the +plugin framework to retrieve the plugin later using the name of the plugin as a +key (``plugin_name`` function argument). + + +Plugin activation +~~~~~~~~~~~~~~~~~ + +Once a plugin is registered, it is available from the plugins framework as long +as the AL process is running and as long as users have not called the +``unregister_plugin(...)`` C wrapper. However, during put/get operations, +the AL plugin framework will ignore a registered plugin not bound to any DD +node. To activate a plugin, an HLI code bounds the plugin to at least one +particular IDS node using the ``al_bind_plugin(...)`` wrapper. This function +updates the ``boundPlugins`` static map of the ``LLplugin`` class, adding the name +of the plugin to a list which is mapped to the identifier of the DD node (the +identifier is the path to the node). To disable a plugin, HLIs use the +``al_unbind_plugin(...)`` function which removes the plugin name from the +list hold by the ``boundPlugins`` map. + +Unregistering a plugin using ``al_unregister_plugin(plugin_name)`` will +remove the ``LLplugin`` object from the LL store ``LLpluginsStore`` and +destroy the underlying plugin instance. + + +Calling plugins from the Low Level +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +All plugins API functions in `Figure 3`_ (except functions for plugins +registering/activation) call plugins operations from the plugin +interface described in the next section during LL operations. For +example, the ``beginGlobalActionPlugin(...)`` function calls the +``begin_global_action(...)`` function of the plugin interface. More details +are provided in sequence diagrams presented in section :ref:`get() sequence +diagram` and :ref:`put() sequence diagram`. + + +The Access Layer plugin interface +--------------------------------- + +When creating a plugin, the plugin class has to inherit from the +``access_layer_plugin`` interface and implement each (pure virtual) +operation declared in this interface (see ``access_layer_plugin.h``). + +The ``begin_global_action(...)`` (resp. ``begin_slice_action(...)``) functions are +plugins operations called when the HLI calls ``al_begin_global_action(...)`` +(resp. ``al_begin_slice_action(...)``). These functions allow developers to +initialize the plugin before iteration of the IDS nodes performed by the +HLI. For example, during a slice operation using ``get_slice(...)`` or +``put_slice(...)``, the ``begin_slice_action(...)`` allows to store in the plugin +object the time of the slice and the interpolation method to perform the +slice. + +The node_operation(``const std::string &path``) function returns the type of +operation applied to the data node (located at the value given by the +``path`` argument) by the plugin. This function must return one of the +following value: ``plugin::OPERATION::GET_ONLY``, +``plugin::OPERATION::PUT_ONLY`` or ``plugin::OPERATION::PUT_AND_GET``. The +``node_operation(...)`` function, called by the plugins framework, has several +purposes: + +- It allows the plugins framework to sort the plugins that are contributing to + the ``get``/``get_slice`` operation, ``put``/``put_slice`` operation, or + both. Only plugins returning ``plugin::OPERATION::GET_ONLY`` or + ``plugin::OPERATION::PUT_AND_GET`` are added to the + ``ids_properties/plugins/get_operation`` data structure during a + ``get``/``get_slice`` operation. Moreover, only plugins returning + ``plugin::OPERATION::PUT_ONLY`` or ``plugin::OPERATION::PUT_AND_GET`` are + added to the ``ids_properties/plugins/put_operation`` data structure during a + ``put``/``put_slice`` operation. + +- The plugins framework will call the plugin operation ``read_data(...)`` for + a given IDS node path only if the ``node_operation(...)`` function returns + ``plugin::OPERATION::GET_ONLY`` or ``plugin::OPERATION::PUT_AND_GET`` for + this path. + +- The plugins framework will call the plugin operation ``write_data(...)`` + for a given IDS node path only if the ``node_operation(...)`` function + returns ``plugin::OPERATION::PUT_ONLY`` or ``plugin::OPERATION::PUT_AND_GET`` + for this path. + +The ``read_data(...)`` and (resp. ``write_data(...)``) allows a plugin to +intercept a data pointer coming from/going to the backend to read or modify it +on the fly. This documentation provides some plugins examples to illustrate the +use of these functions. + + +Calling low level data access API functions from plugin code +------------------------------------------------------------ + +New C wrappers allow plugins to call LL data access operations (the +latter should not be called by plugins code to avoid infinite +recursion). These functions have the same name that the existing +counterpart AL wrappers with prefix ``al`` replaced by ``al_plugin`` +(`Figure 6`_). + +.. code-block:: C++ + :caption: **Figure 6:** new C wrappers for calling LL data access operations from plugins + :name: Figure 6 + + void al_plugin_begin_global_action(const std::string &plugin_name, int pulseCtx, const char* dataobjectname, int mode, int opCtx); + void al_plugin_slice_action(const std::string &plugin_name, int pulseCtx, const char* dataobjectname, int mode, double time, int interp, int opCtx); + void al_plugin_arraystruct_action(const std::string &plugin_name, int ctx, int *actxID, const char* fieldPath, const char* timeBasePath, int *arraySize); + void al_plugin_read_data(const std::string &plugin_name, int ctx, const char* fieldPath, const char* timeBasePath, void **data, int datatype, int dim, int *size); + void al_plugin_write_data(const std::string &plugin_name, int ctxID, const char *field, const char *timebase, void *data, int datatype, int dim, int *size); + + +Plugins orchestration +===================== + +A registered and activated plugin (see :ref:`Plugin activation`) will be called +by the LL whenever a ``get()``/``get_slice()`` or ``put()``/``put_slice()`` +operation is performed by an HLI. The next sections describe the dynamic of +plugins calls during a ``get()``/``get_slice()`` or a ``put()``/``put_slice()`` +operation through sequence diagrams. + +.. _`get() sequence diagram`: + +``get()`` sequence diagram +-------------------------- + +.. figure:: ./doc_common/media/image5.png + :name: Figure 7 + + **Figure 7:** ``get()`` operation sequence diagram + +`Figure 7`_ depicts an example of the ``get()`` operations sequence of a +``camera_ir`` IDS using the ``camera_ir`` plugin developed at WEST. The +client code uses HLI operations to read data of a ``camera_ir`` IDS. In +the first two calls, the client registers the plugin and binds it to the +node identified by the path ``camera_ir/frame/surface_temperature``, then +the AL API ``get()`` operation is called on the ``camera_ir`` IDS object (the +preliminary operation for creating the IDS object is not shown in the +figure). The ``al_begin_global_action(...)`` function calls first the +``beginGlobalActionPlugin(...)`` function of the plugins API (whatever the +node to which the plugin is bound) which in turn calls the +``begin_arraystruct_action(...)`` of the plugin interface. Similarly, each +call to ``al_begin_arraystruct_action(...)`` generates first a call to +``beginArraystructActionPlugin(...)``, followed by a call to the +``begin_arraystruct_action(...)`` function of the plugin interface. + +If several plugins are bound to the same IDS node, the plugin +framework will iterate over each plugin and call the appropriate plugin +interface function for each plugin sequentially. The iteration order +follows the order in which plugins bindings have been performed by the +HLI client using ``al_bind_plugin(...)``. + +.. _`put() sequence diagram`: + +``put()`` sequence diagram +-------------------------- + +The ``put()`` sequence diagram (`Figure 8`_) is quite similar to the ``get()`` +sequence diagram. The example uses the ``camera_ir_write`` plugin +described later in this document. + +.. figure:: ./doc_common/media/image6.png + :name: Figure 8 + + **Figure 8:** ``put()`` operation sequence diagram + +Note that the wrapper ``al_begin_arraystruct_action(...)`` is called in this +modified AL plugin architecture even if the corresponding array of +structure (AOS) has a 0-shape (this is not true for the previous AL +architecture where HLIs were not calling ``al_begin_arraystruct_action(...)`` +if the AOS was found to be empty). The reason is to make plugins able to +write/update the size of AOSs. + + +Access Layer plugin provenance +============================== + +Recent versions of the Data Dictionary store information concerning plugin +provenance. See https://jira.iter.org/browse/IMAS-4491 and the Pull Request +https://git.iter.org/projects/IMAS/repos/data-dictionary/pull-requests/534/overview. + +To take into account these change, we have defined new plugins requirements with +the ``provenance_plugin_feature`` and the ``readback_plugin_feature`` interfaces +(`Figure 8`_). Moreover, in order to extend the ability of the LL to accept any +type of plugins, we have introduced a new access_layer_base_plugin interface. +The latter is more general and does not hold the read/write data access and +*readback* requirements. + +It may be necessary to define *readback* plugins that can read data +written by other plugins. For instance, the ``camera_ir_write`` plugin +(used currently on WEST) writes compressed data of the ``camera_ir`` IDS +to the backend. In order to read these data during a ``get()`` or +``get_slice()`` operation, the ``camera_ir_write`` plugin implements the +``readback_plugin_feature`` interface, which provides information to the +Access Layer about a *readback* plugin capable of reading and +uncompressing the data. For this example, the ``camera_ir`` readback +plugin is able to read and decompress data stored by the +``camera_ir_write`` plugin, providing uncompressed data to the HLI. The +name of the *readback* plugin is obtained using the +``getReadbackName(const std::string &path, int *index)`` function of the +``readback_plugin_feature`` interface for a given IDS node path. It is worth +noting that several plugins can be applied to the same IDS node path, +and the ``index`` parameter indicates which *readback* plugin should be +used. For instance, if two *readback* plugins are defined for the same +node path, a value of 1 for the ``index`` parameter indicates that the +plugin should be applied after the plugin defined at ``index=0``. + +During a ``put()``/``put_slice()`` operation, the **readback** +informations specified by the **readback_plugin_feature** interface are +stored in the backend. These data are read during a ``get()``/``get_slice()`` +operation and used to bind and execute the *readback* plugins. + +.. figure:: ./doc_common/media/image7.png + :name: Figure 9 + + **Figure 9:** The ``provenance_plugin_feature``, ``readback_plugin_feature`` + and ``access_layer_base_plugin`` interfaces + diff --git a/doc/doc_common/plugins_examples.rst b/doc/doc_common/plugins_examples.rst new file mode 100644 index 0000000..03bbf34 --- /dev/null +++ b/doc/doc_common/plugins_examples.rst @@ -0,0 +1,958 @@ +Plugins examples +================ + +.. note:: + + The plugin examples referenced in this documentation are maintained in the al-plugins repository. + Please refer to: https://git.iter.org/projects/IMAS/repos/al-plugins/browse for the complete source code. + + +The ``debug`` plugin +-------------------- + +In this first example, we want to display the value of the field +``ids_properties/version_put/access_layer`` for a given IDS during the +execution of a ``get()`` operation. + +The debug plugin is a C++ class named ``Debug_plugin``. The header code shows: + +- The Debug_plugin class inherits from the access_layer_plugin plugin + interface + +- All operations of the plugin interface are declared + +- The private attributes shot, dataobjectname and occurrence will be + initialized during the initialization of the plugin + +.. note:: + + The complete source code for the debug_plugin.h header is available in the al-plugins repository. + +The plugin implementation code includes: + +- Plugin initialization occurs in the ``begin_global_action(...)`` function. + However, no initialization is required in this example. + +- ``read_data(...)`` calls the backend using the LL + ``al_plugin_read_data(...)`` function. If the data type is a string, the + plugin print its value to the screen. + +- ``begin_arraystruct_action(...)`` creates a new ``ArraystructContext`` and + calls the backend, then the plugin prints the size of the array of + structure. + +- The *readback* information are empty in this example (the function + ``getReadbackName(path, index)`` returns an empty string, meaning that + the ``debug`` plugin does not define any *readback* plugin. + +.. note:: + + The complete source code for the debug_plugin.cpp implementation is available in the al-plugins repository. + + +Plugin compilation: creating a shared library +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The Makefile for compiling the plugin will also compile the C++ HLI code ``test_debug_plugin.cpp``, which uses +this plugin. + +Executing the Makefile generates the shared library ``debug_plugin.so`` +and creates an executable ``test_debug_plugin`` for the HLI test +code described later. + +The ``AL_BUILD`` variable has to be set to the root directory of the IMAS +Access Layer sources. The dependency ``$AL_BUILD/lowlevel`` is required +since plugins depend on the LL API. The dependency +``$AL_BUILD/cppinterface/src`` is used only for the compilation of the HLI +test code. + + +.. code-block:: Makefile + :caption: **Figure 11:** plugin compilation Makefile + :name: Figure 11 + + include ../Makefile.common + + ifeq (,$(AL_BUILD)) + AL_BUILD=../ + $(warning AL_BUILD variable unset, probably not running 'make al_test' from the Installer. Assuming AL_BUILD=$(AL_BUILD).) + endif + + all sources sources_install install sources_uninstall uninstall clean clean-src test: + + DBGFLAGS= -g + DBGFLAGS+= -DDEBUG -DBOOST_ALL_DYN_LINK + NOT_SUPPORTED_COMPILER= + CC = gcc + CXX = g++ + ifeq "$(strip $(CC))" "icc" + CXXFLAGS= -O0 -fPIC -shared-intel ${DBGFLAGS} + LDFLAGS= + else ifeq "$(strip $(CC))" "gcc" + CXXFLAGS= -std=c++11 -pthread -O0 -fPIC ${DBGFLAGS} + LDFLAGS= -shared -pthread -Wl,--no-undefined + LDFLAGS_HLI=-pthread -Wl,--no-undefined + else + NOT_SUPPORTED_COMPILER=unsupported_compiler + endif + INCDIR_PKGCONFIG=`pkg-config blitz --cflags` + INCDIR= -I$(AL_BUILD)/lowlevel + LIBS= -lal `pkg-config blitz --libs` -L$(BOOST_ROOT)/lib -L$(AL_BUILD)/lowlevel -lboost_log -lboost_thread + INCDIR_HLI=$(INCDIR) -I$(AL_BUILD)/cppinterface/src $(INCDIR_PKGCONFIG) + LIBS_HLI=-L$(AL_BUILD)/cppinterface/lib $(LIBS) -lal-cpp + + OBJ_DEBUG_PLUGIN = debug_plugin.o simple_logger.o + PLUGINS = debug_plugin + + install: all + + EXE = $(addprefix test_, $(PLUGINS)) + + all: $(NOT_SUPPORTED_COMPILER) $(EXE) + + test_debug_plugin: debug_plugin + @echo Compiling test: $@ + $(CXX) $(INCDIR_HLI) $(CXXFLAGS) -c $@.cpp -o $@.o + $(CXX) $(LDFLAGS_HLI) -o $@ $@.o $(LIBDIR) $(LIBS_HLI) + + debug_plugin: $(OBJ_DEBUG_PLUGIN) + @echo Linking $^ + $(CXX) $(LDFLAGS) -o $@.so $^ $(LIBDIR) $(LIBS) + + .cpp.o: + @echo compiling $< + $(CXX) $(INCDIR) $(INCDIR_PKGCONFIG) $(CXXFLAGS) -c $< -o $@ + + clean: + $(RM) *.log *.o *.so $(OBJ) $(EXE) $(PLUGINS) + + unsupported_compiler: + @echo Makefile does not support $(CC) compiler \(try CC=gcc or icc\). + exit 1 + + +Execution of the Makefile gives the following output: + +.. code-block:: console + + $ make -f Makefile_debug_plugin + g++ `pkg-config blitz --cflags` -I/ZONE_TRAVAIL/LF218007/installer/src/3.35.0/ual/feature/al_plugins/lowlevel -std=c++11 -pthread -O0 -fPIC -g -DDEBUG -DBOOST_ALL_DYN_LINK -c debug_plugin.cpp -o debug_plugin.o + g++ `pkg-config blitz --cflags` -I/ZONE_TRAVAIL/LF218007/installer/src/3.35.0/ual/feature/al_plugins/lowlevel -std=c++11 -pthread -O0 -fPIC -g -DDEBUG -DBOOST_ALL_DYN_LINK -c simple_logger.cpp -o simple_logger.o + g++ -shared -pthread -Wl,--no-undefined -o debug_plugin.so debug_plugin.o simple_logger.o -L/ZONE_TRAVAIL/LF218007/installer/src/3.35.0/ual/feature/al_plugins/lowlevel -L/Applications/libraries/boost/1.76.0/gcc/6.4.0/lib -limas `pkg-config blitz --libs` -lboost_log -lboost_thread + + +Client code for plugin execution +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +.. md-tab-set:: + + .. md-tab-item:: Using Python + + `Figure 12`_ shows a python client code to execute the ``debug`` plugin: + + - The shot is opened using ``open(uri, mode)`` + + - The plugin ``debug`` is registered using ``register_plugin(...)`` + + - The plugin is bound to the node + ``ids_properties/version_put/access_layer`` of the ``magnetics`` IDS, + occurrence 0 + + - The ``get()`` operation is called for the IDS name found in the path + which is the last argument passed to the python script + + - Finally, the plugin is removed from memory using ``unregister_plugin(...)`` + + + .. code-block:: python + :caption: **Figure 12:** Client implementation code using a python HLI + :name: Figure 12 + + import imas + from imas import imasdef + from imas.hli_plugins import HLIPlugins + import sys + + uri = sys.argv[1] + + data_entry = imas.DBEntry(uri, "r") + data_entry.open() + + HLIPlugins.register_plugin("debug") + HLIPlugins.bind_plugin("magnetics:0/ids_properties/version_put/access_layer", "debug") + HLIPlugins.bind_plugin("magnetics:0/flux_loop", "debug") + data_entry.get('magnetics', occurrence=0) + HLIPlugins.unregister_plugin("debug") + data_entry.close() + + + Before executing the plugin, we need to specify the location of the + plugin shared library to the AL plugin framework using the environment + variable **IMAS_AL_PLUGINS**. For example: + + .. code-block:: console + + $ export IMAS_AL_PLUGINS=/Home/LF218007/access_layer_plugins + + In the example below, we are printing the value of the field + ``magnetics:0/ids_properties/version_put/access_layer`` for the shot + specified by the **uri** passed to the python script. The execution of + the python code shown above gives the following output: + + .. code-block:: console + + $ python test_debug_plugin.py imas:hdf5?path=/Imas_public/public/imasdb/west/3/54914/0/ + 0000001 | [debug] : read_data - reading data for field path= ids_properties/version_put/access_layer + 0000002 | [debug] : read_data - ids_properties/access_layer= 4.10.0-2-g367115bb + visiting AOS=flux_loop with size=17 + + + .. md-tab-item:: Using C++ + + .. code-block:: C++ + :caption: **Figure 13:** C++ test code, file ``test_debug_plugin.cpp`` + :name: Figure 13 + + #include + #include "ALClasses.h" + + using namespace IdsNs; + + void execute(char** argv); + void exitIfError(al_status_t &status); + + void execute(char** argv) { + + int pulse=54; + char* userName = NULL; + + userName = getenv("USER"); + if(userName == NULL) + { + printf( "PANIC: $USER not found! Exiting..."); + exit(1); + } + + /* Get Full */ + IdsNs::IDS data_entry(pulse,1,-1,-1); + data_entry.openEnv(userName, "test", "3"); + + al_status_t status = al_register_plugin("debug"); + exitIfError(status); + printf("Using the magnetics IDS for demo purpose\n"); + al_bind_plugin("magnetics:0/ids_properties/version_put/access_layer", "debug"); + al_bind_plugin("magnetics:0/flux_loop", "debug"); + + IDS::magnetics ids = data_entry._magnetics; + ids.get(0); + + data_entry.close(); + status = al_unregister_plugin("debug"); + exitIfError(status); + } + + void exitIfError(al_status_t &status) { + if (status.code != 0) { + printf("%s\n", status.message); + exit(-1); + } + } + + int main(int argc, char** argv){ + execute(argv); + } + + `Figure 13`_ shows a C++ client implementation test for executing the + ``debug`` plugin. The output is the same than previously as + expected: + + .. code-block:: console + + $ ./test_debug_plugin imas:hdf5?path=/Imas_public/public/imasdb/west/3/54914/0/ + Using the magnetics IDS for demo purpose + 0000001 | [debug] : read_data - reading data for field path= ids_properties/version_put/access_layer + 0000002 | [debug] : read_data - ids_properties/creation_date= 4.10.0-2-g367115bb + visiting AOS=flux_loop with size=17 + + + .. md-tab-item:: Using gfortran + + .. code-block:: Fortran + :caption: **Figure 14:** client implementation code using a Fortran HLI + :name: Figure 14 + + program test_debug_plugin + + use ids_routines + implicit none + + integer :: idx, mode, status + + type (ids_magnetics) :: mag ! Declaration of the ids + character(STRMAXLEN) :: uri + character(len=132):: usr + integer :: pulse = 54 + integer :: run = 1 + integer :: pulsectx + + call get_environment_variable("USER",usr) + + ! Registering the 'debug' plugin + call al_register_plugin ('debug', status) + + ! Binding the 'debug' plugin to the access_layer node of the magnetics IDS (as a demo purpose) + call al_bind_plugin ('magnetics:0/ids_properties/version_put/access_layer', 'debug', status) + + ! Opening the pulse file + call al_build_uri_from_legacy_parameters(MDSPLUS_BACKEND, pulse, run, usr, "test", "3", "", uri, status) + call al_begin_dataentry_action(uri, OPEN_PULSE, pulsectx, status); + write(*,*) 'Opened pulse file, pulsectx = ', pulsectx + + ! Calling 'get' will call the 'debug' plugin + call ids_get(pulsectx,"magnetics", mag) + + call imas_close(pulsectx) + + end program test_debug_plugin + + + `Figure 14`_ shows a Fortran client implementation for executing the + ``debug`` plugin. The output is the same than previously as expected: + + .. code-block:: console + + $ ./gfortran_test_debug_plugin imas:hdf5?path=/Imas_public/public/imasdb/west/3/54914/0/ + 0000001 | [debug] : read_data - reading data for field path= ids_properties/version_put/access_layer + 0000002 | [debug] : read_data - ids_properties/creation_date= 4.10.0-2-g367115bb + visiting AOS=flux_loop with size=17 + + +.. _`simplifying plugin code`: + +Simplifying plugin code: introducing the ``AL_reader_helper_plugin`` class +-------------------------------------------------------------------------- + +In this section, we show how to simplify the ``debug`` plugin code +presented previously. For this purpose, we introduce the new helper +class ``AL_reader_helper_plugin`` whose part of the header (provenance +feature operations have been removed for clarity) is shown in Figure 15. +Figure 16 depicts its implementation code. + +.. note:: + + The complete source code for the al_reader_helper_plugin.h header is available in the al-plugins repository. + +By inheriting the helper class, we obtain the header of the ``Debug_plugin`` +class depicted in Figure 17. The header code declares only the +``read_data(..)`` function (from the plugin interface) whose implementation +is overridden in the simplified implementation code of the ``Debug_plugin`` +class (Figure 18). + +.. note:: + + The complete source code for the al_reader_helper_plugin.cpp implementation is available in the al-plugins repository. + +.. code-block:: C++ + :caption: **Figure 17:** the simplified ``Debug_plugin`` class header + :name: Figure 17 + + #ifndef DEBUG_PLUGIN_H + #define DEBUG_PLUGIN_H 1 + #include "al_reader_helper_plugin.h" + #include "access_layer_plugin.h" + + class Debug_plugin: public AL_reader_helper_plugin + { + public: + Debug_plugin(); + ~Debug_plugin(); + + int read_data(int ctx, const char* fieldPath, const char* timeBasePath, + void **data, int datatype, int dim, int *size); + }; + + extern "C" access_layer_plugin* create() { + return new Debug_plugin; + } + extern "C" void destroy (access_layer_plugin* al_plugin) { + delete al_plugin; + } + #endif + +.. code-block:: C++ + :caption: **Figure 18:** the simplified ``Debug_plugin`` class implementation + :name: Figure 18 + + #include "debug_plugin.h" + #include "simple_logger.h" + + Debug_plugin::Debug_plugin() + {} + + Debug_plugin::~Debug_plugin() + {} + + void Debug_plugin::begin_arraystruct_action(int ctx, int *aosctx, const char* fieldPath, const char* timeBasePath, int *arraySize) { + if (*arraySize != 0) + printf("visiting AOS=%s with size=%d\n", fieldPath, *arraySize); + } + + int Debug_plugin::read_data(int ctx, const char* fieldPath, const char* timeBasePath, + void **data, int datatype, int dim, int *size) { + al_plugin_read_data(ctx, fieldPath, timeBasePath, data, datatype, dim, size); + if (datatype == CHAR_DATA) { + LOG_DEBUG << "reading data for field path= " << fieldPath; + char buff[100]; + snprintf(buff, sizeof(buff), "%s", (char*) *data); + std::string buffAsStdStr = buff; + LOG_DEBUG << "ids_properties/access_layer= " << buffAsStdStr; + } + else { + LOG_DEBUG << "debug plugin prints only STRING data" << fieldPath; + } + return 1; + } + + +A plugin to automatically fill ``ids_properties/creation_date`` +--------------------------------------------------------------- + +The requirement of IMAS-3121 ITER JIRA ticket is to fill in the +``ids_properties/creation_date`` node during a ``put()`` operation with the +current date in the form YYYY-MM-DD. + +.. note:: + + The complete source code for the creation_date_plugin.cpp implementation is available in the al-plugins repository. + +The ``Creation_date_plugin`` class implements this feature. The header file +content is also available in the al-plugins repository. Provenance feature operations have been removed for clarity in +these files. + +.. code-block:: python + :caption: **Figure 27:** python client of the ``creation_date`` plugin + :name: Figure 27 + + import imas + import matplotlib.pyplot as plt + from imas.hli_plugins import HLIPlugins + from imas import imasdef + import sys + + uri = sys.argv[1] + + data_entry = imas.DBEntry(uri, "w") + data_entry.create() + + m= imas.magnetics() + m.ids_properties.homogeneous_time=1 + m.time.resize(1) + m.time[0]=0. + + HLIPlugins.register_plugin("creation_date") + + path= "magnetics:0/ids_properties/creation_date" + HLIPlugins.bind_plugin(path, "creation_date") + + data_entry.put(m) + + HLIPlugins.unregister_plugin("creation_date") + + data_entry.close() + + print("checking value of creation_date...") + data_entry.open(uri=uri, mode=imasdef.FORCE_OPEN_PULSE) + ids = data_entry.get('magnetics') + print(ids.ids_properties.creation_date) + data_entry.close() + +.. code-block:: console + :caption: **Figure 28:** executing the ``creation_date`` plugin and checking the result + :name: Figure 28 + + $ python test_creation_date_plugin.py imas:hdf5?path=/Home/LF218007/public/imasdb/test/3/55000/0 + Patching creation_date... + checking value of creation_date... + 2022-03-11 + +After execution of the ``creation_date`` plugin using the python client code +depicted in `Figure 27`_, we check that the ``ids_properties/creation_date`` has +been successfully updated as expected (`Figure 28`_). + +The C++ code below (`Figure 29`_) uses the same plugin. The test is making +a little bit more than the previous python test, it prints at the end +if some *readback* plugins have been called during ``get()``. Since no +*readback* plugin has been defined in the ``creation_date`` +plugin code, the test prints “No readback plugins have been called +during ``get()``.”. We will see later an example, which shows how to +define a *readback* plugin. + +.. code-block:: C++ + :caption: **Figure 29:** executing the ``Creation_date`` plugin + :name: Figure 29 + + #include "creation_date_plugin.h" + + #include + #include + #include + #include + #include + #include + #include + + Creation_date_plugin::Creation_date_plugin() + { + } + + Creation_date_plugin::~Creation_date_plugin() + { + } + + /** + The following functions are used to provide metadata about the plugin to identify and manage the plugin. + + getName() returns the name of the plugin, which is "creation_date" in this example. + getCommit() returns a unique identifier for the version of the plugin, which is "8f2e7cd64daf9e35a6e6c5850dd80fc198f11d86" in this example. + getVersion() returns the version number of the plugin, which is "1.0.0" in this example. + getRepository() returns the URI for the Git repository where the plugin is located, which is "ssh://git@git.iter.org/imas/access-layer-plugins.git" in this example. + getParameters() returns a string representing the parameters for the plugin. + */ + + std::string Creation_date_plugin::getName() { + return "creation_date"; + } + + std::string Creation_date_plugin::getDescription() { + return ""; + } + + std::string Creation_date_plugin::getCommit() { + return "8f2e7cd64daf9e35a6e6c5850dd80fc198f11d86"; + } + + std::string Creation_date_plugin::getVersion() { + return "1.0.0"; + } + std::string Creation_date_plugin::getRepository() { + return "ssh://git@git.iter.org/imas/access-layer-plugins.git"; + } + std::string Creation_date_plugin::getParameters() { + return "creation_date plugin parameters"; + } + + /** + The following functions are used by the Access Layer to determine which readback plugin to use for a given field path. + + The getReadbackName() function returns the name of the readback plugin to use for a given field path. If the field path contains the string "creation_date", it returns the string "debug". Otherwise, it returns an empty string. + + The getReadbackCommit() function returns the commit hash of the readback plugin to use for a given field path. If the field path contains the string "creation_date", it returns a specific commit hash. Otherwise, it returns an empty string. + + The getReadbackVersion() function returns the version of the readback plugin to use for a given field path. If the field path contains the string "creation_date", it returns the string "1.1.0". Otherwise, it returns an empty string. + + The getReadbackRepository() function returns the repository location of the readback plugin to use for a given field path. If the field path contains the string "creation_date", it returns a specific repository location. Otherwise, it returns an empty string. + + The getReadbackParameters() function returns the parameters to pass to the readback plugin for a given field path. If the field path contains the string "creation_date", it returns a specific string. Otherwise, it returns an empty string. + */ + + std::string Creation_date_plugin::getReadbackName(const std::string &path, int* index) { + return ""; + } + + std::string Creation_date_plugin::getReadbackDescription(const std::string &path) { + return ""; + } + + std::string Creation_date_plugin::getReadbackCommit(const std::string &path) { + if (path.rfind("creation_date")) + return "d92bb2f30384bc618574508b56e9542d00f0e97a"; + return ""; + } + + std::string Creation_date_plugin::getReadbackVersion(const std::string &path) { + if (path.rfind("creation_date")) + return "1.1.0"; + return ""; + } + + std::string Creation_date_plugin::getReadbackRepository(const std::string &path) { + if (path.rfind("creation_date")) + return "ssh://git@git.iter.org/imas/access-layer-plugins.git"; + return ""; + } + + std::string Creation_date_plugin::getReadbackParameters(const std::string &path) { + if (path.rfind("creation_date")) + return "readback plugin parameters"; + return ""; + } + + plugin::OPERATION Creation_date_plugin::node_operation(const std::string &path) { + return plugin::OPERATION::PUT_ONLY; + } + + void Creation_date_plugin::begin_global_action(int pulseCtx, const char* dataobjectname, const char* datapath, int mode, int opCtx) { + } + + void Creation_date_plugin::begin_slice_action(int pulseCtx, const char* dataobjectname, int mode, double time, int interp, int opCtx) { + } + + void Creation_date_plugin::begin_arraystruct_action(int ctx, int *aosctx, const char* fieldPath, const char* timeBasePath, int *arraySize) { + LLenv lle = Lowlevel::getLLenv(ctx); + ArraystructContext* actx = lle.create(fieldPath, timeBasePath); + *aosctx = Lowlevel::addLLenv(lle.backend, actx); + lle.backend->beginArraystructAction(actx, arraySize); + } + + int Creation_date_plugin::read_data(int ctx, const char* fieldPath, const char* timeBasePath, + void **data, int datatype, int dim, int *size) { + return 0; + } + + + /** + This function is used to write data to the specific IDS field 'ids_properties/creation_date'. + + The function takes several parameters, including an integer "ctx", which is a handle to the current low level context, a character array "fieldPath" representing the path to the field being modified, a character array "timeBasePath" representing the path to the timebase for the field, a void pointer "data" containing the data to be written, an integer "datatype" specifying the type of data being written, an integer "dim" specifying the number of dimensions of the data, and an array of integers "size" specifying the size of each dimension. + + The function prints a message indicating that the "Creation_date" plugin is patching the creation date. It then uses the standard library function "std::time" to obtain the current system time and local time, and formats it using the standard library function "std::put_time" to create a string representing the current date in the format of "YYYY-MM-DD". This string is stored in a std::ostringstream object called "oss" and then converted to a C-style string using the "str()" function, and then to a void pointer using the "c_str()" function. + + Finally, the function creates an array of sizes for the data being written, with a single element representing the length of the string. It then calls the "al_plugin_write_data" function to write the data to the specified field, passing in the current context, the field path, the timebase path, the void pointer to the data, the data type, the number of dimensions, and the array of sizes. After writing the data, the function prints a message indicating that the patching is complete. + */ + void Creation_date_plugin::write_data(int ctx, const char* fieldPath, const char* timeBasePath, void *data, int datatype, int dim, int *size) { + printf("Patching creation_date from the creation_date plugin... \n"); + auto t = std::time(nullptr); + auto tm = *std::localtime(&t); + std::ostringstream oss; + oss << std::put_time(&tm, "%Y-%m-%d"); + auto text = oss.str(); + void* ptrData = (void *) (text.c_str()); + int arrayOfSizes[1] = {(int)text.size()}; + al_plugin_write_data(ctx, fieldPath, timeBasePath, ptrData, CHAR_DATA, 1, arrayOfSizes); + printf("End of patching.\n"); + } + + void Creation_date_plugin::setParameter(const char* parameter_name, int datatype, int dim, int *size, void *data) { + } + + void Creation_date_plugin::end_action(int ctx) {} + + + +.. code-block:: Fortran + :caption: **Figure 30:** Fortran test code for executing the ``creation_date`` plugin + :name: Figure 30 + + program test + + use ids_routines + implicit none + + integer :: idx, mode, status + + type (ids_magnetics) :: mag ! Declaration of the empty ids to be filled + character(STRMAXLEN) :: uri + character(len=132):: usr + integer :: pulse = 54 + integer :: run = 1 + + call get_environment_variable("USER",usr) + + call al_build_uri_from_legacy_parameters(MDSPLUS_BACKEND, pulse, run, usr, "test", "3", "", uri, status) + mag%ids_properties%homogeneous_time = 1 ! Mandatory to define this property + allocate(mag%time(1)) + mag%time = 0.0 + + + ! Registering the 'creation_date' plugin + call al_register_plugin ('creation_date', status) + + write(*,*) 'Using the magnetics IDS for demo purpose' + + ! Binding the 'creation_date' node of the magnetics IDS to the 'creation_date' plugin (only for demo purpose) + call al_bind_plugin ('magnetics:0/ids_properties/creation_date', 'creation_date', status) + + ! Creating the pulse file + + call al_begin_dataentry_action(uri, FORCE_CREATE_PULSE, idx, status) + write(*,*) 'Creating pulse file, idx = ', idx + call ids_put(idx,"magnetics",mag) + + write(*,*) 'Closing pulse file, idx = ', idx + call imas_close(idx) + + ! Unregistering the plugin since we do not need it anymore + call al_unregister_plugin ('creation_date', status) + + ! Opening the pulse file to check the value of 'creation_date' + + call al_begin_dataentry_action(uri, OPEN_PULSE, idx, status) + write(*,*) 'Opening pulse file, idx = ', idx + + write(*,*) 'Reading pulse file, idx = ', idx + call ids_get(idx,"magnetics",mag) + + print *, 'creation_date = ', mag%ids_properties%creation_date + call imas_close(idx) + + end program test + +Executing the Fortran code above gives the following output: + +.. code-block:: console + + $ ./gfortran_test_creation_date_plugin 55000 0 LF218007 test 13 + + Using the magnetics IDS for demo purpose + + Creating pulse file, idx = 1 + + Patching creation_date... + + End of patching. + + Closing pulse file, idx = 1 + + Opening pulse file, idx = 1 + + Reading pulse file, idx = 1 + + creation_date = 2022-03-16 + + +Binding a *readback* plugin +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Let us consider again the ``creation_date`` plugin. Suppose that +we want to display the value of the field ``ids_properties/creation_date`` +(using the ``debug`` plugin) just after it has been patched. In order to +execute the ``debug`` plugin, we replace the *readback* feature +function ``getReadbackName(...)`` of the ``creation_date`` plugin: + +.. code-block:: C++ + + std::string Creation_date_plugin::getReadbackName(const std::string &path, int* index) { + return ""; + } + +by the following code: + +.. code-block:: C++ + + std::string Creation_date_plugin::getReadbackName(const std::string &path, int* index) { + if (path.rfind("ids_properties/creation_date")) { + *index = 0; + return "debug"; + } + } + +In the code above, we are binding the ``debug`` plugin to the path +``ids_properties/creation_date`` + +After recompilation of the plugin, the execution of the C++ test of +`Figure 29`_ gives the following output: + +.. code-block:: console + + $ ./test_creation_date_plugin imas:hdf5?path=/Home/LF218007/public/imasdb/test/3/55000/0 + Patching the field 'ids_properties/creation_date' of a magnetics IDS for demo purpose. + Patching creation_date from the creation_date plugin... + End of patching. + Reading IDS... + 0000001 | [debug] : read_data - reading data for field path= ids_properties/creation_date + 0000002 | [debug] : read_data - ids_properties/creation_date= 2023-03-06 + visiting AOS=ids_properties/plugins/node with size=1 + node at path=ids_properties/creation_date + readback plugin --> name=debug + --> version=1.1.0 + --> commit=d92bb2f30384bc618574508b56e9542d00f0e97a + +The *readback* plugin ``debug`` is executed during the +``get()`` operation (when visiting the node ``ids_properties/creation_date``) +as expected. + + +Building a partial ``get()`` operation +-------------------------------------- + +Skipping the read of an array of structure +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. note:: + + The complete source code for the PartialGetPlugin class implementation (partial_get_plugin.cpp) + and header (partial_get_plugin.h) is available in the al-plugins repository. + +In a first use-case, the user wants to access only few attributes of the +``equilibrium`` IDS for many shots. In order to speed up reading, he +decides to skip the loading of the ``grids_ggd`` array of structures (AOS). +The ``PartialGetPlugin`` class provides an efficient solution. During the ``get()`` +operation, the plugin intercepts the HLI call to the function +``al_begin_arraystruct_action(...)`` for the ``grids_ggd`` AOS and sets its size +(using the arraySize pointer) to 0 after displaying a warning to the +user: + +.. code-block:: C++ + + void PartialGetPlugin::begin_arraystruct_action(int ctx, int *aosctx, const char* fieldPath, const char* timeBasePath, int *arraySize) { + if (std::string(fieldPath) == "grids_ggd") { + LOG_WARNING << "ignoring gids_ggd"; + *arraySize = 0; + } + } + +The value of arraySize (set to 0) is returned to the HLI which will +therefore skip the iteration of the ``grids_ggd`` AOS. + + +Executing the ``partial_get`` plugin +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. md-tab-set:: + + .. md-tab-item:: Using Python + + `Figure 33`_ depicts a HLI python client code to test the plugin. + + .. code-block:: python + :caption: **Figure 33:** python client code to test the ``PartialGetPlugin`` plugin + :name: Figure 33 + + import imas + from imas import imasdef + import matplotlib.pyplot as plt + from imas.hli_plugins import HLIPlugins + import sys + + uri = sys.argv[1] + + data_entry = imas.DBEntry(uri) + data_entry.open() + + HLIPlugins.register_plugin("partial_get"); + HLIPlugins.bind_plugin("equilibrium:0/grids_ggd", "partial_get") + + equilibrium_ids = data_entry.get('equilibrium', occurrence=0) + + print("Grids_ggd AOS size=",len(equilibrium_ids.grids_ggd)) + + HLIPlugins.unregister_plugin("partial_get") + + The execution of the plugin gives the following output: + + .. code-block:: console + + $ python test_partial_get_plugin.py imas:hdf5?path=/Imas_public/public/imasdb/west/3/54914/0/ + 0000001 | [warning] : begin_arraystruct_action - ignoring grids_ggd + Grids_ggd AOS size= 0 + + + .. md-tab-item:: Using C++ + + .. code-block:: C++ + :caption: **Figure 34:** C++ client code to test the ``partial_get`` plugin + :name: Figure 34 + + #include + #include "ALClasses.h" + + using namespace IdsNs; + + void execute(char** argv); + void exitIfError(al_status_t &status); + + void execute(char** argv) { + + int pulse=54; + char* userName = NULL; + + userName = getenv("USER"); + if(userName == NULL) + { + printf( "PANIC: $USER not found! Exiting..."); + exit(1); + } + + /* Get Full */ + IdsNs::IDS data_entry(pulse,1,-1,-1); + data_entry.openEnv(userName, "test", "3"); + + al_status_t status = al_register_plugin("partial_get"); + exitIfError(status); + status = al_bind_plugin("magnetics:0/flux_loop", "partial_get"); + IDS::magnetics ids = data_entry._magnetics; + ids.get(0); + printf("magnetics AOS size=%d\n",ids.flux_loop.size()); + data_entry.close(); + + status = al_unregister_plugin("partial_get"); + exitIfError(status); + } + + void exitIfError(al_status_t &status) { + if (status.code != 0) { + printf("%s\n", status.message); + exit(-1); + } + } + + + int main(int argc, char** argv){ + execute(argv); + } + + Execution of C++ client code gives: + + .. code-block:: console + + $ ./test_partial_get_plugin imas:hdf5?path=/Imas_public/public/imasdb/west/3/54914/0/ + 0000001 | [warning] : begin_arraystruct_action - ignoring grids_ggd + Grids_ggd AOS size=0 + + + .. md-tab-item:: Using Fortran + + .. code-block:: Fortran + :caption: **Figure 35:** fortran client code to test the ``partial_get`` plugin + :name: Figure 35 + + program test + + use ids_routines + implicit none + + integer :: idx, mode, status + + type (ids_magnetics) :: mag ! Declaration of the ids + character(STRMAXLEN) :: uri + character(len=132):: usr + integer :: pulse = 54 + integer :: run = 1 + + call get_environment_variable("USER",usr) + + call al_build_uri_from_legacy_parameters(MDSPLUS_BACKEND, pulse, run, usr, "test", "3", "", uri, status) + + ! Registering the 'partial_get' plugin + call al_register_plugin ('partial_get', status) + + ! Binding the 'partial_get' plugin to the 'grids_ggd' node of the equilibrium IDS (as a demo purpose) + call al_bind_plugin ('magnetics:0/flux_loop', 'partial_get', status) + + ! Opening the pulse file + call al_begin_dataentry_action(uri, OPEN_PULSE, idx, status); + write(*,*) 'Opening pulse file, idx = ', idx + + ! Calling 'get' will call the 'partial_get' plugin + call ids_get(idx,"magnetics", mag) + print *, 'flux_loop pointer associated = ', associated(mag%flux_loop) + call imas_close(idx) + + end program test + + .. code-block:: console + + $ ./gfortran_test_partial_get_plugin imas:hdf5?path=/Imas_public/public/imasdb/west/3/54914/0/ + 0000001 | [warning] : begin_arraystruct_action - ignoring grids_ggd + Grids_ggd pointer associated = F diff --git a/doc/doc_common/requirements.txt b/doc/doc_common/requirements.txt new file mode 100644 index 0000000..299cf3a --- /dev/null +++ b/doc/doc_common/requirements.txt @@ -0,0 +1,17 @@ +# Sphinx and theme +sphinx >= 6.0, < 7.0 +sphinx_immaterial >= 0.11.4, < 0.12 + +# Fortran domain +sphinx-fortran +six # un-listed dependency of sphinx-fortran + +# Java domain +# Note: package is deprecated, but no alternatives exist... +javasphinx + +# Matlab domain +sphinxcontrib-matlabdomain + +# Requirements for the HLI files we import for the Python docs +numpy diff --git a/doc/doc_common/static/.keep b/doc/doc_common/static/.keep new file mode 100644 index 0000000..e69de29 diff --git a/doc/doc_common/templates/base.html b/doc/doc_common/templates/base.html new file mode 100644 index 0000000..0f8c7af --- /dev/null +++ b/doc/doc_common/templates/base.html @@ -0,0 +1,24 @@ +{% extends "!base.html" %} + +{% block styles %} +{{ super() }} + +{% endblock %} + +{% block outdated %} + {% if is_develop %} + You're viewing a development version ({{ version }}). + {% else %} + You're viewing an older version ({{ version }}). + {% endif %} + + Click here to go to the documentation of the latest release. + +{% endblock %} \ No newline at end of file diff --git a/doc/doc_common/use_ids.rst b/doc/doc_common/use_ids.rst new file mode 100644 index 0000000..6f10b4b --- /dev/null +++ b/doc/doc_common/use_ids.rst @@ -0,0 +1,339 @@ +Use Interface Data Structures +============================= + +The Interface Data Structures (IDSs) are the main way to interact with IMAS +data. An IDS is a tree-like structure with one root element (the IDS) and +several branches with data at the leave nodes. + +Many types of IDSs exist: check out the documentation of the |DD| for a complete +overview. + + +Creating IDSs +------------- + +IDSs can be created in multiple ways: + +1. :ref:`Load an IDS from disk ` +2. :ref:`Create an empty IDS` +3. :ref:`Create a copy of an IDS` + + +Create an empty IDS +''''''''''''''''''' + +You can create an empty instance of an IDS by |create_ids_text| creates an empty +``core_profiles`` IDS. This initializes all items in the IDS to their +:ref:`default values`. + +.. literalinclude:: code_samples/ids_create + :caption: |lang| example: create an empty IDS + + +Create a copy of an IDS +''''''''''''''''''''''' + +You can create a copy of another IDS |copy_ids|. + +.. literalinclude:: code_samples/ids_copy + :caption: |lang| example: create a copy of an IDS + + +Deallocate an IDS +''''''''''''''''' + +If you no longer need an IDS, you can deallocate it so it releases the (memory) +resources in use by the data. |deallocate_ids_text| + +.. literalinclude:: code_samples/ids_deallocate + :caption: |lang| example: deallocate an IDS + + +Mandatory and recommended IDS attributes +---------------------------------------- + +Some attributes in an IDS are mandatory or recommended to always fill. Below +list provides a short overview: + +.. todo:: + + Link to DD documentation + +1. ``ids_properties/homogeneous_time`` `[mandatory]`: see :ref:`Time coordinates + and time handling`. +2. ``ids_properties/comment`` `[recommended]`: a comment describing the content + of this IDS. +3. ``ids_properties/provider`` `[recommended]`: name of the person in charge of + producing this data. +4. ``ids_properties/creation_date`` `[recommended]`: date at which this data has + been produced, recommended to use the `ISO 8601 + `_ ``YYYY-MM-DD`` format. + +.. note:: + + ``ids_properties/version_put`` is filled by the access layer when you + :ref:`put an IDS `. + + +Understanding the IDS structure +------------------------------- + +An IDS is a `tree structure +`_. You can think of it +similar as a directory structure with files: the IDS is the root "directory", +and inside it you can find "subdirectories" and "files" with data. + +We will use the general Computer Science terminology for tree structures and +call these "files" and "directories" of our IDSs `nodes`. IDSs can have a +limited number of different types of nodes: + +1. :ref:`Structure`: think of these as the directories of your file + system. Structures contain one or more child nodes (files and + subdirectories). Child nodes can be of any node type again. + +2. :ref:`Array of structures`: this is an array of structures (see + previous point). + +3. :ref:`Data`: this is a data element. Like files on your file system + these nodes contain the actual data stored in the IDS. + + +Structure +''''''''' + +Structure nodes in an IDS are a container for other nodes. In |lang| they are +implemented as a |structures_type|. You can address child nodes as +|structures_child_attribute|, see the code sample below. + +.. literalinclude:: code_samples/ids_structures_node + :caption: |lang| example: address the child node of an IDS structure node + + +Array of structures +''''''''''''''''''' + +Array of structure nodes in an IDS are one-dimensional arrays, containing structure +nodes. In |lang| they are implemented as a |aos_type|. The default value (for +example, when creating a new IDS) for these nodes is |aos_default|. + +.. literalinclude:: code_samples/ids_array_of_structures_node + :caption: |lang| example: address the child node of an IDS arrays of structure node + + +Resizing an array of structures +``````````````````````````````` + +You can resize an array of structures with |aos_resize_meth|. After calling +this, the array of structures will have ``n`` elements. + +.. caution:: + + Resizing an array of structures with |aos_resize_meth| will clear all data + inside the array of structure! Use |aos_resize_keep_meth| to keep existing + data. + +.. literalinclude:: code_samples/ids_array_of_structures_resize + :caption: |lang| example: resizing an array of structures + + +Data +'''' + +Data nodes in an IDS contain numerical or textual data. The data type and +dimensions of a node are defined in the |DD|. + +.. literalinclude:: code_samples/ids_data_node + :caption: |lang| example: get the data contained in a data node of an IDS + + +Data types +`````````` + +The following data types exist: + +- Textual data (|str_type|) +- Whole numbers (|int_type|) +- Floating point numbers (|double_type|) +- Complex floating point numbers (|complex_type|) + +Data nodes can be 0-dimensional, which means that the node accepts a single +value of the specified type. Multi-dimensional data nodes also exist: + +- Textual data: at most 1 dimension (|str_1d_type|) +- Whole numbers: 1-3 dimensions (|int_nd_type|) +- Floating point numbers: 1-6 dimensions (|double_nd_type|) +- Complex floating point numbers: 1-6 dimensions (|complex_nd_type|) + + +.. _Empty fields: + +Default values +`````````````` + +The default values for data fields (for example when creating an empty IDS) are +indicated in the following table. |isFieldValid| + +.. csv-table:: + :header-rows: 1 + :stub-columns: 1 + + , 0D, 1+ dimension + "Textual + + data", |str_default|, |str_1D_default| + "Whole + + numbers", |int_default|, |ND_default| + "Floating + + point + + numbers", |double_default|, |ND_default| + "Complex + + numbers", |complex_default|, |ND_default| + + +Time coordinates and time handling +'''''''''''''''''''''''''''''''''' + +Some quantities (and array of structures) are time dependent. In the |DD| +documentation this is indicated by a coordinate that refers to a time quantity. + +This time-dependent coordinate is treated specially in the access layer, and it +depends on the value of ``ids_properties/homogeneous_time``. There are three +valid values for this property: + +.. todo:: + + Add links to DD. + +1. |tm_heterogeneous| (=0): time-dependent quantities in the IDS may have + different time coordinates. The time coordinates are stored as indicated by + the path in the documentation. This is known as `heterogeneous time`. +2. |tm_homogeneous| (=1): All time-dependent quantities in this IDS use the same + time coordinate. This is known as `homogeneous time`. This time coordinate is + located in the root of the IDS, for example ``core_profiles/time``. The paths + time paths indicated in the documentation are unused in this case. +3. |tm_independent| (=2): The IDS stores no time-dependent data. + + + +IDS validation +-------------- + +The IDSs you fill should be consistent. To help you in validating that, the +Access Layer provides a validation method (|ids_validate|) that executes the +following checks. + +.. contents:: Validation checks + :local: + :depth: 1 + +If you call this method and your IDS fails validation, the Access Layer +|validate_error| explaining the problem. See the following example: + +.. literalinclude:: code_samples/ids_validate + :caption: |lang| example: call IDS validation + +The Access Layer automatically validates an IDS every time you do a +`put` or `put_slice`. To disable this feature, you must set the environment +variable ``IMAS_AL_DISABLE_VALIDATE`` to ``1``. + +.. seealso:: + + API documentation: |ids_validate| + + +Validate the time mode +'''''''''''''''''''''' + +The time mode of an IDS is stored in ``ids_properties.homogeneous_time``. This +property must be filled with a valid time mode (|tm_homogeneous|, +|tm_heterogeneous| or |tm_independent|). When the time +mode is |tm_independent|, all time-dependent quantities must be empty. + + +Validate coordinates +'''''''''''''''''''' + +If a quantity in your IDS has coordinates, then these coordinates must be filled. The +size of your data must match the size of the coordinates: + +.. todo:: link to DD docs + +1. Some dimensions must have a fixed size. This is indicated by the Data Dictionary + as, for example, ``1...3``. + + For example, in the ``magnetics`` IDS, ``b_field_pol_probe(i1)/bandwidth_3db`` has + ``1...2`` as coordinate 1. This means that, if you fill this data field, the first + (and only) dimension of this field must be of size 2. + +2. If the coordinate is another quantity in the IDS, then that coordinate must be + filled and have the same size as your data. + + For example, in the ``pf_active`` IDS, ``coil(i1)/current_limit_max`` is a + two-dimensional quantity with coordinates ``coil(i1)/b_field_max`` and + ``coil(i1)/temperature``. This means that, if you fill this data field, their + coordinate fields must be filled as well. The first dimension of + ``current_limit_max`` must have the same size as ``b_field_max`` and the second + dimension the same size as ``temperature``. + + Time coordinates are handled depending on the value of + ``ids_properties/homogeneous_time``: + + - When using |tm_homogeneous|, all time coordinates look at the root + ``time`` node of the IDS. + - When using |tm_heterogeneous|, all time coordinates look at the time + path specified as coordinate by the Data Dictionary. + + For dynamic array of structures, the time coordinates is a ``FLT_0D`` inside the + AoS (see, for example, ``profiles_1d`` in the ``core_profiles`` IDS). In such + cases the time node must be set to something different than ``EMPTY_FLOAT``. + This is the only case in which values of the coordinates are verified, in all + other cases only the sizes of coordinates are validated. + + .. rubric:: Alternative coordinates + + Version 4 of the Data Dictionary introduces alternative coordinates. An + example of this can be found in the ``core_profiles`` IDS in + ``profiles_1d(itime)/grid/rho_tor_norm``. Alternatives for this coordinate + are: + + - ``profiles_1d(itime)/grid/rho_tor`` + - ``profiles_1d(itime)/grid/psi`` + - ``profiles_1d(itime)/grid/volume`` + - ``profiles_1d(itime)/grid/area`` + - ``profiles_1d(itime)/grid/surface`` + - ``profiles_1d(itime)/grid/rho_pol_norm`` + + Multiple alternative coordinates may be filled (for example, an IDS might + fill both the normalized and non-normalized toroidal flux coordinate). In + that case, the size must be the same. + + When a quantity refers to this set of alternatives (for example + ``profiles_1d(itime)/electrons/temperature``), at least one of the + alternative coordinates must be set and its size match the size of the + quantity. + +3. The Data Dictionary can indicate exclusive alternative coordinates. See for + example the ``distribution(i1)/profiles_2d(itime)/density(:,:)`` quantity in the + ``distributions`` IDS, which has as first coordinate + ``distribution(i1)/profiles_2d(itime)/grid/r OR + distribution(i1)/profiles_2d(itime)/grid/rho_tor_norm``. This means that + either ``r`` or ``rho_tor_norm`` can be used as coordinate. + + Validation works the same as explained in the previous point, except that + exactly one of the alternative coordinate must be filled. Its size must, of + course, still match the size of the data in the specified dimension. + +4. Some quantites indicate a coordinate must be the same size as another quantity + through the property ``coordinateX_same_as``. In this case, the other quantity is + not a coordinate, but their data is related and must be of the same size. + + An example can be found in the ``edge_profiles`` IDS, quantity + ``ggd(itime)/neutral(i1)/velocity(i2)/diamagnetic``. This is a two-dimensional field + for which the first coordinate must be the same as + ``ggd(itime)/neutral(i1)/velocity(i2)/radial``. When the diamagnetic velocity + component is filled, the radial component must be filled as well, and have a + matching size. diff --git a/doc/doc_common/using_al.rst b/doc/doc_common/using_al.rst new file mode 100644 index 0000000..91b9f6a --- /dev/null +++ b/doc/doc_common/using_al.rst @@ -0,0 +1,38 @@ +Using the Access Layer +====================== + +Making the Access Layer available for use +----------------------------------------- + +To use the Access Layer in your programs, you need to make it available. On the +ITER cluster (SDCC) this is achieved by loading the ``IMAS`` module from the +command line: + +.. code-block:: bash + + module load IMAS + +This will select the default IMAS module. You can also select a specific +version. To see which versions of the IMAS module are available, enter on the +command line: + +.. code-block:: bash + + module avail IMAS + +Please check with your HPC administrators which module you need to load when not working +on SDCC. When you're working with a local installation (see :ref:`Building and +installing the Access Layer`), you can source the installed environment file: + +.. code-block:: bash + :caption: Set environment variables (replace ```` with the folder of your local install) + + source /bin/al_env.sh + + +.. + HLI-specific documentation should include the following items: + + - Code samples for loading the library (import, include, use, etc.) + - Example program printing the Access Layer version used + - Instructions for (compiling if relevant) and running the example program From d4650a0210c3e46aacee016478dcadcd773ec050 Mon Sep 17 00:00:00 2001 From: prasad-sawantdesai Date: Fri, 30 Jan 2026 15:56:39 +0100 Subject: [PATCH 02/18] added common directory and fixed branch issues --- CMakeLists.txt | 95 ++++--- common/CMakeLists.txt | 27 ++ common/README.md | 49 ++++ common/al_env.sh.in | 21 ++ .../cmake}/ALBuildDataDictionary.cmake | 10 +- .../cmake}/ALBuildDocumentation.cmake | 0 {cmake => common/cmake}/ALCommonConfig.cmake | 17 +- {cmake => common/cmake}/ALCore.cmake | 0 .../cmake}/ALDetermineVersion.cmake | 0 .../cmake}/ALExampleUtilities.cmake | 0 {cmake => common/cmake}/ALLocalPaths.cmake | 4 +- .../cmake}/ALSetCompilerFlags.cmake | 0 {cmake => common/cmake}/FindMDSplus.cmake | 0 {cmake => common/cmake}/FindPThreads4W.cmake | 0 common/cmake/abc.cmake1 | 197 ++++++++++++++ common/dd_version.xsl | 15 ++ common/identifiers.common.xsl | 247 ++++++++++++++++++ common/list_idss.xsl | 18 ++ {cmake => common}/xsltproc.py | 0 19 files changed, 636 insertions(+), 64 deletions(-) create mode 100644 common/CMakeLists.txt create mode 100644 common/README.md create mode 100644 common/al_env.sh.in rename {cmake => common/cmake}/ALBuildDataDictionary.cmake (97%) rename {cmake => common/cmake}/ALBuildDocumentation.cmake (100%) rename {cmake => common/cmake}/ALCommonConfig.cmake (85%) rename {cmake => common/cmake}/ALCore.cmake (100%) rename {cmake => common/cmake}/ALDetermineVersion.cmake (100%) rename {cmake => common/cmake}/ALExampleUtilities.cmake (100%) rename {cmake => common/cmake}/ALLocalPaths.cmake (72%) rename {cmake => common/cmake}/ALSetCompilerFlags.cmake (100%) rename {cmake => common/cmake}/FindMDSplus.cmake (100%) rename {cmake => common/cmake}/FindPThreads4W.cmake (100%) create mode 100644 common/cmake/abc.cmake1 create mode 100644 common/dd_version.xsl create mode 100644 common/identifiers.common.xsl create mode 100644 common/list_idss.xsl rename {cmake => common}/xsltproc.py (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index fa85774..db93b94 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,7 +23,8 @@ endif() # Local paths for IMAS-Matlab ################################################################################ # Include local paths to eliminate AL_COMMON_PATH dependency -include(ALLocalPaths) +# Use full path since CMAKE_MODULE_PATH hasn't been configured yet +include(${CMAKE_CURRENT_SOURCE_DIR}/common/cmake/ALLocalPaths.cmake) option( AL_DOWNLOAD_DEPENDENCIES "Automatically download assets from the AL git repository" ON ) set( AL_CORE_GIT_REPOSITORY "https://github.com/iterorganization/IMAS-Core.git" CACHE STRING "Git repository of AL-core" ) set( AL_CORE_VERSION "main" CACHE STRING "Git commit/tag/branch of AL-core" ) @@ -32,58 +33,56 @@ include(FetchContent) # Load AL-core library (used for the shared library) ################################################################################ if(WIN32) - if( ${AL_DOWNLOAD_DEPENDENCIES} ) - # FetchContent_Declare causing reursive call wrapped by vcpkg to _find_package - # So manually clone al-core here. Need fix in later release - set( al-core_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/al-core-src" ) - if( NOT EXISTS "${al-core_SOURCE_DIR}/.git" ) - message( STATUS "Cloning al-core from ${AL_CORE_GIT_REPOSITORY}" ) - execute_process( - COMMAND git clone "${AL_CORE_GIT_REPOSITORY}" "${al-core_SOURCE_DIR}" - RESULT_VARIABLE _GIT_CLONE_RESULT - ERROR_VARIABLE _GIT_CLONE_ERROR - ) - if( _GIT_CLONE_RESULT ) - message( FATAL_ERROR "Failed to clone al-core: ${_GIT_CLONE_ERROR}" ) - endif() - endif() - # Checkout the specified version - execute_process( - COMMAND git fetch origin - WORKING_DIRECTORY "${al-core_SOURCE_DIR}" - RESULT_VARIABLE _GIT_FETCH_RESULT - ) + if( ${AL_DOWNLOAD_DEPENDENCIES} ) + # FetchContent_Declare causing reursive call wrapped by vcpkg to _find_package + # So manually clone al-core here. Need fix in later release + set( al-core_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/al-core-src" ) + if( NOT EXISTS "${al-core_SOURCE_DIR}/.git" ) + message( STATUS "Cloning al-core from ${AL_CORE_GIT_REPOSITORY}" ) execute_process( - COMMAND git checkout "${AL_CORE_VERSION}" - WORKING_DIRECTORY "${al-core_SOURCE_DIR}" - RESULT_VARIABLE _GIT_CHECKOUT_RESULT - ERROR_VARIABLE _GIT_CHECKOUT_ERROR + COMMAND git clone "${AL_CORE_GIT_REPOSITORY}" "${al-core_SOURCE_DIR}" + RESULT_VARIABLE _GIT_CLONE_RESULT + ERROR_VARIABLE _GIT_CLONE_ERROR ) - if( _GIT_CHECKOUT_RESULT ) - message( FATAL_ERROR "Failed to checkout ${AL_CORE_VERSION}: ${_GIT_CHECKOUT_ERROR}" ) - endif() - else() - set( al-core_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../al-core" ) - if( NOT IS_DIRECTORY "${al-core_SOURCE_DIR}" ) - message( FATAL_ERROR "${al-core_SOURCE_DIR} does not exist. Set AL_DOWNLOAD_DEPENDENCIES=ON to download." ) + if( _GIT_CLONE_RESULT ) + message( FATAL_ERROR "Failed to clone al-core: ${_GIT_CLONE_ERROR}" ) endif() endif() - else() - if( ${AL_DOWNLOAD_DEPENDENCIES} ) - # Download common assets from the ITER git: - FetchContent_Declare( - al-core - GIT_REPOSITORY "${AL_CORE_GIT_REPOSITORY}" - GIT_TAG "${AL_CORE_VERSION}" - ) - else() - FetchContent_Declare( - al-core - SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../al-core" - ) + # Checkout the specified version + execute_process( + COMMAND git fetch origin + WORKING_DIRECTORY "${al-core_SOURCE_DIR}" + RESULT_VARIABLE _GIT_FETCH_RESULT + ) + execute_process( + COMMAND git checkout "${AL_CORE_VERSION}" + WORKING_DIRECTORY "${al-core_SOURCE_DIR}" + RESULT_VARIABLE _GIT_CHECKOUT_RESULT + ERROR_VARIABLE _GIT_CHECKOUT_ERROR + ) + if( _GIT_CHECKOUT_RESULT ) + message( FATAL_ERROR "Failed to checkout ${AL_CORE_VERSION}: ${_GIT_CHECKOUT_ERROR}" ) endif() - - endif() + elif ( ${AL_DEVELOPMENT_LAYOUT} ) + set( al-core_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../al-core" ) + endif() +else() + if( ${AL_DOWNLOAD_DEPENDENCIES} ) + # Download common assets from the ITER git: + FetchContent_Declare( + al-core + GIT_REPOSITORY "${AL_CORE_GIT_REPOSITORY}" + GIT_TAG "${AL_CORE_VERSION}" + ) + FetchContent_MakeAvailable( al-core ) + elseif ( ${AL_DEVELOPMENT_LAYOUT} ) + FetchContent_Declare( + al-core + SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../al-core" + ) + FetchContent_MakeAvailable( al-core ) + endif() + endif() # Define project diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt new file mode 100644 index 0000000..129ba5e --- /dev/null +++ b/common/CMakeLists.txt @@ -0,0 +1,27 @@ +# CMake configuration for AL common assets +# Intended for inclusion (using FetchContent_MakeAvailable) in other AL components + +# Add ./cmake to the module path in the parent scope: +set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake PARENT_SCOPE ) + +if ( ${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR} ) + message( FATAL_ERROR "In-source builds not supported. Please use a separate build directory, for example `cmake -B build [...]`" ) +endif() + +if( AL_PYTHON_BINDINGS ) + find_package( Python3 ) + set( PYVER "${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}" ) +endif() +configure_file( al_env.sh.in ${CMAKE_CURRENT_BINARY_DIR}/al_env.sh ) + +# Don't generate the environment file when building modules: +if( AL_DOWNLOAD_DEPENDENCIES OR AL_DEVELOPMENT_LAYOUT ) + install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/al_env.sh + TYPE BIN + ) +endif() + +# al-common_SOURCE_DIR is used in some scripts in the cmake/ folder to refer to the +# current source directory: +set( al-common_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} PARENT_SCOPE ) diff --git a/common/README.md b/common/README.md new file mode 100644 index 0000000..e1b4899 --- /dev/null +++ b/common/README.md @@ -0,0 +1,49 @@ +# AL-Common + +This folder contains shared assets for Access Layer components: + +- Shared documentation assets +- Shared CMake assets + +## How it works + +During the CMake configure step of any of the other Access Layer repositories +(`al-core`, `al-fortran`, etc.) this folder is imported by CMake: + +```cmake +# Configuration options for common assets +################################################################################ +option( AL_DOWNLOAD_DEPENDENCIES "Automatically download assets from the AL git repository" ON ) +set( AL_CORE_GIT_REPOSITORY "git@github.com:iterorganization/IMAS-Core.git" CACHE STRING "Git repository of AL-core" ) +set( AL_CORE_VERSION "main" CACHE STRING "Git commit/tag/branch of AL-core" ) + +include(FetchContent) + +# Load common assets +################################################################################ +if( DEFINED ENV{AL_COMMON_PATH} ) + # Take common assets from the path in this environment variable instead of al-core + set( AL_COMMON_PATH $ENV{AL_COMMON_PATH} ) +else() + if( ${AL_DOWNLOAD_DEPENDENCIES} ) + # Download common assets from the ITER git: + FetchContent_Declare( + al-core + GIT_REPOSITORY "${AL_CORE_GIT_REPOSITORY}" + GIT_TAG "${AL_CORE_VERSION}" + ) + else() + FetchContent_Declare( + al-core + SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../al-core" + ) + endif() + FetchContent_MakeAvailable( al-core ) + set( AL_COMMON_PATH "${al-core_SOURCE_DIR}/common" ) +endif() +add_subdirectory( ${AL_COMMON_PATH} _common ) +``` + +Contrary to what the name implies, the `GIT_TAG` can be a branch name, tag +or commit hash. See [this CMake documentation +page](https://cmake.org/cmake/help/latest/module/ExternalProject.html#git). diff --git a/common/al_env.sh.in b/common/al_env.sh.in new file mode 100644 index 0000000..22878aa --- /dev/null +++ b/common/al_env.sh.in @@ -0,0 +1,21 @@ +export PATH="${CMAKE_INSTALL_PREFIX}/bin:$PATH" +export LD_LIBRARY_PATH="${CMAKE_INSTALL_PREFIX}/lib:$LD_LIBRARY_PATH" +export PKG_CONFIG_PATH="${CMAKE_INSTALL_PREFIX}/lib/pkgconfig:$PKG_CONFIG_PATH" +export HDF5_USE_FILE_LOCKING=FALSE + +if [ -f "${CMAKE_INSTALL_PREFIX}/jar/imas.jar" ]; then + export CLASSPATH="${CMAKE_INSTALL_PREFIX}/jar/imas.jar:$CLASSPATH" +fi +if [ -d "${CMAKE_INSTALL_PREFIX}/mex" ]; then + export MATLABPATH="${CMAKE_INSTALL_PREFIX}/mex:$MATLABPATH" +fi +if [ -d "${CMAKE_INSTALL_PREFIX}/lib/python${PYVER}/site-packages" ]; then + export PYTHONPATH="${CMAKE_INSTALL_PREFIX}/lib/python${PYVER}/site-packages:$PYTHONPATH" +fi +if [ -d "${CMAKE_INSTALL_PREFIX}/models/mdsplus" ]; then + export ids_path="${CMAKE_INSTALL_PREFIX}/models/mdsplus" +fi +if [ -f "${CMAKE_INSTALL_PREFIX}/include/IDSDef.xml" ]; then + export IDSDEF_PATH="${CMAKE_INSTALL_PREFIX}/include/IDSDef.xml" + export IMAS_VERSION="$( grep -Pom 1 '(?<=)[^<]*' $IDSDEF_PATH )" +fi diff --git a/cmake/ALBuildDataDictionary.cmake b/common/cmake/ALBuildDataDictionary.cmake similarity index 97% rename from cmake/ALBuildDataDictionary.cmake rename to common/cmake/ALBuildDataDictionary.cmake index 7961b62..d87cd5a 100644 --- a/cmake/ALBuildDataDictionary.cmake +++ b/common/cmake/ALBuildDataDictionary.cmake @@ -294,7 +294,7 @@ else() endif() execute_process( - COMMAND ${_VENV_PYTHON} "${al-common_SOURCE_DIR}/xsltproc.py" + COMMAND ${_VENV_PYTHON} "${AL_LOCAL_XSLTPROC_SCRIPT}" -xsl "dd_data_dictionary.xml.xsl" -o "IDSDef.xml" -s "dd_data_dictionary.xml.xsd" @@ -348,11 +348,11 @@ if(_SAXONCHE_CHECK) endif() endif() -set( list_idss_file ${al-common_SOURCE_DIR}/list_idss.xsl ) +set( list_idss_file ${CMAKE_CURRENT_SOURCE_DIR}/common/list_idss.xsl ) set( CMAKE_CONFIGURE_DEPENDS ${CMAKE_CONFIGURE_DEPENDS};${list_idss_file};${IDSDEF} ) set( ids_names_tmpfile "${CMAKE_CURRENT_BINARY_DIR}/ids_names_tmp.txt" ) execute_process( COMMAND - ${_VENV_PYTHON} "${al-common_SOURCE_DIR}/xsltproc.py" + ${_VENV_PYTHON} "${AL_LOCAL_XSLTPROC_SCRIPT}" -xsl ${list_idss_file} -s ${IDSDEF} -o ${ids_names_tmpfile} @@ -372,10 +372,10 @@ endif() set( list_idss_file ) # unset temporary var # DD version -set( dd_version_file ${al-common_SOURCE_DIR}/dd_version.xsl ) +set( dd_version_file ${CMAKE_CURRENT_SOURCE_DIR}/common/dd_version.xsl ) set( dd_version_tmpfile "${CMAKE_CURRENT_BINARY_DIR}/dd_version_tmp.txt" ) execute_process( COMMAND - ${_VENV_PYTHON} "${al-common_SOURCE_DIR}/xsltproc.py" + ${_VENV_PYTHON} "${CMAKE_CURRENT_SOURCE_DIR}/common/xsltproc.py" -xsl ${dd_version_file} -s ${IDSDEF} -o ${dd_version_tmpfile} diff --git a/cmake/ALBuildDocumentation.cmake b/common/cmake/ALBuildDocumentation.cmake similarity index 100% rename from cmake/ALBuildDocumentation.cmake rename to common/cmake/ALBuildDocumentation.cmake diff --git a/cmake/ALCommonConfig.cmake b/common/cmake/ALCommonConfig.cmake similarity index 85% rename from cmake/ALCommonConfig.cmake rename to common/cmake/ALCommonConfig.cmake index 1c97c50..45f2b00 100644 --- a/cmake/ALCommonConfig.cmake +++ b/common/cmake/ALCommonConfig.cmake @@ -16,15 +16,14 @@ option( AL_DOCS_ONLY "Don't build anything, except the Sphinx-based High Level I # Saxon XSLT processor has been replaced with Python saxonche # No longer need to find SaxonHE - saxonche is installed automatically via pip in virtual environments -if( NOT AL_DOWNLOAD_DEPENDENCIES ) - # Check if local paths exist (indicates development mode) - if( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/ALLocalPaths.cmake" ) - set( _DEV OFF ) - else() - set( _DEV ON ) - endif() - option( AL_DEVELOPMENT_LAYOUT "Look into parent directories for dependencies" ${_DEV} ) -endif() +# if( NOT AL_DOWNLOAD_DEPENDENCIES ) +# if( AL_DEVELOPMENT_LAYOUT ) +# set( _DEV ON ) +# else() +# set( _DEV OFF ) +# endif() +# option( AL_DEVELOPMENT_LAYOUT "Look into parent directories for dependencies" ${_DEV} ) +# endif() # Enable CTest? if( AL_EXAMPLES OR AL_TESTS ) diff --git a/cmake/ALCore.cmake b/common/cmake/ALCore.cmake similarity index 100% rename from cmake/ALCore.cmake rename to common/cmake/ALCore.cmake diff --git a/cmake/ALDetermineVersion.cmake b/common/cmake/ALDetermineVersion.cmake similarity index 100% rename from cmake/ALDetermineVersion.cmake rename to common/cmake/ALDetermineVersion.cmake diff --git a/cmake/ALExampleUtilities.cmake b/common/cmake/ALExampleUtilities.cmake similarity index 100% rename from cmake/ALExampleUtilities.cmake rename to common/cmake/ALExampleUtilities.cmake diff --git a/cmake/ALLocalPaths.cmake b/common/cmake/ALLocalPaths.cmake similarity index 72% rename from cmake/ALLocalPaths.cmake rename to common/cmake/ALLocalPaths.cmake index b33f5ba..63b1ff6 100644 --- a/cmake/ALLocalPaths.cmake +++ b/common/cmake/ALLocalPaths.cmake @@ -2,13 +2,13 @@ # This file defines local paths to eliminate AL_COMMON_PATH dependency # Directory containing CMake modules -set(AL_LOCAL_CMAKE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/cmake) +set(AL_LOCAL_CMAKE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/common/cmake) # Directory containing documentation common files set(AL_LOCAL_DOC_COMMON_DIR ${CMAKE_CURRENT_SOURCE_DIR}/doc/doc_common) # XSLT processor script -set(AL_LOCAL_XSLTPROC_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/cmake/xsltproc.py) +set(AL_LOCAL_XSLTPROC_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/common/xsltproc.py) # Add cmake modules to CMake module path list(APPEND CMAKE_MODULE_PATH ${AL_LOCAL_CMAKE_DIR}) diff --git a/cmake/ALSetCompilerFlags.cmake b/common/cmake/ALSetCompilerFlags.cmake similarity index 100% rename from cmake/ALSetCompilerFlags.cmake rename to common/cmake/ALSetCompilerFlags.cmake diff --git a/cmake/FindMDSplus.cmake b/common/cmake/FindMDSplus.cmake similarity index 100% rename from cmake/FindMDSplus.cmake rename to common/cmake/FindMDSplus.cmake diff --git a/cmake/FindPThreads4W.cmake b/common/cmake/FindPThreads4W.cmake similarity index 100% rename from cmake/FindPThreads4W.cmake rename to common/cmake/FindPThreads4W.cmake diff --git a/common/cmake/abc.cmake1 b/common/cmake/abc.cmake1 new file mode 100644 index 0000000..213b15c --- /dev/null +++ b/common/cmake/abc.cmake1 @@ -0,0 +1,197 @@ +# AL core and plugins + +if( NOT AL_DOWNLOAD_DEPENDENCIES AND NOT AL_DEVELOPMENT_LAYOUT ) + # The Access Layer core should be available as a module, use PkgConfig to create a + # target: + find_package( PkgConfig ) + pkg_check_modules( al REQUIRED IMPORTED_TARGET al-core ) + add_library( al ALIAS PkgConfig::al ) + set( AL_CORE_VERSION ${al_VERSION} ) + + # Stop processing + return() +endif() +if(WIN32) + if( AL_DOWNLOAD_DEPENDENCIES ) + # Download the AL core from the ITER git using direct git commands: + set( al-core_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/al-core-src" ) + if( NOT EXISTS "${al-core_SOURCE_DIR}/.git" ) + message( STATUS "Cloning al-core from ${AL_CORE_GIT_REPOSITORY}" ) + execute_process( + COMMAND git clone "${AL_CORE_GIT_REPOSITORY}" "${al-core_SOURCE_DIR}" + RESULT_VARIABLE _GIT_CLONE_RESULT + ERROR_VARIABLE _GIT_CLONE_ERROR + ) + if( _GIT_CLONE_RESULT ) + message( FATAL_ERROR "Failed to clone al-core: ${_GIT_CLONE_ERROR}" ) + endif() + endif() + # Checkout the specified version + execute_process( + COMMAND git fetch origin + WORKING_DIRECTORY "${al-core_SOURCE_DIR}" + RESULT_VARIABLE _GIT_FETCH_RESULT + ) + execute_process( + COMMAND git checkout "${AL_CORE_VERSION}" + WORKING_DIRECTORY "${al-core_SOURCE_DIR}" + RESULT_VARIABLE _GIT_CHECKOUT_RESULT + ERROR_VARIABLE _GIT_CHECKOUT_ERROR + ) + if( _GIT_CHECKOUT_RESULT ) + message( FATAL_ERROR "Failed to checkout ${AL_CORE_VERSION}: ${_GIT_CHECKOUT_ERROR}" ) + endif() + else() + # Look in ../IMAS-Core (current repository name) + set( al-core_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../IMAS-Core ) + if( NOT IS_DIRECTORY ${al-core_SOURCE_DIR} ) + # Also check for ../al-core (old name) + set( al-core_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../al-core ) + if( NOT IS_DIRECTORY ${al-core_SOURCE_DIR} ) + # Repository used to be called "al-lowlevel", check this directory as well for + # backwards compatibility: + set( al-core_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../al-lowlevel ) + if( NOT IS_DIRECTORY ${al-core_SOURCE_DIR} ) + message( FATAL_ERROR + "${al-core_SOURCE_DIR} does not exist. Please clone the " + "al-core repository or set AL_DOWNLOAD_DEPENDENCIES=ON." + ) + endif() + endif() + endif() + endif() +else() + include(FetchContent) + + if( AL_DOWNLOAD_DEPENDENCIES ) + # Download the AL core from the ITER git: + FetchContent_Declare( + al-core + GIT_REPOSITORY ${AL_CORE_GIT_REPOSITORY} + GIT_TAG ${AL_CORE_VERSION} + ) + else() + # Look in ../IMAS-Core (current repository name) + set( AL_SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../IMAS-Core ) + if( NOT IS_DIRECTORY ${AL_SOURCE_DIRECTORY} ) + # Also check for ../al-core (old name) + set( AL_SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../al-core ) + if( NOT IS_DIRECTORY ${AL_SOURCE_DIRECTORY} ) + # Repository used to be called "al-lowlevel", check this directory as well for + # backwards compatibility: + set( AL_SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../al-lowlevel ) + if( NOT IS_DIRECTORY ${AL_SOURCE_DIRECTORY} ) + message( FATAL_ERROR + "${AL_SOURCE_DIRECTORY} does not exist. Please clone the " + "al-core repository or set AL_DOWNLOAD_DEPENDENCIES=ON." + ) + endif() + endif() + endif() + + FetchContent_Declare( + al-core + SOURCE_DIR ${AL_SOURCE_DIRECTORY} + ) + set( AL_SOURCE_DIRECTORY ) # unset temporary var + endif() +endif() + +# Don't load the AL core when only building documentation +if( NOT AL_DOCS_ONLY ) + # Ensure vcpkg packages are found in the subdirectory + if(WIN32) + # On Windows, ensure vcpkg packages are available to the subdirectory + if(DEFINED VCPKG_INSTALLED_DIR AND DEFINED VCPKG_TARGET_TRIPLET) + # Add vcpkg installed directory to CMAKE_PREFIX_PATH for the subdirectory + set(CMAKE_PREFIX_PATH "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET};${CMAKE_PREFIX_PATH}") + # Pass vcpkg variables to subdirectory by setting them in parent scope + set(VCPKG_INSTALLED_DIR "${VCPKG_INSTALLED_DIR}" CACHE STRING "vcpkg installed dir" FORCE) + set(VCPKG_TARGET_TRIPLET "${VCPKG_TARGET_TRIPLET}" CACHE STRING "vcpkg triplet" FORCE) + message(STATUS "ALCore: Passing vcpkg paths to al-core subdirectory") + message(STATUS " VCPKG_INSTALLED_DIR: ${VCPKG_INSTALLED_DIR}") + message(STATUS " VCPKG_TARGET_TRIPLET: ${VCPKG_TARGET_TRIPLET}") + message(STATUS " CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}") + endif() + add_subdirectory( ${al-core_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/_deps/al-core-build ) + else() + FetchContent_MakeAvailable( al-core ) + endif() + get_target_property( AL_CORE_VERSION al VERSION ) +endif() + + +if( ${AL_PLUGINS} ) + if(WIN32) + if( ${AL_DOWNLOAD_DEPENDENCIES} ) + # Download the AL plugins from the ITER git using direct git commands: + set( al-plugins_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/al-plugins-src" ) + if( NOT EXISTS "${al-plugins_SOURCE_DIR}/.git" ) + message( STATUS "Cloning al-plugins from ${AL_PLUGINS_GIT_REPOSITORY}" ) + execute_process( + COMMAND git clone "${AL_PLUGINS_GIT_REPOSITORY}" "${al-plugins_SOURCE_DIR}" + RESULT_VARIABLE _GIT_CLONE_RESULT + ERROR_VARIABLE _GIT_CLONE_ERROR + ) + if( _GIT_CLONE_RESULT ) + message( FATAL_ERROR "Failed to clone al-plugins: ${_GIT_CLONE_ERROR}" ) + endif() + endif() + # Checkout the specified version + execute_process( + COMMAND git fetch origin + WORKING_DIRECTORY "${al-plugins_SOURCE_DIR}" + RESULT_VARIABLE _GIT_FETCH_RESULT + ) + execute_process( + COMMAND git checkout "${AL_PLUGINS_VERSION}" + WORKING_DIRECTORY "${al-plugins_SOURCE_DIR}" + RESULT_VARIABLE _GIT_CHECKOUT_RESULT + ERROR_VARIABLE _GIT_CHECKOUT_ERROR + ) + if( _GIT_CHECKOUT_RESULT ) + message( FATAL_ERROR "Failed to checkout ${AL_PLUGINS_VERSION}: ${_GIT_CHECKOUT_ERROR}" ) + endif() + else() + # Look in ../plugins + set( al-plugins_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../al-plugins ) + if( NOT IS_DIRECTORY ${al-plugins_SOURCE_DIR} ) + message( FATAL_ERROR + "${al-plugins_SOURCE_DIR} does not exist. Please clone the " + "al-plugins repository or set AL_DOWNLOAD_DEPENDENCIES=ON." + ) + endif() + endif() + + else() + if( ${AL_DOWNLOAD_DEPENDENCIES} ) + # Download the AL plugins from the ITER git: + FetchContent_Declare( + al-plugins + GIT_REPOSITORY ${AL_PLUGINS_GIT_REPOSITORY} + GIT_TAG ${AL_PLUGINS_VERSION} + ) + else() + # Look in ../plugins + set( PLUGINS_SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../al-plugins ) + if( NOT IS_DIRECTORY ${PLUGINS_SOURCE_DIRECTORY} ) + message( FATAL_ERROR + "${PLUGINS_SOURCE_DIRECTORY} does not exist. Please clone the " + "al-plugins repository or set AL_DOWNLOAD_DEPENDENCIES=ON." + ) + endif() + + FetchContent_Declare( + al-plugins + SOURCE_DIR ${PLUGINS_SOURCE_DIRECTORY} + ) + set( PLUGINS_SOURCE_DIRECTORY ) # unset temporary var + endif() + FetchContent_MakeAvailable( al-plugins ) + endif() +endif() + +if( AL_HLI_DOCS ) + include( ALBuildDocumentation ) +endif() + diff --git a/common/dd_version.xsl b/common/dd_version.xsl new file mode 100644 index 0000000..906f556 --- /dev/null +++ b/common/dd_version.xsl @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + diff --git a/common/identifiers.common.xsl b/common/identifiers.common.xsl new file mode 100644 index 0000000..af36725 --- /dev/null +++ b/common/identifiers.common.xsl @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #include + + + + use + + + + import + + + + import + + ; + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?xml version="1.0" ?> + <section class="topic" id="imas_enum_types__ "> + <title> + + </title> + + + + <para> + <screen> + + + + + + </screen> + </para> + + + + + + + <para> This identifier is used in the following places in the ITER IDSs: + + <screen> + + </screen> + + </para> + + + + + <para> Fortran interface example: + <screen> use + + , only: get_type_index, get_type_name, get_type_description</screen> + </para> + + + + + + + + <table> + <tgroup cols="3"> + <colspec colwidth="45mm"/> + <colspec colwidth="60mm"/> + <colspec colwidth="68mm"/> + <thead> + <row> + <entry>Name</entry> + <entry>Value</entry> + <entry>Description</entry> + </row> + </thead> + <tbody> + + + + + <table> + <tgroup cols="3">. + + + <colspec colwidth="15mm"/> + <colspec colwidth="50mm"/> + <colspec colwidth="108mm"/> + <thead> + <row> + <entry>Flag</entry> + <entry>Id</entry> + <entry>Description</entry> + </row> + </thead> + <tbody> + + + + + + + + + + <row> + <entry> + + + </entry> + <entry> <mono> + + </mono> </entry> + + <entry> + + </entry> + </row> + + + + + </tbody> + </tgroup> + </table> + + + </section> + + + + diff --git a/common/list_idss.xsl b/common/list_idss.xsl new file mode 100644 index 0000000..d6d814a --- /dev/null +++ b/common/list_idss.xsl @@ -0,0 +1,18 @@ + + + + + + + + + + + + ; + + + + + diff --git a/cmake/xsltproc.py b/common/xsltproc.py similarity index 100% rename from cmake/xsltproc.py rename to common/xsltproc.py From add98e9c2bbe0dbd5522020582f67c23270251f4 Mon Sep 17 00:00:00 2001 From: prasad-sawantdesai Date: Mon, 2 Feb 2026 16:18:27 +0100 Subject: [PATCH 03/18] fixed elif statement --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index db93b94..22cc919 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,7 +63,7 @@ if(WIN32) if( _GIT_CHECKOUT_RESULT ) message( FATAL_ERROR "Failed to checkout ${AL_CORE_VERSION}: ${_GIT_CHECKOUT_ERROR}" ) endif() - elif ( ${AL_DEVELOPMENT_LAYOUT} ) + elseif ( ${AL_DEVELOPMENT_LAYOUT} ) set( al-core_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../al-core" ) endif() else() From 3491360763be2d243228381f881251649464c3c3 Mon Sep 17 00:00:00 2001 From: prasad-sawantdesai Date: Tue, 3 Feb 2026 10:45:36 +0100 Subject: [PATCH 04/18] added option for lrge generated code files on windows --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 22cc919..7325f1d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -262,6 +262,8 @@ if(WIN32) target_include_directories( "mex-${NAME}" PRIVATE src ) # Use separate (non-interleaved) complex API for compatibility target_compile_definitions( "mex-${NAME}" PUBLIC) + # Add /bigobj flag for large generated code files + target_compile_options( "mex-${NAME}" PRIVATE /bigobj ) list( APPEND MEX_TARGETS "mex-${NAME}" ) endmacro() else() From b4365d19dfb213cc53195247a30e0a6b77dd4dee Mon Sep 17 00:00:00 2001 From: prasad-sawantdesai Date: Thu, 5 Feb 2026 12:28:46 +0100 Subject: [PATCH 05/18] removed cmake files which are not required and updated build dd cmake --- common/cmake/ALBuildDataDictionary.cmake | 6 +- common/cmake/ALBuildDocumentation.cmake | 5 - common/cmake/FindMDSplus.cmake | 91 ----------- common/cmake/FindPThreads4W.cmake | 70 -------- common/cmake/abc.cmake1 | 197 ----------------------- 5 files changed, 3 insertions(+), 366 deletions(-) delete mode 100644 common/cmake/FindMDSplus.cmake delete mode 100644 common/cmake/FindPThreads4W.cmake delete mode 100644 common/cmake/abc.cmake1 diff --git a/common/cmake/ALBuildDataDictionary.cmake b/common/cmake/ALBuildDataDictionary.cmake index d87cd5a..f85e8e8 100644 --- a/common/cmake/ALBuildDataDictionary.cmake +++ b/common/cmake/ALBuildDataDictionary.cmake @@ -348,7 +348,7 @@ if(_SAXONCHE_CHECK) endif() endif() -set( list_idss_file ${CMAKE_CURRENT_SOURCE_DIR}/common/list_idss.xsl ) +set( list_idss_file ${CMAKE_SOURCE_DIR}/common/list_idss.xsl ) set( CMAKE_CONFIGURE_DEPENDS ${CMAKE_CONFIGURE_DEPENDS};${list_idss_file};${IDSDEF} ) set( ids_names_tmpfile "${CMAKE_CURRENT_BINARY_DIR}/ids_names_tmp.txt" ) execute_process( COMMAND @@ -372,10 +372,10 @@ endif() set( list_idss_file ) # unset temporary var # DD version -set( dd_version_file ${CMAKE_CURRENT_SOURCE_DIR}/common/dd_version.xsl ) +set( dd_version_file ${CMAKE_SOURCE_DIR}/common/dd_version.xsl ) set( dd_version_tmpfile "${CMAKE_CURRENT_BINARY_DIR}/dd_version_tmp.txt" ) execute_process( COMMAND - ${_VENV_PYTHON} "${CMAKE_CURRENT_SOURCE_DIR}/common/xsltproc.py" + ${_VENV_PYTHON} "${AL_LOCAL_XSLTPROC_SCRIPT}" -xsl ${dd_version_file} -s ${IDSDEF} -o ${dd_version_tmpfile} diff --git a/common/cmake/ALBuildDocumentation.cmake b/common/cmake/ALBuildDocumentation.cmake index 0c716fa..c8cbb0e 100644 --- a/common/cmake/ALBuildDocumentation.cmake +++ b/common/cmake/ALBuildDocumentation.cmake @@ -3,11 +3,6 @@ find_package( Python3 REQUIRED ) file( GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/doc.sh" CONTENT "#!/bin/bash -# Link al-common/doc_common folder -ln -sf '${al-common_SOURCE_DIR}/doc_common' '${CMAKE_CURRENT_SOURCE_DIR}/doc/' -# Link plugins folder -ln -sfT '${al-plugins_SOURCE_DIR}/' '${CMAKE_CURRENT_SOURCE_DIR}/doc/plugins' - # Set up python venv ${Python3_EXECUTABLE} -m venv '${CMAKE_CURRENT_BINARY_DIR}/doc_venv' source '${CMAKE_CURRENT_BINARY_DIR}/doc_venv/bin/activate' diff --git a/common/cmake/FindMDSplus.cmake b/common/cmake/FindMDSplus.cmake deleted file mode 100644 index 0c06f29..0000000 --- a/common/cmake/FindMDSplus.cmake +++ /dev/null @@ -1,91 +0,0 @@ -# - Find MDSplus -# Find the MDSplus includes, libraries and runtime libraries -# -# To provide the module with a hint about where to find your MDSPLUS -# installation, you can set the environment variables MDSPLUS_DIR. The -# Find module will then look in this path when searching for MDSPLUS -# paths and libraries. -# -# MDSPLUS_INCLUDES - where to find mdslib.h, etc -# MDSPLUS_LIBRARIES - Link these libraries when using MDSplus -# MDSPLUS_RUNTIME_LIB - Runtime libraries for using MDSplus (only for Windows) -# MDSPLUS_FOUND - True if MDSplus found -# -# Normal usage would be: -# find_package (MDSplus REQUIRED) -# target_link_libraries (uses_mdsplus ${MDSPLUS_LIBRARIES}) - -if( MDSPLUS_INCLUDES AND MDSPLUS_LIBRARIES AND MDSPLUS_RUNTIME_LIB ) - # Already in cache, be silent - set( MDSplus_FIND_QUIETLY TRUE ) -endif( MDSPLUS_INCLUDES AND MDSPLUS_LIBRARIES AND MDSPLUS_RUNTIME_LIB ) - -find_path( MDSPLUS_INCLUDES mdslib.h - HINTS - ${MDSPLUS_DIR} - ENV MDSPLUS_DIR - PATHS - /usr/local/mdsplus - PATH_SUFFIXES include ) - -set( MDS_LIBS - MdsLib - MdsShr - MdsIpShr - TreeShr - TdiShr - XTreeShr -) - -if( WIN32 ) - set( MDS_LIBS ${MDS_LIBS} MdsObjectsCppShr-VS ) -endif() -if( MINGW OR NOT WIN32 ) - set( MDS_LIBS ${MDS_LIBS} MdsObjectsCppShr ) -endif() - -set( MDSPLUS_LIBRARIES "" ) - -foreach( MDS_LIB ${MDS_LIBS} ) - - find_library( ${MDS_LIB}-FIND NAMES "${MDS_LIB}" - HINTS - ${MDSPLUS_DIR} - ENV MDSPLUS_DIR - PATHS - /usr/local/mdsplus - PATH_SUFFIXES lib lib64 ) - - if( ${MDS_LIB}-FIND ) - list( APPEND MDSPLUS_LIBRARIES "${${MDS_LIB}-FIND}" ) - else() - if( MDSplus_FIND_REQUIRED ) - message( FATAL_ERROR "Failed to find MDS library: ${MDS_LIB}" ) - endif() - endif() - -endforeach() - -# Resolve full path of runtime DLL -set( MDSPLUS_RUNTIME_LIB "" ) -if( WIN32 ) - include( GetPrerequisites ) - - if( ${MDSPLUS_DIR} ) - set( MDSPLUS_PATH ${MDSPLUS_PATH} ${MDSPLUS_DIR}/lib ${MDSPLUS_DIR}/bin ) - endif() - if( DEFINED ENV{MDSPLUS_DIR} ) - set( MDSPLUS_PATH ${MDSPLUS_PATH} $ENV{MDSPLUS_DIR}/lib $ENV{MDSPLUS_DIR}/bin ) - endif() - - foreach( MDS_LIB ${MDS_LIBS} ) - gp_resolve_item( "$ENV{PATH}" "${MDS_LIB}.dll" "${MDSPLUS_PATH}" "" MDS_DLL ) - list( APPEND MDSPLUS_RUNTIME_LIB ${MDS_DLL} ) - endforeach() -endif() - - -include( FindPackageHandleStandardArgs ) -find_package_handle_standard_args( MDSplus DEFAULT_MSG MDSPLUS_LIBRARIES MDSPLUS_INCLUDES ) - -mark_as_advanced( MDSPLUS_LIBRARIES MDSPLUS_INCLUDES MDSPLUS_RUNTIME_LIB ) diff --git a/common/cmake/FindPThreads4W.cmake b/common/cmake/FindPThreads4W.cmake deleted file mode 100644 index 4de1783..0000000 --- a/common/cmake/FindPThreads4W.cmake +++ /dev/null @@ -1,70 +0,0 @@ -# FindPThreads4W.cmake - Minimal version -# Find the PThreads-Win32 library - -message(STATUS "FindPThreads4W: CMAKE_PREFIX_PATH = ${CMAKE_PREFIX_PATH}") -message(STATUS "FindPThreads4W: VCPKG_INSTALLED_DIR = ${VCPKG_INSTALLED_DIR}") -message(STATUS "FindPThreads4W: VCPKG_TARGET_TRIPLET = ${VCPKG_TARGET_TRIPLET}") -message(STATUS "FindPThreads4W: CMAKE_CURRENT_SOURCE_DIR = ${CMAKE_CURRENT_SOURCE_DIR}") -message(STATUS "FindPThreads4W: CMAKE_CURRENT_BINARY_DIR = ${CMAKE_CURRENT_BINARY_DIR}") - -# Try to determine vcpkg installed directory from build directory structure -set(_POSSIBLE_VCPKG_PATHS "") -if(CMAKE_CURRENT_BINARY_DIR MATCHES "(.*/build)/") - set(_BUILD_DIR "${CMAKE_MATCH_1}") - list(APPEND _POSSIBLE_VCPKG_PATHS - "${_BUILD_DIR}/vcpkg_installed/x64-windows" - "${_BUILD_DIR}/vcpkg_installed/x86-windows" - ) - message(STATUS "FindPThreads4W: Detected build dir: ${_BUILD_DIR}") -endif() - -# Find include directory and library -find_path(PThreads4W_INCLUDE_DIR - NAMES pthread.h - HINTS - ${PThreads4W_DIR} - ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET} - ${CMAKE_PREFIX_PATH} - ${_POSSIBLE_VCPKG_PATHS} - PATH_SUFFIXES include -) - -find_library(PThreads4W_LIBRARY - NAMES pthreadVC3 pthreadVCE3 pthreadVSE3 pthread pthreads - HINTS - ${PThreads4W_DIR} - ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET} - ${CMAKE_PREFIX_PATH} - ${_POSSIBLE_VCPKG_PATHS} - PATH_SUFFIXES lib -) - -message(STATUS "FindPThreads4W: PThreads4W_INCLUDE_DIR = ${PThreads4W_INCLUDE_DIR}") -message(STATUS "FindPThreads4W: PThreads4W_LIBRARY = ${PThreads4W_LIBRARY}") - -# Use standard CMake handling -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(PThreads4W - REQUIRED_VARS PThreads4W_INCLUDE_DIR PThreads4W_LIBRARY -) - -if(PThreads4W_FOUND) - set(PThreads4W_INCLUDE_DIRS ${PThreads4W_INCLUDE_DIR}) - set(PThreads4W_LIBRARIES ${PThreads4W_LIBRARY}) - - # Create imported target - if(NOT TARGET PThreads4W::PThreads4W) - add_library(PThreads4W::PThreads4W UNKNOWN IMPORTED) - set_target_properties(PThreads4W::PThreads4W PROPERTIES - IMPORTED_LOCATION "${PThreads4W_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${PThreads4W_INCLUDE_DIR}" - ) - if(WIN32) - set_target_properties(PThreads4W::PThreads4W PROPERTIES - INTERFACE_LINK_LIBRARIES "ws2_32" - ) - endif(WIN32) - endif(NOT TARGET PThreads4W::PThreads4W) -endif(PThreads4W_FOUND) - -mark_as_advanced(PThreads4W_INCLUDE_DIR PThreads4W_LIBRARY) diff --git a/common/cmake/abc.cmake1 b/common/cmake/abc.cmake1 deleted file mode 100644 index 213b15c..0000000 --- a/common/cmake/abc.cmake1 +++ /dev/null @@ -1,197 +0,0 @@ -# AL core and plugins - -if( NOT AL_DOWNLOAD_DEPENDENCIES AND NOT AL_DEVELOPMENT_LAYOUT ) - # The Access Layer core should be available as a module, use PkgConfig to create a - # target: - find_package( PkgConfig ) - pkg_check_modules( al REQUIRED IMPORTED_TARGET al-core ) - add_library( al ALIAS PkgConfig::al ) - set( AL_CORE_VERSION ${al_VERSION} ) - - # Stop processing - return() -endif() -if(WIN32) - if( AL_DOWNLOAD_DEPENDENCIES ) - # Download the AL core from the ITER git using direct git commands: - set( al-core_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/al-core-src" ) - if( NOT EXISTS "${al-core_SOURCE_DIR}/.git" ) - message( STATUS "Cloning al-core from ${AL_CORE_GIT_REPOSITORY}" ) - execute_process( - COMMAND git clone "${AL_CORE_GIT_REPOSITORY}" "${al-core_SOURCE_DIR}" - RESULT_VARIABLE _GIT_CLONE_RESULT - ERROR_VARIABLE _GIT_CLONE_ERROR - ) - if( _GIT_CLONE_RESULT ) - message( FATAL_ERROR "Failed to clone al-core: ${_GIT_CLONE_ERROR}" ) - endif() - endif() - # Checkout the specified version - execute_process( - COMMAND git fetch origin - WORKING_DIRECTORY "${al-core_SOURCE_DIR}" - RESULT_VARIABLE _GIT_FETCH_RESULT - ) - execute_process( - COMMAND git checkout "${AL_CORE_VERSION}" - WORKING_DIRECTORY "${al-core_SOURCE_DIR}" - RESULT_VARIABLE _GIT_CHECKOUT_RESULT - ERROR_VARIABLE _GIT_CHECKOUT_ERROR - ) - if( _GIT_CHECKOUT_RESULT ) - message( FATAL_ERROR "Failed to checkout ${AL_CORE_VERSION}: ${_GIT_CHECKOUT_ERROR}" ) - endif() - else() - # Look in ../IMAS-Core (current repository name) - set( al-core_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../IMAS-Core ) - if( NOT IS_DIRECTORY ${al-core_SOURCE_DIR} ) - # Also check for ../al-core (old name) - set( al-core_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../al-core ) - if( NOT IS_DIRECTORY ${al-core_SOURCE_DIR} ) - # Repository used to be called "al-lowlevel", check this directory as well for - # backwards compatibility: - set( al-core_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../al-lowlevel ) - if( NOT IS_DIRECTORY ${al-core_SOURCE_DIR} ) - message( FATAL_ERROR - "${al-core_SOURCE_DIR} does not exist. Please clone the " - "al-core repository or set AL_DOWNLOAD_DEPENDENCIES=ON." - ) - endif() - endif() - endif() - endif() -else() - include(FetchContent) - - if( AL_DOWNLOAD_DEPENDENCIES ) - # Download the AL core from the ITER git: - FetchContent_Declare( - al-core - GIT_REPOSITORY ${AL_CORE_GIT_REPOSITORY} - GIT_TAG ${AL_CORE_VERSION} - ) - else() - # Look in ../IMAS-Core (current repository name) - set( AL_SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../IMAS-Core ) - if( NOT IS_DIRECTORY ${AL_SOURCE_DIRECTORY} ) - # Also check for ../al-core (old name) - set( AL_SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../al-core ) - if( NOT IS_DIRECTORY ${AL_SOURCE_DIRECTORY} ) - # Repository used to be called "al-lowlevel", check this directory as well for - # backwards compatibility: - set( AL_SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../al-lowlevel ) - if( NOT IS_DIRECTORY ${AL_SOURCE_DIRECTORY} ) - message( FATAL_ERROR - "${AL_SOURCE_DIRECTORY} does not exist. Please clone the " - "al-core repository or set AL_DOWNLOAD_DEPENDENCIES=ON." - ) - endif() - endif() - endif() - - FetchContent_Declare( - al-core - SOURCE_DIR ${AL_SOURCE_DIRECTORY} - ) - set( AL_SOURCE_DIRECTORY ) # unset temporary var - endif() -endif() - -# Don't load the AL core when only building documentation -if( NOT AL_DOCS_ONLY ) - # Ensure vcpkg packages are found in the subdirectory - if(WIN32) - # On Windows, ensure vcpkg packages are available to the subdirectory - if(DEFINED VCPKG_INSTALLED_DIR AND DEFINED VCPKG_TARGET_TRIPLET) - # Add vcpkg installed directory to CMAKE_PREFIX_PATH for the subdirectory - set(CMAKE_PREFIX_PATH "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET};${CMAKE_PREFIX_PATH}") - # Pass vcpkg variables to subdirectory by setting them in parent scope - set(VCPKG_INSTALLED_DIR "${VCPKG_INSTALLED_DIR}" CACHE STRING "vcpkg installed dir" FORCE) - set(VCPKG_TARGET_TRIPLET "${VCPKG_TARGET_TRIPLET}" CACHE STRING "vcpkg triplet" FORCE) - message(STATUS "ALCore: Passing vcpkg paths to al-core subdirectory") - message(STATUS " VCPKG_INSTALLED_DIR: ${VCPKG_INSTALLED_DIR}") - message(STATUS " VCPKG_TARGET_TRIPLET: ${VCPKG_TARGET_TRIPLET}") - message(STATUS " CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}") - endif() - add_subdirectory( ${al-core_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/_deps/al-core-build ) - else() - FetchContent_MakeAvailable( al-core ) - endif() - get_target_property( AL_CORE_VERSION al VERSION ) -endif() - - -if( ${AL_PLUGINS} ) - if(WIN32) - if( ${AL_DOWNLOAD_DEPENDENCIES} ) - # Download the AL plugins from the ITER git using direct git commands: - set( al-plugins_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/al-plugins-src" ) - if( NOT EXISTS "${al-plugins_SOURCE_DIR}/.git" ) - message( STATUS "Cloning al-plugins from ${AL_PLUGINS_GIT_REPOSITORY}" ) - execute_process( - COMMAND git clone "${AL_PLUGINS_GIT_REPOSITORY}" "${al-plugins_SOURCE_DIR}" - RESULT_VARIABLE _GIT_CLONE_RESULT - ERROR_VARIABLE _GIT_CLONE_ERROR - ) - if( _GIT_CLONE_RESULT ) - message( FATAL_ERROR "Failed to clone al-plugins: ${_GIT_CLONE_ERROR}" ) - endif() - endif() - # Checkout the specified version - execute_process( - COMMAND git fetch origin - WORKING_DIRECTORY "${al-plugins_SOURCE_DIR}" - RESULT_VARIABLE _GIT_FETCH_RESULT - ) - execute_process( - COMMAND git checkout "${AL_PLUGINS_VERSION}" - WORKING_DIRECTORY "${al-plugins_SOURCE_DIR}" - RESULT_VARIABLE _GIT_CHECKOUT_RESULT - ERROR_VARIABLE _GIT_CHECKOUT_ERROR - ) - if( _GIT_CHECKOUT_RESULT ) - message( FATAL_ERROR "Failed to checkout ${AL_PLUGINS_VERSION}: ${_GIT_CHECKOUT_ERROR}" ) - endif() - else() - # Look in ../plugins - set( al-plugins_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../al-plugins ) - if( NOT IS_DIRECTORY ${al-plugins_SOURCE_DIR} ) - message( FATAL_ERROR - "${al-plugins_SOURCE_DIR} does not exist. Please clone the " - "al-plugins repository or set AL_DOWNLOAD_DEPENDENCIES=ON." - ) - endif() - endif() - - else() - if( ${AL_DOWNLOAD_DEPENDENCIES} ) - # Download the AL plugins from the ITER git: - FetchContent_Declare( - al-plugins - GIT_REPOSITORY ${AL_PLUGINS_GIT_REPOSITORY} - GIT_TAG ${AL_PLUGINS_VERSION} - ) - else() - # Look in ../plugins - set( PLUGINS_SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../al-plugins ) - if( NOT IS_DIRECTORY ${PLUGINS_SOURCE_DIRECTORY} ) - message( FATAL_ERROR - "${PLUGINS_SOURCE_DIRECTORY} does not exist. Please clone the " - "al-plugins repository or set AL_DOWNLOAD_DEPENDENCIES=ON." - ) - endif() - - FetchContent_Declare( - al-plugins - SOURCE_DIR ${PLUGINS_SOURCE_DIRECTORY} - ) - set( PLUGINS_SOURCE_DIRECTORY ) # unset temporary var - endif() - FetchContent_MakeAvailable( al-plugins ) - endif() -endif() - -if( AL_HLI_DOCS ) - include( ALBuildDocumentation ) -endif() - From f4e7dfe0a6dc9ff30ea71fc3cd4a22c8a75e3315 Mon Sep 17 00:00:00 2001 From: prasad-sawantdesai Date: Thu, 5 Feb 2026 15:57:27 +0100 Subject: [PATCH 06/18] fixed review comments --- common/README.md | 49 --------------------- doc/conf.py | 1 - doc/doc_common/ci_build_docs.sh | 52 ----------------------- doc/doc_common/media/image1.png | Bin 131122 -> 0 bytes doc/doc_common/media/image2.png | Bin 123994 -> 0 bytes doc/doc_common/media/image3.png | Bin 88768 -> 0 bytes doc/doc_common/media/image4.png | Bin 37057 -> 0 bytes doc/doc_common/media/image5.png | Bin 66593 -> 0 bytes doc/doc_common/media/image6.png | Bin 67131 -> 0 bytes doc/doc_common/media/image7.png | Bin 98313 -> 0 bytes doc/doc_common/plugins_architecture.rst | 54 ------------------------ doc/doc_common/templates/base.html | 24 ----------- 12 files changed, 180 deletions(-) delete mode 100644 common/README.md delete mode 100755 doc/doc_common/ci_build_docs.sh delete mode 100644 doc/doc_common/media/image1.png delete mode 100644 doc/doc_common/media/image2.png delete mode 100644 doc/doc_common/media/image3.png delete mode 100644 doc/doc_common/media/image4.png delete mode 100644 doc/doc_common/media/image5.png delete mode 100644 doc/doc_common/media/image6.png delete mode 100644 doc/doc_common/media/image7.png delete mode 100644 doc/doc_common/templates/base.html diff --git a/common/README.md b/common/README.md deleted file mode 100644 index e1b4899..0000000 --- a/common/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# AL-Common - -This folder contains shared assets for Access Layer components: - -- Shared documentation assets -- Shared CMake assets - -## How it works - -During the CMake configure step of any of the other Access Layer repositories -(`al-core`, `al-fortran`, etc.) this folder is imported by CMake: - -```cmake -# Configuration options for common assets -################################################################################ -option( AL_DOWNLOAD_DEPENDENCIES "Automatically download assets from the AL git repository" ON ) -set( AL_CORE_GIT_REPOSITORY "git@github.com:iterorganization/IMAS-Core.git" CACHE STRING "Git repository of AL-core" ) -set( AL_CORE_VERSION "main" CACHE STRING "Git commit/tag/branch of AL-core" ) - -include(FetchContent) - -# Load common assets -################################################################################ -if( DEFINED ENV{AL_COMMON_PATH} ) - # Take common assets from the path in this environment variable instead of al-core - set( AL_COMMON_PATH $ENV{AL_COMMON_PATH} ) -else() - if( ${AL_DOWNLOAD_DEPENDENCIES} ) - # Download common assets from the ITER git: - FetchContent_Declare( - al-core - GIT_REPOSITORY "${AL_CORE_GIT_REPOSITORY}" - GIT_TAG "${AL_CORE_VERSION}" - ) - else() - FetchContent_Declare( - al-core - SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../al-core" - ) - endif() - FetchContent_MakeAvailable( al-core ) - set( AL_COMMON_PATH "${al-core_SOURCE_DIR}/common" ) -endif() -add_subdirectory( ${AL_COMMON_PATH} _common ) -``` - -Contrary to what the name implies, the `GIT_TAG` can be a branch name, tag -or commit hash. See [this CMake documentation -page](https://cmake.org/cmake/help/latest/module/ExternalProject.html#git). diff --git a/doc/conf.py b/doc/conf.py index 80ceb6f..bb65824 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -51,7 +51,6 @@ # todo_include_todos = True -templates_path = ["./doc_common/templates"] # Note: exclude doc_common and plugins folders (which are symlinked by the CMake build) exclude_patterns = ["_build", "Thumbs.db", ".DS_Store", "doc_common", "plugins"] diff --git a/doc/doc_common/ci_build_docs.sh b/doc/doc_common/ci_build_docs.sh deleted file mode 100755 index 398d94a..0000000 --- a/doc/doc_common/ci_build_docs.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/bash -# ITER Bamboo CI (ci.iter.org) script to build sphinx documentation for all HLIs - -# Script assumes that the pwd is the access layer git root directory (i.e. the -# parent directory of where this script is located). - -# Quit with error when any command is unsuccessful -set -e - -# Set up environment such that module files can be loaded -if test -f /etc/profile.d/modules.sh ;then -. /etc/profile.d/modules.sh -else -. /usr/share/Modules/init/sh -fi - -# Make Python available -module purge -module load Python/3.8.6-GCCcore-10.2.0 - -# Create and activate a venv -rm -rf docs_venv -python -m venv docs_venv -. docs_venv/bin/activate - -# Install dependencies -pip install --upgrade pip -pip install -r doc_common/requirements.txt - -# Output all installed packages -pip list -v - -# Update the ##VERSION## string in the deploy script -if test `git describe` = `git describe --abbrev=0`; then - # Strip patch version from the release tag, e.g. 5.0.1 -> 5.0 - VERSION=`git describe | cut -d. -f1-2` -else - VERSION=dev -fi -sed -i "s/##VERSION##/$VERSION/g" doc_common/deploy.ps1 - -# Instruct sphinx to treat all warnings as errors -export SPHINXOPTS='-W --keep-going' - -# Make all the docs -# We're not using `make docs`, because some HLI Makefiles -# won't do anything unless the right environment parameters exist -make -C cppinterface/doc html -make -C fortraninterface/doc html -make -C javainterface/doc html -make -C mexinterface/doc html -make -C pythoninterface/doc html diff --git a/doc/doc_common/media/image1.png b/doc/doc_common/media/image1.png deleted file mode 100644 index d76f03e0b26090f684dc530c274199b27d82fecd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131122 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

    wkRjhy`k<+xK z5PpDhIwFpex4Y)sHTGNDJ;7kpiKTuWw4(bxgUh14`! zFV0Tc+Rt7Y;OcBwM}I-*hN7T9{oBtG==B zL3NieP9badqiR;T!eZCCz0eh_sZcIR7?0E4!|!Mp`BAx52YYL4Fb3#_>#`mamgZO6 z&;{Ibf~vVd2U!C%5a0CiHQj=QQMIE2GC`$H6Lw$`^LX8lTRp3)+ZVd+U9QDyF#P%W z(?J$XwPZC}EqVGLphtR=Lndy+21xW>8G;wbEgTf-eg*() zeEYi_m@7vC8FkB5&z**~)X|wtQDp`3qeQ1uVOdIO7P-DpY~}`_M6SP(xq(I~YV>pO zella{6 z^iPjWBy54UNOBRvi3?=yM=+(}o8@hD%Da=5IdRDX*fT#{N3-Q{UwEF_9B15K^&SOm zO_XQEJrj7~*S4M=0TW)sLU-ooJmEfyWoKQ#4x{Is21JfGRIKP9@U`r=ULN2j&pA&3 zL9PL_wvR16W}PQifK%J8cm6I3ew+a-7*9~8)Zgu%SPqOd(&7-fTH?c{GY416OYwDc z03`upfrk(xzUe~EiO3bq^L#4?))frYL_|#wxFZD(ec*jfb3h7efU>0>dIQltQX)Q@ ztYD9Zj!oB!xxnf@zA(Sj08Y5HyZ0v}6jd%g>+DB|7>hmD_*^F9L^dG_edE$x!}!Q5 z)lI|FG2I9C)l!$rBcIz}1dL%*XRBaKqE-_k0~XT#fODZQMNj;d(NAkFU+|dB(NDG* z6n}Yi=ukP1%ATvlMRKkM&YInOOdu&nlqt)_O`%@{C<^YaVW6H^mR}CMrN_2(-M#Iv1%Ot#QNCZTenIedoi?u7G(BsR4sM6$@atzv{jF2>F=W#;v|j*E znT=;_4q6|(jP{Hx>NM4-qsF<2|55!2x~g7`Huv^gL1N4ra2#OHr`lbu$kzdoNi)R_ zwiTi(Z+h#VnPA2dd<&Owd$Krk#h70Z2;HHNrNYtuEnpe0FcKqir7_EKT>(_b(?+QuTT(u+Cy#uI0V00h zU5v746>vBtF`wJr(<9vACCg|TPFrx!P@W0Sk&l8oZTUXaDzSg#P0D8(K9`+{)%#^D z|3PXucQ9?Q?cPruWr^cabu^FIkO*|pzEyM=%3%(*=uf(>hZGO^p?Z zgHSx+OEW?A&IW63Mx+kIq;z=i0I-mm;6%N!F18KBaJahwIIAveU=f%nxn<&;q&LYP z2X&z7vgsNoR$lEx$yQ5^d%QAPo}+%ne#syhVvvLSizrq$M$7LWO+fs*rez@gE(&|o zJHIPz*;hX3Q$$yB2k1D-(9-WSf2nQ3Dm{kgc|;Nvn-DV8(~fo!CVH8}%sq6_gk{aJ^e}b5^pIKy z4c~PJ*@4?}$=zlooLa;_9G95Ga@{N>VwWjD&G%Rxh*r>D-*gw&1upzGMz+lh*G~?C z;0NdA;`h^uy?ca?wqCi;{8>ufJ%cSE;s6;kVcz|F6{F7-Dpi@iN(FRjt?+$g>p4?vm zfR8Qy`^lJFxNi7pb1%ZZap4sb?igFdeBGWrpRhV4rZOOlv&Am$b|cwxQ2f`mv+5+f zGv6P=Ta0ETM7AB0lR-c)p0Vb7{@Hs(4tdkn|875du#o3-y_u^Hk0jf zZ$5P~qhg#1{~Iaw_(0b-Mnfsjc5=Y_T8@8JPbXFmXKFJCShxl0Npgy!QxoTs5C~X4 zT}X~JNVk+ge<<<7462@dEkPb|Z|$)(OlbhD6_ zBr3zC9UgwY`y+ubCZDn0t7Y(btz`G^3|6CSDd6W$?AGmq1^^8Lpz93JGAH&ub>EVY z;`gc*nB8$R1c#%m#7qdw;kp_-)KTriq=tAC>yQ=(E}O-Kt;hW@aWcu8mRJg`Akd-$ z7su+=uT+2_bN__Q>v9P>40YvV?)2UPrejYPiPMYAy-)%u)h=_OVy|ca-XhC}x4*>8 zmF&>M*P~*fePU{Kw!n=zRdMd~0|cCuZbeEMmG7JRz=t>9^!CA50GTK^-70vtvBrId z=A2m8!Pl+VC!cLje?wE1SllVFS#B0ix~tNyVAG5wDzTuUZA&;6Xq<0&TK=$I;d6l4 z2`8|wpEQ5Pb!Tr941nJAH*%k6@mS5aZF1RudXNqUxD$_UQjE5rN~wF*W7Bb60F14m za`mY?;yygGif@6?M7m3!6EJbW2RD#^wMeay`2CQpbs;3?W~9O{_ccH^=<>$97lzB( zZ1iilVU4!N6OjISbq4JD+v*(_$K*Rs^iibdz72^Z;tzr4T)42IavmHG*{OMsy~)rk zn;QTvEG)cP;0sv9$od!vU8ncEM@!p9h+#{;r1qht{{#CGMQY)TE=3tTO>}=rV+;_) z9wP5&^O3A_x1**LpiD6x)E2@TSXc_V<_G z!%EwZ*xtjGByKvlntP~8Zl~s~dl@)VI_UO+#{sgc@C{u9f787xGSrw!GTYYz%9m4- z=dqcEG-q;;EETpq-+nz>m20B^2=IiZv*Lwb9r1lxnMMp@A~>XQd&5fFfJxaNPV4V_ z#M2F|_E4AMQBW$`*UOMcOu!_`crSp7i>f}eW0b)@;NE>0A?-x>tkgRgv1!;yzZF&4V!)N2MAfJo(pxm{MGx z*Se8?ZtH1=y@uKw_!JHKG>a{Ii+#mng;i|Saf18~kxTn5N0#lC5hiEG?4s{KQZb#O z1)U~jyRz;4UZ#G%I&X}GR<{BdWR+ig4@ck}oO`sdev9qYFMsgn%dc*Ok7A-2moWWo z$EuJ7VBC^calEPW$UB2t?0AiPc3y5cloZ5;Hm?BUV^OL z+#`wu3~e!M{g-@Q#2$kxse&U(>PY}blg7EjQ|?g77`T}eU^h((^4OMF^v-9Kj4{@M zPTWuv$WilQxP7PG)sW>BZ0;qN5!GW|4H(%uy+*fWcjo>XTT?)ioK0%y3QJuwPPDAT07 zoZTYYEt0Cr=&Z!K7zQzGO`kFgFZaC!u#?}<5^2;Ts3DJ~ECKIDAs1i#Ww1;4EsY;N z;7ZZ<94R4w`8cJ09dX~%ILxF^KKFICtQThz<{PD zbe0l26HM@1i5`>o5Mv*uI#!7Ftsp}ka*-5}0NQ2&BZ?4DPxQ#%-m!?!ab}8blmV(nKiwvB}S&Ae(JDP31+=?+CC% zTqvDLEGV2#d=Jy$Dmf-X_g(dpJf?tS{iiOW7~GrtW?w0P9!6vu-Dh+pg#%lN9cenY z9;F;2*Gy$~JVK)TJ$%6^57~OKJ55F=ZJVWNVxAJxiO+;pm?*28=7a=tgDR<;uzAGu74chjR+k{!g14~+2?;+ID}y%Iw28#D(xC~$M) zsh{?j-bb4_bDJW-6S31`@zLmZiv!8cF`(MF`O)n-;P14!v>#(B8;KqeIue-ED05P+ zj#yvS6WT)v<6w~A?j3v-ZnX)Z27lv^Cqd_1wvK&U7BibhUfMGg^-_8ZSe9Grhi{%H z`dZ?`Vy?AD4^YY`D$9Cu@iEJ~cSy1fwmeO5rz5pyVzOHHCUEhLwvyT zu5C4e+F3~F-O`VRZj#<9+d)p-y1rk`!SmWUdrAA1m+|`&8ZU>%2r79zj>%WADB7tz zF`jUse?qawduNK~M zOC(9?Ty1;S0@Gd9QKhp5;Vh{Uf-DZUO9`H-#q~NJ4G~lVsr~hWz4%0f4yl_De?5N@ z9}o5zRZ{>vX0ZnThy-~6r%^f}bza-N0X~dA0#ATs{n{j_bMlp<;s_^p00ROFqS9>f zaE34&3s9#e z8~m3k?B(}%<^ALWF1p8h^=pwS&KL=Kn@b$3I!BiULR;&JJ)d|}FGE|Bs2_IHw)OP`-8rM?jX4maT@ zqD!AFOz|3}#;5M2&v-G7?H^+F)XSPb!Fx!d0kHf}1aJq`ZDaKZ$o5e4;7eQ|sb5#6 zcD66WxN!Daoz<3kQ7N7kP$4WyY9YUJ6;-P3sA8oeYQJ^oP-7aZt#b5y2znIh{9^eh z8OEHl;bi0cDYs`$t{I&a7l5kaaqZ-4p!+#+Ds64TOW}4YF+Mg+76NExZt(j%7$olB zk6j5hW2`MGnSdZ_HFsIf#eLIaM(c;0v|FL+uQUHKlAq6d?Ah2me(&F3C8SN`#^g|DO#BEK zgIXv|*tC;zncz{98w_11xo=!{oSF7mlFXu=qLh4oq#CzMTs`9)9D&$U-saJLV!l?K zte;;X(x`I$taVfNORE0fh(}_j0KdmRT%Ds8XIX~9b5vB9@Q^G9-UaK!@y5$h@C>Td~ng&mK zv|_J5Q+}IRDJQ0@>KGr(^Z%w}v%vo*DhWCG%2{HGkoRHCIg>T1uW|Ijh==q~Zoa#& zv5|uRy`+h)ib5y{qge5%8y8SE45-yf0qw&=0e8B{pc;+V_hc*bvRbt!|DIzrJfuqgdod2Yb@zNJ;D6cOJ*fY;YySC&!}5Rh zhrlNvasU5({ze5nY&6V(^Qa;1GeX&&ottSszr^9f?ia~iW4s3bCH9Zxn{Ij3$Gs*78!vIsIHr||aBBqb(I zh&2r4URUan7?nMNcLmejBvhj5=Zi2p2pg2y7O&dYR~ ztV?6zfs7wYa*q*W@Oe;mka6GAQ_U(AT%K3`qv<=&$S91`y=;zlN`RR|XXyd&hi|Dw z5;#fjQ8o}?h2qqdR3cE+NdwDIm(~Z9CsmQKW*hKjR~i@Sy}SXtr^rgKFhlYvnFP(J z*d)XN;v_6dh_knb(mQ|zs%V+!8UYb|a)QG0T~)egl3$SdbV5j_-1@`nq$7~(`{MnC zhc>F`sb5ZmNS0U_#M*SMLffx{CUZ-!o~03iyn5=t9r4#A6vv;i@s^hYudq433k*O6 znK*gjv&hCJi!BOHsRD6fptQz;gY+nC;l|G-(6AvGsH(>Mjfbs1i!4ck*u`)V>}qiC zM(XRKRT_+qMZ`Ec=K0rja^|>nVl*8*d zKV-N_U-eaoLi$y$(p*bPvcq<{Zuq=mSkyUH-bq43rWVD4KvTSt-E6!%!Goq4+d8msp__`8g8UF^WJAcjT`J}|}wh)MYC*NdG076{- zM16-zfdDGITR%q>K*$!VXqDz@-63oy#(TKqD1Ei??&yTD zfPAeCNJDX`CEMth9>VGEPqKvNE#EP@QQmE_@@^-{au{o4+o3M51oz@O&~aY!H`leb z3BpAp43tM-)_Gg5(Jr)(DpeBYTW{Z3IX|5|S^t(sgn!|5wCxY!ybkojdTbF{ycGoA z(>E5A|J~G$v(E&{cw|2(avf;X)eGZ0C5} z+7+?68A|Zs4ef6ri8Nagc?bN3Aj_TI7oM_dWxSsKtp~kX1D|;gJV(L&E37Qaf!2h2 zY4utT(tPX1x!V~dYXxD><3hi!>tM~HfFWlYHmw+BUPAqDq@q`jX0%j3X1p$+eWUj~ zmGN5L2$AE9y*$mH!bvFMkP|4S zv3`@;Z~p3D=UYfu-Yv3s|c%?#49eB=~raBh|Vt_o#AT~kL;KiPj|V&^2yxA?9}Q9=tbeZpYS^uwh!e$w{m zJ}~b9Nu9w`Q73GFK$x4!Cf*-S{YhUyNS>CHg6g7%YWxSzJ_)jhYFfH3?06dDBRgU1 zFok@*fz?F1PS;uQ(p9+ez_B^D}?G&?_C!Q9Vtw*r_GloyK3QC&~U~ za!GN7A?S1E{0f06n;ov3ylZ!le==+<`&QGkJslPQ;DfPasyLh2fe((RHUCP*cNbsx zr5oW^6_*8nw59aVXr+={@yjh~n^^$Y@ydb>p`p(xj>QYxz39*GUe51*SiTc}HPI6v z@5dQgN8_RIVX?_4SyC{3t%p2vkv(|f_Sz}}=c@~)L-VQW_u%YOmFN99`;PhVs` zf44|skDr`%x=LRKO`p^k9P~)eQQ`OvcGO;BPC24-K=bwkt6TUvQKuEh^FNoW#EUQx z1Xs5_AHw-%c^v3a!S$7gKFXh%u;(Me8cN| zHP_gxso=|Y6AiK}6TnJNxz`KSXP5Ba$T}TTZ(4lxhQSSy zpmOWiI-r%`Vi)akOO(3}xt6JD1>h;BLzO3lXM-Q4`Bw6L-7Oh(5A;wG_@ zG%sa;sx^MR^Aa92FD#$`^%r98rHU>%)Fg=U;I`TL+2Yyv^3(pn>_nyiadwCv5OB%6 zMsTU9zaUnIBV<{^w8G`XL}T9mffmPe{^w6fqsUv9ts8!N#7E7k;SaXLjO}$JQ?qhF9Ca zLQdYPD_}DaOa3h?@X-JtJB~?7NT2oKS2@dMGJ?NliRD56x4d$R(6xy1uvU1+i3#4z z@=6OliMlMa_Y9`)KFpNNMNFs$yoc0k`ov#Flr#+EnH#0iVLY!VdKr~HrGw6lbaI0q zLF7se1^an*zM06rwX^B9%!gTzCp&lY*;v?(kgoA+B!VdioC#`aKXw`JdL)|7mrHE3 zBu-HcHa0U$&+gQFeF|ekPO@70-1QI91GB#!^q3ik0X|CM-}9K4`7PmEIpTGV*v-xh zxt2*N7O&7im2sjzQxWo49wS9OzX_?iE*D8v#c_m_yRD6Rb}8)jB%e(6xX|Zg>|VYo zQ+@lZQ4)-t0+XDA^S=PYKidfal%Dt)9X^_<){`3mUcH%5%{@@nT7OXObV zI8C;f-*H=b;oU-7>$Au~=*)oo;MjeIpCk}MSCJHBkX{Y2Mu1OjTFGr}Kdrhi!rwf(%JQf8)q?)I-|s(j8K9fNILp~ABNdgunK{b8PewK2f1m8y$bAfe zfZWh$uHV*jPu%Z+i7r=4hi&G5&%rKC8Lx`km=BAJ_MVATV;!-H!+Wp6&JdD&BkwGX z^axEuFnL*sZ@=_?H^H0e90zt!50Mws(NXsQ=KYWB59F;3KfuHj6;GxS;$n~)SpRFz z4@v*}`eBOiC;6Uq|GO_?d+_h$|Ar@H@ISTq=P#hQUfyj2?|SW@3Iempn}4n4?_YrN zhy9ns-Cr*&1wY;~z>5~W{=ddvXXgwNUFt7@m%Dnf?Mkn>9~&T|kWQ2C2mkE9UPh{U^gVH{72+>F!-(5xrnmU_brXwfPT*b%(6?6O_V&z`N~25M@hd-)_twUOOd7keV8NVBp!SO_ORfur@I!$X zPW-t{kEm&-yJ9oo&eMU@LhRyq<9;%lr2hK5F=n%#nfDxDfYNblL|xo4Cl`;Iwxf$HuaF~K(!^3}YiAg)9uH((@N$t-28UGN4a?Z0*JlJ$wyL@6!JC^@X zzh~*}vW1EbTMP<-B+m6-AbAzUj(#wXRqUn~o}Q*TC*Mu+4N;4zB^R-W4Up8wUPIYz ztyGEiErBHDx9$w6phDwTs12+;c5cvd+HcHw*B@`x6o10JB^s``T5iGo$=L-}(A%gv z&t;Mv*Vz$=nbwr#m|5pQui73pQs;Ij&;F~HA4%?1pQ{d3om+JkH~doG&cJBdI|m?| zCdsWYys+*}FgVW>4W#aszkK<}{xwW*4u2;a#I&|b-mP_yy;}SA3d?+LMwyeLdC>?y zIm9IhF5o+-@~4(zcS9x?b>;~8gs|--fBKtihU2Be-I#fO?lsz0G<|ECOnWaN8Cs4% z`$`Q%z0Zc^z_2^z@;U|;`&>^ z@U>*o^D;dhz5Heg7v%9&g>$)w^(2|KGT-s^@PO6%g_zZ;L7vC8?m>Tq22@{uVAeQI zyn_fMuO>H){J+ehJ^RDaL zbV3$Q&K^2y?m9zgrJsehes;N|PDRHZRPB5U|Jz1?X9LDiDEM`=d_FOrYMqe}^naO$-U2ETbO=rRfD`4 z&>ayTTSgocZxrwA9f_y!pAMqJeNr1WEwmolKRTWWpGA(*37nY(4BU2}ZjMzsdmf1z zMk5|@ZRgSP7nF*e6du2+YvL&H)TxU?oD?nc)}7}M=`Z!;eH*a;+U7YVemq_gb#su7 z47#t!Ql34+4~-`NR=aVGc(RFS&VDksp&v43%Q*)LmYy=G3xKGqZCa8d59a796^E>m zC=ps1w65}&O0HY0+pWUAH>>?*--X@R_Mc8~?&`CUtQkay;g3UK8zYF2jrDa{nchCh zt(vL;I*hF(+USFwc7~xq;X|sE^&$GnRy^mnCIqo_`Se?-*+puWTJJY+bp$sTA-Dpy zH<^!R@4SweD1WEqPmX@d>TM`Gr%8)zP2vi;>KS?l-{9tMv|rxEk=FQ`M`^k(|0<_Z*9m zC^<~%%1pbC8M5TwXVq(TscT)leQu}jFYH%GJGvNES6Jb!*X-dcx#c)tdPtRJho?{H z)I$FazstgQEJLOgPP1u{Zxk+%s5gQ1SC_`tjSWbxw~osYocFBpe$=~_x%|~DSJyvN*moH|5d3&^qIe`np}5uivdDGLUEvxy@kRm| zNUbKFRd?_STGRk2_7|xt2@bdj#mdH|P13LLYK<>+Q4D-}p=d5aORd zeyAG}HngyB$agfTFYt1NeKi!O*6iMkNShwMpmWlRfXf zUrL;XC)mfL}(gY8|}!q#N>0#lu1|+>gIhFl>hN8aDwz> z9mv=2OgOFM_!Oy+!o69$rN(4&85x$5Z&%wx1~u9Y=@%M3z5WeCxquYzs_E@kRnQIr z2<%Li-Nq2zeAl$_Hx3AB!O9dAaq`Jkw*XJ97 z_9VabTrIoui0sQjQu5?O&1_^!l3lRD9x0$w0+x%@P_Q=BgqVL~jHQRi=@35^3G#=|& zjaTvNDr)NaD$c8n5B&jD8EE&ipR?^<>AQwsY+`%Bjf28n=# z5@u!lSN#G?U!RZk;?!;cGTY9tWY(rEGLGwT?$EO>8G-(EAFL+IN==?=mzCHytdKb` zM+p?&Nj9HqLenWz^J* zQNDPSBCtEe?7$0|=4(+M64@1fVL42n&&SUu1vu4dT>OMe;KPA5S7(~aPIDe+3!f?B zEcZ5Hw$e7A0^79=PwJ0bDmlVwAshiyN%6SMlJ^FS7*1TB1SIb_UQ1# z6UHEl@9)Le$rJ=4Y(L!e9=WOM&cM+$ye=$?G|Sze7SBtMnYTX}+lgB#x@Ng8I>{)* z)}xEjFF)P?je$5?<1j4I&~w=u6WHhUscV$H;>{@4xGkB|G`jeh)Ou*zHwtQ0c?Td^ zJX$1tW>>|E5Sf}*J@amdjV-q2&6{L4Q^7w<$dOzK^KlG#S1G(nC96OXqCR?H1II-` zmuj;h9>$v#I|sv<3o$Dq*O%BI>KMeyHOmEBx#X;`nRN0yztZgRlS2hUOVpn6pFI#| z6uSu=GgfCstfZ46eL_16MRYG8kMb}f_*;+Rx;56P;@&r^iEW^3E}R(TB|t2@%%@wV z0IyaKl!76`3`jMlP=I|bW;ZuT;^xc*f=cZI47nUG3NF@zg99i2M}>l-H)qQiXKw3R zp{bv%P+--!H>YiYnRx9<0cOHw4x_j>`7VV;lgq4$-)Te+38;=A zS@8P;SGFp$Qo}3^T_g^DUbQ0?#xi2peM~VL-zyb#;@0 z`G~tmtSZoTdwL~a>s_`@GA2b{4dQl~K2ePl5}Y^-h7D%pshYS@c71E?gSgDGHcDxL zoYK~HN5-;?Wwk$Ykmx^cd>fQ9fh$K5vha?0=gS~j+R9bThws`-eOCwb@dOe@M}%ZW zFhcU;5)>tkO%x@~&6uxpxhOf~NN>@Nq0*bGMP9F@b!&lLwKR#_2}1%$mkUP2@p=(j zq@aDnbd`6xZkt(*ZlzD1ZvBUR-(;O0!)IPG-JWas%!tM$p4~>Nw-O~yu4%VA+n&F@ zJK9=peh?~@;U{vY3PUzE;=|$ma_mF=vn>O_I@>ulC*bogFN*e5*z+M$n5;$=uEJIC z;nl)OkBLCTRGnMr6zDBt;Xnzhk}pX zU-Icx>*sRP)0C3pKkN>ZUPK)cCSGkJ!2oopDzP9xrw3YRO0W*CU8DOtWa z-puD{+N$yc%Uh&6gdoRD_52ln_C`_V=QG7wO;wo{0r=BKv6(~0!;@LpdFR#1p_vB9 znnwT(x3?fqDWM1mBG9GrIa@?IOb5b2kip~z*cS!d%2^Sdt%63h*v|ac+#T&EJrnw_Y0d`gK%k6T1UaWm z_7~dD#nlvGj?dNy(B9j!J6JK-cQI7L=93l1Mb4Y!D2FxH6N6#ZB!%D$U@pXfkRuuy zaRL5TV5tPEpPBYdvnV&;!rWXq@6x|ARQauPsJ}&Y;7euo>M31@Dmpo=Uf63)aEX^*B*-t zrM@o4KO#x=84^21Kf>)h6WESgE&}dhksq0&_a?B?d@eQ`GjMy_{n1LVe*m#&<)9!_1d*vuL@K+?6`G^yB!V)Xaa$C_eaqf`pF?n7`+lu6Y<0;OWfV&GujGv z5=^_b!8GT2WExhlT74HgMYbhiI?5?|g^)IgZe9Q04}M2DbJ%R^^bTSp>=Bx8(YeMv zp{?gpselq|6N&knuPm2nIeEukvpo8@!&f6KjEQLpA2}X$Y<>40bZ4YUUHfR{lFrac zwL4;-|51fZlPrx@SSn}{b5HBaM7AC*_H*P@_AAE6sgj8yXS{L=kLzw7gyz!ci{{^d zncJoNa3mDY-(Z4sCAv^PA=ZTBa zpdh_r(~HU8$}Z;G%s*gxhj7d;fZge4(_TbyPU8 zR9!8+8WOH+UyiC9G zdB3o~HmgDbw>12wGUt|(-EhM^UaKOZdMGvsL4^FkJt33}ISZB*RDPCDqS$gxjKeBn#e`Wa{>N9~Y ztv2?lvg6CD?HkCAb$2xCaeRTrCX+tb4c{ zy2MLh;N0U?)Ju@M<6)$NPGHj0#eiPX{XQ0Cu;On_%uGZ@=W@06#Dz~cpVRJ~zG@R- zu-74|J-#LC`O&_u&&ujM?cPurm2~bU^MOCBSJ5T%09x$u!%n9UXmC;}E3{+X8&FwK zV-q(*PjatR*@-L>a$GHN91@#oGpPUMDxng&GG3yit{Ui2W88&l5pFk)FEEptUjspm zv&|AlzNBF0dfvQ>TZM%2e0qXu(ig@3yTZ`equw8Ubr%Yh5#D2poQhNg;_s;TK7Ok+ zuvrGe(+cyoOLa9`(WPgUgTJ@vkc|SzGXtY2rrMCVMp`HG`W+aSCmT) zV$`;zfJd>>mtOPf)2FOWzoeZTVl49v#NK!J9ohuvpYd$dvORp%aXan~?+hFVUU*Or zV(q$>adGT-1zpyMGK9HNt8@K^EQB%~aSN)nU_ymd?5VqAj|1qaVf(>ZL^GLbGa;fE z-gW+wba8uuq)_j@4lI>IyNnb%v-y_x0&wE=?T$!H=%Viw6*=>-&)+-mTT`N0t##u#;pU zLm+AYg-j4`h~?{eaCijjRX9TV=<7O2jf(hvB@=!lw0&Z8rz{Ax=h+73Z~1|yzF z>Tlkp7K$5v0M;%CVb3A+dep>+tC;f;%nrWbML(EEb8`=7BvD-O%HSYx4+$&*@ZMy4 z8-kzfn+`ExGW#P+UO?Gk%ylD1e(qoxxv3ukow(>y0{$ZzT+A3(9WGC9{GN(|QB=V) z<*!^l1$^y%Eyv?}&h9a^VyVA|aVGd6aA;I?cO$x+8g-eyDXF+W_DT`FeEr+G~IbdC+t+fn?E$! z+2Gd45Q;8}jP}OKA$DHE!ue)bX=r4WLoI>2V5YcZCgtY-h1;Z3JOo%Tn>BFu1r1uf zi3U+jKbl+s8txEf5pylHI5R@tNil-LNAhSATS3zaOmMox%&5TY*atAaZXtiV7A^@NFI>!M$Whul z6M*2d&L5pnxeIU|^h*~s{z@0WcG^G2;&*pg9n)FcS4BoACd@oB?HfOk$j+Ipr$#z#F)Dq3^YbFXbo_k=A85{^4FPazN+ob#`dl8e` zrQGF_iN}nCXG-BW=~K7UcIyKvF?xww*YF+yini`@oCfgAM_vw`a(M;bKSi4wN1@y4r*H(~XEG=X5)Nd?g%%_B?oaS_H**aV`L2A?Mmk8(N{4I!o@haS z7wNINMiVcnQe~0=kIKI-iz4(1Bsp86iZ~ohY4cn=E-VIbH;T$TrYDPl*X!N|W*qn( zDX{P2_VU}%w&~KMh^_PnfVCTfb?y*lIEkvL+QbS5!p|X|o6g{D6$3%gHD?+lvmTM* zd*l9pxO>Z}D8IJ`c2MHspS6c|thBm_mIJBE@@m7z-n=@5{i8-@l60cjk1 z2m$GqQu5h@{_g9#{@1%i%T{0bF8t?I`IbkW622H~ z=cmszENL0GIi+F+pyY+z8mdnbmJs{&3g}g`Q4^0j7A}2wt(5$mKv!tI@Jl$>rJE8% z)Ty1cm4grAE1e}@cn5I^2_qeIsPJ)_7XlwL^(zF-gWG|^es2>td9WFYl%>P^4q&9g z`RQ5T!)`>+m=A<3>Vv*l*7|6k#*sOG495%5KEtYkJ)6Ry)1IN$^A_gcUW-$$}22wH;W~M z1RFj4Zb6~(x=wL8o)y+H=`pzjM36AcGVyIe0XGA|E1t2;PDsQyP{q`b2amZ>`^V$V zQv^^);Kgg2ozt+Awq7@QewF^*!kSu64{WCS5F7y__op^{`s`ohh5a@hn=SQz9D`6U8j>*=|5q7-P(v-WO*@%U0Z6K&2$sv3n3tXI|dwYeD zhf~H$l%sUt!`weUJ zkpXQ6Js(6q{BlU`WXP=&Ni7txf|CYe2hQ8vgM#7L8=%koSV-D0g-}8h5Mz&iLB$^L z1zUvSj;D1>O>wk@=Bx&TA;ZL*DdTNRR`CYcG#~n_a>BkCcOl2x`v#1H8K=cq8pk-% zh#|w04LBga0lUN34(wC&VRJYXBDK}p?Z%M;W<9DHmk()>$j<_gBHk(f8iMVtMb)9n zn@QWSnmN$@sxb);+4SPpEpik&Z*#NLLNRz@qaV^F&X}bNG#( z_LCDY7=M3~NPj}Nf*OL0(KMjOZ}z$>6``~ZahIXbXSU`uBL5a84I96&$Tk8i$R_&% z7a?HM3}9wqpt^bO&oBqbaMMpNN&x6XoAhef?na0_}gNyyBaG>fsnD-& zET})Y@x>D*U+etYelqs#7Xj8VPCJ3{IHL1yyZJgVH-S9Es!S{kzvWb`6dY7^4o;il zuPe#C{+DI@skdxjRd9o?DpNRDh%q+rL`zMe52ZAHf;TP{6gl##S(rgsdDyxWH`yZl z0aICn!(^TBUNfIr1l~!`>r)^JIelMcfZ+PC(Xvtm2s@gdR#k%cPggBZ>p!HwH8VhH18wJ>XVkLt->*n??9i%pUmWsU84+}*oW zhS~FRE50dZo^rM&x||(!Cx(c*7J_|GQ@XSvAmw-Y;`Rvs&QZ=mNdrqsD*i3xk-;2u zzIxt>NRJyc!8GHRkC+N42qcaNxwTR9%Dff(fh|wRPhl8xRUlrK*!Htp{@}T*$(5F?Py}a~YJuOOKi}ex*FBe%q@;YH*=E}2r@R*%$<3p45bJ)A35T|) z99(m&^S1VcuHUEDnC{UQfglVy=b%Eive;%<2p>_0OvjlrTT?EE94>I-P+M8>Mni3` z&L1}%PT$$iaWiyU`35!LqBN8HEa$g!1&c6%B^DcXBXZvO6t+l8C|Xb7elT*V`i6@r znkT+wdUKZi68OuWj=Ca9Gi1@GWJiSv3x{yPd7i$s;WL3OlR*K10Ph(wu9uo8KZb0p zMY=XHClf>3>mw&x3*;7WMMxYrez^xhHAI%wHJ4m=drG@D^63#-12H}p4qcfW=2~cW ztTi;-V6SzO|MOml=vPtmNwYGlcxyLH5@i2@nKRvU$_Ra%C9v7a>$YDv4l|C2cTQfX zI=STM-b%wkBTZ{~yyFKoq?zkX4orwNlpZj%kln)`OY5`{S&BJ6@m~qEd9)XZTsL_w zMSe`YVdu$zi5E{+zT)`T=SZ1OoG;Y%dIm#tfg}RgxzB1lBBAGSZqq&M<^bO2S|e_K z*CzKqv8CmG`^e%ooV6>_WYWoQzT{Uds7?&vE{;vxcr(}#CBAinBiHhKC*LoZ(|S98 zig{~EOK6O!)r|Ul@Io1dQ{1CQq?ht1gbeohd!IvNd%jRIDs+5b5rzbL5U4qy=Gud; z#F(139A}3pLT@$b-R0WHKZKMow^Mwnmk#l9Iosm;x#`4ho`;L#)3Oo;alKFUWJIWn z3?n5}OS>RZ0H3nME~AYSM!IgAhGmhcC(Ft`N09XNnzHOVvRg#pMh;V9-Q>FZmF^k6!-=I(^aRn_HIb&ux`n(K{r#A9ubg$YPqt0trFK!V8oWh5abA(% zr=Z)5+j3%Fl9*zL8}g7E_GnZP@oV8Rvt7DSJUj$JV#$v;4YBa(-Qc9!52%8QD5kW8 ziX1%D(OYri3E9W$bqo1Jn;K6QBWW<(BdF$K?(Isn+lNJy*cR@FMxUk81y8KhxqX&< ziIG&v#?{L8YaC{JMGsL!eX1mSXM1@;+8;s8{D0!XE0?iF%Bnk>!|&SK8z#@KROQQ6 z1#Pn#Y!FyY&Kw}KkHQsKASMmQ8Cn)u&c8LYoEb9J>lX83ihkeDLbH81SvUDG#3SbikOsn;cW3cet;?&Tq|Eyvhe7?ZFFtVEim+%`%bkVVFZmn8rQDV1@nu z8-_~a@!29FkTx2^r;~R^NN43~WaA&W;n{KHM<&SZ)6YthyScVEbfh}!MTc%#y!Tda zaM_w3`ZZjP;W1L*iCHxE8ra_f7h*6%gj27^SKVDr^{U|8JL6w(&yHIzya?`B8AiXK zbWWb;f%&-5z+hNaq&mLkoXqpPH5RQ_hmsPPU>;pxL}pj|JX4VJNl6DH$F0a>;NYO0 zUaZihuLIwDBS#W2Qvc{`Ir$Td`K(1ZHm3RbxnnjnekCG|u!ijlP^L>49!~N*n;*Oc zN`#zMr^JlSb^Z?V@QfU+f+F9XA0uR%FV_a$`Y(yue_y23e$amJ3xPwFdkCGO3GwU{ zi5q~%-|gVCPw(6NWuCWvG@xv~@wtvGFVrf?mTI<9Oz$cg4ULwYFEkO?jGqwOn2oM= z*bdop1I~x*cSD|;P?kDSSaz@wKzW*02h<;8Qi=g^mD^@Zrs-AnHP5WdQVskew|0|F z8z=U|`;^Q$m<~r3(CFy-!)kudiZs=g4iaFMhMVhB%;2NfZR+@>!&fW`sVitEuETi9%G3AC!o&8?p`uur@!~?_80*Zkg=_In553NQ;B?Dmf&0DQhGW`J->kD2sOx& zsWyy&8Y)Rq|L&~ycOZOqiC08S|7!WA1Wm|$UaDrL_U(G2P+@7llPjx5g9W3!B0}!40RZoK zJgrGru`ci{=XuUib$L}tdiEAu=-Y%e$VWr37Wf05=GTEhb_vJxi(@suCs)BYK?{pO zc1V40{4734SgkB$4dh5ii4hf3c{`jfX3 z34dXU=z$?1(=mBz-fWCIw^~eCM$3wu!0Zyd^tS&^SZ6iO!4IMh|di*H7i0&2_! zbPRD@sNoNAGj9Yihsjb0K}Zcbak_2%F&}xjrdK`;t2pY_qE3bAgsUzp?V9=0?vf>x z>FtuyR0=`e$f;Td4c28$e8At1o414Xh(Cm-qte%fq{DZDkupi?8v_B5g+YXc&fhN+ zIc`Qqf-cXH;KMY7rP`D9N$;PAyAY?bT?u3U{(&zlJj&*W@OuJKyc-_i^})jB6z!R4 z8-G5_9xduv+j5Ek_AuqD@l`Fg#ccOI%I<0LO7?)@@eER zVO~O=3=!uGyQK64_uR9$UjPc82XPPOmu?t0mq!Y}24+-~e{rL~8rFqNNzJ%5;SZ|@ zU&M@C5k8CFUjfx|IYhjEJZ;l-Vg!!`{th3=m%y?B|Eq*;g9yu_ayaM7fLXr!)eCWK z%vHCj%Z>WAt4|h~ObiJrVI;Gr#DkyM)*`N!Z*7jIh4fozd>cbv>7Z9em3(*jgBtyX zgcPqNBGSpiYj--Qj0T^QFt&!0*DtuHa3&u2+UPrs7IJpgS{?;;daB4-H$na87y}0< zV}E+lW3XQMJL)$V+MoBY5thp_6sQU|<*fIR=K7cpB_OZE=Gy9D#=vd3!6cY=dpO=k zeN6(&6#7l>NsxVOWEmY4460As8AmLKCmSGS+0ty%6;6`gSer4Zk}wMAEV8s(3@m9( z3l0cg4Z1J7LDuI%H-8N^VA}xINbXk^4C_^0yYAf3Phv=moLaZ82pn%pAJKR(@A@g= zWobkWL`lOK;hinL(J{25YnN2|Y>017w<+U5NATzp-7N=t`8DdRraPj4Wt2BA^k)YU zkpl=*5s9YriaJS8Kt@@K4dOZ^Ab6BMB*uVU&LKRqWiit1xO!A#4EeeR;V)CMdYzKa zHa4x0(bxuRP51~T@hlTHOJjacM=omC(j&NU+oY`m)V9aT4+>m$Lc|wgD8CJn^7T3T zdEvK}44gKJR5~_-5f4=LB4jaDdV_TSVwoxnM0;)1vdgE(leT~2OVIz)t1jyu&*bc( z`RNS>yMHf}?J>M|+CM>RmReDmC08Q(fT!S0b&V_3Oj8u5`aK>GB`9>fCN* zs-p66jJw2(7`f7XkW^PM>is(I{k`j%4uqibFBGnylr99$UF_|mB{UH8puXMHdAyMYr@vqd6=6m|`e=v1ooNjj$MvqKD<9@hlw zTXM6jj|(7g3-t}*XdLVj>9>5!y)^^R;rq^Xu4BHU3ij*nqj==QKFAgS%EzMK_eEod z9H_&MZ^Ts2zr$#);ZIfnbeAvGG@FEXO~OaWYVgcFTAUupQ?&Db`So@npG6~$4-RPj z%Ogv7qqKp^%qu*0rHb%K)kWe;?-p&l*E=+Zi}7w@9KoeDeqRD*MV$ldrrY8CJBSUL z!fOtY7<_@NQ>d`q!1?yq;#1wi@y0zmwuF@i8?-8zc4P4(i5cgylZc0X7Sy3MQR}cN z0ToC0`5@3SEb#FohQKe9I1enD0+Gfg)!i38oSE-J;TNpjL*&D@cs;lJs(?tStRXvf zga)<6t)DqgKwvAj9kb~0Jfq|0#sA=vQV3-vb*8N3MWmAWd(0|eR4hhRCegDSQ_D-? z2G_qwc^A8DzK>VpIrO+1EwWZnKpKiRfgn68+G8qA$*#m}-WnDzt@oYW7A0grJ3N2? z_rbxW)JayaITZwv@iGkQdIo=mnM&Z4f6>8Y{#!KvE<`q&Qv=?-x5Ih9!_vx}K>*z> z%lHp@Ev8{giFgjogA8nqxNGkX-die1ueVienXT7eC5QjfH~uq4VTQbJ1c@>!j8gaQ zmB4H$L_%XP`}Dg&*UtOMzu4}-X^u+?!oFo?a2=t1UWC{nR&-fnnhK>U{zE2wF^jXtlaXH)Cg~aYUmn{plralprp@pj6={+b9(;;Fojv%` zpH&1*pF5%tof4PXPPu?q5;LQ*vHzobez@)!V3B8$Z&3nb8mBTjbN|I27$xmO4@0FW z3MmshcG9&oQZsa*3c)S^C9;01WPlJR^X5F#F$o(|&N#~W?~+oGg_(OqbLt4HRA`xm zp<@4+pOp5dXROIh$%(Oq*;(}rdb8Zin0e%sv`nprIiP{+`4{m22NiIA6GjqJqhqK7<_M%fR<1_@K=Uc8wT1e>;vqj1_mVE zaLkXdom7PFphy6bwV6BEK^_#{9}N512e8#P^Dv2SN*xZ*E;aCvm0wO+uNWm)|LA$N zB+BeFr*r0!2uo7eQNnc#)_QrcENhMItAjvnUk=A;&G#QSt*>L4Nts;|j`3Bw8nQXr z#nzLY4u;SL19z1eoHgTovb8PvuVxoYn`{TotUg763~rcNKdC4OpyF{WW$5V=+@i!6 z%P3ito)}PiL)XQ!$B=j(31k_~4ngyLH&tR{gl13HZ72o~L>mj8%_7?Jw!?2b(taN;eulM39UKssDL*(`+=*>;FUYcs-JM2@bn{t<0$W;9ssd+^BeP_k z%X})yDCw)OUyUG@v5(AFuxz}`3w`g;80D7-RQh%jf0HJ}UuGJ(HnCcC)+O}Mos?O)g?&%kSJ%e|$?L4YueZ2H0hZPEL!ruVx&i6$ zW5|7Cq_s%008%^@AdN9XtUu1udvxo92VADDMYyUCiL+cb%+{DfTsLChONo6tOP4E} zqKz50t_n6?ogi9cxRE*EQtz@miT=`7nUw8|J0hZRKG9oKwX0W$T~ig^l&)K+eH0kt zvl07F>gzXYa=^1aJih^;$&G2AA?vE62SuS*;ZB^SRA@XNK2HrLU`S5pGfTLHwkJHnNHHJdYsnd@E%rLLg1Ci}pMw zS+uua|M||{S49US33<|y3J9x9fJZ0NKtI{-NLT6fybLEJ?l1K;O|(d*J2a(<_wF#D=#y?~4H*%s#DFb$KDm=%2`BPe>^;a=_9 z5IQ>QIOkCQdPh~^hJ%zSGwrE=R1}&mw>Re0Im1V+sa}6w2>nCX$ojagr*zto??-ii zUDf?0WZKV|LnCbckJ$4AD#lwEzJZ@sWf@sJd7oCB<|W0;Uk-LEyL z2%4?9$5v}!sU{-pPA0$<^C@hyj-X93$%8j%q5H_`&_~1}c%|kXyuZzSkzE_zIQ**{ zK>R$7Kk7aCw*lShnB+ke2G?@08k^8NI|EGa(=|zeu7;fiHUJ8GX&%Cz45;yusc!pk{#i@_Gp{F>#iEu`+JK<|(s3sYc_iy>)g3t!(~d zxB{jj(;lA>UOUk;%Kqk5R>o|Tb()|OUch&rJ3RjFpzKNVjqtN{`2*cIXAcfa4-t37 z1kTmb9&=-ueqy>PY+oe_Hy!#p*)|`)-=5`?%zo@MIRz+mF)Hiv3C5)eFrU_B9Xj7f zcORH83jNeO`C4jU=bAL2BH97y{FetAijF?#yd}QzaN{3*TfJA0D8ZmeOLa{moBMcO zv8&VbhId?(ig`*y`=z7%I_Sq~9~R-iat~XE3@au2*QsxW8uz~v@C$W0EK^Rdc;pR0 z-9{{%?zpYy$6%hSaUr-TZ%Xr%0YJETE*tEl*dm~t(4+AZen+|;U-NqAQ9SiS;>T^Y z2jvpriIE%C1ivSgBh0synT~E|^G+}YI+wnzyJfb>HiqOHvKA4uWjdIa>lSm&EZi`i z9w?eB`!Uh`3PsUZN!RFCza$w;vRbL*Wu_tthUiYw)E*!0?@FC=E``|_&FBL_OW&&O zs~N`Ii7LFV($i)4@}n>A+Qi)^>QUP!%40xefBgbhDa2I-c144YzUZi}kmMmq_g8nz z{DN}fN4)u(rs?EOFjMky{EHbeB|J# z2mrs^_DY|)5tWt{P4PQs_-s(7rRt1Q(ydk|?X?nvRTeyh&Zk1@jy;C**6HmjP4$$h zap|Uhwmr=ghC##YO~9ArjM_q$>m6ow>w4S0RW*TWLNZ?gKLQ&GN(qYOSZJSe!Mzjh zP8~k=;gGrcF za^OLxMl%%!4|xbHeGj&eCjJ$sehg*!P^qP3_kyLwTj8G_sfu(g7*Ki7yN%^ z^f2d0ng1)?ueAG7MpQ;kMqh@Tnjr5PM(Fl`?1D>{&D4+<$rkyz?Ae298NATQpgsx) zcKmDqwVCDLRZvZ~_e|^A?s8$TShpwPv#Y>Yi)x+QyK{6Nj z8#iRSB$dk*o_TEh(L57AGuU({Zj?Tz%~6}F$)w#+Oqnbh?a8M-NP7j#)DtK!o^e$% z#qfQYMtCT;2pMe6(3jJJwp07R(-wcR_Z}DLcG!^pKjh^{wX_*Vx00Ey<3yjbheDg@ z+2A$qKV2KG_zm88xP2!DFy5qVit0blyEc9!E!2lph(wcu;cf`!A2^y+0C0hQDMZro zb%)J9P5JWPOCdfQ0O_L(SP50RC<$oR05Nr^(q%cY{|>si?Et4VF2;4CI@@_4-*unu z)|p}1G@bzWqq%b~&E&OPf8R*6z&I!qLQvHMKerl_ES|L}Vc-6RqlQzWQZDaaBC&^Dhx8%`! zE^l{gwT=&cSO8f$+|QHG4;EB@^vJJ`1OSO4+%iFdujF>2Zm)be$20qb4BpQ1o&G(p z#gKv@a)VP~%#C(7QPHf8cN3N=fyFt)rf?8F%6qqZ&q!fHK-x7%YUjpYsLJ_6T#`9C zYdMIB?~Pl*Kzh$64s~i=CK)6oF)|D7qwv3SajEwy2Ar~uND>ijT^5;7oh*!!wrE?q zbI{J8tab-whRu7VK)LX98D|Q#To0-9iH3%N|811iPe^w0CwIl5*U{;z%L*h)DoKr$ z!{q*dj(PujX2|zNCheyRY{)ZqhQ<5QB8Y!T)(imI4z*hoffA_3Db?KvfE0Leg8{wl2vx{t^IHPb{y8y`gH<&;ARl22YziCB z@ck8cmuaGw^O4eS5TKe#ck6kMSg)LJo=mZ{d_`%K<6q1+@6_k+$0N{HcB6=K0K!OL z*c|?-w42ex2=gbNzA88FxW0dYw#!#wbe9XK7yHIVWU@Svz6z2TXr=ia#|A7$c90s6;=6yx>b?83B+Wcd&}ud(7M+cb+T{c@5Q8H;8pLO zK$K*;YBtvvJmCc;oahC&OX@hE!=-G0MN+2R&a+Z_Ga6tUPSfyvS8IRkr~$*<9)(Sq zg$EU4GR5wR_NcYF$^B=<#Fpk zw*Ie*?Lcm}njaNe#}=X2ctfG?N*a3!%MzA}@9~=pGXkN?a^b8u7Clv+YB|aOEL>S~ zmWc=gDxRltx-JQ+*;d1Ot6!+}hY&1E%{@Iz&VXKAwS>%1vZL#^8uPm`#M#-|v0e61 z$6IWIA;3B2XUnz*61yUP-H$Z^p4WSV@d;3%#+?9ejSRjRhy;_zMc?;SlP)LC>u0d9 zC!MfOj?318X_gI0Rdnmtt(Bi(bUcf5rxCV^PxS#R=W8ZTKIf;0t0k@1QK%Oc7U_VN z;E+58*3%<6f?d`_Iq7k;?CL0|z2!jAbUtbj9=M7Ac#u$e&8qM*+Gj$-KqHZq9RsEY?J#dh#hq|#{*?l z9FAQGO@p{e^ovHHNZ|uO;C`VcgE0h|%4gKic;k%ah)EQn!u6PHwP8~=PhexU&-PE; zUwy8yEM6n2^hcC^`{r+ zv0{Y1KswvaMWj-VSfR74Pd5h0hzo3B;MT8mPSyjq ztHdboMfJDC)~-#-;~||^;Ui=7y9cIu%+U@zt5f1Gac!>wT8-1@BQ$-8g+2E=7wFKQ z^ZM$aI`~DL8g^;<>TcEotaLW=%_7gvUEf}Wq*dEG%xaQJ;$%NOzOwNCWLT5yQFqVL zNx50o8T~5%)RDmu`}skl8~Wh>tc|n@nmAuroGat{CahxRFV&4*NQeHtP<{9EF1%bh zo$-ztdTPTif}x_Ru21!F<&DLY@*ZcMgH_?%Rtcsnze+azTDoL(iC=}yK5wbvw`mtX z_b_1UJ9m9{U)ugAK&#(<`{S0Ot{4+*8B*}LE!F#A{K(tTPA1}r@bQZi&>Nu;S`PME7#o^Oi zcG{>M%>x5cZ@5@rUvjrcz~dY{Gb{noexJbVy*hGBtX<#r(vKDEp|%6Y^g8>3uDbm`4f1z& z>vWRriix$UZV*!-Q<0WtG|zp`m>LTtwrZ&=dsI!)srFS(B?pyX(0h|r*2A$3Qsvz^ zVI^moA}^NqZ;y!wI2Odi(vbFn=e~!fhU9%xk~cPJHu?R&QtEs|&re@VkMS>KZ0?J* zNKqIh1^IFpcgc5!7db9WompPwCzU#E$1OP(PD%BBhcU|Y@ic?oO3 z>okx%n0H@F$p*Mgrqt0gt0Y5v?xDlJ0j61co)#-v+|goXT$a>olGq{#^H7w8j} zHD9W2jxPubH+lID&@1bKz#8`{-B<^MYqGF^!`pG|GG$;@Z43KU%ZK1X!bW*!#_ZD7 z-iBG*r=Ffuq*;-$U*VYFOEK8=W&vVT@jH)*vv{_PTTx( z{B?ody!@hX+6k=kVfF}0pos_Fv`~XK8R%ahB!#|neW}8W1nCw>+ypA_gRFD==#?F5 ze%l761b%3fDBgTBka!*jzDmE+@fKVD!O zX>v`vNWIQwOXGrpl{$YGx6icTDTZ#7uA&TLl4?DikMc~^#tBQ`)Gx*j3PkWuX#Mc0 z^>>3fO~|kP{Fo8Dq80e2dq1-q`CQ}t`&YVC(^(J>)^}x)M;^iW*OsS=Z4*r67XmIO zvv;m&W!>q0eDgHMpaVkl1k;UQCBsZs2~n<+lS|!9-G{`|6+YdJ`%`U1*o)GtV6XRZ z<&T(v>lOfx6P5Z}oB&h4s<3pKQD|!@H(HpQkBH_&C#Q2$CtiS+p>}?n_d$X*WsA-51-5504-M3At;3ElRo!y?iCufz~nWnB}6AiN6+_= z;OYgLOk9--xKpMI`z+c{P^h%7ZJx5=yLSrs(VaNYj+?!modXLNGcEV!H$h^kY~vj_ zAI^9x=LaDDkE7xTThEv&7c|T;3E}3&v}=Se>77-VL98UO#3M#S403J-S%q#ExjYGU zwU*wUzujbcG^T@xj)nAsCiz`gSuUjk~5NOi8Dv z^3uxtrd96Q36ABAcSg2uJO1t-{awb<`%{_T$m6`MOTS8+Y0HBWsZ^}AE)F9te8y^K zyJsi;%cVu!*QOesCiI;NR(rXe$6Dk#K#lLXRkukQaot8@QG|cj&j7~QCG77}Fov9J z@J4_I%CbZ}Trp3wRo6^gT*_uY@P(O)PUIUgYb+$5!A#*qwa!8xn%>@)fpZWjF8BUK zUt>tYhBlO-jG2#;-9+z*oZzMoMdXNaoefRp;MI))5CMA5vqQ4cu?zixF?boJd^XoMLI`e z=1lo?YwC9%AaRD~x6ZQ|w<_OdaOTPFok3>y$J5Sjc_D@FX;7=dE{2JFTiYwr*oZj9 ze{7(zz}=C$ddxuR$8AcldSwQj+tWD_>l%~PsdwLUd6eP;1+JQ5bqY@&_uKIh8_jxU zrk0bZ<5UM9_`3Q@bW=xG%s-4+#(OMpNDsBz^&hUJNOJ)}lhTvDv&XOrq{7Bj-IG(K zNzxIET_r8VBa2qd+V4ff*EohSesp~n7g#7_82_G5fMHfJ6ae$Jd^oqAaysL4s>R^V zF3GI%d5|dxgIRvUwOx$`*)jbw-?6ytV4l3;1u7W6pvSH&5L9;E`mZN}Q}F(r@R&hF z?Sk;5N58R-i9}AScLFb~3RSiaEI_a~-Q5v+=c_5f<8qEVt11dNdGeeC#X#y;?+NjydsW)Jn2jwhET+k7i~S14crM%$ozV z0REM10{e%UHWqM%B!?il0<=GmRV)P;)SB4CgewFc zKy#bhTlFfkz-vVL+mktL51?X8%plGJb4JXci>DY;h_apgZS&*MG+y;gL~**}bJpx4 z@Tc)?wL#Q1>C;RrGi5bbldzCi*PUfrutkojjb?F4+H)mk;Z)vJZi>TnbZzEdQqZLA zh;Q2#R-=3idX`g;npRa_AHKofDy~R9x^)=Oo~Ys;!?N-A;E}t_TifCaTldBTzl2S3 z9?sh%pN_>xmp}*Pxpx>a5&3Y&Ep*wDL@xpy`n@><@<1v7Rn*}`Wif7M<4Mi0G-O4& z2~m$flx%vMkL1)&v2%+nX|OnX1aTfyZ*z6yWoZZx=(eCw@)haYZ$S4d7# zPUckd|B$^!uexRe$B40okcoiyg3 zHRZX?lw%F}XxiqW+D976DOhEg0vk7NNsgr4goU6YAqMfOtTJX&{ChhVQa)}ha5Mp5@J&f6; zb;?h7rVu%aQ-~KIE@@D01tr>Pk;7 zu2m?&NG5PL;0KD7=^IKq6B7v;UF8E+>5;Pffl|bgbNU>$O7PjoDr5}2Es;vUO25_< zM*W-jAf`QQ+V15MvtC+U;bSpLZMiS00bjozk3-$PB}1YISJ!ijdQ26{L&0pkjz6fG z0j|#E^McP<->SXsu(zX_VsEK#uJ#o$bBIwM-HM|$^B7TL5@kRvg@@}=2mS6Zp8m+X z`s#;}WV!(&oA2IK`wb*9T3gqt92ZBdEDRv^kfs+-S-2biE`CuF!cG{4A6H&I{wex5 z%ZWYQnx_8Nxg5!nTznRLU5ptQ^DS`gg}MK{(A;s2e#W(@%Yop6s^|VZpX0WJ2RCHy zN;2@c---A_T?Fwr4EV05Q$K`_!^i(sg{qmez1kn5(nmp4PR$O4k|wE8l#_omUMA|U zu?I`LiAN&gllasevVB%oo~J0X0FE$b8)7AU8zw@By>V(3C7L)Icf;X5?uMU>j0?jA zA3AbnspYdK4-?#n!kJcKv|`Rz)CRNSF-_cYGox!w8Tj>H!!@ zACMwpTms)YM)V54sW(eUt8y2u;QNuuXX|iQnR)~mdC<G8Vj&6S6SlK5GhBGuY8bbmn<&yVFeZXKc1iemmZ#fj_05ufaeml%BxoK9NUf@7{(3a$4 zG<*vCH^bH}(?rHwwCpWqK4dAkLt-+azM-nm= zI?reKP#$`+_b%r>#@{xW=HCilp@ceM;Wn@1B*Ff239+)pGUQ5!-|`(sve+8`DM~fo z@+bs%flLkp*`gG>(L6ADyG4+jiKc9zLuK5A1o^dFEMqvsJENV`zWV;vd79mb8-_Vp z6|I>WmMk&-6e%2zek<|9(2D2qjb9Jp>ofgw&ly2glM4K+3n^MAAQnr#s9pR`wLIR` zxRvGv;Ic0$XSk6lNe>-*`c|7|XqXI}u@OjF`5*MEUZrj{0N3Z-6K(BeEIro*Mp9CaN^ln- zhEWa}zs@$nf3>+fI2$X8b6<-b)(?JrquF>pEol2&4h@TmdW*#*vy8WIh(VhXNV)`t zC_V_VK;WWowl!C@dEJ3RD0&6km>W64%^b)F$mr{<3*TqFE3=sUHOzlDSXjis?M-h+ zN`|NE_w5+mola_JY1{K^+yyrpiq#ieBwfhh8|9Cj0y+(pP`=Ri=NOk?Bg#MP7!U?O z>=!XmKsd1axeR>!O0Wqu$*gVfVef@)jZ|$0{9cP%;y+%ySBd} z9+{J0r*-06Ub%QG-&ZN;I~kn3ZVA!j2aKG!SQnpjoBZD@I}yQEttu!7H>I6bdu3v7 zRG_R8(6M8vI&oiXDTO6$ie^*imzw#VD4J)2FCk`m+6n@Mm+rf8Oux57oHDTSj^BD?3D_y@R>M%O}=*7Y;CIPdhwjB1`v5!KEny zRr^rs--jM7vG#%d%6P`@h;3i({?~BBPzRZQ@@CG;Hyu9#kMQx!IZpjAyj`56;so5| zE5;Fe@V7TaRp8Fe-6bXWDww-$=$U0C>P9arQ2SpMxNtuaVIobPM4_ECMzs%sD$tN~ z|D?ybK?;nOiSGr1*yHSiRstu+7y04NpIIN%5dUEk3;yT70?=KO;Zg~{FEjO;BoFS- z%t%NNc&d07N|i4GC)BOq#~!C6n{T9c#ia(!ZIiAY_vNnkU?wW?Oy&pwEGi!jXWWOu z=BN(2(h)l3ce&vb$~7e2FZwEA}bWEccs7gad_{3kg1KT8E6k!NrH>Kmz7!op|U z#KSpTFJZ~TrxtHKK8~(;Bx7EHdCUJe<#N&PA8j1TGo3Y-ttb#^&Y$fb3atwq;+c~& ze>!n|m+7Y=PFTYMTxzkboN1)kV`D~E;_xbK!&Jcr-t^J8nX{tf+`cBSDB#SY@Lr&? zV0|^3`JXZI5c{J?QoZp!>eXsT_R?sibrcz@_H>2saA;M0r{>tRcS?IJD|cqZO*}jG zF3(8JgyDT2)bpn;b1x0qd~p4G_eq2r zRsgT2FZVe8@lnSu^d2>8`)mGF88pr9B25)Z^Efi~)aLL*=8RSi38LdM>MY*tdc{X! z;|jnTmBFClwEOz-UO1P}F8OIC$_{n!7T=$2HlMCsLhZG8DCDPc6l$>@#8%9o%lKP-)eg3%HkguAf&m`3Z9dGJV|d+cXmAJ^><$Rnj}t&fk1n z?+GPj!(%-EbWsX$8Y%^G8&WLlR&tTaj!#b1KkwSMmE&+fZIIu}0(H=plX~h=DXapL z`nV(aW;#M5ZX^_F$aD$)IT_+#Qbvt|?G4w`F99W}La53ku-~PyZJD7*DmO@55d*ha z%>ZZD$kGYX4`;`MBw-q6$?xM|U+jm}FMqV8MS}%kfqwES>z&;9%U1`*jvSs00)OC( z4)BuNb%Ia1pJI07NFgL1rr0I%Ef78_fRl=qQn)Ye3L5Oi|^5#6fuqbE;X6}y>0ct|xkIM_pipP&Dqmw^bQ z@NZZyU;>7mMt^j@pzP|XJ>Y4ehKX(n|J3vOZ3^NT!0K`s+;3-K zJisIyfSF2P%r_t=0Fk&&JgdaUGn8;1u6JUU?8bEF&^Kq#LKNl(-~~AL7W@%k=U$R) z74!zV)IqEy5!^p!&$!Kpt30}yGY>*!Pk~>T*67Pu;aVVG3T(_nUzC{ylbLczOY2Jl z_r6sSk9-DdvQY8yV-35;--s6=!!Mayg{3%%v4Eo79nMi>t#sQl0_9}#JxRv|Cr7WX zVWUXV0zM~h94zmG$vE=FomX=D)pvK*)cVt^a$pjNxkNgLxvl|rmF+PK4Lc~x ze}x^nt9A9mW{R|6F~K~@^|5TTlLiUI#2fsg6W|Vfs;3umx|MA+x+Za)HZ`(h3PtED zoFh^CW;%yIN6s*Ayuq4(2h3}Wcm&3{MPt<%jf73yYpVdM;;sEq-N0ERJ@0952ETy7 z@b_lF;S6Z#5a#X=V^7y7b!;QK1+Kt9m1|8AQbX=Dcx^X(i1+k?ALu1Tf$!D?wl}q2 zz-2((1!N`FLOB5|r_~;T{-FinN>MUV?_Mqd&CS)w&I1N9SBcq7VGIg=|DCet>$}3nXI*UbgVgM0_px7V%b39Kck4XVy5wZbR48%9}z2$ z{Y0S9V&bU+q!r4kc=h+LnYEJkK)$SS?!wxk1=-#yiB18Z?ZRoJ?BV6i#r2X{V^8V+ z8CnQYcYMWX^B?fqWCMIx@61B1hLf_7&#nD1!Nrcnf-iLisO}J(B|UfT!}kM{lAs{( z{~D>QUk(beq*cNg=~xYB_+t!a1)f>-Bnp8!?$>PKwH^ttU-r5_Z6pd70_B{O2?#Lk zw04*JpJ9B#(wN+TL|qBsRzkBz-c#pwJy;(HP9Uephoif!$4*qhAf%R z_4*v!gYC$zRbllS&7}n9{_Z_iXrM%C`*R`o+t3H1?Dk>wtm4W}YK1&a%XHgIP3RjG z4g7AI6Sc-^FPeZgwRfky@9$AE44 z2mG|+uq5GVBF`*|Gi%eG!^)_tGmM3^zL_mSki%&BFI`Ws8NBlI@rB5h(>3cBXww2zDrK?5fiLSy_S&Vd%7P-R_MgQS*%@-U|a$%3XG@J;}d@|MNXmbo8<&Imk~?u zsiq8D!TF;XJlbi@b7%z2L|+{#X~bkIQ*u8CRxa1ZtIS@0i@mEOp4BK^jftF#@hib% zK+4nb8j2ydtQ?Emg}e5{8~H*Rl_1hHO7R$kYp2Z2$N`lWtsBcC86MY?m=!JSzKU@Hw8pd~(Y3AU9PSh8yI1XYAmr zj$M)x!{(Spv7NRhZ|4xqy1Zos8(zM7UNFsY!+K)8A;N!{$WVu>V2t8hBat)H*hpnH z%upvgVxS`FTJKq7k<-Rw|qI>C>_!HA29=Z)hO^IN&W?LLgHJE`C9^h%n_X z)=l9_ge6F_Jp?N0L_1|E`IX8Wn_)0tXaQq9I$IYTQAFGcP*qw25|z2Kab@F zaTz0W`5qJJPn`vtxw@R1miB(n$g#Lnb4m;x4IgV}_n&E|G(FF)^{Np!+W%!1K2c^| z{G!S<(qpzx=m&`@iqqaYSBU=9eanH`;x1HJNI{}CCY^PQgf;5>G5|B zYSDrzB6g{%#Hej`_N~lyYLKumb#BM!hK&-6gjGJrI6_Q5PWos$)2g3w#ux_Cv;%I& zx;|SChk1oM-XffOB`>L)Y%$4qL3Z+w-K8*Ag$O4_@9(!%!|6muQ0e?8iAO{lV2?uv zH4o+?)phOm*|ZY8MQ7)(uj^zuFKXtI#pFtkcFMnROv-m5K`6l&>O@$305 z6C!o(Q_36{rn_nkQo2Rr*I%ZK`ylyQoEa**KtG?(to3c^(m%6|;7#)G(nn*>rR$r+ zxFCO8gqqj434v*m0ZS0q0Zp0}TQE+c8u$zeB5Ji!+Eq=@Hg2m@7Vh6A*uWl-U5G7A zwI7ij+K1dOu(ep6X;f%h;+>(fua`GwlB>HLB0lYLR-simS)$Y7)-RpZqN^neqfnWG zR$Av=1a8pnu0DGCf!AK+N$&K+thRqBp9wqjp5M=71XD=nKT}9lBBJx1An-kE$=q|R zc~4dU1J^h;u^OZ8NCEDxN9Wg=yi`+wF6PL$_;Rp=99Us}&b{98-Dj>ZoHhw&K~+5P z!>OgGDYk_W@g}wih8c$Js4Khor%GZZZ$FC3cmrAp5>><&$bGe4T#ykW-<3}|J8odH zXO0jlp{lDz8L(PGE?={HxvrrtJ*nxO^D*Pdm2*R>Kv}LNgn5WTqTZdi;~#G3-L0*g zkYt!HJnf0hKS8V*+Y!Y$CL*4y;aepl4ik#Yj(D|TQZN3Wy3RZts_&2ERF;SqgtA0^ zZ6#wTYeI;@7nOaP?8{^uS*Jo}$x_NrjWt`@W+Y3NkZov`%vg%d*v2jl!|zZ}zn3|o_o$c=X^fr^?n!O!|JT6sXxXZ4NR|axOM%kcOw&3#J0Mg?JUQ)l?;;l zK)XEv9*Yx&@1?(?^wN9lQTuO9vam#Kop}otkk~VlBZz8wZ zWsFq=iE!WC-6{VapR*=osAo#d`qEPVG_7wjgZlEbGoJA-uNUrlNnpBnR=s@R_#X}! zF{s0YNgsUiU&T zojWcCm0-6PC=$BA6zP5~#ioy!WMjMKwaM(eCUx8a%b7V_$fTv%ymb5C)CnNKobH~F zY&Z~4!pvn*HfI;VEyJ9*y7I8^WYrQ+vO^06W4VcVVWg|ZZ$GzFx)y0VN%?ZR=3 zb(w%|kaITOEgRbv%o}l^BNTS=4#t*`WavCygnrsJ;K9ysClwJST*^0KZ zSH!k1s6g&fEpiS1URh3HCuZ9}C``V?sAbu6MZMp`R$nQBJQ?TR9+y$COCGMrMzzJH z{VaTGB7gGHW4{sO#&?DGC82^P7+BW?g6A?;J{;Ke(WrSQQzNMph1-eE5uZ zHay4|N#KFlLL%Rl+{TLy*9yQ1<9FudeI7TKp=OR&0|7q1o2tFRcYOm!Kankv7YN_S zh>_<5P8JsIt1N@0++XWB1JOoCCU{eOdawP9aZgf*>IarjLxL$N&KSEefzupLU#C%> zf+?jP*TH5Ifo?4y=~#y&9$cjB@SRWQ^ml6y}qgzxOlm zFYuC{xX!e3752RpgrUZT4ig8xkG1%vlsfT&VrYZek?-RP26=*+i4v>zgVT$` z!4hI7GqNFhs-$J)m`5g*u1Fcfxh`vVeSli*=+=fRr8RE?Tgq@lSol$E`^-xR3v&#*Bhjg_X^&kfz15kx&fVT1YIoUkCo{U^>JAPi5l|K zDEzxnU2o;vnX+W3{Zg9x2kZCcyY{SN!;*GR=TD15kx;Pl`ga@v1Z`N))x1*G^vh)& z`b3H@iwiCqJ2U)fu$M1yrVe5vvtL_Ril`oCa{6o)4H+WTpZ=&7E#auX?1^?rTK=CT z1jt*QX);)A+H*&V>OE#HSi6MUc$ftRVF6CBPIt$6^iXV?HA@YqemNpLi!iaV(5|y8 zjgs=ylEq~(QwxmpGrWI>ULfL$-n^=oOr}`=zqN)qa;hLXO^h6a$QKbi5=bdZn?6{O z={M^CI1dSBZ-Ufo_{A|AGDEtOT95n*N;=YFfN~8Er^Ojvc5*~88Yr{m{YiM1zknGk zzMj_de*DhnMx$?b`l&{WnMNDQ_bHHBnUp<0yr1ht0L7hJV)2i%2{RvzE>NkNmVBM- z_0%y~c!~@qr{#RAxN1pg7s&&HxGq>r{@`Gj>a8r^y9m|tPP5%gGD9?qiIIANLU^YY z5bYLqLK73csI#Lbs4Q@ozYdI91q_U$>wjYBNgUldlsoqrZO+|KU&LvWq7njwN*RX= zYRnt0O-&9-bI31Fns7c#}xOwL_I$ZIN=Z*jllM&wIJehF2fm z!@Yu+!}}rh)E4eT#ujq=U#y;G0F{|{2J8mcL5`Cb@{eD7(cr<^@U> zHJsQkyO14EZcwh??AlAxo+5v*V#YIo+~)nJ@Snxv8o?-Q6HOOq91%^uY@B2`W!sN! zivprIC#)r!b2d01**(t^X(lWmc$A0jX%(?KhmHt|pcx2}Y6~+R$6rVXau|KfWuyZ+3r$d*2sEt9{{Ls?_ zEgW_wH@MnJ(RR1q58T~kID72DnFmtuCn_LJ_FN7nm-m!q5=H5OIO16;aeIZ6sXZ2N zJ3q%achv1E0xjK9I?_Af9ENw0R!^Lap6&>W6ph(TV2KIJpbVS8xXJfCW)h~NPhTjh zUfzI-N-&Eht3QzJhI#O#SM(Ak)%#gpj_yD2L%zJ`oe=zz9K1>x&jEU!oTnFopIvM7 z7UkwDW-6e6S1^Y?{#%Zr_LzQ7QtO33U2c*NhH8tpQ}}vF`oMij+8nO?#@}UQ?cKO? zI8tjM^!CS^MI!7OCl)=9OSLA5J}8mAW!CJ{I#CVb8yPBr2qpF~<(znsC!WqhFI=JW zxZmv-U%0&ai%0DtDg0|G7mNntFBn}o+Vx>MkuG}e@^kSoM`vB72yb@UXd(lTuyH#{ zp$9$h;$wMnh_-K%Lh%M@>J{T8>j+cEKcRe`p>`*$8iPio$Jd|sgPpBh@uMEsmBW~G zPMD{YV)W&TgTK-!&$G6$ahF2WmN>JG<1QGja48cj9q&0PdL10dq;soKs|PiBIh^|i z`saQ$|94&(1kGFdu@Xt~3z3A3C$I0w8;2wRx ze640QiaXFk*Hd^M+R+&-a4}eB)MyIOr;TBF=}M}1!oo_51@uwAE7EK_Uz@6SX<}K% zpIrZXH)Gi8$$*;8`0|)uPuA@Ww*0p_j?g{5fY>?)K&c*1eLM0m9y-LIE;@T*mUj@* zyyqM%AiZ0g#43GYrj-;Cn{i;MOgA+!mCk`+Fl#LxD%fVX#y04-9jIF>+$lBUZ4xBx zNZjLyfuXgs2O&Sr90m{2kO70S*tO6FdNftDgmnIuc-W<8;CT%&XUAf;NdR50*oO^F z#A{J2c!2LJuC*ZkZO`@JjB@Kw3M`NJO>AySISIHISDnUVt%dQN}|tTAADXkDF!+NYpZwB$vXmPci+x=L}H#%bh}Tj+gd6CinRcE zfajKczbbr-SpSkhh`QDs*3ms1=nRrDKuf{L$?HjJZ$zv&OXe|tJ>I00ESxnaChEhb zD?KZ{ekhrb=4?fIfpJP9(9Ul7{GPS&%j#03j)xMT+L29N9c;b&LI9lLOjH5py-|kz zTQ~2alRfqH_ydZ8<8>ELsE>yB{MJ3{LA1pBKZ@E1ZE}-So(0F3W{%^0XD&Vh?9D2Hqy+<}{f-8{sl;Nwo4*A~~ji z`h_jQTo*_g?)=*!F_X*Ka9>xw2j#qG+`83NM zPF3{x*jFw%H77l{r({6=y5*f}0!1{-d`yKEa~7J!aq}nvaC@V>E{<|jy1W*iHLO(a zKN<-h_?|N{82e=ulb7)Tr2VlS)`^JwHVh1;6)@YR)K|CwKEE42P+;)h+MU7RL5}bR zD157mEGcE9dpPSJHGIb=MEbX_cW6v$??!CKRwgjO78_c}a!m36kf104S8CNhyu1@p zWg1jA8h*MjAC%zJ>Ckdud%Q4O1bw#wlgutL0WA(N&rBC>;Tlw?S1G$VE)FYn4e$+=0&q6`<0WSIDcINGpO_=}gF$w^R zVdi_(_q+w*s_U~gY7scnw@OfX39m;izTw3&HwV2c7EXf(NY6sgD@a}rQQv(rsI&?o zd8Zp}V>RrKQL6Cq0uI7U;_cb_1;KdLJv-^^Z}0f@87ctS*dWQJSbFbJ zthckG@u|(7cMUawl*V19AKrtZh1%E8qCJ_&coxs+yH9xB9|EWLAKlwQp!f}luI^9_ zVr!TUG)ltYTzV;6yt!|KF3sFfNI z|H6=m^*1v>#R~6&eiso0{;eaA)*H202J{`K0|8r}mb6;#JOvxYsp*(^40`EK@7bvX zL+pLkhac|pt9cbHz{s88GJE<;ErRX4G#h`9Oa^&7mf|(6?^sxRfP{2n2 zYtixXUN2W>l;taNB7@Zi?eJ>gLT zo@Ggf87(JG4Nb)d*^Vr>MMpX#ryd?DN&==reG94Kt2gK-SVP7_)VCf&C{A;1;2jFSNZ4ueZK1ml6gv9k zlXZ5D(n5U|s8^;}dp20#e83YL?36ev;jEinEU(GeUL!@IKp7H&AZxrs zRPyG$#HjpEoBwxU{C}Um`wL0X(9oRJ)x2!__c*$^(YU*X?2Am@y#+I?0cX(YYC$#2 IH0gGbt*L(BdBEWs?Gm}3v$z#6Aadg%@;{EjdKwpiqKVe z=lG}KO2zK*h4|E}PetD}iab3Dl?*qMHIp}; zD??S~W6%d{SQczAH{Z_-In)(ftvsi}<| z9+p-}jKna=nKP}orSRE3>pwd^eX&vxX)EHUoynL(t+zmOgF>^ePBt4pzfwyL)fGdQ z3XcBKD1l7dh?+nhdc;Wki0Sb&BW_-4Q*4F_Tb+_7_f63i+AV{^gn#6m*xzbq4{u~k zW<1}K6si|Am&w-ku3eMkHRl3TSFNkO+(Rjo)9eKoLF>@fhxOL+l;1h+>wx;d{j@G) z#$<|mXYUQssYU!cZeHJ-oAYbxYQkMdOb}scV-Q=z1U6AoQBxUIqw+w(a_C*MezFu6Jlik-U4I)f;zb zYl|ta{a6kTsX8+1Pnc0wL{SaYQN$@Pq`6Yni*jWbkV`fgtDRt^CqI;a4OM*(yl5Gp z>f%gnP*tS^u40|>PHm>0^F4me#_QkQb<6Z7ofI%;-Ab0ddGt_S`!16Msu0Whl;m7w z`YYBCEinR?;u(9g?;V}r8kb0HvgtuO(mgI@RH*C?c2>BwE7k&HE6MtKp8I?9S&;FH zYMig-ZdbErbKmy&9BuU!;BZTj(dgX#yN7CSHG{gcr-XSmW&9R+@Ia&48z}LYN@-Ng z9g?aoB|v*XE4-oyE}nB;HD}asrhk=eLUi7QHfJdD8vmkRLiC<+Q%&hr*|y7SrGD4P zTSc*OqnDmw;z?oHwxKma=_=7#&r(?L+HYfkXz^Gpn|frM<(S@GZsYr%b8VG1w~v{( z)|d#LP3HMu;v7)3^)WN>RF+wXSfFfVq}Y$BD{rsAbJz8t;kP3!^(wNPekSAYa*?)0 z?bT2c_44i?J~h&|#(c(1JmUmEg_nB%YEGK_el0l==Nul6A4!8X9H9^y@#0t+4xzIU&G@m|2Gu!cxR2G3AnDuj+_^ky?=}yTGlPlloURANa{a8{ z&%^^M2wmGwr^q|z`w=QF(f=K{S)RRdk_<66`m6p1ZtvHBYUD)jJKeF;4DwY+7AUB>wbr^X)&GZ`? zSL#^Xjqjo68Hhu?I*HD_VxZxz zkQ40(oi6(pIDy7_sQRe|3uo(M@R{ml3AIUMqTH1K^?RAs`N~ny-LrvO0-EA6vgvgN zcV{{3oi4eyHOgAwHz2uXlrtx;N)yG`Bja(Lyk9PE=(wAP>gA0|arI;Z(7B4AACGI} zv1XS4n%&+C%90EXxxq3dwdmG2sv=e7T}4DRJa41(iA<%&s0hX|>K)qh=wp01(Fh(bSuZs)SiUqDTvDPu=eER{B5V)Yi z-*~TG{0COaor!)bkZencL64_EA@E}{H;{KB0&MifZK=~Hx!Iy$kGX^AjI#2pj4Iw) z21RRs!B@8*4+T(CFTUtqQ#H|VubUVBx#AJ1uB+K~`6+s2d{lRr1!Z6KR2>AX$*lAo3o^o9}ei6B+;!Lx-*s48t5 zqqP39J*TdK=dqo zuW>zwj~WC5KPI*8kq_f~Y;Qa!W_HxRyQThV-n_KMZT%4KP4>tVI1i^f^JvV!+=4vN z!g=Yk&KH+0Pb$c$a|4G)VjgRR@eppKYr%gi)*E)R?zRv<3Yq!{{f=)j@8|JdiuFpe z`g}jr!OLSxTP3CVV9sHH#Ny4GZVBh{1S|CNyye*1TV|}yr!MP(s8R z?AD*O(&PS+9G<2C4RSe0s${SKEXQQTAG-FD(?N_?dv2H~hdsC)Wr@^W*tWELs4^aJ)iy5vy!}FS&ztuTVNv@XO{#c^O5O5oh#usr|Mp`Sp?=p{@7M@hsyj z5p!K3!<|BGwZJn%92siD-}f&G%XgJ5FcKUFJ*51P!((c6Wn^B};C}_beb%C)a%2Q4ksj0gN)^yq&^rP+KI35uj5aGz zvE6e~-L+etBbCHk1Go~R9o*k>fNyH*JGo}|;S50R06`s@^o@FRi1}k(+fI;1)E>n)A;NJ@q zmi6X8uUQt~Rlayoy0h)p9+?pF`u4N9Y186HIQx7bHEkNZ0FyUECypS7(b<|PM%CFm zh7?oatM*jX?ULm4D|XopJEBqLfruWSeYZ*{d`mkOC|O|BA3bTEs)AMrlP;Ti+8oS>9;eeup8o8?};gbZvZmz9mKA1Uet)8Y5X71dZpW?3MQZTxnJ^hrI2u(sLq zYuAW5C~NRZwzjuz%A9XIIXt|Jwbq~G-RbF2z-$juDO$-`*w`u|KD&5PeyXc^*mb_h zz@30U+$6P-PPJ9J-?1z8;xg;C9{HBFrfNRBqhYI$=Svp5XK}!nVAnjvw)3>GsL8-c zE5iSKto%1>3NXF;Hpqz|htI{DZoAE3bm13Btm4BSab3{cqGWEoRD1DBg1MtHYaKg! zoVn)rAeDHam*#D{@grzJ!KhxGe^93=deQ!HZ@&J`QJ49L{2bSPUYv6OGB|7Ek8TG6 z|K~e&dvlftedVSU@AW2roeFv!cPBN-GwjQ1>az&N3KRbX?Ctfrqb&Qn^}edzKRQ>K z`V{!Hv3)@d;Z>Sx@}{PPxIu9WT46V^Llz5k zt7E(qsIuPZ;jtFw@6)|-!{2QUauvt|~4$N9dP zyKFH_wOv(I>9fa{??tX<(bv0-86(oT-)E;=ZXF6Q#CKw@Ao$@QN%k*Ic#HXBo>)#N zhUWLdO1$cp>2k{4v(4zAnfTXXV5Fzj6U-kC2%EWW4P%;5Ka7}=`*vUBAuoS}g@c|7 z_j-M&G;wd%IlfDlsom|?@hPG;)w8UOrz?5Gyh6!)B43IfH!9z(q zxcrDVEi@y+h;`iwj7)&f~Q!wU^xgQFQ4YQAC1 ztPWp3_=@M=t-cvAei4ev)JtKxSS3S53-cS3hL2==+ZR~HD9X#%PLn_#jLC&L3P)V- z%Z2$xti8L03Li+>F#2^aT|jAev^#?Fk+YW-SH>ewPzR5Ouzijg*Va8L)rEsqMbHOw zqGzg+EP?JVcrhR6n$4o=p)z<}LfYFL{1~AxS_id3xER8P>&P?RPMXVw1R9ua}(w)6pue?9i-X&FP^iwOr5 z_hs!_P!4qzgbhANrVH1T)LV%eSU#WE1o(6e-(0f*^AhR@8Jwf`qPn2px|Y1MTC&$H zHf|S7+#rP~HI_q?Ra=>qt72~N|9Ux!pY!@ec`yPDE+_bWe>RyAQuGpyx@5$n^Vn#_8B~%dFV=qc8JD`@ee7kUdFfig9|ooT_?FDTl({ zxP`l&mWqkv;tVH-;1hPcCEN4qGleQIV8*WrDT&U;UISA}y$9Y5JU$h3MC;hu)dmB}$&un8Bl>(k9T<6H#hH-=s7y}O3jzdw6X@RL=- zW5^Xpu?7@{vPH(#eUE%Jw*5wu%J4qw;(1lrExpo19#7mXhBmtoH?(QgEB~s>`e7bH zuBgg35FxyrRnSRce`ib6$Dj?u)$!{8&>bs*Jb zJ8d&racD^u@8LQ`4+-U_he z$B{@geT)FO>-IU9jl(6kE<|0=?+B52Tvq$qnJq7r=@5;*G1+Oo&)wCQgBp$H_l?il ziG?szw*GgwYuzg$8Old^0hRx@rjyDP%PVM= z=&fG-+p0A{U%;sv{IYg(%bg?G>Ih9XxNvgz@I~qAMh&e0RU$g&6B}0PbFC8S<$dje zX_=0l)sLF9ImEipb`7h9Gp-e!s!&@!F5a1zzTIJUK8MS^cldYCiTB=_Z}s;`Y5T zO6p$VMrr19_ZxUG83mwKEG%>`)D%Nr=A=gtCk=Pi1L$lKAamNfVs2b6rq_m2bw?vQ zagM+#30L34W;E&M_5S}lr)=Jj9N?W2y7hc9+D5!-fkowP^0&)o=B=agDl=wwnbPpf z6|5s$V{hI|hX+FPl_%rnDQmQGAT^wu$c^1GTU`dj^P~Uh5gvsIC`>%VV%7SzgB;TW z3+a$5?teJf+3$aexHKVOxSDJJ+ZJlnn(jy)et*8*#0@!nJ?FL+hAUb8M*)0x;K(p& z#JIq7N^&u}%hm4?AC>fL2Gcm^y!e13@piXiA!Mbp(d=-un2EMX0pKK+W0OMT%Q5sQ z+!Asge`3ZJIq?wRhetIr(CJ_2h|=LxQ6<90W$5r;t8MaArNpALNIC!w5$6O^m99V6U7+(zYYMozNq;Z{7ED_n`moN!95USLUWHg zyYSwg@syqRtsX#)3Pdb)#RYW6eY>Bu+qfQWYdcARbL;A26$#Wa*s?q^~0qGecudkQ0PUYMpK)-0Mw>qx2lAI!5RJq-# zee>s??MhxDTy$f4V9L_J_>&C|9c79v56bq0ecnJOOIc7je3&r>_|kHmS*v(!x=sV>0O}veL+v zGZcqt^Yil;S^#?gP)u>E&Fu4#`%o?c$F)T>oQB2>SD>f|2`;hup_2icN;4^DvWS)5 zi{;J*9MHyM(XREp%P0TzLFtm~MjUMH)pJ@mZ{PQ3lhXv6F|0Np=QzCXZ~x*HJyBzP zkHKbBhUY3o55df*!OUMOYVcHX7@yJ9Dbbj8kfzSCB5xale~umfAATifKwWv?t_<77 zqm2hzR=@mP;mK`ukRjE-j{k#hjgt#UMd>BfM-2djGB-BiUXe)_@6p0|l-K`14?i)| zc1)fEq=CV+)=25JMrkdd=dv7^s{=;TkE&7XdBFqxA1VjG=%RWikrpnFF2*~wb zgS78C7a$4TM5f`+#`fT9e_T?-<$Wc|%d0ziDmT|F3$nSyWC}_abMdamV|M#bAhYn; zQ>ML-&FeP5gh#JFL3*%-fmTo!{V9Y}9`@rD@RoKl^MI)y$E08 z2Sj$>9f9yEv<7%7;$8;w`y-8ENzMI*)j8(gU>rGjs4!M6Rgeu}S`YzpM_tf|Vl8|L z=-U-?T{=L_gKQgp50toF?X}~+JstPoI`C>@<9A!ORpC3_j3ypoc2oL{6!#KV?uoUn zFU-Ld=Cc^PY^+q#qI1lEPeB)bPO@FX96jAL-U8MOfKx4n$KT@ho$<^-paw99+1Mit-20Ye-g>NUQqe{&#(+~k$ z>%M9qUUL*9)V@cLKzecRusMA9`m1zuP&VG-?O_>InBJo2_~8=iF|r`8#vO4_DPqUI z!|uttBgQvg0FR6%=Z5|i->O*pZ-$Rj6xSUz1$}_)n|DysVq5eFpq%{$quD0YPhGG@)q=;&R6fR9c<^b@4=P8TI{xvkP!EHoEi01eVD%96zOj{^Sisd zk-z>p7J|ho)fZ=HBz;N>>(mtZteDlSx;%I-VL7Y+Xo?pwi1XLH+We6^Si%Q?hieHg z&-{-!YL!Qc7XCr4hx|onM>437ubeVgTb0n=UsG*4{_?u6I4UppOxq9KPwyDXLu_su z@o8FF_hFsM>C+dDtg8g-f!%}p_0!Uu!Soh!$)X;?lq`CU(*dHJ=(0DC1RrkJHwKe8 z4OA*U?_9|Z%42N}#`=vH6KVQ#g03#5tck$72vDGD z_)E0#)em>kWrdV!Y+B~};+b_>LSC|b{?ZQU7*c;e6_wl2s*7M%(RNg6nv&ACVSE6L zQ7xcMnQ@aGcS?0}+Z#~o*%Gtl;!GU#=p(M{ov#sJ z^l~5HK+QR7dge}iRL$yULADr#SV!Fvza3q_mDX1dT%$Yi0d?b;1mE=2+{fKm`gcSJ z@-{bN(cZT$yWhm*`9~JLZfvTl^#~TPfB4J>Q{~Bl``c3+YQ|x+;>c3dXu{ipvQkS0 zYI!K9*y-foVfQdUz@xl-cpF%Fda=pSL4>X z8=tOhblo|cI?Bwo)+0OJj0X6v>ik{aQHD@~C{r3k-F*2gL5vJ)41~!BJN`SiJC~{3 zG4hcqujmK!p!B>k%^pq=2Q#}%wG+M+kNqaoTN2v_69pCrTG}KOe1H)be$Q<(n`5)w zrTW*e6xM0FOE$Y4LgLf7OXVq2mS9CuMtgX&V!t~%lA&wwF_o6lMD=#cvFh(|6;X-C z1M{}o@E=S+NBwy7yr@H$ji@{S~y-s#vQ!d+%#kjwCg@B=ma5;xY+-k0OU63yi*(Y5!v;X99};H3VX9(@`0~6 z*67qZJ_gB(-3#G;!?yS?Lw`nUC+z4Gh^)kVG@T&z=Q#%ZwasADfn;+r?ljZyk;k^q zpga`VtEgfQI6FRNl$f(i`F$=v{dqx>JR)hlCcDY>UN{az?SkLVXVUAg-7nV5&dTew zvtc1kMc3^5@C?%_wTqwafb5pTIocl1ZbM5ajkSu9uBuIx$+E98ivJ^#MsreDj` z?dhWbF;YD=VjTEbJY6W=)xm&GoAbUcr_{Z@_z8rM83Dc^5%N2ccm1q*t#$ZXmt7U@ zc6BpaRBod#) z5Uq_iTYOKG0dbG{uU90+oCsOzh3=wOQx521yw)(>3OVOB1hi4DVDEcZZ=h1m6-vD^IpGWXaBl- zGN9P-ts9RVbjpEZBLAHUq*c?~+Y8kR^v$_5@@WZ+L%qk?fj{AIc0Mv7Hzf~ZX0w4M z8nQ=l%zRkbnfPOon1k0=Q>0nZ6~Lh=oU8Lu9w}|Zfoz^#@fvJQ|y{f7?OYCC5nqPWW~Bd9_75M))muFu%xY8?tYq22bY=OKV$MTDd(E^9^FWiKY^5e2UycwlJDCDodfC>tV+fkj zZx55wvdZY_y(}O0cfFF&(rDFB3J{sp-^O@mcpMjNnJ$2JW=nLSA`p?rM8A)Ghk66M zUPan#Da9F-RN@7f*bCgm@iBeTt~O6nK=*R-@_oug2O_3Xmx@GXbd`^KO)ApDx`edn zf5G+xJ(HvU;Y&kuW6mOnl&^l?mwz7#Pes=y$kF!td!O3OQ*Se0Lt;zUc5P)Xe67Ui zZDT;t{(e}N(h!+YH4$8SiVlf&lUKd#dRA|CTlSpw05ThLOi#5Fm~!es7UPP-C_(K- zDV9%3JMNfI0eOnxj;jW+qLv-(ewLblpTrQ?YpgaR8-p34Y3WzFGD(1N@BEkgg~gx&AiSb_Q%*%+uqg@UmELiEA~rMZkBpa3A}FiBk>4Sx6GDrWOxsjB@lJPLb{cLD{;& z7vX6^0pOwOS{fURoBPS8kr6dep~9@Iakukn?;2l&9@;TrjDP_v=MzmYMtwOL^f62P z``_qGeW?hfEbb9-SLy7)+>m4M4#EfzSMKZm+$L_%;gePFTfp5IF{4hYv>`NCRirnP z!jqSLOy;b~%_D$7O{f&Ul4OkqDeLsU8|~r{AlUlfXY5rC@7LIv$n~MN?9l@u8sMFf z$Z+^nTMS65@7cD`lyC8%_x)YhZN+2d{gq$+BjRk~(vkau%1q4b(s*gX%}0l&gI;@n#F8#VD?hZ$ z#F_r|e{q5B)_57VlT*)pyU9fQ>rUdHp}xUK;CHBi5iUX5iaFxIqmTAr)VJpL6lMVU z$VO=GH(dn`aI~2!sSRcS6Lu$p*B^s4oJCfGg0CuhpfrYo^am+PI(Ln>j}1R1{mS5G z5kdg{;Eg>lsr^#3+w8!DN6Yp?Ks{dTanZmt#_yeK5EvCQ3f zm~z6C*8>>%Yu4$g&5-D@Os7OXsT2up+Oo<%jF6j*@H8&K_lQE%OtYS?4`4)i!G<0! zUar7Gg^U#=0B;oAFg}jXE5om7@v?T3!>=sm2uEKWN5CsyCuRWcyTRX>Ku^QJTqe!$!*kFm zp0`U~QWJqkpWB^LmQ3>mRPujTs_E;<{&xaP#V-AIDUW!#m@;<3QF_TFr zc3c!o8|aN;9HQ55q0t5Mi85CU^e4Q^Y^r{m0A>#B`$uQ~jWe>k7c{H{-!ze`WSfVb=FrFO;3|FhsxvWYy z=?TtDiErP&aYMMhuK4UWB;*oUus7u9*wAmWE60y%;@GUwSfw5sNd;j2KOAbaDoHn(U6X(-#r{-BiITyO3O{~v5Ru~IJ@k>Czl*_;KL7TqCezAmF zJxspG8MEHJ1O=*&)YcjwAD>B+qRbW#l~~Cp`JLp5q^dB35<;0!u zx3Pm59!s6-|J1csY@mHu1!#|S4=O|QNFWHHzcc1ALLxseK03YXbnA{hP^@0O|MW2~ ztc5W9{tXJr_v)5Tbg-y@KwWIw9?>yKO$5|1aqtlG!Tb6ue&@EcUreC#x}YqhDd~45 zK2VO#KUnR=eNZ@AoV|^NFc%RM_Kvng!sWy9Y7e+8myUM1WTK zI9wdOp;kjpRf27)ME~5&*&e&UA5Y#fJHp+?c z`;G>EKr~O=^T7zNX?AHH(wnU7zMS098`y9-8V+Vf;;uSO0q;|vKy@8^*93y}PnftJF#KTL@T@?Jffq0P=0$O6Rs zi*spxx5FmmnSi!$nfIz^BgeSnzf!n?vBD+`bbd5(4gg58Xp8)l)(&x$bz8lp*iC-Q zx{M|P^&)CAhl-eqQC>bJQ8YCe=w}m)-$|nEnje^Kpjb&0hcMm-;{&R>Putu)3mY(& z3ioz|>JLVsS8aeM|`LIH}AN)Hw?~m)(ozC2h-_mERZkH z&dz3PAp!svY^M}({ESVs*zD1O`=r3>G1WUhtr%m10ak9}V-WTr=1KT4`{&!@T&eeu zaK-h@A;IdPU51Spt#ptg?~=2L1Mr*YX+fLNOMrXHy6qwEjj!MC9k?b-U)3 ze$6`VM@bU>>bEhF)Q(+=*5{hxJH0X3-W5LZ5kW!@#p2HViLHLur(Bs5fs=_{SwXB} ze7U_6f=lZ;%5xLj`Hy;J%}{vg4rtfYxhrs0ttC-p{TzDd2FQqlhXoL11pntMzOaOP z82L+}#LXJq1b2s>jjO^%p1(F^SY7X`xKN3AIKza~C_}u|FtgT<^ZAT50|r z`|9p}!ZYhXl7M8ixEKR`DcZI{%d`$i2{(so`4St?)u2PqqgYSha0vPI)fk?Ehm{rS zO}y7#U5`x)K-52`j7T1T>1<`l#|Ujabic+c4zoL}rS(T4qE5d)VnvDCLZ z>f*B{TBnoX(TII-tm~O=J!{8=^yHJ8SwO_FJNZ`E1Hzigq!wl;yE{2J2aU2tQm}Pg zQ1fY5{)@GufaDD8)>2rwo<)T(KCIN@stmUR5R7Wnx8sgruHMDUer^1TnSlGT`|0Iw zpt(o7d|HJEaTHts-6{NAbvjD5v=bG}IAKhjo8^)*m*+p7Xxx4(fmr=d<^;1+mn}7W z%;jEIW(yE*vEzsBnww`9qO#q@Xg0gW;$PR6)K7O7h)4F1IJxmxBaX(_$!Tl;yoUjD ziT`7auB{hgYMspdGjTfIdUI${N%hj%;a5+0(R-YiwLz${uNmdtDag0*_511HWa=rJ z%fUBRIcDC@nG!;G1_2=>>qBLqJQlyl{mOd&&AMM(qeybEXr9VTAm9hnf9 z5fVz_kgZhjxdwzkx~u1=^L~WR#yCjp8g$oZwq%|WWa@J~Rc2VlhVD|C;(JKd0;L{G zakk6h>2?-_oFE!m5Gv&rBzy_O=j3`JEFpm<+i?s?vsq*Xt@NLjfgJGL8s^-m!03#U zaIX*m0Bn4+wBNbZADsrJ77xRpxR=!*)c1}LUB%CB-%jb(-P-aS3m!x@0g3<_Ev)k8 zqu;lN1N(;n!j53uj)S>-o71r$!Ypg7i@d5qBIi4q`6t7e&$i)qVDnnHm9W$=QBx;7 zZCikZ;?Hq;MYMdT>y|autvGvGq%DneMI@aM_j`=CSX>5X_WI&3HB+x(MJnmCtX)~q zgbTMZ_M^OsOb_>|^sA?jF#1ISWTcg9*tiQ@;wFqxpoPg)bkmQK7+iMjowF!*F-j)3 z)`0WUrW}@p_}X!g^S=z*iX|RTf$6QK zmS)(T8cB2kq}lgu9q@hxBi40DfCV0y-T!lt$+q#@ zrDqL7b^uq%d<3RqUUpa*0AC1iO*NCnS>a{}3W3zpP*u(oo8&~G+S6HY&e8xhAM#QX z@B*F63Qzd9#{_ zy5jk;+IJ-*05#?-{p^vA=9iY`#mGif;gz zQv(TQ67j z#>Cu@ci{NfWf+b>+pAuV;d+7;yRTTiV-B*E>F<5-;uLfp;@zEf;1hd2wp*B&jW|9L z=moospgxZL1G}qy$!qZXNI-`}+9~=~y%$kSzyJM1tN7}v2BgC^o6XML^!i%Xr9k|; zYS{n&_!gg^)}$SH_&9;2Zq|L|o&B64jXAQqXo=Nyn0Y*{h2`+(?Y5LcMhtj)ZOw3e zYU;=8Pi6f!AmOc3SSw$^?cmzx`vmeSOtbmL^%}mip5kO?Flxqt*RV9}Jv|EjeKp~V zr@%c%2tWHwUkBZt6qAjR&(8Y$eDqknYkSV;PjxXrf2SvY(U%DsXZ3hNo*?$X(A zVGS1{h4snK)m*LL){8QEZIAvk0xP$8#=$G)w_4dY1DQ37D>EZoQoM1Vior+LZ_ma} zT7=uC-4pZ5go5m-H!Nh_9{?d+u{CS$}%LU^aK*bAVJ3q=q3f862ea@er*1rUa~Zm=Jy7V_G_J>t3n+kP5-*x#*VIIh^X%U$9Ch;25j5 zvxu?<+s$3X-lU24T~1tYtH%1EL@Mp;KFiz>NWeWKQJ*cLCpOke%{dfDl z^M~Iw(hdMX21@2HF!gjq$p@lcJK*X#pM}}D`!V|T}xpcIXQV~Zf>sm9Js|FSm?PhoQfGZ zgU(l&fBo+h?f+wPYmNHWD#$p@B~xosb>Ll^qLqs0r#BMd;~r%0zrjMb9J)G%RQ!H+W8i=$wDr6!kJ1kb!MG~}{YqANQl$%fbTxB#%w}F%NY8`_ zKwdAovD<{=|I&ulE=Z(S=Ok zbJ)6T>9C<&?1~VDg(C1_A}+3lUt%wV3qra7dC-aYye>utdhfT4U(8~HL;Gk>;r@o2 z@)^GpB&j=|7I`?f;2P;jxC+srXm6(DPgjN!o4X3;2#es!QqyjK``H0dd7{URwf$89 zYU8wE{6JT_o0TgUXyUcJJ(e`Sf)O*I@}-d8Ci`< z`s-6EEzQN$cp5k4k%Yd2XLOCYp>#LcW;aJ`t zs2%_d@KQ=Gw}w>I->T!|S8hDRN_sOO>+)ApJFW0`4hdk2SK!>zrvfb_?}^?6a!j7- z)PH&sT(t_h`rlTqhokNzlWJG2n;fLYA2b~CiVb>+^2nKOw@;^G%h~-EKe=w_LeE3N zJCyWmg{Syr?+o#X5RP0=TVk4p zuQrx5n&J%I)PJXG;44-`cOY#ZfaWW9VO+R&NA5R(j*u2EPs7dPyX-apYSw#$?tCF zPMyCunDOzX;5e7m)!B&gO(eM#nZRda>OaHX)&QCAx@ZTj}U#)6`n z7HGy~%Y)(g8T<%JHtI29WHhjHjUtPTiVJ+lNEDdEHtjk3bj4t5HQ1FNa@O-1P{Vj( z&0hrMTtt*sTpL$l9a-404CMWs#F894kW?}Za7R@1r( zRUWMaz8{X(H9{1T_Wf@6;qIMrAidSF&)C@UTf%d@8tqTGfRMcU-&RN_6N1ByCT!IL z7m-MPy92k!QC{n9-(WNWurE%ikS8Af*MaHTmat1x!2Gk5d^XTA)}+6)6!%jXl5>yu8%?6L%l%N^I3I^2P36u$m>XJ2wU#jyLV>xat)f=#7`@2k|* z+!%oMifewT%N=;})ZZ_+$*$g=CgY?|D{VxZ11b*J3wOInaL8;KadNV``}<=D|J?fk zq506}yyZU1_{s0bc4jt{t>+x8}Vz<%LEn zwveoz$~Bwl@2ffuPe;WQxqIwK4PBLZ!*IIN%IrI-{HsploXI6J4VJM)hc{PtCA|l2 z*Fzh_b8{OL^u@hcKBD=1_ptZRefN}<4$kt${O*>-&yZ3v!;q{? z?Umh#rq6@MGdo*-FxXT7%-K!$j~`|>L0_WgH|)9Lrbf6T2PRnAAUbxzTwL*Z>^*Nl zo+04Zp}JC}7Q8-Amt7rhqQA37OYKY~o-4es&J`X>#=*LOl847@Ri2AI-aX!)?k4+o z8H2xnspfrqB6ggW+;4Qt74zxgvfDa%4z^+jE1sgUvl}k8J#A6YeI4lL+WcP9pDSHn zK0{;i=)?cxMob8@UIjM)9q!V<_tM8n$o#Ij|IUPuqs-v^WEIAhsD)>*@g#}XF*4nj zJ%*dtXXu@!0Kup-Am^!i{r{i6VCUltZq`0KKj$~A57vy2Db%SO?R=Y;VDvuIv%T7U zh65gw1>~b%RCfb{W)bVS=lgHUA+D1e7ufduI`;2MSP+ZUN#P*L_VyuVhWKKuPhEMW zm)~e_BC7-Y#$)-Xy0Ps8Y>=5juk3y&iFh@KGJpq(^Q(8OJE%-sezG4HNK?}8@cTft z)?SllDc*#VN`Pp~PETut&{nJM3*>kWS-QKj^0VovFS=`}R_9wSHYhcS7B``{c}{uJ z_ctT_Ko0+_=?HUz)|?|#>G)#r3u0p8@A{kq$zp8vhP_1OLrI+ApFe+wTwh-of*{%e3H=0hoC7*JDHuLN$K|QJIF^J&& zw?=?Q^=XT)3w6LBZrJMlg#~J4PcGVJ5&e_i6cEswp~g)))I>Y{_Acg5r@9y9H_y7n z&q?1zT5PIKVRLa>(pung8UY73thPu^BG>gPxda6s`IE^a1e_SnIi4I$n>O+U1Wfs$DAHz7K9SWmKLKwk2FC;S5R^^|$5L zL4g_1V!Q<_r8wuLP@4`^mr`LNzP(-DKpt|kB>22rMs;{T-7Bsn<6A84hWK@zYvIW^ z|2-dXF?-ZyHlX(d@o&%;Z&a+8j*B-tQL;!9O`Od*w^(pyI;eS&yWs>5;OIQB}#A}L7z7n*qGa)0lR5qSoAq9 z1zxoF3ayD@eU?yM2-k9g zobczw=V!M3R6j)-_K|a*Dlp+AY)@(jA=Bg+eOK#Z`7K0!^k^Lcp-=O5?)dTS>*p}u zQbqp*15{$&dgNuf*~+mI+LEWI3 zh{32#!!6{qU`{WxXb__yiDBM_HL7nN&r(Xgw13a(NB2q5dO)?J>Q5=x8 z2u4BUqbwD?-Hd)Z$Zk-r&Z{r;hMKow*uBHW$DCk%+wF&V(%@MUW>RSI>mzeg6y+$E1bxrC z*-#9atEgqSRQhe=9b*bV7jR?>mi5NNavU^|4CN+tTP*?uh)sV755|(_?h_l+Vd=zS zSPW*3ewB>GKSX_qEEPnv4WOw!ib_6(U&N&+MX6F8!7EJoe z>+?zM*B^*TEVSxgH+Mm%<*hDQ_5b4St)r^^*0xa)DUn7&8cC%D0qIz@G@>A#N_RK1 z=#-SMg@j0VBS=dl-QC@F=Hj>ae)s#Gf4(u!80Q}a)_UeM^PYEH_jTieSdUaH3-y5~ z^-cDjqCj4vaMv~+K2W-!8B{8yBM8-G7C480(I&UKOZ~1RG&D(vO&{B4feImp$FVoD z=?6B|^i|@EIt`E%RbDSU)&!%EiYuvT!><-~$KRj$&RH@+(g>Of0)JN}1Kd9hE7_-+ z$^^G7+z%XW9s>6TLx?dHN}2B?<0ef1uP?$l<|es0EZ~%J*;lUfT|2H)lh=~*kx_Q0EfNmreUk3d{gZ-()fOjULi~ZZW}To z-P|@%i?}iNU~UvZ=_j6oI3v};{CTy5on<155D!`T+-+MfCfvCzP;OAK>vcLq%|$@7 zmzFj|h^dhLBBs?=Lx<0>C%MVFrZ`ml!&LdrmByKbq=Hs4*GSoAm(o-pee{~SCToCW z3&=N+OwtxmQ`^1BWW5C58nNM~zzklj!y_08Vf zDxmSsc@{~WbfxW9=F&+4uI} z^N1ZD0qnyz0Gu@jAu-Gah15Q;W&RjcUh5Y+!#X*RZ8r?HVh3p zDTM`zoeJ5qf4Nc1qwcqtj6MHsAo#>-&ZT5+QoeyPOXpzl`1G;EcLx}im3Bmk~nYs5_K~5yK!+1bL?sE0vp~Ts8km(&1L3ilvlBR4mIfT-kc~R*Iin zu+Z)N#$@wN^!v_6_a!N~E4cgs01lRn?*_{Tt6XilFmX_&=4x&XG{{#X+uJG+VtxHe zg%=4~wOHD4gS|)4+dNNyWoJ6l);nw&AOG5CV;qnCy94pMI#xSASgwJncS8))QY%iR zYS%`6{WvDw&sk9)xio?~V!Dw~>ly%HnESH=AG!?1q!#RCN~kp2-zp%^VT~TIO$m#N zh{w6T9e4Ji2Rjp>3CwpGLTsgkj)$C&fr0+W$fwO}BDpM@p_{+Q6e|Yri?VPjoD`QrAu=@QF zYA+*T{zL%@^RqjC&*e>~={w*6fRgmZ8K&aWbyWvN;WNBIr&k;@{T6-entVQ07x0(4 z<|-vHUmn0GdN)~15aiQgG|9r!j6QB@1Hq{!Jbfx`=LCrf-u;?xdwhdBb0;5u*S0f# z4*!AC^JZIpKA+}=gj@P8v}P#9JUb4bkP3VdVR6=`a@fr^0l7@HkhWm{cnW&BMO{ zOE@i@30ZfDO8CM@1|N3RheGERU*{fTD!G7vCL)S!vKIAfx{YT=7Rmt?m-t4LQS%A} zT4`xP8$%DhfRit%X~{;C=KgnY+2oxW-$Pp>2yytSuxL@#;y*9yr5V42zXsNd#;3Dh z_Imn-v@{q*0)$S!Q8EsODErR@wLPaV2513`J~4IDiB%RJ>Tfp|k3E_(=2L4c$+u=;|2e5B1vQjVi=P)+* z(x>%aL;3E?`7Ir!5#ER;NGPO#8fyD3K$T~hhk-1g{;WO4OP#!`md2YTQ+DYNDkGJ+ z@%k4Q$)rgQ^=CAvTN9V*%_s!RKz3lfN4>u$i|4cT2l49XPg%9M^fIp-|I#> zG(=ZPx)&WOUcm$Sxw4U8oW0dl_`5*%auP~5og!j1d1SrfvpN6rr)Y9&h;r^kxx5S>MlfM6xp-*KM!tU6;WvqN^JP%$V*P!Z9f17CYOq%`;y7`|(&cU`esEih3Paq-5%OxjFqlXD2 zJU)L>--xL)aQZx$>uD=OI)9%&qR=F~SQ-X#ff&0`>4qc-|MtfrU;k`j>MDq%5EJ=K zd@qJ(rTRz#_Zw8~i*r~afC-UYM#nKt&CTsG4ac9wBi4rYQ4DKGWDVtb%-rwGd`VTM zfX#d#Y}~IOeE!*+aUDNd(C7VgUH5w)=KHkqS+D~c_oJDNM-(*Ov-BbUp|xm?3D`;h z#{&$*;5hz#;I#aBp-+f8LPHC$8B^&ykPYg{yPYr^APo#yK)_$D`g_TWH% z{Y#3VQ33VyUM52$UxBv*$$$ruBKk+pqEpd41`Zvdib8Sl{Qr?j5Hxh)2!cz~|7i}Y zcG0=pHL9@uJUBnc^SVvS-r#J2swyd){GWD$`p@1(h*eqrQBr9IAMK)7)nya^=c7vS zm?<2GV+!vH@V4z(D?ym5%=^R%MvZG`nBmeDF5ui7L7JXv+%X&k>+CyIE-4agGZw|dUh=H{x#0U;ZrG=Lu82K`b>m8;Yw3EfFya=CGejnN=pvy zQB>mvG|zlGj6JV%J)JxUxqTMS2SY|?lA2>jy?m07Y|vJ4ZWk3UY87)vXdeW~C$qvF z$nN%&Zv4&xGC;g%({>0o@AK9cVBra=32d(IvRz|YzCzM_OjEcOJsVAI*b#`>Tt_LCvj#IE;?IOi7>9T*3dlAyPJ4e$s-Z$cNw0)SR!=FGJ}{K|@< z_a%~>#sR_*p@>sgxa4IyWhJ^XcaRq%zCy#|5ovpOn|9&&3dMD%58zoAhXi3;kI+w~ zQih(=aD5#K>cU-+6Hu-63B_JS{bLxU7!lEg`RT2tlMJUcZ%{`N;c}Mh9|t{J>j!_p zCJX8xd$S$1nMYD9`Nc8+pqniD(c~~C*b|8~DWQz`r2*!y55xs&X1DREz0rxIU(*<^ zk|0VKmAx2J0lPB|z_BF%wKHfo409jL=ND5$Ke%umsEKqU#qusea7w?@fxU3UkcLPOr*B4eyWPDr{^i6RIMvai&W_*H6M5uu^0K zJgxtn`6%^Hx0I8MuDHnZ7P2Jx>CSs9p9&jY=#zu%Dk@0y3hX5FSn~J3{DQL$=`OZ; zD13enGy0cEp+QzKpXw?zv(5kz)S-Jd!H~h04)VR_2HN|fx;0vDxyh})teJkNlPNth zNHH$Yo(EEj<>ai4mrC%N(0NdVc4|6iN8IJsT;>xsKTjnQ+)1jU;9>LUhlm?9NZTgQ zC`tTd+X|5~U67yDpKpu)wT^O^30R2Eo2^-;$aNrFD+#mnP)3}MkVKwP*)$U|%V0vxpHKl>W}s^UfLCrA0zh%{$DfRhjO!uBQ>Nktz$;}D7-ZAP<0CI8 zH*pN-xeUBSI9%&XF7ZOa?$-0d>wk6?7K0R+Wu<>4>Q|Mf`->m$Ej*;Tv&j0K zf@bp4m7bPa7`UU>x#`}*Y>MnoHb?th{ajX;Ydo$TNp!5_^BEW)Odb&=L4`Yj!gf$i zRr^KOF;X@eT=7myhF>>nMtUyfE`SYGflAyx#+6R5L3uXF$9I%5Ftzm@WsmSN&NtyT zB0v6tEQx)=1;5$HNK}6ydoUQX6t9md37z7B6z4a}Y)u`VG)&H9;jIvoOvdwQ+yVTI z&?edRZw2#goB1@_d*~|r7DJy)dLGt(k`p8tVWpsYfX{$K0tqtE|J`4Wp#73cP88lK za7v2r)BHxkCJ-9z9%le0o@YDj$lBOS6-oXu_Dm5e@xM181m8GuK8TI{jo4_`59_n7bUCGrUi*6Ny?$CwkK0abSR|I+&cw1O z*^njTCKb=3gEg5%RaM6sdkWx_8R(^y(R;z#qkv1N;ip@1KW$Dw1Rwu*YWnFZF{e*o zN)k3FID>kBhzYyy=hOxcq#P@nyWqH7z|R`q#-V!z{f5wT^GP2N2D;uxY+~3(pjN9OD~T7u8s9+zaBq#@BJ>o+PXNO(?rVH zhIm4C#pk3#s|Y=_`D8m2M+^fK8h^HhUPGo z?|Qm5Z3yWf!5%|G>)J{LD7*xkSi&NwW{AHeJRXxvB8}ZoPi9Oc;(H}{b8``7*7D$U zZlq$xq`$My+><0I8JSYKtAk*85b63#B)0Cb<39`9oeB^jp`_muKLr?OijYp9{c@%f zbmea91uium+AaPzul@5}IZ-blbr;Y0g~$PF!i#FJl3BG|&(^tD79q-W#}_2@+_7lY znjg8!JsY7ndZj0QU6*t^Ij~0`hop?Q1ergm& zH<3U0#_>P_NKue*vYT;g*kITTV`@jMtU611`BF!rX67edXneIGhX@29!{6O=><%WD z`0@`2qSktP$a$rKn-=V@d*$|(k`(FnlGPdEq9-|>L{J1g>F3nI4dcSg5%eA)KI;{+ zw>>^Z#n{4i&o-*ADFZsikDjA{mFkjXYK-Z)f@G3vS@G^p_#}h7h1W4Q{pAjonvR!% z8f*cOoopofco2pymJ0+bem>}}YalE+RC4HmfR8}^Ownz(eMklt#qOA2^{H}n=Ei)_U$Rbd;wUsl_ z%I(Y;xDk0sQ1LP`Ev}9_(WivkGAM*@^r-eq8n2PK@gzSMZw6r(U_J(3>*bA8qmRc+ zpS{l8CbcJ$bjT0*QYSv&<@;8L;x6K}Yj^woMcU~+55}DO+}eX`QGYYYXyE6WK~^4C zZm#-K{*q~kOr=N9LN-$HNnqF40V6F z@CS*9IDa7~be*JI+6{+JDi2AD)Z%&DGPO~*VAt?Y2<9)4ZW0>SmaX-Sx{Vg9_~EZ; zyf|MVE8uEq1rVJIs>{NiDEgb2MkHvi%zyP0Ab9fwgga-0FNgOH2U6ebJ;$EddQnve zK)PG|fKG_|-iDO`c^R!0XM4f-7r;Lw^fDgvGuw4z&CHe9_<;>HV`w?0Ge+;d2Q*hA z4>-{>?pLou?JpX-jx>G8$*|dUsmcCqrZ8?yQ%KGgdiob=>9~ zbanD3{XDvMK7h-7GmK}jP@@ufFFDWZ@o!F8XH5g)4$ay|JKa)?)_J-yCUEBuC6+tw zXqTI}D&9F@*E?NqrZwTx4#G`}I4h#-^k;LyG@vbZNjN*Sb0Oe>`CobhdrvjsWPcu< zSxWDO21p~|ss))fl?+goz(MRbT#OFAi0x#z*h z*|9Ik80MazKj+9P$jeWbD_B_-{YgtqEZs;=P0e&I=a7oujHgrKD%7U*z_Fj;M$h1v zYDa4OxdfQsHG>$T-6DV=zEF%jg|H+4{g2@8pw+&Vt+zB=P1uJ{K+{lm(fwhV#`vBb zdbr?yc@mR_g|)8pEF)ZxaF>0k+3_U>^M1kL+R@;HG&bJ&h^IcKxl7E1mu<{v$kZES zN`&!TYeW|gR6m7y@bjxwC;EdZL z)H}KB9iS=OV?+(45O%B(KlvEUn7L##)$PuuBP5v;pd%M zBz5~59dlvqOgRx}U`|kE%Y}wD?OgA`uHF^i&}_+pIqtRmG=zv5%P5|Um7%GX9f!Pf zh)DXQnoBppfabhUhg5p<3B>64(@l*UK}u{R2z2r==m!PYTq>+_^oJ^8oM`o@Kg1+s z&`qqbFagZuF~x@LP4ts&%{rTlVkdk1Y84k#d*Ov|>lnrq+>q*5O+8Y4PE_<5gws@O zST~F-k$!QaO%TFuYcv?ku}CrpxAA%!ImSjEU13DV31Tf~`W91#Y~G1Dg$L@OWHKS5 zjR0L^R@PY8+=tqN!eJfxJ&apkskEi`A{7cnE8}N!#=TM8>75;wgh|?CwpWh1o-^12 zA0AA`8%34xjVZvllpHhGIskWUlTqt{T_d%Hu@}pzD$n>X{O#1p`Oa0_=#H=LEp>Eu zvQU#?jp)mmEwDvCObvL=M5vPu*e>Dbdv!(8{`KdZA|8MHlfE6<$k6?ouUpt$TDXR0 z>YeaKBodJ-Hk7|fNGg7+A99iHIgO^2g%pfoxl>?V-ikC3&Mi+BK-I^Cdz*y2DOH-h zCx&i~;L#x!V2v{Hc?ZpS@sdcLqNPY9P~*Fbma)zzBWgQBUlI41aNKBkv33qC@x@lo zl&IEXjI<6V)6rbm!vf!B3;!0}H=Zk(l-sW!t@yPw?OR#U*=_v4V*qo^}4KQp|6!vt|J4@!g5DyM@Ab zz9@bK>gr%7q^^QDedTgxj8*7mflkxx$3n$I!DR!Nusy||tSV`Su~dm<9qw4c>`jr> zxis6I_7&AjBFiu=hUUXdT$yPjvGuW#5VI0LQWOsnmib@T-vQu!C7KCU@l@wX3FC5Q zZtzQV{jd}tF$1dKE_-{$6LkuaWGt_mYNNNK$ny{NXJB4GLLp9Wh}~V^kV5InH%6A` zi=rLb2MIk;37cK~m@S!vr+M3$-{oWDOOzJcI3X`hwmKeD+{M~@CPfvI3BztYG#J*r zGmF%;FK_RNHtcIoqYK`E{lH$A@B)-pLU3Fk_%6T=#5D$Pmf;JFJj9QnecqQ@Y41 z83|rt!fY&J;W^pn=XE6w%v}y@9lndhYEvl)1NO@*0S~y)!B1jsNb}qDopG9!5kZA# zW>P^7qfCL&RL8XAmUUyadd+ag?TYpvSvi16OA~QTSf2108(Vdh?!TpLlmHO1@CG7f zA*eBt+y7|~PqR~*07Q{Rxyzob#3Gs;J5N`>#$$_t zq8H((q}&D_5}Tq^fXj<{gz-|SY0BzoP-j1DcJLRwZYQ^_RKVn4Jd(d;7FSCVm#kWi z=AtwHLUdos84aKuq|)PymB^cM2Qj76Q=?N40<|!7&6NlvZD`dHYLqw_PT>Sd#QbY>2pAz2pHJ)(hOtpyz6O|bPGZu{0JDw_7e5BrqvFP`OZJfXlE1p?5JhNT%^Mys14jBA z!Qv~6Aa}Q1vJrH8>F(?AcY#0gZRV$zF1^{+oc3GkB`k<5Zcrv^-QW= zb;@0uV(eK5-j=rkisQ#VohsOr>?L6-J(*3AQT#C8)Ssk7 z!oxiZZhQ}Zm%?1R^x>@bE@8gCnmVaDH+Oq=jpuXZV_3-l}WI`7G2!N=oxGXwQ|fR_)|y@ zNKKC`YsQU|9QcJShi|{dO@3n-6}05{(#!u<^6{o+nYfoGYoKmNmiA?dcW)O&N!ZuBY2*7|FOy8)0+ z!ODpys04FXS*RdI<+W6lm1&ec*l0;T!Kp1Ss}H&xE1nT5XCMFBB^6g9$cEZw@uhH) z)yL>3;qnU8!vRc>SrSPO*{rb!#idtA>a8OQew?NKP*IdoZJz`zN9>r z6spt@>P6^$5V~sZIQ{h$dbm{Xz7%-F6a+gtoCoIC#5G7!P@kH>h|kP8cnv7QwdP`* zay_TGOTLUCwzPtKlf-v?x?ejasYn8Ae_1TZd8Dh8q6um{*9KzpH)T z2=RYZd#V>@gE^}4rxG=TEo_RbSns0+s}qwjg2UScjjC{UzRMQ|1v@}vy2_wjF{+Ev zpnpd4!k6M{TR58psg%piDu_@yPM46jKLwmUNS8_eVna=bi6|6$e&TDc;g)jx?6t8NOnbe`Ak5 z^(OK8ZT$4Xx427MDdL5|?MI6wTyt4S1a(mfYmu0sK`M7O!GhAzTb^Gg5IK!y;wsy9 zL%9X02pp#G7U{X}8X^>)m}d@D(`_^@2VHY5#(l;4RV&TsnI@ibFt$=W-6UAm6zOkI zVzczUgT$eG9Pwl2NOk+D##ZIn+fs|R-H4F!igLNj`7`7t%+DjNI;MAGUQq?_jLio= zTbym3PKoi^&N5UakIU>_jXqkFa7s*O`&5qvE^Wt8OK&)(Yfaj+8qP(KBLbHeVR#h| z*bcCRx*zLPbNsIcUV$8y$eKugRjEB5Yr4z$IWHoQpLPS7|q#raYw-Cn_ZB5$BGJ7AAB_O6-+BoMBUU=Evx?%hq1JVbl|5rr9uResz08Z*Vqd zJ0-Dg)A1!P{R+d)SU@*o3fpHSuS&1R0Wzl)5%aZVV2fbvdnn>zDhW5c1&=q-Wn!n! zemv<5+vVUf0GbyRN1UW7Pntd4v%Jb<*4rdSUKclN#~m5eE%nNmu4~>7 z{BII1j_b|@EBXv`HOmb9cG9YcmqX!N96RFzSe>}8xu50op9Xv$qYD*$v)0l$Yu5V9 zg)uu>H(hW9cPG5eX<{QZB8tw&-hQ&FL?dJEjKj&VMH*3<0l&1xxN#7D$qrMJ~Yj zYck=VaSP|ET`2S{EWL~wpS1h>7EI8l!G z+=#hSub-=Ugt+R3%U929#g?0Zkq4&@i#Pd)6fX;}C1Zq=fz#_X@b#df|FSae!3C>KYeG<(b|K_EFSJr9r8O9F%60X#0Vvj+;1C(cwSuSQ_bGTh zs3`DQPA@*_vkya0<>EQ1fu;?pX)wVu^gi!J#s@n!*!pgc*>xkL=ec1!+ZCPmtM|+9 zyeHpJ`29iekI^W009yG~{QxD+QYUhPjQY8p97O7`$#078DE`SLujCY=hqw@R!qj=R zE`~+t;Lz5Z86#Z4Z9}vJ=o8?}^qKYS`!?7d5j24ev65BapN!xuvN4THX9p7ExibaZsdu^f*=kH*Kp$z%s` z?4h={wkmlZ#s>7IU1^?woE+l(qkXN0?iFPhfk(2gI(RUzC=Dlu*)GeQ=A-c z6kx~Cm4Si1JK;-GAWzd^y}7s7@l9hRWFhvGzF*h~>a!&YU#{YvPhZM+Ua!mGp%TEU zQ39YW3pZpJ@u1o4B&4f?hg1vx$Kf6>UpG?vGofO|*N{S0f9=6%ocQgLM zc!^ZAcjrsb@?MVzxVma)K4u6wRGhBSI7Cj4a3?{VaF2{Iu>39}1Tly?q&WCIj+oL_ z`5FWDr#wxK^<;?wYCGR#rA1O1jR8n7cjTcM|68Q9r|bf7d73I87C}hS7w|k0m_OHC zH`7I0WD0bTibGnI3angG*@sw>!D(>#*OmQEJ@ZFFHd!4)H+qskg<- z6=ETB!!(C;0_5=niooKo+vqmLEl@4eNGw-1vgEJ|(VOflMKPZo@zfTJp}W(Wsu9ge zjeqek2A2hE#qG)|5*gvO0jiX`RqH@4l1I*yUo&!{0hK`yg_vWeK6^8%7FrP*bOpHL zX?th?MdaMVVb)y7LvLXVU#YiCuDCGx)HnQ>g%XQ|1%ex2|NciIO#HUwAxYeC!J?jv z4(TCVgpO>MrMU!x4&0u%&qgqN1=Wj1s*eaE@wn(}?fn{M?MA$BPg*1oqe5}J(T4o7 z%^O?2T@*G)qb^>n5DsN{UKr5z1V8A=7w^`i7+J~2zO*cBQqX_qHFdE?q}tTvMU#gS zL-KmQ3c2OG59U&}`9~WbgdB;f2X;z}Hw`1MS5t~AkCqK6Vr~TNXP&BJn{x}H*{mR} zdUg@&ZHpK;JuKd^h_jzUdd>PIwxtoFI}CU6@*F8P86)bLdE?@RaIgDG!Jvagj`_=e z!L0t3EUvqw3uD~etui>`jt!zdW>Yp;={|yIniS*X`++`6le^1LpHr8|h8&T_QS^lB z=U&0{FxwS119{?%TKBd5va;dHoRJ_ZX&&jT=I^YDU;QC{uSm~f>GfV6=#>L%&EW?G zk^a|$P+=ag89z8cu&Cov;A{GmCCP^{ZW{5xU~wnA_dYgeXTwJ8qRnFcIcoBuLBS|CjN^2E=b zcBP)8_fdE;C84`34?b z!=(8bCQUlFstm(cw$6|=X4;sEe&Z;_6(m+|MDBG-h0#+;|)%UL% z4T+Lji4tk&+}DUtNipPzK6mfJ?OrW_Xg)}{6tFumfaLZ?}0)UP?U`1 zU(aoVifUrhyzuz>&%vIH!!7hM)=1Y9%!=j0jPKK~=+fO(LVX8EUvFf5%bVm!w^=(Q zwj_sYbK5U-R(vV>TQgFPe&;;#1Lh=B@ z$kPs7lW`B-=%sgm>E$8WTV%F{95QjsJ$fX@Evr@drGB7*;DzU0RH4R@tyDlbCuTRa zy;Fy)un@Ke7~yu_bzO92g(5v#CCZSE;!B^;9rWUi;!CroCvXyqZxJ@7E^o<4JUL#= zdg8P4DGce6tkRDGamro1IEc_~9m5-Geb|Xn6N?0x3{d)%S zL?i*Wa@`TZ*?Go#t{38FPtX_O%@Ol3rnS~Tvab8K66*$sYDy^?8S%zXw{_;NoUw*+ zWB{M8wD89XiCfQa<>WCTcEVqCQs^-cDKq}FIIV(3K7Wd^H*Dp#rybj=s~;SmXgMOD z(m42?K7&Pbrza{3*uaJmk*i4}9MH7ZJGQ-$m-W%EGH1z)yU3K9u*Q392;Tfx)jhWRUwg5j~|zO z3DF+E4%xL8QiEP@RiVOkvIBb}Nbtuab8rJBg{SvInwZ~?>hz%>Y(eU$zy0395X?A@ z#A3!sa`cQWbo2`NBXrjKVX-!2-}&XPp}#OWIqlO(|L(6a(nF69)(yc_`^VQyDg#>~ z*8@Z?g;fSW?^h{H#53y>b?cicYLodhb-VDrOl*o|<>!NAC7YG6TwL{K!<>2O*kjPo&8dTbhtIgcgYc zV#YeN!klIMQBNb^Q98L%)|hRMG4^aW`d=oLlkVR|psWcCv6I$Pqb%dfD%Et@WLr|y z;L|^f4cZb#(~6I4-*a0RiWhFDTSkBg-rli`Uv?mPd1MUC7+hGHuj3j;!pO%VSBWtZ zqRCblB2>p})`2uDkrb2d2rkbHn(i1lgn9F#=^aFFxx0CTp|C5r={x(L6FE;cybTKV z?yu^oD*Jcu{CAj|YU3f@X0IBH{Z75cZ!nB0v3@Z0A^tAq{s7aQmn?2uK?uixK|OS* z5baJ;Q$~H5LQZi^uM$y^6DPE51MX?t*wC*i2FyLe>!_zl9=%J?Ka2&`AYCx95}sz< zKHsULk5GH$d1Xv*Nf8Q`^V(v8FCD=_hL4Ex?pLGA%`H!{rj~TOtnkM?jKek0@oSs5 zh`i#f=2e}JPFEA!i8;NaF%ltlX|nYy?Cr^xV;|q#si@lfbrp3YkKSI24fWAUYid|* zM>Fx_`)kYMEqC^F=qS2FwpSI#wOP`lC|Pl$3twDow1ab&-Ga@_g;#NJsj+g1!VBWY zkzreoXBEn*92nn5+1Fk=ussnSvW4>@y2Aftw^SZdi6h-p@jOh^sYdveb$dlWUN*o$ zf*lQLhe{EcbWVhXlPX5KJUb6B`)Gt4twd`((E9ZP4&61-V&J+o72^MBj*<;r<9O5~ z$O|?f`QI`+v8>>Z;dGA4&ws-;uQmwcOV5?r9PNFL=e9oh5ilH9htzhX-3+jbK?LD0 zJ9M~d29bK2j+7`+THi8o*641(y6}JMp&w^-GbA0*6P|#Qh&FTd(8!Mx8e{Ws0as+C zY%9h`2s;YAtppFa)m#3kK9ZK^-T;oAfCqG?el-7o{EB1)*#O{b^_X*V^;fvl?MXF0 z!RHA!&4r`Kk3GtYJj|AMm*6=%wKI{u%Fa|WQtkIjbXkNePx>26(#f+dkaZ~j2WIKz zP6LSQxchhF4C7kiW=(I}|;kX)37;E9*j-?=ex20;(!k=GWd;koNw_nJ$$6 z^lW+`YWNs#0))ZbgNP3M@OyMcM9up85SG zpWy$P!k?*{t@b@}gX@ttx9)t&8A2rVs0T@JRw(`m*lvEQ5Yi)MENM79Fxd)3^x`QI zY2uPk92W<$dXLK9<*cMWd)}_P2&`9H^FqzBQ$izfbU!-?MPgwMN^J+E^bwNI5MT%kczoYMX+Gkv2M z#`@I@=v_o`M}gs~5-Y0xL_4W?wghPEnSl>3S88(1HD(Y;cUudl!hi4bxotp;V+x-w zHbNwRbK&3ixeNEJFsZ#k8CVPOJvXg*Xd{=g%h8~KM|aw zng%sZie;sG>dpwXZL@aZ9%$q#0LHPp8)i5~YS(*G7t^AlvFE-^O@gY7a`T0(M?lEE zATk1n*K;*OAEhwP$1loDPAJquoq&&bNvzO9{BXZx17;{@M^JEFEA*Xs^s&TQ39 zaj)o0UU`xMC_yM4?dQ)g*0-?tD*J-R_of?#;Gi8UW*2Mw#yS_6E(MSC_ed0w z_?y=HS*%YC_;4vwUWXGO!UW5yxtO)EAL4+tO{Fbvpc0C;JXH<&peZE7j4|*zi28WT z=bHCe?WEDBv%Q3L^X-tT3C6F}$V2^zsizqwgBLbEL8oLqW>pQ9v|qvcx2st}!%*d( z#kx*&J^bGX@%9fA66WxmH;4e7d^?LtyV&MNv^0DX}i*WHc>J;utF#F3ND-O3roBn}r)60<&MRSELrrZiZ; zASM>lD#iM#C{#j9%C99)v!XI>-=aKb# z@P`9Hx)v`bUd@Jl`r)~MPQImy$gPpV{t=LL_L$JMf7C zq!|N4E7S7-Jpl!j;N2cqDFEn&LWhFJN(!lN%N_pRlM>3EhXXPF0;Ky-OtJxcZ$6(@ zcfR+__Kw)6HRb^0$O6xyfUWe#DZBWO^ILqLee$h?e^txJrPpBgi8`kO>40KtbA9_V zoPXv^*$egB+nv%Lwg{JB=6%#BNPs}zNHjK=U|JEZ)I7NM)k$oGrR|#U$UJh&8qCg~ z#{*wxLcsq_<^ZAvKM3bddE`X1P5{r^%VZTaDo)_Qj{NJ7Wo+#l*FHu>E(5c=p@MZMLqM6{j)7x|Lrojt~oDeN@7LOa@Lplo{(zmF~L+g!cpekY9 z8Srv!Y;EWk4r};Z^jP0{iY(%*jl~u2G*yA37ibWG%krQijyTqrFdWL^{bSFWHd9^3 zau_d)X!{KfSq!g#nD4|EUvfM8Zy8bm)O)D*2^wv>E>|TJ+O5TLkQp3_(u~pn7wn=u zlvLCq(P_5rCMhWl1?Osg;7les-(6D^Bz{Og{r6yc+EYY*hCJ; zI2I+Nz%&}nWZZhqvk^+(DVk=e3A-*eD)dIGe7J^54vIny@mv4O24X2XuL`Nw^~7{b zwnYT+E86|#FSeL#oXI{+m+egO{aIBt)*j8P%TU#;dHhqo;w5mpI{oF(xb+6y(8i!F zF-vTYiU5KK`pHM%mF#{rHabC@E##!iVMN-K=XXPi8*}~zorotsa#J_QZDP(m+{L#k z%G_}ngxYzc2L2m}KVgIr?9RbQ03w2+PastAvaFA~FB$jc_yJh3#Xo33|okbA` zVev{gO&%(xRyU$w){m`(SA_FYR}njLw!(z-U&g>8AHlfW$y<#4u;cyfz*lZ>N@~mY ze1X3FZqYq+M>!tF#A6nH)QTOf3_AkW1}IR#?vp;{i}dmYenjZ)A#|W#rU28 zVaf~GT5TP9^;O_8tcGEvhZ<|`JwS<3vC6L}c^{KHCqjjn?ps%`VziJ-0F zL^S*=lwR~UrLQ7j2;nO+?k{?6BEUen=B-b5?TS3^psm~yg~edP@q{ORMfh10>CmFu zBkO%oRJnn|^1D(9(x&fqBz}XdL$x46$5g*4ua7}Ox#j~@f_eFsVkJCOl|$>Zcg=@) zrm($m02(_$ONm6M;#3YoB97w!5Paw8e;9BRB9AotobiIVWFb7az3E*pZJ_A0c-Fu& z(rzT_O%dK@?{2agWlEjh@F7H6lZ*wd^-2rXZ5+?_7B*PV0)?VfIokkj zrqv)BSl2N0K%xq26lTIUVh zW3@RdGdH)pJd++kC=^7epi@kE0?(oOe^`6VxTv}=YV*G&eQeW z@@(#C&Ika}lkr(_)HV)d^;*li5X>-^78Gf0MpqcegHlvEOk}=>Y6$UZt8v^Q(NWX4{JY8$t}Rsy%*F}hG&;r{hO#>mV)iC zAKdsv`B3ph=F|qAQqPz*yGEv0*Veln_d3-Mq)o|0OgPafC!urD$GAh4v$SjjYtd=t zk?93@JqJ*Uc;4098&p^w@Cc3^x}8ERY5n#xMXBuzn3DN@T9wemK83-Fmqhi|Lb@P2 z1(hIhndd617YbHz&+r={3$tqIqXAVvDGapnD8wXEP=9`Da5=%V_`p8%=jb@`@3mh0 zd)*IvrKcvTiMK79oZe=qvZIE|_gj$%iu558tqEmb*)qnDdk{>YSZzD}>D7#)r;sC+ zYfJq=2-M+=&y(~NDI|NoJ5BrZ1;7E|Qx?-EM9YSSwANER`7@AU{5yeI9t#B>CSU5&4?Io` z%PAyl3dMdX08R;Vh)rmerE^X)yt61r64)PSV^c`^ovVpxi|sF9eo|b|dQcwDPIqEW zPFwZx&ZRrC7fTYUPWi^f0>4|mCnP_zhmzvM2){3ODy3U~RsIx>ib+Ifv>Hgr?2=LJ zcU%Z?eMw3+;>z~QezHl4)3a#Jlaf1SvhciZC)sN`j0vc7DJ~OzgI2ANd|otUXnP;K z5&wFYC?Ob@gZ|2Y%%=@&V^ph6!Q=OoF9q>)&R9=Vj~F2G`qTQ(ubfyTLDC4GH3EEu z2o-5x9>T`cB{yV(i#})6H>Sc=AdhCxDUVwPZHr&eWzv-{5|vgRnY9fh?)ADOYxJp5 zh)T9dyX4S!ad*G~+LG;@W?i$_R?@&r?31h(GxCR#dO$V}2JCFkYbmt!1!C8rIe{4o z7z=Kzz?~L8U(zbZn;Hz?GpbA9MJ96xpSX3tMyI9!x)+&rHC#nYNI+YKayR-~f;}3? z;e-AG&$zD73>dz=!W;rmuM8)>f=zXmaGy_JUPd@wx*q2=Eq}(p?U87T42!ETwy~c{ zFtFI&nv2+_0^-EV?yx9eF92d(R^UoUU^~Gn4j!lP(0i362~_w2c>KGDP&ABhdvc^Tzoz-Jz&JE;}|doc+(0$DG60 z91Qo|J07_JPNX>3Jz(1Z@w;U^UzDaP2s!TlME-#O-ygmf05?l6s$L6C!ftpDY}Ta6 z#r}``&$CA21|?-)_!Z9|I9zz=@MwdOyL;gX@uy~`XW1v{lxq?7SPcNLa_KTIbrldE zp9(^@w+4_i(-g(E@gU(ZcOK1rJPD3A?QG|-$US$-D-UYD^oi>T|j$KU^_ z`7`29fOLyLQEvycoK3fWBxeV02XKtE6W-u5`K-j4;6@URIl(poS7Bq%aHF4fgY31m z^keyV^=}fe@uWBXTthLxinclIhIk4J>OH0GN>xk;SQx7K5-gyjup{LZQQPYA?MHOY zuNKO%wp}jrH@KyMujTT=Kz065Y*P@VF6vvd*WI}J4|`*4LnxH8 zy*zb0{HqN~EbYqymx)3|7V&o}6)-*(ce9G&gCzi-8>>r(NW@Idh(*K@e2AN9 zW)wHljJeKvJE7ikFxmTJX~|fyM>@&5v9{ty23`B+*_+$B~8MeB5AD?r$J>^~1e7mSUN6Nn8 zH`FUxf@-xuf8w78I3o7}M+7~yzSq#E0rhjWP&-XzqVMzXM2KlHFvMeS9YrY8_rsFa%GRWOrT@w=C;%pQvBS@no&U@~f{BQ)rku7zfT z4+sh2rvF5jeO1GsaYNY;c-U4OiEKLN;8man@pH`;6_4Yr<{u%b81}HoR-((k$J2}j zsErf4N*#O!RC@ty803^nW9Tf7Vgrw03m1{kB8l~IFI{61%2I;%gRWu@>7Q(d+fd1# zPDBFvB!0pBpta^4@K|p>qiD8w!fndN1+Z|fLl{-WRTRF38A)tKno!u^tjzRL$~rLc z+CMkyU6d9|Eb?FUttK8~qpF&8c6HTebO3NM#t{J<5_{hw^{<8pQ28cm28Fe!$H!Ga zC4D3g&sHJZ_q#Xq#(vdX`t4Xf_vc#s;vb7r*Gz0<2!88YR7^v{?OVUM9&F3ZL2UL^ zBc8@9aA5q8#iZo)cFFTy>`mZ7~SN=yh6}0%kUk~UC;?*de>_4sQ&k@38VuL&X zyQnDyGXAQT0>Mpt;_@!Jb{Y8pTmYAHWNrm$|Cq|@8E(2FI&HSA`&0U78-I-J`P|!O zfY=O0XaEezNi3jDmjM(FK7pLq8GhLlAQ5r`2MB`!U zOD=)|t{j%G#@~+oHv4ZqleJlC%sU2jVlw&J$H2wJKOrNTKwE!|2Rn7l!2bgAktvz@ z;<^6QA8lS$<)|&)x*bLt!>iLgGz_WWU)&yS0?|qh%Sj<%VR_txf9Y*z<>a9BKng

    %!V(YberqR1*c>_*% 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ℑ-o=-oD~Zfm zm7kmct{Bv1a?}wFV~$ne3$mUqe_Qh2Rlq~eaZ0p{@d{F_%QYS?Kn9K`LI)()8vtQg zC(h^Rk24)AEka6L`{)hV`#5`?=y#cg9hPa}1`*72A)}hPy8YJdGXG3(qwlh0N0T$m zBW>igKAJBq=&7|<-YO^!Dj#*`!T7*^VI^2;E;&gMK7O;%U;2UjQ3K-E{K{3sA+>Aw zNKU@9%FKmVQ zvYCG(Ta#8Qe$*b4m34f4Vpjz_Ff3=kNz4K8aZ~x)Me#U@dQtxNUSH?`kg4Z8Iv!On z-=8RplL3sATarm(9m4?i0a4xrKPoP|u8iT^y*<*0`{Qg!| z7bu^4FyhgSy+Il)?m49Y9xPz1bSpwJFft42ozk#|9R9Mr6jfPHOdZ?gkFP0M7CbG( zWNfd>=>NESF4Nz6$rc~0&qUJ5jVp!rag=}7$Meaeg7I+rTQ^2yDmpil@u+^8_M|B2 z)C@y<#$0JNNNT|Qq-(oT0iQK3$JorN4t@Nz+u7`~kR5Q|yR-XP-}`gRMBESHXE8cD6xnqv$db)X%(NNo@eUtKe2Tq74iBp87wQPx9;(DBa-PVRs&y> z6Al>+%UxM<=oBM+6)%6TEb|;FumN|N+McKr?YA3J?i8APU*VN3A3;P-5a>XihHO`} zqGs7){a%hY`oXX*G)dkl>68^zY+})*S6dL#buEsVfDVp|XbBmB7scyKMg^#7B7~g$ zt+#YI;}{#EKr@WWX-HgAfwy9JlRI?XPl)tS;fPyI)X{ocCu>$E-@-V3Vn?sN(`hn% zp)td+rqaMi zvrkcx4x%wR3{mB?IFUyRQS+K@17sQhFZxmBika`

      -Z(Yc=<7EGoxE)L^WsW%Q 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

      s`&XV| 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 TfcBz{%z1OGGo`1l{q;WpLz*~i diff --git a/doc/doc_common/media/image3.png b/doc/doc_common/media/image3.png deleted file mode 100644 index 51035eddd81e7416c8f3334fda5d89b02e622b18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88768 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ν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 diff --git a/doc/doc_common/media/image4.png b/doc/doc_common/media/image4.png deleted file mode 100644 index 8fa3a7faff7053b8e1e91f03885b73c035ff2943..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37057 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 jss9Y+{*SlG1oqslIoFD!2N;M^DsXA3>#F6c+ diff --git a/doc/doc_common/media/image5.png b/doc/doc_common/media/image5.png deleted file mode 100644 index 278f00ab26624871f2112d7e812960585fbe717e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66593 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 o3p>zd;sRNv@g9H*>2X_b(2DcEL!6C>12@F0E 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 PfIk^2`RDo141NC(bU<5Q diff --git a/doc/doc_common/media/image7.png b/doc/doc_common/media/image7.png deleted file mode 100644 index 534b89abf4bdeb123b80684d7faa751f6bc4d1f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98313 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�l`XF`=uICiAw<6mA(~SzaOE!r=4J0{MXn({SJ2c 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

      (W*!0(b#un=TI%uM(uMj^(5`Sns- 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 diff --git a/doc/doc_common/plugins_architecture.rst b/doc/doc_common/plugins_architecture.rst index 083f8e7..cf23daa 100644 --- a/doc/doc_common/plugins_architecture.rst +++ b/doc/doc_common/plugins_architecture.rst @@ -12,11 +12,6 @@ which receive HLIs requests. The LL includes a C layer with C functions (wrappers) for calling the functions of the (C++) LL API located in the C++ layer of the LL. -.. figure:: ./doc_common/media/image1.png - :name: Figure 1 - - **Figure 1:** Layered AL architecture model - When calling an AL API function (``get()``/``get_slice()``, ``put()``/``put_slice()``), the HLI iterates over all nodes of the IDS where each visited node is either a scalar, or an array (with dimensions from 1 to 6) or an array @@ -52,15 +47,6 @@ plugins. It introduces new components: - The C++ plugins -From now on, the Low Level C wrappers call the Plugins API functions. -The LL API is remained unchanged. - -.. figure:: ./doc_common/media/image2.png - :name: Figure 2 - - **Figure 2:** Modified layered AL architecture model for plugins - orchestration - The C wrappers for plugins management ------------------------------------- @@ -68,25 +54,6 @@ The C wrappers for plugins management `Figure 3`_ displays the list of new C wrappers for plugins management and the new plugins API. The latter includes: -- functions for plugins management (registering and binding to a node) - -- functions which allow plugins to override the behavior of the LL data - access functions - -In the new AL plugin architecture, HLIs call the current C wrappers, which call -the new plugins API, which in turn call the plugins if they are registered and -bound to at least one node of the DD. For example, the -``al_begin_global_action(...)`` function calls the new plugins API -``beginGlobalActionPlugin(...)`` function of the plugins API. The functions -``al_read_data(...) and :code:``al_write_data(...)` delegate to the -``readDataSPlugin(...)`` and ``writeDataPlugin(...)`` plugins API -functions. - -.. figure:: ./doc_common/media/image3.png - :name: Figure 3 - - **Figure 3:** The new C wrappers for plugins management and the new plugins API - Since the plugins API functions located in the LL C++ layer are not accessible from the HLIs, the new C wrappers depicted in `Figure 3`_ allow for accessing some plugins API functions from HLIs. These functions are @@ -108,11 +75,6 @@ The Plugins API and the low level holder plugin class `Figure 4`_ depicts the ``LLplugin`` plugin holder class. -.. figure:: ./doc_common/media/image4.png - :name: Figure 4 - - **Figure 4:** The plugin holder class (``LLplugin``) - Plugin registration ~~~~~~~~~~~~~~~~~~~ @@ -245,11 +207,6 @@ operation through sequence diagrams. ``get()`` sequence diagram -------------------------- -.. figure:: ./doc_common/media/image5.png - :name: Figure 7 - - **Figure 7:** ``get()`` operation sequence diagram - `Figure 7`_ depicts an example of the ``get()`` operations sequence of a ``camera_ir`` IDS using the ``camera_ir`` plugin developed at WEST. The client code uses HLI operations to read data of a ``camera_ir`` IDS. In @@ -280,11 +237,6 @@ The ``put()`` sequence diagram (`Figure 8`_) is quite similar to the ``get()`` sequence diagram. The example uses the ``camera_ir_write`` plugin described later in this document. -.. figure:: ./doc_common/media/image6.png - :name: Figure 8 - - **Figure 8:** ``put()`` operation sequence diagram - Note that the wrapper ``al_begin_arraystruct_action(...)`` is called in this modified AL plugin architecture even if the corresponding array of structure (AOS) has a 0-shape (this is not true for the previous AL @@ -331,9 +283,3 @@ informations specified by the **readback_plugin_feature** interface are stored in the backend. These data are read during a ``get()``/``get_slice()`` operation and used to bind and execute the *readback* plugins. -.. figure:: ./doc_common/media/image7.png - :name: Figure 9 - - **Figure 9:** The ``provenance_plugin_feature``, ``readback_plugin_feature`` - and ``access_layer_base_plugin`` interfaces - diff --git a/doc/doc_common/templates/base.html b/doc/doc_common/templates/base.html deleted file mode 100644 index 0f8c7af..0000000 --- a/doc/doc_common/templates/base.html +++ /dev/null @@ -1,24 +0,0 @@ -{% extends "!base.html" %} - -{% block styles %} -{{ super() }} - -{% endblock %} - -{% block outdated %} - {% if is_develop %} - You're viewing a development version ({{ version }}). - {% else %} - You're viewing an older version ({{ version }}). - {% endif %} - - Click here to go to the documentation of the latest release. - -{% endblock %} \ No newline at end of file From d8a1d3d45af3c894cd84af9a76662e9b8941c034 Mon Sep 17 00:00:00 2001 From: prasad-sawantdesai Date: Thu, 5 Feb 2026 17:10:13 +0100 Subject: [PATCH 07/18] updated building_installing.rst --- doc/doc_common/building_installing.rst | 64 +++++++++++--------------- 1 file changed, 27 insertions(+), 37 deletions(-) diff --git a/doc/doc_common/building_installing.rst b/doc/doc_common/building_installing.rst index a5571fb..1793b94 100644 --- a/doc/doc_common/building_installing.rst +++ b/doc/doc_common/building_installing.rst @@ -1,12 +1,19 @@ Building and installing the Access Layer ======================================== -This page describes how to build and install the Access Layer. +This page describes how to build and install the Matlab Access Layer. -Documentation for developers wishing to contribute to the Access Layer can be found in +Documentation for developers wishing to contribute to the Matlab Access Layer can be found in the :ref:`Access Layer development guide`. Please refer to that guide if you wish to set up a development environment. +For more information about related components, see: + +- `IMAS Core Documentation `__ +- `IMAS Data Dictionary Documentation `__ + + + .. note:: For Windows-specific installation instructions, please refer to the @@ -23,7 +30,6 @@ To build the Access Layer you need: - Git - A C++11 compiler (tested with GCC and Intel compilers) - CMake (3.16 or newer) -- Saxon-HE XSLT processor - Boost C++ libraries (1.66 or newer) - PkgConfig @@ -41,18 +47,10 @@ The following dependencies are only required for some of the components: and add its support by adding the CMake switch `-DENABLE_CAPNP=ON` when configuring UDA. -- High Level Interfaces +- MATLAB High Level Interface - - All HLIs require the ``xsltproc`` program - - **C++ High Level Interface**: Blitz++ libraries - - **Fortran High Level Interface**: A fortran compiler, ideally with F2008 support - (tested with ``gfortran``, ``ifort`` and ``nagfor``) - - **Java High Level Interface**: Java Development Kit and Java Native Interface - (tested with Java versions 11, 17 and 21) - **MATLAB High Level Interface**: A working MATLAB installation (tested with version 2020b) - - **Python High Level Interface**: Python (version 3.8 or newer) with the pip - packages ``build``, ``cython`` and ``numpy`` installed. @@ -61,18 +59,19 @@ Standard environments: .. md-tab-set:: - .. md-tab-item:: SDCC ``intel-2020b`` + .. md-tab-item:: SDCC ``intel-2023b`` The following modules provide all the requirements when using the - ``intel-2020b`` toolchain: + ``intel-2023b`` toolchain: .. code-block:: bash - module load intel/2020b CMake/3.24.3-GCCcore-10.2.0 Saxon-HE/11.4-Java-11 \ - Boost/1.74.0-GCC-10.2.0 HDF5/1.10.7-iimpi-2020b \ - MDSplus/7.96.17-GCCcore-10.2.0 MDSplus-Java/7.96.17-GCCcore-10.2.0-Java-11 \ - UDA/2.7.4-GCCcore-10.2.0 Blitz++/1.0.2-GCCcore-10.2.0 \ - MATLAB/2020b-GCCcore-10.2.0-Java-11 SciPy-bundle/2020.11-intel-2020b + module load intel-compilers/2023.2.1 CMake/3.27.6-GCCcore-13.2.0 Saxon-HE/12.4-Java-21 \ + Boost/1.83.0-iimpi-2023b HDF5/1.14.3-iimpi-2023b \ + MDSplus/7.132.0-GCCcore-13.2.0 \ + UDA/2.8.1-iimpi-2023b Blitz++/1.0.2-GCCcore-13.2.0 \ + MATLAB/2023b-r5-GCCcore-13.2.0 SciPy-bundle/2023.11-intel-2023b \ + scikit-build-core/0.9.3-GCCcore-13.2.0 .. md-tab-item:: SDCC ``foss-2023b`` @@ -84,9 +83,9 @@ Standard environments: module load CMake/3.27.6-GCCcore-13.2.0 Saxon-HE/12.4-Java-21 \ Boost/1.83.0-GCC-13.2.0 HDF5/1.14.3-gompi-2023b \ MDSplus/7.132.0-GCCcore-13.2.0 \ - UDA/2.8.0-GCC-13.2.0 Blitz++/1.0.2-GCCcore-13.2.0 \ - MATLAB/2023b-r5 SciPy-bundle/2023.11-gfbf-2023b \ - build/1.0.3-foss-2023b + UDA/2.8.1-GCC-13.2.0 Blitz++/1.0.2-GCCcore-13.2.0 \ + MATLAB/2023b-r5-GCCcore-13.2.0 SciPy-bundle/2023.11-gfbf-2023b \ + build/1.0.3-foss-2023b scikit-build-core/0.9.3-GCCcore-13.2.0 .. admonition:: The MATLAB/2023b-r5 installation is lightly tweaked @@ -127,7 +126,7 @@ Standard environments: Building and installing a single High Level Interface ----------------------------------------------------- -This section explains how to install a single High Level Interface. Please make sure you +This section explains how to install a Matlab High Level Interface. Please make sure you have the :ref:`build prerequisites` installed. @@ -138,16 +137,8 @@ First you need to clone the repository of the High Level Interface you want to b .. code-block:: bash - # For the C++ HLI use: - git clone ssh://git@git.iter.org/imas/al-cpp.git - # For the Fortran HLI use: - git clone ssh://git@git.iter.org/imas/al-fortran.git - # For the Java HLI use: - git clone ssh://git@git.iter.org/imas/al-java.git # For the MATLAB HLI use: git clone ssh://git@git.iter.org/imas/al-matlab.git - # For the Python HLI use: - git clone ssh://git@git.iter.org/imas/al-python.git Configuration @@ -159,7 +150,7 @@ overview of configuration options. .. code-block:: bash - cd al-cpp # al-fortran, al-java, al-matlab or al-python + cd al-matlab # al-fortran, al-java, al-cpp or al-python cmake -B build -D CMAKE_INSTALL_PREFIX=$HOME/al-install -D OPTION1=VALUE1 -D OPTION2=VALUE2 [...] .. note:: @@ -169,8 +160,8 @@ overview of configuration options. - `imas-core (git@github.com:iterorganization/IMAS-Core.git) `__ - - `al-plugins (ssh://git@git.iter.org/imas/al-plugins.git) - `__ + - `al-plugins (https://github.com/iterorganization/al-plugins.git) + `__ - `imas-data-dictionary (git@github.com:iterorganization/IMAS-Data-Dictionary.git) `__ @@ -184,7 +175,7 @@ overview of configuration options. cmake -B build \ -D AL_CORE_GIT_REPOSITORY=git@github.com:iterorganization/IMAS-Core.git \ - -D AL_PLUGINS_GIT_REPOSITORY=https://git.iter.org/scm/imas/al-plugins.git \ + -D AL_PLUGINS_GIT_REPOSITORY=git@github.com:iterorganization/al-plugins.git \ -D DD_GIT_REPOSITORY=git@github.com:iterorganization/IMAS-Data-Dictionary.git If you use CMake 3.21 or newer, you can also use the ``https`` preset: @@ -202,7 +193,6 @@ You can instruct CMake to use compilers with the following environment variables - ``CC``: C compiler, for example ``gcc`` or ``icc``. - ``CXX``: C++ compiler, for example ``g++`` or ``icpc``. -- ``FC``: Fortran compiler, for example ``gfortran``, ``ifort`` or ``nagfor``. If you don't specify a compiler, CMake will take a default (usually from the Gnu Compiler Collection). @@ -291,7 +281,7 @@ Configuration options AL_CORE_GIT_REPOSITORY: git@github.com:iterorganization/IMAS-Core.git AL_CORE_VERSION: main - AL_PLUGINS_GIT_REPOSITORY: ssh://git@git.iter.org/imas/al-plugins.git + AL_PLUGINS_GIT_REPOSITORY: git@github.com:iterorganization/al-plugins.git AL_PLUGINS_VERSION: main DD_GIT_REPOSITORY: git@github.com:iterorganization/IMAS-Data-Dictionary.git From aff446497c397adbc1b2d9d6ca36134ac7192e8e Mon Sep 17 00:00:00 2001 From: prasad-sawantdesai Date: Thu, 5 Feb 2026 18:09:11 +0100 Subject: [PATCH 08/18] updated documentation --- doc/conf.rst | 1 - doc/doc_common/conf.rst | 141 ---- doc/doc_common/deploy.ps1 | 95 --- doc/doc_common/dev_guide.rst | 129 +--- doc/doc_common/getting_started.rst | 178 +++++ doc/doc_common/identifiers.rst | 34 +- doc/doc_common/imas.rst | 24 +- doc/doc_common/imas_uri.rst | 265 +------ doc/doc_common/plugins.rst | 75 -- doc/doc_common/plugins_architecture.rst | 285 ------- doc/doc_common/plugins_examples.rst | 958 ------------------------ doc/doc_common/requirements.txt | 6 - doc/doc_common/using_al.rst | 19 +- doc/index.rst | 2 +- 14 files changed, 246 insertions(+), 1966 deletions(-) delete mode 100644 doc/conf.rst delete mode 100644 doc/doc_common/conf.rst delete mode 100644 doc/doc_common/deploy.ps1 create mode 100644 doc/doc_common/getting_started.rst delete mode 100644 doc/doc_common/plugins.rst delete mode 100644 doc/doc_common/plugins_architecture.rst delete mode 100644 doc/doc_common/plugins_examples.rst diff --git a/doc/conf.rst b/doc/conf.rst deleted file mode 100644 index 59227f5..0000000 --- a/doc/conf.rst +++ /dev/null @@ -1 +0,0 @@ -.. include:: ./doc_common/conf.rst diff --git a/doc/doc_common/conf.rst b/doc/doc_common/conf.rst deleted file mode 100644 index 1959f35..0000000 --- a/doc/doc_common/conf.rst +++ /dev/null @@ -1,141 +0,0 @@ -Configuring the Access Layer -============================ - -Some functionality of the Access Layer can be configured through enironment -variables. This page provides an overview of the available options. - - -Environment variables controlling HLI behaviour ------------------------------------------------ - -``IMAS_AL_DEFAULT_BACKEND`` [#backend_env]_ - Specify which backend to use by default with open/create methods that do not - pass this information as an argument. Values for this environment - variable correspond to the targeted backend ID, see below table. If not - specified, the MDS+ backend is the default. - - .. csv-table:: Backend IDs - :header-rows: 1 - - Backend, Backend ID - :ref:`ASCII `, 11 - :ref:`MDSplus `, 12 - :ref:`HDF5 `, 13 - :ref:`Memory `, 14 - :ref:`UDA `, 15 - - -``IMAS_AL_FALLBACK_BACKEND`` [#backend_env]_ - Specify a fallback backend to be tried if opening the given data-entry was - not successful with the primary/default backend. Values for this environment - variable correspond to the targeted backend ID, see above table. If not - specified, no secondary attempt will be made. This does not have any effect - on calls to create new dataentries. - - -``IMAS_AL_DISABLE_OBSOLESCENT_WARNING`` - Since version 4.10.0, all interfaces print warnings when putting an IDS that - contains data in fields marked as `obsolescent` in the DD. Setting this - variable to ``1`` disables these printouts. - - -``IMAS_AL_DISABLE_VALIDATE`` - Set this environment variable to ``1`` to disable the automatic run of :ref:`IDS - validation` when doing a ``put`` or ``put_slice``. - - -.. [#backend_env] These environment variables are not applicable when using - :ref:`Data Entry URIs`, which explicitly specify the backend. Also not applicable - in the Python HLI. - - -Environment variables controlling access layer plugins ------------------------------------------------------- - -``IMAS_AL_ENABLE_PLUGINS`` - Execution of C++ plugins in AL5 is a new feature which can be tested by - users who are interested in. It's currently an experimental feature which is - disabled by default. - - When the plugins framework is disabled: - - - Low level plugins registering/search functions are disabled. - - The behavior of writing data for nodes with default values is the same - that AL4. HLI write requests for these `empty` nodes are not sent to the - LL. - - When the plugins framework is enabled: - - - Low level plugins registering/search functions are enabled. - - The behavior of writing data for nodes with default values differs from - AL4. HLI write requests for these `empty` nodes are sent to the LL - allowing eventually to execute low level C++ plugins bound to these nodes - whose content can be handled by these plugins. - - To enable the plugins framework, set the global environment variable - ``IMAS_AL_ENABLE_PLUGINS`` before executing the access layer: - - .. code-block:: bash - - export IMAS_AL_ENABLE_PLUGINS=TRUE - - -Backend specific environment variables --------------------------------------- - - -``HDF5_BACKEND_READ_CACHE`` [#uri_precedence]_ - Specify the size of the read cache in MB (default is 5). It may improve - reading performance at the cost of increased memory consumption. Obtained - performance and best size of cache is heavily depending on the data. - - -``HDF5_BACKEND_WRITE_CACHE`` [#uri_precedence]_ - Specify the size of the write cache in MB (default is 5). It may improve - writing performance at the cost of increased memory consumption. Obtained - performance and best size of cache is heavily depending on the data. - - -.. [#uri_precedence] These settings can also be configured in the IMAS URI, see - :ref:`Query keys specific for the HDF5 backend`. The URI provided settings - will be used if both are present. - - -``IMAS_AL_SERIALIZER_TMP_DIR`` - Specify the path to storing temporary data. If it is not set, the default - location `/dev/shm/` or the current working directory will be chosen. - - - -UDA client configuration to reach the server at ITER ----------------------------------------------------- - -``UDA_HOST=uda.iter.org`` [#uda_uri]_ - If set, all queries with the UDA backend will be directed at the ITER UDA - server `uda.iter.org`, unless directly specified in the Access Layer's URI. - -``UDA_PORT=56565`` [#uda_uri]_ - If set, all queries will be directed to the port `56565` of the selected UDA - server, unless directly specified in the Access Layer's URI. - - - The ITER UDA server uses SSL authentication through a Personal Key Infrastructure - (PKI). You can download your PKI certificate at `pkiuda.iter.org`. Extract the - obtained `bundle.zip` in a folder in which only you have read permission (e.g. - `$HOME/.uda`). Then set the following environment variables: - - .. code-block:: bash - - export UDA_CLIENT_SSL_KEY=$HOME/.uda/private.key - export UDA_CLIENT_CA_SSL_CERT=$HOME/.uda/ca-server-certificate.pem - export UDA_CLIENT_SSL_CERT=$HOME/.uda/certificate.pem - export UDA_CLIENT_SSL_AUTHENTICATE=1 - - Do the same on all the systems from which you want to access ITER's UDA server. - - -.. [#uda_uri] An Access Layer URI of the form - `imas:uda?path=;backend=` will only work if - `UDA_HOST` and `UDA_PORT` environment variables are set. If not, the information - needs to be directly passed in the URI, as - `imas://:/uda?path=;backend=`. diff --git a/doc/doc_common/deploy.ps1 b/doc/doc_common/deploy.ps1 deleted file mode 100644 index 19fe159..0000000 --- a/doc/doc_common/deploy.ps1 +++ /dev/null @@ -1,95 +0,0 @@ -# Stop when any command fails -$ErrorActionPreference = "Stop" -# Enable debug output -$DebugPreference = "Continue" - -$sharepoint_root = "\\sharepoint.iter.org@SSL\departments\POP\CM\IMDesign\Code Documentation\ACCESS-LAYER-doc" -$root_url = "https://sharepoint.iter.org/departments/POP/CM/IMDesign/Code%20Documentation/ACCESS-LAYER-doc" -$version = "##VERSION##" - -Net use X: $sharepoint_root - -foreach ($hli in $("cpp", "fortran", "java", "matlab", "python")) { - $deploy_folder = "${sharepoint_root}\${hli}\${version}" - Write-Debug "Deploying to folder: $deploy_folder" - - New-Item -ItemType Directory -Path $deploy_folder -Force - Copy-Item -Path ".\${hli}_html\*" -Destination $deploy_folder -Recurse -Force - - # Generate versions.js - $latest = "IDM" - $latest_version = [version]"0.0" - $latest_url = "https://user.iter.org/default.aspx?uid=YSQENW" - - $versions = New-Object System.Collections.Generic.List[string] - Get-ChildItem -Path "${sharepoint_root}\${hli}" -Directory -Name | Foreach-Object { - try { - $as_version = [version]$_ - if ($as_version -gt $latest_version) { - $latest_version = $as_version - $latest = $_ - $latest_url = "${root_url}/${hli}/${_}/index.html" - } - } catch [System.InvalidCastException] { - sleep 0.01 - Write-Debug "Could not convert $_ to a [version]. Ignoring for version comparisons" - } - } - # Generate the versions.js file for use by the sphinx-immaterial version - # switcher. See - # https://jbms.github.io/sphinx-immaterial/customization.html#version-dropdown - # - # Notes: - # - The "version" item is used for generating the URL. Since sharepoint - # doesn't automatically forward to `index.html`, we add it manually. We - # also need to include a pound (#) because sphinx-immaterial will add an - # additional `/` to the url which must be ignored by the sharepoint - # server. - # - The "title" is just the folder name (dev, or MAJOR.MINOR release) - # - Aliases are used to check if the current documentation page is the - # latest release yes or no. - # - The latest release will get the alias "latest" - # - We always include the folder name. This is required due to the way - # that sphinx-immaterial checks which version the current page is for. - # This is checked (in javascript) by iterating over all versions.js - # entries and selecting the one which matches: - # - $redirect_url == $base_url - # - or $base_url / .. / $alias matches for any alias in aliases - # The redirect_url is constructed from the version, but that will - # include a "/index.html#" so doesn't match the $base_url. By - # including an alias with the folder name we can still let this - # algorithm succeed. - Get-ChildItem -Path "${sharepoint_root}\${hli}" -Directory -Name | Foreach-Object { - $aliases = "[`"$_`"]" - if ($_ -eq $latest) { - $aliases = "[`"$_`", `"latest`"]" - } - $versions.Add(" {`"version`": `"${_}/index.html#`", `"title`": `"$_`", `"aliases`": $aliases}") - } - Write-Debug "Latest documentation version: $latest" - $versions_content = "[`n" + ($versions -Join ",`n") + "`n]" - - # Deploy versions.js - Set-Content -Path "${sharepoint_root}\${hli}\versions.json" -Value $versions_content - Set-Content -Path "${sharepoint_root}\${hli}\versions.js" -Value $versions_content - - # Deploy redirect html page - $latest_html_content = " - - - - - - - -

      If this page does not refresh automatically, then please direct your browser to - our latest docs. -

      - -" - Set-Content -Path "${sharepoint_root}\${hli}\latest.html" -Value $latest_html_content - - Get-ChildItem -Path "${sharepoint_root}\${hli}" -} - -Net use X: /delete \ No newline at end of file diff --git a/doc/doc_common/dev_guide.rst b/doc/doc_common/dev_guide.rst index d826b79..8816ae2 100644 --- a/doc/doc_common/dev_guide.rst +++ b/doc/doc_common/dev_guide.rst @@ -19,22 +19,9 @@ repositories: Layer plugins. - Traditional (code-generated) High Level Interfaces - - `al-cpp `__: C++ HLI - - `al-fortran `__: - Fortran HLI - - `al-java `__: Java HLI - `al-matlab `__: MATLAB HLI - - `al-python `__: - Python HLI -- Non-generated code HLIs. The following High Level Interfaces load the Data - Dictionary definitions at runtime - - - `IMASPy `__: alternative - Python HLI - - `al-hdc `__: alternative - HLI based on the HDC (Hierarchical Data Containers) library The documentation on this page covers everything except the Non-generated HLIs, those are documented in their own projects. @@ -43,13 +30,6 @@ are documented in their own projects. Development environment ----------------------- -.. note:: - - This is the first iteration of the development process after the Access Layer split. - The process is not set in stone or sacred. Please suggest improvements to the - development flow based on your experience, if you feel the process the can be - streamlined. - See the :ref:`build prerequisites` section for an overview of modules you need to load when on SDCC or packages to install when using Ubuntu 22.04. @@ -62,11 +42,7 @@ folder is not important). al-dev/ # Feel free to name this folder however you want ├── al-core/ ├── al-plugins/ # Optional - ├── al-cpp/ # Optional - ├── al-fortran/ # Optional - ├── al-java/ # Optional - ├── al-matlab/ # Optional - ├── al-python/ # Optional + ├── al-matlab/ └── data-dictionary/ Then, when you configure a project for building (see :ref:`Configuration`), set the @@ -135,9 +111,7 @@ The ``FetchContent`` CMake module for making :ref:`dependencies from other repos Documentation overview ---------------------- -The documentation is generated with Sphinx. Because the documentation of each HLI -depends on the contents of the ``al-plugins`` and ``al-core`` repositories, it is -configured with CMake. For more information on Sphinx, see the `Sphinx docs +The documentation is generated with Sphinx. For more information on Sphinx, see the `Sphinx docs `__ and the `documentation of the theme (sphinx-immaterial) that we're using `__. @@ -153,88 +127,53 @@ Building the documentation '''''''''''''''''''''''''' Use the option ``-D AL_HLI_DOCS`` to enable building documentation. This will create a -target ``al--docs``, e.g. ``al-python-docs`` that will only build the +target ``al--docs``, e.g. ``al-matlab-docs`` that will only build the documentation. You could also use ``-D AL_DOCS_ONLY`` to only build the documentation, and nothing else. .. code-block:: console :caption: Example: building the documentation for the Python HLI - al-dev$ cd al-python - al-python$ # Configure cmake to only create the documentation: - al-python$ cmake -B build -D AL_HLI_DOCS -D AL_DOCS_ONLY + al-dev$ cd al-matlab + al-matlab$ # Configure cmake to only create the documentation: + al-matlab$ cmake -B build -D AL_HLI_DOCS -D AL_DOCS_ONLY [...] - al-python$ make -C build al-python-docs + al-matlab$ make -C build al-matlab-docs [...] -CI and deployment overview --------------------------- - -Main CI plans. These plans execute the script ``ci/build_and_test.sh`` in each of the -repositories. This allows for easy reproduction of the CI plans on SDCC: just execute -``bash ci/build_and_test.sh`` in a clone of the repository. - -- `AL-Core `__ tests building the Access - Layer core. Note that there are no unit tests in this repository, the CI plan - only checks that the AL can be built successfully. -- `AL-Cpp `__ builds and tests the C++ HLI. -- `AL-Fortran `__ builds and tests the Fortran - HLI. - - .. note:: - There are three Jobs inside this plan. One uses the GCC compilers, one uses the - Intel compilers and the third uses the NAGfor Fortran compiler. - - All three execute ``ci/build_and_test.sh``, but some set the ``CC``, ``CXX`` and - ``FC`` environment variables to select the compiler. - -- `AL-Java `__ builds and tests the Java HLI. -- `AL-Matlab `__ builds and tests the Matlab HLI. -- `AL-Python `__ builds and tests the Python HLI. - -Documentation CI plan: - -- `Access Layer Doc `__ builds the AL - documentation for all HLIs (only on the ``main`` and ``develop`` branches). The - output of this CI plan is used to deploy the documentation to sharepoint with the - `Access-Layer doc deployment project - `__. - -Other CI plans: +GitHub Actions CI/CD pipeline +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -- `Data-Dictionary Dev `__ builds and tests all - HLIs (develop branch) with the Data Dictionary branch that triggered the build. +In addition to the ITER CI systems, the IMAS-Matlab repository uses `GitHub Actions +`__ for automated building and testing. The +workflow is defined in `.github/workflows/build-and-test.yml +`__. - This project is used to test the compatibility of new Data Dictionary developments - with the generated Access Layer HLIs. This CI plan is triggered for the develop - branches of the Data Dictionary, and with every PR in the Data-Dictionary - repository. +This workflow: - .. note:: - The Main CI plans use the last released Data Dictionary version for testing. +- **Triggers**: Automatically runs on pushes to ``main``, ``develop``, and ``feature/**`` branches, + on all pull requests to ``main`` and ``develop``, on release tags (``v*``), and can be triggered + manually via ``workflow_dispatch``. -- `IMAS AL DEV `__ builds development modules - for all components. These modules are published to SDCC by the `IMAS AL DEV Deploy - `__ - deployment project. +- **Platforms**: Currently tests on Ubuntu 24.04 with GCC 14 compiler and MATLAB R2023b. - These development modules can be used on SDCC as follows: +- **Build steps**: + + 1. Sets up Python 3.11 environment + 2. Installs MATLAB using GitHub's official MATLAB action + 3. Installs system dependencies (build-essential, cmake, pkg-config, etc.) + 4. Caches Boost and pip packages for faster builds + 5. Builds and optionally installs external dependencies (UDA, HDF5, etc.) + 6. Configures the project with CMake + 7. Compiles the code + 8. Runs tests if enabled - .. code-block:: bash - :caption: Development modules based on the Data Dictionary ``develop/3`` branch +- **Backends tested**: Currently enables the HDF5 backend while MDSplus and UDA + backends are disabled to simplify testing. - module use /work/imas/opt/bamboo_deploy/imas3-dev-modules/modules/all/ - # For intel: - module load IMAS/develop3-develop-intel-2020b - # For foss: - module load IMAS/develop3-develop-foss-2020b +- **Build artifacts**: The workflow checks that the code compiles successfully and + that all tests pass. Build logs are available in the GitHub Actions tab of the repository. - .. code-block:: bash - :caption: Development modules based on the Data Dictionary ``develop/4`` branch - - module use /work/imas/opt/bamboo_deploy/imas4-dev-modules/modules/all/ - # For intel: - module load IMAS/develop4-develop-intel-2020b - # For foss: - module load IMAS/develop4-develop-foss-2020b +You can monitor the status of builds and tests in the +`Actions `__ tab of the GitHub repository. diff --git a/doc/doc_common/getting_started.rst b/doc/doc_common/getting_started.rst new file mode 100644 index 0000000..8c2068e --- /dev/null +++ b/doc/doc_common/getting_started.rst @@ -0,0 +1,178 @@ +Getting Started with IMAS-MATLAB +================================= + +Welcome! This 5-minute guide will get you up and running with the IMAS MATLAB Access Layer. + +**What is IMAS-MATLAB?** + +The IMAS MATLAB Access Layer is a high-level interface that lets you load, manipulate, and store +data from ITER's Integrated Modeling and Analysis Suite (IMAS) directly in MATLAB. + + +1. Load the IMAS Module (2 min) +------------------------------- + +On the ITER SDCC (supercomputing cluster), make the Access Layer available: + +.. code-block:: bash + + module load IMAS + +To see available versions: + +.. code-block:: bash + + module avail IMAS + +If you have a local installation, source the environment file instead: + +.. code-block:: bash + + source /bin/al_env.sh + + +2. Open MATLAB and Connect to Data (1 min) +------------------------------------------- + +Start MATLAB and open a database entry using an IMAS URI. A URI tells the Access Layer +where your data is stored and in what format. + +.. code-block:: matlab + + % Open a database entry + uri = 'imas:hdf5?path=/path/to/data'; + ctx = imas_open(uri, 40); % 40 is the IMAS version + + if ctx < 0 + error('Unable to open database'); + end + +**What's an IMAS URI?** + +URIs follow the format: ``imas:backend?query_options`` + +For example: +- ``imas:hdf5?path=/path/to/data`` – Read from HDF5 files +- ``imas:mdsplus?path=./test_db`` – Read from MDSplus +- ``imas:uda?backend=...`` – Read from UDA backend + +Learn more: :ref:`Data entry URIs` + + +3. Load and Display Data (1 min) +-------------------------------- + +Fetch an Integrated Data Structure (IDS) from your database entry: + +.. code-block:: matlab + + % Load the magnetics IDS (occurrence 0) + magnetics = ids_get(ctx, 'magnetics'); + + % Explore the data + disp(magnetics.ids_properties); % Metadata + disp(magnetics.time); % Time points + disp(magnetics.flux_loop{1}.flux.data); % Access nested data + + +4. Modify and Store Data (1 min) +-------------------------------- + +You can create new data, modify existing data, and store it back: + +.. code-block:: matlab + + % Create a new IDS or modify existing one + equilibrium = ids_init('equilibrium'); + equilibrium.time = [0, 1, 2, 3]; + equilibrium.q_profile.value.data = [1, 2, 3, 4]; + + % Store it to the database + ids_put(ctx, 'equilibrium', equilibrium); + + +5. Clean Up +----------- + +Always close the database entry when you're done: + +.. code-block:: matlab + + imas_close(ctx); + + +Key Functions Reference +----------------------- + ++------------------------------+----------------------------------------------------+ +| Function | Purpose | ++==============================+====================================================+ +| ``imas_open(uri, version)`` | Open a database entry at the given URI | ++------------------------------+----------------------------------------------------+ +| ``imas_close(ctx)`` | Close the database entry | ++------------------------------+----------------------------------------------------+ +| ``ids_get(ctx, ids_name)`` | Load an entire IDS | ++------------------------------+----------------------------------------------------+ +| ``ids_put(ctx, ids_name, ids_obj)`` | Store an IDS to disk | ++------------------------------+----------------------------------------------------+ +| ``ids_init(ids_name)`` | Create and initialize a new IDS | ++------------------------------+----------------------------------------------------+ +| ``ids_get_slice(ctx, ids_name, time)`` | Load a specific time slice | ++------------------------------+----------------------------------------------------+ + + +Common Use Cases +---------------- + +**Load data and extract a single time slice:** + +.. code-block:: matlab + + % Use CLOSEST interpolation + data = ids_get_slice(ctx, 'magnetics', 2.5, 'CLOSEST'); + + +**Check if data exists:** + +.. code-block:: matlab + + if ids_isdefined(magnetics.flux_loop{1}.flux) + disp('Flux data is defined'); + end + + +**Access MATLAB examples:** + +The repository contains several example scripts in the ``examples/`` directory: +- ``test_get.m`` – Load and display data +- ``test_put.m`` – Store new data +- ``test_get_sample_magnetics.m`` – Practical magnetics data example + + +Next Steps +---------- + +- **Read more about IDSs**: :doc:`Use Interface Data Structures ` +- **Learn advanced loading/storing**: :doc:`Loading and storing IMAS data ` +- **Understand data storage**: :ref:`Data entry URIs` +- **Check the full API documentation**: See your installed MATLAB help or visit the + `IMAS Data Dictionary `__ + + +Troubleshooting +--------------- + +**"Unable to open pulse" error:** +- Check that your URI is correct and the data path exists +- Verify the IMAS version number (typically 40 or higher) +- Make sure the ``IMAS`` module is loaded + +**IDS not found:** +- Check the IDS name spelling (case-sensitive) +- Verify the data entry contains this IDS +- Use ``ids_isdefined()`` to check existence first + +**Need help?** +- Check the :doc:`Using the Access Layer ` guide +- Review complete API documentation in your MATLAB installation +- Consult the `IMAS Data Dictionary `__ diff --git a/doc/doc_common/identifiers.rst b/doc/doc_common/identifiers.rst index 69a86f1..8dfcf8e 100644 --- a/doc/doc_common/identifiers.rst +++ b/doc/doc_common/identifiers.rst @@ -1,21 +1,10 @@ Identifiers =========== -The "identifier" structure is used to provide an enumerated list of options for -defining, for example: +The "identifier" structure is used to provide an enumerated list of options. -- A particular coordinate system, such as Cartesian, cylindrical, or spherical. -- A particle, which may be either an electron, an ion, a neutral atom, a - molecule, a neutron, or a photon. -- Plasma heating may come from neutral beam injection, electron cyclotron - heating, ion cyclotron heating, lower hybrid heating, alpha particles. - -Identifiers are a list of possible valid labels. Each label has three -representations: - -1. An index (integer) -2. A name (short string) -3. A description (long string). +For a complete reference of all available identifiers, see the +`IMAS Data Dictionary Identifiers `__ documentation. .. csv-table:: Identifier examples (from part of the ``core_sources/source`` identifier) :header-rows: 1 @@ -27,28 +16,19 @@ representations: 5, IC, Sources from heating at the ion cyclotron range of frequencies 6, fusion, "Sources from fusion reactions, e.g. alpha particle heating" -The list of possible labels for a given identifier structure in the Data -Dictionary can be found in the |DD| documentation. - -The use of private indices or names in identifiers structure is discouraged, -since this would defeat the purpose of having a standard enumerated list. Please -create a `JIRA `_ tracker when you want to add a new -identifier value. - - Using the identifiers library ----------------------------- |identifiers_link_instructions| -Below examples illustrates how to use the identifiers in your |lang| programs. +Below examples illustrates how to use the identifiers in your Matlab programs. .. literalinclude:: code_samples/identifier_example1 - :caption: |lang| example 1: obtain identifier information of coordinate identifier ``phi`` + :caption: Matlab example 1: obtain identifier information of coordinate identifier ``phi`` .. literalinclude:: code_samples/identifier_example2 - :caption: |lang| example 2: Use the identifier library to fill the ``NBI`` label in the ``core_sources`` IDS + :caption: Matlab example 2: Use the identifier library to fill the ``NBI`` label in the ``core_sources`` IDS .. literalinclude:: code_samples/identifier_example3 - :caption: |lang| example 3: Use the identifier library to fill the type of coordinate system used in the ``equilibrium`` IDS + :caption: Matlab example 3: Use the identifier library to fill the type of coordinate system used in the ``equilibrium`` IDS diff --git a/doc/doc_common/imas.rst b/doc/doc_common/imas.rst index aa739fc..fb15396 100644 --- a/doc/doc_common/imas.rst +++ b/doc/doc_common/imas.rst @@ -1,28 +1,8 @@ IMAS overview ============= -IMAS is the Integrated Modeling and Analysis Suite of ITER. It consists of -numerous infrastructure components, physics components and tools. An up-to-date -overview of these can be found at ``_ (ITER -Organization account required). - -The IMAS core consists of: - -1. Standardized data structures for storing experimental and simulation data. -2. Infrastructure for storing and loading these data structures. - -The standardized data structures are defined in the |DD|. -The documentation for the Data Dictionary (DD) can be found there as well, for -example: - -- Which data structures (IDSs) exist -- What data is contained in these structures -- What units a data field has -- What are the coordinates belonging to a data field - -.. todo:: - - Add links to the HLI documentation pages. +IMAS is the Integrated Modeling and Analysis Suite of ITER. For more information, see the +`IMAS Data Dictionary Introduction `__. The Access Layer, of which you are currently reading the documentation, provides the libraries for working with these data structures, for example: diff --git a/doc/doc_common/imas_uri.rst b/doc/doc_common/imas_uri.rst index 891e76a..8c586e6 100644 --- a/doc/doc_common/imas_uri.rst +++ b/doc/doc_common/imas_uri.rst @@ -1,253 +1,34 @@ -Data entry URIs -=============== +IMAS Data Entry URIs +==================== -Data entry URIs specify where and how IMAS data is stored (or should be stored -to). When you :ref:`load or store IMAS data `, you -need to provide a data entry URI. +This documentation covers how to specify where and how IMAS data is stored using URIs. -This page documents the URI structure and the options that are supported. +For comprehensive details about IMAS Data Entry URIs and the URI scheme, please refer to the +official IMAS Data Dictionary documentation: +.. seealso:: + :title: IMAS URI and Data Entry Documentation -Data entry URI structure ------------------------- + - `Data-Entry and Occurrence `__ + - Explains what a data-entry is and the concept of occurrences in IMAS + + - `IMAS Access-Layer URI Scheme `__ + - Complete reference for the IMAS URI structure including: + + - Scheme, host, backend, query, and fragment components + - Backend types and their options + - Query parameters and keys + - URI examples and legacy identifiers -The general structure of an IMAS URI is the following, with optional elements -indicated with square brackets: +When you :ref:`load or store IMAS data `, you need to provide +a data entry URI according to these specifications. -.. code-block:: text - imas:[//host/]backend?query -Let's break down each of the components: - -1. ``imas:`` this part indicates that this is an IMAS URI -2. ``host`` when the data is located at another machine, you use this - section to indicate the address of that machine. See :ref:`UDA backend` for - further details. -3. ``backend`` select the Access Layer backend. See :ref:`Backends` for the - options. -4. ``query`` the query consists of ``key=value`` pairs, separated by a - semicolon ``;``. See :ref:`Query keys` for further details. - -.. - Commenting this out, as no backend currently supports URI fragments - - 5. ``fragment`` In order to identify a subset from a given data-entry a - ``fragment`` can be added to the URI. Such ``fragment``, which starts with a - hash ``#``, is optional and allows to identify a specific IDS, or a part of - an IDS. See :ref:`URI fragment` for further details. - - -Backends --------- - -Several backends exist for storing and loading IMAS data. Each backend uses a -different format for storing the data. .. note:: - Depending on local install choices, some backends may be unavailable in - your Access Layer installation. - - -Backend comparison -'''''''''''''''''' - -.. csv-table:: Comparison of backend functionality - :header-rows: 1 - :stub-columns: 1 - - , :ref:`HDF5 `, :ref:`MDSplus `, :ref:`UDA `, :ref:`Memory `, :ref:`ASCII `, :ref:`Flexbuffers ` - :ref:`get `, Yes, Yes, Yes, Yes, Yes, Yes [#fb_get]_ - :ref:`get_slice `, Yes, Yes, Yes, Yes, \-, \- - :ref:`put `, Yes, Yes, \-, Yes, Yes, Yes [#fb_put]_ - :ref:`put_slice `, Yes, Yes, \-, Yes, \-, \- - Persistent storage, Yes, Yes, Yes [#uda]_, \-, Yes [#ascii]_, \- - -.. [#uda] The UDA backend is read-only. -.. [#ascii] Suitable for tests and small data, but not recommended for large - datasets or long-term storage. -.. [#fb_get] Only when using ``OPEN_PULSE`` mode -.. [#fb_put] Only when not using ``OPEN_PULSE`` mode - - -HDF5 backend -'''''''''''' - -The HDF5 backend is identified by ``hdf5`` in the IMAS URI, and stores data in -the `hdf5 data format `_ - - -MDSplus backend -''''''''''''''' - -The MDSplus backend is identified by ``mdsplus`` in the IMAS URI. The data is -stored in the `MDSplus format `_. - -This backend imposes some limitations on the data that can be stored, see -`maxoccur` in the |DD| documentation. - -This backend has been around and stable for a longer time, so most older IMAS -data is stored in this format. - - -UDA backend -''''''''''' - -The UDA backend is used when a host is provided. `UDA (Universal Data Access) -`_ is the mechanism for contacting the server that -stores the data. - -A number of UDA plugins already exist for these, but their availability depends -on how UDA has been installed on the local cluster. Therefore it's recommended -that you contact the IMAS support team when you want to use this functionality. - -.. todo:: - - Provide a sample URI string - - -Memory backend -'''''''''''''' - -The memory backend is identified by ``memory`` in the IMAS URI. When storing or -loading IMAS data with this backend, the data is stored in-memory. This is -therefore not persistent. - -The memory backend can still be useful to transfer data between languages in the -same program (for example, storing an IDS in C++ and then loading it with the -Fortran HLI) or to :ref:`store a number of time slices ` and then :ref:`loading all time slices `. - - -ASCII backend -''''''''''''' - -The ASCII backend is identified by ``ascii`` in the IMAS URI. The ASCII backend -can be used to store IDS data in a plain-text human readable format. The -performance and size of the stored data is worse than the other backends, so -this is typically only used for debugging. - - -Flexbuffers backend -''''''''''''''''''' - -The Flexbuffers backend is identified by ``flexbuffers`` in the IMAS URI. The -Flexbuffers backend is used when (de)serializing IDSs with the -``FLEXBUFFERS_SERIALIZER_PROTOCOL``. It is optimized for (de)serialization speed and -therefore has very limited functionality. It is not intended to be used outside of IDS -serialization. - - -Query keys ----------- - -You can use query keys to indicate to the backend where the data is stored and -(optionally) set backend-specific configuration options. The following query -keys are currently recognized. - -.. note:: - - Query keys are case-sensitive and unknown query keys are silently ignored. - -``path`` [#mandatory]_ - Provide the path to the folder where the IMAS data is (or will be) stored. - Paths can be absolute (starting with a ``/`` on UNIX, or with a drive letter - on Windows) or relative to the current working directory. - - The backend manages how your IMAS data is stored within the folder. - - .. code-block:: text - :caption: URI examples using path - - imas:hdf5?path=/absolute/path/to/data - imas:hdf5?path=relative_path - -``user``, ``database``, ``version``, ``pulse``, ``run`` [#mandatory]_ - Use `legacy` (Access Layer version 4 and earlier) way to indicate where the - IMAS data is (or will be) stored. - - .. code-block:: text - :caption: URI example using legacy data identifiers - - imas:mdsplus?user=public;pulse=131024;run=41;database=ITER;version=3 - - In Access Layer version 5.0.0 and earlier use key ``shot`` instead of ``pulse``. - - .. code-block:: text - :caption: URI example using legacy data identifiers in Access Layer 5.0.0 and earlier. - - imas:mdsplus?user=public;shot=131024;run=41;database=ITER;version=3 - - - -.. [#mandatory] Either ``path`` or `all` of the legacy query keys must be - provided. - - -Query keys specific for the HDF5 backend -'''''''''''''''''''''''''''''''''''''''' - -The :ref:`HDF5 backend` also recognizes these backend-specific query keys. - -``hdf5_compression`` - Data compression is enabled by default. Set ``hdf5_compression=no`` or - ``hdf5_compression=n`` to disable data compression. - -``hdf5_write_buffering`` - During a `put` operation, 0D and 1D buffers are first - stored in memory. Buffers are flushed at the end of the put. - - This feature is enabled by default. Set ``hdf5_write_buffering=no`` or - ``hdf5_write_buffering=n`` to disable write buffering. - -``write_cache_option`` - Set the size of the HDF5 chunk cache used during chunked datasets write - operations. Default to 100x1024x1024 bytes (100 MiB). - -``read_cache_option`` - Set the size of the HDF5 chunk cache used during chunked datasets read - operations. Default to 5x1024x1024 bytes (5 MiB). - -``open_read_only`` - Open master file and IDSs files in read only if ``open_read_only=yes`` or - ``open_read_only=y``, overwriting the files access modes default behavior (see IMAS-5274 for an example use-case). - -``hdf5_debug`` - HDF5 debug output is disabled by default. Set ``hdf5_debug=yes`` or - ``hdf5_debug=y`` to enable HDF5 debug output. - - -Query keys specific for the ASCII backend -''''''''''''''''''''''''''''''''''''''''' - -The :ref:`ASCII backend` also recognizes these backend-specific query keys. - -``filename`` - Specify the exact filename in which the IDS data will be stored, instead - of the default `.ids`. - - -Query keys specific for the UDA backend -''''''''''''''''''''''''''''''''''''''' - -The :ref:`UDA backend` also recognizes these backend-specific query keys. - -``verbose`` - UDA verbosity is disabled by default. Set ``verbose=1`` to obtain - more information and ease debugging. - -``cache_mode`` - UDA cache_mode is ``ids`` by default. Set ``cache_mode=none``or ``cache_mode=ids`` to specify the mode of caching. - - ``none``: No caching is performed. - - ``ids``: Caches the entire IDS (Interface Data Structure). - -``fetch`` - UDA ``fetch`` is disabled by default. Set ``fetch=1`` to enable fetching - and downloading IDS files to the local ``local_cache`` directory. - -``local_cache`` - UDA ``local_cache`` is set to ``tmp/path_in_uri`` by default. This is used along with ``fetch=1`` in the query. - Set ``local_cache=/path/to/local/cache/directory`` and the download directory will be ``local_cache/path_in_uri``. - ``local_cache`` specifies the path to the local cache directory where IDSs will be downloaded. + For detailed information about all backends, query keys, and backend-specific options, + please refer to the `IMAS URI Scheme documentation + `__ + in the IMAS Data Dictionary. diff --git a/doc/doc_common/plugins.rst b/doc/doc_common/plugins.rst deleted file mode 100644 index f7b1acb..0000000 --- a/doc/doc_common/plugins.rst +++ /dev/null @@ -1,75 +0,0 @@ -=========================================== -Plugins framework for the IMAS access layer -=========================================== - -Plugins are C++ software components compiled in separate -libraries from the Access Layer (AL) library, which make use of them. Using a -modified Low Level architecture, we demonstrate that plugins satisfy many -use-cases requirements, providing new features available from all existing HLIs. -We describe the Access Layer plugins architecture and some plugins examples. - - - -Plugins offer the following advantages: - -- Developers write plugins in C++ and compile plugins separately from - the AL library, which discovers them at runtime, according to some - Data Dictionary-defined or user-defined plugins activation - directives. More precisely, the AL Low Level layer loads plugins and - calls them according to the previous directives. **Plugins provide - new features with common behavior between High Level - Interfaces**. There is no need for developing specific High Level - Interface (HLI) implementation of plugins features, **decreasing - therefore drastically development time**, **simplifying maintenance** - and **reducing the risk of potential bugs**. - -- Contributing also to **reduced time development**, code **plugin - compilation is fast** since plugins have no dependency on HLI - classes. The compilation time must be compared to the one required - for specific HLI code whose change may (depending on which source - file has been modified) trigger the full recompilation of the HLI - layer. - -- Features provided by a plugin behave the same in all HLIs with same - exceptions, same outputs, same bugs... **Users experience remains - unchanged** from one HLI to another. - -- Plugins source files are stored in separate repositories with - separate development lifecycles. Developers group plugins into - separate projects, improving **code management, lowering code - coupling** (plugins are not coupled, they only implement the plugin - interface described later) between AL components and **making clear - separation of features** provided by each plugin. - -- Plugins depend on the AL library, not the other way around. - Therefore, at development time, plugins developers do not need to - recompile the AL, which lowers time development. Moreover, in - production, upon new plugins release, no change are required to the - AL sources or to the AL installed binaries, **preventing AL updates - procedures and reducing AL deployment maintenance.** - -AL plugins provide many features available for all HLIs as for example: - -- **Creating fast C++ post processing** using low-level R/W data access - functions. Plugins have flexibility to run on-the-fly data - transformations such as decompression/compression, calibration, - filtering, ... - -- **Patching values from/to DD leaves** by overriding ``get()``/``put()`` - operations. An example is the unified NBC plugin (which overrides - the ``get()`` operation) which provides data format backward - compatibility. - -- **Displaying specific values** of DD leaves to users. Building - reports for some specific Interface Data Structure (IDS) nodes. - **Debugging**: developers check expected DD leaves values according - to some logic implemented in the plugin (for some specific - data/context). Plugins can display important warnings/infos to users - if necessary. - -- **Selecting partial data to speed up IDS writing/reading.** Let us - consider a partial read operation. Since a plugin has the control to - read data from any DD node, plugin logic allows reading few specific - nodes of an IDS and skip/ignore (large) nodes not required by the use - case. We will show later an example, which shows how to read only - some part of the data from an IDS, reducing IDS loading time. diff --git a/doc/doc_common/plugins_architecture.rst b/doc/doc_common/plugins_architecture.rst deleted file mode 100644 index cf23daa..0000000 --- a/doc/doc_common/plugins_architecture.rst +++ /dev/null @@ -1,285 +0,0 @@ -========================================= -Plugin implementation in the Access Layer -========================================= - - -Overview of the AL architecture before AL-plugins -================================================= - -`Figure 1`_ depicts the layered AL architecture model. It comprises -the upper High Level Interface (HLI) and the so-called Low Level (LL), -which receive HLIs requests. The LL includes a C layer with C functions -(wrappers) for calling the functions of the (C++) LL API located in the -C++ layer of the LL. - -When calling an AL API function (``get()``/``get_slice()``, ``put()``/``put_slice()``), -the HLI iterates over all nodes of the IDS where each visited node is -either a scalar, or an array (with dimensions from 1 to 6) or an array -of structures. - -Distinguishing Read and Write operations, we have two use-cases: - -- When calling ``get()``/``get_slice()``, the HLI calls the LL for each visited - node, passing the data contained in the node (scalar or array), the - parameters which define the dimension(s), the shape(s) of the data - and the identifier (path) of the node. Then the LL calls the backend, - which returns the data to the LL, which in turn returns the data - (allocated pointers) to the HLI. - -- When calling ``put()``/``put_slice()``, the HLI calls the LL for each node, - passing a pointer to the data to be written, the parameters which - define the dimension(s), the shape(s) of the data and the identifier - (path) of the node. Then the LL calls the backend, which writes the - data to some storage. - - -Modified AL architecture for plugins management and execution -============================================================= - -`Figure 2`_ depicts the modified AL architecture for enabling the use of -plugins. It introduces new components: - -- The C wrappers for plugins management - -- The plugins API - -- The plugin interface - -- The C++ plugins - - -The C wrappers for plugins management -------------------------------------- - -`Figure 3`_ displays the list of new C wrappers for plugins management and -the new plugins API. The latter includes: - -Since the plugins API functions located in the LL C++ layer are not -accessible from the HLIs, the new C wrappers depicted in `Figure 3`_ allow -for accessing some plugins API functions from HLIs. These functions are -mainly devoted to plugin registering and activation, features supported -by the plugins API described in the next section: - -- The ``al_register_plugin(...)`` wrapper (resp. - ``al_unregister_plugin(...)``) delegates to the dedicated C++ - ``registerPlugin(...)`` (resp. ``unregisterPlugin(...)``) function - from the plugins API. - -- The ``al_bind_plugin(...)`` wrapper (``al_unbind_plugin(...)``) - delegates to the dedicated C++ :code:`bindPlugin(...) (resp. - ``unbindPlugin(...)``) function from the plugins API. - - -The Plugins API and the low level holder plugin class ------------------------------------------------------ - -`Figure 4`_ depicts the ``LLplugin`` plugin holder class. - - -Plugin registration -~~~~~~~~~~~~~~~~~~~ - -Among the plugins API functions (`Figure 3`_), we find -``registerPlugin(plugin_name)`` (``unregisterPlugin(plugin_name)``) -which creates (resp. destroys) a plugin instance from a C++ class located in a -shared library (.so). The ``registerPlugin(...)`` function creates a -``LLplugin`` object for holding the plugin instance using the -``al_plugin`` pointer attribute defined in the ``LLplugin`` class (see -`Figure 4`_). The ``LLplugin`` object is then stored in a static map (named -````LLplugin``sStore``) of the ``LLplugin`` class. This map allows the -plugin framework to retrieve the plugin later using the name of the plugin as a -key (``plugin_name`` function argument). - - -Plugin activation -~~~~~~~~~~~~~~~~~ - -Once a plugin is registered, it is available from the plugins framework as long -as the AL process is running and as long as users have not called the -``unregister_plugin(...)`` C wrapper. However, during put/get operations, -the AL plugin framework will ignore a registered plugin not bound to any DD -node. To activate a plugin, an HLI code bounds the plugin to at least one -particular IDS node using the ``al_bind_plugin(...)`` wrapper. This function -updates the ``boundPlugins`` static map of the ``LLplugin`` class, adding the name -of the plugin to a list which is mapped to the identifier of the DD node (the -identifier is the path to the node). To disable a plugin, HLIs use the -``al_unbind_plugin(...)`` function which removes the plugin name from the -list hold by the ``boundPlugins`` map. - -Unregistering a plugin using ``al_unregister_plugin(plugin_name)`` will -remove the ``LLplugin`` object from the LL store ``LLpluginsStore`` and -destroy the underlying plugin instance. - - -Calling plugins from the Low Level -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -All plugins API functions in `Figure 3`_ (except functions for plugins -registering/activation) call plugins operations from the plugin -interface described in the next section during LL operations. For -example, the ``beginGlobalActionPlugin(...)`` function calls the -``begin_global_action(...)`` function of the plugin interface. More details -are provided in sequence diagrams presented in section :ref:`get() sequence -diagram` and :ref:`put() sequence diagram`. - - -The Access Layer plugin interface ---------------------------------- - -When creating a plugin, the plugin class has to inherit from the -``access_layer_plugin`` interface and implement each (pure virtual) -operation declared in this interface (see ``access_layer_plugin.h``). - -The ``begin_global_action(...)`` (resp. ``begin_slice_action(...)``) functions are -plugins operations called when the HLI calls ``al_begin_global_action(...)`` -(resp. ``al_begin_slice_action(...)``). These functions allow developers to -initialize the plugin before iteration of the IDS nodes performed by the -HLI. For example, during a slice operation using ``get_slice(...)`` or -``put_slice(...)``, the ``begin_slice_action(...)`` allows to store in the plugin -object the time of the slice and the interpolation method to perform the -slice. - -The node_operation(``const std::string &path``) function returns the type of -operation applied to the data node (located at the value given by the -``path`` argument) by the plugin. This function must return one of the -following value: ``plugin::OPERATION::GET_ONLY``, -``plugin::OPERATION::PUT_ONLY`` or ``plugin::OPERATION::PUT_AND_GET``. The -``node_operation(...)`` function, called by the plugins framework, has several -purposes: - -- It allows the plugins framework to sort the plugins that are contributing to - the ``get``/``get_slice`` operation, ``put``/``put_slice`` operation, or - both. Only plugins returning ``plugin::OPERATION::GET_ONLY`` or - ``plugin::OPERATION::PUT_AND_GET`` are added to the - ``ids_properties/plugins/get_operation`` data structure during a - ``get``/``get_slice`` operation. Moreover, only plugins returning - ``plugin::OPERATION::PUT_ONLY`` or ``plugin::OPERATION::PUT_AND_GET`` are - added to the ``ids_properties/plugins/put_operation`` data structure during a - ``put``/``put_slice`` operation. - -- The plugins framework will call the plugin operation ``read_data(...)`` for - a given IDS node path only if the ``node_operation(...)`` function returns - ``plugin::OPERATION::GET_ONLY`` or ``plugin::OPERATION::PUT_AND_GET`` for - this path. - -- The plugins framework will call the plugin operation ``write_data(...)`` - for a given IDS node path only if the ``node_operation(...)`` function - returns ``plugin::OPERATION::PUT_ONLY`` or ``plugin::OPERATION::PUT_AND_GET`` - for this path. - -The ``read_data(...)`` and (resp. ``write_data(...)``) allows a plugin to -intercept a data pointer coming from/going to the backend to read or modify it -on the fly. This documentation provides some plugins examples to illustrate the -use of these functions. - - -Calling low level data access API functions from plugin code ------------------------------------------------------------- - -New C wrappers allow plugins to call LL data access operations (the -latter should not be called by plugins code to avoid infinite -recursion). These functions have the same name that the existing -counterpart AL wrappers with prefix ``al`` replaced by ``al_plugin`` -(`Figure 6`_). - -.. code-block:: C++ - :caption: **Figure 6:** new C wrappers for calling LL data access operations from plugins - :name: Figure 6 - - void al_plugin_begin_global_action(const std::string &plugin_name, int pulseCtx, const char* dataobjectname, int mode, int opCtx); - void al_plugin_slice_action(const std::string &plugin_name, int pulseCtx, const char* dataobjectname, int mode, double time, int interp, int opCtx); - void al_plugin_arraystruct_action(const std::string &plugin_name, int ctx, int *actxID, const char* fieldPath, const char* timeBasePath, int *arraySize); - void al_plugin_read_data(const std::string &plugin_name, int ctx, const char* fieldPath, const char* timeBasePath, void **data, int datatype, int dim, int *size); - void al_plugin_write_data(const std::string &plugin_name, int ctxID, const char *field, const char *timebase, void *data, int datatype, int dim, int *size); - - -Plugins orchestration -===================== - -A registered and activated plugin (see :ref:`Plugin activation`) will be called -by the LL whenever a ``get()``/``get_slice()`` or ``put()``/``put_slice()`` -operation is performed by an HLI. The next sections describe the dynamic of -plugins calls during a ``get()``/``get_slice()`` or a ``put()``/``put_slice()`` -operation through sequence diagrams. - -.. _`get() sequence diagram`: - -``get()`` sequence diagram --------------------------- - -`Figure 7`_ depicts an example of the ``get()`` operations sequence of a -``camera_ir`` IDS using the ``camera_ir`` plugin developed at WEST. The -client code uses HLI operations to read data of a ``camera_ir`` IDS. In -the first two calls, the client registers the plugin and binds it to the -node identified by the path ``camera_ir/frame/surface_temperature``, then -the AL API ``get()`` operation is called on the ``camera_ir`` IDS object (the -preliminary operation for creating the IDS object is not shown in the -figure). The ``al_begin_global_action(...)`` function calls first the -``beginGlobalActionPlugin(...)`` function of the plugins API (whatever the -node to which the plugin is bound) which in turn calls the -``begin_arraystruct_action(...)`` of the plugin interface. Similarly, each -call to ``al_begin_arraystruct_action(...)`` generates first a call to -``beginArraystructActionPlugin(...)``, followed by a call to the -``begin_arraystruct_action(...)`` function of the plugin interface. - -If several plugins are bound to the same IDS node, the plugin -framework will iterate over each plugin and call the appropriate plugin -interface function for each plugin sequentially. The iteration order -follows the order in which plugins bindings have been performed by the -HLI client using ``al_bind_plugin(...)``. - -.. _`put() sequence diagram`: - -``put()`` sequence diagram --------------------------- - -The ``put()`` sequence diagram (`Figure 8`_) is quite similar to the ``get()`` -sequence diagram. The example uses the ``camera_ir_write`` plugin -described later in this document. - -Note that the wrapper ``al_begin_arraystruct_action(...)`` is called in this -modified AL plugin architecture even if the corresponding array of -structure (AOS) has a 0-shape (this is not true for the previous AL -architecture where HLIs were not calling ``al_begin_arraystruct_action(...)`` -if the AOS was found to be empty). The reason is to make plugins able to -write/update the size of AOSs. - - -Access Layer plugin provenance -============================== - -Recent versions of the Data Dictionary store information concerning plugin -provenance. See https://jira.iter.org/browse/IMAS-4491 and the Pull Request -https://git.iter.org/projects/IMAS/repos/data-dictionary/pull-requests/534/overview. - -To take into account these change, we have defined new plugins requirements with -the ``provenance_plugin_feature`` and the ``readback_plugin_feature`` interfaces -(`Figure 8`_). Moreover, in order to extend the ability of the LL to accept any -type of plugins, we have introduced a new access_layer_base_plugin interface. -The latter is more general and does not hold the read/write data access and -*readback* requirements. - -It may be necessary to define *readback* plugins that can read data -written by other plugins. For instance, the ``camera_ir_write`` plugin -(used currently on WEST) writes compressed data of the ``camera_ir`` IDS -to the backend. In order to read these data during a ``get()`` or -``get_slice()`` operation, the ``camera_ir_write`` plugin implements the -``readback_plugin_feature`` interface, which provides information to the -Access Layer about a *readback* plugin capable of reading and -uncompressing the data. For this example, the ``camera_ir`` readback -plugin is able to read and decompress data stored by the -``camera_ir_write`` plugin, providing uncompressed data to the HLI. The -name of the *readback* plugin is obtained using the -``getReadbackName(const std::string &path, int *index)`` function of the -``readback_plugin_feature`` interface for a given IDS node path. It is worth -noting that several plugins can be applied to the same IDS node path, -and the ``index`` parameter indicates which *readback* plugin should be -used. For instance, if two *readback* plugins are defined for the same -node path, a value of 1 for the ``index`` parameter indicates that the -plugin should be applied after the plugin defined at ``index=0``. - -During a ``put()``/``put_slice()`` operation, the **readback** -informations specified by the **readback_plugin_feature** interface are -stored in the backend. These data are read during a ``get()``/``get_slice()`` -operation and used to bind and execute the *readback* plugins. - diff --git a/doc/doc_common/plugins_examples.rst b/doc/doc_common/plugins_examples.rst deleted file mode 100644 index 03bbf34..0000000 --- a/doc/doc_common/plugins_examples.rst +++ /dev/null @@ -1,958 +0,0 @@ -Plugins examples -================ - -.. note:: - - The plugin examples referenced in this documentation are maintained in the al-plugins repository. - Please refer to: https://git.iter.org/projects/IMAS/repos/al-plugins/browse for the complete source code. - - -The ``debug`` plugin --------------------- - -In this first example, we want to display the value of the field -``ids_properties/version_put/access_layer`` for a given IDS during the -execution of a ``get()`` operation. - -The debug plugin is a C++ class named ``Debug_plugin``. The header code shows: - -- The Debug_plugin class inherits from the access_layer_plugin plugin - interface - -- All operations of the plugin interface are declared - -- The private attributes shot, dataobjectname and occurrence will be - initialized during the initialization of the plugin - -.. note:: - - The complete source code for the debug_plugin.h header is available in the al-plugins repository. - -The plugin implementation code includes: - -- Plugin initialization occurs in the ``begin_global_action(...)`` function. - However, no initialization is required in this example. - -- ``read_data(...)`` calls the backend using the LL - ``al_plugin_read_data(...)`` function. If the data type is a string, the - plugin print its value to the screen. - -- ``begin_arraystruct_action(...)`` creates a new ``ArraystructContext`` and - calls the backend, then the plugin prints the size of the array of - structure. - -- The *readback* information are empty in this example (the function - ``getReadbackName(path, index)`` returns an empty string, meaning that - the ``debug`` plugin does not define any *readback* plugin. - -.. note:: - - The complete source code for the debug_plugin.cpp implementation is available in the al-plugins repository. - - -Plugin compilation: creating a shared library -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The Makefile for compiling the plugin will also compile the C++ HLI code ``test_debug_plugin.cpp``, which uses -this plugin. - -Executing the Makefile generates the shared library ``debug_plugin.so`` -and creates an executable ``test_debug_plugin`` for the HLI test -code described later. - -The ``AL_BUILD`` variable has to be set to the root directory of the IMAS -Access Layer sources. The dependency ``$AL_BUILD/lowlevel`` is required -since plugins depend on the LL API. The dependency -``$AL_BUILD/cppinterface/src`` is used only for the compilation of the HLI -test code. - - -.. code-block:: Makefile - :caption: **Figure 11:** plugin compilation Makefile - :name: Figure 11 - - include ../Makefile.common - - ifeq (,$(AL_BUILD)) - AL_BUILD=../ - $(warning AL_BUILD variable unset, probably not running 'make al_test' from the Installer. Assuming AL_BUILD=$(AL_BUILD).) - endif - - all sources sources_install install sources_uninstall uninstall clean clean-src test: - - DBGFLAGS= -g - DBGFLAGS+= -DDEBUG -DBOOST_ALL_DYN_LINK - NOT_SUPPORTED_COMPILER= - CC = gcc - CXX = g++ - ifeq "$(strip $(CC))" "icc" - CXXFLAGS= -O0 -fPIC -shared-intel ${DBGFLAGS} - LDFLAGS= - else ifeq "$(strip $(CC))" "gcc" - CXXFLAGS= -std=c++11 -pthread -O0 -fPIC ${DBGFLAGS} - LDFLAGS= -shared -pthread -Wl,--no-undefined - LDFLAGS_HLI=-pthread -Wl,--no-undefined - else - NOT_SUPPORTED_COMPILER=unsupported_compiler - endif - INCDIR_PKGCONFIG=`pkg-config blitz --cflags` - INCDIR= -I$(AL_BUILD)/lowlevel - LIBS= -lal `pkg-config blitz --libs` -L$(BOOST_ROOT)/lib -L$(AL_BUILD)/lowlevel -lboost_log -lboost_thread - INCDIR_HLI=$(INCDIR) -I$(AL_BUILD)/cppinterface/src $(INCDIR_PKGCONFIG) - LIBS_HLI=-L$(AL_BUILD)/cppinterface/lib $(LIBS) -lal-cpp - - OBJ_DEBUG_PLUGIN = debug_plugin.o simple_logger.o - PLUGINS = debug_plugin - - install: all - - EXE = $(addprefix test_, $(PLUGINS)) - - all: $(NOT_SUPPORTED_COMPILER) $(EXE) - - test_debug_plugin: debug_plugin - @echo Compiling test: $@ - $(CXX) $(INCDIR_HLI) $(CXXFLAGS) -c $@.cpp -o $@.o - $(CXX) $(LDFLAGS_HLI) -o $@ $@.o $(LIBDIR) $(LIBS_HLI) - - debug_plugin: $(OBJ_DEBUG_PLUGIN) - @echo Linking $^ - $(CXX) $(LDFLAGS) -o $@.so $^ $(LIBDIR) $(LIBS) - - .cpp.o: - @echo compiling $< - $(CXX) $(INCDIR) $(INCDIR_PKGCONFIG) $(CXXFLAGS) -c $< -o $@ - - clean: - $(RM) *.log *.o *.so $(OBJ) $(EXE) $(PLUGINS) - - unsupported_compiler: - @echo Makefile does not support $(CC) compiler \(try CC=gcc or icc\). - exit 1 - - -Execution of the Makefile gives the following output: - -.. code-block:: console - - $ make -f Makefile_debug_plugin - g++ `pkg-config blitz --cflags` -I/ZONE_TRAVAIL/LF218007/installer/src/3.35.0/ual/feature/al_plugins/lowlevel -std=c++11 -pthread -O0 -fPIC -g -DDEBUG -DBOOST_ALL_DYN_LINK -c debug_plugin.cpp -o debug_plugin.o - g++ `pkg-config blitz --cflags` -I/ZONE_TRAVAIL/LF218007/installer/src/3.35.0/ual/feature/al_plugins/lowlevel -std=c++11 -pthread -O0 -fPIC -g -DDEBUG -DBOOST_ALL_DYN_LINK -c simple_logger.cpp -o simple_logger.o - g++ -shared -pthread -Wl,--no-undefined -o debug_plugin.so debug_plugin.o simple_logger.o -L/ZONE_TRAVAIL/LF218007/installer/src/3.35.0/ual/feature/al_plugins/lowlevel -L/Applications/libraries/boost/1.76.0/gcc/6.4.0/lib -limas `pkg-config blitz --libs` -lboost_log -lboost_thread - - -Client code for plugin execution -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - -.. md-tab-set:: - - .. md-tab-item:: Using Python - - `Figure 12`_ shows a python client code to execute the ``debug`` plugin: - - - The shot is opened using ``open(uri, mode)`` - - - The plugin ``debug`` is registered using ``register_plugin(...)`` - - - The plugin is bound to the node - ``ids_properties/version_put/access_layer`` of the ``magnetics`` IDS, - occurrence 0 - - - The ``get()`` operation is called for the IDS name found in the path - which is the last argument passed to the python script - - - Finally, the plugin is removed from memory using ``unregister_plugin(...)`` - - - .. code-block:: python - :caption: **Figure 12:** Client implementation code using a python HLI - :name: Figure 12 - - import imas - from imas import imasdef - from imas.hli_plugins import HLIPlugins - import sys - - uri = sys.argv[1] - - data_entry = imas.DBEntry(uri, "r") - data_entry.open() - - HLIPlugins.register_plugin("debug") - HLIPlugins.bind_plugin("magnetics:0/ids_properties/version_put/access_layer", "debug") - HLIPlugins.bind_plugin("magnetics:0/flux_loop", "debug") - data_entry.get('magnetics', occurrence=0) - HLIPlugins.unregister_plugin("debug") - data_entry.close() - - - Before executing the plugin, we need to specify the location of the - plugin shared library to the AL plugin framework using the environment - variable **IMAS_AL_PLUGINS**. For example: - - .. code-block:: console - - $ export IMAS_AL_PLUGINS=/Home/LF218007/access_layer_plugins - - In the example below, we are printing the value of the field - ``magnetics:0/ids_properties/version_put/access_layer`` for the shot - specified by the **uri** passed to the python script. The execution of - the python code shown above gives the following output: - - .. code-block:: console - - $ python test_debug_plugin.py imas:hdf5?path=/Imas_public/public/imasdb/west/3/54914/0/ - 0000001 | [debug] : read_data - reading data for field path= ids_properties/version_put/access_layer - 0000002 | [debug] : read_data - ids_properties/access_layer= 4.10.0-2-g367115bb - visiting AOS=flux_loop with size=17 - - - .. md-tab-item:: Using C++ - - .. code-block:: C++ - :caption: **Figure 13:** C++ test code, file ``test_debug_plugin.cpp`` - :name: Figure 13 - - #include - #include "ALClasses.h" - - using namespace IdsNs; - - void execute(char** argv); - void exitIfError(al_status_t &status); - - void execute(char** argv) { - - int pulse=54; - char* userName = NULL; - - userName = getenv("USER"); - if(userName == NULL) - { - printf( "PANIC: $USER not found! Exiting..."); - exit(1); - } - - /* Get Full */ - IdsNs::IDS data_entry(pulse,1,-1,-1); - data_entry.openEnv(userName, "test", "3"); - - al_status_t status = al_register_plugin("debug"); - exitIfError(status); - printf("Using the magnetics IDS for demo purpose\n"); - al_bind_plugin("magnetics:0/ids_properties/version_put/access_layer", "debug"); - al_bind_plugin("magnetics:0/flux_loop", "debug"); - - IDS::magnetics ids = data_entry._magnetics; - ids.get(0); - - data_entry.close(); - status = al_unregister_plugin("debug"); - exitIfError(status); - } - - void exitIfError(al_status_t &status) { - if (status.code != 0) { - printf("%s\n", status.message); - exit(-1); - } - } - - int main(int argc, char** argv){ - execute(argv); - } - - `Figure 13`_ shows a C++ client implementation test for executing the - ``debug`` plugin. The output is the same than previously as - expected: - - .. code-block:: console - - $ ./test_debug_plugin imas:hdf5?path=/Imas_public/public/imasdb/west/3/54914/0/ - Using the magnetics IDS for demo purpose - 0000001 | [debug] : read_data - reading data for field path= ids_properties/version_put/access_layer - 0000002 | [debug] : read_data - ids_properties/creation_date= 4.10.0-2-g367115bb - visiting AOS=flux_loop with size=17 - - - .. md-tab-item:: Using gfortran - - .. code-block:: Fortran - :caption: **Figure 14:** client implementation code using a Fortran HLI - :name: Figure 14 - - program test_debug_plugin - - use ids_routines - implicit none - - integer :: idx, mode, status - - type (ids_magnetics) :: mag ! Declaration of the ids - character(STRMAXLEN) :: uri - character(len=132):: usr - integer :: pulse = 54 - integer :: run = 1 - integer :: pulsectx - - call get_environment_variable("USER",usr) - - ! Registering the 'debug' plugin - call al_register_plugin ('debug', status) - - ! Binding the 'debug' plugin to the access_layer node of the magnetics IDS (as a demo purpose) - call al_bind_plugin ('magnetics:0/ids_properties/version_put/access_layer', 'debug', status) - - ! Opening the pulse file - call al_build_uri_from_legacy_parameters(MDSPLUS_BACKEND, pulse, run, usr, "test", "3", "", uri, status) - call al_begin_dataentry_action(uri, OPEN_PULSE, pulsectx, status); - write(*,*) 'Opened pulse file, pulsectx = ', pulsectx - - ! Calling 'get' will call the 'debug' plugin - call ids_get(pulsectx,"magnetics", mag) - - call imas_close(pulsectx) - - end program test_debug_plugin - - - `Figure 14`_ shows a Fortran client implementation for executing the - ``debug`` plugin. The output is the same than previously as expected: - - .. code-block:: console - - $ ./gfortran_test_debug_plugin imas:hdf5?path=/Imas_public/public/imasdb/west/3/54914/0/ - 0000001 | [debug] : read_data - reading data for field path= ids_properties/version_put/access_layer - 0000002 | [debug] : read_data - ids_properties/creation_date= 4.10.0-2-g367115bb - visiting AOS=flux_loop with size=17 - - -.. _`simplifying plugin code`: - -Simplifying plugin code: introducing the ``AL_reader_helper_plugin`` class --------------------------------------------------------------------------- - -In this section, we show how to simplify the ``debug`` plugin code -presented previously. For this purpose, we introduce the new helper -class ``AL_reader_helper_plugin`` whose part of the header (provenance -feature operations have been removed for clarity) is shown in Figure 15. -Figure 16 depicts its implementation code. - -.. note:: - - The complete source code for the al_reader_helper_plugin.h header is available in the al-plugins repository. - -By inheriting the helper class, we obtain the header of the ``Debug_plugin`` -class depicted in Figure 17. The header code declares only the -``read_data(..)`` function (from the plugin interface) whose implementation -is overridden in the simplified implementation code of the ``Debug_plugin`` -class (Figure 18). - -.. note:: - - The complete source code for the al_reader_helper_plugin.cpp implementation is available in the al-plugins repository. - -.. code-block:: C++ - :caption: **Figure 17:** the simplified ``Debug_plugin`` class header - :name: Figure 17 - - #ifndef DEBUG_PLUGIN_H - #define DEBUG_PLUGIN_H 1 - #include "al_reader_helper_plugin.h" - #include "access_layer_plugin.h" - - class Debug_plugin: public AL_reader_helper_plugin - { - public: - Debug_plugin(); - ~Debug_plugin(); - - int read_data(int ctx, const char* fieldPath, const char* timeBasePath, - void **data, int datatype, int dim, int *size); - }; - - extern "C" access_layer_plugin* create() { - return new Debug_plugin; - } - extern "C" void destroy (access_layer_plugin* al_plugin) { - delete al_plugin; - } - #endif - -.. code-block:: C++ - :caption: **Figure 18:** the simplified ``Debug_plugin`` class implementation - :name: Figure 18 - - #include "debug_plugin.h" - #include "simple_logger.h" - - Debug_plugin::Debug_plugin() - {} - - Debug_plugin::~Debug_plugin() - {} - - void Debug_plugin::begin_arraystruct_action(int ctx, int *aosctx, const char* fieldPath, const char* timeBasePath, int *arraySize) { - if (*arraySize != 0) - printf("visiting AOS=%s with size=%d\n", fieldPath, *arraySize); - } - - int Debug_plugin::read_data(int ctx, const char* fieldPath, const char* timeBasePath, - void **data, int datatype, int dim, int *size) { - al_plugin_read_data(ctx, fieldPath, timeBasePath, data, datatype, dim, size); - if (datatype == CHAR_DATA) { - LOG_DEBUG << "reading data for field path= " << fieldPath; - char buff[100]; - snprintf(buff, sizeof(buff), "%s", (char*) *data); - std::string buffAsStdStr = buff; - LOG_DEBUG << "ids_properties/access_layer= " << buffAsStdStr; - } - else { - LOG_DEBUG << "debug plugin prints only STRING data" << fieldPath; - } - return 1; - } - - -A plugin to automatically fill ``ids_properties/creation_date`` ---------------------------------------------------------------- - -The requirement of IMAS-3121 ITER JIRA ticket is to fill in the -``ids_properties/creation_date`` node during a ``put()`` operation with the -current date in the form YYYY-MM-DD. - -.. note:: - - The complete source code for the creation_date_plugin.cpp implementation is available in the al-plugins repository. - -The ``Creation_date_plugin`` class implements this feature. The header file -content is also available in the al-plugins repository. Provenance feature operations have been removed for clarity in -these files. - -.. code-block:: python - :caption: **Figure 27:** python client of the ``creation_date`` plugin - :name: Figure 27 - - import imas - import matplotlib.pyplot as plt - from imas.hli_plugins import HLIPlugins - from imas import imasdef - import sys - - uri = sys.argv[1] - - data_entry = imas.DBEntry(uri, "w") - data_entry.create() - - m= imas.magnetics() - m.ids_properties.homogeneous_time=1 - m.time.resize(1) - m.time[0]=0. - - HLIPlugins.register_plugin("creation_date") - - path= "magnetics:0/ids_properties/creation_date" - HLIPlugins.bind_plugin(path, "creation_date") - - data_entry.put(m) - - HLIPlugins.unregister_plugin("creation_date") - - data_entry.close() - - print("checking value of creation_date...") - data_entry.open(uri=uri, mode=imasdef.FORCE_OPEN_PULSE) - ids = data_entry.get('magnetics') - print(ids.ids_properties.creation_date) - data_entry.close() - -.. code-block:: console - :caption: **Figure 28:** executing the ``creation_date`` plugin and checking the result - :name: Figure 28 - - $ python test_creation_date_plugin.py imas:hdf5?path=/Home/LF218007/public/imasdb/test/3/55000/0 - Patching creation_date... - checking value of creation_date... - 2022-03-11 - -After execution of the ``creation_date`` plugin using the python client code -depicted in `Figure 27`_, we check that the ``ids_properties/creation_date`` has -been successfully updated as expected (`Figure 28`_). - -The C++ code below (`Figure 29`_) uses the same plugin. The test is making -a little bit more than the previous python test, it prints at the end -if some *readback* plugins have been called during ``get()``. Since no -*readback* plugin has been defined in the ``creation_date`` -plugin code, the test prints “No readback plugins have been called -during ``get()``.”. We will see later an example, which shows how to -define a *readback* plugin. - -.. code-block:: C++ - :caption: **Figure 29:** executing the ``Creation_date`` plugin - :name: Figure 29 - - #include "creation_date_plugin.h" - - #include - #include - #include - #include - #include - #include - #include - - Creation_date_plugin::Creation_date_plugin() - { - } - - Creation_date_plugin::~Creation_date_plugin() - { - } - - /** - The following functions are used to provide metadata about the plugin to identify and manage the plugin. - - getName() returns the name of the plugin, which is "creation_date" in this example. - getCommit() returns a unique identifier for the version of the plugin, which is "8f2e7cd64daf9e35a6e6c5850dd80fc198f11d86" in this example. - getVersion() returns the version number of the plugin, which is "1.0.0" in this example. - getRepository() returns the URI for the Git repository where the plugin is located, which is "ssh://git@git.iter.org/imas/access-layer-plugins.git" in this example. - getParameters() returns a string representing the parameters for the plugin. - */ - - std::string Creation_date_plugin::getName() { - return "creation_date"; - } - - std::string Creation_date_plugin::getDescription() { - return ""; - } - - std::string Creation_date_plugin::getCommit() { - return "8f2e7cd64daf9e35a6e6c5850dd80fc198f11d86"; - } - - std::string Creation_date_plugin::getVersion() { - return "1.0.0"; - } - std::string Creation_date_plugin::getRepository() { - return "ssh://git@git.iter.org/imas/access-layer-plugins.git"; - } - std::string Creation_date_plugin::getParameters() { - return "creation_date plugin parameters"; - } - - /** - The following functions are used by the Access Layer to determine which readback plugin to use for a given field path. - - The getReadbackName() function returns the name of the readback plugin to use for a given field path. If the field path contains the string "creation_date", it returns the string "debug". Otherwise, it returns an empty string. - - The getReadbackCommit() function returns the commit hash of the readback plugin to use for a given field path. If the field path contains the string "creation_date", it returns a specific commit hash. Otherwise, it returns an empty string. - - The getReadbackVersion() function returns the version of the readback plugin to use for a given field path. If the field path contains the string "creation_date", it returns the string "1.1.0". Otherwise, it returns an empty string. - - The getReadbackRepository() function returns the repository location of the readback plugin to use for a given field path. If the field path contains the string "creation_date", it returns a specific repository location. Otherwise, it returns an empty string. - - The getReadbackParameters() function returns the parameters to pass to the readback plugin for a given field path. If the field path contains the string "creation_date", it returns a specific string. Otherwise, it returns an empty string. - */ - - std::string Creation_date_plugin::getReadbackName(const std::string &path, int* index) { - return ""; - } - - std::string Creation_date_plugin::getReadbackDescription(const std::string &path) { - return ""; - } - - std::string Creation_date_plugin::getReadbackCommit(const std::string &path) { - if (path.rfind("creation_date")) - return "d92bb2f30384bc618574508b56e9542d00f0e97a"; - return ""; - } - - std::string Creation_date_plugin::getReadbackVersion(const std::string &path) { - if (path.rfind("creation_date")) - return "1.1.0"; - return ""; - } - - std::string Creation_date_plugin::getReadbackRepository(const std::string &path) { - if (path.rfind("creation_date")) - return "ssh://git@git.iter.org/imas/access-layer-plugins.git"; - return ""; - } - - std::string Creation_date_plugin::getReadbackParameters(const std::string &path) { - if (path.rfind("creation_date")) - return "readback plugin parameters"; - return ""; - } - - plugin::OPERATION Creation_date_plugin::node_operation(const std::string &path) { - return plugin::OPERATION::PUT_ONLY; - } - - void Creation_date_plugin::begin_global_action(int pulseCtx, const char* dataobjectname, const char* datapath, int mode, int opCtx) { - } - - void Creation_date_plugin::begin_slice_action(int pulseCtx, const char* dataobjectname, int mode, double time, int interp, int opCtx) { - } - - void Creation_date_plugin::begin_arraystruct_action(int ctx, int *aosctx, const char* fieldPath, const char* timeBasePath, int *arraySize) { - LLenv lle = Lowlevel::getLLenv(ctx); - ArraystructContext* actx = lle.create(fieldPath, timeBasePath); - *aosctx = Lowlevel::addLLenv(lle.backend, actx); - lle.backend->beginArraystructAction(actx, arraySize); - } - - int Creation_date_plugin::read_data(int ctx, const char* fieldPath, const char* timeBasePath, - void **data, int datatype, int dim, int *size) { - return 0; - } - - - /** - This function is used to write data to the specific IDS field 'ids_properties/creation_date'. - - The function takes several parameters, including an integer "ctx", which is a handle to the current low level context, a character array "fieldPath" representing the path to the field being modified, a character array "timeBasePath" representing the path to the timebase for the field, a void pointer "data" containing the data to be written, an integer "datatype" specifying the type of data being written, an integer "dim" specifying the number of dimensions of the data, and an array of integers "size" specifying the size of each dimension. - - The function prints a message indicating that the "Creation_date" plugin is patching the creation date. It then uses the standard library function "std::time" to obtain the current system time and local time, and formats it using the standard library function "std::put_time" to create a string representing the current date in the format of "YYYY-MM-DD". This string is stored in a std::ostringstream object called "oss" and then converted to a C-style string using the "str()" function, and then to a void pointer using the "c_str()" function. - - Finally, the function creates an array of sizes for the data being written, with a single element representing the length of the string. It then calls the "al_plugin_write_data" function to write the data to the specified field, passing in the current context, the field path, the timebase path, the void pointer to the data, the data type, the number of dimensions, and the array of sizes. After writing the data, the function prints a message indicating that the patching is complete. - */ - void Creation_date_plugin::write_data(int ctx, const char* fieldPath, const char* timeBasePath, void *data, int datatype, int dim, int *size) { - printf("Patching creation_date from the creation_date plugin... \n"); - auto t = std::time(nullptr); - auto tm = *std::localtime(&t); - std::ostringstream oss; - oss << std::put_time(&tm, "%Y-%m-%d"); - auto text = oss.str(); - void* ptrData = (void *) (text.c_str()); - int arrayOfSizes[1] = {(int)text.size()}; - al_plugin_write_data(ctx, fieldPath, timeBasePath, ptrData, CHAR_DATA, 1, arrayOfSizes); - printf("End of patching.\n"); - } - - void Creation_date_plugin::setParameter(const char* parameter_name, int datatype, int dim, int *size, void *data) { - } - - void Creation_date_plugin::end_action(int ctx) {} - - - -.. code-block:: Fortran - :caption: **Figure 30:** Fortran test code for executing the ``creation_date`` plugin - :name: Figure 30 - - program test - - use ids_routines - implicit none - - integer :: idx, mode, status - - type (ids_magnetics) :: mag ! Declaration of the empty ids to be filled - character(STRMAXLEN) :: uri - character(len=132):: usr - integer :: pulse = 54 - integer :: run = 1 - - call get_environment_variable("USER",usr) - - call al_build_uri_from_legacy_parameters(MDSPLUS_BACKEND, pulse, run, usr, "test", "3", "", uri, status) - mag%ids_properties%homogeneous_time = 1 ! Mandatory to define this property - allocate(mag%time(1)) - mag%time = 0.0 - - - ! Registering the 'creation_date' plugin - call al_register_plugin ('creation_date', status) - - write(*,*) 'Using the magnetics IDS for demo purpose' - - ! Binding the 'creation_date' node of the magnetics IDS to the 'creation_date' plugin (only for demo purpose) - call al_bind_plugin ('magnetics:0/ids_properties/creation_date', 'creation_date', status) - - ! Creating the pulse file - - call al_begin_dataentry_action(uri, FORCE_CREATE_PULSE, idx, status) - write(*,*) 'Creating pulse file, idx = ', idx - call ids_put(idx,"magnetics",mag) - - write(*,*) 'Closing pulse file, idx = ', idx - call imas_close(idx) - - ! Unregistering the plugin since we do not need it anymore - call al_unregister_plugin ('creation_date', status) - - ! Opening the pulse file to check the value of 'creation_date' - - call al_begin_dataentry_action(uri, OPEN_PULSE, idx, status) - write(*,*) 'Opening pulse file, idx = ', idx - - write(*,*) 'Reading pulse file, idx = ', idx - call ids_get(idx,"magnetics",mag) - - print *, 'creation_date = ', mag%ids_properties%creation_date - call imas_close(idx) - - end program test - -Executing the Fortran code above gives the following output: - -.. code-block:: console - - $ ./gfortran_test_creation_date_plugin 55000 0 LF218007 test 13 - - Using the magnetics IDS for demo purpose - - Creating pulse file, idx = 1 - - Patching creation_date... - - End of patching. - - Closing pulse file, idx = 1 - - Opening pulse file, idx = 1 - - Reading pulse file, idx = 1 - - creation_date = 2022-03-16 - - -Binding a *readback* plugin -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Let us consider again the ``creation_date`` plugin. Suppose that -we want to display the value of the field ``ids_properties/creation_date`` -(using the ``debug`` plugin) just after it has been patched. In order to -execute the ``debug`` plugin, we replace the *readback* feature -function ``getReadbackName(...)`` of the ``creation_date`` plugin: - -.. code-block:: C++ - - std::string Creation_date_plugin::getReadbackName(const std::string &path, int* index) { - return ""; - } - -by the following code: - -.. code-block:: C++ - - std::string Creation_date_plugin::getReadbackName(const std::string &path, int* index) { - if (path.rfind("ids_properties/creation_date")) { - *index = 0; - return "debug"; - } - } - -In the code above, we are binding the ``debug`` plugin to the path -``ids_properties/creation_date`` - -After recompilation of the plugin, the execution of the C++ test of -`Figure 29`_ gives the following output: - -.. code-block:: console - - $ ./test_creation_date_plugin imas:hdf5?path=/Home/LF218007/public/imasdb/test/3/55000/0 - Patching the field 'ids_properties/creation_date' of a magnetics IDS for demo purpose. - Patching creation_date from the creation_date plugin... - End of patching. - Reading IDS... - 0000001 | [debug] : read_data - reading data for field path= ids_properties/creation_date - 0000002 | [debug] : read_data - ids_properties/creation_date= 2023-03-06 - visiting AOS=ids_properties/plugins/node with size=1 - node at path=ids_properties/creation_date - readback plugin --> name=debug - --> version=1.1.0 - --> commit=d92bb2f30384bc618574508b56e9542d00f0e97a - -The *readback* plugin ``debug`` is executed during the -``get()`` operation (when visiting the node ``ids_properties/creation_date``) -as expected. - - -Building a partial ``get()`` operation --------------------------------------- - -Skipping the read of an array of structure -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - The complete source code for the PartialGetPlugin class implementation (partial_get_plugin.cpp) - and header (partial_get_plugin.h) is available in the al-plugins repository. - -In a first use-case, the user wants to access only few attributes of the -``equilibrium`` IDS for many shots. In order to speed up reading, he -decides to skip the loading of the ``grids_ggd`` array of structures (AOS). -The ``PartialGetPlugin`` class provides an efficient solution. During the ``get()`` -operation, the plugin intercepts the HLI call to the function -``al_begin_arraystruct_action(...)`` for the ``grids_ggd`` AOS and sets its size -(using the arraySize pointer) to 0 after displaying a warning to the -user: - -.. code-block:: C++ - - void PartialGetPlugin::begin_arraystruct_action(int ctx, int *aosctx, const char* fieldPath, const char* timeBasePath, int *arraySize) { - if (std::string(fieldPath) == "grids_ggd") { - LOG_WARNING << "ignoring gids_ggd"; - *arraySize = 0; - } - } - -The value of arraySize (set to 0) is returned to the HLI which will -therefore skip the iteration of the ``grids_ggd`` AOS. - - -Executing the ``partial_get`` plugin -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. md-tab-set:: - - .. md-tab-item:: Using Python - - `Figure 33`_ depicts a HLI python client code to test the plugin. - - .. code-block:: python - :caption: **Figure 33:** python client code to test the ``PartialGetPlugin`` plugin - :name: Figure 33 - - import imas - from imas import imasdef - import matplotlib.pyplot as plt - from imas.hli_plugins import HLIPlugins - import sys - - uri = sys.argv[1] - - data_entry = imas.DBEntry(uri) - data_entry.open() - - HLIPlugins.register_plugin("partial_get"); - HLIPlugins.bind_plugin("equilibrium:0/grids_ggd", "partial_get") - - equilibrium_ids = data_entry.get('equilibrium', occurrence=0) - - print("Grids_ggd AOS size=",len(equilibrium_ids.grids_ggd)) - - HLIPlugins.unregister_plugin("partial_get") - - The execution of the plugin gives the following output: - - .. code-block:: console - - $ python test_partial_get_plugin.py imas:hdf5?path=/Imas_public/public/imasdb/west/3/54914/0/ - 0000001 | [warning] : begin_arraystruct_action - ignoring grids_ggd - Grids_ggd AOS size= 0 - - - .. md-tab-item:: Using C++ - - .. code-block:: C++ - :caption: **Figure 34:** C++ client code to test the ``partial_get`` plugin - :name: Figure 34 - - #include - #include "ALClasses.h" - - using namespace IdsNs; - - void execute(char** argv); - void exitIfError(al_status_t &status); - - void execute(char** argv) { - - int pulse=54; - char* userName = NULL; - - userName = getenv("USER"); - if(userName == NULL) - { - printf( "PANIC: $USER not found! Exiting..."); - exit(1); - } - - /* Get Full */ - IdsNs::IDS data_entry(pulse,1,-1,-1); - data_entry.openEnv(userName, "test", "3"); - - al_status_t status = al_register_plugin("partial_get"); - exitIfError(status); - status = al_bind_plugin("magnetics:0/flux_loop", "partial_get"); - IDS::magnetics ids = data_entry._magnetics; - ids.get(0); - printf("magnetics AOS size=%d\n",ids.flux_loop.size()); - data_entry.close(); - - status = al_unregister_plugin("partial_get"); - exitIfError(status); - } - - void exitIfError(al_status_t &status) { - if (status.code != 0) { - printf("%s\n", status.message); - exit(-1); - } - } - - - int main(int argc, char** argv){ - execute(argv); - } - - Execution of C++ client code gives: - - .. code-block:: console - - $ ./test_partial_get_plugin imas:hdf5?path=/Imas_public/public/imasdb/west/3/54914/0/ - 0000001 | [warning] : begin_arraystruct_action - ignoring grids_ggd - Grids_ggd AOS size=0 - - - .. md-tab-item:: Using Fortran - - .. code-block:: Fortran - :caption: **Figure 35:** fortran client code to test the ``partial_get`` plugin - :name: Figure 35 - - program test - - use ids_routines - implicit none - - integer :: idx, mode, status - - type (ids_magnetics) :: mag ! Declaration of the ids - character(STRMAXLEN) :: uri - character(len=132):: usr - integer :: pulse = 54 - integer :: run = 1 - - call get_environment_variable("USER",usr) - - call al_build_uri_from_legacy_parameters(MDSPLUS_BACKEND, pulse, run, usr, "test", "3", "", uri, status) - - ! Registering the 'partial_get' plugin - call al_register_plugin ('partial_get', status) - - ! Binding the 'partial_get' plugin to the 'grids_ggd' node of the equilibrium IDS (as a demo purpose) - call al_bind_plugin ('magnetics:0/flux_loop', 'partial_get', status) - - ! Opening the pulse file - call al_begin_dataentry_action(uri, OPEN_PULSE, idx, status); - write(*,*) 'Opening pulse file, idx = ', idx - - ! Calling 'get' will call the 'partial_get' plugin - call ids_get(idx,"magnetics", mag) - print *, 'flux_loop pointer associated = ', associated(mag%flux_loop) - call imas_close(idx) - - end program test - - .. code-block:: console - - $ ./gfortran_test_partial_get_plugin imas:hdf5?path=/Imas_public/public/imasdb/west/3/54914/0/ - 0000001 | [warning] : begin_arraystruct_action - ignoring grids_ggd - Grids_ggd pointer associated = F diff --git a/doc/doc_common/requirements.txt b/doc/doc_common/requirements.txt index 299cf3a..c738935 100644 --- a/doc/doc_common/requirements.txt +++ b/doc/doc_common/requirements.txt @@ -2,14 +2,8 @@ sphinx >= 6.0, < 7.0 sphinx_immaterial >= 0.11.4, < 0.12 -# Fortran domain -sphinx-fortran six # un-listed dependency of sphinx-fortran -# Java domain -# Note: package is deprecated, but no alternatives exist... -javasphinx - # Matlab domain sphinxcontrib-matlabdomain diff --git a/doc/doc_common/using_al.rst b/doc/doc_common/using_al.rst index 91b9f6a..f4b31c6 100644 --- a/doc/doc_common/using_al.rst +++ b/doc/doc_common/using_al.rst @@ -4,24 +4,7 @@ Using the Access Layer Making the Access Layer available for use ----------------------------------------- -To use the Access Layer in your programs, you need to make it available. On the -ITER cluster (SDCC) this is achieved by loading the ``IMAS`` module from the -command line: - -.. code-block:: bash - - module load IMAS - -This will select the default IMAS module. You can also select a specific -version. To see which versions of the IMAS module are available, enter on the -command line: - -.. code-block:: bash - - module avail IMAS - -Please check with your HPC administrators which module you need to load when not working -on SDCC. When you're working with a local installation (see :ref:`Building and +When you're working with a local installation (see :ref:`Building and installing the Access Layer`), you can source the installed environment file: .. code-block:: bash diff --git a/doc/index.rst b/doc/index.rst index 123e87b..74304f6 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -33,13 +33,13 @@ programming language. :maxdepth: 2 :caption: Contents: + getting_started imas using_al load_store_ids use_ids imas_uri identifiers - conf plugins .. toctree:: From bf3112adc94f8fe8d63faaf5d19e0c9975c83aec Mon Sep 17 00:00:00 2001 From: prasad-sawantdesai Date: Thu, 5 Feb 2026 18:18:42 +0100 Subject: [PATCH 09/18] updated links --- doc/{doc_common => }/getting_started.rst | 26 ++++++++++-------------- doc/index.rst | 22 -------------------- 2 files changed, 11 insertions(+), 37 deletions(-) rename doc/{doc_common => }/getting_started.rst (84%) diff --git a/doc/doc_common/getting_started.rst b/doc/getting_started.rst similarity index 84% rename from doc/doc_common/getting_started.rst rename to doc/getting_started.rst index 8c2068e..348cdee 100644 --- a/doc/doc_common/getting_started.rst +++ b/doc/getting_started.rst @@ -16,13 +16,13 @@ On the ITER SDCC (supercomputing cluster), make the Access Layer available: .. code-block:: bash - module load IMAS + module load IMAS-Matlab To see available versions: .. code-block:: bash - module avail IMAS + module avail IMAS-Matlab If you have a local installation, source the environment file instead: @@ -41,7 +41,7 @@ where your data is stored and in what format. % Open a database entry uri = 'imas:hdf5?path=/path/to/data'; - ctx = imas_open(uri, 40); % 40 is the IMAS version + ctx = imas_open(uri, 40); if ctx < 0 error('Unable to open database'); @@ -62,7 +62,7 @@ Learn more: :ref:`Data entry URIs` 3. Load and Display Data (1 min) -------------------------------- -Fetch an Integrated Data Structure (IDS) from your database entry: +Fetch an IDS from your database entry: .. code-block:: matlab @@ -129,7 +129,7 @@ Common Use Cases .. code-block:: matlab % Use CLOSEST interpolation - data = ids_get_slice(ctx, 'magnetics', 2.5, 'CLOSEST'); + data = ids_get_slice(ctx, 'equilibrium', 2.5, 'CLOSEST'); **Check if data exists:** @@ -144,9 +144,9 @@ Common Use Cases **Access MATLAB examples:** The repository contains several example scripts in the ``examples/`` directory: -- ``test_get.m`` – Load and display data -- ``test_put.m`` – Store new data -- ``test_get_sample_magnetics.m`` – Practical magnetics data example +- ``test_get.m`` Load and display data +- ``test_put.m`` Store new data +- ``test_get_sample_magnetics.m`` Practical magnetics data example Next Steps @@ -155,8 +155,8 @@ Next Steps - **Read more about IDSs**: :doc:`Use Interface Data Structures ` - **Learn advanced loading/storing**: :doc:`Loading and storing IMAS data ` - **Understand data storage**: :ref:`Data entry URIs` -- **Check the full API documentation**: See your installed MATLAB help or visit the - `IMAS Data Dictionary `__ +- **Check the full API documentation**: See your installed IMATLAB help or visit the + `IMAS Matlab `__ Troubleshooting @@ -164,15 +164,11 @@ Troubleshooting **"Unable to open pulse" error:** - Check that your URI is correct and the data path exists -- Verify the IMAS version number (typically 40 or higher) -- Make sure the ``IMAS`` module is loaded **IDS not found:** -- Check the IDS name spelling (case-sensitive) - Verify the data entry contains this IDS - Use ``ids_isdefined()`` to check existence first **Need help?** - Check the :doc:`Using the Access Layer ` guide -- Review complete API documentation in your MATLAB installation -- Consult the `IMAS Data Dictionary `__ +- Consult the `IMAS Matlab `__ \ No newline at end of file diff --git a/doc/index.rst b/doc/index.rst index 74304f6..9c1f588 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -6,28 +6,6 @@ overview>` Access Layer. All code samples and API documentation will show how to use the access layer in the `MATLAB `_ programming language. -.. seealso:: - :title: Access Layer documentation for different programming languages - :collapsible: - - Check out the following pages if you want to use the Access Layer with a - different programming language: - - - `Python High Level Interface - `_ - - `Fortran High Level Interface - `_ - - `C++ High Level Interface - `_ - - `Java High Level Interface - `_ - -.. todo:: - - Replace IDM links with sharepoint links to the respective HLIs - -.. todolist:: - .. toctree:: :maxdepth: 2 From 28f8e80d5c14c99a3b73b7e54282ba98746d2d6f Mon Sep 17 00:00:00 2001 From: prasad-sawantdesai Date: Mon, 9 Feb 2026 12:05:36 +0100 Subject: [PATCH 10/18] minimized al_env.sh.in --- common/al_env.sh.in | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/common/al_env.sh.in b/common/al_env.sh.in index 22878aa..e34bbf0 100644 --- a/common/al_env.sh.in +++ b/common/al_env.sh.in @@ -1,21 +1,7 @@ export PATH="${CMAKE_INSTALL_PREFIX}/bin:$PATH" export LD_LIBRARY_PATH="${CMAKE_INSTALL_PREFIX}/lib:$LD_LIBRARY_PATH" export PKG_CONFIG_PATH="${CMAKE_INSTALL_PREFIX}/lib/pkgconfig:$PKG_CONFIG_PATH" -export HDF5_USE_FILE_LOCKING=FALSE -if [ -f "${CMAKE_INSTALL_PREFIX}/jar/imas.jar" ]; then - export CLASSPATH="${CMAKE_INSTALL_PREFIX}/jar/imas.jar:$CLASSPATH" -fi if [ -d "${CMAKE_INSTALL_PREFIX}/mex" ]; then export MATLABPATH="${CMAKE_INSTALL_PREFIX}/mex:$MATLABPATH" fi -if [ -d "${CMAKE_INSTALL_PREFIX}/lib/python${PYVER}/site-packages" ]; then - export PYTHONPATH="${CMAKE_INSTALL_PREFIX}/lib/python${PYVER}/site-packages:$PYTHONPATH" -fi -if [ -d "${CMAKE_INSTALL_PREFIX}/models/mdsplus" ]; then - export ids_path="${CMAKE_INSTALL_PREFIX}/models/mdsplus" -fi -if [ -f "${CMAKE_INSTALL_PREFIX}/include/IDSDef.xml" ]; then - export IDSDEF_PATH="${CMAKE_INSTALL_PREFIX}/include/IDSDef.xml" - export IMAS_VERSION="$( grep -Pom 1 '(?<=)[^<]*' $IDSDEF_PATH )" -fi From 7cfabb4cb6e4ca17ef38a776f0f42aba34b3b9cb Mon Sep 17 00:00:00 2001 From: prasad-sawantdesai Date: Tue, 10 Feb 2026 10:08:04 +0100 Subject: [PATCH 11/18] fixed comments related to time and IMAS MATLAB --- doc/getting_started.rst | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/doc/getting_started.rst b/doc/getting_started.rst index 348cdee..cf2780e 100644 --- a/doc/getting_started.rst +++ b/doc/getting_started.rst @@ -1,15 +1,14 @@ -Getting Started with IMAS-MATLAB +Getting Started with IMAS-Matlab ================================= -Welcome! This 5-minute guide will get you up and running with the IMAS MATLAB Access Layer. +Welcome! This 5-minute guide will get you up and running with the IMAS-Matlab. -**What is IMAS-MATLAB?** +**What is IMAS-Matlab?** -The IMAS MATLAB Access Layer is a high-level interface that lets you load, manipulate, and store -data from ITER's Integrated Modeling and Analysis Suite (IMAS) directly in MATLAB. +IMAS-Matlab is the IMAS data access library (formerly known as the Access Layer) for Matlab users/developers. -1. Load the IMAS Module (2 min) +1. Load the IMAS-Matlab Module ------------------------------- On the ITER SDCC (supercomputing cluster), make the Access Layer available: @@ -31,7 +30,7 @@ If you have a local installation, source the environment file instead: source /bin/al_env.sh -2. Open MATLAB and Connect to Data (1 min) +1. Open MATLAB and Connect to Data ------------------------------------------- Start MATLAB and open a database entry using an IMAS URI. A URI tells the Access Layer @@ -59,8 +58,8 @@ For example: Learn more: :ref:`Data entry URIs` -3. Load and Display Data (1 min) --------------------------------- +3. Load and Display Dat +------------------------ Fetch an IDS from your database entry: @@ -75,8 +74,8 @@ Fetch an IDS from your database entry: disp(magnetics.flux_loop{1}.flux.data); % Access nested data -4. Modify and Store Data (1 min) --------------------------------- +1. Modify and Store Data +------------------------ You can create new data, modify existing data, and store it back: @@ -91,7 +90,7 @@ You can create new data, modify existing data, and store it back: ids_put(ctx, 'equilibrium', equilibrium); -5. Clean Up +1. Clean Up ----------- Always close the database entry when you're done: @@ -156,7 +155,7 @@ Next Steps - **Learn advanced loading/storing**: :doc:`Loading and storing IMAS data ` - **Understand data storage**: :ref:`Data entry URIs` - **Check the full API documentation**: See your installed IMATLAB help or visit the - `IMAS Matlab `__ + `IMAS-Matlab `__ Troubleshooting @@ -171,4 +170,4 @@ Troubleshooting **Need help?** - Check the :doc:`Using the Access Layer ` guide -- Consult the `IMAS Matlab `__ \ No newline at end of file +- Consult the `IMAS-Matlab `__ \ No newline at end of file From ccfa41dbd1e01cc9beab976d8fd8fb043adcc836 Mon Sep 17 00:00:00 2001 From: prasad-sawantdesai Date: Tue, 10 Feb 2026 11:13:18 +0100 Subject: [PATCH 12/18] fixed warning/links and cleanup documentation --- doc/conf.py | 1 + doc/doc_common/building_installing.rst | 2 +- doc/doc_common/imas_uri.rst | 9 +++++++ doc/getting_started.rst | 34 +++++++++++++------------- doc/imas_uri.rst | 6 +++++ doc/index.rst | 1 - doc/plugins.rst | 9 ------- doc/plugins_architecture.rst | 1 - doc/plugins_examples.rst | 1 - 9 files changed, 34 insertions(+), 30 deletions(-) delete mode 100644 doc/plugins.rst delete mode 100644 doc/plugins_architecture.rst delete mode 100644 doc/plugins_examples.rst diff --git a/doc/conf.py b/doc/conf.py index bb65824..0bdc1de 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -52,6 +52,7 @@ # todo_include_todos = True # Note: exclude doc_common and plugins folders (which are symlinked by the CMake build) +# Also exclude myenv (Python virtual environment) exclude_patterns = ["_build", "Thumbs.db", ".DS_Store", "doc_common", "plugins"] # -- RST snippets to include in every page ----------------------------------- diff --git a/doc/doc_common/building_installing.rst b/doc/doc_common/building_installing.rst index 1793b94..6bca820 100644 --- a/doc/doc_common/building_installing.rst +++ b/doc/doc_common/building_installing.rst @@ -17,7 +17,7 @@ For more information about related components, see: .. note:: For Windows-specific installation instructions, please refer to the - :doc:`Windows Installation Guide `. + :doc:`MATLAB on Windows ` guide. .. _`build prerequisites`: diff --git a/doc/doc_common/imas_uri.rst b/doc/doc_common/imas_uri.rst index 8c586e6..1c7bc02 100644 --- a/doc/doc_common/imas_uri.rst +++ b/doc/doc_common/imas_uri.rst @@ -1,3 +1,5 @@ +.. _data entry uris: + IMAS Data Entry URIs ==================== @@ -23,6 +25,13 @@ official IMAS Data Dictionary documentation: When you :ref:`load or store IMAS data `, you need to provide a data entry URI according to these specifications. +.. note:: + + For detailed information about all backends, query keys, and backend-specific options, + please refer to the `IMAS URI Scheme documentation + `__ + in the IMAS Data Dictionary. + diff --git a/doc/getting_started.rst b/doc/getting_started.rst index cf2780e..54bd6ad 100644 --- a/doc/getting_started.rst +++ b/doc/getting_started.rst @@ -103,21 +103,21 @@ Always close the database entry when you're done: Key Functions Reference ----------------------- -+------------------------------+----------------------------------------------------+ -| Function | Purpose | -+==============================+====================================================+ -| ``imas_open(uri, version)`` | Open a database entry at the given URI | -+------------------------------+----------------------------------------------------+ -| ``imas_close(ctx)`` | Close the database entry | -+------------------------------+----------------------------------------------------+ -| ``ids_get(ctx, ids_name)`` | Load an entire IDS | -+------------------------------+----------------------------------------------------+ -| ``ids_put(ctx, ids_name, ids_obj)`` | Store an IDS to disk | -+------------------------------+----------------------------------------------------+ -| ``ids_init(ids_name)`` | Create and initialize a new IDS | -+------------------------------+----------------------------------------------------+ -| ``ids_get_slice(ctx, ids_name, time)`` | Load a specific time slice | -+------------------------------+----------------------------------------------------+ ++====================================+=============================================+ +| Function | Purpose | ++====================================+=============================================+ +| ``imas_open(uri, version)`` | Open a database entry at the given URI | ++------------------------------------+---------------------------------------------+ +| ``imas_close(ctx)`` | Close the database entry | ++------------------------------------+---------------------------------------------+ +| ``ids_get(ctx, ids_name)`` | Load an entire IDS | ++------------------------------------+---------------------------------------------+ +| ``ids_put(ctx, ids_name, ids_obj)``| Store an IDS to disk | ++------------------------------------+---------------------------------------------+ +| ``ids_init(ids_name)`` | Create and initialize a new IDS | ++------------------------------------+---------------------------------------------+ +| ``ids_get_slice(ctx, ids_name, time)`` | Load a specific time slice | ++====================================+=============================================+ Common Use Cases @@ -158,8 +158,8 @@ Next Steps `IMAS-Matlab `__ -Troubleshooting ---------------- +Common Issues +------------- **"Unable to open pulse" error:** - Check that your URI is correct and the data path exists diff --git a/doc/imas_uri.rst b/doc/imas_uri.rst index 4c48dce..d5a21ee 100644 --- a/doc/imas_uri.rst +++ b/doc/imas_uri.rst @@ -1 +1,7 @@ +.. _ascii backend: +.. _hdf5 backend: +.. _mdsplus backend: +.. _memory backend: +.. _uda backend: + .. include:: ./doc_common/imas_uri.rst diff --git a/doc/index.rst b/doc/index.rst index 9c1f588..70d2eb1 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -18,7 +18,6 @@ programming language. use_ids imas_uri identifiers - plugins .. toctree:: :caption: Examples diff --git a/doc/plugins.rst b/doc/plugins.rst deleted file mode 100644 index e199c5a..0000000 --- a/doc/plugins.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. include:: ./doc_common/plugins.rst - - -.. toctree:: - :caption: Contents - :maxdepth: 2 - - plugins_architecture - plugins_examples diff --git a/doc/plugins_architecture.rst b/doc/plugins_architecture.rst deleted file mode 100644 index a0b402a..0000000 --- a/doc/plugins_architecture.rst +++ /dev/null @@ -1 +0,0 @@ -.. include:: ./doc_common/plugins_architecture.rst diff --git a/doc/plugins_examples.rst b/doc/plugins_examples.rst deleted file mode 100644 index 22e6081..0000000 --- a/doc/plugins_examples.rst +++ /dev/null @@ -1 +0,0 @@ -.. include:: ./doc_common/plugins_examples.rst From da84b071723a277975d46af8f404d90134d98f77 Mon Sep 17 00:00:00 2001 From: prasad-sawantdesai Date: Tue, 10 Feb 2026 11:42:35 +0100 Subject: [PATCH 13/18] corrected some wordings --- doc/getting_started.rst | 10 +++++----- doc/index.rst | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/getting_started.rst b/doc/getting_started.rst index 54bd6ad..fa97959 100644 --- a/doc/getting_started.rst +++ b/doc/getting_started.rst @@ -8,7 +8,7 @@ Welcome! This 5-minute guide will get you up and running with the IMAS-Matlab. IMAS-Matlab is the IMAS data access library (formerly known as the Access Layer) for Matlab users/developers. -1. Load the IMAS-Matlab Module +Load the IMAS-Matlab Module ------------------------------- On the ITER SDCC (supercomputing cluster), make the Access Layer available: @@ -30,7 +30,7 @@ If you have a local installation, source the environment file instead: source /bin/al_env.sh -1. Open MATLAB and Connect to Data +Open MATLAB and Connect to Data ------------------------------------------- Start MATLAB and open a database entry using an IMAS URI. A URI tells the Access Layer @@ -58,7 +58,7 @@ For example: Learn more: :ref:`Data entry URIs` -3. Load and Display Dat +Load and Display Dat ------------------------ Fetch an IDS from your database entry: @@ -74,7 +74,7 @@ Fetch an IDS from your database entry: disp(magnetics.flux_loop{1}.flux.data); % Access nested data -1. Modify and Store Data +Modify and Store Data ------------------------ You can create new data, modify existing data, and store it back: @@ -90,7 +90,7 @@ You can create new data, modify existing data, and store it back: ids_put(ctx, 'equilibrium', equilibrium); -1. Clean Up +Clean Up ----------- Always close the database entry when you're done: diff --git a/doc/index.rst b/doc/index.rst index 70d2eb1..18d3bce 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -1,7 +1,7 @@ Access Layer - MATLAB High Level Interface ========================================== -These pages document the MATLAB High Level Interface to the :ref:`IMAS ` Access Layer. All code samples and API documentation will show how to use the access layer in the `MATLAB `_ programming language. From 5e28f8900d134f603d63928b904a5ce73737dfd6 Mon Sep 17 00:00:00 2001 From: prasad-sawantdesai Date: Tue, 10 Feb 2026 11:48:56 +0100 Subject: [PATCH 14/18] corrected links --- doc/doc_common/building_installing.rst | 2 +- doc/doc_common/dev_guide.rst | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/doc_common/building_installing.rst b/doc/doc_common/building_installing.rst index 6bca820..3752798 100644 --- a/doc/doc_common/building_installing.rst +++ b/doc/doc_common/building_installing.rst @@ -138,7 +138,7 @@ First you need to clone the repository of the High Level Interface you want to b .. code-block:: bash # For the MATLAB HLI use: - git clone ssh://git@git.iter.org/imas/al-matlab.git + git clone git@github.com:iterorganization/IMAS-Matlab.git Configuration diff --git a/doc/doc_common/dev_guide.rst b/doc/doc_common/dev_guide.rst index 8816ae2..6ce85f3 100644 --- a/doc/doc_common/dev_guide.rst +++ b/doc/doc_common/dev_guide.rst @@ -15,11 +15,11 @@ repositories: `__: the IMAS Data Dictionary definitions, used for generating MDSplus models and the traditional High Level Interfaces. -- `al-plugins `__: Access +- `al-plugins `__: Access Layer plugins. - Traditional (code-generated) High Level Interfaces - - `al-matlab `__: + - `al-matlab `__: MATLAB HLI @@ -85,7 +85,7 @@ specifies which branch to use from each repository: ``al-core``. - Inside the ``al-core`` repository, the commits to use for the ``al-plugins`` and ``data-dictionary`` are set in `ALCommonConfig.cmake - `__. + `__. The default versions used are ``main`` for ``al-plugins``, and ``main`` for ``data-dictionary``. @@ -120,7 +120,7 @@ Documentation of the HLI is inside the ``doc`` folder of the repository. This fo contains the configuration (``conf.py``), and documentation pages (``*.rst``). Documentation that is common to all High Level Interfaces (such as this developer guide) is in the `common/doc_common folder in the al-core repository -`__. +`__. Building the documentation From 757d132824457f146b76afac1c7c575336606f88 Mon Sep 17 00:00:00 2001 From: prasad-sawantdesai Date: Wed, 11 Feb 2026 16:56:18 +0100 Subject: [PATCH 15/18] updated review comments --- .readthedocs.yml | 2 +- CMakeLists.txt | 2 +- CONTRIBUTING.md | 8 +- common/cmake/ALLocalPaths.cmake | 2 +- create_matlab_toolbox.m | 10 +-- doc/doc_common/building_installing.rst | 106 +------------------------ doc/doc_common/dev_guide.rst | 12 +-- doc/doc_common/imas.rst | 10 +-- doc/doc_common/using_al.rst | 8 +- doc/getting_started.rst | 18 ++--- doc/index.rst | 5 +- 11 files changed, 38 insertions(+), 145 deletions(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index 122fe6c..2e5a04c 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -1,4 +1,4 @@ -# Read the Docs configuration file for IMAS-Matlab +# Read the Docs configuration file for IMAS-MATLAB # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details # Required diff --git a/CMakeLists.txt b/CMakeLists.txt index 7325f1d..9bc9a89 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,7 +20,7 @@ if(WIN32) endif() endif() -# Local paths for IMAS-Matlab +# Local paths for IMAS-MATLAB ################################################################################ # Include local paths to eliminate AL_COMMON_PATH dependency # Use full path since CMAKE_MODULE_PATH hasn't been configured yet diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 054e0a7..7fdb256 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,23 +1,23 @@ # Contributing guidelines -We welcome any kind of contribution to `IMAS-Matlab`, +We welcome any kind of contribution to `IMAS-MATLAB`, from a simple comment, a question or even a full fledged pull request. Please first make sure you read and follow the [Code of Conduct](CODE_OF_CONDUCT.md). ## You think you found a bug in the code, or have a question in its use -1. use the [issue search](https://github.com/iterorganization/IMAS-Matlab/issues) +1. use the [issue search](https://github.com/iterorganization/IMAS-MATLAB/issues) to check if someone already created a similar issue; 2. if not, make a **new issue** to describe your problem or question. In the case of a bug suspiscion, please try to give all the relevant information to allow reproducing the error or identifying -its root cause (version of the IMAS-Matlab, OS and relevant +its root cause (version of the IMAS-MATLAB, OS and relevant dependencies, snippet of code); 3. apply relevant labels to the issue. ## You want to make or ask some change to the code -1. use the [issue search](https://github.com/iterorganization/IMAS-Matlab/issues) +1. use the [issue search](https://github.com/iterorganization/IMAS-MATLAB/issues) to check if someone already proposed a similar idea/change; 2. if not, create a **new issue** to describe what change you would like to see implemented and specify it if you intend to work on it yourself or if some help diff --git a/common/cmake/ALLocalPaths.cmake b/common/cmake/ALLocalPaths.cmake index 63b1ff6..f367d74 100644 --- a/common/cmake/ALLocalPaths.cmake +++ b/common/cmake/ALLocalPaths.cmake @@ -1,4 +1,4 @@ -# Local paths for IMAS-Matlab +# Local paths for IMAS-MATLAB # This file defines local paths to eliminate AL_COMMON_PATH dependency # Directory containing CMake modules diff --git a/create_matlab_toolbox.m b/create_matlab_toolbox.m index 209d33a..0243b59 100644 --- a/create_matlab_toolbox.m +++ b/create_matlab_toolbox.m @@ -1,8 +1,8 @@ function create_matlab_toolbox(installDir, outputDir, version, ddVersion) -% CREATE_MATLAB_TOOLBOX Package IMAS-Matlab as a MATLAB toolbox +% CREATE_MATLAB_TOOLBOX Package IMAS-MATLAB as a MATLAB toolbox % % Arguments: -% installDir - Directory containing installed IMAS-Matlab files +% installDir - Directory containing installed IMAS-MATLAB files % outputDir - Directory where .mltbx file will be created % version - Version string (e.g., '5.5.0') % ddVersion - Data Dictionary version (e.g., '4.1.0') @@ -56,10 +56,10 @@ function create_matlab_toolbox(installDir, outputDir, version, ddVersion) % Configure toolbox metadata fprintf(' Configuring toolbox metadata...\n'); % Create a valid identifier (alphanumeric and hyphens only) - toolboxId = sprintf('imas-matlab-%s', strrep(version, '.', '-')); + toolboxId = sprintf('IMAS-MATLAB-%s', strrep(version, '.', '-')); opts = matlab.addons.toolbox.ToolboxOptions(packDir, toolboxId); - opts.ToolboxName = 'IMAS-Matlab'; + opts.ToolboxName = 'IMAS-MATLAB'; opts.ToolboxVersion = version; opts.AuthorName = 'ITER Organization'; opts.Summary = sprintf('MATLAB interface for IMAS Access Layer - %s', fullVersionName); @@ -118,7 +118,7 @@ function create_startup_script(packDir, version, ddVersion, platform) fid = fopen(startupFile, 'w'); fprintf(fid, 'function imas_toolbox_startup()\n'); -fprintf(fid, '%% IMAS_TOOLBOX_STARTUP Initialize IMAS-Matlab toolbox\n'); +fprintf(fid, '%% IMAS_TOOLBOX_STARTUP Initialize IMAS-MATLAB toolbox\n'); fprintf(fid, '%% Auto-generated startup script for %s\n\n', fullVersionName); fprintf(fid, ' toolboxRoot = fileparts(mfilename(''fullpath''));\n\n'); fprintf(fid, ' %% Add to path\n'); diff --git a/doc/doc_common/building_installing.rst b/doc/doc_common/building_installing.rst index 3752798..6d196d8 100644 --- a/doc/doc_common/building_installing.rst +++ b/doc/doc_common/building_installing.rst @@ -138,7 +138,7 @@ First you need to clone the repository of the High Level Interface you want to b .. code-block:: bash # For the MATLAB HLI use: - git clone git@github.com:iterorganization/IMAS-Matlab.git + git clone git@github.com:iterorganization/IMAS-MATLAB.git Configuration @@ -210,109 +210,7 @@ Compiler Collection). Configuration options ''''''''''''''''''''' -- **Backend configuration options** - - - ``AL_BACKEND_HDF5``, allowed values ``ON`` *(default)* or ``OFF``. - Enable/disable the HDF5 backend. - - ``AL_BACKEND_MDSPLUS``, allowed values ``ON`` or ``OFF`` *(default)*. - Enable/disable the MDSplus backend. - - - ``AL_BUILD_MDSPLUS_MODELS``, allowed values ``ON`` *(default)* or ``OFF``, - only available when the MDSplus backend is enabled. Enable building MDSplus - models for the selected Data Dictionary version. - - - ``AL_BACKEND_UDA``, allowed values ``ON`` or ``OFF`` *(default)*. Enable/disable - the UDA backend. - - ``AL_BACKEND_UDAFAT``, allowed values ``ON`` or ``OFF`` *(default)*. - Enable/disable the UDA backend and use FAT UDA instead of the client/server - model. See the `UDA documentation `__ for more - information. - -- **Control what to build** - - - ``AL_EXAMPLES``, allowed values ``ON`` *(default)* or ``OFF``. Enable/disable - building the example programs in the ``examples`` directory. - - ``AL_TESTS``, allowed values ``ON`` *(default)* or ``OFF``. Enable/disable - building the test programs in the ``tests`` folder. - - ``AL_PLUGINS``, allowed values ``ON`` or ``OFF`` *(default)* . Enable/disable - building the plugins from the ``al-plugins`` repository. - - ``AL_HLI_DOCS``, allowed values ``ON`` or ``OFF`` *(default)*. Enable/disable - building the documentation. - - ``AL_DOCS_ONLY``, allowed values ``ON`` or ``OFF`` *(default)*. When enabled, - ONLY the documentation will be built (needs ``AL_HLI_DOCS=ON``). Regardless of - other configuration options, nothing else will be built. - - ``AL_PYTHON_BINDINGS``, allowed values ``ON`` *(default when building the Python - HLI)* or ``OFF`` *(default when not building the Python HLI)*. When enabled, this - builds the Access Layer Python lowlevel bindings. - -- **Dependency configuration options** - - - ``AL_DOWNLOAD_DEPENDENCIES``, allowed values ``ON`` *(default)* or ``OFF``. - Enable or disable the automatic downloading of dependencies. Should be disabled - when using a :ref:`development environment `. - - .. important:: - - The following environment variables must be set before the first time you - configure ``cmake``! - - If you have an existing ``build`` folder and want to use a different compiler, - you should delete the ``build`` folder first, or use a differently named folder - for the build tree. - - When ``AL_DOWNLOAD_DEPENDENCIES`` is enabled, the following settings can be used to - configure the location and/or version of the dependencies that should be used. - - - ``AL_CORE_GIT_REPOSITORY``, - ``AL_PLUGINS_GIT_REPOSITORY``, ``DD_GIT_REPOSITORY``. Configure the git URLs - where the ``imas-core``, ``al-plugins`` c.q. - ``imas-data-dictionary`` repositories should be fetched from. - - ``AL_CORE_VERSION``, ``AL_PLUGINS_VERSION``, - ``DD_VERSION``. Configure the version of the repository that should be used. - This can point to any valid branch name, tag or commit hash. - - This setting can be used to control which version of the Data Dictionary you - want to use. For example: ``-D DD_VERSION=3.38.1`` will use DD version 3.38.1 - instead of the default. - - .. code-block:: text - :caption: Default values for ``*_GIT_REPOSITORY`` and ``*_VERSION`` options - - AL_CORE_GIT_REPOSITORY: git@github.com:iterorganization/IMAS-Core.git - AL_CORE_VERSION: main - - AL_PLUGINS_GIT_REPOSITORY: git@github.com:iterorganization/al-plugins.git - AL_PLUGINS_VERSION: main - - DD_GIT_REPOSITORY: git@github.com:iterorganization/IMAS-Data-Dictionary.git - DD_VERSION: main - -- **Useful CMake options** - - - ``CMAKE_INSTALL_PREFIX``. Configure the path where the Access Layer will be - installed, for example ``-D CMAKE_INSTALL_PREFIX=$HOME/al-install`` will install - the Access Layer inside the ``al-install`` folder in your home directory. - - ``CMAKE_BUILD_TYPE``. Configure the build type for compiled languages. - Supported values (case sensitive): - - - ``Debug``: build with debug symbols and minimal optimizations. - - ``Release``: build with optimizations enabled, without debug symbols. - - ``RelWithDebInfo`` *(default)*: build with optimizations and debug symbols - enabled. - - ``MinSizeRel``: build optimized for minimizing the size of the resulting - binaries. - -More advanced options are available as well, these can be used to configure where CMake -searches for the prerequisite dependencies (such as the Boost libraries). To show all -available configuration options, use the command-line tool ``ccmake`` or the gui tool -``cmake-gui``: - -.. code-block:: bash - - # for the CLI tool - ccmake -B build -S . - # for the GUI tool - cmake-gui -B build -S . +For a complete list of available configuration options, please see the `IMAS Core Configuration Options `__. Build the High Level Interface diff --git a/doc/doc_common/dev_guide.rst b/doc/doc_common/dev_guide.rst index 6ce85f3..81d8103 100644 --- a/doc/doc_common/dev_guide.rst +++ b/doc/doc_common/dev_guide.rst @@ -19,7 +19,7 @@ repositories: Layer plugins. - Traditional (code-generated) High Level Interfaces - - `al-matlab `__: + - `al-matlab `__: MATLAB HLI @@ -85,7 +85,7 @@ specifies which branch to use from each repository: ``al-core``. - Inside the ``al-core`` repository, the commits to use for the ``al-plugins`` and ``data-dictionary`` are set in `ALCommonConfig.cmake - `__. + `__. The default versions used are ``main`` for ``al-plugins``, and ``main`` for ``data-dictionary``. @@ -120,7 +120,7 @@ Documentation of the HLI is inside the ``doc`` folder of the repository. This fo contains the configuration (``conf.py``), and documentation pages (``*.rst``). Documentation that is common to all High Level Interfaces (such as this developer guide) is in the `common/doc_common folder in the al-core repository -`__. +`__. Building the documentation @@ -145,10 +145,10 @@ and nothing else. GitHub Actions CI/CD pipeline ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -In addition to the ITER CI systems, the IMAS-Matlab repository uses `GitHub Actions +In addition to the ITER CI systems, the IMAS-MATLAB repository uses `GitHub Actions `__ for automated building and testing. The workflow is defined in `.github/workflows/build-and-test.yml -`__. +`__. This workflow: @@ -176,4 +176,4 @@ This workflow: that all tests pass. Build logs are available in the GitHub Actions tab of the repository. You can monitor the status of builds and tests in the -`Actions `__ tab of the GitHub repository. +`Actions `__ tab of the GitHub repository. diff --git a/doc/doc_common/imas.rst b/doc/doc_common/imas.rst index fb15396..dc10c94 100644 --- a/doc/doc_common/imas.rst +++ b/doc/doc_common/imas.rst @@ -1,12 +1,4 @@ IMAS overview ============= -IMAS is the Integrated Modeling and Analysis Suite of ITER. For more information, see the -`IMAS Data Dictionary Introduction `__. - -The Access Layer, of which you are currently reading the documentation, -provides the libraries for working with these data structures, for example: - -- Loading an IDS from disk -- Storing an IDS to disk -- Using and manipulating IDSs in your program +For more information about IMAS, see the `IMAS Data Dictionary Introduction `__. diff --git a/doc/doc_common/using_al.rst b/doc/doc_common/using_al.rst index f4b31c6..143f841 100644 --- a/doc/doc_common/using_al.rst +++ b/doc/doc_common/using_al.rst @@ -1,11 +1,11 @@ -Using the Access Layer +Using the IMAS-MATLAB ====================== -Making the Access Layer available for use +Making the IMAS-MATLAB available for use ----------------------------------------- When you're working with a local installation (see :ref:`Building and -installing the Access Layer`), you can source the installed environment file: +installing the IMAS-MATLAB`), you can source the installed environment file: .. code-block:: bash :caption: Set environment variables (replace ```` with the folder of your local install) @@ -17,5 +17,5 @@ installing the Access Layer`), you can source the installed environment file: HLI-specific documentation should include the following items: - Code samples for loading the library (import, include, use, etc.) - - Example program printing the Access Layer version used + - Example program printing the IMAS-MATLAB version used - Instructions for (compiling if relevant) and running the example program diff --git a/doc/getting_started.rst b/doc/getting_started.rst index fa97959..924501a 100644 --- a/doc/getting_started.rst +++ b/doc/getting_started.rst @@ -1,27 +1,27 @@ -Getting Started with IMAS-Matlab +Getting Started with IMAS-MATLAB ================================= -Welcome! This 5-minute guide will get you up and running with the IMAS-Matlab. +Welcome! This 5-minute guide will get you up and running with the IMAS-MATLAB. -**What is IMAS-Matlab?** +**What is IMAS-MATLAB?** -IMAS-Matlab is the IMAS data access library (formerly known as the Access Layer) for Matlab users/developers. +IMAS-MATLAB is the IMAS data access library (formerly known as the Access Layer) for Matlab users/developers. -Load the IMAS-Matlab Module +Load the IMAS-MATLAB Module ------------------------------- On the ITER SDCC (supercomputing cluster), make the Access Layer available: .. code-block:: bash - module load IMAS-Matlab + module load IMAS-MATLAB To see available versions: .. code-block:: bash - module avail IMAS-Matlab + module avail IMAS-MATLAB If you have a local installation, source the environment file instead: @@ -155,7 +155,7 @@ Next Steps - **Learn advanced loading/storing**: :doc:`Loading and storing IMAS data ` - **Understand data storage**: :ref:`Data entry URIs` - **Check the full API documentation**: See your installed IMATLAB help or visit the - `IMAS-Matlab `__ + `IMAS-MATLAB `__ Common Issues @@ -170,4 +170,4 @@ Common Issues **Need help?** - Check the :doc:`Using the Access Layer ` guide -- Consult the `IMAS-Matlab `__ \ No newline at end of file +- Consult the `IMAS-MATLAB `__ \ No newline at end of file diff --git a/doc/index.rst b/doc/index.rst index 18d3bce..6e76ce9 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -6,13 +6,16 @@ overview>` Access Layer. All code samples and API documentation will show how to use the access layer in the `MATLAB `_ programming language. +For more information, see the `IMAS Data Dictionary Introduction +`__. + .. toctree:: :maxdepth: 2 :caption: Contents: getting_started - imas + imas using_al load_store_ids use_ids From 88dab612da1e9e8beecd3d5d7328c397f4653a98 Mon Sep 17 00:00:00 2001 From: prasad-sawantdesai Date: Thu, 12 Feb 2026 09:59:05 +0100 Subject: [PATCH 16/18] fixed warnings --- doc/doc_common/building_installing.rst | 16 ++++++++-------- doc/doc_common/using_al.rst | 2 ++ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/doc/doc_common/building_installing.rst b/doc/doc_common/building_installing.rst index 6d196d8..16c14ae 100644 --- a/doc/doc_common/building_installing.rst +++ b/doc/doc_common/building_installing.rst @@ -1,9 +1,9 @@ -Building and installing the Access Layer +Building and installing the IMAS-MATLAB ======================================== -This page describes how to build and install the Matlab Access Layer. +This page describes how to build and install the IMAS-MATLAB. -Documentation for developers wishing to contribute to the Matlab Access Layer can be found in +Documentation for developers wishing to contribute to the IMAS-MATLAB can be found in the :ref:`Access Layer development guide`. Please refer to that guide if you wish to set up a development environment. @@ -25,7 +25,7 @@ For more information about related components, see: Prerequisites ------------- -To build the Access Layer you need: +To build the IMAS-MATLAB you need: - Git - A C++11 compiler (tested with GCC and Intel compilers) @@ -50,7 +50,7 @@ The following dependencies are only required for some of the components: - MATLAB High Level Interface - **MATLAB High Level Interface**: A working MATLAB installation (tested with - version 2020b) + version 2023b) @@ -155,7 +155,7 @@ overview of configuration options. .. note:: - CMake will automatically fetch dependencies from other Access Layer GIT repositories + CMake will automatically fetch dependencies from other IMAS-MATLAB GIT repositories for you. You may need to provide credentials to clone the following repositories: - `imas-core (git@github.com:iterorganization/IMAS-Core.git) @@ -266,7 +266,7 @@ Use the High Level Interface ```````````````````````````` After installing the HLI, you need to ensure that your code can find the installed -Access Layer. To help you with this, a file ``al_env.sh`` is installed. You can +IMAS-MATLAB. To help you with this, a file ``al_env.sh`` is installed. You can ``source`` this file to set all required environment variables: .. code-block:: bash @@ -288,7 +288,7 @@ Layer installation available for you. IMAS_VERSION=3.41.0``. Once you have set the required environment variables, you may continue :ref:`Using the -Access Layer`. +IMAS-MATLAB`. Troubleshooting diff --git a/doc/doc_common/using_al.rst b/doc/doc_common/using_al.rst index 143f841..672ef4c 100644 --- a/doc/doc_common/using_al.rst +++ b/doc/doc_common/using_al.rst @@ -1,3 +1,5 @@ +.. _Using the Access Layer: + Using the IMAS-MATLAB ====================== From d219d0645e7c26e3c876756f5d204ee18606f776 Mon Sep 17 00:00:00 2001 From: prasad-sawantdesai Date: Thu, 12 Feb 2026 10:04:53 +0100 Subject: [PATCH 17/18] fixed documentation --- ci/build_docs.sh | 2 +- doc/doc_common/building_installing.rst | 1 - doc/doc_common/dev_guide.rst | 19 +++++++++---------- doc/doc_common/using_al.rst | 2 -- doc/index.rst | 3 --- 5 files changed, 10 insertions(+), 17 deletions(-) diff --git a/ci/build_docs.sh b/ci/build_docs.sh index a4483f2..355d44a 100755 --- a/ci/build_docs.sh +++ b/ci/build_docs.sh @@ -51,7 +51,7 @@ CMAKE_ARGS=( -D AL_PLUGINS_VERSION=${AL_PLUGINS_VERSION:-main} -D AL_CORE_VERSION=${AL_CORE_VERSION:-main} -D DD_VERSION=${DD_VERSION:-main} - # Build only documentation + # Build only documentationv -D AL_HLI_DOCS=${AL_HLI_DOCS:-ON} -D AL_DOCS_ONLY=${AL_DOCS_ONLY:-ON} ) diff --git a/doc/doc_common/building_installing.rst b/doc/doc_common/building_installing.rst index 16c14ae..89e3b55 100644 --- a/doc/doc_common/building_installing.rst +++ b/doc/doc_common/building_installing.rst @@ -13,7 +13,6 @@ For more information about related components, see: - `IMAS Data Dictionary Documentation `__ - .. note:: For Windows-specific installation instructions, please refer to the diff --git a/doc/doc_common/dev_guide.rst b/doc/doc_common/dev_guide.rst index 81d8103..d6b2aa1 100644 --- a/doc/doc_common/dev_guide.rst +++ b/doc/doc_common/dev_guide.rst @@ -1,25 +1,25 @@ -Access Layer development guide +IMAS-MATLAB development guide ============================== -Access Layer repositories -------------------------- +Repositories +------------ -The IMAS Access Layer consists of a number of components which are developed in separate +The IMAS-MATLAB consists of a number of dependencies which are developed in separate repositories: - `imas-core `__: the - Access Layer core repository, MDSplus model generator and Python lowlevel + IMAS core repository, MDSplus model generator and Python lowlevel bindings. - `data-dictionary `__: the IMAS Data Dictionary definitions, used for generating MDSplus models and the traditional High Level Interfaces. -- `al-plugins `__: Access +- `IMAS-Core-Plugins `__: Access Layer plugins. - Traditional (code-generated) High Level Interfaces - - `al-matlab `__: + - `IMAS-MATLAB `__: MATLAB HLI @@ -33,8 +33,7 @@ Development environment See the :ref:`build prerequisites` section for an overview of modules you need to load when on SDCC or packages to install when using Ubuntu 22.04. -The recommended development folder layout is to clone all :ref:`Access Layer -repositories` in a single root folder (``al-dev`` in below example, but the name of that +The recommended development folder layout is to clone all :ref:`Repositories` in a single root folder (``al-dev`` in below example, but the name of that folder is not important). .. code-block:: text @@ -60,7 +59,7 @@ This setup allows you to develop in multiple repositories in parallel. Dependency management --------------------- -With all Access Layer components spread over different repositories, managing +With all IMAS-MATLAB dependencies spread over different repositories, managing dependencies is more complex than before. Below diagram expresses the dependencies between the different repositories: diff --git a/doc/doc_common/using_al.rst b/doc/doc_common/using_al.rst index 672ef4c..143f841 100644 --- a/doc/doc_common/using_al.rst +++ b/doc/doc_common/using_al.rst @@ -1,5 +1,3 @@ -.. _Using the Access Layer: - Using the IMAS-MATLAB ====================== diff --git a/doc/index.rst b/doc/index.rst index 6e76ce9..bf55cd1 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -6,9 +6,6 @@ overview>` Access Layer. All code samples and API documentation will show how to use the access layer in the `MATLAB `_ programming language. -For more information, see the `IMAS Data Dictionary Introduction -`__. - .. toctree:: :maxdepth: 2 From bc8ec1b6c8a04d57ee4ff50c8d9b6c269c87f273 Mon Sep 17 00:00:00 2001 From: prasad-sawantdesai Date: Thu, 12 Feb 2026 10:11:17 +0100 Subject: [PATCH 18/18] fixed references --- doc/doc_common/building_installing.rst | 2 +- doc/doc_common/dev_guide.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/doc_common/building_installing.rst b/doc/doc_common/building_installing.rst index 89e3b55..9166c47 100644 --- a/doc/doc_common/building_installing.rst +++ b/doc/doc_common/building_installing.rst @@ -4,7 +4,7 @@ Building and installing the IMAS-MATLAB This page describes how to build and install the IMAS-MATLAB. Documentation for developers wishing to contribute to the IMAS-MATLAB can be found in -the :ref:`Access Layer development guide`. Please refer to that guide if you wish to set +the :ref:`IMAS-MATLAB development guide`. Please refer to that guide if you wish to set up a development environment. For more information about related components, see: diff --git a/doc/doc_common/dev_guide.rst b/doc/doc_common/dev_guide.rst index d6b2aa1..2897f98 100644 --- a/doc/doc_common/dev_guide.rst +++ b/doc/doc_common/dev_guide.rst @@ -1,5 +1,5 @@ IMAS-MATLAB development guide -============================== +============================= Repositories